From 4e811ec71dba161e13592828a6035e9316b1548e Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期五, 30 八月 2024 17:15:29 +0800 Subject: [PATCH] 链接类型查询模板 --- Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue | 103 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 76 insertions(+), 27 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 6ed5d5c..2b7229c 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 @@ -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"> + <avue-tree style="height: 265px" :data="linkTreeData" :option="treeOption" @node-drag-start="handleDragStart"> </avue-tree> </div> </fieldset> @@ -55,9 +55,7 @@ <el-main> <fieldset style="margin: 0 10px"> <legend> 鏌ヨ鏉′欢 </legend> - <div style="height: 300px;"> - - </div> + <form-query-dialog style="height: 300px;" :queryCondition="queryCondition" :queryTree="queryTree"></form-query-dialog> </fieldset> </el-main> <el-aside style="width:350px"> @@ -66,7 +64,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"> + <avue-tree style="height: 265px" :data="businessTreeData" :option="treeOption" @node-drag-start="handleDragStart"> </avue-tree> </div> </fieldset> @@ -85,9 +83,10 @@ import {linkSave} from "@/api/queryTemplate/linkTypeQuery"; import basicOption from "@/util/basic-option"; import {gridTemplate} from "@/api/queryTemplate/queryDefine"; -import {deleteAttributes} from "@/api/modeling/attributePool/api"; +import formQueryDialog from "./formQueryDialog.vue"; export default { name: "formDialog", + components:{formQueryDialog}, data(){ return { dialog: { @@ -175,16 +174,7 @@ form:{ btmName:'', qtName: '', - queryTemplate:{ - - } - }, - formTemplate:{ - btmName:'', - qtName: '', - queryTemplate:{ - - } + queryTemplate:{} }, //宸叉湁鎺掑簭鍒楄〃閰嶇疆 crudOption: { @@ -264,6 +254,13 @@ menu: false, addBtn: false, filter:false, + draggable: true, + allowDrop: () => { + return false; + }, + allowDrag: () => { + return true; + }, }, linkQueryDefineForm:'',//閾炬帴绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑鍊� linkQueryDefineDic:[],//閾炬帴绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁 @@ -273,6 +270,10 @@ businessQueryDefineDic:[],//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁 //涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑椤瑰睘鎬� businessTreeData: [], + //楂樼骇鏌ヨ鏉′欢 + queryTree:{}, + //鏅�氭煡璇㈡潯浠� + queryCondition:[] }; }, watch: { @@ -322,40 +323,83 @@ }, immediate: true, }, + 'dialog.type': { + handler(val) { + if(val=='edit'){ + } + }, + immediate: true, + }, }, methods: { openDialog(btmName, title, mode, data) { this.dialog.title = title; - this.dialog.showDialog = true; this.dialog.type = mode; this.form.btmName = btmName; this.treeData = data.treeData; if (data.selectData) { this.selectData = data.selectData; - this.orderInfoList = JSON.parse(JSON.stringify(data.selectData.queryTemplate.orderInfoList));//宸叉湁鎺掑簭 + this.form.qtName = this.selectData.qtName; + this.form.direction = this.selectData.queryTemplate.direction; + this.form.btmType = this.selectData.queryTemplate.btmType; + this.form.version = this.selectData.queryTemplate.version; + this.form.queryISLeaf = this.selectData.queryTemplate.queryISLeaf; + this.form.level = this.selectData.queryTemplate.level; + if (data.selectData.queryTemplate.orderInfoList && data.selectData.queryTemplate.orderInfoList.length > 0) { + this.orderInfoList = JSON.parse(JSON.stringify(data.selectData.queryTemplate.orderInfoList));//宸叉湁鎺掑簭 + } + this.queryCondition=this.selectData.queryTemplate.condition; + this.queryTree=this.selectData.queryTemplate.tree; } else { this.selectData = {}; - this.orderInfoList =[]; + this.orderInfoList = []; + this.queryCondition=[]; + this.queryTree={}; } - this.getTemp(data.treeData.label,true) + this.dialog.showDialog = true; + this.getTemp(data.treeData.label, true) }, cancelDialog() { + this.dialog.loading = false; + this.dialog.showDialog = false; this.$nextTick(() => { - this.form = this.formTemplate; + this.form = { + btmName: '', + qtName: '', + queryTemplate: {} + }; this.orderInfoList =[]; - this.dialog.loading = false; - this.dialog.showDialog = false; - this.$refs.form.resetFields(); this.businessQueryDefineForm=''; this.linkQueryDefineForm=''; + this.$refs.form.clearValidate(); }); }, submitDialog() { this.$refs.form.validate((valid) => { if (valid) { - linkSave(this.form).then(res => { - if (res.success) { + 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=[] + linkSave(formData).then(res => { + if (res.data.success) { this.$message.success("淇濆瓨鎴愬姛"); this.cancelDialog(); this.$emit("refresh"); @@ -469,7 +513,12 @@ children: childData }] } - } + }, + // 寮�濮嬫嫋鎷芥爲鑺傜偣浜嬩欢 + handleDragStart(node, ev) { + // 浣跨敤 setData 鏂规硶璁剧疆鏁版嵁 + ev.dataTransfer.setData('item', JSON.stringify(node.data)); + }, }, } </script> -- Gitblit v1.9.3