From 702b66ed8fd8d1e253149246581b20e9e5c58815 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期二, 10 十二月 2024 10:12:43 +0800
Subject: [PATCH] 1.小程序菜单
---
pages/sys/app-menu.vue | 149 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 149 insertions(+), 0 deletions(-)
diff --git a/pages/sys/app-menu.vue b/pages/sys/app-menu.vue
new file mode 100644
index 0000000..e18e7e4
--- /dev/null
+++ b/pages/sys/app-menu.vue
@@ -0,0 +1,149 @@
+<template>
+ <div class="custom-crud-page">
+ <el-bus-crud ref="crud" v-bind="crudConfig"></el-bus-crud>
+ </div>
+</template>
+
+<script>
+export default {
+ data() {
+ return {
+ crudConfig: {
+ url: 'flower/api/app/menu/list',
+ hasPagination: false,
+ saveQuery: false,
+ isTree: true,
+ hasView: false,
+ deleteMessage: () => '此操作将会删除所有子菜单, 是否继续?',
+ beforeOpen(row, isNew) {
+ if (isNew && row.menuName) {
+ row.parentName = row.menuName
+ }
+ if (!isNew) {
+ row.parentName = ''
+ }
+ },
+ extraParentKeys: ['parentName'],
+ tableAttrs: {
+ rowKey: 'id',
+ },
+ columns: [
+ { label: '菜单名称', prop: 'menuName' },
+ {
+ label: '前端地址',
+ prop: 'menuHref',
+ },
+ {
+ label: '权限唯一标识',
+ prop: 'permissionUq',
+
+ },
+ {
+ label: '子账号权限',
+ formatter: (row) => (
+ <el-switch
+ value={row.subaccountAccessFlag===1}
+ onChange={this.onShownChange.bind(this, row)}
+ ></el-switch>
+ ),
+ },
+ {
+ label: '图标',
+ formatter: (row) =>
+ row.menuIcon ? (
+ <i class={row.menuIcon} aria-hidden="true" />
+ ) : null,
+ },
+ { label: '排序', prop: 'seq' },
+ ],
+ form: [
+ {
+ label: '父级节点:',
+ id: 'parentName',
+ type: 'input',
+ readonly: true,
+ hidden: (row) => !row.parentName,
+ },
+ {
+ label: '标题:',
+ id: 'menuName',
+ type: 'input',
+ el: { placeholder: '请输入标题' },
+ rules: { required: true, message: '请输入标题', trigger: 'blur' },
+ },
+ {
+ label: '权限唯一标识:',
+ id: 'permissionUq',
+ type: 'input',
+ el: { placeholder: '请输入权限唯一标识' },
+ rules: { required: true, message: '请输入权限唯一标识', trigger: 'blur' },
+ },
+ /* {
+ label: '子账号权限:',
+ formatter: (row) => (
+ <el-switch
+ value={row.subaccountAccessFlag===1}
+ onChange={this.onShownChange.bind(this, row)}
+ ></el-switch>
+ ),
+ }, */
+ {
+ label: '图标:',
+ id: 'menuIcon',
+ component: 'base-menu-icon',
+ },
+ {
+ label: '排序:',
+ id: 'seq',
+ type: 'input-number',
+ el: {
+ min: 0,
+ precision: 0,
+ controlsPosition: 'right',
+ placeholder: '请输入排序',
+ },
+ },
+ {
+ label: '前端地址:',
+ id: 'menuHref',
+ type: 'input',
+ el: { placeholder: '请输入前端地址' },
+ rules: {
+ required: true,
+ message: '请输入前端地址',
+ trigger: 'blur',
+ },
+ },
+ ],
+ },
+ }
+ },
+ head() {
+ return {
+ title: '菜单管理',
+ }
+ },
+ methods: {
+ onShownChange(row, e) {
+ const url = e
+ ? 'flower/api/app/menu/tree/shown'
+ : 'flower/api/app/menu/tree/hidden'
+ const text = e ? '显示' : '隐藏'
+ this.$elBusUtil
+ .confirm(`确定要${text}这个菜单吗?`)
+ .then(async () => {
+ const { code } = await this.$elBusHttp.request(url, {
+ params: {
+ id: row.id,
+ },
+ })
+ if (code === 0) {
+ this.$message.success(`${text}成功`)
+ this.$refs.crud.getList()
+ }
+ })
+ .catch(() => {})
+ },
+ },
+}
+</script>
--
Gitblit v1.9.3