From fc7f59bcd94cebfcc3b2a1278984a3bb7b39edaa Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期二, 22 十月 2024 18:12:20 +0800
Subject: [PATCH] 功能模板树节点操作后局部刷新

---
 Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue |   86 ++++++++++++++++++++----------------------
 1 files changed, 41 insertions(+), 45 deletions(-)

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 96e4274..612fa18 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
@@ -1,33 +1,34 @@
 <template>
   <div style="padding: 0 10px">
     <div style="text-align: center;margin-bottom: 10px">
-      <avue-radio v-model="radioForm"  :dic="radioDic" style="margin: 0 20px 0 0;display: inline-block"></avue-radio>
-      <el-button  plain size="mini" type="primary" @click="clearValue">娓呯┖鍊�</el-button>
-      <el-button  plain size="mini" type="primary" @click="delAll">鍒犻櫎鍏ㄩ儴鏉′欢</el-button>
+      <avue-radio v-model="radioForm" :disabled ="readOnly" :dic="radioDic" style="margin: 0 20px 0 0;display: inline-block"></avue-radio>
+      <el-button  v-if="!readOnly" plain size="mini" type="primary" @click="clearValue">娓呯┖鍊�</el-button>
+      <el-button  v-if="!readOnly" plain size="mini" type="primary" @click="delAll">鍒犻櫎鍏ㄩ儴鏉′欢</el-button>
     </div>
     <div v-if="radioForm==0" @drop="drop" @dragover.prevent style="height: 220px;text-align: center;">
       <div v-for="(condition,index) in conditionList" :key="index" class="el-input--small" style="margin-bottom: 5px; text-align:left">
         <span style="width: 200px;display: inline-block;text-align: right" :title="condition.clause">{{condition.clause}}</span>
-        <avue-select v-model="condition.operator" type="tree" :dic="condition.operatorDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select>
-        <el-date-picker v-if="condition.type=='VTDate'" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;" value-format="YYYY-MM-DD"
+        <avue-select :disabled ="readOnly" v-model="condition.operator" type="tree" :dic="condition.operatorDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select>
+        <el-date-picker :disabled ="readOnly" v-if="condition.type=='VTDate'" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;" value-format="YYYY-MM-DD"
                         type="date">
         </el-date-picker>
-        <el-date-picker v-else-if="condition.type=='VTDateTime'" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;"
+        <el-date-picker :disabled ="readOnly" v-else-if="condition.type=='VTDateTime'" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;"
                         type="datetime">
         </el-date-picker>
-        <el-time-select v-else-if="condition.type=='VTTime'" v-model="condition.ordinaryValue" value-format="HH:mm:ss" style="width:300px;margin-right: 5px;display: inline-block;">
+        <el-time-select :disabled ="readOnly" v-else-if="condition.type=='VTTime'" v-model="condition.ordinaryValue" value-format="HH:mm:ss" style="width:300px;margin-right: 5px;display: inline-block;">
         </el-time-select>
-        <avue-input-number v-else-if="condition.type=='VTInteger'" precision="0" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;"></avue-input-number>
-        <avue-input-number v-else-if="condition.type=='VTLong' || condition.type=='VTDouble'" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;"></avue-input-number>
-        <avue-input v-else v-model="condition.ordinaryValue" placeholder="" style="width: 300px;margin-right: 5px;"></avue-input>
-        <el-button  plain size="mini" type="primary" @click="checkTemp(index)">閫夋嫨鏌ヨ妯℃澘</el-button>
-        <el-button  size="mini" type="danger" icon="el-icon-delete" @click="delCondition(index)" style="padding: 7px 8px"></el-button>
+        <avue-input-number :disabled ="readOnly" v-else-if="condition.type=='VTInteger'" precision="0" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;"></avue-input-number>
+        <avue-input-number :disabled ="readOnly" v-else-if="condition.type=='VTLong' || condition.type=='VTDouble'" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;"></avue-input-number>
+        <avue-input :disabled ="readOnly" v-else v-model="condition.ordinaryValue" placeholder="" style="width: 300px;margin-right: 5px;"></avue-input>
+        <el-button v-if="!readOnly"  plain size="mini" type="primary" @click="checkTemp(index)">閫夋嫨鏌ヨ妯℃澘</el-button>
+        <el-button v-if="!readOnly"  size="mini" type="danger" icon="el-icon-delete" @click="delCondition(index)" style="padding: 7px 8px"></el-button>
       </div>
     </div>
     <div v-else @drop="drop" @dragover.prevent style="height: 220px;text-align: left">
-      <avue-tree ref="tree" @node-drop="handleDrop" @node-drag-end="handleDragEnd" style="height: 220px" :data="treeData" :option="treeOption"  @node-click="nodeClick" node-key="value"></avue-tree>
+      <avue-tree ref="tree" @node-drag-end="handleDragEnd" @node-drag-leave="handleDragLeave"  @node-drag-over="handleDragOver"
+                  style="height: 220px" :data="treeData" :option="treeOption"  @node-click="nodeClick" node-key="value"></avue-tree>
     </div>
