Browse Source

1、账单管理,统计和查询优化

billisme 4 years ago
parent
commit
dc160b0a39

+ 10 - 0
src/api/bussiness/bussinesspayorder.js

@@ -48,3 +48,13 @@ export const update = (row) => {
   })
 }
 
+export const payStat = (params) => {
+  return request({
+    url: '/api/cyzh-bussiness-pay-order/bussinesspayorder/payStat',
+    method: 'get',
+    params: {
+      ...params,
+    }
+  })
+}
+

+ 37 - 8
src/views/billmng/bonusbill.vue

@@ -19,13 +19,12 @@
                @refresh-change="refreshChange"
                @on-load="onLoad">
       <template slot="menuLeft">
-        <el-button type="danger"
+        <el-button type="warning"
                    size="small"
-                   icon="el-icon-delete"
-                   plain
-                   v-if="permission.bussinesspayorder_delete"
-                   @click="handleDelete">删 除
+                   v-if="permission.bonusbill_bonusStat && data.length > 0"
+                   @click="handleStat">分润统计
         </el-button>
+        <span span style="color: red; font-weight:bold">{{bonusStat}}</span>
       </template>
       <template slot="payStatus" slot-scope="{row}">
         <el-tag type="success" v-if="row.payStatus === 'SUCCESS'">成功</el-tag>
@@ -36,15 +35,22 @@
         <el-tag type="danger" v-if="row.payStatus === 'ERROR'">系统异常</el-tag>
         <el-tag type="primary" v-if="row.payStatus === 'WAITING'">待发起</el-tag>
       </template>
+      <template slot="bizType" slot-scope="{row}">
+        <el-tag type="primary" v-if="row.bizType === 1">商户代付</el-tag>
+        <el-tag type="success" v-if="row.bizType === 2">平台分润</el-tag>
+      </template>
     </avue-crud>
   </basic-container>
 </template>
 
 <script>
