zouyu
2024-03-14 f6c6a4067d68eb1d78a46bf44c279c0faff1d39b
src/components/view/a6-device-management.vue
@@ -93,6 +93,9 @@
         <div class="search_thing" style="padding-left: 30px;">
                <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">
@@ -146,18 +149,18 @@
                </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-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.authorizedPerson" size="small" multiple placeholder="请选择" style="width:100%">
                <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"
@@ -314,6 +317,219 @@
        </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);
          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>
            </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>
            <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>
        </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>
            <el-form-item label="验收记录:" >
            <el-input v-model="formData2.acceptanceRecords" 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-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
              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>
            </el-form-item>
            <el-form-item label="维修记录:" >
            <el-input v-model="formData2.maintenanceRecords" 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-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>
   </div>
</template>
@@ -328,10 +544,13 @@
            //是否是档案修订  true不是 false是
            isUp: true,
            formData: {},
        formData2: {},
            value: '',
            options: [],
            labelPosition: 'right',
            dialogVisible: false,
        dialogVisible2: false,
        addPower: false,
            componentData: {
               entity: {
                  deviceStatus: null,
@@ -347,11 +566,6 @@
               showSelect: false,
               select: false,
               do: [{
                  id: 'details',
                  font: '详情',
                  type: 'text',
                  method: 'selectAllByOne'
               }, {
                  id: 'delete',
                  font: '删除',
                  type: 'text',
@@ -378,6 +592,11 @@
                        label: '保修'
                     }]
                  }
          },
          linkEvent:{
            deviceName:{
              method:'selectAllByOne'
            }
          },
               selectField: {},
               requiredAdd:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'],
@@ -438,22 +657,22 @@
                  add = true
               }
            }
            if(!del){
        if(!up){
               this.componentData.do.splice(1, 1)
            }
            if(!up){
            if(!del){
               this.componentData.do.splice(0, 1)
            }
            this.addPower = add
         },
      // 获取授权人
      getAuthorizedPerson(){
        this.$axios.get(this.$api.deviceScope.authorizedPerson).then(res => {
        this.$axios.get(this.$api.deviceScope.selectDevicePrincipal).then(res => {
               let data = []
               res.data.forEach(a=>{
                  data.push({
                     label: a.authorizedPerson,
                     value: a.authorizedPerson
                     label: a.name,
                     value: a.id
                  })
               })
               this.authorizerList = data
@@ -478,8 +697,8 @@
               let data = []
               res.data.forEach(a=>{
                  data.push({
                     label: a.equipmentManager,
                     value: a.equipmentManager
                     label: a.name,
                     value: a.id
                  })
               })
               this.responsiblePersonList = data
@@ -487,6 +706,10 @@
      },
         handleClose(){
            this.dialogVisible = false;
        this.upLoad = false;
         },
      handleClose2(){
            this.dialogVisible2 = false;
        this.upLoad = false;
         },
         selectAllByOne(row){
@@ -554,6 +777,27 @@
               this.dialogVisible = false
               this.upLoad = false
            })
      },
      submitForm2(){
        this.upLoad2 = true;
        this.$axios.post(this.$api.deviceScope.addDeviceParameter, this.formData2, {
               headers: {
                  'Content-Type': 'application/json'
               }
            }).then(res => {
               if (res.code === 201) {
                  this.upLoad2 = false
                  return
               }
               this.$message.success('修改成功')
          this.upLoad = false
               this.refreshTable()
          this.dialogVisible2 = false
            }).catch(e => {
               this.$message.error('修改失败')
               this.dialogVisible2 = false
               this.upLoad2 = false
            })
      }
      }
   }