朱佳吉
2024-05-09 1e9c7a02ec2b8caf7dda6000d7f0f79849df6b45
src/components/view/a6-device-management.vue
@@ -36,16 +36,17 @@
      padding: 20px;
   }
  .el-form-item{
    margin-bottom: 16px;
  }
  .picName{
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    word-break: break-all;
    width: 120px;
  }
   .el-form-item {
      margin-bottom: 16px;
   }
   .picName {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      word-break: break-all;
      width: 120px;
   }
</style>
<template>
@@ -54,18 +55,15 @@
         <el-row class="title">
            <el-col :span="12" style="padding-left: 20px;">设备工具明细</el-col>
            <el-col :span="12" style="text-align: right;">
               <el-button size="medium" type="primary" @click="dialogVisible2 = true">新增</el-button>
            </el-col>
         </el-row>
      </div>
      <div class="search">
         <div class="search_thing">
            <div class="search_label">状态:</div>
            <el-select v-model="componentData.entity.deviceStatus" placeholder="全部">
               <el-option
                 v-for="item in deviceStatusList"
                 :key="item.value"
                 :label="item.label"
                 :value="item.value">
            <el-select v-model="componentData.entity.deviceStatus" placeholder="全部" size="small">
               <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
               </el-option>
            </el-select>
         </div>
@@ -74,462 +72,312 @@
            <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                  v-model="componentData.entity.deviceName" @keyup.enter.native="refreshTable()"></el-input></div>
         </div>
        <div class="search_thing">
         <div class="search_thing">
            <div class="search_label">规格型号:</div>
            <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                  v-model="componentData.entity.specificationModel" @keyup.enter.native="refreshTable()"></el-input></div>
         </div>
                  <div class="search_thing">
                     <div class="search_label">设备大类:</div>
                     <el-select v-model="componentData.entity.largeCategory" placeholder="请选择">
                        <el-option
                          v-for="item in equipmentList"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value">
                        </el-option>
                       </el-select>
         </div>
         <div class="search_thing" style="padding-left: 30px;">
                <el-button size="small" @click="refresh()">重 置</el-button>
            <el-button size="small" @click="refresh()">重 置</el-button>
            <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button>
        <el-col :span="12" style="text-align: right;">
               <el-button size="medium" type="primary" @click="dialogVisible2 = true">新增</el-button>
            </el-col>
         </div>
      </div>
      <div class="table">
         <!-- 语法 子组件通过 this.$emit +传入方法名 调用父组件方法 例如  this.$emit(selectAllByOne) 就需在父组件声明并传入  @selectAllByOne="selectAllByOne"-->
         <ValueTable @selectAllByOne="selectAllByOne" @isUpdate="isUpdate" ref="ValueTable" :url="$api.deviceScope.selectDeviceParameter" :upUrl="$api.deviceScope.upDeviceParameter" :delUrl="$api.deviceScope.delDeviceParameter" :componentData="componentData" :key="upIndex"/>
         <ValueTable @selectAllByOne="selectAllByOne" @isUpdate="isUpdate" ref="ValueTable"
            :url="$api.deviceScope.selectDeviceParameter" :upUrl="$api.deviceScope.upDeviceParameter"
            :delUrl="$api.deviceScope.delDeviceParameter" :componentData="componentData" :key="upIndex" />
      </div>
    <el-dialog
      :title="isUp?'设备详情':'档案修订'"
      :visible.sync="dialogVisible"
      width="70%"
      :before-close="handleClose">
      <el-row style="display:flex;justify-content: space-around;">
        <!-- 左边布局 -->
        <el-col  :span="7" >
          <el-col>
            <!-- 图片 -->
            <el-image class="img" style="width:100%;height: 320px;marginBottom:16px" :src="javaApi+'/img/'+formData.imageUpload">
              <div slot="error" class="image-error" style="width: calc(100% -2px);
      <el-dialog :title="isUp?'设备详情':'档案修订'" :visible.sync="dialogVisible" width="70%" :before-close="handleClose">
         <el-row style="display:flex;justify-content: space-around;">
            <!-- 左边布局 -->
            <el-col :span="7">
               <el-col>
                  <!-- 图片 -->
                  <el-image class="img" style="width:100%;height: 320px;marginBottom:16px"
                     :src="javaApi+'/img/'+formData.imageUpload">
                     <div slot="error" class="image-error" style="width: calc(100% -2px);
            height: 318px;
            border-radius: 16px;
            display: flex;
            align-items: center;
            justify-content: center;
            border: 1px solid #EEEEEE;">
                <i class="el-icon-picture-outline" style="font-size:60px;color:#666666;"></i>
              </div>
            </el-image>
            <!-- 表单 -->
            <el-form :label-position="labelPosition" :model="formData" label-width="90px">
              <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-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.getDeviceManager" 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.getDeviceManager" 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>
          </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.deviceName" size="small"></el-input>
                        <i class="el-icon-picture-outline" style="font-size:60px;color:#666666;"></i>
                     </div>
                  </el-image>
                  <!-- 表单 -->
                  <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="仪器名称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-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="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-input :disabled="isUp" v-model="formData.internalCode" size="small"></el-input>
            <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-input :disabled="isUp" v-model="formData.assetCode" size="small"></el-input>
            <el-form-item label="最近校准日期:" v-if="isUp">
                     <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="下次校准日期:" v-if="isUp">
                     <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-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-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>
        </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-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 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.calibrationDate" size="small"></el-input>
            </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="图片:" >
                <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"
                      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-upload>
                </div>
                </el-form-item>
            </el-form>
        </el-col>
      </el-row>
      <span slot="footer" class="dialog-footer">
        <el-row v-if="!isUp">
          <el-button @click="handleClose">取 消</el-button>
        <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button>
        </el-row>
      </span>
    </el-dialog>
                  <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 :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;padding-top:8px">上传</el-button>
                        </el-upload>
                     </div>
                  </el-form-item>
               </el-form>
            </el-col>
         </el-row>
         <span slot="footer" class="dialog-footer">
            <el-row v-if="!isUp">
               <el-button @click="handleClose">取 消</el-button>
               <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button>
            </el-row>
         </span>
      </el-dialog>
