spring
2025-04-16 3a05fd672f3cf6fcd847e28d93ad3e3b9c01fea2
src/views/CNAS/resourceDemand/device/component/acquisitionConfig.vue
@@ -12,11 +12,9 @@
      </el-row>
    </div>
    <div class="table">
      <el-table :data="tableList.slice(
        (page.current - 1) * page.size,
        page.current * page.size
      )
        " border tooltip-effect="dark" style="width: 74%;" height="100%" :span-method="spanMethod">
      <el-table :data="tableList.slice((page.current - 1) * page.size, page.current * page.size)"
        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border tooltip-effect="dark" height="100%"
        :span-method="spanMethod">
        <el-table-column type="index" label="序号" align="center" width="65"></el-table-column>
        <el-table-column prop="deviceName" align="center" min-width="100" label="设备名称"></el-table-column>
        <el-table-column prop="fileType" align="center" label="文件后缀"></el-table-column>
@@ -37,7 +35,7 @@
        <el-table-column prop="anotherName" align="center" label="别名" min-width="100"></el-table-column>
        <el-table-column prop="matchingName" align="center" label="匹配名称" min-width="100"></el-table-column>
        <el-table-column prop="formula" align="center" label="公式"></el-table-column>
        <el-table-column prop="section" fixed="right" label="操作" width="120">
        <el-table-column fixed="right" label="操作" width="120" align="center">
          <template slot-scope="scope">
            <el-button type="text" @click="dataConfig(scope.row)">数采配置</el-button>
          </template>
@@ -53,7 +51,8 @@
    <el-dialog title="数采配置" :visible.sync="dialogVisible3" width="920px" :before-close="closeForm">
      <el-form :model="configForm" label-position="top" size="small" ref="configForm" label-width="100px"
        class="demo-ruleForm">
        <el-table :data="domains" style="width: 100%" height="300">
        <el-table :data="domains" style="width: 100%" height="300"
          :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border>
          <el-table-column label="序号" type="index" width="80">
            <template v-slot="scope">
              {{ getIndexWithAlphabet(scope.$index) }}
@@ -125,17 +124,31 @@
        </div>
        <el-input size="small" placeholder="请输入" clearable v-model="configForm.ip"></el-input>
      </div>
      <div class="search_thing" style="margin-bottom: 14px;">
      <div class="search_thing" style="margin-bottom: 14px;" v-if="deviceName && deviceName.includes('网络分析')">
        <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>端口:
        </div>
        <el-input size="small" placeholder="请输入(网络分析仪必填)" clearable v-model="configForm.port"></el-input>
      </div>
      <div class="search_thing" style="margin-bottom: 14px;" v-if="deviceName && !deviceName.includes('网络分析')">
        <div class="search_label">
          <span style="color:red;margin-right: 4px;">*</span>采集地址:
        </div>
        <el-input size="small" placeholder="请输入" clearable v-model="configForm.collectUrl"></el-input>
      </div>
      <div class="search_thing" style="margin-bottom: 14px;">
      <div class="search_thing" style="margin-bottom: 14px;" v-if="deviceName && deviceName.includes('网络分析')">
        <div class="search_label" style="width: 130px;">
          <span style="color:red;margin-right: 4px;">*</span>网分仪采集通道:
        </div>
        <el-select v-model="configForm.channel" multiple filterable allow-create placeholder="请选择">
          <el-option v-for="(item, index) in channelList" :key="index" :label="item" :value="item">
          </el-option>
        </el-select>
      </div>
      <div class="search_thing" style="margin-bottom: 14px;" v-if="deviceName && !deviceName.includes('网络分析')">
        <div class="search_label">储存地址:</div>
        <el-input size="small" placeholder="请输入" clearable v-model="configForm.storageUrl"></el-input>
      </div>
      <div class="search_thing" style="margin-bottom: 14px;">
      <div class="search_thing" style="margin-bottom: 14px;" v-if="deviceName && !deviceName.includes('网络分析')">
        <div class="search_label">
          <span style="color:red;margin-right: 4px;">*</span>文件后缀:
        </div>
