From 293a5597a6823edc5c64372ec41b1024c9f87ee0 Mon Sep 17 00:00:00 2001 From: quanyawei <401863037@qq.com> Date: Thu, 12 Sep 2024 16:04:03 +0800 Subject: [PATCH] fix: 责任单位修改 --- src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue | 338 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 273 insertions(+), 65 deletions(-) diff --git a/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue b/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue index a1d1467..7430bde 100644 --- a/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue +++ b/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue @@ -1,120 +1,322 @@ <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-checkbox-group v-model="formData.keyPointlist" :max="1" size="small" @change='changeKeyPoint'> - <el-checkbox v-for="item in Dic.emphasisEnum" :label="item.value" :key="item.value">{{ item.name }}</el-checkbox> - </el-checkbox-group> + <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> @@ -130,10 +332,11 @@ 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: { @@ -144,9 +347,10 @@ escalationTime: new Date(), fileBaseList: [], escalationName: '', - keyPointlist: [], + keyPoint: 0, changeDay: 0, - investigationType: 1 + investigationType: 1, + pollutePosition: '' }, fileBaseList: [], fileBaseListCover: [], @@ -188,13 +392,13 @@ } }, computed: { - uploadTermExcelUrl() { + uploadTermExcelUrl () { return `${requestObj.baseUrl}/file/upload` } }, watch: { pageState: { - handler(newVal) { + handler (newVal) { if (this.pageState === 'edit') { if ( this.parentFormData.fileBaseList && @@ -226,7 +430,7 @@ immediate: true } }, - async created() { + async created () { this.getUnitList() console.log('oldValue', this.parentFormData) @@ -244,10 +448,13 @@ }) }, 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) => { @@ -266,22 +473,22 @@ 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' @@ -290,7 +497,7 @@ this.getContaminateList() }) }, - getContaminateList() { + getContaminateList () { this.$request({ url: '/allocation/contaminate', method: 'get' @@ -299,9 +506,7 @@ if (!(JSON.stringify(this.parentFormData) === '{}')) { this.formData = this.parentFormData this.formData.polluteType = String(this.parentFormData.polluteType) - this.formData.keyPointlist = this.parentFormData.keyPoint - ? [Number(this.parentFormData.keyPoint)] - : [] + this.formData.keyPoint = Number(this.parentFormData.keyPoint) } else { const name = this.$store.state.user.name this.formData.escalationName = name @@ -312,13 +517,13 @@ } }) }, - 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 => { @@ -329,10 +534,7 @@ }) } this.formData.state = val - this.formData.keyPoint = - this.formData.keyPointlist.length > 0 - ? this.formData.keyPointlist[0] - : '' + this.$refs.ruleForm.validate(valid => { if (valid) { // this.formData.fileBaseList = [...this.parentFormData.fileBaseList, this.formData.fileBaseList] @@ -391,4 +593,10 @@ /deep/.el-checkbox__inner { border-radius: 50%; } +/deep/.el-input-group__append { + width: 60px !important; + padding: 0; + text-align: center; + cursor: pointer; +} </style> -- Gitblit v1.8.0