<!-- 新增-->
    <el-dialog
    title="新增设备"
    :visible.sync="dialogVisible2"
    width="70%"
    :before-close="handleClose2">
    <el-row style="display:flex;justify-content: space-around;">
      <!-- 左边布局 -->
      <el-col  :span="7" >
        <el-col>
          <!-- 图片 -->
          <el-image class="img" style="width:100%;height: 320px;marginBottom:16px" :src="javaApi+'/img/'+formData2.imageUpload">
            <div slot="error" class="image-error" style="width: calc(100% -2px);
      <!-- 新增-->
      <el-dialog title="新增设备" :visible.sync="dialogVisible2" width="70%" :before-close="handleClose2">
         <el-row style="display:flex;justify-content: space-around;">
            <!-- 左边布局 -->
            <el-col :span="7">
               <el-col>
                  <!-- 图片 -->
                  <el-image class="img" style="width:100%;height: 320px;margin-bottom:16px"
                     :src="javaApi+'/img/'+formData2.imageUpload">
                     <div slot="error" class="image-error" style="width: calc(100% -2px);
          height: 318px;
          border-radius: 16px;
          display: flex;
          align-items: center;
          justify-content: center;
          border: 1px solid #EEEEEE;">
              <i class="el-icon-picture-outline" style="font-size:60px;color:#666666;"></i>
            </div>
          </el-image>
          <!-- 表单 -->
          <el-form :label-position="labelPosition" :model="formData2" label-width="90px">
            <el-form-item label="设备分类:" >
              <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>
                        <i class="el-icon-picture-outline" style="font-size:60px;color:#666666;"></i>
                     </div>
                  </el-image>
                  <!-- 表单 -->
                  <el-form :label-position="labelPosition" :model="formData2" label-width="100px">
                     <el-form-item label="仪器名称:">
                <el-input v-model="formData2.deviceName" size="small"></el-input>
                     </el-form-item>
              <el-form-item label="仪器名称EN:">
                <el-input v-model="formData2.enDeviceName" size="small"></el-input>
                     </el-form-item>
              <el-form-item label="规格型号:">
                <el-input v-model="formData2.specificationModel" size="small"></el-input>
                     </el-form-item>
              <el-form-item label="生产厂家:">
                <el-input v-model="formData2.manufacturer" size="small"></el-input>
                     </el-form-item>
                  </el-form>
               </el-col>
            </el-col>
            <!-- 中间布局 -->
            <el-col :span="7">
               <el-form :label-position="labelPosition" :model="formData2" label-width="110px">
            <!-- <el-form-item label="生产厂家EN:">
              <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-date-picker
              style="width:100%"
                v-model="formData2.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 label="出厂编号:">
              <el-input v-model="formData2.factoryNo" size="small"></el-input>
            </el-form-item>
            <el-form-item label="设备负责人:" >
            <el-form-item label="管理编号:">
              <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.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.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="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"
                <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>
        </el-col>
      </el-col>
      <!-- 中间布局 -->
      <el-col  :span="7">
        <el-form :label-position="labelPosition" :model="formData2" label-width="116px">
          <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.internalCode" size="small"></el-input>
          </el-form-item>
          <el-form-item label="资产编码:" >
            <el-input v-model="formData2.assetCode" size="small"></el-input>
          </el-form-item>
          <el-form-item label="校准日期(月):" >
            <el-date-picker
              v-model="formData2.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%"
                v-model="formData2.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 label="存放点:">
              <el-input v-model="formData2.storagePoint" size="small"></el-input>
            </el-form-item>
            <el-form-item label="验收记录:" >
            <el-input v-model="formData2.acceptanceRecords" size="small"></el-input>
         <el-form-item label="技术指标:">
              <el-input v-model="formData2.technicalIndicators" :rows="7" type="textarea" size="small"></el-input>
            </el-form-item>
            <el-form-item label="出厂编号:" >
            <el-input v-model="formData2.factoryNo" size="small"></el-input>
            </el-form-item>
            <el-form-item label="购置日期:" >
              <el-date-picker
              style="width:100%"
                v-model="formData2.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 v-model="formData2.accurateMeasurement" size="small"></el-input>
            </el-form-item>
            <el-form-item label="备注:" >
            <el-input v-model="formData2.notes" size="small"></el-input>
            </el-form-item>
          </el-form>
      </el-col>
      <!-- 右边布局 -->
      <el-col  :span="7">
        <el-form :label-position="labelPosition" :model="formData2" label-width="110px" ref="ruleForm">
          <el-form-item label="规格型号:" >
            <el-input v-model="formData2.specificationModel" size="small"></el-input>
          </el-form-item>
          <el-form-item label="设备状态:">
            <el-select v-model="formData2.deviceStatus" placeholder="请选择" size="small" style="width:100%">
                <el-option
                  v-for="item in deviceStatusList"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                  >
               </el-form>
            </el-col>
            <!-- 右边布局 -->
            <el-col :span="7">
               <el-form :label-position="labelPosition" :model="formData2" label-width="120px" ref="ruleForm">
            <!-- 实验室列表 -->
            <el-form-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>
          </el-form-item>
          <el-form-item label="存放点:" >
            <el-input v-model="formData2.storagePoint" size="small"></el-input>
          </el-form-item>
          <el-form-item label="最近追溯日期:" >
            <el-date-picker
            </el-form-item>
            <el-form-item label="检测项目:">
              <el-cascader
              v-model="formData2.insProductIds"
              :options="options"
              :show-all-levels="false"
              :props="props"
              placeholder="请选择" size="small"
              style="width:100%"
                v-model="formData2.latestTraceability"
                format="yyyy-MM-dd HH:mm:ss"
                value-format="yyyy-MM-dd HH:mm:ss"
                type="datetime"
                size="small"
                placeholder="选择日期">
              </el-date-picker>
              collapse-tags
              separator=","
           filterable
              clearable></el-cascader>
            </el-form-item>
            <el-form-item label="停用时间:" >
              <el-date-picker
              style="width:100%"
                format="yyyy-MM-dd HH:mm:ss"
                value-format="yyyy-MM-dd HH:mm:ss"
                v-model="formData2.downTime"
                type="datetime"
                size="small"
                placeholder="选择时间">
              </el-date-picker>
            <el-form-item label="设备类型:">
              <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.maintenanceRecords" size="small"></el-input>
            <el-form-item label="单价(万元):">
              <el-input v-model="formData2.unitPrice" size="small"></el-input>
            </el-form-item>
            <el-form-item label="生产厂家:" >
            <el-input v-model="formData2.manufacturer" size="small" ></el-input>
            <el-form-item label="当前状态:">
                     <el-select v-model="formData2.deviceStatus" placeholder="请选择" size="small" style="width:100%">
                        <el-option v-for="item in deviceStatusList" :key="item.id" :label="item.label" :value="item.value">
                        </el-option>
                     </el-select>
                  </el-form-item>
            <el-form-item label="校准周期(月):">
              <el-input v-model="formData2.calibrationDate" size="small"></el-input>
            </el-form-item>
            <el-form-item label="采购费用:" >
            <el-input v-model="formData2.procurementCosts" size="small"></el-input>
            </el-form-item>
            <el-form-item label="校准证书:" >
            <el-input v-model="formData2.calibrationCerticate" size="small"></el-input>
            </el-form-item>
            <el-form-item v-if="!isUp" 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="formData2.imageName" class="picName">{{formData2.imageName}}</div>
                <el-upload
                    :action="action"
                    :on-success="handleSuccessUpImg"
                    :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-upload>
              </div>
              </el-form-item>
          </el-form>
      </el-col>
    </el-row>
    <span slot="footer" class="dialog-footer">
      <el-row >
        <el-button @click="handleClose2">取 消</el-button>
      <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button>
      </el-row>
    </span>
  </el-dialog>
                  <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="formData2.imageName" class="picName">{{formData2.imageName}}</div>
                        <el-upload :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;padding-top:8px">上传</el-button>
                        </el-upload>
                     </div>
                  </el-form-item>
               </el-form>
            </el-col>
         </el-row>
         <span slot="footer" class="dialog-footer">
            <el-row>
               <el-button @click="handleClose2">取 消</el-button>
               <el-button type="primary" @click="submitForm2" :loading="upLoad2">确 定</el-button>
            </el-row>
         </span>
      </el-dialog>
   </div>
