From 9251f709dc2a0d278ef2c0cdd76a244bfefc5784 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Thu, 12 Sep 2024 13:15:53 +0800
Subject: [PATCH] fix: 责任单位修改
---
src/views/toCarryOutLegislativeReforms/components/queryForm.vue | 204 ++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 171 insertions(+), 33 deletions(-)
diff --git a/src/views/toCarryOutLegislativeReforms/components/queryForm.vue b/src/views/toCarryOutLegislativeReforms/components/queryForm.vue
index b2696ed..3b2e88e 100644
--- a/src/views/toCarryOutLegislativeReforms/components/queryForm.vue
+++ b/src/views/toCarryOutLegislativeReforms/components/queryForm.vue
@@ -1,53 +1,146 @@
<template>
<div>
<div class="search-form">
- <el-form :inline="true" :model="formData" class="demo-form-inline">
+ <el-form
+ :inline="true"
+ :model="formData"
+ class="demo-form-inline"
+ >
<el-form-item label="���������������">
- <el-input v-model="formData.allocationNum" placeholder="���������������" size="small" clearable />
+ <el-input
+ v-model="formData.allocationNum"
+ placeholder="���������������"
+ size="small"
+ clearable
+ />
</el-form-item>
<el-form-item label="���������������">
- <el-date-picker v-model="formData.startTime" style="width:92%" size="small" value-format="yyyy-MM-dd" type="date" placeholder="������������" />
-
+ <el-date-picker
+ v-model="formData.startTime"
+ style="width:92%"
+ size="small"
+ value-format="yyyy-MM-dd"
+ type="date"
+ placeholder="������������"
+ />
</el-form-item>
<el-form-item label="���������������">
- <el-date-picker v-model="formData.endTime" style="width:92%" size="small" value-format="yyyy-MM-dd" type="date" placeholder="������������" />
+ <el-date-picker
+ v-model="formData.endTime"
+ style="width:92%"
+ size="small"
+ value-format="yyyy-MM-dd"
+ type="date"
+ placeholder="������������"
+ />
</el-form-item>
- <el-form-item label="���������������" class="rddd">
- <el-select v-model="formData.unitId" size="small" clearable multiple collapse-tags placeholder="���������">
- <el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" />
- </el-select>
+
+ <el-form-item
+ label="���������������"
+ >
+ <el-cascader
+ size="small"
+ collapse-tags
+ class="searchUid"
+ :show-all-levels="false"
+ :options="unitList"
+ :props="{ multiple: true, value:'unitId',label:'unitName',children:'children'}"
+ @change="changeUid"
+ />
</el-form-item>
<el-form-item label="���������������">
- <el-select v-model="formData.polluteType" size="small" clearable multiple collapse-tags placeholder="���������">
- <el-option v-for="item in polluteList" :key="item.dataKey" :label="item.dataValue" :value="item.dataKey" />
+ <el-select
+ v-model="formData.polluteType"
+ size="small"
+ clearable
+ multiple
+ collapse-tags
+ placeholder="���������"
+ >
+ <el-option
+ v-for="item in polluteList"
+ :key="item.dataKey"
+ :label="item.dataValue"
+ :value="item.dataKey"
+ />
</el-select>
</el-form-item>
<el-form-item label="���������������">
- <el-select v-model="formData.investigationType" size="small" clearable placeholder="���������">
- <el-option v-for="item in Dic.investigationEnum" :key="item.value" :label="item.name" :value="item.value" />
+ <el-select
+ v-model="formData.investigationType"
+ size="small"
+ clearable
+ placeholder="���������"
+ >
+ <el-option
+ v-for="item in Dic.investigationEnum"
+ :key="item.value"
+ :label="item.name"
+ :value="item.value"
+ />
</el-select>
</el-form-item>
<el-form-item label="���������������">
- <el-select v-model="formData.changeType" placeholder="���������" clearable size="small">
- <el-option v-for="item in Dic.changeEnum" :key="item.value" :label="item.name" :value="item.value" />
+ <el-select
+ v-model="formData.changeType"
+ placeholder="���������"
+ clearable
+ size="small"
+ >
+ <el-option
+ v-for="item in Dic.changeEnum"
+ :key="item.value"
+ :label="item.name"
+ :value="item.value"
+ />
</el-select>
</el-form-item>
<el-form-item label="���������������">
- <el-select v-model="formData.state" size="small" clearable multiple collapse-tags placeholder="���������" @change="replacePerChange($event)">
- <el-option v-for="item in Dic.allocationApproveEnum" :key="item.value" :label="item.name" :value="item.value" />
+ <el-select
+ v-model="formData.state"
+ size="small"
+ clearable
+ multiple
+ collapse-tags
+ placeholder="���������"
+ @change="replacePerChange($event)"
+ >
+ <el-option
+ v-for="item in Dic.allocationApproveEnum"
+ :key="item.value"
+ :label="item.name"
+ :value="item.value"
+ />
</el-select>
</el-form-item>
<el-form-item label="���������������">
- <el-select v-model="formData.isInvalid " placeholder="���������" clearable size="small" @change="replacePerChange($event)">
- <el-option v-for="item in Dic.yesOrNo" :key="item.value" :label="item.name" :value="item.value" />
+ <el-select
+ v-model="formData.isInvalid"
+ placeholder="���������"
+ clearable
+ size="small"
+ @change="replaceIsInvalid($event)"
+ >
+ <el-option
+ v-for="item in Dic.yesOrNo"
+ :key="item.value"
+ :label="item.name"
+ :value="item.value"
+ />
</el-select>
</el-form-item>
<el-form-item>
- <el-button type="primary" size="small" @click="onSubmit">������</el-button>
- <el-button type="primary" size="small" @click="handleAdd">������</el-button>
+ <el-button
+ type="primary"
+ size="small"
+ @click="onSubmit"
+ >
+ ������
+ </el-button>
+ <!-- <el-button type="primary" size="small" @click="handleAdd">������</el-button> -->
</el-form-item>
</el-form>
</div>
@@ -57,12 +150,13 @@
<script>
export default {
props: {
- searchType: { type: String, default: '' }
+ searchType: { type: String, default: '' },
+ initializationData: { type: Object, default: () => {} }
},
- data() {
+ data () {
return {
formData: {
- isInvalid: 0,
+ isInvalid: null,
state: [9, 20, 30]
},
unitList: [],
@@ -73,21 +167,60 @@
}
},
- created() {
+ created () {
this.getUnitList()
+ this.formData.isInvalid = 0
this.getContaminateList()
+ if (Object.entries(this.initializationData).length !== 0) {
+ this.formData.startTime = this.initializationData.startTime
+ this.formData.endTime = this.initializationData.endTime
+ // total ������������ unComplete ��������� complete ��������� overdue ������
+ if (this.initializationData.type === 'total') {
+ this.formData.state = []
+ } else if (this.initializationData.type === 'unComplete') {
+ this.formData.state = [9, 20, 30]
+ } else if (this.initializationData.type === 'complete') {
+ this.formData.state = [40]
+ } else if (this.initializationData.type === 'overdue') {
+ this.formData.state = []
+ this.formData.changeType = 2
+ }
+ }
},
methods: {
+ changeUid (val) {
+ this.formData.unitId = this.uniqueArrayReduce(val)
+ },
+ uniqueArrayReduce (arrays) {
+ return arrays.reduce((acc, curr) => {
+ return acc.concat(curr.filter(item => !acc.includes(item)))
+ }, [])
+ },
+ removeEmptyArrays (obj) {
+ if (Array.isArray(obj)) {
+ return obj
+ .map(item => this.removeEmptyArrays(item)) // ������������������������
+ .filter(item => !Array.isArray(item) || item.length > 0) // ���������������
+ } else if (typeof obj === 'object' && obj !== null) {
+ Object.keys(obj).forEach(key => {
+ obj[key] = this.removeEmptyArrays(obj[key]) // ������������������������
+ if (Array.isArray(obj[key]) && obj[key].length === 0) {
+ delete obj[key] // ���������������������
+ }
+ })
+ }
+ return obj
+ },
// ������������������list
- getUnitList() {
+ getUnitList () {
this.$request({
- url: '/allocation/unit',
+ url: '/allocation/unitQuery',
method: 'get'
}).then(res => {
- this.unitList = res.data
+ this.unitList = this.removeEmptyArrays(res.data)
})
},
- getContaminateList() {
+ getContaminateList () {
this.$request({
url: '/allocation/contaminate',
method: 'get'
@@ -95,14 +228,18 @@
this.polluteList = res.data
})
},
- replacePerChange(val) {
+ replaceIsInvalid (val) {
+ this.formData.isInvalid = val
this.$forceUpdate()
},
- onSubmit() {
+ replacePerChange (val) {
+ this.$forceUpdate()
+ },
+ onSubmit () {
console.log('formData', this.formData)
this.$emit('handleSearch', this.formData)
},
- handleAdd() {
+ handleAdd () {
this.$emit('handleAdd', '12122')
}
}
@@ -117,7 +254,7 @@
right: 20;
}
/deep/ .el-form-item__content {
- width: auto;
+ width: 214px;
}
}
/deep/.el-form-item__label {
@@ -126,4 +263,5 @@
/deep/.el-form-item {
margin-bottom: 5px;
}
+
</style>
--
Gitblit v1.8.0