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>&nbsp;鏌ヨ鏉′欢&nbsp;</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