</template>
@@ -543,14 +391,19 @@
         return {
            //是否是档案修订  true不是 false是
            isUp: true,
            formData: {},
        formData2: {},
            formData: {
            },
            formData2: {
               imageUpload: '',
               imageName: ''
            },
            value: '',
              props: { multiple: true,emitPath:false,value:'id',label:'name' },
            options: [],
            labelPosition: 'right',
            dialogVisible: false,
        dialogVisible2: false,
        addPower: false,
            dialogVisible2: false,
            addPower: false,
            componentData: {
               entity: {
                  deviceStatus: null,
@@ -559,7 +412,7 @@
                  largeCategory: null,
                  orderBy: {
                     field: 'id',
                     order: 'asc'
                     order: 'desc'
                  }
               },
               isIndex: true,
@@ -570,69 +423,97 @@
                  font: '删除',
                  type: 'text',
                  method: 'doDiy'
               },{
               }, {
                  id: 'archives',
                  font: '档案修订',
                  type: 'text',
                  method: 'isUpdate'
               }],
               tagField: {
            deviceStatus: {
                     select: [{
                        value: 0,
                        type: 'success',
                        label: '正常'
                     },{
                        value: 1,
                        type: 'warning',
                        label: '报废'
                     },{
                        value: 2,
                        type: 'danger',
                        label: '保修'
                     }]
                  }
          },
          linkEvent:{
            deviceName:{
              method:'selectAllByOne'
                  deviceStatus: {
                     select: []
                  },
                  equipmentManager: {
                     select: []
                  },
                  authorizedPerson: {
                     select: []
                  },
            insProductIds:{
              select:[]
            }
          },
               selectField: {},
               requiredAdd:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'],
               requiredUp:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer']
               },
               linkEvent: {
                  deviceName: {
                     method: 'selectAllByOne'
                  }
               },
               selectField: {
                  authorizedPerson: {
                     select: [],
                     choose: true
                  },
                  equipmentManager: {
                     select: []
                  },
            insProductIds:{
              select:[],
              choose: true
            }
               },
               requiredAdd: [],
               requiredUp: []
            },
            entityCopy: {},
            upIndex: 0,
            addDia: true,
            addPower: true,
        //设备类型列表
        equipmentList:[],
        // 负责人列表
        responsiblePersonList:[],
        // 授权人列表
        authorizerList:[],
        // 设备状态列表
        deviceStatusList:[],
        upLoad:false,
            //设备类型列表
            equipmentList: [],
            // 负责人列表
            responsiblePersonList: [],
            // 授权人列表
            authorizerList: [],
            // 当前状态列表
            deviceStatusList: [],
            // 所属部门
            subordinateDepartmentsList: [],
            upLoad: false,
            upLoad2: false,
         }
      },
    computed: {
        headers() {
          return { 'token': sessionStorage.getItem('token') }
        },
        action(){
          return this.javaApi+this.$api.deviceScope.uploadFile
        }
    },
      computed: {
         headers() {
            return {
               'token': sessionStorage.getItem('token')
            }
         },
         action() {
            return this.javaApi + this.$api.deviceScope.uploadFile
         }
      },
      mounted() {
         this.entityCopy = this.HaveJson(this.componentData.entity)
         this.getPower()
      this.getAuthorizedPerson()
      this.selectEnumByCategory()
      this.selectDevicePrincipal()
         // this.getAuthorizedPerson()
         this.selectEnumByCategory()
         this.selectDevicePrincipal()
         this.obtainItemParameterList()
            this.getInsProductIds()
      },
      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()
         },
