| | |
| | | .el-form-item{ |
| | | margin-bottom: 16px; |
| | | } |
| | | .picName{ |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | word-break: break-all; |
| | | width: 120px; |
| | | } |
| | | </style> |
| | | |
| | | <template> |
| | |
| | | <div class="search"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">状态:</div> |
| | | <el-select v-model="componentData.entity.status" placeholder="全部"> |
| | | <el-select v-model="componentData.entity.deviceStatus" placeholder="全部"> |
| | | <el-option |
| | | v-for="item in options" |
| | | v-for="item in deviceStatusList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-select> |
| | | </div> |
| | | <div class="search_thing"> |
| | | <div class="search_label">设备名称:</div> |
| | |
| | | <div class="search_thing"> |
| | | <div class="search_label">规格型号:</div> |
| | | <div class="search_input"><el-input size="small" placeholder="请输入" clearable |
| | | v-model="componentData.entity.internalCode" @keyup.enter.native="refreshTable()"></el-input></div> |
| | | 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.type" placeholder="请选择"> |
| | | <div class="search_label">设备大类:</div> |
| | | <el-select v-model="componentData.entity.largeCategory" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in options" |
| | | v-for="item in equipmentList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | |
| | | <el-col :span="7" > |
| | | <el-col> |
| | | <!-- 图片 --> |
| | | <img src="https://www.baidu.com/img/bd_logo1.png" alt="" style="width:100%;height: 320px;marginBottom:16px"> |
| | | <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-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input> --> |
| | | <el-select :disabled="isUp" v-model="formData.largeCategory" placeholder="请选择" size="small" style="width:100%"> |
| | | <el-option |
| | | v-for="item in equipmentList" |
| | |
| | | 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-input :disabled="isUp" v-model="formData.equipmentManager" size="small"></el-input> --> |
| | | <el-select :disabled="isUp" v-model="formData.equipmentManager" placeholder="请选择" size="small" style="width:100%"> |
| | | <el-option |
| | | v-for="item in responsiblePersonList" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="被授权人:" > |
| | | <!-- <el-input :disabled="isUp" v-model="formData.authorizedPerson" size="small"></el-input> --> |
| | | <el-select :disabled="isUp" v-model="formData.authorizedPerson" size="small" multiple placeholder="请选择" style="width:100%"> |
| | | <el-option |
| | | v-for="item in authorizerList" |
| | |
| | | v-model="formData.calibrationDate" |
| | | type="month" |
| | | size="small" |
| | | format="yyyy-MM" |
| | | value-format="yyyy-MM" |
| | | style="width:100%" |
| | | placeholder="选择月"> |
| | | </el-date-picker> |
| | | <!-- <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input> --> |
| | | </el-form-item> |
| | | <el-form-item label="报废时间:" > |
| | | <el-date-picker |
| | | style="width:100%" |
| | | :disabled="isUp" |
| | | v-model="formData.calibrationDate" |
| | | 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-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.calibrationDate" size="small"></el-input> |
| | | <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.calibrationDate" size="small"></el-input> |
| | | </el-form-item> --> |
| | | <el-form-item label="出厂编号:" > |
| | | <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input> |
| | | <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.calibrationDate" |
| | | 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-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.calibrationDate" size="small"></el-input> |
| | | <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.calibrationDate" size="small"></el-input> |
| | | <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.largeCategory" size="small"></el-input> |
| | | <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.latestTraceability" size="small"></el-input> --> |
| | | <el-select :disabled="isUp" v-model="formData.latestTraceability" placeholder="请选择" size="small" style="width:100%"> |
| | | <el-select :disabled="isUp" v-model="formData.deviceStatus" placeholder="请选择" size="small" style="width:100%"> |
| | | <el-option |
| | | v-for="item in deviceStatusList" |
| | | :key="item.value" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="存放点:" > |
| | | <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input> |
| | | <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.largeCategory" size="small"></el-input> --> |
| | | <el-date-picker |
| | | style="width:100%" |
| | | :disabled="isUp" |
| | | v-model="formData.largeCategory" |
| | | 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 |
| | | style="width:100%" |
| | | :disabled="isUp" |
| | | v-model="formData.largeCategory" |
| | | 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-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input> --> |
| | | </el-form-item> |
| | | <el-form-item label="维修记录:" > |
| | | <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input> |
| | | <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.largeCategory" size="small" ></el-input> |
| | | <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.largeCategory" size="small"></el-input> |
| | | </el-form-item> --> |
| | | <el-form-item label="采购费用:" > |
| | | <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input> |
| | | <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.largeCategory" size="small"></el-input> |
| | | <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-if="formData.largeCategory">{{formData.largeCategory}}</div> |
| | | <div v-show="formData.imageName" class="picName">{{formData.imageName}}</div> |
| | | <el-upload |
| | | action="https://jsonplaceholder.typicode.com/posts/" |
| | | :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> |
| | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row v-if="!isUp"> |
| | | <el-button @click="handleClose">取 消</el-button> |
| | | <el-button type="primary" @click="submitForm">确 定</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | |
| | | dialogVisible: false, |
| | | componentData: { |
| | | entity: { |
| | | largeCategory: null, |
| | | subclass: null, |
| | | deviceStatus: null, |
| | | deviceName: null, |
| | | internalCode: null, |
| | | specificationModel: null, |
| | | manufacturer: null, |
| | | largeCategory: null, |
| | | orderBy: { |
| | | field: 'id', |
| | | order: 'asc' |
| | |
| | | type: 'text', |
| | | method: 'isUpdate' |
| | | }], |
| | | tagField: {}, |
| | | tagField: { |
| | | deviceStatus: { |
| | | select: [{ |
| | | value: 0, |
| | | type: 'success', |
| | | label: '正常' |
| | | },{ |
| | | value: 1, |
| | | type: 'warning', |
| | | label: '报废' |
| | | },{ |
| | | value: 2, |
| | | type: 'danger', |
| | | label: '保修' |
| | | }] |
| | | } |
| | | }, |
| | | selectField: {}, |
| | | requiredAdd:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'], |
| | | requiredUp:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'] |
| | |
| | | upIndex: 0, |
| | | addDia: true, |
| | | addPower: true, |
| | | //设备列表 |
| | | //设备类型列表 |
| | | equipmentList:[], |
| | | // 负责人列表 |
| | | responsiblePersonList:[], |
| | |
| | | authorizerList:[], |
| | | // 设备状态列表 |
| | | deviceStatusList:[], |
| | | upLoad:false, |
| | | } |
| | | }, |
| | | 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() |
| | | }, |
| | | methods: { |
| | | refreshTable() { |
| | |
| | | this.componentData.entity = this.HaveJson(this.entityCopy) |
| | | this.upIndex++ |
| | | }, |
| | | |
| | | // 权限分配 |
| | | getPower(radio) { |
| | | let power = JSON.parse(sessionStorage.getItem('power')) |
| | |
| | | // 获取授权人 |
| | | getAuthorizedPerson(){ |
| | | this.$axios.get(this.$api.deviceScope.authorizedPerson).then(res => { |
| | | console.log(11111,res) |
| | | let data = [] |
| | | res.data.forEach(a=>{ |
| | | data.push({ |
| | | label: a.laboratoryName, |
| | | value: a.laboratoryName |
| | | label: a.authorizedPerson, |
| | | value: a.authorizedPerson |
| | | }) |
| | | }) |
| | | this.authorizerList = data |
| | | }) |
| | | }, |
| | | // 获取字典 |
| | | selectEnumByCategory() { |
| | | this.$axios.post(this.$api.enums.selectEnumByCategory, { |
| | | category: "设备状态" |
| | | }).then(res => { |
| | | this.deviceStatusList = res.data |
| | | }) |
| | | this.$axios.post(this.$api.enums.selectEnumByCategory, { |
| | | category: "设备分类" |
| | | }).then(res => { |
| | | this.equipmentList = res.data |
| | | }) |
| | | }, |
| | | // 获取负责人列表 |
| | | selectDevicePrincipal(){ |
| | | this.$axios.get(this.$api.deviceScope.selectDevicePrincipal).then(res => { |
| | | let data = [] |
| | | res.data.forEach(a=>{ |
| | | data.push({ |
| | | label: a.equipmentManager, |
| | | value: a.equipmentManager |
| | | }) |
| | | }) |
| | | this.responsiblePersonList = data |
| | | }) |
| | | }, |
| | | handleClose(){ |
| | | this.dialogVisible = false; |
| | | this.upLoad = false; |
| | | }, |
| | | selectAllByOne(row){ |
| | | this.isUp = true |
| | |
| | | this.dialogVisible = true; |
| | | //row = 点击对应行值 |
| | | //复制给formData |
| | | this.formData=row; |
| | | this.formData=this.HaveJson(row); |
| | | this.formData.authorizedPerson=row.authorizedPerson?row.authorizedPerson.split(','):[]; |
| | | }, |
| | | isUpdate(row){ |
| | | //修改 isUp 为档案修改 |
| | |
| | | this.dialogVisible = true; |
| | | //row = 点击对应行值一行值 |
| | | //复制给formData |
| | | this.formData=row; |
| | | this.formData=this.HaveJson(row); |
| | | this.formData.authorizedPerson=row.authorizedPerson?row.authorizedPerson.split(','):[]; |
| | | }, |
| | | 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) { |
| | | this.$message.error('上传失败') |
| | | this.$refs.upload.clearFiles() |
| | | }, |
| | | // 上传图片成功 |
| | | handleSuccessUpImg(response, file, fileList){ |
| | | console.log(response, file, fileList) |
| | | handleSuccessUpImg(response,){ |
| | | if(response.code==200){ |
| | | this.formData.imageUpload = response.data.url; |
| | | this.formData.imageName = response.data.name; |
| | | } |
| | | }, |
| | | submitForm(){ |
| | | this.dialogVisible = false |
| | | 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, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | }).then(res => { |
| | | if (res.code === 201) { |
| | | this.upLoad = false |
| | | return |
| | | } |
| | | this.$message.success('修改成功') |
| | | this.upLoad = false |
| | | this.refreshTable() |
| | | this.dialogVisible = false |
| | | }).catch(e => { |
| | | this.$message.error('修改失败') |
| | | this.dialogVisible = false |
| | | this.upLoad = false |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |