value
2024-04-26 5773929cf00a26c78b3adad53f4c57d34583b0e1
src/components/view/a6-device-management.vue
@@ -107,131 +107,121 @@
                     </div>
                  </el-image>
                  <!-- 表单 -->
                  <el-form :label-position="labelPosition" :model="formData" label-width="90px">
                     <el-form-item label="出厂日期:">
                        <el-date-picker style="width:100%" :disabled="isUp" v-model="formData.dateProduction" type="datetime"
                           size="small" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期">
                        </el-date-picker>
                     </el-form-item>
                     <el-form-item label="设备负责人:">
                        <el-select :disabled="isUp" v-model="formData.equipmentManager" placeholder="请选择" size="small"
                           style="width:100%">
                           <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label"
                              :value="item.value">
                           </el-option>
                        </el-select>
                     </el-form-item>
                     <el-form-item label="被授权人:">
                        <el-select :disabled="isUp" v-model="formData.authorizedPerson" size="small" multiple placeholder="请选择"
                           style="width:100%">
                           <el-option v-for="item in authorizerList" :key="item.value" :label="item.label" :value="item.value">
                           </el-option>
                        </el-select>
                     </el-form-item>
              <el-form-item label="检验项目:">
                <el-cascader
                v-model="formData.insProductIds"
                :options="options"
                :show-all-levels="false"
                :props="props"
                placeholder="请选择" size="small"
                style="width:100%"
                collapse-tags
                separator=","
                clearable></el-cascader>
                     </el-form-item>
                  </el-form>
               </el-col>
            </el-col>
            <!-- 中间布局 -->
            <el-col :span="7">
               <el-form :label-position="labelPosition" :model="formData" label-width="116px">
                  <el-form-item label="设备名称:">
                  <el-form :label-position="labelPosition" :model="formData" label-width="100px">
                     <el-form-item label="仪器名称:">
                     <el-input :disabled="isUp" v-model="formData.deviceName" size="small"></el-input>
                  </el-form-item>
                  <el-form-item label="内部编码:">
                     <el-input :disabled="isUp" v-model="formData.internalCode" size="small"></el-input>
                  </el-form-item>
                  <el-form-item label="资产编码:">
                     <el-input :disabled="isUp" v-model="formData.assetCode" size="small"></el-input>
                  </el-form-item>
                  <el-form-item label="校准日期(月):">
                     <el-date-picker :disabled="isUp" v-model="formData.calibrationDate" type="month" size="small"
                        format="yyyy-MM" value-format="yyyy-MM" style="width:100%" placeholder="选择月">
                     </el-date-picker>
                  </el-form-item>
                  <el-form-item label="报废时间:">
                     <el-date-picker style="width:100%" :disabled="isUp" v-model="formData.scrapTime" type="datetime"
                        format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="选择时间">
                     </el-date-picker>
                  </el-form-item>
                  <el-form-item label="验收记录:">
                     <el-input :disabled="isUp" v-model="formData.acceptanceRecords" size="small"></el-input>
                  </el-form-item>
                  <el-form-item label="设备编码:">
                              </el-form-item>
                     <el-form-item label="仪器名称EN:">
                        <el-input :disabled="isUp" v-model="formData.enDeviceName" size="small"></el-input>
                                 </el-form-item>
                     <el-form-item label="规格型号:">
                        <el-input :disabled="isUp" v-model="formData.specificationModel" size="small"></el-input>
                                 </el-form-item>
                     <el-form-item label="生产厂家:">
                        <el-input :disabled="isUp" v-model="formData.manufacturer" size="small"></el-input>
                                 </el-form-item>
                              </el-form>
                           </el-col>
                        </el-col>
                        <!-- 中间布局 -->
                        <el-col :span="7">
                           <el-form :label-position="labelPosition" :model="formData" label-width="116px">
                              <el-form-item label="校准服务机构:">
                     <el-input :disabled="isUp" v-model="formData.calibrationServices" size="small"></el-input>
                     </el-form-item>
                     <el-form-item label="出厂编号:">
                     <el-input :disabled="isUp" v-model="formData.factoryNo" size="small"></el-input>
                  </el-form-item>
                  <el-form-item label="购置日期:">
                     <el-date-picker style="width:100%" :disabled="isUp" v-model="formData.acquisitionDate" type="datetime"
                        size="small" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期">
                     </el-date-picker>
                  </el-form-item>
                  <el-form-item label="准确度量值:">
                     <el-input :disabled="isUp" v-model="formData.accurateMeasurement" size="small"></el-input>
                  </el-form-item>
                  <el-form-item label="备注:">
                     <el-input :disabled="isUp" v-model="formData.notes" size="small"></el-input>
                  </el-form-item>
                     </el-form-item>
                     <el-form-item label="管理编号:">
                     <el-input :disabled="isUp" v-model="formData.managementNumber" size="small"></el-input>
                     </el-form-item>
                     <el-form-item label="购置日期:">
                                 <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.acquisitionDate" type="date"
                                    format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="选择日期">
                                 </el-date-picker>
                              </el-form-item>
                     <el-form-item label="启用日期:">
                                 <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.activationDate" type="date"
                                    format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="选择日期">
                                 </el-date-picker>
                              </el-form-item>
                     <el-form-item label="管理人:">
                     <el-select v-model="formData.equipmentManager" placeholder="请选择" size="small" style="width:100%">
                        <el-option :disabled="isUp" v-for="item in responsiblePersonList" :key="item.value" :label="item.label"
                        :value="item.value">
                        </el-option>
                     </el-select>
                     </el-form-item>
                     <el-form-item label="存放点:">
                     <el-input :disabled="isUp" v-model="formData.storagePoint" size="small"></el-input>
                     </el-form-item>
                     <el-form-item label="技术指标:">
                     <el-input :disabled="isUp" v-model="formData.technicalIndicators" :rows="7" type="textarea" size="small"></el-input>
                     </el-form-item>
               </el-form>
            </el-col>
            <!-- 右边布局 -->
            <el-col :span="7">
               <el-form :label-position="labelPosition" :model="formData" label-width="110px" ref="ruleForm">
                  <el-form-item label="规格型号:">
                     <el-input :disabled="isUp" v-model="formData.specificationModel" size="small"></el-input>
               <el-form :label-position="labelPosition" :model="formData" label-width="120px" ref="ruleForm">
            <!-- 实验室列表 -->
            <el-form-item label="所属部门:">
              <el-select :disabled="isUp" v-model="formData.subordinateDepartmentsId" placeholder="请选择" size="small" style="width:100%">
                <el-option v-for="item in subordinateDepartmentsList" :key="item.value" :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="检测项目:">
              <el-cascader
           :disabled="isUp"
              v-model="formData.insProductIds"
              :options="options"
              :show-all-levels="false"
              :props="props"
              placeholder="请选择" size="small"
              style="width:100%;"
              :collapse-tags="!isUp"
              separator=","
           filterable
              clearable></el-cascader>
            </el-form-item>
            <el-form-item label="最近校准日期:">
                     <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.latestTraceability" format="yyyy-MM-dd"
                        value-format="yyyy-MM-dd" type="date" size="small" placeholder="选择日期">
                     </el-date-picker>
                  </el-form-item>
                  <el-form-item label="当前状态:">
                     <el-select :disabled="isUp" v-model="formData.deviceStatus" placeholder="请选择" size="small"
                        style="width:100%">
            <el-form-item label="下次校准日期:">
                     <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.latestTraceability" format="yyyy-MM-dd"
                        value-format="yyyy-MM-dd" type="date" size="small" placeholder="选择日期">
                     </el-date-picker>
                  </el-form-item>
            <el-form-item label="设备类型:">
              <el-select :disabled="isUp" v-model="formData.largeCategory" placeholder="请选择" size="small" style="width:100%">
                <el-option v-for="item in equipmentList" :key="item.value" :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="单价(万元):">
              <el-input :disabled="isUp" v-model="formData.unitPrice" size="small"></el-input>
            </el-form-item>
            <el-form-item label="当前状态:">
                     <el-select :disabled="isUp" v-model="formData.deviceStatus" placeholder="请选择" size="small" style="width:100%">
                        <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
                        </el-option>
                     </el-select>
                  </el-form-item>
                  <el-form-item label="存放点:">
                     <el-input :disabled="isUp" v-model="formData.storagePoint" size="small"></el-input>
                  </el-form-item>
                  <el-form-item label="最近追溯日期:">
                     <el-date-picker style="width:100%" :disabled="isUp" v-model="formData.latestTraceability"
                        format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" size="small"
                        placeholder="选择日期">
                     </el-date-picker>
                  </el-form-item>
                  <el-form-item label="停用时间:">
                     <el-date-picker style="width:100%" :disabled="isUp" format="yyyy-MM-dd HH:mm:ss"
                        value-format="yyyy-MM-dd HH:mm:ss" v-model="formData.downTime" type="datetime" size="small"
                        placeholder="选择时间">
                     </el-date-picker>
                  </el-form-item>
                  <el-form-item label="维修记录:">
                     <el-input :disabled="isUp" v-model="formData.maintenanceRecords" size="small"></el-input>
                  </el-form-item>
                  <el-form-item label="生产厂家:">
                     <el-input :disabled="isUp" v-model="formData.manufacturer" size="small"></el-input>
                  </el-form-item>
                  <el-form-item label="采购费用:">
                     <el-input :disabled="isUp" v-model="formData.procurementCosts" size="small"></el-input>
                  </el-form-item>
                  <el-form-item label="校准证书:">
                     <el-input :disabled="isUp" v-model="formData.calibrationCerticate" size="small"></el-input>
                  </el-form-item>
                  <el-form-item v-if="!isUp" label="图片:">
            <el-form-item label="校准周期(月):">
              <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input>
            </el-form-item>
                  <el-form-item label="图片:">
                     <div
                        style="border: 1px solid #DCDFE6;border-radius:4px;height:32px;lineHeight:32px;display:flex;justify-content: space-around;font-size: 13px;">
                        <div v-show="formData.imageName" class="picName">{{formData.imageName}}</div>
                        <el-upload :action="action" :on-success="handleSuccessUpImg" :show-file-list="false"
                        <el-upload :disabled="isUp" :action="action" :on-success="handleSuccessUpImg2" :show-file-list="false"
                           accept='image/jpg,image/jpeg,image/png' :headers="headers" :on-change="beforeUpload"
                           :on-error="onError" ref='upload'>
                           <el-button type="text" style="height:30px;paddingTop:8px">上传</el-button>
                           <el-button type="text" style="height:30px;padding-top:8px">上传</el-button>
                        </el-upload>
                     </div>
                  </el-form-item>