@@ -647,119 +528,152 @@
            let del = false
            let add = false
            for (var i = 0; i < power.length; i++) {
               if(power[i].menuMethod=='upDeviceParameter'){
               if (power[i].menuMethod == 'upDeviceParameter') {
                  up = true
               }
               if(power[i].menuMethod=='delDeviceParameter'){
               if (power[i].menuMethod == 'delDeviceParameter') {
                  del = true
               }
               if(power[i].menuMethod=='addDeviceParameter'){
               if (power[i].menuMethod == 'addDeviceParameter') {
                  add = true
               }
            }
        if(!up){
            if (!up) {
               this.componentData.do.splice(1, 1)
            }
            if(!del){
            if (!del) {
               this.componentData.do.splice(0, 1)
            }
            this.addPower = add
         },
      // 获取授权人
      getAuthorizedPerson(){
        this.$axios.get(this.$api.deviceScope.selectDevicePrincipal).then(res => {
               let data = []
               res.data.forEach(a=>{
                  data.push({
                     label: a.name,
                     value: a.id
                  })
               })
               this.authorizerList = data
            })
      },
      // 获取字典
      selectEnumByCategory() {
         // 获取字典
         selectEnumByCategory() {
            this.$axios.post(this.$api.enums.selectEnumByCategory, {
               category: "设备状态"
            }).then(res => {
               this.deviceStatusList = res.data
          this.deviceStatusList.forEach(a=>{
            if(!isNaN(a.value)){
              a.value = parseInt(a.value)
            }
          })
               this.componentData.tagField.deviceStatus.select = res.data
            })
        this.$axios.post(this.$api.enums.selectEnumByCategory, {
            this.$axios.post(this.$api.enums.selectEnumByCategory, {
               category: "设备分类"
            }).then(res => {
               this.equipmentList = res.data
            })
         },
      // 获取负责人列表
      selectDevicePrincipal(){
        this.$axios.get(this.$api.deviceScope.selectDevicePrincipal).then(res => {
         // 获取负责人列表
         selectDevicePrincipal() {
            this.$axios.get(this.$api.deviceScope.selectDevicePrincipal).then(res => {
               let data = []
               res.data.forEach(a=>{
               res.data.forEach(a => {
                  data.push({
                     label: a.name,
                     value: a.id
                  })
               })
               this.responsiblePersonList = data
               this.authorizerList = data
               this.componentData.tagField.equipmentManager = data
               this.componentData.tagField.authorizedPerson = data
            })
         },
      getInsProductIds(){
        this.$axios.post(this.$api.capacityScope.getInsProduction).then(res => {
          this.componentData.tagField.insProductIds.select = []
          this.componentData.selectField.insProductIds.select = []
          this.options = res.data.map((m,i)=>{
            m.id = m.name;
            let children = m.children.map(n=>{
              n.label = n.name;
              n.value = n.id;
              return n
            })
            this.componentData.tagField.insProductIds.select = [...this.componentData.tagField.insProductIds.select,...children]
            this.componentData.selectField.insProductIds.select = [...this.componentData.selectField.insProductIds.select,...children]
            return m
          })
            })
      },
         handleClose(){
         handleClose() {
            this.formData = {}
            this.formData2 = {
               imageUpload: '',
               imageName: ''
            }
            this.dialogVisible = false;
        this.upLoad = false;
            this.upLoad = false;
         },
      handleClose2(){
         handleClose2() {
            this.formData = {}
            this.formData2 = {
               imageUpload: '',
               imageName: ''
            }
            this.dialogVisible2 = false;
        this.upLoad = false;
            this.upLoad = false;
         },
         selectAllByOne(row){
         selectAllByOne(row) {
            this.isUp = true
            //打开弹框
            this.dialogVisible = true;
            //row = 点击对应行值
            //复制给formData
            this.formData=this.HaveJson(row);
        this.formData.authorizedPerson=row.authorizedPerson?row.authorizedPerson.split(','):[];
            this.formData = this.HaveJson(row);
            this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : [];
         },
         isUpdate(row){
         isUpdate(row) {
            //修改  isUp 为档案修改
            this.isUp = false
            //打开弹框
            this.dialogVisible = true;
            //row = 点击对应行值一行值
            //复制给formData
            this.formData=this.HaveJson(row);
        this.formData.authorizedPerson=row.authorizedPerson?row.authorizedPerson.split(','):[];
            this.formData = this.HaveJson(row);
        if(typeof(row.insProductIds)==='number'){
          row.insProductIds = row.insProductIds+''
        }
            this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : [];
         },
      beforeUpload(file){
        if (file.size > 1024*1024*10) {
         beforeUpload(file) {
            if (file.size > 1024 * 1024 * 10) {
               this.$message.error('上传文件不超过10M');
               this.$refs.upload.clearFiles()
               return false;
            }else{
          return true;
        }
      },
      onError(err, file, fileList) {
            } else {
               return true;
            }
         },
         onError(err, file, fileList) {
            this.$message.error('上传失败')
            this.$refs.upload.clearFiles()
         },
      // 上传图片成功
      handleSuccessUpImg(response,){
        if(response.code==200){
          this.formData.imageUpload = response.data.url;
          this.formData.imageName = response.data.name;
        }
      },
      submitForm(){
         // 上传图片成功
         handleSuccessUpImg(response, ) {
            if (response.code == 200) {
               this.formData.imageUpload = response.data.url;
               this.formData.imageName = response.data.name;
            }
         },
         handleSuccessUpImg2(response, ) {
            if (response.code == 200) {
               this.$nextTick(() => {
                  this.formData2.imageUpload = response.data.url;
                  this.formData2.imageName = response.data.name;
               })
            }
         },
         submitForm() {
            delete this.formData.createTime
            delete this.formData.updateTime
            delete this.formData.createUser
            delete this.formData.updateUser
        this.formData.insProductIds = this.formData.insProductIds.join()
        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.$axios.post(this.$api.deviceScope.upDeviceParameter, this.formData, {
            this.$axios.post(this.$api.deviceScope.upDeviceParameter, this.formData, {
               headers: {
                  'Content-Type': 'application/json'
               }
@@ -769,18 +683,19 @@
                  return
               }
               this.$message.success('修改成功')
          this.upLoad = false
               this.upLoad = false
               this.refreshTable()
          this.dialogVisible = false
               this.dialogVisible = false
            }).catch(e => {
               this.$message.error('修改失败')
               this.dialogVisible = false
               this.upLoad = false
            })
      },
      submitForm2(){
        this.upLoad2 = true;
        this.$axios.post(this.$api.deviceScope.addDeviceParameter, this.formData2, {
         },
         submitForm2() {
            this.upLoad2 = true;
        this.formData2.insProductIds = this.formData2.insProductIds.join()
            this.$axios.post(this.$api.deviceScope.addDeviceParameter, this.formData2, {
               headers: {
                  'Content-Type': 'application/json'
               }
@@ -789,16 +704,20 @@
                  this.upLoad2 = false
                  return
               }
               this.$message.success('修改成功')
          this.upLoad = false
               this.$message.success('提交成功')
               this.upLoad2 = false
               this.refreshTable()
          this.dialogVisible2 = false
               this.dialogVisible2 = false
               this.formData2 = {
                  imageUpload: '',
                  imageName: ''
               }
            }).catch(e => {
               this.$message.error('修改失败')
               this.$message.error('提交失败')
               this.dialogVisible2 = false
               this.upLoad2 = false
            })
      }
         }
      }
   }
</script>