Browse Source

feat: 系统优化

luoyali 10 months ago
parent
commit
537927dbc5
4 changed files with 110 additions and 119 deletions
  1. 24 0
      src/styles/index.scss
  2. 10 34
      src/views/flow/form/index.vue
  3. 1 1
      src/views/flow/group/index.vue
  4. 75 84
      src/views/setting/dict/index.vue

+ 24 - 0
src/styles/index.scss

@@ -188,3 +188,27 @@ div:focus {
 .icon-mage--edit {
 	color: var(--el-color-primary); // 使用变量设置填充颜色
 }
+
+.menu-card {
+	.el-card__header {
+		font-size: 16px;
+		font-weight: 500;
+		padding: 12px 16px;
+		border-bottom: none;
+	}
+
+	.el-card__body {
+		width: 300px;
+		padding: 0 16px 12px 16px;
+	}
+}
+
+.menu-tree-box {
+	.el-tree-node__content {
+		height: 36px!important;
+	}
+
+	.el-tree-node__content .el-tree-node__label .icon {
+		margin-right: 5px;
+	}
+}

+ 10 - 34
src/views/flow/form/index.vue

@@ -13,8 +13,10 @@
 						</div>
 						<div class="">
 							<el-space>
-								<el-icon :style="{ color: 'var(--el-color-primary)' }" class="cursor-pointer" @click="addHandler('tree')" size="22"><Plus /> </el-icon>
-								<el-icon class="cursor-pointer" @click="getGroup" size="22"><Refresh /></el-icon>
+								<el-icon :style="{ color: 'var(--el-color-primary)' }" class="cursor-pointer" size="22" @click="addHandler('tree')"
+									><Plus />
+								</el-icon>
+								<el-icon class="cursor-pointer" size="22" @click="getGroup"><Refresh /></el-icon>
 							</el-space>
 						</div>
 					</div>
@@ -22,8 +24,8 @@
 
 				<el-input v-model="groupFilterText" placeholder="输入关键字进行过滤" clearable />
 				<el-tree
-					v-loading="showGroupLoading"
 					ref="treeRef"
+					v-loading="showGroupLoading"
 					class="menu-tree-box py-3"
 					:data="treeData"
 					node-key="id"
@@ -40,9 +42,9 @@
 							<span class="label">{{ node.label }}</span>
 							<!--<span v-if="false" class="code">{{ data.code }}</span>-->
 							<span v-if="node.label !== treeParentName" class="do">
-								<el-icon @click.stop="addHandler('table')" :style="{ color: 'var(--el-color-primary)' }" size="24"><Plus /></el-icon>
-								<el-icon @click.stop="dicEdit(data)" :style="{ color: 'var(--el-color-primary)' }" size="24"><Edit /></el-icon>
-								<el-icon @click.stop="dictDel(node, data)" :style="{ color: 'var(--el-color-error)' }" size="24"><Delete /></el-icon>
+								<el-icon :style="{ color: 'var(--el-color-primary)' }" size="24" @click.stop="addHandler('table')"><Plus /></el-icon>
+								<el-icon :style="{ color: 'var(--el-color-primary)' }" size="24" @click.stop="dicEdit(data)"><Edit /></el-icon>
+								<el-icon :style="{ color: 'var(--el-color-error)' }" size="24" @click.stop="dictDel(node, data)"><Delete /></el-icon>
 							</span>
 						</span>
 					</template>
@@ -513,6 +515,7 @@ const handleStatusChange = (row: any) => {
 	let text = Number(row.status) === 0 ? '禁用' : '启用'
 	ElMessageBox.confirm('请确认是否' + text + '当前数据?', '提示', { type: 'warning' })
 		.then(async () => {
+			await formtemplate.formTemplateAddOrEditSaveApi({ id: row.id, status })
 			ElMessage.success(`${text}成功`)
 		})
 		.catch(status => {
@@ -545,29 +548,6 @@ watch(
 )
 </script>
 <style scoped lang="scss">
-:deep(.menu-card) {
-	.el-card__header {
-		font-size: 16px;
-		font-weight: 500;
-		padding: 12px 16px;
-		border-bottom: none;
-	}
-
-	.el-card__body {
-		padding: 0 16px 12px 16px;
-	}
-}
-
-:deep(.menu-tree-box) {
-	.el-tree-node__content {
-		height: 36px!important;
-	}
-
-	.el-tree-node__content .el-tree-node__label .icon {
-		margin-right: 5px;
-	}
-}
-
 .custom-tree-node {
 	display: flex;
 	flex: 1;
@@ -611,11 +591,7 @@ watch(
 .custom-tree-node:hover .do {
 	display: inline-block;
 }
-.menu-card {
-	:deep(.el-card__body) {
-		width: 300px;
-	}
-}
+
 .content-warp {
 	// 300 + 28
 	width: calc(100% - 328px);

+ 1 - 1
src/views/flow/group/index.vue

@@ -21,7 +21,7 @@
 					<el-button :type="sortFlag ? 'info' : 'primary'" icon="Plus" :disabled="sortFlag" @click="createProcessEv('index')">创建审批</el-button>
 				</div>
 			</el-header>
-			<el-alert title="长按流程或分组可拖拽排序" type="warning" show-icon :closable="false" />
+			<el-alert title="长按流程或分组可拖拽排序" type="warning" show-icon />
 			<div class="mt-4">
 				<component :is="typeComponentMap[pageType]" ref="dyncComponent"></component>
 			</div>

+ 75 - 84
src/views/setting/dict/index.vue

@@ -5,47 +5,50 @@
 				<div class="bar__top"></div>
 				<div class="bar__bottom"></div>
 			</div>
-			<el-aside class="local_aside">
-				<el-container style="height: 100%">
-					<el-header>
-						<el-input v-model="groupFilterText" placeholder="输入关键字进行过滤" clearable style="margin-top: 10px" />
-					</el-header>
-					<el-main style="flex-basis: 100%; padding: 0px">
-						<el-tree
-							ref="treeRef"
-							class="menu-tree"
-							:data="treeData"
-							node-key="id"
-							:current-node-key="''"
-							:highlight-current="true"
-							:expand-on-click-node="false"
-							:props="{ label: 'name' }"
-							default-expand-all
-							:filter-node-method="filterNode"
-							@node-click="leftTreeClick"
-						>
-							<template #default="{ node, data }">
-								<span class="custom-tree-node">
-									<span class="label">{{ node.label }}</span>
-									<span class="code">{{ data.code }}</span>
-									<span class="do">
-										<el-icon @click.stop="dicEdit(data)"><Edit /></el-icon>
-										<el-icon @click.stop="dictDel(node, data)"><Delete /></el-icon>
-									</span>
-								</span>
-							</template>
-						</el-tree>
-					</el-main>
-					<el-footer style="height: 51px">
-						<el-button type="primary" style="width: 100%" @click="addHandler('tree')">
-							<el-icon>
-								<Plus />
-							</el-icon>
-							字典分类
-						</el-button>
-					</el-footer>
-				</el-container>
-			</el-aside>
+			<el-card class="h-full border-none menu-card" shadow="never">
+				<template #header>
+					<div class="flex justify-between">
+						<div class="card-header">
+							<span>字典分类</span>
+						</div>
+						<div class="">
+							<el-space>
+								<el-icon :style="{ color: 'var(--el-color-primary)' }" class="cursor-pointer" size="22" @click="addHandler('tree')"
+									><Plus />
+								</el-icon>
+								<el-icon class="cursor-pointer" size="22" @click="getGroup"><Refresh /></el-icon>
+							</el-space>
+						</div>
+					</div>
+				</template>
+
+				<el-input v-model="groupFilterText" placeholder="输入关键字进行过滤" clearable />
+				<el-tree
+					ref="treeRef"
+					v-loading="showGroupLoading"
+					class="menu-tree-box py-3"
+					:data="treeData"
+					node-key="id"
+					:current-node-key="''"
+					:highlight-current="true"
+					:expand-on-click-node="false"
+					:props="{ label: 'name' }"
+					default-expand-all
+					:filter-node-method="filterNode"
+					@node-click="leftTreeClick"
+				>
+					<template #default="{ node, data }">
+						<span class="custom-tree-node">
+							<span class="label">{{ node.label }}</span>
+							<span class="code">{{ data.code }}</span>
+							<span class="do">
+								<el-icon :style="{ color: 'var(--el-color-primary)' }" size="24" @click.stop="dicEdit(data)"><Edit /></el-icon>
+								<el-icon :style="{ color: 'var(--el-color-error)' }" size="24" @click.stop="dictDel(node, data)"><Delete /></el-icon>
+							</span>
+						</span>
+					</template>
+				</el-tree>
+			</el-card>
 		</div>
 		<div class="content-warp flex-column-page-wrap">
 			<!-- 公用搜索组件 -->
@@ -74,7 +77,11 @@
 
 				<template #actionSlot="{ row }">
 					<div class="flex flex-align-pack-center">
-						<LeIcon class="text-lg text-icon-color cursor-pointer icon-mage--edit" icon-class="icon-processInfo-mage--edit" @click="table_edit(row)" />
+						<LeIcon
+							class="text-lg text-icon-color cursor-pointer icon-mage--edit"
+							icon-class="icon-processInfo-mage--edit"
+							@click="table_edit(row)"
+						/>
 
 						<LeIcon class="text-lg ml-2 text-rose-700 cursor-pointer" icon-class="icon-processInfo-iconoir--trash" @click="table_del(row)" />
 					</div>
@@ -99,7 +106,7 @@ import dict from '@/api/system/dict'
 import { computed, nextTick, ref, watch } from 'vue'
 import { ElMessage, ElTree, ElMessageBox } from 'element-plus'
 import { useTablePage } from '@/hooks/useTablePage'
-import { Plus, Delete, Edit } from '@element-plus/icons-vue'
+import { Plus, Delete, Edit, Refresh } from '@element-plus/icons-vue'
 
 const isCollapsed = ref(false)
 const visible = ref(false) // 弹窗显示隐藏
@@ -444,56 +451,40 @@ watch(groupFilterText, val => {
 	font-size: 14px;
 	padding-right: 24px;
 	height: 100%;
-}
-
-.custom-tree-node .code {
-	font-size: 12px;
-	color: #999;
-}
-
-.custom-tree-node {
-	.do {
-		display: none;
-	}
-}
-
-.custom-tree-node .do i {
-	margin-left: 3px;
-	color: #999;
-	padding: 3px;
-	font-size: 20px;
-}
-
-.custom-tree-node .do i:hover {
-	color: #333;
-}
-
-.custom-tree-node {
 	&:hover {
 		.code {
 			display: none;
 		}
+		.do {
+			display: inline-block;
+		}
+	}
+	.do {
+		display: none;
+	}
+	.code {
+		font-size: 12px;
+		color: var(--el-color-primary);
+	}
+	.do i {
+		margin-left: 3px;
+		color: #999;
+		padding: 3px;
+		font-size: 20px;
+		&:hover {
+			color: #333;
+		}
 	}
 }
 
-.custom-tree-node:hover .do {
-	display: inline-block;
-}
 .content-warp {
-	// 260 + 28
-	width: calc(100% - 288px);
+	// 300 + 28
+	width: calc(100% - 328px);
 }
-.aside-wrap {
-	background-color: var(--el-bg-color);
-	.local_aside {
-		height: 100%;
-		width: 260px;
-	}
-	&--collapsed {
-		margin-left: -10px;
-		.local_aside {
-			width: 0;
-		}
+.aside-wrap--collapsed {
+	margin-left: -10px;
+	.menu-card {
+		width: 0;
 	}
 }
 </style>