<template>
|
<el-container>
|
<el-aside>
|
<basic-container>
|
<div style="max-height: calc(100vh - 170px);overflow: auto">
|
<avue-tree ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick">
|
<span slot-scope="{ node, data }" class="el-tree-node__label">
|
<span style="font-size: 15px">
|
<i class="el-icon-s-promotion"></i>
|
{{ (node || {}).label }}
|
</span>
|
</span>
|
</avue-tree>
|
</div>
|
</basic-container>
|
</el-aside>
|
|
<el-main>
|
<basic-container>
|
<el-form ref="form" :model="form" label-width="85px" style="height: 79vh">
|
<el-form-item label="名称:">
|
<el-input v-model="form.name" placeholder="请输入名称"></el-input>
|
</el-form-item>
|
<el-form-item label="标识:">
|
<el-input v-model="form.code" placeholder="请输入标识"></el-input>
|
</el-form-item>
|
<el-form-item label="别名:">
|
<el-input v-model="form.alias" placeholder="请输入别名"></el-input>
|
</el-form-item>
|
<el-form-item label="编号:">
|
<el-input v-model="form.sort" placeholder="请输入编号"></el-input>
|
</el-form-item>
|
<el-form-item label="描述:">
|
<el-input v-model="form.remark" placeholder="请输入描述"></el-input>
|
</el-form-item>
|
</el-form>
|
<div class="btnBox">
|
<el-button v-if="!addStatus" :disabled="mangeShowBtn ? false : !childTypeBtn" icon="el-icon-plus" plain
|
size="small"
|
type="primary" @click="addClickHandler">增加
|
</el-button>
|
<el-button v-if="addStatus" icon="el-icon-check" plain size="small"
|
type="success" @click="addSaveClickHandler">保存
|
</el-button>
|
<el-button :disabled="mangeShowBtn" icon="el-icon-edit" plain size="small" type="primary"
|
@click="addClickHandler">修改
|
</el-button>
|
<el-button :disabled="mangeShowBtn" icon="el-icon-close" plain size="small" type="danger"
|
@click="addClickHandler">删除
|
</el-button>
|
<el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadClickHandler">导入sql
|
</el-button>
|
</div>
|
</basic-container>
|
</el-main>
|
</el-container>
|
</template>
|
|
<script>
|
//管理功能模块
|
import {getSysModelTreeMenuByPID, addModel} from "@/api/systemModel/mangeModel/api"
|
|
export default {
|
name: "index",
|
data() {
|
return {
|
addStatus: false,
|
nodeRow: {},
|
form: {},
|
treeData: [],
|
treeOption: {
|
height: 'auto',
|
menu: false,
|
addBtn: false,
|
defaultExpandAll: false,
|
props: {
|
label: 'name',
|
value: 'id',
|
children: 'children',
|
},
|
lazy: true,
|
treeLoad: (node, resolve) => {
|
const params = {
|
parentId: node.level === 0 ? "operateNode" : node.data.id,
|
modeType: node.level === 0 ? "firstNode" : node.data.modeType,
|
}
|
getSysModelTreeMenuByPID(params).then(res => {
|
resolve(res.data.data.map(item => {
|
return {
|
...item,
|
id: item.id,
|
name: item.name,
|
leaf: !item.hasChildren
|
}
|
}))
|
})
|
}
|
},
|
}
|
},
|
created() {
|
},
|
computed: {
|
/**
|
* childType
|
* 为-1 全部按钮展示 禁用修改 删除 增加操作类型
|
* 不为-1 隐藏 删除非系统模块 删除业务模块
|
* 为1时 禁用操作类型、导入、导出
|
* 为2时 禁用增加 导入 导出
|
* mangeShowBtn 为 true 说明是顶层节点 全部按钮展示 禁用修改 删除 增加操作类型
|
* @returns {Number}
|
*/
|
mangeShowBtn() {
|
return this.form.childType === -1;
|
},
|
childTypeBtn() {
|
return this.form.childType === 1;
|
}
|
},
|
methods: {
|
// 树行点击
|
nodeClick(row) {
|
console.log(row);
|
this.form = {...row};
|
this.nodeRow = {...row};
|
this.addStatus = false;
|
},
|
|
// 新增按钮
|
addClickHandler() {
|
for (const key in this.form) {
|
if (this.form.hasOwnProperty(key)) {
|
this.form[key] = null;
|
}
|
}
|
this.addStatus = true;
|
},
|
|
// 保存按钮
|
addSaveClickHandler() {
|
console.log(this.form)
|
if (!this.form.name) {
|
this.$message.error('模块名不能为空');
|
return
|
}
|
if (this.form.name.length > 128) {
|
this.$message.error('模块名长度超过128!');
|
return
|
}
|
if (this.form.remark && this.form.remark.length > 255) {
|
this.$message.error('描述长度超过255!');
|
return
|
}
|
if (this.form.resourceDotNet && this.form.resourceDotNet.length > 255) {
|
this.$message.error('.NET标识长度不能255!');
|
return
|
}
|
if (this.form.pathc && this.form.pathc.length > 255) {
|
this.$message.error('C/S标识长度不能255!');
|
return
|
}
|
if (this.form.resourceMobile && this.form.resourceMobile.length > 255) {
|
this.$message.error('Mobile标识长度不能255!');
|
return
|
}
|
console.log(this.nodeRow);
|
this.form.parentId = this.nodeRow.id;
|
this.form.modeType = this.nodeRow.modeType;
|
addModel(this.form).then(res => {
|
console.log(res)
|
this.addStatus = false;
|
})
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
::v-deep {
|
.el-form-item .el-select {
|
width: 100%;
|
}
|
}
|
|
.btnBox {
|
display: flex;
|
justify-content: center;
|
}
|
</style>
|