李林
2024-03-22 28f428180885b4718c676f4815c8d8f96c6add43
src/components/view/a6-device-management.vue
@@ -39,6 +39,7 @@
  .el-form-item{
    margin-bottom: 16px;
  }
  .picName{
    overflow: hidden;
    text-overflow: ellipsis;
@@ -61,11 +62,7 @@
         <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-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
               </el-option>
            </el-select>
         </div>
@@ -82,11 +79,7 @@
                  <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 v-for="item in equipmentList" :key="item.value" :label="item.label" :value="item.value">
                        </el-option>
                       </el-select>
         </div>
@@ -100,19 +93,18 @@
      </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-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">
                  <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;
@@ -126,46 +118,29 @@
            <!-- 表单 -->
            <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-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 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-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.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-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>
@@ -185,27 +160,13 @@
              <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 :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 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="验收记录:" >
@@ -215,15 +176,8 @@
              <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 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="准确度量值:" >
@@ -241,13 +195,9 @@
              <el-input :disabled="isUp" v-model="formData.specificationModel" 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-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>
@@ -255,26 +205,14 @@
              <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"
                     <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"
                     <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>
@@ -291,18 +229,12 @@
              <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
                        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-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>
@@ -321,17 +253,14 @@
<!-- 新增-->
    <el-dialog
    title="新增设备"
    :visible.sync="dialogVisible2"
    width="70%"
    :before-close="handleClose2">
      <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">
                  <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;
@@ -346,44 +275,26 @@
          <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 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%"
                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 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>
            <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 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-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>
@@ -403,25 +314,13 @@
            <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 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 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>
            <el-form-item label="验收记录:" >
@@ -431,14 +330,8 @@
            <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 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="准确度量值:" >
@@ -457,12 +350,7 @@
          </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-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
          </el-form-item>
@@ -470,25 +358,13 @@
            <el-input v-model="formData2.storagePoint" size="small"></el-input>
          </el-form-item>
          <el-form-item label="最近追溯日期:" >
            <el-date-picker
              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 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>
            </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 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>
            <el-form-item label="维修记录:" >
@@ -504,18 +380,12 @@
            <el-input v-model="formData2.calibrationCerticate" 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
                        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-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;paddingTop:8px">上传</el-button>
                  </el-upload>
              </div>
@@ -594,6 +464,12 @@
                        type: 'danger',
                        label: '保修'
                     }]
                  },
                  equipmentManager: {
                     select: []
                  },
                  authorizedPerson: {
                     select: []
                  }
          },
          linkEvent:{
@@ -601,9 +477,17 @@
              method:'selectAllByOne'
            }
          },
               selectField: {},
               requiredAdd:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'],
               requiredUp:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer']
               selectField: {
                  authorizedPerson: {
                     select: [],
                     choose: true
                  },
                  equipmentManager: {
                     select: []
                  }
               },
               requiredAdd: [],
               requiredUp: []
            },
            entityCopy: {},
            upIndex: 0,
@@ -623,7 +507,9 @@
      },
    computed: {
        headers() {
          return { 'token': sessionStorage.getItem('token') }
            return {
               'token': sessionStorage.getItem('token')
            }
        },
        action(){
          return this.javaApi+this.$api.deviceScope.uploadFile
@@ -632,7 +518,7 @@
      mounted() {
         this.entityCopy = this.HaveJson(this.componentData.entity)
         this.getPower()
      this.getAuthorizedPerson()
         // this.getAuthorizedPerson()
      this.selectEnumByCategory()
      this.selectDevicePrincipal()
      },
@@ -669,19 +555,6 @@
            }
            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() {
            this.$axios.post(this.$api.enums.selectEnumByCategory, {
@@ -706,6 +579,9 @@
                  })
               })
               this.responsiblePersonList = data
               this.authorizerList = data
               this.componentData.tagField.equipmentManager = data
               this.componentData.tagField.authorizedPerson = data
            })
      },
         handleClose(){
@@ -792,7 +668,8 @@
      },
      submitForm2(){
        this.upLoad2 = true;
        let authorizedPerson = this.formData2.authorizedPerson.length>0?this.formData2.authorizedPerson.join(','):''
            let authorizedPerson = this.formData2.authorizedPerson.length > 0 ? this.formData2.authorizedPerson.join(',') :
               ''
        this.formData2.authorizedPerson = authorizedPerson
        this.$axios.post(this.$api.deviceScope.addDeviceParameter, this.formData2, {
               headers: {