|
|
@@ -21,8 +21,8 @@
|
|
|
<!-- <el-tag class="ml-2">
|
|
|
服务
|
|
|
</el-tag> -->
|
|
|
- <svg-icon icon-class="service2" style="color: #13E03B;" v-if="data.nodeType=='SERVICE'"/>
|
|
|
- <el-tag v-if="data.nodeType=='TREE'" class="ml-2" type="success">树</el-tag>
|
|
|
+ <svg-icon icon-class="接口" style="color: #13E03B;" v-if="data.nodeType=='SERVICE'"/>
|
|
|
+ <svg-icon icon-class="模型" style="color: red;" v-if="data.nodeType=='TREE'"/>
|
|
|
<span>{{ node.label }}</span>
|
|
|
</div>
|
|
|
<div style="margin-right: 1%;position: absolute;margin-left: 75%;">
|
|
|
@@ -32,7 +32,7 @@
|
|
|
</el-icon>
|
|
|
<template #dropdown>
|
|
|
<el-dropdown-menu>
|
|
|
- <el-dropdown-item style="display: flex;" @click="add1Lever">
|
|
|
+ <el-dropdown-item style="display: flex;" @click="add1Level">
|
|
|
<el-icon class="el-icon--right" style="color: black;">
|
|
|
<CirclePlus />
|
|
|
</el-icon>
|
|
|
@@ -40,7 +40,7 @@
|
|
|
添加同级
|
|
|
</div>
|
|
|
</el-dropdown-item>
|
|
|
- <el-dropdown-item style="display: flex;" @click="addNextLever">
|
|
|
+ <el-dropdown-item style="display: flex;" @click="addNextLevel">
|
|
|
<el-icon class="el-icon--right" style="color: black;">
|
|
|
<Connection />
|
|
|
</el-icon>
|
|
|
@@ -568,7 +568,14 @@
|
|
|
<el-row :gutter="48">
|
|
|
<el-col :span="10">
|
|
|
<el-form-item label="所属模型:" prop="mdid" style="">
|
|
|
- <el-select
|
|
|
+ <el-tree-select
|
|
|
+ v-model="formAdd.mdid"
|
|
|
+ :data="optionsMdid"
|
|
|
+ check-strictly
|
|
|
+ :render-after-expand="false"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ <!-- <el-select
|
|
|
v-model="formAdd.mdid"
|
|
|
style="width: 100%;margin-left: 0%;"
|
|
|
>
|
|
|
@@ -578,7 +585,7 @@
|
|
|
:label="item.label"
|
|
|
:value="item.id"
|
|
|
/>
|
|
|
- </el-select>
|
|
|
+ </el-select> -->
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -656,7 +663,7 @@
|
|
|
<el-table-column prop="itemName" label="参数名称">
|
|
|
<template #default="scope">
|
|
|
<div style="width: 100%;">
|
|
|
- <el-input placeholder="请填写参数名称" type="primary" class="noBor" v-model="scope.row.itemName" size="mini" text style="margin-left: 0%;"></el-input>
|
|
|
+ <el-input placeholder="请填写参数名称" type="primary" class="noBor" v-model="scope.row.paramName" size="mini" text style="margin-left: 0%;"></el-input>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
@@ -744,10 +751,10 @@
|
|
|
<template #footer>
|
|
|
<span class="dialog-footer">
|
|
|
<el-button size="mini" @click="dialogVisibleLevel = false">取消</el-button>
|
|
|
- <el-button type="primary" @click="add1Level" size="mini" v-if="show1Lev">
|
|
|
+ <el-button type="primary" @click="saveAdd1Level" size="mini" v-if="show1Lev">
|
|
|
提交
|
|
|
</el-button>
|
|
|
- <el-button type="primary" @click="addNextLevel" size="mini" v-if="!show1Lev">
|
|
|
+ <el-button type="primary" @click="saveAddNextLevel" size="mini" v-if="!show1Lev">
|
|
|
提交
|
|
|
</el-button>
|
|
|
</span>
|
|
|
@@ -760,7 +767,7 @@
|
|
|
import {getCatalog} from "@/api/service/catalog";
|
|
|
import { Plus,Search,Filter,Promotion,Check } from '@element-plus/icons-vue'
|
|
|
import { reactive } from 'vue'
|
|
|
-import { modelTreeSelect,getSerDe,addService,addParam,editService,editParam,addServiceParam,delService,getTreeDe,addTree } from "@/api/service/info";
|
|
|
+import { modelTreeSelect,getSerDe,addService,addParam,editService,editParam,addServiceParam,delService,getTreeDe,addTree,deTree } from "@/api/service/info";
|
|
|
import { ref, onMounted, onUnmounted, nextTick,onBeforeMount } from 'vue';
|
|
|
import JsonViewer from 'vue-json-viewer'
|
|
|
import 'vue-json-viewer/style.css'
|
|
|
@@ -962,6 +969,28 @@ const filterNode = (value, data) => {
|
|
|
if (!value) return true; // 空搜索时显示所有节点
|
|
|
return data.label.includes(value); // 检查节点标签是否包含关键字
|
|
|
};
|
|
|
+function filterModelNodes(nodes) {
|
|
|
+ if (!Array.isArray(nodes)) return [];
|
|
|
+
|
|
|
+ const result = [];
|
|
|
+ for (const node of nodes) {
|
|
|
+ // 递归处理子节点(如果有)
|
|
|
+ const filteredChildren = node.children ? filterModelNodes(node.children) : [];
|
|
|
+
|
|
|
+ if (node.nodeType === 'MODEL') {
|
|
|
+ // 保留当前节点,并更新其子节点
|
|
|
+ node.value = node.id
|
|
|
+ result.push({
|
|
|
+ ...node,
|
|
|
+ children: filteredChildren
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 删除当前节点,将其子节点提升到当前层级
|
|
|
+ result.push(...filteredChildren);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+}
|
|
|
function clearAdd(){
|
|
|
formAdd.value = {
|
|
|
name:'',
|
|
|
@@ -1001,7 +1030,15 @@ function extractModelNodesDFSIterative(root) {
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
+function delAll(){
|
|
|
+ proxy.$modal.confirm('是否确认删除?').then(function () {
|
|
|
+ return deTree(parTree.value.id);
|
|
|
+ }).then(() => {
|
|
|
+ getTreeLeft();
|
|
|
+ proxy.$modal.msgSuccess("删除成功");
|
|
|
+ dialogVisibleLevel.value = false
|
|
|
+ }).catch(() => {});
|
|
|
+}
|
|
|
function clearFromLev(){
|
|
|
formLev.value = {
|
|
|
itemName:'',
|
|
|
@@ -1010,20 +1047,40 @@ function clearFromLev(){
|
|
|
}
|
|
|
}
|
|
|
function addNextLevel(){
|
|
|
-
|
|
|
+ dialogVisibleLevel.value = true
|
|
|
+ show1Lev.value = false
|
|
|
+}
|
|
|
+function saveAddNextLevel(){
|
|
|
+ formRefLev.value.validate((valid) => {
|
|
|
+ if(valid){
|
|
|
+ var par = formLev.value
|
|
|
+ par.treeType = parTree.value.nodeType
|
|
|
+ par.treePid = parTree.value.id
|
|
|
+ addTree(par).then(res=>{
|
|
|
+ if(res.code===200){
|
|
|
+ proxy.$modal.msgSuccess("新增成功");
|
|
|
+ getTreeLeft()
|
|
|
+ dialogVisibleLevel.value = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
-function add1Lever(){
|
|
|
+function add1Level(){
|
|
|
dialogVisibleLevel.value = true
|
|
|
+ show1Lev.value = true
|
|
|
+}
|
|
|
+function saveAdd1Level(){
|
|
|
formRefLev.value.validate((valid) => {
|
|
|
if(valid){
|
|
|
var par = formLev.value
|
|
|
- par.treeType = parTree.value.treeType
|
|
|
- par.treePid = parTree.value.treePid
|
|
|
+ par.treeType = parTree.value.nodeType
|
|
|
+ par.treePid = parTree.value.pid
|
|
|
addTree(par).then(res=>{
|
|
|
if(res.code===200){
|
|
|
proxy.$modal.msgSuccess("新增成功");
|
|
|
getTreeLeft()
|
|
|
- dialogVisibleLevel = false
|
|
|
+ dialogVisibleLevel.value = false
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
@@ -1099,13 +1156,13 @@ function showAdd(){
|
|
|
dialogVisible.value = true
|
|
|
}
|
|
|
async function handleNodeClick(node,data,event){
|
|
|
+ parTree.value = data.data
|
|
|
currentNodeKey.value = data.data.id
|
|
|
- console.log(currentNodeKey.value)
|
|
|
+ console.log(data.data.nodeType)
|
|
|
isEdit.value = false
|
|
|
parId.value = data.data
|
|
|
await getSerDe(data.data.id).then(res=>{
|
|
|
detail.value = res.data.ptService
|
|
|
- detail.value.nodeType = data.data.nodeType
|
|
|
tableDataCan.value = res.data.list
|
|
|
dataReturn.value = res.data.returnList
|
|
|
console.log(tableDataCan.value)
|
|
|
@@ -1113,20 +1170,18 @@ async function handleNodeClick(node,data,event){
|
|
|
formJi.value = res.data.ptService
|
|
|
example.value = res.data.ptService.example
|
|
|
})
|
|
|
- if(data.data.nodeType==='MODEL'){
|
|
|
- getTreeDe(data.data.id).then(res=>{
|
|
|
- parTree.value = res.data
|
|
|
- })
|
|
|
- }
|
|
|
+ detail.value.nodeType = data.data.nodeType
|
|
|
+
|
|
|
}
|
|
|
async function getTreeLeft(){
|
|
|
var par
|
|
|
await modelTreeSelect().then(res=>{
|
|
|
par = res.data
|
|
|
data.value = res.data
|
|
|
+
|
|
|
})
|
|
|
- optionsMdid.value = extractModelNodesDFSIterative(par)
|
|
|
-
|
|
|
+ optionsMdid.value = filterModelNodes(par)
|
|
|
+ console.log(optionsMdid.value)
|
|
|
}
|
|
|
function renameTreeProperties(tree) {
|
|
|
// 深拷贝避免修改原始数据(可选,根据需求)
|