From 43bd29ccb06c689327edd88cf32be659c9abc0a5 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Fri, 06 Sep 2024 11:15:25 +0800
Subject: [PATCH] fix: 责任单位修改

---
 src/views/toCarryOutLegislativeReforms/components/queryForm.vue      |  179 +++++++++++++--
 src/views/toCarryOutLegislativeReforms/delay/componets/queryForm.vue |  114 ++++++++--
 src/views/toCarryOutLegislativeReforms/summaryPage/index.vue         |  361 ++++++++++++++++++++++++++------
 3 files changed, 530 insertions(+), 124 deletions(-)

diff --git a/src/views/toCarryOutLegislativeReforms/components/queryForm.vue b/src/views/toCarryOutLegislativeReforms/components/queryForm.vue
index 0b5c744..60c83b3 100644
--- a/src/views/toCarryOutLegislativeReforms/components/queryForm.vue
+++ b/src/views/toCarryOutLegislativeReforms/components/queryForm.vue
@@ -1,52 +1,145 @@
 <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="replaceIsInvalid($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="onSubmit"
+          >
+            ������
+          </el-button>
           <!-- <el-button type="primary" size="small" @click="handleAdd">������</el-button> -->
         </el-form-item>
       </el-form>
@@ -59,7 +152,7 @@
   props: {
     searchType: { type: String, default: '' }
   },
-  data() {
+  data () {
     return {
       formData: {
         isInvalid: null,
@@ -73,22 +166,45 @@
     }
   },
 
-  created() {
+  created () {
     this.getUnitList()
     this.formData.isInvalid = 0
     this.getContaminateList()
   },
   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'
@@ -96,18 +212,18 @@
         this.polluteList = res.data
       })
     },
-    replaceIsInvalid(val) {
+    replaceIsInvalid (val) {
       this.formData.isInvalid = val
       this.$forceUpdate()
     },
-    replacePerChange(val) {
+    replacePerChange (val) {
       this.$forceUpdate()
     },
-    onSubmit() {
+    onSubmit () {
       console.log('formData', this.formData)
       this.$emit('handleSearch', this.formData)
     },
-    handleAdd() {
+    handleAdd () {
       this.$emit('handleAdd', '12122')
     }
   }
@@ -122,7 +238,7 @@
     right: 20;
   }
   /deep/ .el-form-item__content {
-    width: auto;
+    width: 214px;
   }
 }
 /deep/.el-form-item__label {
@@ -131,4 +247,5 @@
 /deep/.el-form-item {
   margin-bottom: 5px;
 }
+
 </style>
diff --git a/src/views/toCarryOutLegislativeReforms/delay/componets/queryForm.vue b/src/views/toCarryOutLegislativeReforms/delay/componets/queryForm.vue
index 7f99c37..1a88c49 100644
--- a/src/views/toCarryOutLegislativeReforms/delay/componets/queryForm.vue
+++ b/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')
     }
   }
diff --git a/src/views/toCarryOutLegislativeReforms/summaryPage/index.vue b/src/views/toCarryOutLegislativeReforms/summaryPage/index.vue
index 31f4d67..a8d8b97 100644
--- a/src/views/toCarryOutLegislativeReforms/summaryPage/index.vue
+++ b/src/views/toCarryOutLegislativeReforms/summaryPage/index.vue
@@ -1,7 +1,11 @@
 <template>
   <div class="main">
     <div class="timeSelect">
-      <el-radio-group v-model="searchForm.number" style="margin-left:20px" @input="changeNumber('timeMouted')">
+      <el-radio-group
+        v-model="searchForm.number"
+        style="margin-left:20px"
+        @input="changeNumber('timeMouted')"
+      >
         <el-radio-button label="1">
           ���1������
         </el-radio-button>
@@ -18,7 +22,24 @@
           ���12������
         </el-radio-button>
       </el-radio-group>
