|  |  |  | 
|---|
|  |  |  | <GlobalWindow :title="param.id ? '编辑运维记录' : '新建运维记录'" :confirmWorking="subLoading" :visible.sync="isShowModal" | 
|---|
|  |  |  | width="600px" @close="close" @confirm="handleSub"> | 
|---|
|  |  |  | <el-form :model="param" ref="paramRef" :rules="rules"> | 
|---|
|  |  |  | <el-form-item label="选择设备" prop="code"> | 
|---|
|  |  |  | <el-form-item label="选择设备" prop="deviceId"> | 
|---|
|  |  |  | <el-select v-model="param.deviceId" filterable clearable> | 
|---|
|  |  |  | <el-option v-for="item in deviceList" :value="item" :label="item"></el-option> | 
|---|
|  |  |  | <el-option v-for="item in deviceList" :value="item.id" :label="item.name"></el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="运维人员" prop="code"> | 
|---|
|  |  |  | <el-select v-model="param.realName" filterable clearable> | 
|---|
|  |  |  | <el-option v-for="item in 10" :value="item" :label="item"></el-option> | 
|---|
|  |  |  | <el-form-item label="运维人员" prop="userId"> | 
|---|
|  |  |  | <el-select v-model="param.userId" filterable clearable> | 
|---|
|  |  |  | <el-option v-for="item in staffList" :value="item.id" :label="item.realname"></el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="设备状态" prop=""> | 
|---|
|  |  |  | <el-select v-model="param.status" filterable clearable> | 
|---|
|  |  |  | <el-option value="0" label="正常"></el-option> | 
|---|
|  |  |  | <el-option value="1" label="损坏"></el-option> | 
|---|
|  |  |  | <el-option value="2" label="报废"></el-option> | 
|---|
|  |  |  | <el-option :value="0" label="正常"></el-option> | 
|---|
|  |  |  | <el-option :value="1" label="损坏"></el-option> | 
|---|
|  |  |  | <el-option :value="2" label="报废"></el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="现场照片" prop=""> | 
|---|
|  |  |  | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="运维备注" prop=""> | 
|---|
|  |  |  | <el-input type="textarea" :rows="4" v-model="param.remark" placeholder="请输入" /> | 
|---|
|  |  |  | <el-form-item label="运维备注" prop="content"> | 
|---|
|  |  |  | <el-input type="textarea" :rows="4" v-model="param.content" placeholder="请输入" /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="运维时间" prop=""> | 
|---|
|  |  |  | <el-form-item label="运维时间" prop="dealDate"> | 
|---|
|  |  |  | <el-date-picker v-model="param.dealDate" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" | 
|---|
|  |  |  | type="datetime"></el-date-picker> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | </GlobalWindow> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | 
|---|
|  |  |  | import GlobalWindow from '@/components/common/GlobalWindow' | 
|---|
|  |  |  | import UploadAvatarImage from '@/components/common/UploadAvatarImage' | 
|---|
|  |  |  | import { fetchList } from '@/api/Inspection/device' | 
|---|
|  |  |  | import { getUserList } from '@/api/system/user' | 
|---|
|  |  |  | import { create, updateById } from '@/api/Inspection/deviceRecord' | 
|---|
|  |  |  | import { Message, Loading } from 'element-ui' | 
|---|
|  |  |  | import dayjs from 'dayjs' | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | components: { GlobalWindow, UploadAvatarImage }, | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | 
|---|
|  |  |  | subLoading: false, | 
|---|
|  |  |  | param: {}, | 
|---|
|  |  |  | deviceList: [], | 
|---|
|  |  |  | staffList: [], | 
|---|
|  |  |  | rules: { | 
|---|
|  |  |  | name: [{ required: true, message: '请输入' }], | 
|---|
|  |  |  | code: [{ required: true, message: '请输入' }] | 
|---|
|  |  |  | dealDate: [{ required: true, message: '请选择' }], | 
|---|
|  |  |  | deviceId: [{ required: true, message: '请选择' }], | 
|---|
|  |  |  | content: [{ required: true, message: '请输入' }], | 
|---|
|  |  |  | // code: [{ required: true, message: '请输入' }], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | loadingInstance: null, | 
|---|
|  |  |  | uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch', | 
|---|
|  |  |  | fileList: [], | 
|---|
|  |  |  | uploadData: { | 
|---|
|  |  |  | folder: 'HIDDEN_DANGER_FILE' | 
|---|
|  |  |  | folder: 'YW_DEVICE' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | created() { | 
|---|
|  |  |  | this.initData() | 
|---|
|  |  |  | this.$set(this.param, 'dealDate', dayjs().format('YYYY-MM-DD HH:mm:ss')) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | handleSub() { | 
|---|
|  |  |  | const { param, subLoading } = this | 
|---|
|  |  |  | const { param, subLoading, fileList } = this | 
|---|
|  |  |  | this.$refs['paramRef'].validate((valid) => { | 
|---|
|  |  |  | if (valid) { | 
|---|
|  |  |  | let fn = param.id ? updateById : create | 
|---|
|  |  |  | if(fileList && fileList.length > 0){ | 
|---|
|  |  |  | param.multifileList = fileList | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.subLoading = true | 
|---|
|  |  |  | fn(param).then(res => { | 
|---|
|  |  |  | if (res.code == 200) { | 
|---|
|  |  |  | this.subLoading = false | 
|---|
|  |  |  | this.subLoading = false | 
|---|
|  |  |  | this.$emit('success') | 
|---|
|  |  |  | Message.success('保存成功') | 
|---|
|  |  |  | this.close() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }).catch(() => { | 
|---|
|  |  |  | this.subLoading = false | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | 
|---|
|  |  |  | capacity: 1000, | 
|---|
|  |  |  | page: 1, | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | this.deviceList = res || [] | 
|---|
|  |  |  | this.deviceList = res.records | 
|---|
|  |  |  | }) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | getUserList({}).then(res => { | 
|---|
|  |  |  | this.staffList = res | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | changeSel(e) { | 
|---|
|  |  |  | if (e && e.length == 1) { | 
|---|
|  |  |  | 
|---|
|  |  |  | if (['.mp4', '.avi', '.flv', '.wmv'].some(char => item.imgaddr.includes(char))) { | 
|---|
|  |  |  | this.fileList.push({ | 
|---|
|  |  |  | type: 1, | 
|---|
|  |  |  | objType: 6, | 
|---|
|  |  |  | fileurl: item.imgaddr, | 
|---|
|  |  |  | fileurlFull: item.url | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.fileList.push({ | 
|---|
|  |  |  | type: 0, | 
|---|
|  |  |  | objType: 6, | 
|---|
|  |  |  | fileurl: item.imgaddr, | 
|---|
|  |  |  | fileurlFull: item.url | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | 
|---|
|  |  |  | .file_list { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-wrap: wrap; | 
|---|
|  |  |  | .avatar-uploader{ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .avatar-uploader { | 
|---|
|  |  |  | width: 92px; | 
|---|
|  |  |  | height: 92px; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | border: 1px dashed #d9d9d9; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .item { | 
|---|
|  |  |  | width: 92px; | 
|---|
|  |  |  | max-height: 92px; | 
|---|