Explorar el Código

1.机器设备作价新增筛选条件型号、购置日期、启用日期

GouGengquan hace 7 meses
padre
commit
fa94f21ad2
Se han modificado 1 ficheros con 315 adiciones y 13 borrados
  1. 315 13
      src/views/assets/workbench/calculate/importInfo.vue

+ 315 - 13
src/views/assets/workbench/calculate/importInfo.vue

@@ -67,12 +67,12 @@
                         <span>设备名称</span>
                         <el-popover trigger="click" placement="top" :width="200" :hide-after="0">
                             <el-checkbox-group v-model="eqptNameFilterArr" style="overflow: auto;height: 300px">
-                                <el-input size="small" v-model="equipmentName" placeholder="输入后回车搜索" @change="getEqptTableFilter('equipmentName')" style="margin-bottom:5px"/>
+                                <el-input size="small" v-model="equipmentName" placeholder="输入后回车搜索" @change="getEqptTableFilter('equipmentName', null)" style="margin-bottom:5px"/>
                                 <el-checkbox v-for="equipmentName in equipmentNameFilters" style="display:block;"
                                     :label="equipmentName" :value="equipmentName" size="small" />
                             </el-checkbox-group>
                             <div style="text-align: center; margin: 0">
-                                <el-button size="small" text @click="eqptNameFilterArr = [], eqptDataQuery.eqptNameFilter = null">重置</el-button>
+                                <el-button size="small" text @click="eqptNameFilterArr = [], eqptDataQuery.eqptNameFilters = null">重置</el-button>
                                 <el-button size="small" type="primary" @click="getEqptDataPage()">筛选</el-button>
                             </div>
                             <template #reference>
@@ -102,6 +102,27 @@
                     </template>
                 </el-table-column>
                 <el-table-column prop="model" label="型号规格" width="250" align="center">
+                    <template #header>
+                        <span>型号规格</span>
+                        <el-popover trigger="click" placement="top" :width="200" :hide-after="0">
+                            <el-checkbox-group v-model="eqptModelFilterArr" style="overflow: auto;height: 300px">
+                                <el-input size="small" v-model="equipmentModel" placeholder="输入后回车搜索" @change="getEqptTableFilter('model', null)" style="margin-bottom:5px"/>
+                                <el-checkbox v-for="item in equipmentModelFilters" style="display:block;"
+                                    :label="item" :value="item" size="small" />
+                            </el-checkbox-group>
+                            <div style="text-align: center; margin: 0">
+                                <el-button size="small" text @click="eqptModelFilterArr = [], eqptDataQuery.modelFilters = null">重置</el-button>
+                                <el-button size="small" type="primary" @click="getEqptDataPage()">筛选</el-button>
+                            </div>
+                            <template #reference>
+                                <div style="display: inline-block">
+                                    <el-button link><el-icon>
+                                            <ArrowDown />
+                                        </el-icon></el-button>
+                                </div>
+                            </template>
+                        </el-popover>
+                    </template>
                     <template #default="{ row }">
                         <el-form-item prop="model">
                             <el-form :model="row" @submit.native.prevent>
@@ -111,19 +132,61 @@
                     </template>
                 </el-table-column>
                 <el-table-column prop="purchaseDate" label="购买日期" width="150" align="center">
+                    <template #header>
+                        <span>购买日期</span>
+                        <el-popover trigger="click" placement="top" :width="200" :hide-after="0">
+                            <el-checkbox-group v-model="eqptPurchaseDateFilterArr" style="overflow: auto;height: 300px">
+                                <el-input size="small" v-model="equipmentPurchaseDate" placeholder="输入后回车搜索" @change="getEqptTableFilter('purchaseDate', null)" style="margin-bottom:5px"/>
+                                <el-checkbox v-for="item in equipmenPurchaseDateFilters" style="display:block;"
+                                    :label="item" :value="item" size="small" />
+                            </el-checkbox-group>
+                            <div style="text-align: center; margin: 0">
+                                <el-button size="small" text @click="eqptPurchaseDateFilterArr = [], eqptDataQuery.purchaseDateFilters = null">重置</el-button>
+                                <el-button size="small" type="primary" @click="getEqptDataPage()">筛选</el-button>
+                            </div>
+                            <template #reference>
+                                <div style="display: inline-block">
+                                    <el-button link><el-icon>
+                                            <ArrowDown />
+                                        </el-icon></el-button>
+                                </div>
+                            </template>
+                        </el-popover>
+                    </template>
                     <template #default="{ row }">
                         <el-form-item prop="purchaseDate">
                             <el-form :model="row" @submit.native.prevent>
