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 | 245 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 178 insertions(+), 67 deletions(-) diff --git a/src/views/toCarryOutLegislativeReforms/components/queryForm.vue b/src/views/toCarryOutLegislativeReforms/components/queryForm.vue index 2e8e7df..3b2e88e 100644 --- a/src/views/toCarryOutLegislativeReforms/components/queryForm.vue +++ b/src/views/toCarryOutLegislativeReforms/components/queryForm.vue @@ -1,29 +1,63 @@ <template> <div> <div class="search-form"> - <el-form :inline="true" :model="formData" class="demo-form-inline"> - <el-form-item label="���������������"> - <el-select v-model="formData.unitId" size="small" clearable placeholder="���������"> - <el-option - v-for="item in unitList" - :key="item.unitId" - :label="item.unitName" - :value="item.unitId" - /> - </el-select> + <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-form-item> - <el-form-item v-if="searchType==='reform'" label="���������������"> - <el-select v-model="formData.state" size="small" clearable placeholder="���������"> - <el-option - v-for="item in Dic.allocationApproveEnum" - :key="item.value" - :label="item.name" - :value="item.value" - /> - </el-select> + + <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-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-form-item> + + <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 placeholder="���������"> + <el-select + v-model="formData.polluteType" + size="small" + clearable + multiple + collapse-tags + placeholder="���������" + > <el-option v-for="item in polluteList" :key="item.dataKey" @@ -33,7 +67,12 @@ </el-select> </el-form-item> <el-form-item label="���������������"> - <el-select v-model="formData.investigationType" size="small" clearable placeholder="���������"> + <el-select + v-model="formData.investigationType" + size="small" + clearable + placeholder="���������" + > <el-option v-for="item in Dic.investigationEnum" :key="item.value" @@ -42,8 +81,14 @@ /> </el-select> </el-form-item> + <el-form-item label="���������������"> - <el-select v-model="formData.changeType" placeholder="���������" clearable size="small"> + <el-select + v-model="formData.changeType" + placeholder="���������" + clearable + size="small" + > <el-option v-for="item in Dic.changeEnum" :key="item.value" @@ -52,19 +97,33 @@ /> </el-select> </el-form-item> - <el-form-item label="���������������"> - <el-date-picker - v-model="valueTime" + <el-form-item label="���������������"> + <el-select + v-model="formData.state" + size="small" clearable - type="daterange" - value-format="yyyy-MM-dd" - range-separator="���" - start-placeholder="������������" - end-placeholder="������������" - /> + 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 v-if="searchType==='reform'" label="���������������"> - <el-select v-model="formData.isInvalid " placeholder="���������" clearable size="small"> + + <el-form-item label="���������������"> + <el-select + v-model="formData.isInvalid" + placeholder="���������" + clearable + size="small" + @change="replaceIsInvalid($event)" + > <el-option v-for="item in Dic.yesOrNo" :key="item.value" @@ -73,19 +132,15 @@ /> </el-select> </el-form-item> - <el-form-item v-if="searchType==='delay'" label="���������������"> - <el-select v-model="formData.state" placeholder="���������" clearable size="small"> - <el-option - v-for="item in Dic.allocationExtensionApproveEnum" - :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 v-if="searchType==='reform'" 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> @@ -95,11 +150,15 @@ <script> export default { props: { - searchType: { type: String, default: '' } + searchType: { type: String, default: '' }, + initializationData: { type: Object, default: () => {} } }, - data() { + data () { return { - formData: {}, + formData: { + isInvalid: null, + state: [9, 20, 30] + }, unitList: [], Dic: JSON.parse(localStorage.getItem('dict')), polluteList: [], @@ -108,37 +167,79 @@ } }, - created() { + created () { this.getUnitList() + this.formData.isInvalid = 0 this.getContaminateList() - console.log('searchType', this.searchType) + 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 + }).then(res => { + this.unitList = this.removeEmptyArrays(res.data) }) }, - getContaminateList() { + getContaminateList () { this.$request({ url: '/allocation/contaminate', method: 'get' - }).then((res) => { + }).then(res => { this.polluteList = res.data }) }, - onSubmit() { - if (this.valueTime.length > 0) { - this.formData.endTime = this.valueTime[1] - this.formData.startTime = this.valueTime[0] - } + replaceIsInvalid (val) { + this.formData.isInvalid = val + this.$forceUpdate() + }, + replacePerChange (val) { + this.$forceUpdate() + }, + onSubmit () { + console.log('formData', this.formData) this.$emit('handleSearch', this.formData) }, - handleAdd() { + handleAdd () { this.$emit('handleAdd', '12122') } } @@ -147,10 +248,20 @@ <style scoped lang="scss"> .search-form { - margin: 20px; - - /deep/.el-select { - width: 120px; - } + margin: 20px; + margin-bottom: 0px; + /deep/ .el-input__suffix { + right: 20; + } + /deep/ .el-form-item__content { + width: 214px; + } } +/deep/.el-form-item__label { + font-size: 16px; +} +/deep/.el-form-item { + margin-bottom: 5px; +} + </style> -- Gitblit v1.8.0