@@ -273,45 +263,14 @@
                <el-input v-model="formData2.deviceName" size="small"></el-input>
                     </el-form-item>
              <el-form-item label="仪器名称EN:">
                <el-input v-model="formData2.deviceName" size="small"></el-input>
                <el-input v-model="formData2.enDeviceName" size="small"></el-input>
                     </el-form-item>
              <el-form-item label="规格型号:">
                <el-input v-model="formData2.deviceName" size="small"></el-input>
                <el-input v-model="formData2.specificationModel" size="small"></el-input>
                     </el-form-item>
              <el-form-item label="生产厂家:">
                <el-select v-model="formData2.equipmentManager" placeholder="请选择" size="small" style="width:100%">
                <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
                <el-input v-model="formData2.manufacturer" size="small"></el-input>
                     </el-form-item>
                     <!-- <el-form-item label="设备负责人:">
                        <el-select v-model="formData2.equipmentManager" placeholder="请选择" size="small" style="width:100%">
                           <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label"
                              :value="item.value">
                           </el-option>
                        </el-select>
                     </el-form-item>
                     <el-form-item label="被授权人:">
                        <el-select v-model="formData2.authorizedPerson" size="small" multiple placeholder="请选择"
                           style="width:100%">
                           <el-option v-for="item in authorizerList" :key="item.value" :label="item.label" :value="item.value">
                           </el-option>
                        </el-select>
                     </el-form-item>
              <el-form-item label="检验项目:">
                <el-cascader
                v-model="formData.insProductIds"
                :options="options"
                :show-all-levels="false"
                :props="props"
                placeholder="请选择" size="small"
                style="width:100%"
                collapse-tags
                separator=","
                clearable></el-cascader>
                     </el-form-item>
              -->
                  </el-form>
               </el-col>
            </el-col>
