feat: add SingleRecordMnt component for student record maintenance with search, add, edit, view, and delete functionalities

This commit is contained in:
skytek_xinliang
2026-03-26 11:24:37 +08:00
parent 507afcc99c
commit 069141794e
116 changed files with 15247 additions and 107 deletions
+144
View File
@@ -0,0 +1,144 @@
<template>
<SKMenuManagement
:items="menuItems"
:loading="loading"
:permission-options="permissionOptions"
:status-options="statusOptions"
@edit="onEdit"
/>
</template>
<script setup lang="ts">
import type { MenuItem } from '@/components/SKMenuManagement.vue'
import { ref } from 'vue'
import SKMenuManagement from '@/components/SKMenuManagement.vue'
const loading = ref(false)
const statusOptions = [
{ title: '已啟用', value: 1 },
{ title: '已禁用', value: 0 },
]
const permissionOptions = ['管理員', '一級主管', '二級主管', '使用者']
const menuItems = ref([
{
id: 1,
title: '工作台',
permission: '使用者',
path: '/workspace',
component: '/dashboard/workspace/index',
status: 1,
children: [],
},
{
id: 2,
title: '系統管理',
permission: '管理員',
path: '/system',
component: 'LAYOUT',
status: 1,
isNew: true,
children: [
{
id: 21,
title: '菜單管理',
permission: '管理員',
path: '/system/menu',
component: '/system/menu/list',
status: 1,
children: [
{
id: 211,
title: '新增',
permission: '管理員',
status: 1,
},
{
id: 212,
title: '修改',
permission: '管理員',
status: 1,
},
{
id: 213,
title: '刪除',
permission: '管理員',
status: 1,
},
],
},
{
id: 22,
title: '部門管理',
permission: '一級主管',
path: '/system/dept',
component: '/system/dept/list',
status: 1,
children: [],
},
],
},
{
id: 3,
title: '項目',
permission: '二級主管',
path: '/vben-admin',
component: 'LAYOUT',
status: 1,
children: [
{
id: 31,
title: '文檔',
permission: '使用者',
path: '/vben-admin/document',
component: 'https://doc.vben.pro',
status: 1,
},
{
id: 32,
title: 'Ant Design Vue 版本',
permission: '使用者',
path: '/vben-admin/antdv',
component: 'https://ant.vben.pro',
status: 0,
},
],
},
{
id: 4,
title: '關於',
permission: '使用者',
path: '/about',
component: '_core/about/index',
status: 1,
children: [],
},
])
function updateTreeItemById (items: MenuItem[], updated: MenuItem): boolean {
for (let i = 0; i < items.length; i += 1) {
const current = items[i]
if (!current) continue
if (current.id === updated.id) {
items[i] = {
...current,
status: updated.status,
permission: updated.permission,
}
return true
}
if (current.children && current.children.length > 0) {
const found = updateTreeItemById(current.children, updated)
if (found) return true
}
}
return false
}
function onEdit (item: MenuItem) {
updateTreeItemById(menuItems.value, item)
}
</script>