| | |
| | | <template> |
| | | <div> |
| | | <el-dialog :title="title" :visible.sync="visible" top="30px" width="900px" center :before-close="close"> |
| | | <div slot="title" class="titBox"> |
| | | <el-dialog |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | top="30px" |
| | | width="900px" |
| | | center |
| | | :before-close="close" |
| | | > |
| | | <div |
| | | slot="title" |
| | | class="titBox" |
| | | > |
| | | <div>{{ parentFormData.allocationNum }}</div> |
| | | <div>{{ title }}</div> |
| | | </div> |
| | | <div> |
| | | <el-form ref="ruleForm" :disabled="pageState === 'detail'" label-width="120px" :model="formData" class="demo-form-inline" :rules="rules"> |
| | | <el-form |
| | | ref="ruleForm" |
| | | :disabled="pageState === 'detail'" |
| | | label-width="120px" |
| | | :model="formData" |
| | | class="demo-form-inline" |
| | | :rules="rules" |
| | | > |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="上报时间:" prop="escalationTime" class="span"> |
| | | <el-date-picker v-model="formData.escalationTime" value-format="yyyy-MM-dd" size="small" type="date" placeholder="选择日期" /> |
| | | <el-form-item |
| | | label="上报时间:" |
| | | prop="escalationTime" |
| | | class="span" |
| | | > |
| | | <el-date-picker |
| | | v-model="formData.escalationTime" |
| | | value-format="yyyy-MM-dd" |
| | | size="small" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="污染位置:" prop="pollutePosition" class="span"> |
| | | <el-input v-model="formData.pollutePosition" type="text" placeholder="请选择" size="small" /> |
| | | <el-form-item |
| | | label="污染位置:" |
| | | prop="pollutePosition" |
| | | class="span" |
| | | > |
| | | <!-- el-icon-map-location --> |
| | | <el-input |
| | | v-model="formData.pollutePosition" |
| | | type="text" |
| | | placeholder="请选择" |
| | | size="small" |
| | | > |
| | | <template |
| | | slot="append" |
| | | > |
| | | <div |
| | | style="line-height: 2;" |
| | | @click="toMap()" |
| | | > |
| | | 定位 |
| | | </div> |
| | | </template> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="责任主体:" prop="unitId" class="span"> |
| | | <el-select v-model="formData.unitId" placeholder="请选择" size="small"> |
| | | <el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" /> |
| | | <el-form-item |
| | | label="责任主体:" |
| | | prop="unitId" |
| | | class="span" |
| | | > |
| | | <el-select |
| | | v-model="formData.unitId" |
| | | placeholder="请选择" |
| | | size="small" |
| | | > |
| | | <el-option |
| | | v-for="item in unitList" |
| | | :key="item.unitId" |
| | | :label="item.unitName" |
| | | :value="item.unitId" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="污染分类:" prop="polluteType" class="span"> |
| | | <el-select v-model="formData.polluteType" placeholder="请选择" size="small"> |
| | | <el-option v-for="item in polluteList" :key="item.dataKey" :label="item.dataValue" :value="item.dataKey" /> |
| | | <el-form-item |
| | | label="污染分类:" |
| | | prop="polluteType" |
| | | class="span" |
| | | > |
| | | <el-select |
| | | v-model="formData.polluteType" |
| | | placeholder="请选择" |
| | | size="small" |
| | | > |
| | | <el-option |
| | | v-for="item in polluteList" |
| | | :key="item.dataKey" |
| | | :label="item.dataValue" |
| | | :value="item.dataKey" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="整改类型:" prop="changeType" class="span"> |
| | | <el-select v-model="formData.changeType" placeholder="请选择" size="small" @change="changeEnumList"> |
| | | <el-option v-for="item in Dic.changeEnum" :key="item.value" :label="item.name" :value="item.value" /> |
| | | <el-form-item |
| | | label="整改类型:" |
| | | prop="changeType" |
| | | class="span" |
| | | > |
| | | <el-select |
| | | v-model="formData.changeType" |
| | | placeholder="请选择" |
| | | size="small" |
| | | @change="changeEnumList" |
| | | > |
| | | <el-option |
| | | v-for="item in Dic.changeEnum" |
| | | :key="item.value" |
| | | :label="item.name" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="限期天数:" prop="changeDay" class="span"> |
| | | <el-input-number v-model="formData.changeDay" :disabled="formData.changeType === 1" :min="0" label="请输入" /> |
| | | <el-form-item |
| | | label="限期天数:" |
| | | prop="changeDay" |
| | | class="span" |
| | | > |
| | | <el-input-number |
| | | v-model="formData.changeDay" |
| | | :disabled="formData.changeType === 1" |
| | | :min="0" |
| | | label="请输入" |
| | | /> |
| | | <!-- <el-input v-model.number="formData.changeDay" :disabled="formData.changeType===1" type="text" placeholder="请输入" size="small" /> --> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="上报单位:" prop="escalationUnitId" class="span"> |
| | | <el-select v-model="formData.escalationUnitId" placeholder="请选择" size="small"> |
| | | <el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" /> |
| | | <el-form-item |
| | | label="上报单位:" |
| | | prop="escalationUnitId" |
| | | class="span" |
| | | > |
| | | <el-select |
| | | v-model="formData.escalationUnitId" |
| | | placeholder="请选择" |
| | | size="small" |
| | | > |
| | | <el-option |
| | | v-for="item in unitList" |
| | | :key="item.unitId" |
| | | :label="item.unitName" |
| | | :value="item.unitId" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="上报人:" prop="escalationName" class="span"> |
| | | <el-input v-model="formData.escalationName" type="text" placeholder="请选择" size="small" /> |
| | | <el-form-item |
| | | label="上报人:" |
| | | prop="escalationName" |
| | | class="span" |
| | | > |
| | | <el-input |
| | | v-model="formData.escalationName" |
| | | type="text" |
| | | placeholder="请选择" |
| | | size="small" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="排查方式:" prop="investigationType" class="span"> |
| | | <el-radio-group v-model="formData.investigationType" size="small"> |
| | | <el-radio v-for="item in Dic.investigationEnum" :key="item.value" :label="item.value">{{ item.name }}</el-radio> |
| | | <el-form-item |
| | | label="排查方式:" |
| | | prop="investigationType" |
| | | class="span" |
| | | > |
| | | <el-radio-group |
| | | v-model="formData.investigationType" |
| | | size="small" |
| | | > |
| | | <el-radio |
| | | v-for="item in Dic.investigationEnum" |
| | | :key="item.value" |
| | | :label="item.value" |
| | | > |
| | | {{ item.name }} |
| | | </el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="任务分类:" prop="keyPointlist" class="span"> |
| | | <el-radio-group v-model="formData.keyPoint" size="small"> |
| | | <el-radio v-for="item in Dic.emphasisEnum" :key="item.value" :label="item.value">{{ item.name }}</el-radio> |
| | | <el-form-item |
| | | label="任务分类:" |
| | | prop="keyPointlist" |
| | | class="span" |
| | | > |
| | | <el-radio-group |
| | | v-model="formData.keyPoint" |
| | | size="small" |
| | | > |
| | | <el-radio |
| | | v-for="item in Dic.emphasisEnum" |
| | | :key="item.value" |
| | | :label="item.value" |
| | | > |
| | | {{ item.name }} |
| | | </el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-form-item label="问题描述:" prop="problemDescribe" class="span"> |
| | | <el-input v-model="formData.problemDescribe" type="textarea" :rows="4" placeholder="请输入内容" /> |
| | | <el-form-item |
| | | label="问题描述:" |
| | | prop="problemDescribe" |
| | | class="span" |
| | | > |
| | | <el-input |
| | | v-model="formData.problemDescribe" |
| | | type="textarea" |
| | | :rows="4" |
| | | placeholder="请输入内容" |
| | | /> |
| | | </el-form-item> |
| | | </el-row> |
| | | <el-row> |
| | | <el-form-item label="附件:"> |
| | | <div> |
| | | <div v-if="pageState === 'edit'"> |
| | | <div v-for="(file, index) in fileBaseListCover" :key="file.fileId + index" class="block"> |
| | | <el-image v-if="file.fileType === 1" style="width: 100px; height: 100px" :src="file.url" :preview-src-list=" |
| | | <div |
| | | v-for="(file, index) in fileBaseListCover" |
| | | :key="file.fileId + index" |
| | | class="block" |
| | | > |
| | | <el-image |
| | | v-if="file.fileType === 1" |
| | | style="width: 100px; height: 100px" |
| | | :src="file.url" |
| | | :preview-src-list=" |
| | | getPreviewImages(file.fileId, fileBaseList) |
| | | " :initial-index="index" /> |
| | | <video v-else :src="file.url" style="width: 100px; height: 100px" @click="openVideo(file)"> |
| | | " |
| | | :initial-index="index" |
| | | /> |
| | | <video |
| | | v-else |
| | | :src="file.url" |
| | | style="width: 100px; height: 100px" |
| | | @click="openVideo(file)" |
| | | > |
| | | 您的浏览器不支持 video 标签。 |
| | | </video> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <uploadFile v-if="pageState !== 'detail'" :upload-url="uploadTermExcelUrl" :sys-code="sysCode" /> |
| | | <uploadFile |
| | | v-if="pageState !== 'detail'" |
| | | :upload-url="uploadTermExcelUrl" |
| | | :sys-code="sysCode" |
| | | /> |
| | | </el-form-item> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="close">关闭</el-button> |
| | | <el-button v-if="pageState !== 'detail'" type="info" @click="handleSubmit('9')">保存</el-button> |
| | | <el-button v-if="pageState !== 'detail'" type="primary" @click="handleSubmit('10')">提交</el-button> |
| | | <div |
| | | slot="footer" |
| | | class="dialog-footer" |
| | | > |
| | | <el-button @click="close"> |
| | | 关闭 |
| | | </el-button> |
| | | <el-button |
| | | v-if="pageState !== 'detail'" |
| | | type="info" |
| | | @click="handleSubmit('9')" |
| | | > |
| | | 保存 |
| | | </el-button> |
| | | <el-button |
| | | v-if="pageState !== 'detail'" |
| | | type="primary" |
| | | @click="handleSubmit('10')" |
| | | > |
| | | 提交 |
| | | </el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="videoVisible" width="600px" :modal-append-to-body="false" :destroy-on-close="true" @close="handleCancel"> |
| | | <el-dialog |
| | | :visible.sync="videoVisible" |
| | | width="600px" |
| | | :modal-append-to-body="false" |
| | | :destroy-on-close="true" |
| | | @close="handleCancel" |
| | | > |
| | | <div style="text-align: center"> |
| | | <video ref="video" style="width: 300px; height: 500px" :src="dialogImageUrl" controls autoplay /> |
| | | <video |
| | | ref="video" |
| | | style="width: 300px; height: 500px" |
| | | :src="dialogImageUrl" |
| | | controls |
| | | autoplay |
| | | /> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | |
| | | props: { |
| | | title: { type: String, default: '' }, |
| | | visible: { type: Boolean, required: true }, |
| | | isToMap: { type: Boolean, required: true, default: false }, |
| | | pageState: { type: String, required: true, default: 'add' }, |
| | | parentFormData: { type: Object, default: () => {} } |
| | | }, |
| | | data() { |
| | | data () { |
| | | return { |
| | | videoVisible: false, |
| | | formData: { |
| | |
| | | escalationName: '', |
| | | keyPoint: 0, |
| | | changeDay: 0, |
| | | investigationType: 1 |
| | | investigationType: 1, |
| | | pollutePosition: '' |
| | | }, |
| | | fileBaseList: [], |
| | | fileBaseListCover: [], |
| | |
| | | } |
| | | }, |
| | | computed: { |
| | | uploadTermExcelUrl() { |
| | | uploadTermExcelUrl () { |
| | | return `${requestObj.baseUrl}/file/upload` |
| | | } |
| | | }, |
| | | watch: { |
| | | pageState: { |
| | | handler(newVal) { |
| | | handler (newVal) { |
| | | if (this.pageState === 'edit') { |
| | | if ( |
| | | this.parentFormData.fileBaseList && |
| | |
| | | immediate: true |
| | | } |
| | | }, |
| | | async created() { |
| | | async created () { |
| | | this.getUnitList() |
| | | |
| | | console.log('oldValue', this.parentFormData) |
| | |
| | | }) |
| | | }, |
| | | methods: { |
| | | changeKeyPoint(data) { |
| | | toMap () { |
| | | this.$emit('update:isToMap', true) |
| | | }, |
| | | changeKeyPoint (data) { |
| | | this.$forceUpdate() |
| | | }, |
| | | getPreviewImages(index, list) { |
| | | getPreviewImages (index, list) { |
| | | let startIndex = 0 |
| | | const chechList = _.cloneDeep(list) |
| | | chechList.forEach((item, i) => { |
| | |
| | | var remain = imgList.splice(0, startIndex) |
| | | return start.concat(remain) |
| | | }, |
| | | openVideo(item) { |
| | | openVideo (item) { |
| | | console.log('item', item) |
| | | this.dialogImageUrl = item.url |
| | | this.videoVisible = true |
| | | }, |
| | | handleCancel() { |
| | | handleCancel () { |
| | | this.dialogImageUrl = '' |
| | | this.videoVisible = false |
| | | }, |
| | | changeEnumList(val) { |
| | | changeEnumList (val) { |
| | | if (val === 1) { |
| | | this.formData.changeDay = 0 |
| | | } |
| | | }, |
| | | // 获取责任单位list |
| | | getUnitList() { |
| | | getUnitList () { |
| | | this.$request({ |
| | | url: '/allocation/unit', |
| | | method: 'get' |
| | |
| | | this.getContaminateList() |
| | | }) |
| | | }, |
| | | getContaminateList() { |
| | | getContaminateList () { |
| | | this.$request({ |
| | | url: '/allocation/contaminate', |
| | | method: 'get' |
| | |
| | | } |
| | | }) |
| | | }, |
| | | close() { |
| | | close () { |
| | | this.$nextTick(function () { |
| | | this.$refs.ruleForm.resetFields() |
| | | }) |
| | | this.$emit('update:visible', false) |
| | | }, |
| | | handleSubmit(val) { |
| | | handleSubmit (val) { |
| | | console.log('this.formData', this.formData) |
| | | if (this.fileBaseListCover && this.fileBaseListCover.length > 0) { |
| | | this.fileBaseListCover.forEach(item => { |
| | |
| | | /deep/.el-checkbox__inner { |
| | | border-radius: 50%; |
| | | } |
| | | /deep/.el-input-group__append { |
| | | width: 60px !important; |
| | | padding: 0; |
| | | text-align: center; |
| | | cursor: pointer; |
| | | } |
| | | </style> |