-                                <el-input v-model="row.purchaseDate" placeholder="请输入购买日期" />
+                                <el-input v-model="row.purchaseDate" placeholder="购买日期" />
                             </el-form>
                         </el-form-item>
                     </template>
                 </el-table-column>
                 <el-table-column prop="activationDate" label="启用日期" width="150" align="center">
+                    <template #header>
+                        <span>启用日期</span>
+                        <el-popover trigger="click" placement="top" :width="200" :hide-after="0">
+                            <el-checkbox-group v-model="eqptActivationDateFilterArr" style="overflow: auto;height: 300px">
+                                <el-input size="small" v-model="equipmentActivationDate" placeholder="输入后回车搜索" @change="getEqptTableFilter('activationDate', null)" style="margin-bottom:5px"/>
+                                <el-checkbox v-for="item in equipmentActivationDateFilters" style="display:block;"
+                                    :label="item" :value="item" size="small" />
+                            </el-checkbox-group>
+                            <div style="text-align: center; margin: 0">
+                                <el-button size="small" text @click="eqptActivationDateFilterArr = [], eqptDataQuery.activationDateFilters = null">重置</el-button>
+                                <el-button size="small" type="primary" @click="getEqptDataPage()">筛选</el-button>
+                            </div>
+                            <template #reference>
+                                <div style="display: inline-block">
+                                    <el-button link><el-icon>
+                                            <ArrowDown />
+                                        </el-icon></el-button>
+                                </div>
+                            </template>
+                        </el-popover>
+                    </template>
                     <template #default="{ row }">
                         <el-form-item prop="activationDate">
                             <el-form :model="row" @submit.native.prevent>
-                                <el-input v-model="row.activationDate" placeholder="请输入启用日期" />
+                                <el-input v-model="row.activationDate" placeholder="启用日期" />
                             </el-form>
                         </el-form-item>
                     </template>
@@ -461,6 +524,27 @@
                     </template>
                 </el-table-column>
                 <el-table-column prop="equipmentName" label="设备名称" width="250">
+                    <template #header>
+                        <span>设备名称</span>
+                        <el-popover trigger="click" placement="top" :width="200" :hide-after="0">
+                            <el-checkbox-group v-model="eqptNameFilterArr" style="overflow: auto;height: 300px">
+                                <el-input size="small" v-model="equipmentName" placeholder="输入后回车搜索" @change="getEqptTableFilter('equipmentName', '进口设备')" style="margin-bottom:5px"/>
+                                <el-checkbox v-for="equipmentName in equipmentNameFilters" style="display:block;"
+                                    :label="equipmentName" :value="equipmentName" size="small" />
+                            </el-checkbox-group>
+                            <div style="text-align: center; margin: 0">
+                                <el-button size="small" text @click="eqptNameFilterArr = [], eqptDataQuery.eqptNameFilters = null">重置</el-button>
+                                <el-button size="small" type="primary" @click="getImpEqptDataPage()">筛选</el-button>
+                            </div>
+                            <template #reference>
+                                <div style="display: inline-block">
+                                    <el-button link><el-icon>
+                                            <ArrowDown />
+                                        </el-icon></el-button>
+                                </div>
+                            </template>
+                        </el-popover>
+                    </template>
                     <template #default="{ row }">
                         <el-form-item prop="equipmentName">
                             <el-form :model="row" @submit.native.prevent>
@@ -470,6 +554,27 @@
                     </template>
                 </el-table-column>
                 <el-table-column prop="model" label="规格型号" width="250">