-    <div style="text-align: right;margin-top: 10px;">
+    <div v-if="!readOnly" style="text-align: right;margin-top: 10px;">
       <el-button v-if="radioForm==1"  plain size="mini" type="primary" @click="addHandler">澧炲姞閫昏緫</el-button>
       <el-button v-if="radioForm==1"  plain size="mini" type="primary" @click="editHandler">淇敼鏉′欢</el-button>
       <el-button v-if="radioForm==1"  plain size="mini" type="primary" @click="delHandler">鍒犻櫎</el-button>
@@ -93,6 +94,7 @@
         <el-button size="small" @click="cancleQueryDialog">鍙� 娑�</el-button>
       </div>
     </el-dialog>
+    <!--鏌ヨ-->
     <el-dialog v-dialogDrag
                :title="queryResultDialog.title"
                :visible.sync="queryResultDialog.showDialog"
@@ -101,7 +103,7 @@
                class="avue-dialog"
                :destroy-on-close="true"
                :close-on-click-modal="false"
-               @close="queryResultDialog.showDialog='false'">
+               @close="queryResultDialog.showDialog=false">
       <div class="el-input--small">
         <avue-crud  ref="crud" :data="resultData" :option="resultOption"
                     :table-loading="queryResultDialog.loading">
@@ -130,6 +132,10 @@
     levelFlag:{
       type: Number,
       default: 0
+    },
+    readOnly:{
+      type:Boolean,
+      default:false
     }
   },
   data() {
@@ -452,18 +458,18 @@
       const data = JSON.parse(event.dataTransfer.getData('item'));
       if (this.radioForm == 0) {
         const params = {
-          clause: data.value,
+          clause: data.name,
           operator: '=',
           ordinaryValue: ''
         }
-        if (data.atttributes.vtDataType == 'VTInteger' || data.atttributes.vtDataType == 'VTDouble' || data.atttributes.vtDataType == 'VTLong') {
+        if (data.vtDataType == 'VTInteger' || data.vtDataType == 'VTDouble' || data.vtDataType == 'VTLong') {
           params.operatorDic =JSON.parse(JSON.stringify(this.operatorIntDic)) ;
-        } else if (data.atttributes.vtDataType == 'VTDateTime' || data.atttributes.vtDataType == 'VTDate' || data.atttributes.vtDataType == 'VTTime') {
+        } else if (data.vtDataType == 'VTDateTime' || data.vtDataType == 'VTDate' || data.vtDataType == 'VTTime') {
           params.operatorDic = JSON.parse(JSON.stringify(this.operatorDateDic))
         } else {
           params.operatorDic = JSON.parse(JSON.stringify(this.operatorDic))
         }
-        params.type=data.atttributes.vtDataType;
+        params.type=data.vtDataType;
         this.conditionList.push(params)
       }else {
         if (this.clickNode.label != '骞朵笖' && this.clickNode.label != '鎴栬��') {
@@ -476,32 +482,36 @@
     initItem(data){
       this.treeIndex++;
       let item={
-        label: data.value,
-        value: data.value + this.treeIndex,
+        label: data.name,
+        value: data.name + this.treeIndex,
         valueIndex: 'v' + this.treeIndex,
         type:data.vtDataType,
         children: [],
-        inputValue:data.value,
+        inputValue:'',
         operator:'=',
-        showLabel:data.value
+        showLabel:data.name
       };
       let showLabel='';
-      if(data.value.indexOf('.')!=-1){
-        const labels=data.value.split('.')
+      if(data.name.indexOf('.')!=-1){
+        const labels=data.name.split('.')
         showLabel=labels[labels.length-1];
       }else {
-        showLabel=data.value;
+        showLabel=data.name;
       }
       item.showLabel=showLabel;
       return item
     },
-    handleDrop(draggingNode, dropNode, dropType, ev) {
-      debugger;
-      console.log('tree drop: ', dropNode.label, dropType);
-    },
     handleDragEnd(draggingNode, dropNode, dropType, ev) {
       debugger;
       console.log('tree drag end: ', dropNode && dropNode.label, dropType);
+    },
+    handleDragOver({event}) {
+      // 闃绘榛樿浜嬩欢锛屽厑璁告斁缃�
+      event.preventDefault();
+    },
+    handleDragLeave({event}) {
+      // 娓呴櫎鏀剧疆鏁堟灉
+      event.preventDefault();
     },
     //鍒犻櫎鏅�氭煡璇㈡潯浠�
     delCondition(index) {
@@ -610,21 +620,7 @@
     },
     //鏌ヨ
     queryHandler(){
-      this.$parent.$parent.$parent.$parent.$refs.form.validate((valid) => {
-        if (valid) {
-          this.queryResultDialog.loading=true;
-          const formData=this.$parent.$parent.$parent.$parent.initFormData();
-          getCriteria(formData).then(res => {
-            if (res.data.success) {
-              this.resultData=res.data.data;
-              this.queryResultDialog.showDialog=true;
-              this.queryResultDialog.loading=false;
-            }
-          });
-        } else {
-          return false;
-        }
-      });
+      this.$emit('queryHandler');
     },
     //閫夋嫨鏌ヨ妯℃澘
     checkTemp(index) {

--
Gitblit v1.9.3