|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <GlobalWindow :title="param.id ? '编辑设备' : '新建设备'" :confirmWorking="subLoading" :visible.sync="isShowModal" width="600px" @close="close" | 
|---|
|  |  |  | @confirm="handleSub"> | 
|---|
|  |  |  | <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-input v-model="param.code" placeholder="请输入" v-trim /> | 
|---|
|  |  |  | 
|---|
|  |  |  | <el-form-item label="设备型号" prop=""> | 
|---|
|  |  |  | <el-input v-model="param.modelNo" placeholder="请输入" v-trim /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="设备分类" prop=""> | 
|---|
|  |  |  | <el-cascader v-model="param.areaIds" @change="changeSel" placeholder="请选择巡检区域" clearable :options="cateList" | 
|---|
|  |  |  | <el-form-item label="设备分类" prop="cateId"> | 
|---|
|  |  |  | <el-cascader v-model="param.cateIds" @change="changeSel" placeholder="请选择设备分类" clearable :options="cateList" | 
|---|
|  |  |  | :props="{ | 
|---|
|  |  |  | label: 'name', | 
|---|
|  |  |  | value: 'id', | 
|---|
|  |  |  | children: 'childCategoryList', | 
|---|
|  |  |  | checkStrictly: true | 
|---|
|  |  |  | children: 'childCategoryList' | 
|---|
|  |  |  | }"></el-cascader> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="设备管理员" prop=""> | 
|---|
|  |  |  | <el-select v-model="param.realName" filterable clearable> | 
|---|
|  |  |  | <el-option value="0" label="xxx"></el-option> | 
|---|
|  |  |  | <el-select v-model="param.userId" clearable filterable> | 
|---|
|  |  |  | <el-option v-for="item in staffList" :label="item.realname" :value="item.id"></el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="所在位置" prop=""> | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="供应商" prop=""> | 
|---|
|  |  |  | <el-input v-model="param.company" placeholder="请输入" v-trim /> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-input v-model="param.supplier" placeholder="请输入" v-trim /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="运维内容" prop=""> | 
|---|
|  |  |  | <el-input type="textarea" :rows="4" v-model="param.content" placeholder="请输入" /> | 
|---|
|  |  |  | </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-select v-model="param.status" filterable> | 
|---|
|  |  |  | <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=""> | 
|---|
|  |  |  | <UploadAvatarImage :file="{ 'imgurlfull': param.imgurlfull, 'imgurl': param.imgurl }" | 
|---|
|  |  |  | :uploadData="{ folder: 'projects' }" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" | 
|---|
|  |  |  | <UploadAvatarImage :file="{ 'imgurlfull': param.fileFullUrl, 'imgurl': param.fileUrl }" | 
|---|
|  |  |  | :uploadData="{ folder: 'ywDevice/' }" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" | 
|---|
|  |  |  | @uploadBegin="isUploading = true" /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | </GlobalWindow> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | 
|---|
|  |  |  | import GlobalWindow from '@/components/common/GlobalWindow' | 
|---|
|  |  |  | import UploadAvatarImage from '@/components/common/UploadAvatarImage' | 
|---|
|  |  |  | import { fetchList } from '@/api/business/category' | 
|---|
|  |  |  | import { create, updateById } from '@/api/Inspection/device' | 
|---|
|  |  |  | import { create, updateById, detailById } from '@/api/Inspection/device' | 
|---|
|  |  |  | import { getUserList } from '@/api/system/user' | 
|---|
|  |  |  | import { Message } from 'element-ui' | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | components: { GlobalWindow, UploadAvatarImage }, | 
|---|
|  |  |  | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | isShowModal: false, | 
|---|
|  |  |  | subLoading: false, | 
|---|
|  |  |  | param: {}, | 
|---|
|  |  |  | param: { | 
|---|
|  |  |  | status: 0 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | cateList: [], | 
|---|
|  |  |  | rules: { | 
|---|
|  |  |  | name: [{ required: true, message: '请输入' }], | 
|---|
|  |  |  | code: [{ required: true, message: '请输入' }] | 
|---|
|  |  |  | code: [{ required: true, message: '请输入' }], | 
|---|
|  |  |  | cateId: [{ required: true, message: '请选择' }], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | staffList: [] | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 
|---|
|  |  |  | let fn = param.id ? updateById : create | 
|---|
|  |  |  | this.subLoading = true | 
|---|
|  |  |  | fn(param).then(res => { | 
|---|
|  |  |  | if (res.code == 200) { | 
|---|
|  |  |  | this.subLoading = false | 
|---|
|  |  |  | this.$emit('success') | 
|---|
|  |  |  | Message.success('保存成功') | 
|---|
|  |  |  | this.close() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.subLoading = false | 
|---|
|  |  |  | this.$emit('success') | 
|---|
|  |  |  | Message.success('保存成功') | 
|---|
|  |  |  | this.close() | 
|---|
|  |  |  | }).catch(() => { | 
|---|
|  |  |  | this.subLoading = false | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getDetail(id) { | 
|---|
|  |  |  | detailById(id).then(res => { | 
|---|
|  |  |  | this.param = res | 
|---|
|  |  |  | const cateId = this.param.cateId || '' | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | if (cateId) { | 
|---|
|  |  |  | this.cateList.forEach(item => { | 
|---|
|  |  |  | if (item.childCategoryList) { | 
|---|
|  |  |  | item.childCategoryList.forEach(item2 => { | 
|---|
|  |  |  | if (item2.id == cateId) { | 
|---|
|  |  |  | this.$set(this.param, 'cateIds', [item.id, item2.id]) | 
|---|
|  |  |  | console.log('cateId', this.form) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | },1000) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getStaff() { | 
|---|
|  |  |  | getUserList({}).then(res => { | 
|---|
|  |  |  | this.staffList = res | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | initData() { | 
|---|
|  |  |  | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | this.cateList = res.records || [] | 
|---|
|  |  |  | }) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.getStaff() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | changeSel(e) { | 
|---|
|  |  |  | if (e && e.length == 1) { | 
|---|
|  |  |  | this.$set(this.param, 'catePId', e[0]) | 
|---|
|  |  |  | this.$set(this.param, 'cateId', '') | 
|---|
|  |  |  | } else if (e && e.length == 2) { | 
|---|
|  |  |  | this.$set(this.param, 'catePId', e[0]) | 
|---|
|  |  |  | if (e && e.length == 2) { | 
|---|
|  |  |  | this.$set(this.param, 'cateId', e[1]) | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.$set(this.param, 'catePId', '') | 
|---|
|  |  |  | this.$set(this.param, 'cateId', '') | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.search() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadAvatarSuccess(file) { | 
|---|
|  |  |  | this.$set(this.param, 'imgurl', file.imgurl) | 
|---|
|  |  |  | this.$set(this.param, 'imgurlfull', file.imgurlfull) | 
|---|
|  |  |  | this.$set(this.param, 'fileUrl', file.imgurl) | 
|---|
|  |  |  | this.$set(this.param, 'fileFullUrl', file.imgurlfull) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | close() { | 
|---|
|  |  |  | this.isShowModal = false | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <style lang="scss" scoped></style> | 
|---|
|  |  |  | </script> | 
|---|