From da4310936f073b70e64b87b842af43790d7d04e4 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 30 八月 2024 15:59:28 +0800
Subject: [PATCH] 链接类型查询模板

---
 Source/plt-web/plt-web-ui/src/App.vue                                                            |    3 
 Source/plt-web/plt-web-ui/src/components/PLT-basic-component/basicForm.vue                       |    3 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue      |   82 +++++++++++----
 Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue |  124 ++++++++++++++++++++++++
 Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/index.vue           |   39 ++++++-
 5 files changed, 219 insertions(+), 32 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/App.vue b/Source/plt-web/plt-web-ui/src/App.vue
index a19b123..0664619 100644
--- a/Source/plt-web/plt-web-ui/src/App.vue
+++ b/Source/plt-web/plt-web-ui/src/App.vue
@@ -48,6 +48,9 @@
 .avue-dialog .el-dialog__body .avue-form{
   margin: 0px auto 40px; // 鍗曠嫭缁欏璇濇閲岀殑avue琛ㄥ崟鍔犱笂涓嬭竟璺�
 }
+.dialog-footer{
+  background-color: #ffffff;
+}
 .avue-crud .avue-form {
   margin: 0px auto !important; // 琛ㄦ牸鍐呯殑琛ㄥ崟锛堟瘮濡�:鎼滅储鏍忥級 鍙栨秷涓嬭竟璺�
 }
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 8591918..33db589 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
@@ -191,7 +191,7 @@
         showProp:item.showField,
         type: type,
         labelWidth: this.labelWidth || (item.text.length >= 6 ? 115 : 90),
-        disabled: !this.isEdit || item.readOnly || this.disabled,
+        disabled: item.readOnly || this.disabled,
         span: item.span
           ? item.span
           : item.type === "textarea"
@@ -226,6 +226,7 @@
       };
       if(!this.isEdit){
         col.placeholder=col.label;
+        col.disabled=true;
       }
       if(col.type === 'richText'){
         this.subitemName = col.field;
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..9d55699 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
@@ -55,9 +55,7 @@
         <el-main>
           <fieldset style="margin: 0 10px">
             <legend>&nbsp;鏌ヨ鏉′欢&nbsp;</legend>
-            <div style="height: 300px;">
-
-            </div>
+            <form-query-dialog style="height: 300px;"></form-query-dialog>
           </fieldset>
         </el-main>
         <el-aside style="width:350px">
@@ -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: {
@@ -322,31 +312,55 @@
       },
       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.formItems[0].disabled = true
+        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));//宸叉湁鎺掑簭
+        }
       } else {
         this.selectData = {};
-        this.orderInfoList =[];
+        this.orderInfoList = [];
+        this.formItems[0].disabled = false;
       }
-      this.getTemp(data.treeData.label,true)
+      this.getTemp(data.treeData.label, true)
+      this.$nextTick(()=>{
+        this.dialog.showDialog = 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.$refs.form.clearValidate();
         this.businessQueryDefineForm='';
         this.linkQueryDefineForm='';
       });
