This commit is contained in:
parent
f6a0bc8161
commit
22cf2a2f82
|
|
@ -2,7 +2,7 @@ import type { App } from 'vue'
|
|||
import routes from 'src/routes'
|
||||
import { indexStore } from 'lib/stores'
|
||||
const store = indexStore();
|
||||
const resource = store.$state.kwargs.resource;
|
||||
const resource = store.$state.kwargs.resource || [];
|
||||
|
||||
export default function BeforeMount(app: App<Element>) {
|
||||
const resourcePaths = resource.map((item: any) => item.path);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
import type { RouteRecordRaw } from "vue-router";
|
||||
import TableLayout from "lib/layout/TableLayout.vue";
|
||||
import MainLayout from "lib/layout/MainLayout.vue";
|
||||
import { indexStore } from "lib/stores";
|
||||
|
||||
const routes: Array<RouteRecordRaw> = [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
import type { TableData } from 'lib/type/TableData'
|
||||
|
||||
const data: TableData = {
|
||||
rowKey: "id",
|
||||
defaultExpandAll: true,
|
||||
async fetchFun(self, data) {
|
||||
const res = await self.api?.getDataList(data)
|
||||
return res
|
||||
|
|
@ -20,20 +22,67 @@ const data: TableData = {
|
|||
}
|
||||
})
|
||||
return data
|
||||
}
|
||||
},
|
||||
getTree(arr: any) {
|
||||
// 构建一个map来存储所有节点
|
||||
const map: any = {}
|
||||
const roots: any[] = []
|
||||
|
||||
// 先创建所有节点的映射
|
||||
arr.forEach((item: any) => {
|
||||
map[item.key] = { ...item, children: [] }
|
||||
})
|
||||
|
||||
// 构建树结构
|
||||
arr.forEach((item: any) => {
|
||||
const node = map[item.key]
|
||||
if (item.pid === 0 || item.pid === '0') {
|
||||
// 如果是根节点,添加到roots数组
|
||||
roots.push(node)
|
||||
} else {
|
||||
// 如果有父节点,添加到父节点的children中
|
||||
if (map[item.pid]) {
|
||||
map[item.pid].children.push(node)
|
||||
} else {
|
||||
// 如果找不到父节点,也作为根节点处理
|
||||
roots.push(node)
|
||||
}
|
||||
}
|
||||
})
|
||||
return roots
|
||||
},
|
||||
},
|
||||
launchTask: [
|
||||
async (self: any) => {
|
||||
if (self.bean) {
|
||||
const res = await self.api?.getResources({ type: "", page: 1, size: 1000 })
|
||||
const resources = res.data.items?.map((item: any) => {
|
||||
const type = item.type === 'page' ? '页面' : '接口'
|
||||
const items = res.data.items || []
|
||||
const data = items.map((item: any) => {
|
||||
return {
|
||||
key: item.id,
|
||||
name: `【${type}】${item.name}`
|
||||
name: item.name,
|
||||
key: String(item.id),
|
||||
id: item.id,
|
||||
pid: item.pid ? String(item.pid) : item.type,
|
||||
type: item.type,
|
||||
}
|
||||
})
|
||||
self.bean.resources = resources
|
||||
data.unshift(...[
|
||||
{
|
||||
name: '页面',
|
||||
key: 'page',
|
||||
id: 'page',
|
||||
pid: '0',
|
||||
type: 'page'
|
||||
},
|
||||
{
|
||||
name: '接口',
|
||||
key: 'api',
|
||||
id: 'api',
|
||||
pid: '0',
|
||||
type: 'api'
|
||||
}
|
||||
])
|
||||
self.bean.resources = self.methods?.getTree(data)
|
||||
}
|
||||
}
|
||||
],
|
||||
|
|
@ -63,11 +112,14 @@ const data: TableData = {
|
|||
{
|
||||
key: 'resource',
|
||||
name: '权限',
|
||||
type: 'select',
|
||||
type: 'cascader',
|
||||
getItems: (self: any) => {
|
||||
return self.bean ? self.bean.resources : []
|
||||
},
|
||||
multiple: true,
|
||||
cascaderProps: {
|
||||
multiple: true,
|
||||
checkStrictly: false
|
||||
},
|
||||
must: true
|
||||
},
|
||||
],
|
||||
|
|
@ -114,7 +166,7 @@ const data: TableData = {
|
|||
primary: 'id',
|
||||
beforeShow: async (self: any, form: any, row: any) => {
|
||||
const res = await self.api?.getDataDetail(row.id)
|
||||
const resources = res.data.map((item: any) => item.id)
|
||||
const resources = res.data.map((item: any) => String(item.id))
|
||||
const findItem = form.data.find((i: any) => i.key === 'resource')
|
||||
findItem.values[form.show] = resources
|
||||
},
|
||||
|
|
@ -128,11 +180,14 @@ const data: TableData = {
|
|||
{
|
||||
key: 'resource',
|
||||
name: '权限',
|
||||
type: 'select',
|
||||
type: 'cascader',
|
||||
cascaderProps: {
|
||||
multiple: true,
|
||||
checkStrictly: false
|
||||
},
|
||||
getItems: (self: any) => {
|
||||
return self.bean ? self.bean.resources : []
|
||||
},
|
||||
multiple: true,
|
||||
must: false
|
||||
},
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,8 +1,29 @@
|
|||
import type { TableData } from 'lib/type/TableData'
|
||||
|
||||
import "./index.less"
|
||||
const data: TableData = {
|
||||
rowKey: "id",
|
||||
defaultExpandAll: true,
|
||||
async fetchFun(self, data) {
|
||||
const res = await self.api?.getDataList(data)
|
||||
if (self.bean) {
|
||||
const items = res.data.items || []
|
||||
const data = items.map((item: any) => {
|
||||
return {
|
||||
name: item.name,
|
||||
key: String(item.id),
|
||||
id: item.id,
|
||||
pid: String(item.pid),
|
||||
color: 'category',
|
||||
create_time: item.create_time,
|
||||
method: item.method,
|
||||
type: item.type,
|
||||
path: item.path,
|
||||
}
|
||||
})
|
||||
self.bean.categoryList = self.methods?.getTree(data)
|
||||
res.data.items = self.bean.categoryList
|
||||
self.bean.allList = data
|
||||
}
|
||||
return res
|
||||
},
|
||||
addNods: [
|
||||
|
|
@ -10,6 +31,36 @@ const data: TableData = {
|
|||
],
|
||||
launchTask: [
|
||||
],
|
||||
methods: {
|
||||
getTree(arr: any) {
|
||||
// 构建一个map来存储所有节点
|
||||
const map: any = {}
|
||||
const roots: any[] = []
|
||||
|
||||
// 先创建所有节点的映射
|
||||
arr.forEach((item: any) => {
|
||||
map[item.key] = { ...item, children: [] }
|
||||
})
|
||||
|
||||
// 构建树结构
|
||||
arr.forEach((item: any) => {
|
||||
const node = map[item.key]
|
||||
if (item.pid === 0 || item.pid === '0') {
|
||||
// 如果是根节点,添加到roots数组
|
||||
roots.push(node)
|
||||
} else {
|
||||
// 如果有父节点,添加到父节点的children中
|
||||
if (map[item.pid]) {
|
||||
map[item.pid].children.push(node)
|
||||
} else {
|
||||
// 如果找不到父节点,也作为根节点处理
|
||||
roots.push(node)
|
||||
}
|
||||
}
|
||||
})
|
||||
return roots
|
||||
},
|
||||
},
|
||||
fliter: [
|
||||
{
|
||||
key: 'id',
|
||||
|
|
@ -26,8 +77,8 @@ const data: TableData = {
|
|||
name: '类型',
|
||||
type: 'select',
|
||||
items: [
|
||||
{ key: 'page',name: '页面' },
|
||||
{ key: 'api',name: 'API' },
|
||||
{ key: 'page', name: '页面' },
|
||||
{ key: 'api', name: 'API' },
|
||||
],
|
||||
value: 'page'
|
||||
},
|
||||
|
|
@ -42,6 +93,15 @@ const data: TableData = {
|
|||
form: {
|
||||
title: '新建',
|
||||
data: [
|
||||
{
|
||||
key: 'pid',
|
||||
name: '父级',
|
||||
type: 'cascader',
|
||||
must: false,
|
||||
getItems(self: TableData) {
|
||||
return self.bean ? self.bean.categoryList : []
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'name',
|
||||
name: '名称',
|
||||
|
|
@ -53,8 +113,8 @@ const data: TableData = {
|
|||
name: '类型',
|
||||
type: 'select',
|
||||
items: [
|
||||
{ key: 'page',name: '页面' },
|
||||
{ key: 'api',name: 'API' },
|
||||
{ key: 'page', name: '页面' },
|
||||
{ key: 'api', name: 'API' },
|
||||
],
|
||||
must: true,
|
||||
value: 'page'
|
||||
|
|
@ -63,7 +123,7 @@ const data: TableData = {
|
|||
key: 'path',
|
||||
name: '路径',
|
||||
type: 'input',
|
||||
must: true
|
||||
must: false
|
||||
},
|
||||
{
|
||||
key: 'method',
|
||||
|
|
@ -84,6 +144,12 @@ const data: TableData = {
|
|||
width: '80px',
|
||||
showJson: '*'
|
||||
},
|
||||
{
|
||||
key: 'pid',
|
||||
name: 'PID',
|
||||
width: '80px',
|
||||
showJson: '*'
|
||||
},
|
||||
{
|
||||
key: 'name',
|
||||
name: '名称',
|
||||
|
|
@ -117,6 +183,15 @@ const data: TableData = {
|
|||
type: 'warning',
|
||||
primary: 'id',
|
||||
data: [
|
||||
{
|
||||
key: 'pid',
|
||||
name: '父级',
|
||||
type: 'cascader',
|
||||
must: false,
|
||||
getItems(self: TableData) {
|
||||
return self.bean ? self.bean.categoryList : []
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'name',
|
||||
name: '名称',
|
||||
|
|
@ -129,8 +204,8 @@ const data: TableData = {
|
|||
type: 'select',
|
||||
must: true,
|
||||
items: [
|
||||
{ key: 'page',name: '页面' },
|
||||
{ key: 'api',name: 'API' },
|
||||
{ key: 'page', name: '页面' },
|
||||
{ key: 'api', name: 'API' },
|
||||
],
|
||||
value: 'page'
|
||||
},
|
||||
|
|
@ -138,7 +213,7 @@ const data: TableData = {
|
|||
key: 'path',
|
||||
name: '路径',
|
||||
type: 'input',
|
||||
must: true
|
||||
must: false
|
||||
},
|
||||
{
|
||||
key: 'method',
|
||||
|
|
@ -147,7 +222,7 @@ const data: TableData = {
|
|||
},
|
||||
],
|
||||
subFun(self, data) {
|
||||
return self.api?.updateData({...data, id: String(data.id)})
|
||||
return self.api?.updateData({ ...data, id: String(data.id) })
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue