From f1d079f9c0b3d384090477ca54e0548373d62b57 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Thu, 16 Jan 2025 11:56:39 +0800
Subject: [PATCH] 配置修改

---
 web_src/src/components/dialog/getCatalog.vue |  167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 167 insertions(+), 0 deletions(-)

diff --git a/web_src/src/components/dialog/getCatalog.vue b/web_src/src/components/dialog/getCatalog.vue
new file mode 100644
index 0000000..fdc26de
--- /dev/null
+++ b/web_src/src/components/dialog/getCatalog.vue
@@ -0,0 +1,167 @@
+<template>
+<div id="getCatalog" >
+
+  <el-dialog title="选择要添加到的节点" v-if="showDialog"  width="50%" :append-to-body="true" :close-on-click-modal="false" :visible.sync="showDialog" :destroy-on-close="true" @close="close()" center>
+    <div>
+      <el-tree class="el-scrollbar"
+               ref="tree"
+               id="catalogTree"
+               empty-text="未知节点"
+               node-key="id"
+               default-expand-all
+               :highlight-current="false"
+               :expand-on-click-node="false"
+               :props="props"
+               :load="loadNode"
+               @node-click="nodeClickHandler"
+               lazy>
+       <span class="custom-tree-node" slot-scope="{ node, data }" style="width: 100%">
+         <el-radio v-if="node.data.type === 0 || node.data.type === -1" style="margin-right: 0" v-model="chooseId" :label="node.data.id">{{''}}</el-radio>
+         <span v-if="node.data.type === -1 && node.level === 1" style="font-size: 12px" class="iconfont icon-ziyuan"></span>
+         <span v-if="node.data.type === 0 && node.level === 1" class="el-icon-s-home"></span>
+         <span v-if="node.data.type === 0 && node.level > 1"  class="el-icon-folder-opened"></span>
+         <span v-if="node.data.type === 1" class="iconfont icon-shexiangtou"></span>
+         <span v-if="node.data.type === 2" class="iconfont icon-zhibo"></span>
+        <span style=" padding-left: 1px">{{ node.label }}</span>
+        <span>
+          <i style="margin-left: 5rem; color: #9d9d9d; padding-right: 20px" v-if="node.data.id === defaultCatalogIdSign">默认</i>
+        </span>
+      </span>
+      </el-tree>
+    </div>
+    <div style="float: right; height: 13rem">
+      <el-button type="primary" size="mini" @click="submit()" >确认</el-button>
+      <el-button @click="close()" size="mini">取消</el-button>
+    </div>
+  </el-dialog>
+
+</div>
+</template>
+
+
+<script>
+
+export default {
+    name: 'getCatalog',
+    beforeCreate(){
+
+    },
+    created() {
+        this.chooseId = this.defaultCatalogId;
+        this.defaultCatalogIdSign = this.defaultCatalogId;
+        this.initData();
+        setTimeout(()=>{
+          if (this.catalogIdChange)this.catalogIdChange(this.defaultCatalogId);
+        }, 100)
+
+    },
+    props: ['platformId'],
+    data() {
+        return {
+          props: {
+            label: 'name',
+            children: 'children',
+            isLeaf: 'leaf'
+          },
+          platformName: null,
+          defaultCatalogId: null,
+          catalogIdResult: null,
+          showDialog: false,
+          defaultCatalogIdSign: null,
+          chooseNode: null,
+          chooseId: "",
+          catalogTree: null,
+          contextmenuShow: false,
+
+        };
+    },
+    methods: {
+        openDialog(catalogIdResult) {
+          console.log(this.chooseId)
+          this.showDialog = true
+          this.catalogIdResult = catalogIdResult
+        },
+        initData: function () {
+            this.getCatalog();
+        },
+
+        getCatalog: function(parentId, callback) {
+            let that = this;
+            this.$axios({
+                    method:"get",
+                    url:`/api/platform/catalog`,
+                    params: {
+                        platformId: that.platformId,
+                        parentId: parentId
+                    }
+                })
+                .then((res)=> {
+                  if (res.data.code === 0) {
+                    if (typeof(callback) === 'function') {
+                      callback(res.data.data)
+                    }
+                  }
+                })
+                .catch(function (error) {
+                    console.log(error);
+                });
+
+        },
+        loadNode: function(node, resolve){
+          if (node.level === 0) {
+            this.$axios({
+              method:"get",
+              url:`/api/platform/info/` + this.platformId,
+            })
+              .then((res)=> {
+                if (res.data.code === 0) {
+                  this.platformName = res.data.data.name;
+                  this.defaultCatalogId = res.data.data.catalogId;
+                  this.defaultCatalogIdSign = res.data.data.catalogId;
+                  this.chooseId = res.data.data.catalogId;
+                  resolve([
+                   {
+                      name: this.platformName,
+                      id:   res.data.data.deviceGBId,
+                      type:  0
+                    }
+                  ]);
+                }
+              })
+              .catch(function (error) {
+                console.log(error);
+              });
+          }
+          if (node.level >= 1){
+            this.getCatalog(node.data.id, resolve)
+          }
+        },
+        nodeClickHandler: function (data, node, tree){
+         this.chooseId = data.id;
+        },
+        close: function() {
+          this.chooseId = null;
+          this.showDialog = false;
+        },
+        submit: function() {
+          console.log(this.chooseId)
+          if (this.chooseId === null) {
+            this.$message({
+              showClose: true,
+              message: '未选择任何节点,',
+              type: 'warning'
+            });
+            return;
+          }
+          if (this.catalogIdResult)this.catalogIdResult(this.chooseId)
+          this.showDialog = false;
+        },
+    }
+};
+</script>
+
+<style>
+#catalogTree{
+  display: inline-block;
+}
+</style>

--
Gitblit v1.9.3