Przeglądaj źródła

完善菜单的按钮权限配置

yanglzh 3 lat temu
rodzic
commit
aeb74751f0

+ 1 - 2
src/api/model/system/menu.ts

@@ -1,9 +1,8 @@
 export interface MenuBtnRow {
   id?: number; // ID
   parentId: number; // 父ID
-  menuId: number; // 菜单ID
+  menuId: number | undefined; // 菜单ID
   name: string;// 名称
-  code: string | number;// 名称
   types: string | 'add' | 'edit' | 'del'; // 自定义 add添加 edit编辑 del 删除
   description?: string; // 描述
   status: 0 | 1; // 0 停用 1启用

+ 1 - 1
src/api/system/index.ts

@@ -12,7 +12,7 @@ export default {
       detail: (id: number) => get('/system/menu/button/detail', { id }),
       add: (data: object) => post('/system/menu/button/add', data),
       del: (id: number) => del('/system/menu/button/del', { id }),
-      edit: (data: object) => post('/system/menu/button/edit', data)
+      edit: (data: object) => put('/system/menu/button/edit', data)
     }
   },
   role: {

+ 0 - 2
src/views/system/menu/component/btn-form.vue

@@ -45,7 +45,6 @@ const formRef = ref();
 const baseForm: MenuBtnRow = {
 	parentId: -1,
 	menuId: 0,
-	code: '',
 	name: '',
 	types: '',
 	description: '',
@@ -67,7 +66,6 @@ const onSubmit = async () => {
 	if (!formData.parentId) {
 		formData.parentId = -1;
 	}
-	formData.code = Date.now();
 
 	const theApi = formData.id ? api.menu.btn.edit : api.menu.btn.add;
 

+ 20 - 10
src/views/system/menu/component/btn.vue

@@ -8,7 +8,7 @@
         新增
       </el-button>
 
-      <el-dropdown  @command="addCommonType">
+      <el-dropdown @command="addCommonType">
         <el-button text type="primary">
           <el-icon>
             <ele-Plus />
@@ -25,10 +25,9 @@
           </el-dropdown-menu>
         </template>
       </el-dropdown>
-
     </div>
 
-    <el-table :data=" tableData" style="width: 100%" row-key="id" border :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
+    <el-table :data="tableData" style="width: 100%" row-key="id" border :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
       <el-table-column type="index" label="序号" width="60" align="center" />
       <el-table-column prop="name" label="按钮名称" width="220" show-overflow-tooltip></el-table-column>
       <el-table-column prop="types" label="按钮编码" show-overflow-tooltip></el-table-column>
@@ -57,15 +56,15 @@ import api from '/@/api/system';
 import { ElMessageBox, ElMessage } from 'element-plus';
 
 const title = ref('按钮权限');
-const drawer = ref(true);
-const tableData = ref([]);
-const menuRow = ref({ id: 34 });
+const drawer = ref(false);
+const tableData = ref<MenuBtnRow[]>([]);
+const menuRow = ref();
 const btnFormRef = ref();
 const getList = async () => {
-	let res = await api.menu.btn.getList({ menuID: menuRow.value.id, status: -1 });
+	tableData.value = [];
+	let res = await api.menu.btn.getList({ menuId: menuRow.value.id as number, status: -1 });
 	tableData.value = res || [];
 };
-getList();
 
 const open = async (row: any) => {
 	// console.log(row);
@@ -84,8 +83,19 @@ const onEdit = (row: MenuBtnRow) => {
 };
 
 // 添加常用类型
-const addCommonType = (command: string) => {
-	console.log(command);
+const addCommonType = async (command: string) => {
+	const [types, name] = command.split('-');
+	const formData: MenuBtnRow = {
+		parentId: -1,
+		menuId: menuRow.value.id as number,
+		name,
+		types,
+		description: '',
+		status: 1,
+	};
+	await api.menu.btn.add(formData);
+	ElMessage.success('操作成功');
+	getList();
 };
 
 // 修改启用停用状态

+ 2 - 2
src/views/system/menu/index.vue

@@ -50,7 +50,7 @@
             <el-button v-if="!scope.row.menuType" size="small" type="text" @click="onOpenAddMenu(scope.row)">新增</el-button>
             <el-button size="small" text type="warning" @click="onOpenEditMenu(scope.row)">修改</el-button>
             <el-button size="small" text type="danger" @click="onTabelRowDel(scope.row)">删除</el-button>
-            <el-dropdown v-if="scope.row.menuType" size="small">
+            <el-dropdown v-if="scope.row.menuType">
               <el-button type="text" size="small" style="margin-top:1px;margin-left:10px">更多
                 <el-icon>
                   <ele-ArrowDown />
@@ -78,7 +78,7 @@ import { ref, reactive, onBeforeMount, getCurrentInstance } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
 import EditMenu from '/@/views/system/menu/component/editMenu.vue';
 import api from '/@/api/system';
-import ButtonAuthorizeListDrawer from './component/btn.vue'
+import ButtonAuthorizeListDrawer from './component/btn.vue';
 const editMenuRef = ref();
 const buttonAuthorizeList = ref();
 const state = reactive({