| 
					
				 | 
			
			
				@@ -2,7 +2,16 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { ref, reactive, nextTick } from 'vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import TableBase from '@/components/TableBase/index.vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import type { ColumnProps } from '@/components/TableBase/interface/index' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { User_Power_List, User_Sys_List, Menu_List, User_Power_Add, User_Power_Del } from '@/api/role/index' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  User_Power_List, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  User_Sys_List, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Menu_List, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  User_Power_Get, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  User_Power_Add, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  User_Power_Del, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  User_Power_Edit, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  User_Power_Edit_Menu 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} from '@/api/role/index' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { Edit, Delete, Operation } from '@element-plus/icons-vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import Dialog from '@/components/dialog/Dialog.vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import Drawer from '@/components/Drawer/index.vue' 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -11,14 +20,17 @@ import type { FormInstance, FormRules } from 'element-plus' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { ElNotification, ElMessageBox, ElMessage } from 'element-plus' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const globalStore = GlobalStore() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 权限 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const dialog = ref() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const TableRef = ref() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let currentVal: any = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const DialogOpen = async (row: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  console.log(row) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  currentVal = row 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   await getSysList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   dialog.value.DialogOpen() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const checkList = ref() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const checkList = ref<string[]>([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const columns: ColumnProps[] = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { type: 'index', label: '#', width: 80 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { prop: 'T_name', label: '姓名' }, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -30,6 +42,7 @@ interface InSys { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   T_sys: string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   T_name: string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   children: any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  checkList: string[] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let SysList = ref<InSys[]>([]) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -37,20 +50,56 @@ const getSysList = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const { Data } = await User_Sys_List({ User_tokey: globalStore.GET_User_tokey }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   SysList.value = Data as InSys[] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// let MenuList = reactive([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const getMenuList = async (code: string) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  const res = await Menu_List({ User_tokey: globalStore.GET_User_tokey, T_code: code }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // User_Power_Get 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const res: any = await User_Power_Get({ User_tokey: globalStore.GET_User_tokey, T_code: code, T_id: currentVal.T_id }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const sys = SysList.value.find(item => item.T_sys === code) as InSys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  console.log(SysList, sys, res) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  sys.children = res.Data.Data[0].Children 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  console.log(res) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  sys.children = res.Data.Menu[0].Children 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (res.Data.Menu_checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sys.checkList = sys.children.map((m: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (res.Data.Menu_checked.includes(m.Id)) return m.T_name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sys.checkList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const submitUserRole = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  console.log(checkList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const submitUserRole = async (item: InSys) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  console.log(checkList.value, currentVal, item, SysList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let Sys: any = SysList.value.find(sys => item.T_sys === sys.T_sys) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let childs = Sys?.children.filter((child: InSys) => Sys.checkList.includes(child.T_name)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let T_menu = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (childs.length > 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    childs.forEach((f: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let str = 'M' + f.Id + '|' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      T_menu += str 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    T_menu = 'M' + childs[0].Id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const params = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    User_tokey: globalStore.GET_User_tokey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    T_id: currentVal.T_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    T_code: item.T_sys, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    T_menu 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  console.log(params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // const res = await User_Power_Edit_Menu(params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // if (res.Code === 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   ElMessage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     type: 'success', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //     message: '修改成功!' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   dialog.value.DialogClose() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   checkList.value = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const initParam = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   User_tokey: globalStore.GET_User_tokey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  page: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  page_z: 10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  T_name: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 添加角色 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -69,12 +118,13 @@ const callbackDrawer = (done: Fn) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const openDrawer = (type: string, row?: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   isNew.value = type === 'new' ? true : false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    !isNew.value && (form.name = row.T_name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    !isNew.value && ((form.name = row.T_name), (form.id = row.T_id)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  drawerRef.value.closeDrawer() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  drawerRef.value.openDrawer() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const form = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  name: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  id: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const resetForm = (formEl: FormInstance | undefined) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (!formEl) return 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -84,15 +134,24 @@ const AddUserName = (formEl: FormInstance | undefined) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (!formEl) return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   formEl.validate(async valid => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (valid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      let res = await User_Power_Add({ User_tokey: globalStore.GET_User_tokey, T_name: form.name }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let res: any = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (isNew.value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res = await User_Power_Add({ User_tokey: globalStore.GET_User_tokey, T_name: form.name }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res = await User_Power_Edit({ User_tokey: globalStore.GET_User_tokey, T_name: form.name, T_id: form.id }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (res.Code === 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ElNotification.success({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           title: '添加角色', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           message: '添加成功!', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           position: 'bottom-right' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        drawerRef.value.closeDrawer() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        TableRef.value.getTableList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          drawerRef.value.closeDrawer() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          TableRef.value.getTableList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          resetForm(ruleFormRef.value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          isNew.value = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       console.log('error submit!') 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -119,6 +178,13 @@ const UserDelete = (row: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 搜索 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const search = ref('') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const searchHandle = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  initParam.T_name = search.value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  TableRef.value.getTableList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <template> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -128,8 +194,8 @@ const UserDelete = (row: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <el-row :gutter="20"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <el-col :span="12"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <span class="ml-3 w-35 text-gray-600 inline-flex items-center">角色名:</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <el-input type="text" class="w-50 m-2" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <el-button type="primary">搜索</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-input v-model="search" type="text" class="w-50 m-2" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-button type="primary" @click="searchHandle">搜索</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           </el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <el-col :span="6" :offset="6"><el-button type="primary" @click="openDrawer('new')">添加</el-button></el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </el-row> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -158,16 +224,16 @@ const UserDelete = (row: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <el-col :span="18" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ><div class="grid-content grid-active"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <el-checkbox-group v-model="checkList" v-if="item.children"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-checkbox-group v-model="item.checkList" v-if="item.children"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <el-checkbox :label="child.T_name" v-for="child in item.children" :key="'rr' + child.Id">{{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               child.T_name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }}</el-checkbox> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           </el-checkbox-group> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </div></el-col 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <el-col :span="3" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ><div class="grid-content"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <el-button type="primary" @click="submitUserRole">提交</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-button type="primary" @click="submitUserRole(item)">提交</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div></el-col 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </el-row> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -181,7 +247,8 @@ const UserDelete = (row: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <el-input v-model="form.name" type="text" autocomplete="off" placeholder="请输入角色名称" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <el-form-item :label-width="formLabelWidth"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <el-button color="#626aef" @click="AddUserName(ruleFormRef)">添加</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-button v-if="isNew" color="#626aef" @click="AddUserName(ruleFormRef)">添加</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-button v-else color="#626aef" @click="AddUserName(ruleFormRef)">修改</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </el-form> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   </Drawer> 
			 |