-  import {getList, getDetail, add, update, remove} from "@/api/bussiness/bussinesspayorder";
+  import {getList, getDetail, add, update, remove, payStat} from "@/api/bussiness/bussinesspayorder";
   import {mapGetters} from "vuex";
 
   export default {
+    props:{
+      bizId: null,
+    },
     data() {
       return {
         form: {},
@@ -55,9 +61,10 @@
           currentPage: 1,
           total: 0
         },
+        bonusStat: "",
         selectionList: [],
         option: {
-          menuWidth: 100,
+          menuWidth: 120,
           height:'auto',
           calcHeight: 30,
           tip: false,
@@ -72,6 +79,7 @@
             {
               label: "商户请求号",
               prop: "requestNo",
+              hide: true
             },
             {
               label: "平台商",
@@ -92,10 +100,12 @@
             {
               label: "渠道手续费",
               prop: "channelFee",
+              hide: true
             },
             {
               label: "扣款金额",
               prop: "debitAmount",
+              hide: true
             },
             {
               label: "实收金额",
@@ -137,17 +147,27 @@
               ],
               search:true,
             },
+            {
+              label: "业务类型",
+              prop: "bizType",
+              slot: true,
+              width: 100
+            },
             {
               label: "收款方开户名",
               prop: "receiverAccountName",
+              labelWidth: 100
             },
             {
               label: "收款方帐户号",
               prop: "receiverAccountNo",
+              labelWidth: 100
             },
             {
               label: "收款方开户行",
               prop: "receiverBankCode",
+              hide: true,
+              labelWidth: 100
             },
             {
               label: "账户类型",
@@ -186,7 +206,7 @@
       permissionList() {
         return {
           addBtn: this.vaildData(this.permission.bussinesspayorder_add, false),
-          viewBtn: this.vaildData(this.permission.bussinesspayorder_view, false),
+          viewBtn: this.vaildData(this.permission.bonusbill_view, false),
           delBtn: this.vaildData(this.permission.bussinesspayorder_delete, false),
           editBtn: this.vaildData(this.permission.bussinesspayorder_edit, false)
         };
@@ -200,6 +220,12 @@
       }
     },
     methods: {
+      handleStat(){
+        this.query.bizType = 2;
+        payStat(this.query).then(res =>{
+          this.bonusStat = "¥" + res.data.data;
+        })
+      },
       rowSave(row, done, loading) {
         add(row).then(() => {
           this.onLoad(this.page);
@@ -274,10 +300,12 @@
         done();
       },
       searchReset() {
+        this.bonusStat = "";
         this.query = {};
         this.onLoad(this.page);
       },
       searchChange(params, done) {
+        this.bonusStat = "";
         this.query = params;
         this.page.currentPage = 1;
         this.onLoad(this.page, params);
@@ -302,6 +330,7 @@
       onLoad(page, params = {}) {
         this.loading = true;
         params.bizType = 2;
+        params.bizId = this.bizId;
         getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
           const data = res.data.data;
           this.page.total = data.total;

+ 43 - 13
src/views/billmng/paybill.vue

@@ -19,13 +19,12 @@
                @refresh-change="refreshChange"
                @on-load="onLoad">
       <template slot="menuLeft">
-        <el-button type="danger"
+        <el-button type="warning"
                    size="small"
-                   icon="el-icon-delete"
-                   plain
-                   v-if="permission.bussinesspayorder_delete"
-                   @click="handleDelete">删 除
+                   v-if="permission.paybill_payStat && data.length > 0"
+                   @click="handleStat">代付统计
         </el-button>
+        <span span style="color: red; font-weight:bold">{{payStat}}</span>
       </template>
       <template slot="payStatus" slot-scope="{row}">
         <el-tag type="success" v-if="row.payStatus === 'SUCCESS'">成功</el-tag>
@@ -36,12 +35,16 @@
         <el-tag type="danger" v-if="row.payStatus === 'ERROR'">系统异常</el-tag>
         <el-tag type="primary" v-if="row.payStatus === 'WAITING'">待发起</el-tag>
       </template>
+      <template slot="bizType" slot-scope="{row}">
+        <el-tag type="primary" v-if="row.bizType === 1">商户代付</el-tag>
+        <el-tag type="success" v-if="row.bizType === 2">平台分润</el-tag>
+      </template>
     </avue-crud>
   </basic-container>
 </template>
 
 <script>
-  import {getList, getDetail, add, update, remove} from "@/api/bussiness/bussinesspayorder";
+  import {getList, getDetail, add, update, remove, payStat} from "@/api/bussiness/bussinesspayorder";
   import {mapGetters} from "vuex";
 
   export default {
@@ -55,9 +58,11 @@
           currentPage: 1,
           total: 0
         },
+        payStat: "",
         selectionList: [],
         option: {
           height:'auto',
+          menuWidth: 120,
           calcHeight: 30,
           tip: false,
           searchShow: true,
@@ -71,15 +76,19 @@
             {
               label: "商户请求号",
               prop: "requestNo",
+              hide: true
             },
             {
               label: "采购商订单号",
               prop: "bussinessOrderId",
+              width: 200,
+              labelWidth: 100,
             },
             {
               label: "采购商",
               prop: "bussinessId",
               type: "select",
+              width: 200,
               searchFilterable: true,
               dicUrl: "/api/cyzh-guosen/bussiness/listBussiness?size=500",
               search: true,
@@ -92,10 +101,10 @@
               label: "付款金额",
               prop: "orderAmount",
             },
-            {
-              label: "渠道手续费",
-              prop: "channelFee",
-            },
+            // {
+            //   label: "渠道手续费",
+            //   prop: "channelFee",
+            // },
             {
               label: "付款状态",
               prop: "payStatus",
@@ -132,17 +141,28 @@
               ],
               search:true,
             },
+            {
+              label: "业务类型",
+              prop: "bizType",
+              slot: true,
+              width: 100
+            },
             {
               label: "收款方开户名",
               prop: "receiverAccountName",
+              labelWidth: 100
             },
             {
               label: "收款方帐户号",
               prop: "receiverAccountNo",
+              labelWidth: 100,
+              width: 150
             },
             {
               label: "收款方开户行",
               prop: "receiverBankCode",
+              labelWidth: 100,
+              hide: true
             },
             {
               label: "账户类型",
@@ -163,13 +183,15 @@
               prop: "createTime",
               type: "date",
               search: true,
-              valueFormat: "yyyy-MM-dd HH:mm:ss"
+              valueFormat: "yyyy-MM-dd HH:mm:ss",
+              width: 140
             },
             {
               label: "更新时间",
               prop: "updateTime",
               type: "date",
-              valueFormat: "yyyy-MM-dd HH:mm:ss"
+              valueFormat: "yyyy-MM-dd HH:mm:ss",
+              width: 140
             },
           ]
         },
@@ -181,7 +203,7 @@
       permissionList() {
         return {
           addBtn: this.vaildData(this.permission.bussinesspayorder_add, false),
-          viewBtn: this.vaildData(this.permission.bussinesspayorder_view, false),
+          viewBtn: this.vaildData(this.permission.paybill_view, false),
           delBtn: this.vaildData(this.permission.bussinesspayorder_delete, false),
           editBtn: this.vaildData(this.permission.bussinesspayorder_edit, false)
         };
@@ -195,6 +217,12 @@
       }
     },
     methods: {
+      handleStat(){
+        this.query.bizType = 1;
+        payStat(this.query).then(res =>{
+          this.payStat = "¥" + res.data.data;
+        })
+      },
       rowSave(row, done, loading) {
         add(row).then(() => {
           this.onLoad(this.page);
@@ -269,10 +297,12 @@
         done();
       },
       searchReset() {
+        this.payStat = "";
         this.query = {};
         this.onLoad(this.page);
       },
       searchChange(params, done) {
+        this.payStat = "";
         this.query = params;
         this.page.currentPage = 1;
         this.onLoad(this.page, params);

+ 2 - 1
src/views/billmng/withdrawbill.vue

@@ -265,7 +265,8 @@
             {
               label: "采购商订单号",
               prop: "bussinessOrderId",
-              searchLabelWidth: 110,
+              searchLabelWidth: 120,
+              width: 180,
               search:true
             },
             {

+ 15 - 4
src/views/bonus/bonusgroupbill.vue

@@ -27,6 +27,9 @@
                    @click="handleDelete">删 除
         </el-button>
       </template>
+      <template slot="menu" slot-scope="{row}">
+        <el-button type="text" size="small" icon="el-icon-zoom-in" @click="showPayOrder(row)">发起记录</el-button>
+      </template>
       <template slot="bonusStatus" slot-scope="{row}">
         <el-tag v-if="row.bonusStatus === 'REQUEST_RECEIVE'" type="warning">请求已接收</el-tag>
         <el-tag v-if="row.bonusStatus === 'REQUEST_ACCEPT'" type="warning">请求已受理</el-tag>
@@ -41,18 +44,20 @@
         <el-tag v-if="row.accountIsDefault === 0" type="warning">否</el-tag>
       </template>
     </avue-crud>
+    <el-dialog :modal-append-to-body="false" :visible.sync="bonusPayOrderVisible" title="发起记录" width="80%" center top="2vh" modal="true" @close="closeAccountDialog">
+      <bonusbill :biz-id="billId" v-if="bonusPayOrderVisible"></bonusbill>
+    </el-dialog>
   </basic-container>
 </template>
 
 <script>
   import {getList, getDetail, add, update, remove} from "@/api/bonus/bonusgroupbill";
   import {mapGetters} from "vuex";
+  import bonusbill from "../billmng/bonusbill.vue";
 
   export default {
-    props:{
-      bonusSceneId: null,
-      bonusGroupId: null,
-      date: null
+    components: {
+      bonusbill
     },
     data() {
       return {
@@ -64,6 +69,8 @@
           currentPage: 1,
           total: 0
         },
+        bonusPayOrderVisible: false,
+        billId: null,
         selectionList: [],
         option: {
           height:'auto',
@@ -238,6 +245,10 @@
       }
     },
     methods: {
+      showPayOrder(row){
+        this.bonusPayOrderVisible = true;
+        this.billId = row.id;
+      },
       rowSave(row, done, loading) {
         add(row).then(() => {
           this.onLoad(this.page);