Procházet zdrojové kódy

添加其他数据源

zhangyu před 5 roky
rodič
revize
00335c2293

+ 8 - 1
src/utils/point_edit/handson_header.js

@@ -151,7 +151,14 @@ const headers = {
             Visible: true,
             FirstTag: ""
         }
-    ]
+    ],
+    "common": [{
+        InfoPointName: "*地址详情",
+        InfoPointCode: "JoinedInfo",
+        InputMode: "B1",
+        Visible: true,
+        FirstTag: ""
+    }],
 }
 
 let common = [{

+ 27 - 3
src/views/point/config_point/edit_origin/index.vue

@@ -14,11 +14,11 @@
             <el-input type="textarea" class="edit-textarea dcenter block" v-model="formData.Description" placeholder="请维护数据源说明"></el-input>
             <el-form label-width="120px" style="width:400px;" :model="formData" class="dcenter">
                 <el-form-item label="协议类型">
-                    <el-select v-model="formData.ProtocolType" filterable placeholder="请选择">
+                    <el-select v-model="formData.ProtocolType" filterable @change="handleChangeProtocolType" placeholder="请选择">
                         <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="主机IP地址">
+                <el-form-item label="主机IP地址" v-if="formData.ProtocolType != 'common'">
                     <ip-input :ip="formData.ProtocolInfo.Ip" :port="formData.ProtocolInfo.Port" :ProtocolType="formData.ProtocolType" @change="changeItem" @deletePort="deletePort"></ip-input>
                 </el-form-item>
                 <el-form-item label="用户名/密码" v-if="(passWordArr.indexOf(formData.ProtocolType) > -1)">
@@ -28,6 +28,9 @@
                 <el-form-item label="ProgId" v-if="formData.ProtocolType == 'opc'">
                     <el-input v-model="formData.ProtocolInfo.ProgId" style="display:inline-block;width:100px;"></el-input>
                 </el-form-item>
+                <el-form-item label="属性详情" v-if="formData.ProtocolType == 'common'">
+                    <el-input type="textarea" :autosize="{ minRows: 8, maxRows: 8}" v-model="ProtocolInfo"  placeholder="请输入json格式数据" style="display:inline-block;width:400px;"> </el-input>
+                </el-form-item>
             </el-form>
         </div>
     </div>
@@ -67,6 +70,7 @@
                     },
                     Description: ""
                 },
+                ProtocolInfo:"",//自定义协议信息
                 options: [{
                     value: 'modbus-tcp',
                     label: 'Modbus TCP'
@@ -85,6 +89,9 @@
                 }, {
                     value: 'amqp',
                     label: 'AMQP'
+                }, {
+                    value: 'common',
+                    label: '其他'
                 }],
                 id: this.$route.query.key
             }
@@ -114,6 +121,13 @@
                 this.formData.ProtocolInfo.Ip = ip
                 this.formData.ProtocolInfo.Port = port
             },
+            handleChangeProtocolType(val){//切换协议类型
+                if(val == 'common'){
+                    this.formData.ProtocolStandarded = false
+                } else {
+                    this.formData.ProtocolStandarded = true
+                }
+            },
             getDataSouse() {
                 let param = {
                     Filters: {
@@ -136,6 +150,7 @@
                         }
                     } else {
                         //有信息点时
+                        this.ProtocolInfo = JSON.stringify(data.ProtocolInfo)
                     }
                     this.formData = data
                     console.log(this.formData, "formData")
@@ -146,9 +161,18 @@
                 let param = tools.deepCopy(this.formData)
                 tools.delObjKey(param, "CreateTime")
                 tools.delObjKey(param, "LastUpdate")
+                if(param.ProtocolType == 'common'){
+                    try{
+                        let ProtocolInfo = JSON.parse(this.ProtocolInfo)
+                        param.ProtocolInfo = ProtocolInfo
+                    } catch (err) {
+                        this.$message.error("属性详情格式错误!")
+                        return false
+                    }
+                }
                 if (!!this.id) {
                     console.log(param.ProtocolInfo.Port)
-                    if (param.ProtocolInfo.Port == "") {
+                    if (param.ProtocolInfo.hasOwnProperty("Port") && param.ProtocolInfo.Port == "") {
                         delete param.ProtocolType.Port
                     }
                     updateDataSource({