zouyu
2023-09-05 305b8976e9ad666e52c157ebc79f05c2fe03d1ff
	modified:   src/components/experiment/checkTheReport/index.vue
modified: src/views/laboratory/ledger/index.vue
modified: src/views/standardLibrary/index.vue
已修改3个文件
226 ■■■■ 文件已修改
src/components/experiment/checkTheReport/index.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/laboratory/ledger/index.vue 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/standardLibrary/index.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/experiment/checkTheReport/index.vue
@@ -83,20 +83,18 @@
        },
        mounted() {
            this.arr = this.reportData.products;
            if(this.reportData.length>0){
                if (this.reportData.products.length < 10) {
                    let size = this.reportData.products.length;
                    let num = 10 - size
                    for (let i = 0; i < num; i++) {
                        this.arr.push({
                            code: null,
                            ipName: "",
                            required: "",
                            testState: null,
                            testValue: "",
                            unit: ""
                        })
                    }
            if (this.reportData.products.length < 10) {
                let size = this.reportData.products.length;
                let num = 10 - size
                for (let i = 0; i < num; i++) {
                    this.arr.push({
                        code: null,
                        ipName: "",
                        required: "",
                        testState: null,
                        testValue: "",
                        unit: ""
                    })
                }
            }
        },
src/views/laboratory/ledger/index.vue
@@ -1,23 +1,9 @@
<template>
  <div class="ledger-main">
    <div class="page-header-search">
      <div class="search-bar">
        <el-form ref="form" :inline="true" :model="searchData">
          <el-form-item>
            <el-input v-model="searchData.keyword" placeholder="请输入编号/设备名称/型号规格">
              <i slot="prefix" class="el-input__icon el-icon-search" />
            </el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="filterTableData">查询</el-button>
            <el-button type="primary" plain @click="resetBtn">重置</el-button>
            <!-- <el-button type="text">高级搜索<i class="el-icon-arrow-down el-icon--right" /></el-button> -->
          </el-form-item>
        </el-form>
      </div>
      <div class="serve-btn">
        <el-button type="primary" icon="el-icon-plus"
          @click="addDrawerVisible = true; equipmentform.equipmentMeasurement = 1; equipmentform.whetherDataAcquisition = 1">新增仪器</el-button>
          @click="showAddDrawer()">新增仪器</el-button>
      </div>
    </div>
    <div class="content-main">
@@ -39,16 +25,31 @@
      <div class="library-table">
        <div class="table-header">
          <div class="search-bar">
            <el-radio-group v-model="radioValue" @change="getConditionTable">
              <!-- <el-radio-button label="0">全部</el-radio-button> -->
              <el-radio-button v-for="item in conditionsOptions" :key="item.value" :label="item.value">
                {{ item.label }}
              </el-radio-button>
            </el-radio-group>
            <el-checkbox v-model="isOut" @change="getExpireTable" :style="{ 'marginLeft': '12px' }">已过期</el-checkbox>
          </div>
          <div class="serve-btn">
            <!-- <el-button type="primary" icon="el-icon-plus">新增人员</el-button> -->
            <el-row :gutter="20">
              <el-col :span="15">
                <el-form ref="form" :inline="true" :model="searchData">
                  <el-form-item>
                    <el-input v-model="searchData.keyword" placeholder="请输入编号/设备名称/型号规格">
                      <i slot="prefix" class="el-input__icon el-icon-search" />
                    </el-input>
                  </el-form-item>
                  <el-form-item>
                    <el-button type="primary" @click="filterTableData">查询</el-button>
                    <el-button type="primary" plain @click="resetBtn">重置</el-button>
                    <!-- <el-button type="text">高级搜索<i class="el-icon-arrow-down el-icon--right" /></el-button> -->
                  </el-form-item>
                </el-form>
              </el-col>
              <el-col :span="9">
                <el-radio-group v-model="radioValue" @change="getConditionTable">
                  <!-- <el-radio-button label="0">全部</el-radio-button> -->
                  <el-radio-button v-for="item in conditionsOptions" :key="item.value" :label="item.value">
                    {{ item.label }}
                  </el-radio-button>
                </el-radio-group>
                <el-checkbox v-model="isOut" @change="getExpireTable" :style="{ 'marginLeft': '12px' }">已过期</el-checkbox>
              </el-col>
            </el-row>
          </div>
        </div>
        <div class="table-box">
@@ -375,7 +376,7 @@
      <el-form label-position="top" ref="addmeasureForm" :model="measureForm">
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form-item label="负责人" prop="userId" :rules="[{ required: true, message: '请选择负责人', trigger: 'blur' }]">
            <el-form-item label="负责人" prop="userId" :rules="[{ required: true, message: '请选择负责人', trigger: 'change' }]">
              <el-select v-model="measureForm.userId" clearable filterable :allow-create="true" placeholder="负责人"
                style="width:100%">
                <el-option v-for="item in userOpetions" :key="item.id" :label="item.label" :value="item.value" />
@@ -405,7 +406,7 @@
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="结果" prop="result" :rules="[{ required: true, message: '请选择结果', trigger: 'blur' }]">
            <el-form-item label="结果" prop="result" :rules="[{ required: true, message: '请选择结果', trigger: 'change' }]">
              <el-select v-model="measureForm.result" clearable filterable :allow-create="true" placeholder="请选择结果"
                style="width:100%">
                <el-option v-for="item in resultOptions" :key="item.id" :label="item.label" :value="item.value" />
@@ -429,7 +430,7 @@
        </el-row>
        <el-row :gutter="20">
          <el-col :span="24">
            <el-form-item label="">
            <el-form-item label="" prop="file">
              <el-upload ref="upload" class="upload-demo" action="#" :on-change="handleUpload" :auto-upload="false">
                <el-button size="small" type="primary">点击上传</el-button>
              </el-upload>
@@ -585,7 +586,7 @@
        result: null,
        performanceIndex: null,
        remarks: null,
        file: null
        file: ""
      },
      activeTabsName: 'codePoints',
      // 码点表格的状态:数据展示false/新增输入true
@@ -611,8 +612,7 @@
    },
    measureFormVisible(newVal){
      if(newVal === false){
        this.measureForm.file = null;
        this.$refs['upload'].clearFiles();
        this.resetForm("addmeasureForm");
      }
    }
  },
