From 158629c4bc4794184ad99509e4fad804ee4dafbd Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Tue, 14 Nov 2023 10:30:49 +0800
Subject: [PATCH] fix:立行立改添加修改责任单位
---
src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue | 185 ++++++++++++++++++++++++---------------------
1 files changed, 98 insertions(+), 87 deletions(-)
diff --git a/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue b/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue
index fb2d0cc..23a9650 100644
--- a/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue
+++ b/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue
@@ -1,18 +1,16 @@
<template>
<div>
- <el-dialog :title="title" :visible.sync="visible" width="900px" center :before-close="close">
+ <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="100px" :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-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">
@@ -25,24 +23,14 @@
<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-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-option v-for="item in polluteList" :key="item.dataKey" :label="item.dataValue" :value="item.dataKey" />
</el-select>
</el-form-item>
</el-col>
@@ -51,12 +39,7 @@
<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-option v-for="item in Dic.changeEnum" :key="item.value" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
</el-col>
@@ -71,12 +54,7 @@
<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-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" />
</el-select>
</el-form-item>
</el-col>
@@ -105,13 +83,7 @@
<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="fileBaseList"
- :initial-index="index"
- />
+ <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)">
������������������������ video ���������
</video>
@@ -131,13 +103,7 @@
</el-dialog>
<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>
@@ -147,6 +113,7 @@
import uploadFile from '@/components/UploadExcel/index'
import bus from '@/Bus'
import requestObj from '@/utils/request'
+import _ from 'lodash'
export default {
components: { uploadFile },
props: {
@@ -159,6 +126,11 @@
return {
videoVisible: false,
formData: {
+ unitId: '',
+ escalationUnitId: '',
+ changeType: '',
+ polluteType: '',
+ escalationTime: new Date(),
fileBaseList: [],
escalationName: '',
changeDay: 0,
@@ -187,9 +159,7 @@
changeType: [
{ required: true, message: '���������������������', trigger: 'change' }
],
- changeDay: [
- { required: true, message: '���������������', trigger: 'blur' }
- ],
+ changeDay: [{ required: true, message: '���������������', trigger: 'blur' }],
escalationUnitId: [
{ required: true, message: '���������������������', trigger: 'change' }
],
@@ -211,18 +181,26 @@
}
},
watch: {
- 'pageState': {
+ pageState: {
handler(newVal) {
if (this.pageState === 'edit') {
- if (this.parentFormData.fileBaseList && this.parentFormData.fileBaseList.length > 0) {
+ if (
+ this.parentFormData.fileBaseList &&
+ this.parentFormData.fileBaseList.length > 0
+ ) {
this.parentFormData.fileBaseList.forEach(item => {
if (item.fileType === 1) {
- this.fileBaseList.push(`${requestObj.baseUrl}file/preview/${item.fileId}`) // ������
+ this.fileBaseList.push(
+ `${requestObj.baseUrl}file/preview/${item.fileId}`
+ ) // ������
}
// const srcApi = item.fileType === 1 ? api + 'preview/' : api + 'preview/cover/'
// this.fileBaseList.push(`${requestObj.baseUrl}file/preview/${item.fileId}`) // ������
this.fileBaseListCover.push({
- url: item.fileType === 1 ? `${requestObj.baseUrl}file/preview/cover/${item.fileId}` : `${requestObj.baseUrl}file/preview/${item.fileId}`,
+ url:
+ item.fileType === 1
+ ? `${requestObj.baseUrl}file/preview/cover/${item.fileId}`
+ : `${requestObj.baseUrl}file/preview/${item.fileId}`,
fileType: item.fileType,
fileId: item.fileId,
fileName: item.fileName
@@ -236,22 +214,15 @@
immediate: true
}
},
- created() {
- console.log('oldValue', this.parentFormData)
- if (!(JSON.stringify(this.parentFormData) === '{}')) {
- this.formData = this.parentFormData
- this.formData.polluteType = String(this.parentFormData.polluteType)
- } else {
- const name = this.$store.state.user.name
- this.formData.escalationName = name
- }
-
+ async created() {
this.getUnitList()
- this.getContaminateList()
+
+ console.log('oldValue', this.parentFormData)
+
bus.$on('changeFileAfterList', (type, fileList) => {
this.formData.fileBaseList = []
if (fileList.length > 0) {
- fileList.map((item) => {
+ fileList.map(item => {
if (item.response) {
console.log('item.response.data', item.response.data)
this.formData.fileBaseList.push(item.response.data)
@@ -261,6 +232,25 @@
})
},
methods: {
+ getPreviewImages(index, list) {
+ let startIndex = 0
+ const chechList = _.cloneDeep(list)
+ chechList.forEach((item, i) => {
+ const str = item.substring(item.lastIndexOf('/') + 1)
+ console.log('str', str)
+ if (Number(str) === Number(index)) {
+ startIndex = i
+ }
+ })
+
+ console.log('index', index)
+ console.log('startIndex', startIndex)
+ var imgList = [...list]
+ if (index === 0) return imgList
+ var start = imgList.splice(startIndex)
+ var remain = imgList.splice(0, startIndex)
+ return start.concat(remain)
+ },
openVideo(item) {
console.log('item', item)
this.dialogImageUrl = item.url
@@ -280,20 +270,32 @@
this.$request({
url: '/allocation/unit',
method: 'get'
- }).then((res) => {
+ }).then(res => {
this.unitList = res.data
+ this.getContaminateList()
})
},
getContaminateList() {
this.$request({
url: '/allocation/contaminate',
method: 'get'
- }).then((res) => {
+ }).then(res => {
this.polluteList = res.data
+ if (!(JSON.stringify(this.parentFormData) === '{}')) {
+ this.formData = this.parentFormData
+ this.formData.polluteType = String(this.parentFormData.polluteType)
+ } else {
+ const name = this.$store.state.user.name
+ this.formData.escalationName = name
+ this.formData.changeType = this.Dic.changeEnum[0].value
+ this.formData.unitId = this.unitList[0].unitId
+ this.formData.escalationUnitId = this.unitList[0].unitId
+ this.formData.polluteType = this.polluteList[0].dataKey
+ }
})
},
close() {
- this.$nextTick(function() {
+ this.$nextTick(function () {
this.$refs.ruleForm.resetFields()
})
this.$emit('update:visible', false)
@@ -309,7 +311,7 @@
})
}
this.formData.state = val
- this.$refs.ruleForm.validate((valid) => {
+ this.$refs.ruleForm.validate(valid => {
if (valid) {
// this.formData.fileBaseList = [...this.parentFormData.fileBaseList, this.formData.fileBaseList]
this.$emit('handleSubmit', this.formData)
@@ -323,36 +325,45 @@
</script>
<style lang="scss" scoped>
+.titBox {
+ position: relative;
+ font-size: 18px;
+ div:first-child {
+ position: absolute;
+ left: 10px;
+ }
+ div {
+ display: inline-block;
+ }
+}
.block {
- display: inline-block !important;
- margin-right: 10px;
+ display: inline-block !important;
+ margin-right: 10px;
}
.textBox {
- display: flex;
- justify-content: space-between;
- margin-left: 15px;
+ display: flex;
+ justify-content: space-between;
+ margin-left: 15px;
}
-.el-dialog__body>div {
- border-bottom: 1px dashed rgba(187, 187, 187, 1);
+.el-dialog__body > div {
+ border-bottom: 1px dashed rgba(187, 187, 187, 1);
}
-.span{
+.span {
/deep/.el-form-item__content {
-
- div {
- width: 100%;
- }
+ div {
+ width: 100%;
+ }
}
}
.textare {
- /deep/.el-form-item__content {
- width: 800px;
+ /deep/.el-form-item__content {
+ width: 800px;
- div {
- width: 100%;
- }
+ div {
+ width: 100%;
}
}
-
+}
</style>
--
Gitblit v1.8.0