@@ -319,25 +278,25 @@
            <el-col :span="7">
               <el-form :label-position="labelPosition" :model="formData2" label-width="110px">
            <!-- <el-form-item label="生产厂家EN:">
              <el-input v-model="formData2.deviceName" size="small"></el-input>
              <el-input v-model="formData2.factoryNo" size="small"></el-input>
            </el-form-item> -->
         <el-form-item label="校准服务机构:">
              <el-input v-model="formData2.calibrationServices" size="small"></el-input>
            </el-form-item>
            <el-form-item label="出厂编号:">
              <el-input v-model="formData2.deviceName" size="small"></el-input>
              <el-input v-model="formData2.factoryNo" size="small"></el-input>
            </el-form-item>
            <el-form-item label="管理编号:">
              <el-input v-model="formData2.deviceName" size="small"></el-input>
            </el-form-item>
            <el-form-item label="技术指标:">
              <el-input v-model="formData2.deviceName" :rows="7" type="textarea" size="small"></el-input>
              <el-input v-model="formData2.managementNumber" size="small"></el-input>
            </el-form-item>
            <el-form-item label="购置日期:">
                     <el-date-picker style="width:100%" v-model="formData2.scrapTime" type="date"
                        format="yyyy-MM-dd" value-format="yyyy-MM-dd" size="small" placeholder="选择日期">
                     <el-date-picker style="width:100%" v-model="formData2.acquisitionDate" type="date"
                        format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="选择日期">
                     </el-date-picker>
                  </el-form-item>
            <el-form-item label="启用日期:">
                     <el-date-picker style="width:100%" v-model="formData2.scrapTime" type="date"
                        format="yyyy-MM-dd" value-format="yyyy-MM-dd" size="small" placeholder="选择日期">
                     <el-date-picker style="width:100%" v-model="formData2.activationDate" type="date"
                        format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="选择日期">
                     </el-date-picker>
                  </el-form-item>
            <el-form-item label="管理人:">
