From d1de15b9da6124af3c8f547b40adb318e223143d Mon Sep 17 00:00:00 2001 From: yinbangzhong <zhongbangyin@126.com> Date: 星期二, 06 八月 2024 15:11:25 +0800 Subject: [PATCH] 会话管理菜单设置 --- /dev/null | 39 ----- src/router/routes/modules/session.ts | 13 + src/views/session/sessionRecordsManager/index.vue | 0 src/views/authority/resource/index.vue | 316 ++++++++++++++++++++++---------------------- 4 files changed, 167 insertions(+), 201 deletions(-) diff --git a/src/router/routes/modules/exception.ts b/src/router/routes/modules/exception.ts deleted file mode 100644 index dac1ccc..0000000 --- a/src/router/routes/modules/exception.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { DEFAULT_LAYOUT } from '../base'; -import { AppRouteRecordRaw } from '../types'; - -const EXCEPTION: AppRouteRecordRaw = { - path: '/exception', - name: 'exception', - component: DEFAULT_LAYOUT, - meta: { - locale: 'menu.exception', - requiresAuth: true, - icon: 'icon-exclamation-circle', - order: 6, - }, - children: [ - { - path: '403', - name: '403', - component: () => import('@/views/exception/403/index.vue'), - meta: { - locale: 'menu.exception.403', - requiresAuth: true, - roles: ['admin'], - }, - }, - { - path: '404', - name: '404', - component: () => import('@/views/exception/404/index.vue'), - meta: { - locale: 'menu.exception.404', - requiresAuth: true, - roles: ['*'], - }, - }, - { - path: '500', - name: '500', - component: () => import('@/views/exception/500/index.vue'), - meta: { - locale: 'menu.exception.500', - requiresAuth: true, - roles: ['*'], - }, - }, - ], -}; - -export default EXCEPTION; diff --git a/src/router/routes/modules/form.ts b/src/router/routes/modules/form.ts deleted file mode 100644 index 5c8682f..0000000 --- a/src/router/routes/modules/form.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { DEFAULT_LAYOUT } from '../base'; -import { AppRouteRecordRaw } from '../types'; - -const FORM: AppRouteRecordRaw = { - path: '/form', - name: 'form', - component: DEFAULT_LAYOUT, - meta: { - locale: 'menu.form', - icon: 'icon-settings', - requiresAuth: true, - order: 3, - }, - children: [ - { - path: 'step', - name: 'Step', - component: () => import('@/views/form/step/index.vue'), - meta: { - locale: 'menu.form.step', - requiresAuth: true, - roles: ['admin'], - }, - }, - { - path: 'group', - name: 'Group', - component: () => import('@/views/form/group/index.vue'), - meta: { - locale: 'menu.form.group', - requiresAuth: true, - roles: ['admin'], - }, - }, - ], -}; - -export default FORM; diff --git a/src/router/routes/modules/list.ts b/src/router/routes/modules/list.ts deleted file mode 100644 index ba0bba6..0000000 --- a/src/router/routes/modules/list.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { DEFAULT_LAYOUT } from '../base'; -import { AppRouteRecordRaw } from '../types'; - -const LIST: AppRouteRecordRaw = { - path: '/list', - name: 'list', - component: DEFAULT_LAYOUT, - meta: { - locale: 'menu.list', - requiresAuth: true, - icon: 'icon-list', - order: 2, - }, - children: [ - { - path: 'search-table', // The midline path complies with SEO specifications - name: 'SearchTable', - component: () => import('@/views/list/search-table/index.vue'), - meta: { - locale: 'menu.list.searchTable', - requiresAuth: true, - roles: ['*'], - }, - }, - { - path: 'card', - name: 'Card', - component: () => import('@/views/list/card/index.vue'), - meta: { - locale: 'menu.list.cardList', - requiresAuth: true, - roles: ['*'], - }, - }, - ], -}; - -export default LIST; diff --git a/src/router/routes/modules/result.ts b/src/router/routes/modules/result.ts deleted file mode 100644 index 52d281c..0000000 --- a/src/router/routes/modules/result.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { DEFAULT_LAYOUT } from '../base'; -import { AppRouteRecordRaw } from '../types'; - -const RESULT: AppRouteRecordRaw = { - path: '/result', - name: 'result', - component: DEFAULT_LAYOUT, - meta: { - locale: 'menu.result', - icon: 'icon-check-circle', - requiresAuth: true, - order: 5, - }, - children: [ - { - path: 'success', - name: 'Success', - component: () => import('@/views/result/success/index.vue'), - meta: { - locale: 'menu.result.success', - requiresAuth: true, - roles: ['admin'], - }, - }, - { - path: 'error', - name: 'Error', - component: () => import('@/views/result/error/index.vue'), - meta: { - locale: 'menu.result.error', - requiresAuth: true, - roles: ['admin'], - }, - }, - ], -}; - -export default RESULT; diff --git a/src/router/routes/modules/session.ts b/src/router/routes/modules/session.ts index 6ccd4d7..7404798 100644 --- a/src/router/routes/modules/session.ts +++ b/src/router/routes/modules/session.ts @@ -16,12 +16,21 @@ path:'sessionManager', name:"sessionManager", meta:{ + locale: '浼氳瘽绠$悊', requiresAuth: true, - hideInMenu:true, roles: ['*'], - activeMenu:'session' }, component:()=>import('@/views/session/sessionManager/index.vue'), + }, + { + path:'sessionRecordsManager', + name:"sessionRecordsManager", + meta:{ + locale: '浼氳瘽璁板綍', + requiresAuth: true, + roles: ['*'], + }, + component:()=>import('@/views/session/sessionRecordsManager/index.vue'), } ] }; diff --git a/src/router/routes/modules/sessionRecords.ts b/src/router/routes/modules/sessionRecords.ts deleted file mode 100644 index f70c5e3..0000000 --- a/src/router/routes/modules/sessionRecords.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { DEFAULT_LAYOUT } from '../base'; -import { AppRouteRecordRaw } from '../types'; -const sessionRecords: AppRouteRecordRaw = { - path: '/sessionRecords', - name: 'sessionRecords', - component: DEFAULT_LAYOUT, - meta: { - locale: 'menu.sessionRecords', - requiresAuth: true, - icon: 'icon-list', - order: 3, - hideInMenu:false - }, - children:[ - { - path:'sessionRecordsManager', - name:"sessionRecordsManager", - meta:{ - requiresAuth: true, - hideInMenu:true, - roles: ['*'], - activeMenu:'sessionRecords' - }, - component:()=>import('@/views/sessionRecords/sessionRecordsManager/index.vue'), - } - ] -}; -export default sessionRecords; \ No newline at end of file diff --git a/src/router/routes/modules/visualization.ts b/src/router/routes/modules/visualization.ts deleted file mode 100644 index aefa2b1..0000000 --- a/src/router/routes/modules/visualization.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { DEFAULT_LAYOUT } from '../base'; -import { AppRouteRecordRaw } from '../types'; - -const VISUALIZATION: AppRouteRecordRaw = { - path: '/visualization', - name: 'visualization', - component: DEFAULT_LAYOUT, - meta: { - locale: 'menu.visualization', - requiresAuth: true, - icon: 'icon-apps', - order: 1, - }, - children: [ - { - path: 'data-analysis', - name: 'DataAnalysis', - component: () => import('@/views/visualization/data-analysis/index.vue'), - meta: { - locale: 'menu.visualization.dataAnalysis', - requiresAuth: true, - roles: ['admin'], - }, - }, - { - path: 'multi-dimension-data-analysis', - name: 'MultiDimensionDataAnalysis', - component: () => - import('@/views/visualization/multi-dimension-data-analysis/index.vue'), - meta: { - locale: 'menu.visualization.multiDimensionDataAnalysis', - requiresAuth: true, - roles: ['admin'], - }, - }, - ], -}; - -export default VISUALIZATION; diff --git a/src/views/authority/resource/index.vue b/src/views/authority/resource/index.vue index a8e8e21..1ea12c6 100644 --- a/src/views/authority/resource/index.vue +++ b/src/views/authority/resource/index.vue @@ -8,6 +8,7 @@ :bordered="false" :style="{ 'width': '100%', 'height': '900px', 'overflow-y': 'auto' }" > + <a-button @click="() => onIconClick(null)">鏂板鐖剁骇鑿滃崟</a-button> <a-tree class="tree-demo" draggable @@ -138,178 +139,173 @@ </template> <script lang="ts" setup> - import { ref } from 'vue'; - import { IconPlus } from '@arco-design/web-vue/es/icon'; - import { - Resource, - ResourceAdd, - ResourceById, - ResourceDelete, - ResourceList, - ResourceUpdate, - } from '@/api/authority'; - import Authheader from '@/views/authority/components/authheader.vue'; - import { Modal } from '@arco-design/web-vue'; +import { ref } from "vue"; +import { IconPlus } from "@arco-design/web-vue/es/icon"; +import { Resource, ResourceAdd, ResourceById, ResourceDelete, ResourceList, ResourceUpdate } from "@/api/authority"; +import Authheader from "@/views/authority/components/authheader.vue"; +import { Modal } from "@arco-design/web-vue"; - let visible = ref(false); - let treeData = ref([]); - let showLine = ref(true); - let menuTips = ref(['鏉冮檺绠$悊', '璧勬簮']); - const fieldNames = { value: 'key', label: 'value' }; - // 0鐩綍 1鑿滃崟 2鎸夐挳 - let options = ref([ - { - key: '3', - value: '鐩綍', - }, - { - key: '0', - value: '鑿滃崟', - }, - { - key: '1', - value: '鎸夐挳', - }, - ]); - let resourceform = ref<Resource>({ - component: '', - createTime: '', - description: '', - icon: '', - menuId: '', - menuName: '', - menuType: '', - orderNum: '', - parentId: '', - parentName: '', - children: [], - path: '', - perms: '', - status: '', - syesourcetype: '', - target: '', - updateTime: '', +let visible = ref(false); +let treeData = ref([]); +let showLine = ref(true); +let menuTips = ref(["鏉冮檺绠$悊", "璧勬簮"]); +const fieldNames = { value: "key", label: "value" }; +// 0鐩綍 1鑿滃崟 2鎸夐挳 +let options = ref([ + { + key: "3", + value: "鐩綍" + }, + { + key: "0", + value: "鑿滃崟" + }, + { + key: "1", + value: "鎸夐挳" + } +]); +let resourceform = ref<Resource>({ + component: "", + createTime: "", + description: "", + icon: "", + menuId: "", + menuName: "", + menuType: "", + orderNum: "", + parentId: "", + parentName: "", + children: [], + path: "", + perms: "", + status: "", + syesourcetype: "", + target: "", + updateTime: "" +}); + +const onIconClick = (nodeData) => { + if (nodeData) { + resourceform.value.parentId = nodeData.menuId; + resourceform.value.parentName = nodeData.menuName; + } + resourceform.value.component = ""; + resourceform.value.createTime = ""; + resourceform.value.description = ""; + resourceform.value.icon = ""; + resourceform.value.menuId = ""; + resourceform.value.menuName = ""; + resourceform.value.menuType = ""; + resourceform.value.orderNum = "0"; + resourceform.value.path = ""; + resourceform.value.perms = ""; + resourceform.value.status = ""; + resourceform.value.syesourcetype = ""; + + visible.value = true; +}; + +const addresource = async () => { + await ResourceAdd({ + ...resourceform.value + } as unknown as Resource).then((res) => { + ResourceData(""); + }); +}; + +const onIconClickDelete = (nodeData) => { + ResourceDelete(nodeData.menuId).then(() => { + ResourceData(""); + }); +}; + +const showDetail = (id) => { + ResourceById(id).then((res) => { + resourceform.value = { ...res.data }; + }); +}; +const editresource = () => { + ResourceUpdate({ + ...resourceform.value + } as unknown as Resource).then((res) => { + ResourceData(""); + Modal.success({ + title: "淇濆瓨鎴愬姛", + content: "淇濆瓨鎴愬姛" + }); + }); +}; +const reset = (id) => { + ResourceById(id).then((res) => { + resourceform.value = { ...res.data }; + }); +}; + +const onDrop = ({ dragNode, dropNode, dropPosition }) => { + const data = treeData.value; + ResourceUpdate({ + orderNum: "0", + parentId: dropNode.menuId, + menuId: dragNode.menuId + }); + const loop = (data, key, callback) => { + data.some((item, index, arr) => { + if (item.menuId === key) { + callback(item, index, arr); + return true; + } + if (item.children) { + return loop(item.children, key, callback); + } + return false; + }); + }; + + loop(data, dragNode.menuId, (_, index, arr) => { + arr.splice(index, 1); }); - const onIconClick = (nodeData) => { - resourceform.value.parentId = nodeData.menuId; - resourceform.value.component = ''; - resourceform.value.createTime = ''; - resourceform.value.description = ''; - resourceform.value.icon = ''; - resourceform.value.menuId = ''; - resourceform.value.menuName = ''; - resourceform.value.menuType = ''; - resourceform.value.orderNum = '0'; - resourceform.value.parentName = nodeData.menuName; - resourceform.value.path = ''; - resourceform.value.perms = ''; - resourceform.value.status = ''; - resourceform.value.syesourcetype = ''; - - visible.value = true; - }; - - const addresource = async () => { - await ResourceAdd({ - ...resourceform.value, - } as unknown as Resource).then((res) => { - ResourceData(''); + if (dropPosition === 0) { + loop(data, dropNode.menuId, (item) => { + item.children = item.children || []; + item.children.push(dragNode); }); - }; - - const onIconClickDelete = (nodeData) => { - ResourceDelete(nodeData.menuId).then(() => { - ResourceData(''); + } else { + loop(data, dropNode.menuId, (_, index, arr) => { + arr.splice(dropPosition < 0 ? index : index + 1, 0, dragNode); }); - }; + } +}; - const showDetail = (id) => { - ResourceById(id).then((res) => { - resourceform.value = { ...res.data }; - }); - }; - const editresource = () => { - ResourceUpdate({ - ...resourceform.value, - } as unknown as Resource).then((res) => { - ResourceData(''); - Modal.success({ - title: '淇濆瓨鎴愬姛', - content: '淇濆瓨鎴愬姛', - }); - }); - }; - const reset = (id) => { - ResourceById(id).then((res) => { - resourceform.value = { ...res.data }; - }); - }; +const handleCancel = (type) => { + if (type == 1) { + visible.value = false; + } +}; - const onDrop = ({ dragNode, dropNode, dropPosition }) => { - const data = treeData.value; - ResourceUpdate({ - orderNum: '0', - parentId: dropNode.menuId, - menuId: dragNode.menuId, - }); - const loop = (data, key, callback) => { - data.some((item, index, arr) => { - if (item.menuId === key) { - callback(item, index, arr); - return true; - } - if (item.children) { - return loop(item.children, key, callback); - } - return false; - }); - }; +const ResourceData = async (key) => { + await ResourceList(key).then((res) => { + treeData.value = [...res.rows]; + }); +}; - loop(data, dragNode.menuId, (_, index, arr) => { - arr.splice(index, 1); - }); - - if (dropPosition === 0) { - loop(data, dropNode.menuId, (item) => { - item.children = item.children || []; - item.children.push(dragNode); - }); - } else { - loop(data, dropNode.menuId, (_, index, arr) => { - arr.splice(dropPosition < 0 ? index : index + 1, 0, dragNode); - }); - } - }; - - const handleCancel = (type) => { - if (type == 1) { - visible.value = false; - } - }; - - const ResourceData = async (key) => { - await ResourceList(key).then((res) => { - treeData.value = [...res.rows]; - }); - }; - - ResourceData(''); +ResourceData(""); </script> <style scoped> - .tree-demo :deep(.tree-node-dropover) > :deep(.arco-tree-node-title), - .tree-demo :deep(.tree-node-dropover) > :deep(.arco-tree-node-title):hover { - animation: blinkBg 0.4s 2; +.tree-demo :deep(.tree-node-dropover) > :deep(.arco-tree-node-title), +.tree-demo :deep(.tree-node-dropover) > :deep(.arco-tree-node-title):hover { + animation: blinkBg 0.4s 2; +} + +@keyframes blinkBg { + 0% { + background-color: transparent; } - @keyframes blinkBg { - 0% { - background-color: transparent; - } - - 100% { - background-color: var(--color-primary-light-1); - } + 100% { + background-color: var(--color-primary-light-1); } +} </style> diff --git a/src/views/sessionRecords/sessionRecordsManager/index.vue b/src/views/session/sessionRecordsManager/index.vue similarity index 100% rename from src/views/sessionRecords/sessionRecordsManager/index.vue rename to src/views/session/sessionRecordsManager/index.vue -- Gitblit v1.8.0