-      <el-date-picker v-model="timeInterval" el-time-picker type="daterange" value-format="yyyy-MM-dd" range-separator="���" start-placeholder="������������" end-placeholder="������������" @change="changeNumber('timeValue')" />
+      <el-date-picker
+        v-model="timeInterval"
+        el-time-picker
+        type="daterange"
+        value-format="yyyy-MM-dd"
+        range-separator="���"
+        start-placeholder="������������"
+        end-placeholder="������������"
+        @change="changeNumber('timeValue')"
+      />
+      <el-cascader
+        collapse-tags
+        placeholder="������������"
+        :show-all-levels="false"
+        :options="unitList"
+        :props="{ multiple: true, value:'unitId',label:'unitName',children:'children'}"
+        @change="changeUid"
+      />
     </div>
     <div class="agentSummary">
       <div class="circle">
@@ -39,69 +60,232 @@
       </div>
     </div>
     <div class="overviewAndDetails">
-      <el-tabs v-model="activeName" @tab-click="handleClick">
-        <el-tab-pane label="������" name="first">
+      <el-tabs
+        v-model="activeName"
+        @tab-click="handleClick"
+      >
+        <el-tab-pane
+          label="������"
+          name="first"
+        >
           <div class="tit">
             <span>
               ���������������������������
             </span>
-            <el-button type="primary" plain size="small" style="float: right;" @click="ecxport">
+            <el-button
+              type="primary"
+              plain
+              size="small"
+              style="float: right;"
+              @click="ecxport"
+            >
               ������
             </el-button>
           </div>
           <div>
             <div class="min">
-              <div class="tab" style="display: inline-block; width: 100%">
-                <el-table :data="tableData" class="topTable" border style="width: 100%" :header-cell-style="{
+              <div
+                class="tab"
+                style="display: inline-block; width: 100%"
+              >
+                <el-table
+                  :data="tableData"
+                  class="topTable"
+                  border
+                  style="width: 100%"
+                  :header-cell-style="{
                     background: '#99D4FF', color: '#101111', fontSize: '16px'
-                  }">
-                  <el-table-column align="center" type="index" width="60" label="������" />
-                  <el-table-column align="center" prop="unitName" label="������������" />
-                  <el-table-column align="center" prop="total" label="���������" />
-                  <el-table-column align="center" prop="number" label="���������" />
-                  <el-table-column align="center" prop="unNumber" label="���������" />
-                  <el-table-column align="center" prop="rate" label="���������" />
-                  <el-table-column align="center" prop="deduction" label="������" />
-                  <el-table-column align="center" prop="marks" label="������" />
-                  <el-table-column align="center" prop="totalPoints" label="���������" />
+                  }"
+                >
+                  <el-table-column
+                    align="center"
+                    type="index"
+                    width="60"
+                    label="������"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="unitName"
+                    label="������������"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="total"
+                    label="���������"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="number"
+                    label="���������"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="unNumber"
+                    label="���������"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="rate"
+                    label="���������"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="deduction"
+                    label="������"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="marks"
+                    label="������"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="totalPoints"
+                    label="���������"
+                  />
                 </el-table>