@@ -347,8 +306,11 @@
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="地址:">
              <el-input v-model="formData2.deviceName" size="small"></el-input>
            <el-form-item label="存放点:">
              <el-input v-model="formData2.storagePoint" size="small"></el-input>
            </el-form-item>
         <el-form-item label="技术指标:">
              <el-input v-model="formData2.technicalIndicators" :rows="7" type="textarea" size="small"></el-input>
            </el-form-item>
               </el-form>
            </el-col>
@@ -357,8 +319,8 @@
               <el-form :label-position="labelPosition" :model="formData2" label-width="120px" ref="ruleForm">
            <!-- 实验室列表 -->
            <el-form-item label="所属部门:">
              <el-select v-model="formData2.equipmentManager" placeholder="请选择" size="small" style="width:100%">
                <el-option v-for="item in componentData.selectField.laboratory.select" :key="item.value" :label="item.label"
              <el-select v-model="formData2.subordinateDepartmentsId" placeholder="请选择" size="small" style="width:100%">
                <el-option v-for="item in subordinateDepartmentsList" :key="item.value" :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
@@ -375,10 +337,7 @@
              separator=","
              clearable></el-cascader>
            </el-form-item>
            <el-form-item label="校准服务机构:">
              <el-input v-model="formData2.deviceName" size="small"></el-input>
            </el-form-item>
            <el-form-item label="最近校准日期:">
            <!-- <el-form-item label="最近校准日期:">
                     <el-date-picker style="width:100%" v-model="formData2.latestTraceability" format="yyyy-MM-dd"
                        value-format="yyyy-MM-dd" type="date" size="small" placeholder="选择日期">
                     </el-date-picker>
@@ -387,16 +346,16 @@
                     <el-date-picker style="width:100%" v-model="formData2.latestTraceability" format="yyyy-MM-dd"
                        value-format="yyyy-MM-dd" type="date" size="small" placeholder="选择日期">
                     </el-date-picker>
                  </el-form-item>
                  </el-form-item> -->
            <el-form-item label="设备类型:">
              <el-select v-model="formData2.equipmentManager" placeholder="请选择" size="small" style="width:100%">
              <el-select v-model="formData2.largeCategory" placeholder="请选择" size="small" style="width:100%">
                <el-option v-for="item in equipmentList" :key="item.value" :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="单价(万元):">
              <el-input v-model="formData2.deviceName" size="small"></el-input>
              <el-input v-model="formData2.unitPrice" size="small"></el-input>
            </el-form-item>
            <el-form-item label="当前状态:">
                     <el-select v-model="formData2.deviceStatus" placeholder="请选择" size="small" style="width:100%">
@@ -405,7 +364,7 @@
                     </el-select>
                  </el-form-item>
            <el-form-item label="校准周期(月):">
              <el-input v-model="formData2.deviceName" size="small"></el-input>
              <el-input v-model="formData2.calibrationDate" size="small"></el-input>
            </el-form-item>
                  <el-form-item label="图片:">
                     <div
@@ -461,7 +420,7 @@
                  largeCategory: null,
                  orderBy: {
                     field: 'id',
                     order: 'asc'
                     order: 'desc'
                  }
               },
               isIndex: true,
