yaowanxin
3 天以前 9334a78e7a7d06e3fd0fc2feff9aa5d646df27f7
src/views/CNAS/resourceDemand/device/component/acquisitionConfig.vue
@@ -5,6 +5,7 @@
        <el-col :span="6" style="padding-left: 20px;text-align: left;">数采配置</el-col>
        <el-col :span="18" style="text-align: right;">
          <el-button size="small" type="primary" @click="fileConfiguration">文件配置</el-button>
          <el-button size="small" type="primary" @click="addItem">检验项新增</el-button>
          <el-button size="small" @click="$parent.closeDataVue()">
            <span style="color: #3A7BFA;">返回</span>
          </el-button>
@@ -149,11 +150,29 @@
        <div class="search_label">文件名称:</div>
        <el-input size="small" placeholder="请输入" clearable v-model="configForm.dbFileName"></el-input>
      </div>
      <div class="search_thing" style="margin-bottom: 14px;">
        <div class="search_label">数据库账号:</div>
        <el-input size="small" placeholder="请输入" clearable v-model="configForm.dbUserName"></el-input>
      </div>
      <div class="search_thing" style="margin-bottom: 14px;">
        <div class="search_label">数据库密码:</div>
        <el-input size="small" placeholder="请输入" clearable v-model="configForm.dbPassword"></el-input>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-row>
          <el-button @click="dialogVisible4 = false">取 消</el-button>
          <el-button type="primary" @click="submitForm4" :loading="upLoad4">确 定</el-button>
        </el-row>
      </span>
    </el-dialog>
    <el-dialog title="添加检验项" :visible.sync="dialogVisible5" width="1000px">
      <lims-table :tableData="tableData5" :column="column5"
                  :isSelection="true" :handleSelectionChange="selectMethod"
                  height="540" :page="page5" :tableLoading="tableLoading5"
                  @pagination="pagination5"></lims-table>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible5 = false">取 消</el-button>
        <el-button type="primary" @click="submitForm5" :loading="loading5">保 存</el-button>
      </span>
    </el-dialog>
  </div>
@@ -163,12 +182,17 @@
import {
  queryDataAcquisitionConfiguration,
  saveDataAcquisitionConfiguration,
  deleteDataAcquisitionConfiguration, getDeviceById, saveDeviceFileConfiguration, queryProductConfiguration,
  deleteDataAcquisitionConfiguration,
  getDeviceById,
  saveDeviceFileConfiguration,
  queryProductConfiguration,
  getNoConfigProduct,
} from '@/api/cnas/resourceDemand/device.js'
import limsTable from "@/components/Table/lims-table.vue";
export default {
  name: "dataAcquisitionConfig",
  // import 引入的组件需要注入到对象中才能使用
  components: {},
  components: {limsTable},
  props: {
    deviceId: {
      type: Number,
@@ -218,7 +242,9 @@
        entrustCode: "",
        sampleCode: "",
        dbFileName: "",
        fiberOpticRibbon: ""
        fiberOpticRibbon: "",
        dbUserName: "",
        dbPassword: ""
      },
      domains: [
        {
@@ -238,6 +264,7 @@
        { label: "mdb", value: ".mdb" },
        { label: "word", value: ".docx" },
        { label: "excel", value: ".xlsx" },
        { label: "excel", value: ".xls" },
        { label: "txt", value: ".txt" },
        { label: "png", value: ".png" }
      ],
@@ -286,7 +313,23 @@
          ]
        }
      },
      deleteList: []
      deleteList: [],
      tableData5: [],
      column5: [
        {label: '样品名称', prop: 'sample'},
        {label: '检验项分类', prop: 'inspectionItemClass'},
        {label: '检验项', prop: 'inspectionItem'},
        {label: '检验子项', prop: 'inspectionItemSubclass'},
      ],
      page5: {
        total:0,
        size:20,
        current:1
      },
      tableLoading5: false,
      dialogVisible5: false,
      loading5: false,
      multipleSelection: []
    };
  },
  mounted() {
@@ -319,6 +362,45 @@
      const letterIndex = index % 26;
      return alphabet.charAt(letterIndex) + (index + 1);
    },
    // 打开新增检验项弹框
    addItem () {
      this.dialogVisible5 = true;
      this.getList5()
    },
    getList5() {
      this.tableLoading5 = true;
      getNoConfigProduct({deviceId: this.deviceId, ...this.page5 }).then(res => {
        this.tableLoading5 = false;
        this.tableData5 = res.data.records
        this.page5.total = res.data.total
      }).catch(err => {
        this.tableLoading5 = false;
      })
    },
    pagination5 (page) {
      this.page5.size = page.limit
      this.getList5()
    },
    // 表格选择方法
    selectMethod(val) {
      this.multipleSelection = val
    },
    // 提交新增检验项
    submitForm5 () {
      this.loading5 = true;
      saveDataAcquisitionConfiguration({
        deviceId: this.deviceId,
        dataConfigList: this.multipleSelection,
      }).then(res => {
        this.loading5 = false;
        this.dialogVisible5 = false;
        this.init();
        this.$message.success("添加成功");
      }).catch(err => {
        this.loading5 = false;
      })
    },
    // 打开文件配置弹框
    fileConfiguration() {
      this.dialogVisible4 = true;
      this.getInfo()
@@ -333,7 +415,9 @@
        this.$set(this.configForm, "entrustCode", res.data.entrustCode);
        this.$set(this.configForm, "sampleCode", res.data.sampleCode);
        this.$set(this.configForm, "dbFileName", res.data.dbFileName);
        this.$set(this.configForm, "fiberOpticRibbon", res.data.fiberOpticRibbon)
        this.$set(this.configForm, "fiberOpticRibbon", res.data.fiberOpticRibbon);
        this.$set(this.configForm, "dbUserName", res.data.dbUserName);
        this.$set(this.configForm, "dbPassword", res.data.dbPassword)
      })
    },
    // 提交文件配置
@@ -347,7 +431,9 @@
        entrustCode: this.configForm.entrustCode,
        sampleCode: this.configForm.sampleCode,
        dbFileName: this.configForm.dbFileName,
        fiberOpticRibbon: this.configForm.fiberOpticRibbon
        fiberOpticRibbon: this.configForm.fiberOpticRibbon,
        dbUserName: this.configForm.dbUserName,
        dbPassword: this.configForm.dbPassword
      });
      this.upLoad4 = true;
      saveDeviceFileConfiguration({ deviceId: this.deviceId, ...obj }).then(res => {
@@ -532,7 +618,7 @@
}
.search_thing {
  width: 350px;
  width: 370px;
  display: flex;
  align-items: center;
}