-                <vueSeamless v-if="tableData.length>5" ref="scroll3" :data="tableData" :pause="true" class="seamless-warp" style="width: 100%;" :class-option="classOption">
-                  <el-table v-if="tableData.length>0" :data="tableData" class="bottomTable" border style="width: 100%;margin-bottom:50px">
-                    <el-table-column align="center" type="index" width="60" />
-                    <el-table-column align="center" prop="unitName" label="������������" />
-                    <el-table-column align="center" prop="total" label="���������" />
-                    <el-table-column align="center" prop="number" label="���������" />
-                    <el-table-column align="center" prop="unNumber" label="���������" />
-                    <el-table-column align="center" prop="rate" label="���������" />
-                    <el-table-column align="center" prop="deduction" label="������" />
-                    <el-table-column align="center" prop="marks" label="������" />
-                    <el-table-column align="center" prop="totalPoints" label="���������" />
+                <vueSeamless
+                  v-if="tableData.length>5"
+                  ref="scroll3"
+                  :data="tableData"
+                  :pause="true"
+                  class="seamless-warp"
+                  style="width: 100%;"
+                  :class-option="classOption"
+                >
+                  <el-table
+                    v-if="tableData.length>0"
+                    :data="tableData"
+                    class="bottomTable"
+                    border
+                    style="width: 100%;margin-bottom:50px"
+                  >
+                    <el-table-column
+                      align="center"
+                      type="index"
+                      width="60"
+                    />
+                    <el-table-column
+                      align="center"
+                      prop="unitName"
+                      label="������������"
+                    />
+                    <el-table-column
+                      align="center"
+                      prop="total"
+                      label="���������"
+                    />
+                    <el-table-column
+                      align="center"
+                      prop="number"
+                      label="���������"
+                    />
+                    <el-table-column
+                      align="center"
+                      prop="unNumber"
+                      label="���������"
+                    />
+                    <el-table-column
+                      align="center"
+                      prop="rate"
+                      label="���������"
+                    />
+                    <el-table-column
+                      align="center"
+                      prop="deduction"
+                      label="������"
+                    />
+                    <el-table-column
+                      align="center"
+                      prop="marks"
+                      label="������"
+                    />
+                    <el-table-column
+                      align="center"
+                      prop="totalPoints"
+                      label="���������"
+                    />
                   </el-table>
                 </vueSeamless>
-                <el-table v-else :data="tableData" class="bottomTable" border style="width: 100%;margin-bottom:50px">
-                  <el-table-column align="center" type="index" width="60" />
-                  <el-table-column align="center" prop="unitName" label="������������" />
-                  <el-table-column align="center" prop="total" label="���������" />
-                  <el-table-column align="center" prop="number" label="���������" />
-                  <el-table-column align="center" prop="unNumber" label="���������" />
-                  <el-table-column align="center" prop="rate" label="���������" />
-                  <el-table-column align="center" prop="deduction" label="������" />
-                  <el-table-column align="center" prop="marks" label="������" />
-                  <el-table-column align="center" prop="totalPoints" label="���������" />
+                <el-table
+                  v-else
+                  :data="tableData"
+                  class="bottomTable"
+                  border
+                  style="width: 100%;margin-bottom:50px"
+                >
+                  <el-table-column
+                    align="center"
+                    type="index"
+                    width="60"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="unitName"
+                    label="������������"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="total"
+                    label="���������"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="number"
+                    label="���������"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="unNumber"
+                    label="���������"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="rate"
+                    label="���������"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="deduction"
+                    label="������"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="marks"
+                    label="������"
+                  />
+                  <el-table-column
+                    align="center"
+                    prop="totalPoints"
+                    label="���������"
+                  />
                 </el-table>
               </div>
             </div>
           </div>
         </el-tab-pane>
-        <el-tab-pane label="������" name="second">
+        <el-tab-pane
+          label="������"
+          name="second"
+        >
           <div>
             <div>
-              <p style="text-align: center;">
+              <!-- <p style="text-align: center;">
                 ���������������
-                <el-select v-model="unitId" size="small" placeholder="���������" @change="changeUnitId">
-                  <el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" />
+                <el-select
+                  v-model="unitId"
+                  size="small"
+                  placeholder="���������"
+                  @change="changeUnitId"
+                >
+                  <el-option
+                    v-for="item in unitList"
+                    :key="item.unitId"
+                    :label="item.unitName"
+                    :value="item.unitId"
+                  />
                 </el-select>
-              </p>
+              </p> -->
             </div>
             <div class="chartsTitle">
               <p>������������</p>
@@ -109,10 +293,18 @@
             </div>
             <div class="caets">
               <div>
-                <pollutionClassificationEcharts v-if="activeName === 'second'" ref="leftEcharts" :chart-data="chartData" />
+                <pollutionClassificationEcharts
+                  v-if="activeName === 'second'"
+                  ref="leftEcharts"
+                  :chart-data="chartData"
+                />
               </div>
               <div>
