| <template> | 
|   <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> | 
|       <el-form-item label="设备名称" prop="name"> | 
|         <el-input v-model="param.name" placeholder="请输入" v-trim /> | 
|       </el-form-item> | 
|       <el-form-item label="设备型号" prop=""> | 
|         <el-input v-model="param.modelNo" placeholder="请输入" v-trim /> | 
|       </el-form-item> | 
|       <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' | 
|           }"></el-cascader> | 
|       </el-form-item> | 
|       <el-form-item label="设备管理员" prop=""> | 
|         <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-input v-model="param.addr" placeholder="请输入" v-trim /> | 
|   | 
|       </el-form-item> | 
|       <el-form-item label="供应商" prop=""> | 
|         <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> | 
|           <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.fileFullUrl, 'imgurl': param.fileUrl }" | 
|           :uploadData="{ folder: 'ywDevice/' }" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" | 
|           @uploadBegin="isUploading = true" /> | 
|       </el-form-item> | 
|     </el-form> | 
|   </GlobalWindow> | 
| </template> | 
|   | 
| <script> | 
| import GlobalWindow from '@/components/common/GlobalWindow' | 
| import UploadAvatarImage from '@/components/common/UploadAvatarImage' | 
| import { fetchList } from '@/api/business/category' | 
| import { create, updateById, detailById } from '@/api/Inspection/device' | 
| import { getUserList } from '@/api/system/user' | 
| import { Message } from 'element-ui' | 
| export default { | 
|   components: { GlobalWindow, UploadAvatarImage }, | 
|   data() { | 
|     return { | 
|       isShowModal: false, | 
|       subLoading: false, | 
|       param: { | 
|         status: 0 | 
|       }, | 
|       cateList: [], | 
|       rules: { | 
|         name: [{ required: true, message: '请输入' }], | 
|         code: [{ required: true, message: '请输入' }], | 
|         cateId: [{ required: true, message: '请选择' }], | 
|       }, | 
|       staffList: [] | 
|   | 
|     } | 
|   }, | 
|   created() { | 
|     this.initData() | 
|   }, | 
|   methods: { | 
|     handleSub() { | 
|       const { param, subLoading } = this | 
|       this.$refs['paramRef'].validate((valid) => { | 
|         if (valid) { | 
|           let fn = param.id ? updateById : create | 
|           this.subLoading = true | 
|           fn(param).then(res => { | 
|             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() { | 
|       fetchList({ | 
|         model: { type: 5 }, | 
|         capacity: 1000, | 
|         page: 1, | 
|       }).then(res => { | 
|         this.cateList = res.records || [] | 
|       }) | 
|       this.getStaff() | 
|     }, | 
|     changeSel(e) { | 
|       if (e && e.length == 2) { | 
|         this.$set(this.param, 'cateId', e[1]) | 
|       } else { | 
|         this.$set(this.param, 'cateId', '') | 
|       } | 
|     }, | 
|     uploadAvatarSuccess(file) { | 
|       this.$set(this.param, 'fileUrl', file.imgurl) | 
|       this.$set(this.param, 'fileFullUrl', file.imgurlfull) | 
|     }, | 
|     close() { | 
|       this.isShowModal = false | 
|       this.$emit('close') | 
|     } | 
|   } | 
| } | 
| </script> |