quanyawei
2024-09-06 43bd29ccb06c689327edd88cf32be659c9abc0a5
src/views/toCarryOutLegislativeReforms/delay/componets/queryForm.vue
@@ -1,9 +1,18 @@
<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="开始时间:">
@@ -15,7 +24,6 @@
            type="date"
            placeholder="开始日期"
          />
        </el-form-item>
        <el-form-item label="结束时间:">
          <el-date-picker
@@ -28,18 +36,25 @@
          />
        </el-form-item>
        <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-item
          label="责任主体:"
        >
          <el-cascader
            size="small"
            collapse-tags
            :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
            placeholder="请选择"
          >
            <el-option
              v-for="item in polluteList"
              :key="item.dataKey"
@@ -49,7 +64,12 @@
          </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"
@@ -59,7 +79,12 @@
          </el-select>
        </el-form-item>
        <el-form-item label="审批状态:">
          <el-select v-model="formData.state" placeholder="请选择" clearable size="small">
          <el-select
            v-model="formData.state"
            placeholder="请选择"
            clearable
            size="small"
          >
            <el-option
              v-for="item in Dic.allocationExtensionApproveEnum"
              :key="item.value"
@@ -69,8 +94,21 @@
          </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
            v-if="searchType==='reform'"
            type="primary"
            size="small"
            @click="handleAdd"
          >
            新建
          </el-button>
        </el-form-item>
      </el-form>
    </div>
@@ -82,7 +120,7 @@
  props: {
    searchType: { type: String, default: '' }
  },
  data() {
  data () {
    return {
      formData: {},
      unitList: [],
@@ -93,22 +131,46 @@
    }
  },
  created() {
  created () {
    this.getUnitList()
    this.getContaminateList()
    console.log('searchType', this.searchType)
  },
  methods: {
    // 获取责任单位list
    getUnitList() {
    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/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'
@@ -116,10 +178,10 @@
        this.polluteList = res.data
      })
    },
    onSubmit() {
    onSubmit () {
      this.$emit('handleSearch', this.formData)
    },
    handleAdd() {
    handleAdd () {
      this.$emit('handleAdd', '12122')
    }
  }