+                    <template #header>
+                        <span>规格型号</span>
+                        <el-popover trigger="click" placement="top" :width="200" :hide-after="0">
+                            <el-checkbox-group v-model="eqptModelFilterArr" style="overflow: auto;height: 300px">
+                                <el-input size="small" v-model="equipmentModel" placeholder="输入后回车搜索" @change="getEqptTableFilter('model', '进口设备')" style="margin-bottom:5px"/>
+                                <el-checkbox v-for="item in equipmentModelFilters" style="display:block;"
+                                    :label="item" :value="item" size="small" />
+                            </el-checkbox-group>
+                            <div style="text-align: center; margin: 0">
+                                <el-button size="small" text @click="eqptModelFilterArr = [], eqptDataQuery.modelFilters = null">重置</el-button>
+                                <el-button size="small" type="primary" @click="getImpEqptDataPage()">筛选</el-button>
+                            </div>
+                            <template #reference>
+                                <div style="display: inline-block">
+                                    <el-button link><el-icon>
+                                            <ArrowDown />
+                                        </el-icon></el-button>
+                                </div>
+                            </template>
+                        </el-popover>
+                    </template>
                     <template #default="{ row }">
                         <el-form-item prop="model">
                             <el-form :model="row" @submit.native.prevent>
@@ -506,6 +611,27 @@
                     </template>
                 </el-table-column>
                 <el-table-column prop="purchaseDate" label="购置日期" width="150">
+                    <template #header>
+                        <span>购置日期</span>
+                        <el-popover trigger="click" placement="top" :width="200" :hide-after="0">
+                            <el-checkbox-group v-model="eqptPurchaseDateFilterArr" style="overflow: auto;height: 300px">
+                                <el-input size="small" v-model="equipmentPurchaseDate" placeholder="输入后回车搜索" @change="getEqptTableFilter('purchaseDate', '进口设备')" style="margin-bottom:5px"/>
+                                <el-checkbox v-for="item in equipmenPurchaseDateFilters" style="display:block;"
+                                    :label="item" :value="item" size="small" />
+                            </el-checkbox-group>
+                            <div style="text-align: center; margin: 0">
+                                <el-button size="small" text @click="eqptPurchaseDateFilterArr = [], eqptDataQuery.purchaseDateFilters = null">重置</el-button>
+                                <el-button size="small" type="primary" @click="getImpEqptDataPage()">筛选</el-button>
+                            </div>
+                            <template #reference>
+                                <div style="display: inline-block">
+                                    <el-button link><el-icon>
+                                            <ArrowDown />
+                                        </el-icon></el-button>
+                                </div>
+                            </template>
+                        </el-popover>
+                    </template>
                     <template #default="{ row }">
                         <el-form-item prop="purchaseDate">
                             <el-form :model="row" @submit.native.prevent>
@@ -515,6 +641,27 @@
                     </template>
                 </el-table-column>
                 <el-table-column prop="activationDate" label="启用日期" width="150">
+                    <template #header>
+                        <span>启用日期</span>
+                        <el-popover trigger="click" placement="top" :width="200" :hide-after="0">
+                            <el-checkbox-group v-model="eqptActivationDateFilterArr" style="overflow: auto;height: 300px">
+                                <el-input size="small" v-model="equipmentActivationDate" placeholder="输入后回车搜索" @change="getEqptTableFilter('activationDate', '进口设备')" style="margin-bottom:5px"/>
+                                <el-checkbox v-for="item in equipmentActivationDateFilters" style="display:block;"
+                                    :label="item" :value="item" size="small" />
+                            </el-checkbox-group>
+                            <div style="text-align: center; margin: 0">
+                                <el-button size="small" text @click="eqptActivationDateFilterArr = [], eqptDataQuery.activationDateFilters = null">重置</el-button>
+                                <el-button size="small" type="primary" @click="getImpEqptDataPage()">筛选</el-button>
+                            </div>
+                            <template #reference>
+                                <div style="display: inline-block">
+                                    <el-button link><el-icon>
+                                            <ArrowDown />
+                                        </el-icon></el-button>
+                                </div>
+                            </template>
+                        </el-popover>
+                    </template>
                     <template #default="{ row }">
                         <el-form-item prop="activationDate">
                             <el-form :model="row" @submit.native.prevent>
@@ -734,6 +881,27 @@
                     </template>
                 </el-table-column>
                 <el-table-column prop="equipmentName" label="设备名称" width="250">
