Parcourir la source

节点信息维护完善

zhaoke il y a 3 ans
Parent
commit
ba67a761a7

+ 10 - 0
src/api/flight.js

@@ -215,3 +215,13 @@ export function getQuery (params) {
   })
 }
 
+//节点信息维护-节点操作
+export function generalDataReception (params) {
+  return request({
+    url: '/openApi/generalDataReception',
+    method: 'post',
+    data: params
+  })
+}
+
+

+ 3 - 0
src/layout/components/OrgTree/index.vue

@@ -60,6 +60,9 @@ export default {
       } else {
         _this.$set(data, "expand", true);
       }
+      if (data.expand) {
+        this.$emit('expandData', data)
+      }
     },
     //节点关闭按钮点击
     onNodeClick (e, data) {

+ 111 - 41
src/views/BasicsData/views/deployNode/deployNodeHome.vue

@@ -4,7 +4,7 @@
       <div class="manageTitle">节点信息维护</div>
     </div>
     <div class="nodeLnformation_content">
-      <org-tree :dataList="dataList" :renderContent="renderContent" />
+      <org-tree :dataList="dataList" :renderContent="renderContent" @expandData="expandData" />
     </div>
     <!--删除弹框-->
     <Dialog :flag="removeDialogVisible">
@@ -27,14 +27,14 @@
         <div class="title">{{ editDialogTitle }}</div>
         <div class="content">
           <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="130px" class="demo-ruleForm">
-            <el-form-item label="节点名称" prop="protocolName">
-              <el-input v-model="ruleForm.protocolName" size="medium" placeholder="请输入节点名称(必填)" />
+            <el-form-item label="节点名称" prop="locationCode">
+              <el-input v-model="ruleForm.locationCode" size="medium" placeholder="请输入节点名称(必填)" />
             </el-form-item>
-            <el-form-item label="跟踪节点标识符" prop="className">
-              <el-input v-model="ruleForm.className" size="medium" placeholder="请输入跟踪节点标识符(必填)" />
+            <el-form-item label="跟踪节点标识符" prop="nodeCode">
+              <el-input v-model="ruleForm.nodeCode" size="medium" placeholder="请输入跟踪节点标识符(必填)" />
             </el-form-item>
-            <el-form-item label="跟踪节点描述" prop="filePath">
-              <el-input v-model="ruleForm.filePath" size="medium" type="textarea" :rows="3" placeholder="请输入跟踪节点描述" />
+            <el-form-item label="跟踪节点描述" prop="locationCodeDescribe">
+              <el-input v-model="ruleForm.locationCodeDescribe" size="medium" type="textarea" :rows="3" placeholder="请输入跟踪节点描述" />
             </el-form-item>
           </el-form>
         </div>
@@ -50,6 +50,7 @@
 <script>
 import orgTree from '@/layout/components/OrgTree';
 import Dialog from '@/layout/components/Dialog/index.vue';
+import { getQuery, generalDataReception } from '@/api/flight'
 export default {
   name: "NodeLnformation",
   components: { orgTree, Dialog },
@@ -57,9 +58,9 @@ export default {
     return {
       dataList: {
         id: 0,
-        AuthName: 'BSM',
+        nodeCode: 'BSM',
         Type: 0,
-        Desc: '行李源报文',
+        locationCode: '行李源报文',
         children: [
           {
             AuthName: 'BSM',
@@ -97,22 +98,22 @@ export default {
       editDialogTitle: '新增节点信息',
       ruleForm: {
         // 协议信息表单
-        protocolId: null,
-        protocolName: '',
-        className: '',
-        rmethodName: '',
-        smethodName: '',
-        filePath: ''
+        locationCode: '',
+        nodeCode: '',
+        locationCodeDescribe: ''
       },
       rules: {
         // 协议信息表单验证
-        protocolName: [{ required: true, message: '请输入节点名称', trigger: 'blur' }],
-        className: [{ required: true, message: '请输入跟踪节点标识符', trigger: 'blur' }],
-        rmethodName: [{ required: true, message: '请输入读方法名', trigger: 'blur' }],
-        smethodName: [{ required: true, message: '请输入写方法名', trigger: 'blur' }]
-      }
+        locationCode: [{ required: true, message: '请输入节点名称', trigger: 'blur' }],
+        nodeCode: [{ required: true, message: '请输入跟踪节点标识符', trigger: 'blur' }]
+      },
+      type: '',
+      typeObj: {}
     }
   },
+  created () {
+    this.getTreeData();
+  },
   methods: {
     //渲染节点
     renderContent (h, data) {
@@ -122,8 +123,8 @@ export default {
             <div class="list">
               <div class="flex info">
                 <div class="name">
-                  <span>{data.AuthName}</span>
-                  <span onClick={(e) => this.onNodeEdit(data, e)} class="cap cap-edit icon"></span>
+                  <span>{data.locationCode}</span>
+                  <span v-show={data.Type === 1 || data.Type === 2} onClick={(e) => this.onNodeEdit(data, e)} class="cap cap-edit icon"></span>
                 </div>
                 <div class="icon">
                   <span
@@ -135,7 +136,7 @@ export default {
               </div>
               <div class="details">
                 <div class="details-msg">
-                  {data.Desc}
+                  {data.nodeCode}
                 </div>
               </div>
             </div>
@@ -168,40 +169,45 @@ export default {
       e.stopPropagation();
       this.editDialogTitle = '新增节点信息'
       this.editDialogVisible = true
-      // const { Type } = data;
-      // const obj = {
-      //   AuthName: "BSM",
-      //   Desc: "行李源报文",
-      //   Type: Type + 1,
-      //   children: []
-      // }
-      // if (data.children) {
-      //   data.children.push(obj);
-      // } else {
-      //   data.children = [];
-      //   data.children.push(obj);
-      // }
+      this.type = 'add'
+      this.typeObj = data
     },
     onNodeEdit (data, e) {
       e.stopPropagation();
       this.editDialogTitle = '编辑节点信息'
       this.editDialogVisible = true
+      this.type = 'edit'
+      this.typeObj = data
+      this.ruleForm = data
     },
     // 新增/编辑-确认
     submitClickHandler () {
       this.$refs['ruleForm'].validate(valid => {
         if (valid) {
-          if (this.ruleForm.protocolId) {
-            this.addSubmit()
+          const { Type } = this.typeObj
+          if (this.type == 'add') {
+            if (Type == 0) {
+              this.nodeTreeData(20, this.ruleForm)
+            } else {
+              this.nodeTreeData(21, this.ruleForm)
+            }
           } else {
-            this.editSubmit()
+            if (Type == 1) {
+              this.ruleForm.operate = 2
+              this.nodeTreeData(21, this.ruleForm)
+            } else {
+
+            }
           }
-          this.resetForm('ruleForm')
+          setTimeout(() => {
+            this.resetForm('ruleForm')
+          }, 100);
         }
       })
     },
     // 重置
     resetForm (formName) {
+      // this.ruleForm = {}
       this.$refs[formName].resetFields()
       this.editDialogVisible = false
     },
@@ -212,8 +218,10 @@ export default {
     },
     // 确认删除
     removeSubmit () {
+      this.ruleForm.operate = 3
+      this.nodeTreeData(21, this.ruleForm)
       this.removeDialogVisible = false
-      this.$message.success('删除成功')
+      // this.$message.success('删除成功')
     },
     async addSubmit () {
       try {
@@ -244,6 +252,68 @@ export default {
       } catch (error) {
         console.log('错误', error)
       }
+    },
+    // 获取二级节点
+    async getTreeData () {
+      try {
+        const { returnData, message } = await getQuery({
+          id: 63,
+          dataContent: []
+        })
+        if (returnData && returnData.length) {
+          returnData.forEach(item => {
+            item['Type'] = 1
+            item['children'] = [{}]
+          })
+          this.dataList.children = returnData
+          console.log(this.dataList)
+        } else {
+          this.$message.error(message)
+        }
+      } catch (error) {
+        console.log(error)
+      }
+    },
+    //节点操作
+    async nodeTreeData (serviceId, dataContent) {
+      try {
+        const { message, code } = await generalDataReception({
+          serviceId,
+          dataContent
+        })
+        if (code == 0) {
+          this.$message.success(message)
+        } else {
+          this.$message.error(message)
+        }
+      } catch (error) {
+        console.log(error)
+      }
+    },
+    //三级展开获取数据
+    async expandData (data) {
+      try {
+        const { returnData, message } = await getQuery({
+          id: 64,
+          dataContent: [data.nodeCode]
+        })
+        if (returnData && returnData.length) {
+          const datas = this.dataList.children
+          console.log(datas)
+          returnData.forEach(item => {
+            item['Type'] = 2
+          })
+          datas.forEach(item => {
+            if (item.nodeCode == data.nodeCode) {
+              item.children = returnData
+            }
+          })
+        } else {
+          this.$message.error(message)
+        }
+      } catch (error) {
+        console.log(error)
+      }
     }
   }
 }