@@ -621,6 +621,27 @@
    this.getUserOptions()
  },
  methods: {
    //显示新增仪器模态框
    showAddDrawer(){
      this.addDrawerVisible = true;
      this.equipmentform = {
        acceptanceDate: '', // 验收日期
        arrivalDate: '', // 到货日期
        classifyId: '', // 所属分类
        conditions: '', // 状态
        descriptiveness: '', // 描述
        equipmentCode: '', // 设备编号
        equipmentMeasurement: 1, // 仪器设备计量
        equipmentName: '', // 仪器设备名称
        errorRate: '', // 不确定度/准确度/最大允许误差
        userId: '', // 保管人
        manufacturer: '', // 生产厂家
        measuringRange: '', // 测量范围
        specificationsModels: '', // 型号规格
        storagePlace: '', // 存放地点
        whetherDataAcquisition: 1 // 是否支持数采
      }
    },
    // 获取分类数据
    async getThreeData() {
      const { data } = await getClassifyList()
@@ -796,50 +817,66 @@
      this.addDrawerVisible = false
    },
    resetForm(formName) {
      this.measureForm = {
        userId: null,
        measurementUnit: null,
        date: null,
        uncertainty: null,
        result: null,
        performanceIndex: null,
        remarks: null,
        file: ""
      }
      this.$refs[formName].resetFields();
    },
    cancelAddMeasure() {
      this.$refs['upload'].clearFiles();
      this.measureForm.file = null;
      this.measureFormVisible = false
      this.resetForm('addmeasureForm')
      this.resetForm('addmeasureForm');
    },
    // 添加计量信息
    async addMeasure() {
      let v = this.submitForm('addmeasureForm')
      console.log(v);
      if (!v) {
        return
      }
      // 格式化时间
      this.measureForm.instrumentId = this.equipmentDetail.id
      if (Array.isArray(this.measureForm.date)) {
        this.measureForm.beginDate = parseTime(this.measureForm.date[0], '{y}-{m}-{d}')
        this.measureForm.endDate = parseTime(this.measureForm.date[1], '{y}-{m}-{d}')
      }
      console.log(this.measureForm)
      const formData = new FormData()
      formData.append('file', this.measureForm.file?.raw, this.measureForm.file?.name)
      console.log(this.measureForm)
      for (const key in this.measureForm) {
        console.log(key)
        // if (key === 'file') return
        formData.append(key, this.measureForm[key])
      }
      console.log(formData)
      try {
        const { data } = await addMetricalInformation(formData)
        console.log(data)
        this.$message.success('添加成功')
        const { data: informationList } = await getMetricalInformationList({ InstrumentId: this.equipmentDetail.id })
        this.measureTable = informationList
        this.measureForm = {}
        this.measureFormVisible = false
      } catch (error) {
        this.$message.error('添加失败')
      }
      this.measureForm.file = null;
      this.$refs['upload'].clearFiles();
      this.$refs['addmeasureForm'].validate(async(valid)=>{
        if(valid){
          // 格式化时间
          this.measureForm.instrumentId = this.equipmentDetail.id
          if (Array.isArray(this.measureForm.date)) {
            this.measureForm.beginDate = parseTime(this.measureForm.date[0], '{y}-{m}-{d}')
            this.measureForm.endDate = parseTime(this.measureForm.date[1], '{y}-{m}-{d}')
          }
          console.log(this.measureForm)
          const formData = new FormData()
          if(this.measureForm.file == null || this.measureForm.file == ""){
            this.$message.warning("请选择要上传的文件!");
            return;
          }else{
            formData.append('file', this.measureForm.file?.raw, this.measureForm.file?.name)
          }
          console.log(this.measureForm)
          for (const key in this.measureForm) {
            console.log(key)
            // if (key === 'file') return
            formData.append(key, this.measureForm[key])
          }
          console.log(formData)
          try {
            const { data } = await addMetricalInformation(formData)
            console.log(data)
            this.$message.success('添加成功')
            const { data: informationList } = await getMetricalInformationList({ InstrumentId: this.equipmentDetail.id })
            this.measureTable = informationList
            this.measureForm = {}
            this.measureFormVisible = false
          } catch (error) {
            this.$message.error('添加失败')
          }
          this.measureForm.file = null;
          this.$refs['upload'].clearFiles();
        }else{
          console.log(32);
        }
      });
    },
    // 关闭设备详情抽屉
    closeDetailDrawer() {
@@ -857,7 +894,7 @@
    },
    // 文件上传
    handleUpload(file, fileList) {
      // console.log(file, fileList)
      console.log(file, fileList)
      this.measureForm.file = file
    },
    // 根据输入的设备编号,设备名称或者型号规格关键字进行过滤列表
@@ -1050,13 +1087,12 @@
        background: #ecf5ff !important;
        border-color: #b3d8ff !important;
      }
      .el-form {
        .el-form-item {
          margin-bottom: 0px !important;
          .el-input {
            width: 360px;
            width: 500px;
          }
        }
      }
