<template>
|
<div>
|
<div class="search-form">
|
<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 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
|
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>
|
</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>
|
</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>
|
</el-form-item>
|
|
<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"
|
: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-form-item>
|
</el-form>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
export default {
|
props: {
|
searchType: { type: String, default: '' },
|
initializationData: { type: Object, default: () => {} }
|
},
|
data () {
|
return {
|
formData: {
|
isInvalid: null,
|
state: [9, 20, 30]
|
},
|
unitList: [],
|
Dic: JSON.parse(localStorage.getItem('dict')),
|
polluteList: [],
|
valueTime: [],
|
isReform: false
|
}
|
},
|
|
created () {
|
this.getUnitList()
|
this.formData.isInvalid = 0
|
this.getContaminateList()
|
if (Object.entries(this.initializationData).length !== 0) {
|
this.$set(this.formData, 'startTime', this.initializationData.startTime)
|
this.$set(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.$set(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 () {
|
this.$request({
|
url: '/allocation/unitQuery',
|
method: 'get'
|
}).then(res => {
|
this.unitList = this.removeEmptyArrays(res.data)
|
})
|
},
|
getContaminateList () {
|
this.$request({
|
url: '/allocation/contaminate',
|
method: 'get'
|
}).then(res => {
|
this.polluteList = res.data
|
})
|
},
|
replaceIsInvalid (val) {
|
this.formData.isInvalid = val
|
this.$forceUpdate()
|
},
|
replacePerChange (val) {
|
this.$forceUpdate()
|
},
|
onSubmit () {
|
console.log('formData', this.formData)
|
this.$emit('handleSearch', this.formData)
|
},
|
handleAdd () {
|
this.$emit('handleAdd', '12122')
|
}
|
}
|
}
|
</script>
|
|
<style scoped lang="scss">
|
.search-form {
|
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>
|