-                <reportTypeEcharts v-if="activeName === 'second'" ref="rightEcharts" :cylindricality-data="cylindricalityData" />
+                <reportTypeEcharts
+                  v-if="activeName === 'second'"
+                  ref="rightEcharts"
+                  :cylindricality-data="cylindricalityData"
+                />
               </div>
             </div>
           </div>
@@ -132,7 +324,7 @@
     pollutionClassificationEcharts,
     reportTypeEcharts
   },
-  data() {
+  data () {
     return {
       mount: '',
       timeInterval: [],
@@ -155,23 +347,57 @@
       },
       chartData: [],
       cylindricalityData: [],
-      tableDataTotal: 0
+      tableDataTotal: 0,
+      unitIdlist: []
     }
   },
   computed: {
-    classOption() {
+    classOption () {
       let data = this.loadMore()
       console.log('return ', data)
       return data
     }
   },
-  created() {
+  created () {
     this.getUnitList()
     this.getContaminateList()
     this.handleSearch()
   },
   methods: {
-    loadMore() {
+    changeUid (val) {
+      this.unitIdlist = this.uniqueArrayReduce(val)
+      this.handleSearch()
+    },
+    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)
+      })
+    },
+    loadMore () {
       let data = {}
       if (this.tableDataTotal > 5) {
         data = {
@@ -197,7 +423,7 @@
       console.log('data', data)
       return data
     },
-    ecxport() {
+    ecxport () {
       this.$request({
         url: '/allocation/unitExel',
         method: 'get',
@@ -211,7 +437,7 @@
         this.getOutExcel('������������������.xlsx', res)
       })
     },
-    getOutExcel(fileName, res) {
+    getOutExcel (fileName, res) {
       const blob = new Blob([res], { type: 'application/x-xls' })
       if (window.navigator.msSaveOrOpenBlob) {
         // ������ IE & EDGE
@@ -230,13 +456,13 @@
         url.revokeObjectURL(link.href)
       }
     },
-    unitIdFormatter(val) {
+    unitIdFormatter (val) {
       const data = this.unitList.find(
         item => item && item.unitId === val.unitId
       )
       return data ? data.unitName : ''
     },
-    changeNumber(val) {
+    changeNumber (val) {
       if (val === 'timeValue') {
         this.searchForm.number = null
       } else {
@@ -244,10 +470,10 @@
       }
       this.handleSearch()
     },
-    handleClick(tab, event) {
+    handleClick (tab, event) {
       console.log(tab)
     },
-    changeUnitId() {
+    changeUnitId () {
       this.$request({
         url: '/allocation/selectUnitView',
         method: 'get',
@@ -268,13 +494,14 @@
         }
       })
     },
-    handleSearch() {
+    handleSearch () {
       this.$request({
         url: '/allocation/selectUnitView',
         method: 'get',
         params: {
           startTime: this.timeInterval[0],
           endTime: this.timeInterval[1],
+          unitId: this.unitIdlist.join(','),
           number: Number(this.searchForm.number)
         }
       }).then(res => {
@@ -290,16 +517,16 @@
       })
     },
     // ������������������list
-    getUnitList() {
-      this.$request({
-        url: '/allocation/unit',
-        method: 'get'
-      }).then(res => {
-        this.unitList = res.data
-        console.log(' JSON.stringify(this.unitList)', this.unitList)
-      })
-    },
-    getContaminateList() {
+    // getUnitList () {
+    //   this.$request({
+    //     url: '/allocation/unit',
+    //     method: 'get'
+    //   }).then(res => {
+    //     this.unitList = res.data
+    //     console.log(' JSON.stringify(this.unitList)', this.unitList)
+    //   })
+    // },
+    getContaminateList () {
       this.$request({
         url: '/allocation/contaminate',
         method: 'get'

--
Gitblit v1.8.0