@@ -483,15 +442,19 @@
                     select: [{
                        value: 0,
                        type: 'success',
                        label: '正常'
                        label: '良好'
                     }, {
                        value: 1,
                        type: 'warning',
                        type: 'info',
                        label: '报废'
                     }, {
                        value: 2,
                        type: 'danger',
                        label: '保修'
                        label: '停用'
                     }, {
                        value: 3,
                        type: 'danger',
                        label: '存疑'
                     }]
                  },
                  equipmentManager: {
@@ -501,9 +464,6 @@
                     select: []
                  },
            insProductIds:{
              select:[]
            },
            laboratory:{
              select:[]
            }
               },
@@ -523,9 +483,6 @@
            insProductIds:{
              select:[],
              choose: true
            },
            laboratory:{
              select:[]
            }
               },
               requiredAdd: [],
@@ -543,6 +500,8 @@
            authorizerList: [],
            // 当前状态列表
            deviceStatusList: [],
            // 所属部门
            subordinateDepartmentsList: [],
            upLoad: false,
            upLoad2: false,
         }
@@ -563,10 +522,22 @@
         // this.getAuthorizedPerson()
         this.selectEnumByCategory()
         this.selectDevicePrincipal()
         this.obtainItemParameterList()
      this.getInsProductIds()
      this.obtainItemParameterList()
      },
      methods: {
         obtainItemParameterList() {
            this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => {
               let data = []
               res.data.forEach(a=>{
                  data.push({
                     label: a.laboratoryName,
                     value: a.id
                  })
               })
               this.subordinateDepartmentsList = data
            })
         },
         refreshTable() {
            this.$refs['ValueTable'].selectList()
         },
@@ -645,19 +616,6 @@
          })
            })
      },
      obtainItemParameterList() {
            this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => {
               let data = []
               res.data.forEach(a=>{
                  data.push({
                     label: a.laboratoryName,
                     value: a.id
                  })
               })
               this.componentData.selectField.laboratory.select = data
               this.componentData.tagField.laboratory.select = data
            })
         },
         handleClose() {
            this.dialogVisible = false;
            this.upLoad = false;
@@ -673,7 +631,7 @@
            //row = 点击对应行值
            //复制给formData
            this.formData = this.HaveJson(row);
            this.formData.authorizedPerson = row.authorizedPerson ? row.authorizedPerson.split(',') : [];
            this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : [];
         },
         isUpdate(row) {
            //修改  isUp 为档案修改
@@ -683,7 +641,7 @@
            //row = 点击对应行值一行值
            //复制给formData
            this.formData = this.HaveJson(row);
            this.formData.authorizedPerson = row.authorizedPerson ? row.authorizedPerson.split(',') : [];
            this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : [];
         },
         beforeUpload(file) {
            if (file.size > 1024 * 1024 * 10) {
@@ -715,13 +673,13 @@
         },
         submitForm() {
            this.upLoad = true;
            let authorizedPerson = this.formData.authorizedPerson.length > 0 ? this.formData.authorizedPerson.join(',') : ''
            delete this.formData.createTime
            delete this.formData.updateTime
            delete this.formData.createUser
            delete this.formData.updateUser
            this.formData.authorizedPerson = authorizedPerson
        this.formData.insProductIds = JSON.stringify(this.formData.insProductIds)
            // let authorizedPerson = this.formData.authorizedPerson.length > 0 ? this.formData.authorizedPerson.join(',') : ''
            // delete this.formData.createTime
            // delete this.formData.updateTime
            // delete this.formData.createUser
            // delete this.formData.updateUser
            // this.formData.authorizedPerson = authorizedPerson
        this.formData.insProductIds = this.formData.insProductIds.join()
            this.$axios.post(this.$api.deviceScope.upDeviceParameter, this.formData, {
               headers: {
                  'Content-Type': 'application/json'
@@ -743,10 +701,10 @@
         },
         submitForm2() {
            this.upLoad2 = true;
            let authorizedPerson = this.formData2.authorizedPerson.length > 0 ? this.formData2.authorizedPerson.join(',') :
               ''
            this.formData2.authorizedPerson = authorizedPerson
        this.formData.insProductIds = JSON.stringify(this.formData.insProductIds)
      //       let authorizedPerson = this.formData2.authorizedPerson.length > 0 ? this.formData2.authorizedPerson.join(',') :
      //          ''
      //       this.formData2.authorizedPerson = authorizedPerson
        this.formData.insProductIds = this.formData.insProductIds.join()
            this.$axios.post(this.$api.deviceScope.addDeviceParameter, this.formData2, {
               headers: {
                  'Content-Type': 'application/json'