@@ -144,15 +157,15 @@
          </el-option>
        </el-select>
      </div>
      <div class="search_thing" style="margin-bottom: 14px;">
      <div class="search_thing" style="margin-bottom: 14px;" v-if="deviceName && !deviceName.includes('网络分析')">
        <div class="search_label">委托字段:</div>
        <el-input size="small" placeholder="请输入" clearable v-model="configForm.entrustCode"></el-input>
      </div>
      <div class="search_thing" style="margin-bottom: 14px;">
      <div class="search_thing" style="margin-bottom: 14px;" v-if="deviceName && !deviceName.includes('网络分析')">
        <div class="search_label">样品字段:</div>
        <el-input size="small" placeholder="请输入" clearable v-model="configForm.sampleCode"></el-input>
      </div>
      <div class="search_thing" style="margin-bottom: 14px;">
      <div class="search_thing" style="margin-bottom: 14px;" v-if="deviceName && !deviceName.includes('网络分析')">
        <div class="search_label">文件名称:</div>
        <el-input size="small" placeholder="请输入" clearable v-model="configForm.dbFileName"></el-input>
      </div>
@@ -180,7 +193,11 @@
    deviceId: {
      type: Number,
      default: () => []
    }
    },
    deviceName: {
      type: String,
      default: () => ''
    },
  },
  mounted() {
    this.init();
@@ -228,7 +245,9 @@
        entrustCode: "",
        sampleCode: "",
        dbFileName: "",
        fiberOpticRibbon: ""
        fiberOpticRibbon: "",
        port: '',
        channel: []
      },
      domains: [
        {
@@ -296,7 +315,8 @@
          ]
        }
      },
      deleteList: []
      deleteList: [],
      channelList: []
    };
  },
  // 方法集合
@@ -396,6 +416,10 @@
          "fiberOpticRibbon",
          this.tableList[0].fiberOpticRibbon
        )
        this.$set(this.configForm, "port", this.tableList[0].port);
        let arr = this.tableList[0].channel ? this.tableList[0].channel.split(',') : []
        this.$set(this.configForm, "channel", arr);
        this.channelList = arr
      }
    },
    init() {
@@ -452,6 +476,18 @@
            "fiberOpticRibbon",
            this.tableList[0].fiberOpticRibbon
          )
          let arr = this.tableList[0].channel ? this.tableList[0].channel.split(',') : []
          this.$set(
            this.configForm,
            "channel",
            arr
          )
          this.$set(
            this.configForm,
            "port",
            this.tableList[0].port
          )
          this.channelList = arr;
        }
        // 一般的合并行
        if (
@@ -506,8 +542,18 @@
        entrustCode: this.configForm.entrustCode,
        sampleCode: this.configForm.sampleCode,
        dbFileName: this.configForm.dbFileName,
        fiberOpticRibbon: this.configForm.fiberOpticRibbon
        fiberOpticRibbon: this.configForm.fiberOpticRibbon,
        port: this.configForm.port,
        channel: this.configForm.channel
      });
      if (this.deviceName && this.deviceName.includes('网络分析')) {
        if (!this.configForm.port) {
          return this.$message.error("请填写端口");
        }
        if (!this.configForm.channel || !this.configForm.channel.length) {
          return this.$message.error("请填写网分仪采集通道");
        }
      }
      this.upLoad4 = true;
      saveDataAcquisitionConfiguration({ deviceId: this.deviceId, ...obj }).then(res => {
        if (res.code == 200) {
@@ -536,7 +582,7 @@
        inspectionItem: row.inspectionItem.trim(),
        isDevice: true,
        inspectionItemSubclass: row.inspectionItemSubclass.trim(),
        inspectionItemClass: row.inspectionItemClass.trim(),
        inspectionItemClass: row.inspectionItemClass ? row.inspectionItemClass.trim() : '',
        structureItemParameterId: row.structureItemParameterId
      }).then(res => {
        const data = res.data;
@@ -722,9 +768,7 @@
}
.table {
  margin-top: 10px;
  background-color: #fff;
  width: calc(100vw - 1em);
  height: calc(100vh - 18em);
}