| | |
| | | <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="开始时间:"> |
| | |
| | | type="date" |
| | | placeholder="开始日期" |
| | | /> |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="结束时间:"> |
| | | <el-date-picker |
| | |
| | | placeholder="结束时间" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="责任主体:" class="rddd"> |
| | | <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-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" |
| | |
| | | </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" |
| | |
| | | </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" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="流程状态:"> |
| | | <el-select v-model="formData.state" size="small" clearable placeholder="请选择"> |
| | | <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" |
| | |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="是否作废:"> |
| | | <el-select v-model="formData.isInvalid " placeholder="请选择" clearable size="small"> |
| | | <el-select |
| | | v-model="formData.isInvalid" |
| | | placeholder="请选择" |
| | | clearable |
| | | size="small" |
| | | @change="replaceIsInvalid($event)" |
| | | > |
| | | <el-option |
| | | v-for="item in Dic.yesOrNo" |
| | | :key="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> |
| | |
| | | <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: [], |
| | | Dic: JSON.parse(localStorage.getItem('dict')), |
| | |
| | | } |
| | | }, |
| | | |
| | | 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') |
| | | } |
| | | } |
| | |
| | | |
| | | <style scoped lang="scss"> |
| | | .search-form { |
| | | margin: 20px; |
| | | margin-bottom: 0px; |
| | | /deep/ .el-input__suffix{ |
| | | right: 20; |
| | | } |
| | | /deep/ .el-form-item__content{ |
| | | width: auto; |
| | | } |
| | | margin: 20px; |
| | | margin-bottom: 0px; |
| | | /deep/ .el-input__suffix { |
| | | right: 20; |
| | | } |
| | | /deep/ .el-form-item__content { |
| | | width: 214px; |
| | | } |
| | | } |
| | | /deep/.el-form-item__label{ |
| | | /deep/.el-form-item__label { |
| | | font-size: 16px; |
| | | } |
| | | /deep/.el-form-item{ |
| | | /deep/.el-form-item { |
| | | margin-bottom: 5px; |
| | | } |
| | | |
| | | </style> |