@@ -354,8 +368,28 @@
     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");
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
new file mode 100644
index 0000000..b1bb218
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue
@@ -0,0 +1,124 @@
+<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>
+    </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>
+    </div>
+    <div v-else style="height: 220px;text-align: left">
+      <avue-tree style="height: 220px" :data="treeData" :option="treeOption"></avue-tree>
+    </div>
+    <div 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="del">淇敼鏉′欢</el-button>
+      <el-button v-if="radioForm==1"  plain size="mini" type="primary" @click="del">鍒犻櫎</el-button>
+      <el-button  plain size="mini" type="primary" @click="del">鏌ヨ</el-button>
+      <el-button  plain size="mini" type="primary" @click="del">鍙栨秷</el-button>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+name: "formQueryDialog",
+  data() {
+    return {
+      radioForm: 0,
+      radioDic: [{
+        label: '鏅��',
+        value: 0
+      }, {
+        label: '楂樼骇',
+        value: 1
+      }],
+      conditionList:[{
+        clause:'OID'
+      }],
+      treeOption:{
+        defaultExpandAll:true,
+        menu: false,
+        addBtn: false,
+        filter:false,
+      },
+      treeData:{},
+      //VTInteger銆乂TDouble銆乂TLong
+      operatorIntDic:[{
+        label:'=',
+        value:'='
+      },{
+        label:'!=',
+        value:'!='
+      },{
+        label:'鍖呭惈',
+        value:'鍖呭惈'
+      },{
+        label:'in',
+        value:'in'
+      },{
+        label:'not in',
+        value:'not in'
+      },{
+        label:'>=',
+        value:'>='
+      },{
+        label:'>',
+        value:'>'
+      },{
+        label:'<=',
+        value:'<='
+      },{
+        label:'<',
+        value:'<'
+      }],
+      //VTDateTime銆乂TDate銆乂TTime
+      operatorTimeDic:[{
+        label:'=',
+        value:'='
+      },{
+        label:'!=',
+        value:'!='
+      },{
+        label:'in',
+        value:'in'
+      },{
+        label:'not in',
+        value:'not in'
+      },{
+        label:'>=',
+        value:'>='
+      },{
+        label:'<=',
+        value:'<='
+      }],
+      //鍏跺畠
+      operatorDic:[{
+        label:'=',
+        value:'='
+      },{
+        label:'!=',
+        value:'!='
+      },{
+        label:'鍖呭惈',
+        value:'鍖呭惈'
+      },{
+        label:'in',
+        value:'in'
+      },{
+        label:'not in',
+        value:'not in'
+      }]
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</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 3fbb71a..c6d411c 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
@@ -2,9 +2,9 @@
   <el-container>
     <el-aside>
       <basic-container>
-        <div ref="TreeBox" style="height: calc(100vh - 154px);!important;">
+        <div ref="TreeBox" style="height: calc(100vh - 164px);!important;">
           <!-- 宸︿晶鏍�         -->
-          <div style="height:  calc(100vh - 190px);">
+          <div style="height:  calc(100vh - 200px);">
             <avue-tree :data="treeData" :option="treeOption" @node-click="nodeClick">
           <span slot-scope="{ node, data }" class="el-tree-node__label">
            <span style="font-size: 15px">
@@ -35,16 +35,12 @@
         <form-dialog ref="formRef" @refresh="getTemp"></form-dialog>
       </basic-container>
     </el-main>
-    <div style="width: 300px;">111</div>
   </el-container>
 </template>
 
 <script>
 import {gridLink} from "@/api/modeling/linkType/api";
-import { gridTemplate, saveTemplate, updateTemplate} from "@/api/queryTemplate/queryDefine";
 import {getObjTypeQTs,deleteLinkTemplate} from "@/api/queryTemplate/linkTypeQuery";
-import func from "@/util/func";
-import {dateFormat} from "@/util/date";
 import basicOption from "@/util/basic-option";
 import FormDialog from "./formDialog.vue"
 
@@ -120,6 +116,34 @@
           formatter:function (row, value) {
             return row.queryTemplate.btmType;
           }
+        }, {
+          label: '鐗堟湰鐗堟',
+          prop: 'version',
+          formatter:function (row, value) {
+            if(row.queryTemplate.version==1){
+              return '褰撳墠鐗堟湰褰撳墠鐗堟'
+            }else  if(row.queryTemplate.version==2){
+              return '褰撳墠鐗堟湰鏈�鏂扮増娆�'
+            }else if(row.queryTemplate.version==3){
+              return '鏈�鏂扮増鏈渶鏂扮増娆�'
+            }else if(row.queryTemplate.version==7){
+              return '宸插彂甯冪殑鏈�鏂扮増鏈�'
+            }else {
+              return ''
+            }
+          }
+        }, {
+          label: '鏌ヨ鏄惁鏈変笅绾�',
+          prop: 'queryISLeaf',
+          formatter:function (row, value) {
+            return row.queryTemplate.queryISLeaf
+          }
+        }, {
+          label: '瀛愯妭鐐瑰眰娆℃暟',
+          prop: 'level',
+          formatter:function (row, value) {
+            return row.queryTemplate.level;
+          }
         }]
       },
       selectionRow: [],
@@ -194,9 +218,10 @@
         let names=this.selectionRow.map(item=>{
           return item.qtName
         })
-        deleteLinkTemplate(names).then(res => {
+        deleteLinkTemplate({names:names.join(',')}).then(res => {
           if (res.data.code === 200) {
             this.$message.success(res.data.obj);
+            this.getTemp();
           }
         })
       }).catch(() => {

--
Gitblit v1.9.3