+                    <template #header>
+                        <span>设备名称</span>
+                        <el-popover trigger="click" placement="top" :width="200" :hide-after="0">
+                            <el-checkbox-group v-model="eqptNameFilterArr" style="overflow: auto;height: 300px">
+                                <el-input size="small" v-model="equipmentName" placeholder="输入后回车搜索" @change="getEqptTableFilter('equipmentName', '非标设备')" style="margin-bottom:5px"/>
+                                <el-checkbox v-for="equipmentName in equipmentNameFilters" style="display:block;"
+                                    :label="equipmentName" :value="equipmentName" size="small" />
+                            </el-checkbox-group>
+                            <div style="text-align: center; margin: 0">
+                                <el-button size="small" text @click="eqptNameFilterArr = [], eqptDataQuery.eqptNameFilters = null">重置</el-button>
+                                <el-button size="small" type="primary" @click="getNonSEqptDataPage()">筛选</el-button>
+                            </div>
+                            <template #reference>
+                                <div style="display: inline-block">
+                                    <el-button link><el-icon>
+                                            <ArrowDown />
+                                        </el-icon></el-button>
+                                </div>
+                            </template>
+                        </el-popover>
+                    </template>
                     <template #default="{ row }">
                         <el-form-item prop="equipmentName">
                             <el-form :model="row" @submit.native.prevent>
@@ -743,6 +911,27 @@
                     </template>
                 </el-table-column>
                 <el-table-column prop="model" label="规格型号" width="150">
+                    <template #header>
+                        <span>规格型号</span>
+                        <el-popover trigger="click" placement="top" :width="200" :hide-after="0">
+                            <el-checkbox-group v-model="eqptModelFilterArr" style="overflow: auto;height: 300px">
+                                <el-input size="small" v-model="equipmentModel" placeholder="输入后回车搜索" @change="getEqptTableFilter('model', '非标设备')" style="margin-bottom:5px"/>
+                                <el-checkbox v-for="item in equipmentModelFilters" style="display:block;"
+                                    :label="item" :value="item" size="small" />
+                            </el-checkbox-group>
+                            <div style="text-align: center; margin: 0">
+                                <el-button size="small" text @click="eqptModelFilterArr = [], eqptDataQuery.modelFilters = null">重置</el-button>
+                                <el-button size="small" type="primary" @click="getNonSEqptDataPage()">筛选</el-button>
+                            </div>
+                            <template #reference>
+                                <div style="display: inline-block">
+                                    <el-button link><el-icon>
+                                            <ArrowDown />
+                                        </el-icon></el-button>
+                                </div>
+                            </template>
+                        </el-popover>
+                    </template>
                     <template #default="{ row }">
                         <el-form-item prop="model">
                             <el-form :model="row" @submit.native.prevent>
@@ -788,6 +977,27 @@
                     </template>
                 </el-table-column>
                 <el-table-column prop="purchaseDate" label="购置日期" width="150">
+                    <template #header>
+                        <span>购置日期</span>
+                        <el-popover trigger="click" placement="top" :width="200" :hide-after="0">
+                            <el-checkbox-group v-model="eqptPurchaseDateFilterArr" style="overflow: auto;height: 300px">
+                                <el-input size="small" v-model="equipmentPurchaseDate" placeholder="输入后回车搜索" @change="getEqptTableFilter('purchaseDate', '非标设备')" style="margin-bottom:5px"/>
+                                <el-checkbox v-for="item in equipmenPurchaseDateFilters" style="display:block;"
+                                    :label="item" :value="item" size="small" />
+                            </el-checkbox-group>
+                            <div style="text-align: center; margin: 0">
+                                <el-button size="small" text @click="eqptPurchaseDateFilterArr = [], eqptDataQuery.purchaseDateFilters = null">重置</el-button>
+                                <el-button size="small" type="primary" @click="getNonSEqptDataPage()">筛选</el-button>
+                            </div>
+                            <template #reference>
+                                <div style="display: inline-block">
+                                    <el-button link><el-icon>
+                                            <ArrowDown />
+                                        </el-icon></el-button>
+                                </div>
+                            </template>
+                        </el-popover>
+                    </template>
                     <template #default="{ row }">
                         <el-form-item prop="purchaseDate">
                             <el-form :model="row" @submit.native.prevent>
@@ -797,6 +1007,27 @@
                     </template>
                 </el-table-column>
                 <el-table-column prop="activationDate" label="启用日期" width="150">
