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/components/PLT-basic-component/basicForm.vue | 1 Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue | 37 +++++++++++++----- Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue | 45 +++++++++++++++++----- Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/index.vue | 9 ++++ 4 files changed, 71 insertions(+), 21 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/basicForm.vue b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/basicForm.vue index 33db589..7d15766 100644 --- a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/basicForm.vue +++ b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/basicForm.vue @@ -121,6 +121,7 @@ Object.assign(this.form, this.initValue); } }, + deep:true, immediate: true, }, formData: { 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 9d55699..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,7 +55,7 @@ <el-main> <fieldset style="margin: 0 10px"> <legend> 鏌ヨ鏉′欢 </legend> - <form-query-dialog style="height: 300px;"></form-query-dialog> + <form-query-dialog style="height: 300px;" :queryCondition="queryCondition" :queryTree="queryTree"></form-query-dialog> </fieldset> </el-main> <el-aside style="width:350px"> @@ -64,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> @@ -254,6 +254,13 @@ menu: false, addBtn: false, filter:false, + draggable: true, + allowDrop: () => { + return false; + }, + allowDrag: () => { + return true; + }, }, linkQueryDefineForm:'',//閾炬帴绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑鍊� linkQueryDefineDic:[],//閾炬帴绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁 @@ -263,6 +270,10 @@ businessQueryDefineDic:[],//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁 //涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑椤瑰睘鎬� businessTreeData: [], + //楂樼骇鏌ヨ鏉′欢 + queryTree:{}, + //鏅�氭煡璇㈡潯浠� + queryCondition:[] }; }, watch: { @@ -329,7 +340,6 @@ if (data.selectData) { this.selectData = data.selectData; - this.formItems[0].disabled = true this.form.qtName = this.selectData.qtName; this.form.direction = this.selectData.queryTemplate.direction; this.form.btmType = this.selectData.queryTemplate.btmType; @@ -339,16 +349,16 @@ 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.formItems[0].disabled = false; + this.queryCondition=[]; + this.queryTree={}; } + this.dialog.showDialog = true; this.getTemp(data.treeData.label, true) - this.$nextTick(()=>{ - this.dialog.showDialog = true; - }); - }, cancelDialog() { this.dialog.loading = false; @@ -360,9 +370,9 @@ queryTemplate: {} }; this.orderInfoList =[]; - this.$refs.form.clearValidate(); this.businessQueryDefineForm=''; this.linkQueryDefineForm=''; + this.$refs.form.clearValidate(); }); }, submitDialog() { @@ -503,7 +513,12 @@ children: childData }] } - } + }, + // 寮�濮嬫嫋鎷芥爲鑺傜偣浜嬩欢 + handleDragStart(node, ev) { + // 浣跨敤 setData 鏂规硶璁剧疆鏁版嵁 + ev.dataTransfer.setData('item', JSON.stringify(node.data)); + }, }, } </script> diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue index b1bb218..20164a4 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue @@ -5,11 +5,12 @@ <el-button plain size="mini" type="primary" @click="clearValue">娓呯┖鍊�</el-button> <el-button plain size="mini" type="primary" @click="delAll">鍒犻櫎鍏ㄩ儴鏉′欢</el-button> </div> - <div v-if="radioForm==0" style="height: 220px;text-align: center;"> - <div v-for="condition in conditionList" class="el-input--small"> - <span>condition.clause</span> - <avue-select v-model="condition.operator" type="tree" :dic="operatorDic" style="width: 80px;margin: 0 5px"></avue-select> - <avue-input v-model="condition.ordinaryValue" placeholder="" style="width: 400px"></avue-input> + <div v-if="radioForm==0" @drop="drop" @dragover.prevent style="height: 220px;text-align: center;"> + <div v-for="condition in conditionList" class="el-input--small" style="margin-bottom: 5px;"> + <span style="width: 150px;display: inline-block;text-align: right" :title="condition.clause">{{condition.clause}}</span> + <avue-select v-model="condition.operator" type="tree" :dic="operatorDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select> + <avue-input v-model="condition.ordinaryValue" placeholder="" style="width: 300px;margin-right: 5px;"></avue-input> + <el-button plain size="mini" type="primary" @click="delAll">閫夋嫨鏌ヨ妯℃澘</el-button> </div> </div> <div v-else style="height: 220px;text-align: left"> @@ -28,6 +29,16 @@ <script> export default { name: "formQueryDialog", + props: { + queryCondition: { + type: Array, + default: [] + }, + queryTree: { + type: Object, + default: {} + }, + }, data() { return { radioForm: 0, @@ -38,16 +49,14 @@ label: '楂樼骇', value: 1 }], - conditionList:[{ - clause:'OID' - }], + conditionList:this.queryCondition, treeOption:{ defaultExpandAll:true, menu: false, addBtn: false, filter:false, }, - treeData:{}, + treeData:this.queryTree, //VTInteger銆乂TDouble銆乂TLong operatorIntDic:[{ label:'=', @@ -115,10 +124,26 @@ value:'not in' }] } + }, + methods:{ + // 鎷栨嫿鍒版椂 + drop(event) { + // 浣跨敤 getData 鏂规硶鑾峰彇鏁版嵁 + const data = JSON.parse(event.dataTransfer.getData('item')); + const params = { + clause: data.value, + operator: '=', + ordinaryValue: '' + } + this.conditionList.push(params) + } } } </script> <style scoped> - +::v-deep .el-input--small .el-input__inner{ + height: 28px; + line-height: 28px; +} </style> diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/index.vue index c6d411c..76df4c5 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/index.vue @@ -195,6 +195,10 @@ //鍒涘缓 addHandler() { this.$refs.formRef.openDialog(this.nodeRow.label,'鍒涘缓','add',{treeData:this.nodeRow}); + this.$nextTick(()=>{ + this.$refs.formRef.formItems[0].disabled = false; + this.$refs.formRef.$refs.form.getInit(this.$refs.formRef.formItems) + }); }, //淇敼 editHandler() { @@ -203,6 +207,11 @@ return; } this.$refs.formRef.openDialog(this.nodeRow.label,'淇敼','edit',{treeData:this.nodeRow,selectData:this.selectionRow[0]}); + this.$nextTick(()=>{ + debugger; + this.$refs.formRef.formItems[0].disabled = true; + this.$refs.formRef.$refs.form.getInit(this.$refs.formRef.formItems) + }); }, //鍒犻櫎 delHandler() { -- Gitblit v1.9.3