src/views/standardLibrary/index.vue
@@ -132,6 +132,7 @@
                formTypeOptions: [],
                addTreeForm: {
                    addTypeArr: [],
                    specificationsName: ""
                }
            };
        },
@@ -310,29 +311,14 @@
            }) {
                // 判断是否是父节点或文件夹
                const isFolder = "children" in data;
                return ( <
                    span class = "tree-node" > {
                        isFolder ? ( <
                            i class = {
                                node.expanded ?
                                "el-icon-folder-opened blue-folder" : "el-icon-folder blue-folder"
                            } >
                            <
                            /i>
                        ) : ( <
                            i class = "el-icon-document blue-folder" > < /i>
                        )
                    } <
                    div class = "tree-lable" > [{
                        node.level
                    }] {
                        data.name
                    } <
                    /div> < /
                    span >
                return ( <span class="tree-node"> {
                        isFolder ? ( <i class = {node.expanded ?"el-icon-folder-opened blue-folder" : "el-icon-folder blue-folder"} ></i>
                        ) : ( <i class = "el-icon-document blue-folder" > </i>)
                    } <div class = "tree-lable" > [{node.level}] {data.name} </div> </span>
                );
            },
            async subAddTreeForm() {
                console.log(this.addTreeForm);
                let res = null;
                try {
                    switch (this.addTreeForm.addTypeArr.length) {