+                    <template #header>
+                        <span>启用日期</span>
+                        <el-popover trigger="click" placement="top" :width="200" :hide-after="0">
+                            <el-checkbox-group v-model="eqptActivationDateFilterArr" style="overflow: auto;height: 300px">
+                                <el-input size="small" v-model="equipmentActivationDate" placeholder="输入后回车搜索" @change="getEqptTableFilter('activationDate','非标设备')" style="margin-bottom:5px"/>
+                                <el-checkbox v-for="item in equipmentActivationDateFilters" style="display:block;"
+                                    :label="item" :value="item" size="small" />
+                            </el-checkbox-group>
+                            <div style="text-align: center; margin: 0">
+                                <el-button size="small" text @click="eqptActivationDateFilterArr = [], eqptDataQuery.activationDateFilters = null">重置</el-button>
+                                <el-button size="small" type="primary" @click="getNonSEqptDataPage()">筛选</el-button>
+                            </div>
+                            <template #reference>
+                                <div style="display: inline-block">
+                                    <el-button link><el-icon>
+                                            <ArrowDown />
+                                        </el-icon></el-button>
+                                </div>
+                            </template>
+                        </el-popover>
+                    </template>
                     <template #default="{ row }">
                         <el-form-item prop="activationDate">
                             <el-form :model="row" @submit.native.prevent>
@@ -983,7 +1214,10 @@ export default {
                 sortId: null,
                 equipmentName: null,
                 equipmentType: null,
-                eqptNameFilter: null
+                eqptNameFilters: null,
+                modelFilters: null,
+                purchaseDateFilters: null,
+                activationDateFilters: null
             },
             eqptPageData: [],
             eqptImpPageData: [],
