lz 3 gadi atpakaļ
vecāks
revīzija
fd6aa8205a

+ 2 - 2
src/store/modules/user.js

@@ -54,7 +54,7 @@ const user = {
 				getInfo()
 				getInfo()
 					.then((res) => {
 					.then((res) => {
 						const user = res.user
 						const user = res.user
-						const avatar = user.avatar == '' ? require('@/assets/images/profile.jpg') : process.env.VUE_APP_BASE_API + user.avatar
+						//const avatar = user.avatar == '' ? require('@/assets/images/profile.jpg') : process.env.VUE_APP_BASE_API + user.avatar
 						if (res.roles && res.roles.length > 0) {
 						if (res.roles && res.roles.length > 0) {
 							// 验证返回的roles是否是一个非空数组
 							// 验证返回的roles是否是一个非空数组
 							commit('SET_ROLES', res.roles)
 							commit('SET_ROLES', res.roles)
@@ -63,7 +63,7 @@ const user = {
 							commit('SET_ROLES', ['ROLE_DEFAULT'])
 							commit('SET_ROLES', ['ROLE_DEFAULT'])
 						}
 						}
 						commit('SET_NAME', user.userName)
 						commit('SET_NAME', user.userName)
-						commit('SET_AVATAR', avatar)
+						//commit('SET_AVATAR', avatar)
 						resolve(res)
 						resolve(res)
 					})
 					})
 					.catch((error) => {
 					.catch((error) => {

+ 1 - 3
src/views/stock/goods/index.vue

@@ -59,9 +59,7 @@
 		methods: {
 		methods: {
 			filterNode() {}
 			filterNode() {}
 		},
 		},
-		components: {
-			Upload
-		}
+		components: {}
 	}
 	}
 </script>
 </script>
 
 

+ 722 - 655
src/views/system/role/index.vue

@@ -1,17 +1,17 @@
 <template>
 <template>
-  <div class="app-container">
-    <div class="item">
-      <div class="left_tag">
-        <div class="role border_role" :class="{activeClass: over == 1}" @click="getRole">角色</div>
-        <div class="role functional" :class="{activeClass: over == 2}" @click="getFunctionalAuthority">功能权限</div>
-        <div class="role" :class="{activeClass: over == 3}" @click="getHeaderPermission">表头权限</div>
-      </div>
-      <div class="right_add">
-        <el-button type="primary" icon="el-icon-plus" class="add_btn" @click="handleAdd" v-show="roleShow" v-hasPermi="['system:role:add']">添加</el-button>
-      </div>
-    </div>
-    <!-- 编辑按钮 -->
-    <!-- <el-row :gutter="10" class="mb8">
+	<div class="app-container">
+		<div class="item">
+			<div class="left_tag">
+				<div class="role border_role" :class="{ activeClass: over == 1 }" @click="getRole">角色</div>
+				<div class="role functional" :class="{ activeClass: over == 2 }" @click="getFunctionalAuthority">功能权限</div>
+				<div class="role" :class="{ activeClass: over == 3 }" @click="getHeaderPermission">表头权限</div>
+			</div>
+			<div class="right_add">
+				<el-button type="primary" icon="el-icon-plus" class="add_btn" @click="handleAdd" v-show="roleShow" v-hasPermi="['system:role:add']">添加</el-button>
+			</div>
+		</div>
+		<!-- 编辑按钮 -->
+		<!-- <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
       <el-col :span="1.5">
         <el-button
         <el-button
           type="primary"
           type="primary"
@@ -57,88 +57,85 @@
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row> -->
     </el-row> -->
 
 
-    <!-- 角色列表 -->
-    <el-table v-loading="loading" :data="roleList" :row-class-name="tableRowClassName" :row-style="selectedstyle" border class="roleTable" @row-click="roleLineClick" @row-dblclick="roleLineDbclick" v-show="roleShow">
-      <el-table-column label="名称" prop="roleName" width="198" />
-      <el-table-column label="描述" prop="remark" width="416" />
-      <el-table-column label="创建时间" prop="createTime" width="200">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="状态" width="117" prop="status">
-        <template slot-scope="scope">
-          <span>{{ scope.row.status == 0? '正常': '停用' }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" class-name="small-padding fixed-width" width="222">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            v-hasPermi="['system:role:edit']"
-            @click="handleUpdate(scope.row)"
-          >编辑</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-remove-outline"
-            @click="handleStatusChange(scope.row)"
-          >{{ scope.row.status == '0'? '禁用': '启用' }}</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete-solid"
-            v-hasPermi="['system:role:remove']"
-            @click="handleDelete(scope.row)"
-          >删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
+		<!-- 角色列表 -->
+		<el-table
+			v-loading="loading"
+			:data="roleList"
+			:row-class-name="tableRowClassName"
+			:row-style="selectedstyle"
+			border
+			class="roleTable"
+			@row-click="roleLineClick"
+			@row-dblclick="roleLineDbclick"
+			v-show="roleShow"
+		>
+			<el-table-column label="名称" prop="roleName" width="198" />
+			<el-table-column label="描述" prop="remark" width="416" />
+			<el-table-column label="创建时间" prop="createTime" width="200">
+				<template slot-scope="scope">
+					<span>{{ parseTime(scope.row.createTime) }}</span>
+				</template>
+			</el-table-column>
+			<el-table-column label="状态" width="117" prop="status">
+				<template slot-scope="scope">
+					<span>{{ scope.row.status == 0 ? '正常' : '停用' }}</span>
+				</template>
+			</el-table-column>
+			<el-table-column label="操作" class-name="small-padding fixed-width" width="222">
+				<template slot-scope="scope">
+					<el-button size="mini" type="text" icon="el-icon-edit" v-hasPermi="['system:role:edit']" @click="handleUpdate(scope.row)">编辑</el-button>
+					<el-button size="mini" type="text" icon="el-icon-remove-outline" @click="handleStatusChange(scope.row)">{{ scope.row.status == '0' ? '禁用' : '启用' }}</el-button>
+					<el-button size="mini" type="text" icon="el-icon-delete-solid" v-hasPermi="['system:role:remove']" @click="handleDelete(scope.row)">删除</el-button>
+				</template>
+			</el-table-column>
+		</el-table>
 
 
-    <!-- 功能权限列表 -->
-    <el-table v-loading="loading" :data="FuncListTree" row-key="menuId" :tree-props="{children: 'children'}" border class="roleTable" @row-click="functionalLineClick" @row-dblclick="functionalLineDbclick" v-show="functionalShow">
-      <el-table-column label="名称" prop="menuName" width="198" />
-      <el-table-column label="描述" prop="remark" width="231" />
-      <el-table-column label="权限" prop="createTime" width="55" align="center">
-        <template slot-scope="scope">
-          <span><el-checkbox @change="handleCheckedTreeConnect($event, 'menu', scope.row)"></el-checkbox></span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            :style="{color: checkedKeys.includes(item.menuId)? '#409EFF': '#909399'}"
-            v-for="(item, index) in btnListss(scope.row.menuId)"
-            :key="index"
-            @click="updateBtn(item)"
-          ><span>{{item.menuName}}</span>
-          </el-button>
-        </template>
-      </el-table-column>
-    </el-table>
+		<!-- 功能权限列表 -->
+		<el-table
+			v-loading="loading"
+			:data="FuncListTree"
+			row-key="menuId"
+			:tree-props="{ children: 'children' }"
+			border
+			class="roleTable"
+			@row-click="functionalLineClick"
+			@row-dblclick="functionalLineDbclick"
+			v-show="functionalShow"
+		>
+			<el-table-column label="名称" prop="menuName" width="198" />
+			<el-table-column label="描述" prop="remark" width="231" />
+			<el-table-column label="权限" prop="createTime" width="55" align="center">
+				<template slot-scope="scope">
+					<span><input type="checkbox" :checked="isChecked(scope.row)" @change="handleCheckedTreeConnect($event, 'menu', scope.row)" /></span>
+				</template>
+			</el-table-column>
+			<el-table-column label="操作" class-name="small-padding fixed-width">
+				<template slot-scope="scope">
+					<el-button
+						size="mini"
+						type="text"
+						:style="{ color: checkedKeys.includes(item.menuId) ? '#409EFF' : '#909399' }"
+						v-for="(item, index) in btnListss(scope.row.menuId)"
+						:key="index"
+						@click="updateBtn(item)"
+						><span>{{ item.menuName }}</span>
+					</el-button>
+				</template>
+			</el-table-column>
+		</el-table>
 
 
-    <!-- 表头权限列表 -->
-    <el-table v-loading="loading" :data="headList" border stripe class="dataTable" @row-click="headlLineClick" v-show="headShow">
-      <el-table-column label="列表名称" width="198">{{ listName }}</el-table-column>
-      <el-table-column label="列名称" prop="columnName" width="298" />
-      <el-table-column label="状态" class-name="small-padding fixed-width" width="159">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-remove-outline"
-            :style="{color: scope.row.isShow == 0 ? '#409EFF' : '#909399'}"
-            @click="showOrHide(scope.row)"
-          >显示</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
+		<!-- 表头权限列表 -->
+		<el-table v-loading="loading" :data="headList" border stripe class="dataTable" @row-click="headlLineClick" v-show="headShow">
+			<el-table-column label="列表名称" width="198">{{ listName }}</el-table-column>
+			<el-table-column label="列名称" prop="columnName" width="298" />
+			<el-table-column label="状态" class-name="small-padding fixed-width" width="159">
+				<template slot-scope="scope">
+					<el-button size="mini" type="text" icon="el-icon-remove-outline" :style="{ color: scope.row.isShow == 0 ? '#409EFF' : '#909399' }" @click="showOrHide(scope.row)">显示</el-button>
+				</template>
+			</el-table-column>
+		</el-table>
 
 
-    <!-- <pagination
+		<!-- <pagination
       v-show="total>0"
       v-show="total>0"
       :total="total"
       :total="total"
       :page.sync="queryParams.pageNum"
       :page.sync="queryParams.pageNum"
@@ -146,13 +143,13 @@
       @pagination="getList"
       @pagination="getList"
     /> -->
     /> -->
 
 
-    <!-- 添加或修改角色配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
-        <el-form-item label="角色名称" prop="roleName">
-          <el-input v-model="form.roleName" placeholder="请输入角色名称" />
-        </el-form-item>
-        <!-- <el-form-item prop="roleKey">
+		<!-- 添加或修改角色配置对话框 -->
+		<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+			<el-form ref="form" :model="form" :rules="rules" label-width="100px">
+				<el-form-item label="角色名称" prop="roleName">
+					<el-input v-model="form.roleName" placeholder="请输入角色名称" />
+				</el-form-item>
+				<!-- <el-form-item prop="roleKey">
           <span slot="label">
           <span slot="label">
             <el-tooltip content="控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasRole('admin')`)" placement="top">
             <el-tooltip content="控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasRole('admin')`)" placement="top">
               <i class="el-icon-question"></i>
               <i class="el-icon-question"></i>
@@ -161,19 +158,15 @@
           </span>
           </span>
           <el-input v-model="form.roleKey" placeholder="请输入权限字符" />
           <el-input v-model="form.roleKey" placeholder="请输入权限字符" />
         </el-form-item> -->
         </el-form-item> -->
-        <!-- <el-form-item label="角色顺序" prop="roleSort">
+				<!-- <el-form-item label="角色顺序" prop="roleSort">
           <el-input-number v-model="form.roleSort" controls-position="right" :min="0" />
           <el-input-number v-model="form.roleSort" controls-position="right" :min="0" />
         </el-form-item> -->
         </el-form-item> -->
-        <el-form-item label="状态">
-          <el-radio-group v-model="form.status">
-            <el-radio
-              v-for="dict in dict.type.sys_normal_disable"
-              :key="dict.value"
-              :label="dict.value"
-            >{{dict.label}}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <!-- <el-form-item label="菜单权限">
+				<el-form-item label="状态">
+					<el-radio-group v-model="form.status">
+						<el-radio v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio>
+					</el-radio-group>
+				</el-form-item>
+				<!-- <el-form-item label="菜单权限">
           <el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">展开/折叠</el-checkbox>
           <el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">展开/折叠</el-checkbox>
           <el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">全选/全不选</el-checkbox>
           <el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">全选/全不选</el-checkbox>
           <el-checkbox v-model="form.menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')">父子联动</el-checkbox>
           <el-checkbox v-model="form.menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')">父子联动</el-checkbox>
@@ -188,18 +181,18 @@
             :props="defaultProps"
             :props="defaultProps"
           ></el-tree>
           ></el-tree>
         </el-form-item> -->
         </el-form-item> -->
-        <el-form-item label="描述">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
+				<el-form-item label="描述">
+					<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
+				</el-form-item>
+			</el-form>
+			<div slot="footer" class="dialog-footer">
+				<el-button type="primary" @click="submitForm">确 定</el-button>
+				<el-button @click="cancel">取 消</el-button>
+			</div>
+		</el-dialog>
 
 
-    <!-- 分配角色数据权限对话框 -->
-    <!-- <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body>
+		<!-- 分配角色数据权限对话框 -->
+		<!-- <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body>
       <el-form :model="form" label-width="80px">
       <el-form :model="form" label-width="80px">
         <el-form-item label="角色名称">
         <el-form-item label="角色名称">
           <el-input v-model="form.roleName" :disabled="true" />
           <el-input v-model="form.roleName" :disabled="true" />
@@ -239,543 +232,617 @@
         <el-button @click="cancelDataScope">取 消</el-button>
         <el-button @click="cancelDataScope">取 消</el-button>
       </div>
       </div>
     </el-dialog> -->
     </el-dialog> -->
-  </div>
+	</div>
 </template>
 </template>
 
 
 <script>
 <script>
-import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, getRoleMenuTreeselect, saveRoleMenu, getTableHeadList, authUserCancelAll, setSysTableCfgIsShow } from "@/api/system/role";
-import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
-import { treeselect as deptTreeselect, roleDeptTreeselect } from "@/api/system/dept";
-import pinyin from 'js-pinyin'
+	import {
+		listRole,
+		getRole,
+		delRole,
+		addRole,
+		updateRole,
+		dataScope,
+		changeRoleStatus,
+		getRoleMenuTreeselect,
+		saveRoleMenu,
+		getTableHeadList,
+		authUserCancelAll,
+		setSysTableCfgIsShow
+	} from '@/api/system/role'
+	import { treeselect as menuTreeselect, roleMenuTreeselect } from '@/api/system/menu'
+	import { treeselect as deptTreeselect, roleDeptTreeselect } from '@/api/system/dept'
+	import pinyin from 'js-pinyin'
+
+	export default {
+		name: 'Role',
+		dicts: ['sys_normal_disable'],
+		data() {
+			return {
+				// 遮罩层
+				loading: true,
+				// 选中数组
+				ids: [],
+				// 非单个禁用
+				single: true,
+				// 非多个禁用
+				multiple: true,
+				// 显示搜索条件
+				showSearch: true,
+				// 总条数
+				total: 0,
+				// 角色表格数据
+				roleList: [],
+				// 弹出层标题
+				title: '',
+				// 是否显示弹出层
+				open: false,
+				// 是否显示弹出层(数据权限)
+				openDataScope: false,
+				menuExpand: false,
+				menuNodeAll: false,
+				deptExpand: true,
+				deptNodeAll: false,
+				// 日期范围
+				dateRange: [],
+				// 数据范围选项
+				dataScopeOptions: [
+					{
+						value: '1',
+						label: '全部数据权限'
+					},
+					{
+						value: '2',
+						label: '自定数据权限'
+					},
+					{
+						value: '3',
+						label: '本部门数据权限'
+					},
+					{
+						value: '4',
+						label: '本部门及以下数据权限'
+					},
+					{
+						value: '5',
+						label: '仅本人数据权限'
+					}
+				],
+				// 菜单列表
+				menuOptions: [],
+				// 部门列表
+				deptOptions: [],
+				// 查询参数
+				queryParams: {
+					pageNum: 1,
+					pageSize: 10,
+					roleName: undefined,
+					roleKey: undefined,
+					status: undefined
+				},
+				// 表单参数
+				form: {},
+				form1: {},
+				defaultProps: {
+					children: 'children',
+					label: 'label'
+				},
+				// 表单校验
+				rules: {
+					roleName: [{ required: true, message: '角色名称不能为空', trigger: 'blur' }]
+				},
+				roleShow: true,
+				functionalShow: false,
+				headShow: false,
+				over: 1,
+				background: '',
+				getIndex: null,
+				getIndex1: null,
+				getIndex2: null,
+				functionList: [], // 功能权限列表
+				btnList: [], // 功能权限按钮列表
+				headList: [],
+				FuncList: [],
+				FuncListTree: [],
+				objRole: {},
+				btnsLists: [],
+				btnsList: [],
+				checkedKeys: [],
+				checked: false,
+				roleId: '',
+				listName: '',
+				menuId: ''
+			}
+		},
+		created() {
+			this.getList()
+		},
+		filters: {},
+		methods: {
+			// 角色列表
+			getRole() {
+				this.getList()
+				this.over = 1
+				this.roleShow = true
+				this.functionalShow = false
+				this.headShow = false
+			},
+			// 功能权限列表
+			getFunctionalAuthority() {
+				this.roleLineDbclick(this.objRole)
+				this.headShow = false
+			},
+			// 表头权限;列表
+			getHeaderPermission() {},
+			/** 查询角色列表 */
+			getList() {
+				this.loading = true
+				listRole(this.addDateRange(this.queryParams, this.dateRange)).then((response) => {
+					this.roleList = response.rows
+					this.total = response.total
+					this.loading = false
+				})
+			},
+			// 单击角色表格某一行 行点击事件,这里获取到的行对象(row)是没有index属性的
+			roleLineClick(row) {
+				this.getIndex = row.index
+				this.objRole = row
+			},
+			//设置行对象(row)的样式(style)
+			selectedstyle({ row, rowIndex }) {
+				if (this.getIndex === rowIndex) {
+					return {
+						'background-color': '#EBEEF5'
+					}
+				}
+			},
+			//为行对象(row)设置index属性
+			tableRowClassName({ row, rowIndex }) {
+				row.index = rowIndex
+			},
+			// 双击角色表格某一行
+			roleLineDbclick(row) {
+				this.roleId = ''
+				this.btnList = []
+				this.FuncList = []
+				this.FuncListTree = []
+				this.roleId = row.roleId
+				getRoleMenuTreeselect(row.roleId).then((res) => {
+					console.log(res)
+					this.checkedKeys = res.checkedKeys
+					this.functionList = res.menus
+					this.btnList = this.functionList.filter((item, index, c) => item.menuType == 'F')
+					this.btnsLists = this.functionList.filter((item, index, c) => item.menuType == 'C')
+					this.FuncList = this.functionList.filter((item, index, c) => item.menuType == 'M' || item.menuType == 'C')
+					this.FuncListTree = this.handleTree(this.FuncList, 'menuId', 'parentId')
+					console.log(this.FuncListTree)
+					// this.btnsLists.forEach(element => {
+					//   this.checkedKeys.forEach(e => {
+					//     if (element.menuId == e) {
+					//       element.menuCheckStrictly == true
+					//     }
+					//   })
+					// });
+				})
+				this.functionalShow = true
+				this.roleShow = false
+				this.over = 2
+			},
+			// 单击功能权限表格某一行
+			functionalLineClick(row, event, column) {
+				// this.getIndex1 = row.index;
+			},
+			// 双击功能权限表格某一行
+			functionalLineDbclick(row, event, column) {
+				console.log(row)
+				this.functionalShow = false
+				this.headShow = true
+				this.over = 3
+				this.listName = row.menuName
+				this.menuId = row.menuId
+				console.log(this.listName)
+				getTableHeadList(this.roleId, row.menuId).then((res) => {
+					console.log(res)
+					this.headList = res.data
+				})
+			},
+			// 单击表头权限表格某一行
+			headlLineClick(row, event, column) {
+				// this.getIndex2 = row.index;
+			},
+			/** 查询菜单树结构 */
+			getMenuTreeselect() {
+				menuTreeselect().then((response) => {
+					this.menuOptions = response.data
+				})
+			},
+			/** 查询部门树结构 */
+			getDeptTreeselect() {
+				deptTreeselect().then((response) => {
+					this.deptOptions = response.data
+				})
+			},
+			// 所有菜单节点数据
+			// getMenuAllCheckedKeys() {
+			//   // 目前被选中的菜单节点
+			//   let checkedKeys = this.$refs.menu.getCheckedKeys();
+			//   // 半选中的菜单节点
+			//   let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys();
+			//   checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
+			//   return checkedKeys;
+			// },
+			// // 所有部门节点数据
+			// getDeptAllCheckedKeys() {
+			//   // 目前被选中的部门节点
+			//   let checkedKeys = this.$refs.dept.getCheckedKeys();
+			//   // 半选中的部门节点
+			//   let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys();
+			//   checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
+			//   return checkedKeys;
+			// },
+			/** 根据角色ID查询菜单树结构 */
+			getRoleMenuTreeselect(roleId) {
+				return roleMenuTreeselect(roleId).then((response) => {
+					this.menuOptions = response.menus
+					return response
+				})
+			},
+			/** 根据角色ID查询部门树结构 */
+			getRoleDeptTreeselect(roleId) {
+				return roleDeptTreeselect(roleId).then((response) => {
+					this.deptOptions = response.depts
+					return response
+				})
+			},
+			// 角色状态修改
+			handleStatusChange(row) {
+				console.log(row)
+				let text = row.status === '0' ? '禁用' : '启用'
+				this.$modal
+					.confirm('确认要"' + text + '""' + row.roleName + '"角色吗?')
+					.then(function () {
+						row.status = row.status === '0' ? '1' : '0'
+						return changeRoleStatus(row.roleId, row.status)
+					})
+					.then(() => {
+						this.$modal.msgSuccess(text + '成功')
+					})
+					.catch(function () {
+						row.status = row.status === '0' ? '1' : '0'
+					})
+			},
+			updateBtn(e) {
+				let parent = this.functionList.find((item) => item.menuId == e.parentId)
+				let parents = []
+				while (parent) {
+					parents.push(parent)
+					parent = this.functionList.find((item) => item.menuId == parent.parentId)
+				}
+				let checked = !this.checkedKeys.includes(e.menuId)
+				let obj = {
+					menuId: e.menuId,
+					roleId: this.roleId
+				}
+				let arr = []
+				arr.push(obj)
+				if (checked) {
+					let sArr = [...this.checkedKeys, e.menuId]
+					parents.forEach((p) => {
+						if (this.findChildrenIds(p).every((item) => sArr.includes(item))) {
+							arr.push({
+								menuId: p.menuId,
+								roleId: this.roleId
+							})
+						}
+					})
+				} else {
+					parents.forEach((p) => {
+						arr.push({
+							menuId: p.menuId,
+							roleId: this.roleId
+						})
+					})
+				}
+				let req = JSON.stringify(arr)
+				this.form1.json = req
+				if (!checked) {
+					authUserCancelAll(arr).then((res) => {
+						if (res.code == 200) {
+							this.checkedKeys = this.checkedKeys.filter((item) => item != e.menuId)
+						}
+					})
+				} else {
+					saveRoleMenu(arr).then((res) => {
+						if (res.code == 200) {
+							this.checkedKeys.push(e.menuId)
+						}
+					})
+				}
+			},
+			showOrHide(row) {
+				console.log(row)
+				let iss = row.isShow === 1 || row.isShow === null ? 0 : 1
+				setSysTableCfgIsShow(row.id, iss, this.menuId, this.roleId).then((res) => {
+					console.log(res)
+					if (res.code == 200) {
+						row.isShow = row.isShow == 1 || row.isShow == null ? 0 : 1
+					}
+				})
+			},
+			// 取消按钮
+			cancel() {
+				this.open = false
+				this.reset()
+			},
+			// 取消按钮(数据权限)
+			cancelDataScope() {
+				this.openDataScope = false
+				this.reset()
+			},
+			// 表单重置
+			reset() {
+				// if (this.$refs.menu != undefined) {
+				//   this.$refs.menu.setCheckedKeys([]);
+				// }
+				;(this.menuExpand = false),
+					(this.menuNodeAll = false),
+					(this.deptExpand = true),
+					(this.deptNodeAll = false),
+					(this.form = {
+						roleId: undefined,
+						roleName: undefined,
+						roleKey: undefined,
+						roleSort: 0,
+						status: '0',
+						menuIds: [],
+						deptIds: [],
+						menuCheckStrictly: true,
+						deptCheckStrictly: true,
+						remark: undefined
+					})
+				this.resetForm('form')
+			},
+			/** 搜索按钮操作 */
+			handleQuery() {
+				this.queryParams.pageNum = 1
+				this.getList()
+			},
+			/** 重置按钮操作 */
+			resetQuery() {
+				this.dateRange = []
+				this.resetForm('queryForm')
+				this.handleQuery()
+			},
+			// 树权限(展开/折叠)
+			handleCheckedTreeExpand(value, type) {
+				if (type == 'menu') {
+					let treeList = this.menuOptions
+					for (let i = 0; i < treeList.length; i++) {
+						this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value
+					}
+				} else if (type == 'dept') {
+					let treeList = this.deptOptions
+					for (let i = 0; i < treeList.length; i++) {
+						this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value
+					}
+				}
+			},
+			// 树权限(全选/全不选)
+			// handleCheckedTreeNodeAll(value, type) {
+			//   if (type == 'menu') {
+			//     this.$refs.menu.setCheckedNodes(value ? this.menuOptions: []);
+			//   } else if (type == 'dept') {
+			//     this.$refs.dept.setCheckedNodes(value ? this.deptOptions: []);
+			//   }
+			// },
+			// 树权限(父子联动)
+			handleCheckedTreeConnect(e, type, item) {
+				let value = e.target.checked
+				let ids = this.findChildrenIds(item)
+				let objs = ids.map((m) => {
+					return {
+						menuId: m,
+						roleId: this.roleId
+					}
+				})
+				objs.push({
+					menuId: item.menuId,
+					roleId: this.roleId
+				})
+				if (value) {
+					saveRoleMenu(objs).then((res) => {
+						if (res.code == 200) {
+							this.checkedKeys = [...new Set(this.checkedKeys.concat(ids))]
+						}
+					})
+				} else {
+					authUserCancelAll(objs).then((res) => {
+						if (res.code == 200) {
+							this.checkedKeys = this.checkedKeys.filter((f) => !ids.includes(f))
+						}
+					})
+				}
+			},
+			/** 新增按钮操作 */
+			handleAdd() {
+				this.reset()
+				this.getMenuTreeselect()
+				this.open = true
+				this.title = '添加角色'
+			},
+			/** 修改按钮操作 */
+			handleUpdate(row) {
+				this.reset()
+				const roleId = row.roleId || this.ids
+				// const roleMenu = this.getRoleMenuTreeselect(roleId);
+				getRole(roleId).then((response) => {
+					this.form = response.data
+					this.open = true
+					// this.$nextTick(() => {
+					//   roleMenu.then(res => {
+					//     let checkedKeys = res.checkedKeys
+					//     checkedKeys.forEach((v) => {
+					//         this.$nextTick(()=>{
+					//             this.$refs.menu.setChecked(v, true ,false);
+					//         })
+					//     })
+					//   });
+					// });
+					this.title = '修改角色'
+				})
+			},
+			/** 选择角色权限范围触发 */
+			// dataScopeSelectChange(value) {
+			//   if(value !== '2') {
+			//     this.$refs.dept.setCheckedKeys([]);
+			//   }
+			// },
+			/** 分配数据权限操作 */
+			handleDataScope(row) {
+				this.reset()
+				const roleDeptTreeselect = this.getRoleDeptTreeselect(row.roleId)
+				getRole(row.roleId).then((response) => {
+					this.form = response.data
+					this.openDataScope = true
+					// this.$nextTick(() => {
+					//   roleDeptTreeselect.then(res => {
+					//     this.$refs.dept.setCheckedKeys(res.checkedKeys);
+					//   });
+					// });
+					this.title = '分配数据权限'
+				})
+			},
+			/** 分配用户操作 */
+			handleAuthUser: function (row) {
+				const roleId = row.roleId
+				this.$router.push('/system/role-auth/user/' + roleId)
+			},
+			/** 提交按钮 */
+			submitForm: function () {
+				this.$refs['form'].validate((valid) => {
+					if (valid) {
+						if (this.form.roleId != undefined) {
+							// this.form.menuIds = this.getMenuAllCheckedKeys();
+							this.form.menuIds = []
+							updateRole(this.form).then((response) => {
+								console.log(response)
+								this.$modal.msgSuccess('修改成功')
+								this.open = false
+								this.getList()
+							})
+						} else {
+							// this.form.menuIds = this.getMenuAllCheckedKeys();
+							let val = this.form.roleName
+							this.form.roleKey = pinyin.getFullChars(val)
+							addRole(this.form).then((response) => {
+								this.$modal.msgSuccess('新增成功')
+								this.open = false
+								this.getList()
+							})
+						}
+					}
+				})
+			},
+			/** 提交按钮(数据权限) */
+			submitDataScope: function () {
+				if (this.form.roleId != undefined) {
+					this.form.deptIds = this.getDeptAllCheckedKeys()
+					dataScope(this.form).then((response) => {
+						this.$modal.msgSuccess('修改成功')
+						this.openDataScope = false
+						this.getList()
+					})
+				}
+			},
+			/** 删除按钮操作 */
+			handleDelete(row) {
+				const roleIds = row.roleId || this.ids
+				this.$modal
+					.confirm('是否确认删除角色编号为"' + roleIds + '"的数据项?')
+					.then(function () {
+						return delRole(roleIds)
+					})
+					.then(() => {
+						this.getList()
+						this.$modal.msgSuccess('删除成功')
+					})
+					.catch(() => {})
+			},
+			/** 导出按钮操作 */
+			handleExport() {
+				this.download(
+					'system/role/export',
+					{
+						...this.queryParams
+					},
+					`role_${new Date().getTime()}.xlsx`
+				)
+			},
 
 
-export default {
-  name: "Role",
-  dicts: ['sys_normal_disable'],
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 角色表格数据
-      roleList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 是否显示弹出层(数据权限)
-      openDataScope: false,
-      menuExpand: false,
-      menuNodeAll: false,
-      deptExpand: true,
-      deptNodeAll: false,
-      // 日期范围
-      dateRange: [],
-      // 数据范围选项
-      dataScopeOptions: [
-        {
-          value: "1",
-          label: "全部数据权限"
-        },
-        {
-          value: "2",
-          label: "自定数据权限"
-        },
-        {
-          value: "3",
-          label: "本部门数据权限"
-        },
-        {
-          value: "4",
-          label: "本部门及以下数据权限"
-        },
-        {
-          value: "5",
-          label: "仅本人数据权限"
-        }
-      ],
-      // 菜单列表
-      menuOptions: [],
-      // 部门列表
-      deptOptions: [],
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        roleName: undefined,
-        roleKey: undefined,
-        status: undefined
-      },
-      // 表单参数
-      form: {},
-      form1: {},
-      defaultProps: {
-        children: "children",
-        label: "label"
-      },
-      // 表单校验
-      rules: {
-        roleName: [
-          { required: true, message: "角色名称不能为空", trigger: "blur" }
-        ],
-      },
-      roleShow: true,
-      functionalShow: false,
-      headShow: false,
-      over: 1,
-      background: '',
-      getIndex: null,
-      getIndex1: null,
-      getIndex2: null,
-      functionList: [], // 功能权限列表
-      btnList: [], // 功能权限按钮列表
-      headList: [],
-      FuncList: [], 
-      FuncListTree: [],
-      objRole: {},
-      btnsLists: [],
-      btnsList: [],
-      checkedKeys: [],
-      checked: false,
-      roleId: '',
-      listName: '',
-      menuId: '',
-    };
-  },
-  created() {
-    this.getList();
-  },
-  filters: {},
-  methods: {
-    // 角色列表
-    getRole() {
-      this.getList()
-      this.over = 1
-      this.roleShow = true
-      this.functionalShow = false
-      this.headShow = false
-    },
-    // 功能权限列表
-    getFunctionalAuthority() {
-      this.roleLineDbclick(this.objRole)
-      this.headShow = false
-    },
-    // 表头权限;列表
-    getHeaderPermission() {},
-    /** 查询角色列表 */
-    getList() {
-      this.loading = true;
-      listRole(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-          this.roleList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
-    },
-    // 单击角色表格某一行 行点击事件,这里获取到的行对象(row)是没有index属性的
-    roleLineClick(row) {
-      this.getIndex = row.index;
-      this.objRole = row
-    },
-    //设置行对象(row)的样式(style)
-    selectedstyle({ row, rowIndex }) {
-      if (this.getIndex === rowIndex) {
-        return {
-          "background-color": "#EBEEF5",
-        };
-      }
-    },
-    //为行对象(row)设置index属性
-    tableRowClassName({ row, rowIndex }) {
-      row.index = rowIndex;
-    },
-    // 双击角色表格某一行
-    roleLineDbclick(row) {
-      this.roleId = ''
-      this.btnList = []
-      this.FuncList = []
-      this.FuncListTree = []
-      this.roleId = row.roleId
-      getRoleMenuTreeselect(row.roleId).then(res => {
-        console.log(res)
-        this.checkedKeys = res.checkedKeys
-        this.functionList = res.menus
-        this.btnList = this.functionList.filter((item, index, c) => item.menuType == 'F');
-        this.btnsLists = this.functionList.filter((item, index, c) => item.menuType == 'C');
-        this.FuncList = this.functionList.filter((item, index, c) => item.menuType == 'M' || item.menuType == 'C');
-        this.FuncListTree = this.handleTree(this.FuncList, "menuId",'parentId');
-        console.log(this.FuncListTree)
-        // this.btnsLists.forEach(element => {
-        //   this.checkedKeys.forEach(e => {
-        //     if (element.menuId == e) {
-        //       element.menuCheckStrictly == true
-        //     }
-        //   })
-        // });
-      })
-      this.functionalShow = true
-      this.roleShow = false
-      this.over = 2
-    },
-    // 单击功能权限表格某一行
-    functionalLineClick(row, event, column) {
-      // this.getIndex1 = row.index;
-    },
-    // 双击功能权限表格某一行
-    functionalLineDbclick(row, event, column) {
-      console.log(row)
-      this.functionalShow = false
-      this.headShow = true
-      this.over = 3
-      this.listName = row.menuName
-      this.menuId = row.menuId
-      console.log(this.listName)
-      getTableHeadList(this.roleId, row.menuId).then(res => {
-        console.log(res)
-        this.headList = res.data
-      })
-    },
-    // 单击表头权限表格某一行
-    headlLineClick(row, event, column) {
-      // this.getIndex2 = row.index;
-    },
-    /** 查询菜单树结构 */
-    getMenuTreeselect() {
-      menuTreeselect().then(response => {
-        this.menuOptions = response.data;
-      });
-    },
-    /** 查询部门树结构 */
-    getDeptTreeselect() {
-      deptTreeselect().then(response => {
-        this.deptOptions = response.data;
-      });
-    },
-    // 所有菜单节点数据
-    // getMenuAllCheckedKeys() {
-    //   // 目前被选中的菜单节点
-    //   let checkedKeys = this.$refs.menu.getCheckedKeys();
-    //   // 半选中的菜单节点
-    //   let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys();
-    //   checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
-    //   return checkedKeys;
-    // },
-    // // 所有部门节点数据
-    // getDeptAllCheckedKeys() {
-    //   // 目前被选中的部门节点
-    //   let checkedKeys = this.$refs.dept.getCheckedKeys();
-    //   // 半选中的部门节点
-    //   let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys();
-    //   checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
-    //   return checkedKeys;
-    // },
-    /** 根据角色ID查询菜单树结构 */
-    getRoleMenuTreeselect(roleId) {
-      return roleMenuTreeselect(roleId).then(response => {
-        this.menuOptions = response.menus;
-        return response;
-      });
-    },
-    /** 根据角色ID查询部门树结构 */
-    getRoleDeptTreeselect(roleId) {
-      return roleDeptTreeselect(roleId).then(response => {
-        this.deptOptions = response.depts;
-        return response;
-      });
-    },
-    // 角色状态修改
-    handleStatusChange(row) {
-      console.log(row)
-      let text = row.status === "0" ? "禁用" : "启用";
-      this.$modal.confirm('确认要"' + text + '""' + row.roleName + '"角色吗?').then(function() {
-        row.status = row.status === "0" ? "1" : "0";
-        return changeRoleStatus(row.roleId, row.status);
-      }).then(() => {
-        this.$modal.msgSuccess(text + "成功");
-      }).catch(function() {
-        row.status = row.status === "0" ? "1" : "0";
-      });
-    },
-    updateBtn(e) {
-      console.log(e)
-      let obj = {
-        menuId: e.menuId,
-        roleId: this.roleId
-      }
-      let arr = []
-      arr.push(obj)
-      let req = JSON.stringify(arr);
-      this.form1.json = req;
-      if (this.checkedKeys.includes(e.menuId)) {
-        authUserCancelAll(arr).then(res => {
-          if (res.code == 200) {
-            this.checkedKeys = this.checkedKeys.filter(item => item!= e.menuId)
-          }
-        })
-      }else{
-        saveRoleMenu(arr).then(res => {
-          if (res.code == 200) {
-            this.checkedKeys.push(e.menuId)
-          }
-        })
-      }
-    },
-    showOrHide(row) {
-      console.log(row)
-      let iss = row.isShow === 1  || row.isShow === null ? 0 : 1;
-      setSysTableCfgIsShow(row.id, iss, this.menuId, this.roleId).then(res => {
-        console.log(res)
-        if (res.code == 200) {
-          row.isShow = row.isShow == 1 || row.isShow == null? 0 : 1
-        }
-      })
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 取消按钮(数据权限)
-    cancelDataScope() {
-      this.openDataScope = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      // if (this.$refs.menu != undefined) {
-      //   this.$refs.menu.setCheckedKeys([]);
-      // }
-      this.menuExpand = false,
-      this.menuNodeAll = false,
-      this.deptExpand = true,
-      this.deptNodeAll = false,
-      this.form = {
-        roleId: undefined,
-        roleName: undefined,
-        roleKey: undefined,
-        roleSort: 0,
-        status: "0",
-        menuIds: [],
-        deptIds: [],
-        menuCheckStrictly: true,
-        deptCheckStrictly: true,
-        remark: undefined
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 树权限(展开/折叠)
-    handleCheckedTreeExpand(value, type) {
-      if (type == 'menu') {
-        let treeList = this.menuOptions;
-        for (let i = 0; i < treeList.length; i++) {
-          this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
-        }
-      } else if (type == 'dept') {
-        let treeList = this.deptOptions;
-        for (let i = 0; i < treeList.length; i++) {
-          this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value;
-        }
-      }
-    },
-    // 树权限(全选/全不选)
-    // handleCheckedTreeNodeAll(value, type) {
-    //   if (type == 'menu') {
-    //     this.$refs.menu.setCheckedNodes(value ? this.menuOptions: []);
-    //   } else if (type == 'dept') {
-    //     this.$refs.dept.setCheckedNodes(value ? this.deptOptions: []);
-    //   }
-    // },
-    // 树权限(父子联动)
-    handleCheckedTreeConnect(value, type, item) {
-      console.log(item)
-      if (this.checkedKeys.length > 0) {
-        // this.checkedKeys.forEach(element => {
-        //   if (item.menuId == element) {
-        //     this.checked = true
-        //   }
-        // });
-      }
-      if (type == 'menu') {
-        item.menuCheckStrictly = value ? true: false;
-      } else if (type == 'dept') {
-        this.form.deptCheckStrictly = value ? true: false;
-      }
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.getMenuTreeselect();
-      this.open = true;
-      this.title = "添加角色";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const roleId = row.roleId || this.ids
-      // const roleMenu = this.getRoleMenuTreeselect(roleId);
-      getRole(roleId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        // this.$nextTick(() => {
-        //   roleMenu.then(res => {
-        //     let checkedKeys = res.checkedKeys
-        //     checkedKeys.forEach((v) => {
-        //         this.$nextTick(()=>{
-        //             this.$refs.menu.setChecked(v, true ,false);
-        //         })
-        //     })
-        //   });
-        // });
-        this.title = "修改角色";
-      });
-    },
-    /** 选择角色权限范围触发 */
-    // dataScopeSelectChange(value) {
-    //   if(value !== '2') {
-    //     this.$refs.dept.setCheckedKeys([]);
-    //   }
-    // },
-    /** 分配数据权限操作 */
-    handleDataScope(row) {
-      this.reset();
-      const roleDeptTreeselect = this.getRoleDeptTreeselect(row.roleId);
-      getRole(row.roleId).then(response => {
-        this.form = response.data;
-        this.openDataScope = true;
-        // this.$nextTick(() => {
-        //   roleDeptTreeselect.then(res => {
-        //     this.$refs.dept.setCheckedKeys(res.checkedKeys);
-        //   });
-        // });
-        this.title = "分配数据权限";
-      });
-    },
-    /** 分配用户操作 */
-    handleAuthUser: function(row) {
-      const roleId = row.roleId;
-      this.$router.push("/system/role-auth/user/" + roleId);
-    },
-    /** 提交按钮 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.roleId != undefined) {
-            // this.form.menuIds = this.getMenuAllCheckedKeys();
-            this.form.menuIds = []
-            updateRole(this.form).then(response => {
-              console.log(response)
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            // this.form.menuIds = this.getMenuAllCheckedKeys();
-            let val = this.form.roleName
-            this.form.roleKey = pinyin.getFullChars(val)
-            addRole(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 提交按钮(数据权限) */
-    submitDataScope: function() {
-      if (this.form.roleId != undefined) {
-        this.form.deptIds = this.getDeptAllCheckedKeys();
-        dataScope(this.form).then(response => {
-          this.$modal.msgSuccess("修改成功");
-          this.openDataScope = false;
-          this.getList();
-        });
-      }
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const roleIds = row.roleId || this.ids;
-      this.$modal.confirm('是否确认删除角色编号为"' + roleIds + '"的数据项?').then(function() {
-        return delRole(roleIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('system/role/export', {
-        ...this.queryParams
-      }, `role_${new Date().getTime()}.xlsx`)
-    }
-  },
-  computed: {
-    btnListss() {
-      return function(pid){
-        return this.btnList.filter(item=>item.parentId == pid)
-      }
-    },
-  },
-};
+			//寻找子id集合
+			findChildrenIds(parent) {
+				if (parent.menuType == 'M') {
+					let childIds = parent.children.map((item) => item.menuId)
+					let btnIds = this.btnList.filter((item) => childIds.includes(item.parentId)).map((item) => item.menuId)
+					return childIds.concat(btnIds)
+				} else if (parent.menuType == 'C') {
+					return this.btnList.filter((item) => item.parentId == parent.menuId).map((item) => item.menuId)
+				}
+			}
+		},
+		computed: {
+			btnListss() {
+				return function (pid) {
+					return this.btnList.filter((item) => item.parentId == pid)
+				}
+			},
+			isChecked() {
+				return function (obj) {
+					return this.findChildrenIds(obj).every((item) => this.checkedKeys.includes(item))
+				}
+			}
+		}
+	}
 </script>
 </script>
 <style scoped>
 <style scoped>
-.role{
-  width: 90px;
-  height: 40px;
-  text-align: center;
-  line-height: 40px;
-  font-size: 14px;
-  border: 1px solid #dfe6ec;
-  border-bottom: none;
-}
-.roleTable{
-  width: 1154px;
-}
-.add_btn{
-  width: 80px;
-  height: 35px;
-  text-align: center;
-}
-.item{
-  width: 1154px;
-  display: flex;
-  justify-content: space-between;
-}
-.dataTable{
-  width: 656px;
-}
-.left_tag{
-  display: flex;
-}
-.border_role{
-  border-right: none;
-}
-.functional{
-  border-right: none;
-}
-.activeClass{
-  color: #409EFF;
-}
-.tableRowClassName{
-  background: olive;
-}
-</style>
+	.role {
+		width: 90px;
+		height: 40px;
+		text-align: center;
+		line-height: 40px;
+		font-size: 14px;
+		border: 1px solid #dfe6ec;
+		border-bottom: none;
+	}
+	.roleTable {
+		width: 1154px;
+	}
+	.add_btn {
+		width: 80px;
+		height: 35px;
+		text-align: center;
+	}
+	.item {
+		width: 1154px;
+		display: flex;
+		justify-content: space-between;
+	}
+	.dataTable {
+		width: 656px;
+	}
+	.left_tag {
+		display: flex;
+	}
+	.border_role {
+		border-right: none;
+	}
+	.functional {
+		border-right: none;
+	}
+	.activeClass {
+		color: #409eff;
+	}
+	.tableRowClassName {
+		background: olive;
+	}
+</style>

+ 3 - 21
src/views/system/tableHead/index.vue

@@ -279,27 +279,9 @@
 			},
 			},
 			//重名检测
 			//重名检测
 			checkName(data) {
 			checkName(data) {
-				let checkColumnName = this.tableHeadList.find((item) => {
-					if (data.id) {
-						return item.columnName == data.columnName && item.id != data.id
-					} else {
-						return item.columnName == data.columnName
-					}
-				})
-				let checkUiColumn = this.tableHeadList.find((item) => {
-					if (data.id) {
-						return item.uiColumn == data.uiColumn && item.id != data.id
-					} else {
-						return item.uiColumn == data.uiColumn
-					}
-				})
-				let checkApiColum = this.tableHeadList.find((item) => {
-					if (data.id) {
-						return item.apiColum == data.apiColum && item.id != data.id
-					} else {
-						return item.apiColum == data.apiColum
-					}
-				})
+				let checkColumnName = this.tableHeadList.find((item) => item.columnName == data.columnName && item.id != data.id)
+				let checkUiColumn = this.tableHeadList.find((item) => item.uiColumn == data.uiColumn && item.id != data.id)
+				let checkApiColum = this.tableHeadList.find((item) => item.apiColum == data.apiColum && item.id != data.id)
 				if (checkColumnName) {
 				if (checkColumnName) {
 					return '列名称重复'
 					return '列名称重复'
 				}
 				}