<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="">
|
<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: '请输入' }]
|
},
|
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>
|