From 7b3d5fb08fdbd2ce574c3b9ab666c8c7082be728 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期五, 06 九月 2024 15:38:35 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue | 137 +++++++++++++++++++++++++++++++-------------- 1 files changed, 94 insertions(+), 43 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue index 2b7229c..91d6197 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue @@ -2,7 +2,7 @@ <el-dialog v-dialogDrag :title="dialog.title" :visible.sync="dialog.showDialog" - width="1600px" + width="1620px" :append-to-body="true" class="avue-dialog" :destroy-on-close="true" @@ -47,7 +47,7 @@ <div> 鏌ヨ妯℃澘瀹氫箟 <avue-select @change="linkQueryDefineChange" class="el-input--small" v-model="linkQueryDefineForm" placeholder="璇烽�夋嫨鍐呭" type="tree" :dic="linkQueryDefineDic" style="width:240px"></avue-select> - <avue-tree style="height: 265px" :data="linkTreeData" :option="treeOption" @node-drag-start="handleDragStart"> + <avue-tree style="height: 265px" :data="linkTreeData" :option="treeOption" @node-drag-start="handleDragStart" @node-drag-end="handleDragEnd"> </avue-tree> </div> </fieldset> @@ -55,7 +55,12 @@ <el-main> <fieldset style="margin: 0 10px"> <legend> 鏌ヨ鏉′欢 </legend> - <form-query-dialog style="height: 300px;" :queryCondition="queryCondition" :queryTree="queryTree"></form-query-dialog> + <form-query-dialog ref="formQuery" + style="height: 300px;" + :queryCondition="queryCondition" + :queryTree="queryTree" + :levelFlag.sync="form.levelFlag" + ></form-query-dialog> </fieldset> </el-main> <el-aside style="width:350px"> @@ -64,7 +69,7 @@ <div> 鏌ヨ妯℃澘瀹氫箟 <avue-select @change="businessQueryDefineChange" class="el-input--small" v-model="businessQueryDefineForm" placeholder="璇烽�夋嫨鍐呭" type="tree" :dic="businessQueryDefineDic" style="width: 240px;"></avue-select> - <avue-tree style="height: 265px" :data="businessTreeData" :option="treeOption" @node-drag-start="handleDragStart"> + <avue-tree style="height: 265px" :data="businessTreeData" :option="treeOption" @node-drag-start="handleDragStart" @node-drag-end="handleDragEnd"> </avue-tree> </div> </fieldset> @@ -82,7 +87,7 @@ import {getAllOrderbyAttributeByLink} from "@/api/modeling/linkType/api"; import {linkSave} from "@/api/queryTemplate/linkTypeQuery"; import basicOption from "@/util/basic-option"; -import {gridTemplate} from "@/api/queryTemplate/queryDefine"; +import {queryTemplateListByAttr} from "@/api/queryTemplate/queryDefine"; import formQueryDialog from "./formQueryDialog.vue"; export default { name: "formDialog", @@ -174,6 +179,7 @@ form:{ btmName:'', qtName: '', + levelFlag:0,//0:鏅�氭煡璇㈡ā鏉�; 1:楂樼骇鏌ヨ妯℃澘" queryTemplate:{} }, //宸叉湁鎺掑簭鍒楄〃閰嶇疆 @@ -273,7 +279,8 @@ //楂樼骇鏌ヨ鏉′欢 queryTree:{}, //鏅�氭煡璇㈡潯浠� - queryCondition:[] + queryCondition:[], + }; }, watch: { @@ -322,14 +329,7 @@ } }, immediate: true, - }, - 'dialog.type': { - handler(val) { - if(val=='edit'){ - } - }, - immediate: true, - }, + } }, methods: { openDialog(btmName, title, mode, data) { @@ -350,12 +350,16 @@ this.orderInfoList = JSON.parse(JSON.stringify(data.selectData.queryTemplate.orderInfoList));//宸叉湁鎺掑簭 } this.queryCondition=this.selectData.queryTemplate.condition; - this.queryTree=this.selectData.queryTemplate.tree; + this.queryTree=this.selectData.tree; + this.form.levelFlag=this.selectData.levelFlag; } else { this.selectData = {}; this.orderInfoList = []; this.queryCondition=[]; - this.queryTree={}; + this.queryTree={ + connector:'骞朵笖', + child:[] + }; } this.dialog.showDialog = true; this.getTemp(data.treeData.label, true) @@ -367,6 +371,7 @@ this.form = { btmName: '', qtName: '', + levelFlag:0, queryTemplate: {} }; this.orderInfoList =[]; @@ -378,26 +383,8 @@ submitDialog() { this.$refs.form.validate((valid) => { if (valid) { - let formData={ - btmName:this.form.btmName, - qtName:this.form.qtName, - queryTemplate:{ - btmType:this.form.btmType, - clauseList:['*'], - direction:this.form.direction, - id:this.form.qtName, - level:this.form.level, - linkType:this.form.btmName, - orderInfoList:this.orderInfoList, - queryISLeaf:this.form.queryISLeaf, - recReturnMode:1,//閫掑綊杩斿洖鏁版嵁妯″紡:1锛歊ECRETURNMODE_FLAT, 2锛歊ECRETURNMODE_FILTER - rightFlag:true, - secretFlag:true, - type:'link', - version:this.form.version - } - } - formData.condition=[] + const formData=this.initFormData(); + console.log(formData) linkSave(formData).then(res => { if (res.data.success) { this.$message.success("淇濆瓨鎴愬姛"); @@ -409,6 +396,60 @@ return false; } }); + }, + initFormData() { + let formData = { + btmName: this.form.btmName, + qtName: this.form.qtName, + levelFlag: this.form.levelFlag, + queryTemplate: { + btmType: this.form.btmType, + clauseList: ['*'], + direction: this.form.direction, + id: this.form.qtName, + level: this.form.level, + linkType: this.form.btmName, + orderInfoList: this.orderInfoList, + queryISLeaf: this.form.queryISLeaf, + recReturnMode: 1,//閫掑綊杩斿洖鏁版嵁妯″紡:1锛歊ECRETURNMODE_FLAT, 2锛歊ECRETURNMODE_FILTER + rightFlag: true, + secretFlag: true, + type: 'link', + version: this.form.version + } + } + if (formData.levelFlag == 1) { + //楂樼骇 + let that = this; + function initValue(nodeChild) { + let children = []; + if (nodeChild) { + nodeChild.forEach((item, index) => { + if (item.label != '骞朵笖' && item.label != '鎴栬��') { + children.push(item.label); + } else { + children.push({ + connector: item.label, + child: initValue(item.children) + }) + } + }) + } + return children; + } + + let treeData = { + connector: this.$refs.formQuery.treeData[0].label + }; + if (this.$refs.formQuery.treeData[0].children) { + treeData.child = initValue(this.$refs.formQuery.treeData[0].children); + } + formData.tree = treeData + } + + formData.condition = this.$refs.formQuery.conditionList; + + return formData; }, getFormData(form) { this.form = form; @@ -468,7 +509,7 @@ //鑾峰彇鏌ヨ妯℃澘瀹氫箟涓嬫媺 getTemp(btmName,linkFlag) { if (btmName) { - gridTemplate({btmName: btmName, linkFlag: linkFlag}).then(res => { + queryTemplateListByAttr({btmName: btmName, linkFlag: linkFlag,direction:this.form.direction}).then(res => { const data = res.data.data.map(item => { item.label = item.name + '-' + (item.linkTypeName || item.btmName); item.value = item.name; @@ -486,10 +527,11 @@ }, linkQueryDefineChange(data) { if (data.value) { - const childData = data.item.abNames.map(item => { + const childData = data.item.attrs.map(item => { return { - label: item, - value: item + label: item.name, + value: item.name, + atttributes:item }; }); this.linkTreeData = [{ @@ -501,10 +543,11 @@ }, businessQueryDefineChange(data) { if (data.value) { - const childData = data.item.abNames.map(item => { + const childData = data.item.attrs.map(item => { return { - label: item, - value: item + label: item.name, + value: item.name, + atttributes:item }; }); this.businessTreeData = [{ @@ -518,7 +561,15 @@ handleDragStart(node, ev) { // 浣跨敤 setData 鏂规硶璁剧疆鏁版嵁 ev.dataTransfer.setData('item', JSON.stringify(node.data)); + if(this.form.levelFlag==1){ + this.$refs.formQuery.$refs.tree.$emit('tree-node-drag-start', ev,{node:this.$refs.formQuery.initItem(node)}); + } }, + handleDragEnd(draggingNode,endNode,position,ev){ + if(this.form.levelFlag==1) { + this.$refs.formQuery.$refs.tree.$emit('tree-node-drag-end', ev); + } + } }, } </script> -- Gitblit v1.9.3