This commit is contained in:
zhang zhuo 2026-01-25 20:37:45 +08:00
parent b6bd845b73
commit 4b3d518cc3
10 changed files with 29 additions and 29 deletions

View File

@ -169,7 +169,7 @@ async function getMenu() {
menu.value.unshift({ menu.value.unshift({
'category_id': 0, 'category_id': 0,
'category_name': '未分类', 'category_name': '未分类',
'pid': 0 'parent_id': 0
}) })
menuLoading.value = false menuLoading.value = false
} }

View File

@ -1,8 +1,8 @@
<template> <template>
<el-dialog :title="titleMap[mode]" v-model="visible" :width="500" destroy-on-close @closed="$emit('closed')"> <el-dialog :title="titleMap[mode]" v-model="visible" :width="500" destroy-on-close @closed="$emit('closed')">
<el-form :model="form" :rules="rules" ref="formRef" label-width="100px"> <el-form :model="form" :rules="rules" ref="formRef" label-width="100px">
<el-form-item label="上级" prop="pid"> <el-form-item label="上级" prop="parent_id">
<el-cascader ref="categoryRef" v-model="form.pid" :options="menu" :props="menuProps" clearable <el-cascader ref="categoryRef" v-model="form.parent_id" :options="menu" :props="menuProps" clearable
style="width: 100%;"></el-cascader> style="width: 100%;"></el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="名称" prop="category_name"> <el-form-item label="名称" prop="category_name">
@ -45,7 +45,7 @@ let isSaveing = ref(false)
let form = ref({ let form = ref({
category_id: null, category_id: null,
category_name: "", category_name: "",
pid: 0, parent_id: 0,
rank: 1, rank: 1,
type: "" type: ""
}) })
@ -61,11 +61,11 @@ let menuProps = ref({
checkStrictly: true checkStrictly: true
}) })
function open(_mode = 'add', data = null, pid = null) { function open(_mode = 'add', data = null, parent_id = null) {
mode.value = _mode; mode.value = _mode;
visible.value = true; visible.value = true;
if (pid) { if (parent_id) {
form.value.pid = pid form.value.parent_id = parent_id
} }
if (data) { if (data) {
Object.assign(form.value, data) Object.assign(form.value, data)
@ -92,7 +92,7 @@ async function submit() {
let data = Object.assign({}, form.value) let data = Object.assign({}, form.value)
// //
if (categoryRef.value.getCheckedNodes().length > 0) { if (categoryRef.value.getCheckedNodes().length > 0) {
data.pid = categoryRef.value.getCheckedNodes()[0].value data.parent_id = categoryRef.value.getCheckedNodes()[0].value
} }
isSaveing.value = true; isSaveing.value = true;
const res = data.category_id ? await assetConfig.menuEditObj(data) : await assetConfig.menuAddObj(data); const res = data.category_id ? await assetConfig.menuEditObj(data) : await assetConfig.menuAddObj(data);

View File

@ -113,10 +113,10 @@ export function getMenu() {
return [...userMenu, ...apiMenu] return [...userMenu, ...apiMenu]
} }
export function makeMenu(menus, pid = 0) { export function makeMenu(menus, parent_id = 0) {
const arr = []; const arr = [];
for (let item of menus) { for (let item of menus) {
if (item.pid === pid) { if (item.parent_id === parent_id) {
// 数据格式处理 // 数据格式处理
const tmp = { const tmp = {
name: item['name'], name: item['name'],

View File

@ -133,10 +133,10 @@ const tools = {
} }
return fmt; return fmt;
}, },
makeTreeData: function (data, pid = 0, key = "id", parent = "parent_id") { makeTreeData: function (data, parent_id = 0, key = "id", parent = "parent_id") {
const arr = []; const arr = [];
for (let item of data) { for (let item of data) {
if (item[parent] == pid) { if (item[parent] == parent_id) {
// 数据格式处理 // 数据格式处理
const tmp = item; const tmp = item;
const children = this.makeTreeData(data, item[key], key, parent); const children = this.makeTreeData(data, item[key], key, parent);

View File

@ -1,5 +1,5 @@
<template> <template>
<pi-table ref="tableRef" :api="api.system.dept.list" row-key="dept_id" @selection-change="selectionChange" <pi-table ref="tableRef" :api="api.system.dept.list" row-key="dept_id" primary-key="parent_id" @selection-change="selectionChange"
hidePagination> hidePagination>
<template #do> <template #do>
<el-button v-auth="'dept:add'" type="primary" icon="el-icon-plus" @click="add"></el-button> <el-button v-auth="'dept:add'" type="primary" icon="el-icon-plus" @click="add"></el-button>
@ -108,7 +108,7 @@ async function batch_del() {
// //
function selectionChange(e) { function selectionChange(e) {
selection.value.value = e; selection.value = e;
} }
// //

View File

@ -2,8 +2,8 @@
<el-dialog :title="titleMap[mode]" v-model="visible" :width="500" destroy-on-close @closed="$emit('closed')"> <el-dialog :title="titleMap[mode]" v-model="visible" :width="500" destroy-on-close @closed="$emit('closed')">
<el-form :model="form" :rules="rules" :disabled="mode==='show'" ref="formRef" label-width="100px" <el-form :model="form" :rules="rules" :disabled="mode==='show'" ref="formRef" label-width="100px"
label-position="right"> label-position="right">
<el-form-item label="上级部门" prop="pid"> <el-form-item label="上级部门" prop="parent_id">
<el-cascader v-model="form.pid" :options="groups" :props="groupsProps" :show-all-levels="false" <el-cascader v-model="form.parent_id" :options="groups" :props="groupsProps" :show-all-levels="false"
clearable style="width: 100%;" placeholder="默认一级部门"></el-cascader> clearable style="width: 100%;" placeholder="默认一级部门"></el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="部门名称" prop="dept_name"> <el-form-item label="部门名称" prop="dept_name">
@ -47,7 +47,7 @@ let visible = ref(false)
let isSaveing = ref(false) let isSaveing = ref(false)
let form = ref({ let form = ref({
dept_id: "", dept_id: "",
pid: 0, parent_id: 0,
dept_name: "", dept_name: "",
rank: 1, rank: 1,
status: 1, status: 1,

View File

@ -91,7 +91,7 @@ function treeData(menus, menu_id) {
for (let item of menus) { for (let item of menus) {
// //
const tmp = item; const tmp = item;
if (item.pid == menu_id) { if (item.parent_id == menu_id) {
var children = treeData(menus, item.menu_id); var children = treeData(menus, item.menu_id);
if (children.length > 0) { if (children.length > 0) {
tmp['children'] = children tmp['children'] = children
@ -117,7 +117,7 @@ async function add(node, data) {
var newMenuName = "未命名" + newMenuIndex.value++; var newMenuName = "未命名" + newMenuIndex.value++;
var newMenuData = { var newMenuData = {
menu_id: "", menu_id: "",
pid: data ? data.menu_id : 0, parent_id: data ? data.menu_id : 0,
name: newMenuName, name: newMenuName,
path: "", path: "",
title: newMenuName, title: newMenuName,

View File

@ -39,7 +39,7 @@ let visible = ref(false)
let isSaveing = ref(false) let isSaveing = ref(false)
let form = ref({ let form = ref({
pid: 0, parent_id: 0,
title: '', title: '',
name: '', name: '',
path: '', path: '',
@ -47,8 +47,8 @@ let form = ref({
icon: '' icon: ''
}) })
function open(pid) { function open(parent_id) {
form.value.pid = pid || 0 form.value.parent_id = parent_id || 0
visible.value = true visible.value = true
} }

View File

@ -10,8 +10,8 @@
<el-form-item label="显示名称" prop="title"> <el-form-item label="显示名称" prop="title">
<el-input v-model="form.title" clearable placeholder="菜单显示名字" style="width: 300px;"></el-input> <el-input v-model="form.title" clearable placeholder="菜单显示名字" style="width: 300px;"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="上级菜单" prop="pid"> <el-form-item label="上级菜单" prop="parent_id">
<el-cascader ref="parentId" v-model="form.pid" :options="menuOptions" :props="menuProps" <el-cascader ref="parentId" v-model="form.parent_id" :options="menuOptions" :props="menuProps"
:show-all-levels="false" placeholder="顶级菜单" clearable style="width: 300px;"></el-cascader> :show-all-levels="false" placeholder="顶级菜单" clearable style="width: 300px;"></el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="类型" prop="type"> <el-form-item label="类型" prop="type">
@ -89,7 +89,7 @@ const {proxy} = getCurrentInstance()
let form = ref({ let form = ref({
menu_id: "", menu_id: "",
pid: "", parent_id: "",
belong: 0, belong: 0,
name: "", name: "",
path: "", path: "",
@ -139,7 +139,7 @@ function treeToMap(tree) {
tree.forEach(item => { tree.forEach(item => {
var obj = { var obj = {
menu_id: item.menu_id, menu_id: item.menu_id,
pid: item.pid, parent_id: item.parent_id,
title: item.title, title: item.title,
children: item.children && item.children.length > 0 ? treeToMap(item.children) : null children: item.children && item.children.length > 0 ? treeToMap(item.children) : null
} }
@ -150,8 +150,8 @@ function treeToMap(tree) {
async function save() { async function save() {
loading.value = true loading.value = true
if (Array.isArray(form.value.pid)) { if (Array.isArray(form.value.parent_id)) {
form.value.pid = form.value.pid[form.value.pid.length - 1] ?? 0 form.value.parent_id = form.value.parent_id[form.value.parent_id.length - 1] ?? 0
} }
const res = form.value.menu_id == "" ? await api.system.menu.add(form.value) : const res = form.value.menu_id == "" ? await api.system.menu.add(form.value) :
await api.system.menu.edit(form.value); await api.system.menu.edit(form.value);

View File

@ -80,7 +80,7 @@ onMounted(() => {
async function getMenu() { async function getMenu() {
const res = await api.system.menu.list(); const res = await api.system.menu.list();
menu.value.list = tools.makeTreeData(res.data, 0, "menu_id", "pid"); menu.value.list = tools.makeTreeData(res.data, 0, "menu_id", "parent_id");
} }
// //