<template>
|
<el-dialog title="新增" :visible.sync="dialogFormVisible" :close-on-click-modal="false" width="800px">
|
<el-form ref="dataForm" :rules="dataFormRules" :model="dataForm" label-position="right" label-width="140px" style="" element-loading-text="保存中...">
|
<el-form-item label="隐患级别:" prop="level">
|
<el-select v-model="dataForm.level" placeholder="请选择" :disabled="isView">
|
<el-option
|
v-for="item in levels"
|
:key="item.key"
|
:label="item.value"
|
:value="item.key">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-form-item label="选择整改人:" prop="rectifier">
|
<el-input v-model="dataForm.rectifier" readonly style="width: 205px" placeholder="请选择" >
|
|
</el-input>
|
<el-button style="margin-left: 10px;" type="primary"
|
@click="showPersonSelect">选择
|
</el-button>
|
</el-form-item>
|
|
<el-form-item label="整改措施:" prop="rectifymeasure">
|
<el-input
|
style="width: 400px"
|
type="textarea"
|
:rows="3"
|
:disabled="isView"
|
placeholder="请输入内容"
|
v-model="dataForm.rectifymeasure">
|
</el-input>
|
</el-form-item>
|
<el-form-item label="整改期限:" prop="rectifydeadline">
|
<el-date-picker
|
v-model="dataForm.rectifydeadline"
|
type="datetime"
|
format="yyyy-MM-dd HH:mm"
|
:picker-options="pickerOptions"
|
value-format="yyyy-MM-dd HH:mm"
|
placeholder="选择日期时间">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item label="上报说明:" prop="note">
|
<el-input
|
style="width: 400px"
|
type="textarea"
|
:rows="3"
|
:disabled="isView"
|
placeholder="请输入内容"
|
v-model="dataForm.note">
|
</el-input>
|
</el-form-item>
|
|
<el-form-item label="上报图片:" v-if="!isView">
|
<el-upload
|
ref="upload"
|
:action="baseUrl"
|
:auto-upload="false"
|
:headers="headers"
|
:on-change="handleChange"
|
name="file"
|
:file-list="fileList"
|
list-type="picture-card"
|
multiple
|
>
|
<i class="el-icon-plus"></i>
|
</el-upload>
|
|
</el-form-item>
|
|
<el-form-item label="上报图片:" v-if="isView" >
|
<el-image
|
class="upload-img"
|
v-for='item in imgUrls'
|
:key='item.id'
|
:src="item.url"
|
:preview-src-list="imgPreviewUrls"
|
style="width:100px;height: 100px;margin: 10px;"
|
>
|
</el-image>
|
</el-form-item>
|
|
|
|
</el-form>
|
|
<div style="margin-top: 20px;margin-left: 140px;" class="dialog-footer" v-if="!isView">
|
<el-button @click="dialogFormVisible = false">取消</el-button>
|
<el-button type="primary" @click="trigger2Submit" :disabled="submiting">上报</el-button>
|
</div>
|
<person-select ref="selectPerson" @setPerson="selectSetValue" ></person-select>
|
</el-dialog>
|
</template>
|
|
<script>
|
import personSelect from './personSelect'
|
import { hiddenDangerReport } from '@/api/hiddenDanger';
|
import {getToken} from "@/utils/auth";
|
export default {
|
name: "reportDialog",
|
data(){
|
return {
|
baseUrl: process.env.BASE_API + 'hiddenDanger/report',
|
headers: {
|
'Authorization': getToken()
|
},
|
submiting:false,
|
levels:[
|
{"key":"URGENT","value":"重大隐患"},
|
{"key":"COMMON","value":"一般隐患"},
|
],
|
pickerOptions:{
|
disabledDate(now){
|
return now.getTime() < new Date(new Date().toLocaleDateString()).getTime()
|
}
|
},
|
fileList: [],
|
dataForm: {
|
rectifydeadline:'',
|
rectifymeasure:'',
|
rectifier:'',
|
rectifierid:'',
|
note: '',
|
level:''
|
},
|
dataFormRules:{
|
level: [{ required: true, message: '隐患级别不能为空', trigger: 'change' }],
|
rectifier: [{ required: true, message: '整改人不能为空', trigger: 'change' }],
|
rectifymeasure: [{ required: true, message: '整改措施不能为空', trigger: 'blur' }],
|
rectifydeadline: [{ required: true, message: '整改期限不能为空', trigger: 'change' }],
|
note: [{ required: true, message: '上报说明不能为空', trigger: 'blur' }],
|
},
|
dialogFormVisible: false,
|
isView:false,
|
}
|
},
|
components:{
|
personSelect,
|
},
|
methods:{
|
resetDataForm(){
|
this.dataForm = {
|
rectifydeadline:'',
|
rectifymeasure:'',
|
rectifier:'',
|
rectifierid:'',
|
note: '',
|
level:''
|
}
|
},
|
show(){
|
this.dialogFormVisible = true
|
this.isView = false
|
this.resetDataForm()
|
},
|
trigger2Submit(){
|
this.$refs["dataForm"].validate(valid =>{
|
if(valid){
|
this.submiting = true
|
let formData = new FormData()
|
formData.append('rectifier', this.dataForm.rectifier)
|
formData.append("rectifierid",this.dataForm.rectifierid)
|
formData.append("level",this.dataForm.level)
|
formData.append("rectifymeasure",this.dataForm.rectifymeasure)
|
formData.append("rectifydeadline",this.dataForm.rectifydeadline)
|
formData.append("note",this.dataForm.note)
|
this.fileList.forEach(file=>{
|
formData.append("files",file.raw)
|
})
|
hiddenDangerReport(formData).then(res=>{
|
if (res.data.code === '200') {
|
this.dialogFormVisible = false
|
this.$message({
|
message: '创建成功',
|
type: 'success'
|
});
|
this.$emit("refresh")
|
}else{
|
this.$message({
|
message: res.data.message,
|
type: 'warning'
|
});
|
}
|
this.fileList = []
|
}).catch(err=>{
|
console.log(err)
|
this.$message({
|
message: "接口错误,请联系管理员",
|
type: 'warning'
|
});
|
}).finally(()=>{
|
this.submiting = false
|
})
|
}else{
|
this.$message({
|
type:'warning',
|
message:'请完善基本信息'
|
})
|
}
|
})
|
|
},
|
showPersonSelect(){
|
this.$refs.selectPerson.show();
|
},
|
selectSetValue(row){
|
this.dataForm.rectifier = row.realname
|
this.dataForm.rectifierid = row.id
|
},
|
|
|
handleChange(file, fileList) {
|
this.fileList = fileList
|
},
|
|
|
}
|
}
|
</script>
|
|
<style scoped>
|
|
.el-picker-panel__footer .el-button--text.el-picker-panel__link-btn {
|
display: none;
|
}
|
</style>
|