Browse Source

抄表算费

shudong 1 year ago
parent
commit
5c6d86edf2

+ 27 - 3
src/views/mis/common/api/meterReadingApi.js

@@ -40,7 +40,7 @@ const MeterCalcFee = {
         return request({
             url: '/fees/api/bwMeterReadPlan/getMrBookList',
             method: 'post',
-            params: requestParams
+            data: requestParams
         });
     },
     /**
@@ -52,13 +52,37 @@ const MeterCalcFee = {
         return request({
             url: '/fees/api/bwMeterReadPlan/getUserList',
             method: 'post',
-            params: requestParams
+            data: requestParams
+        });
+    },
+    /**
+     * 抄表算费-按选中用户
+     * @param {object} requestParams 请求参数集 
+     * @returns 
+     */
+    doCalcFeeUser(requestParams) {
+        return request({
+            url: '/fees/api/bwMeterReadPlan/doCalcFeeForUser',
+            method: 'post',
+            data: requestParams
+        });
+    },
+    /**
+    * 抄表算费-按选中抄表册
+    * @param {object} requestParams 请求参数集 
+    * @returns 
+    */
+    doCalcFeeMrBook(requestParams) {
+        return request({
+            url: '/fees/api/bwMeterReadPlan/doCalcFeeForMrBook',
+            method: 'post',
+            data: requestParams
         });
     }
 }
 
 //输出对象
-export { MeterReading,MeterCalcFee };
+export { MeterReading, MeterCalcFee };
 
 /***************************************************************************************************/
 

+ 77 - 15
src/views/mis/meterReadingManagement/bwMeterReadCalcFee-index.vue

@@ -53,10 +53,10 @@
                         <el-input v-model="queryParams.searchText" size="mini" style="width:180px;" placeholder="用户编号、姓名、地址"
                             clearable @change="onSearch()" />
                         <el-button type="primary" icon="el-icon-search" @click="onSearch()" size="mini">查询</el-button>
-                        <el-button type="primary" icon="el-icon-s-custom" @click="onSearch()"
-                            size="mini">算费(按选中用户)</el-button>
-                        <el-button type="primary" icon="el-icon-notebook-1" @click="onSearch()"
-                            size="mini">算费(按选中抄表册)</el-button>
+                        <el-button type="primary" icon="el-icon-s-custom" @click="onCalcFeeUser()" size="mini"
+                            :disabled="this.selectedUsers.length == 0">算费(按选中用户)</el-button>
+                        <el-button type="primary" icon="el-icon-notebook-1" @click="onCalcFeeMrBook()" size="mini"
+                            :disabled="this.selectedMrBooks.length == 0">算费(按选中抄表册)</el-button>
                     </div>
                 </div>
             </div>
@@ -65,7 +65,7 @@
                     :pagesize="pageInfoUser.size" :currentpage="pageInfoUser.current" :border="true" :multiple="true"
                     :total="pageInfoUser.total" :isdelete="false" :is-select="false" :stripe="false"
                     @handleCurrentChange="onHandleCurrentChangeUser" @handleSizeChange="onHandleSizeChangeUser"
-                    @sortChange="onSortChangeUser" />
+                    @sortChange="onSortChangeUser" @handleSelectionChange="onHandleSelectionChangeUser" />
             </div>
         </div>
     </div>
@@ -151,7 +151,8 @@ export default {
             listData: [],
             listDataUser: [],
             cbpqRefresh: false,
-            selectedCbbbms: ""//选中的抄表本编码
+            selectedMrBooks: [],//选中的抄表本编码
+            selectedUsers: [] //选中的用户
         }
     },
     watch: {
@@ -217,17 +218,15 @@ export default {
         /**
          * 当选择项发生变化时会触发该事件
          */
-        onHandleSelectionChange(row) {
-            if (row.length > 0) {
-                let cbbbms = [];
-                row.forEach(item => {
-                    cbbbms.push(item.cbbbm);
+        onHandleSelectionChange(rows) {
+            if (rows.length > 0) {
+                this.selectedMrBooks=[];
+                rows.forEach(item => {
+                    this.selectedMrBooks.push(item.cbbbm);
                 });
-                cbbbms = cbbbms.join(",");
-                this.selectedCbbbms = cbbbms;
                 this.getUserData();
             } else {
-                this.selectedCbbbms = "";
+                this.selectedMrBooks = [];
                 this.listDataUser = [];
             }
         },
@@ -253,7 +252,7 @@ export default {
         getUserData() {
             //追加分页参数 
             let params = Object.assign({}, this.pageInfoUser, this.queryParams);
-            params.mrBooks = this.selectedCbbbms;
+            params.mrBooks = this.selectedMrBooks.join(',');
             this.listDataUser = [];
             MeterCalcFee.getUserList(params).then((res) => {
                 if (res.code !== 1) {
@@ -289,6 +288,69 @@ export default {
             this.pageInfoUser['orders[0].asc'] = (arrOrder[0] == "true" ? "asc" : (arrOrder[0] == "false" ? "desc" : ""));
             this.pageInfoUser['orders[0].column'] = arrOrder[1];
             this.getData();
+        },
+        /**
+         * 当选择项发生变化时会触发该事件
+         */
+        onHandleSelectionChangeUser(rows) {
+            this.selectedUsers=[];
+            if (rows.length > 0) { 
+                rows.forEach(item => {
+                    this.selectedUsers.push(item.meterCardId);
+                });
+            }  
+        },
+        /**
+         * 算费(按选中用户)
+         */
+        onCalcFeeUser() {
+            if (this.selectedUsers.length == 0) {
+                this.$message.error('请至少选择一个待算费的用户!');
+                return;
+            }
+            this.$confirm('请确认是否继续算费?', '温馨提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                let params = { meterCardIds: this.selectedUsers.join(',') };
+                MeterCalcFee.doCalcFeeUser(params).then((res) => { 
+                    if (res.code == 1) {
+                        this.$message.success(res.message);
+                        this.getData();
+                    } else {
+                        this.$message.error(res.message);
+                    }
+                });
+            }).catch(() => {
+
+            });
+        },
+        /**
+         * 算费(按选中抄表册)
+         */
+        onCalcFeeMrBook() {
+            if (this.selectedMrBooks.length == 0) {
+                this.$message.error('请至少选择一个待算费的抄表册!');
+                return;
+            }
+            this.$confirm('请确认是否继续算费?', '温馨提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                let params = { mrBooks: this.selectedMrBooks.join(',') };
+                MeterCalcFee.doCalcFeeMrBook(params).then((res) => {
+                    if (res.code == 1) {
+                        this.$message.success(res.message);
+                        this.getData();
+                    } else {
+                        this.$message.error(res.message);
+                    }
+                });
+            }).catch(() => {
+
+            });
         }
         /*****************************************************************************/
     }