From 7b3d5fb08fdbd2ce574c3b9ab666c8c7082be728 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 06 九月 2024 15:38:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/index.vue |  240 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 237 insertions(+), 3 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/index.vue
index 35e0ed5..a17252d 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/index.vue
@@ -1,13 +1,247 @@
 <template>
-  <p>涓氬姟绫诲瀷鏌ヨ</p>
+  <el-container>
+
+    <el-aside>
+      <basic-container>
+        <div ref="TreeBox" style="height: calc(100vh - 154px);!important;">
+          <!-- 宸︿晶鏍�         -->
+          <div style="height:  calc(100vh - 190px);">
+            <avue-tree :data="treeData" :option="treeOption" @node-click="nodeClick">
+          <span slot-scope="{ node, data }" class="el-tree-node__label">
+           <span style="font-size: 15px">
+              <i class="el-icon-s-promotion"></i>
+                {{ (node || {}).label }}
+            </span>
+          </span>
+            </avue-tree>
+          </div>
+        </div>
+      </basic-container>
+    </el-aside>
+
+    <el-main>
+      <basic-container>
+        <div v-if="this.nodeRow && this.nodeRow.label">
+          <el-button icon="el-icon-plus" size="small" type="primary" @click="addHandler">鍒涘缓</el-button>
+          <el-button icon="el-icon-edit" plain size="small" type="primary" @click="editHandler">淇敼</el-button>
+          <el-button icon="el-icon-delete" plain size="small" type="danger" @click="delHandler">鍒犻櫎</el-button>
+          <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">瀵煎嚭</el-button>
+          <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadClickHandler">瀵煎叆</el-button>
+        </div>
+        <avue-crud  ref="crud"
+                    @selection-change="selectionChange"
+                    @row-click="rowClick"
+                    :data="crudData" :option="crudOption" :table-loading="tableLoading" style="margin-top: 10px">
+        </avue-crud>
+        <form-dialog ref="formRef" @refresh="getTemp"></form-dialog>
+      </basic-container>
+    </el-main>
+
+  </el-container>
 </template>
 
 <script>
+import {getBizTypes} from "@/api/modeling/businessType/api";
+import {gridTemplate,saveTemplate,updateTemplate,deleteTemplate} from "@/api/queryTemplate/queryDefine";
+import basicOption from "@/util/basic-option";
+import func from "@/util/func";
+import {dateFormat} from "@/util/date";
+import FormDialog from "./formDialog.vue"
+import {deleteLinkTemplate} from "@/api/queryTemplate/linkTypeQuery";
 export default {
-  name: "index"
+  name: "index",
+  components: {FormDialog},
+  data() {
+    return {
+      treeOption: {
+        height: 'auto',
+        defaultExpandedKeys: ['topNode'],
+        menu: false,
+        addBtn: false,
+        props: {
+          label: 'label',
+          value: 'oid',
+          children: 'children'
+        }
+      },
+      nodeRow: {},
+      treeData: [  {
+        label: '涓氬姟绫诲瀷鏍�',
+        oid: 'topNode',
+        children: []
+      }],
+      templateForm: '',
+      templateData: [],
+      form: {
+        name: ''
+      },
+      rules: {
+        name: [
+          {required: true, message: '璇疯緭鍏ユ煡璇㈡ā鏉垮悕绉�', trigger: 'blur'}
+        ]
+      },
+      title: '',
+      visible: false,
+      tableLoading: false,
+      crudData: [],
+      crudOption: {
+        ...basicOption,
+        addBtn: false,
+        editBtn: false,
+        delBtn: false,
+        selection: true,
+        menu: false,
+        height: "auto",
+        calcHeight: -40,
+        tip: false,
+        column: [{
+          label: '鏌ヨ妯℃澘鍚嶇О',
+          prop: 'name'
+        }, {
+          label: '鍒涘缓浜�',
+          prop: 'creator'
+        }, {
+          label: '鍒涘缓鏃堕棿',
+          prop: 'createTime',
+          formatter:function (row, value) {
+            return dateFormat(new Date(value))
+          }
+        }]
+      },
+      selectionRow: [],
+    }
+  },
+  created() {
+    this.getTreeList();
+  },
+  methods: {
+    //鏍戣〃鏌ヨ
+    getTreeList() {
+      const loading = this.$loading({});
+      getBizTypes().then(res => {
+        const data = res.data.data.map(item => {
+          item.label = item.attributes.id;
+          return item;
+        });
+        this.treeData[0].children = data;
+        loading.close();
+      })
+    },
+
+    // 鏍戠偣鍑�
+    nodeClick(row) {
+      this.nodeRow = row;
+      this.tableLoading = true;
+      this.getTemp();
+    },
+    getTemp() {
+      gridTemplate({btmName: this.nodeRow.label, linkFlag: false}).then(res => {
+        this.crudData =  res.data.data;
+        this.tableLoading = false;
+      })
+    },
+    rowClick(row) {
+      this.$refs.crud.toggleSelection();
+      this.$refs.crud.toggleRowSelection(row); //閫変腑褰撳墠琛�
+      this.selectionRow = [row];
+    },
+    selectionChange(list) {
+      this.selectionRow = list;
+    },
+    selectionClear() {
+      this.selectionRow = [];
+      this.$refs.crud.toggleSelection();
+    },
+    //鍒涘缓
+    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() {
+      if (this.selectionRow.length!=1) {
+        this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�');
+        return;
+      }
+      this.$refs.formRef.openDialog(this.nodeRow.label,'淇敼','edit',{treeData:this.nodeRow,selectData:this.selectionRow[0]});
+      this.$nextTick(()=>{
+        this.$refs.formRef.formItems[0].disabled = true;
+        this.$refs.formRef.$refs.form.getInit(this.$refs.formRef.formItems)
+      });
+    },
+    //鍒犻櫎
+    delHandler() {
+      if (this.selectionRow.length==0) {
+        this.$message.error('璇烽�夋嫨鏁版嵁');
+        return;
+      }
+      this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬暟鎹悧锛�', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        let names=this.selectionRow.map(item=>{
+          return item.qtName
+        })
+        deleteLinkTemplate({names:names.join(',')}).then(res => {
+          if (res.data.code === 200) {
+            this.$message.success(res.data.obj);
+            this.getTemp();
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '宸插彇娑堝垹闄�'
+        });
+      });
+    }
+  }
 }
 </script>
 
-<style scoped>
+<style lang="scss" scoped>
+::v-deep {
+  .el-scrollbar__wrap {
+    overflow: auto !important;
+  }
+  .headerCon{
+    .el-button{
+      width: 82px;
+    }
+  }
+}
+
+.headerCon {
+  display: flex;
+  flex-wrap: wrap;
+  margin-bottom: 5px;
+
+  .el-button + .el-button {
+    margin-left: 5px;
+  }
+
+  .el-button {
+    margin-top: 5px;
+  }
+}
+
+.headerCon > .el-button:nth-child(4) {
+  margin-left: 0;
+}
+
+.headerCon > .el-button:nth-child(7) {
+  margin-left: 0;
+}
+
+
+.smallBtn {
+  width: 82px;
+  text-align: center;
+  padding-left: 4.5px;
+}
 
 </style>

--
Gitblit v1.9.3