@@ -992,9 +1226,26 @@ export default {
             eqptLifeIfrRefs: [],
             ppiOptions: [],
             eqptGnEvp: [],
+            // 设备名称过滤条件
             equipmentNameFilters: [],
             equipmentName: null,
-            eqptNameFilterArr: []
+            // 设备型号过滤条件
+            equipmentModelFilters: [],
+            equipmentModel: null,
+            // 设备购置日期过滤条件
+            equipmenPurchaseDateFilters: [],
+            equipmentPurchaseDate: null,
+            // 设备启用日期过滤条件
+            equipmentActivationDateFilters: [],
+            equipmentActivationDate: null,
+            // 设备名称查询条件
+            eqptNameFilterArr: [],
+            // 设备型号查询条件
+            eqptModelFilterArr: [],
+            // 设备购置日期查询条件
+            eqptPurchaseDateFilterArr: [],
+            // 设备启用日期查询条件
+            eqptActivationDateFilterArr: []
         }
     },
     computed: {
@@ -1004,7 +1255,7 @@ export default {
         this.getBaseInfo();
         this.getEqptDataPage();
         this.getPPI();
-        this.getEqptTableFilter('all');
+        this.getEqptTableFilter('all', null);
     },
     methods: {
         getDaysBetween,
@@ -1013,18 +1264,38 @@ export default {
                 current: 1,
                 size: 10,
                 pages: 1,
+                total: 1,
                 calculateId: null,
                 sortId: null,
                 equipmentName: null,
-                equipmentType: null
+                equipmentType: null,
+                eqptNameFilters: null,
+                modelFilters: null,
+                purchaseDateFilters: null,
+                activationDateFilters: null
             }
+            this.equipmentNameFilters = [];
+            this.equipmentName = null;
+            this.equipmentModelFilters = [];
+            this.equipmentModel = null;
+            this.equipmenPurchaseDateFilters = [];
+            this.equipmentPurchaseDate = null;
+            this.equipmentActivationDateFilters = [];
+            this.equipmentActivationDate = null;
+            this.eqptNameFilterArr = [];
+            this.eqptModelFilterArr = [];
+            this.eqptPurchaseDateFilterArr = [];
+            this.eqptActivationDateFilterArr = [];
             if (this.activeName === 'all') {
+                this.getEqptTableFilter('all', null);
                 this.getEqptDataPage();
             }
             if (this.activeName === 'imported') {
+                this.getEqptTableFilter('all', '进口设备');
                 this.getImpEqptDataPage();
             }
             if (this.activeName === 'nonStandard') {
+                this.getEqptTableFilter('all', '非标设备');
                 this.getNonSEqptDataPage();
             }
         },
@@ -1090,7 +1361,10 @@ export default {
         },
         // 分页查询导入的机器设备测算数据
         getEqptDataPage() {
-            this.eqptDataQuery.eqptNameFilter = this.eqptNameFilterArr.join();
+            this.eqptDataQuery.eqptNameFilters = this.eqptNameFilterArr.join();
+            this.eqptDataQuery.modelFilters = this.eqptModelFilterArr.join();
+            this.eqptDataQuery.purchaseDateFilters = this.eqptPurchaseDateFilterArr.join();
+            this.eqptDataQuery.activationDateFilters = this.eqptActivationDateFilterArr.join();
             this.eqptDataQuery.calculateId = this.projectStore.calculateProgress.id;
             getDataPage(this.eqptDataQuery).then(res => {
                 this.eqptDataQuery.pages = res.data.pages
@@ -1101,6 +1375,10 @@ export default {
         },
         // 分页查询进口设备信息
         getImpEqptDataPage() {
+            this.eqptDataQuery.eqptNameFilters = this.eqptNameFilterArr.join();
+            this.eqptDataQuery.modelFilters = this.eqptModelFilterArr.join();
+            this.eqptDataQuery.purchaseDateFilters = this.eqptPurchaseDateFilterArr.join();
+            this.eqptDataQuery.activationDateFilters = this.eqptActivationDateFilterArr.join();
             this.eqptDataQuery.calculateId = this.projectStore.calculateProgress.id;
             this.eqptDataQuery.equipmentType = '进口设备';
             getImpDataPage(this.eqptDataQuery).then(res => {
@@ -1110,6 +1388,10 @@ export default {
         },
         // 分页查询非标设备信息
         getNonSEqptDataPage() {
+            this.eqptDataQuery.eqptNameFilters = this.eqptNameFilterArr.join();
+            this.eqptDataQuery.modelFilters = this.eqptModelFilterArr.join();
+            this.eqptDataQuery.purchaseDateFilters = this.eqptPurchaseDateFilterArr.join();
+            this.eqptDataQuery.activationDateFilters = this.eqptActivationDateFilterArr.join();
             this.eqptDataQuery.calculateId = this.projectStore.calculateProgress.id;
             this.eqptDataQuery.equipmentType = '非标设备';
             getNonSDataPage(this.eqptDataQuery).then(res => {
@@ -1355,17 +1637,37 @@ export default {
                 }
             })
         },
-        getEqptTableFilter(queryType) {
+        // 获取表格过滤条件
+        getEqptTableFilter(queryType, eqptType) {
             let params = {
                 calculateId: this.projectStore.calculateProgress.id,
                 equipmentName: this.equipmentName,
-                queryType: queryType
+                model: this.equipmentModel,
+                purchaseDate: this.equipmentPurchaseDate,
+                activationDate: this.equipmentActivationDate,
+                queryType: queryType,
+                eqptType: eqptType
             }
             getEqptTableFilterVO(params).then(res => {
-                if (res.data) {
+                if (res.data.equipmentNameFilters) {
                     this.equipmentNameFilters = res.data.equipmentNameFilters;
                     this.eqptNameFilterArr = [];
-                    this.eqptDataQuery.eqptNameFilter = null
+                    this.eqptDataQuery.eqptNameFilters = null
+                }
+                if (res.data.modelFilters) {
+                    this.equipmentModelFilters = res.data.modelFilters;
+                    this.eqptModelFilterArr = [];
+                    this.eqptDataQuery.modelFilters = null
+                }
+                if (res.data.purchaseDateFilters) {
+                    this.equipmenPurchaseDateFilters = res.data.purchaseDateFilters;
+                    this.eqptPurchaseDateFilterArr = [];
+                    this.eqptDataQuery.purchaseDateFilters = null
+                }
+                if (res.data.activationDateFilters) {
+                    this.equipmentActivationDateFilters = res.data.activationDateFilters;
+                    this.eqptActivationDateFilterArr = [];
+                    this.eqptDataQuery.activationDateFilters = null
                 }
             })
         }