Quellcode durchsuchen

Merge branch 'V2' of http://47.92.161.104:10080/zq/jp-housekeeper-portal into V2

zhengqiang vor 5 Jahren
Ursprung
Commit
00a1cb5588

+ 20 - 1
src/api/business/billPush.js

@@ -65,6 +65,25 @@ function closeBill(id){
   return request.post(constant.serverUrl + "/business/billPush/closeBill/" + id);
 }
 
+function updateOrder(formData){
+  return request.post(constant.serverUrl + "/business/billPush/updateOrder", formData,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+function createPayTime(id){
+  return request.get(constant.serverUrl + "/business/billPush/createPayTime"+ id);
+}
+
+
+function editPayTime(id){
+  return request.get(constant.serverUrl + "/business/billPush/editPayTime/" + id);
+}
+
+
+
 export default {
-    pageList,create,edit,add,update,remove,batchRemove,payServiceList,createGoods,detail,goodsPageList,pushBill,closeBill
+    pageList,create,edit,add,update,remove,batchRemove,payServiceList,createGoods,detail,goodsPageList,pushBill,closeBill,updateOrder,createPayTime,editPayTime
   }

+ 90 - 5
src/views/business/billPush-detail-list.vue

@@ -3,10 +3,12 @@
     :visible.sync="showDialog"
     :title="title"
     width="70%"
-    :modal-append-to-body="false"
+    :modal-append-to-body="true"
     style="text-align:left;"
     @close="closeDialog"
     :close-on-click-modal="false"
+    append-to-body
+    
   >
         <div class="user-panel" v-loading="loading">
                 <el-form ref="form" :model="formModel" label-width="150">
@@ -62,7 +64,8 @@
                         </el-col>
                         <el-col :span="8">
                             <span class="fontText">支付方式</span> 
-                            <span class="data">{{formModel.payName}}</span>
+                            <el-link class="data"  type="primary" v-if="formModel.payStatus=='10'" @click="handlePayTime">{{formModel.payName}}</el-link>
+                            <span class="data" v-else>{{formModel.payName}}</span>
                         </el-col>
                     </el-row>
                     <el-row :gutter="20" >
@@ -104,7 +107,7 @@
                     >修改账单</el-button
                 >
             </el-row>
-            <el-table :data="tableData" v-loading="loading" stripe>
+            <el-table :data="tableData" v-loading="loading" stripe  show-summary :summary-method="getSummaries">
                 <el-table-column type="index" label="序号" width="80"></el-table-column>
                 <el-table-column prop="goodsName" label="收费项目"></el-table-column>
                 <el-table-column prop="beginEndTime" label="起止时间" width="300"></el-table-column>
@@ -126,6 +129,12 @@
                 :title="modalTitle"
                 @close="onDetailModalClose"
             ></billPush-detail>
+            <billPush-order-payTime
+                v-if="showModal2"
+                :businessKey="businessKey"
+                :title="modalTitle2"
+                @close="onDetailModalClose2"
+            ></billPush-order-payTime>
 
     </el-dialog>
 </template>
@@ -134,11 +143,13 @@ import Constant from "@/constant";
 import billPushApi from "@/api/business/billPush";
 import billPushPersonApi from "@/api/business/billPushPerson";
 import billPushDetail from "./billPush-detail";
+import billPushOrderPayTime from "./billPush-order-payTime";
 export default {
     props: ["businessKey", "title"],
     data() {
         return{
             formModel:{
+
             },
             queryModel: {
                 name: "",
@@ -147,6 +158,13 @@ export default {
                 companyId:"",
                 payService:"",
             },
+            formModel2:{
+                id:"",
+                payName:"",
+                payTime:"",
+            },
+            payModal:true,
+            payTime:"",
             tableData:[],
             pageIndex: 1,
             pageSize: 10,
@@ -158,6 +176,8 @@ export default {
             showDialog: true,
             loading: false,
             showModal: false,
+            showModal2:false,
+            submitting: false,
         }
     },
     methods:{
@@ -241,14 +261,79 @@ export default {
         onDetailModalClose(retObj) {
             //保存成功后回调
             this.showModal = false;
-            this.$emit("close", false);
+            //this.closeDialog();
+             this.changePage(1,false);
         },
         exportXls() {
             this.changePage(1,true);
+        },
+        getSummaries(param) {
+            const { columns, data } = param;
+            const sums = [];
+            columns.forEach((column, index) => {
+                if (index === 0) {
+                    sums[index] = '合计';
+                    return;
+                }
+                const values = data.map(item => Number(item[column.property]));
+                if (!values.every(value => isNaN(value))) {
+                    sums[5] = values.reduce((prev, curr) => {
+                    const value = Number(curr);
+                    if (!isNaN(value)) {
+                        return prev + curr;
+                    } else {
+                        return prev;
+                    }
+                    }, 0);
+                    sums[5] ;
+                } else {
+                    sums[index] = '';
+                }
+            });
+
+            return sums;
+        },
+        onDetailModalClose2(){
+            //保存成功后回调
+            this.showModal2 = false;
+            var self = this;
+
+            (function() {
+                if (self.businessKey.length == 0) {
+                    return billPushApi.createGoods();
+                } else {
+                    return billPushApi.detail(self.businessKey);
+                }
+            })()
+            .then(response => {
+                var jsonData = response.data;
+                self.loading = false;
+
+                if (jsonData.result) {
+                    self.formModel = jsonData.data;
+                } else {
+                    self.$message.error(jsonData.message + "");
+                }
+            })
+            .catch(error => {
+                self.$message.error(error + "");
+            });
+
+        },
+        handlePayTime(){
+            var self = this;
+
+            var billPushId = self.businessKey;
+
+            this.modalTitle2 = "账单推送详情";
+            this.operation = "detail";
+            this.businessKey = billPushId;
+            this.showModal2 = true;
         }
     },
     components: {
-        "billPush-detail": billPushDetail
+        "billPush-detail": billPushDetail,
+        "billPush-order-payTime":billPushOrderPayTime
     },
     mounted: function() {
         var self = this;

+ 29 - 2
src/views/business/billPush-detail.vue

@@ -3,9 +3,10 @@
     :visible.sync="showDialog"
     :title="title"
     width="90%"
-    :modal-append-to-body="false"
+    :modal-append-to-body="true"
     style="text-align:left;"
     @close="closeDialog"
+    append-to-body
     :close-on-click-modal="false"
   >
     <div class="user-panel" v-loading="loading">
@@ -51,7 +52,7 @@
         </el-form-item>
 
         <h3>账单信息</h3>
-        <el-table :data="formModel.billPushGoodsList">
+        <el-table :data="formModel.billPushGoodsList" show-summary :summary-method="getSummaries">
             <el-table-column type="index" label="序号" width="50"></el-table-column>
             <el-table-column prop="goodsId" label="收费项目">
               <template slot-scope="{row}">
@@ -302,6 +303,32 @@ export default {
 
             this.formModel.removeBillPushGoodsList.push(row);
         },
+        getSummaries(param) {
+            const { columns, data } = param;
+            const sums = [];
+            columns.forEach((column, index) => {
+                if (index === 0) {
+                    sums[index] = '合计';
+                    return;
+                }
+                const values = data.map(item => Number(item[column.property]));
+                if (!values.every(value => isNaN(value))) {
+                    sums[5] = values.reduce((prev, curr) => {
+                    const value = Number(curr);
+                    if (!isNaN(value)) {
+                        return prev + curr;
+                    } else {
+                        return prev;
+                    }
+                    }, 0);
+                    sums[5] ;
+                } else {
+                    sums[index] = '';
+                }
+            });
+
+            return sums;
+        }
     },
     mounted: function() {
         var self = this;

+ 4 - 10
src/views/business/billPush-list.vue

@@ -356,23 +356,17 @@ export default {
             //保存成功后回调
             this.showModal = false;
 
-            if (retObj.result) {
-                var retData = retObj.data;
+            this.changePage(this.pageIndex);
 
-                this.changePage(this.pageIndex);
-
-            }
+            
         },
         onDetailModalClose2(retObj) {
             //保存成功后回调
             this.showModal2 = false;
 
-            if (retObj.result) {
-                var retData = retObj.data;
+            this.changePage(this.pageIndex);
 
-                this.changePage(this.pageIndex);
-
-            }
+            
         },
         handleReset(name) {
             this.$refs[name].resetFields();

+ 144 - 0
src/views/business/billPush-order-payTime.vue

@@ -0,0 +1,144 @@
+<template>
+        <el-dialog
+            title="线下支付时间"
+            :visible.sync="showDialog"
+            :modal-append-to-body="true"
+            style="text-align: left;"
+            width="30%"
+            @close="closeDialog"
+            append-to-body
+            :close-on-click-modal="false"
+            >
+            <div class="user-panel" v-loading="loading">
+                <el-form ref="form" label-width="100px" :model="formModel" :rules="ruleValidate">
+                    <el-form-item label="支付方式" prop="payName">
+                        <el-select v-model="formModel.payName" style="width:300px"  >
+                            <el-option
+                                v-for="payName in payNameList"
+                                :key="payName.id"
+                                :label="payName.name"
+                                :value="payName.id"
+                            ></el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="收款时间" prop="payTime">
+                        <el-date-picker
+                            style="width:300px"
+                            v-model="formModel.payTime"
+                            type="datetime"
+                            value-format="yyyy-MM-dd HH:mm:ss"
+                            placeholder="选择日期时间">
+                        </el-date-picker>
+                    </el-form-item>
+                </el-form>
+            </div>
+                <span slot="footer" class="dialog-footer">
+                    <el-button type="primary" @click="handleSubmit" :loading="submitting">保存</el-button>
+                </span>
+            </el-dialog>
+</template>
+<script>
+import Constant from "@/constant";
+import billPushApi from "@/api/business/billPush";
+export default {
+    props: ["businessKey", "title"],
+    data(){
+        return{
+            ruleValidate: {
+                payName: [{ required: true, message: "支付方式不能为空", trigger: "blur" }],
+                payTime: [{ required: true, message: "收款时间不能为空", trigger: "blur" }],
+            },
+            formModel:{
+                payName:"",
+                payTime:"",
+            },
+            loading:false,
+            showDialog:true,
+            submitting: false,
+            payNameList:[
+                {
+                    id:"transfer",
+                    name:"对公转账"
+                },
+                {
+                    id:"cash",
+                    name:"现金支付"
+                }
+            ],
+        }
+    },
+    methods:{
+        closeDialog() {
+            this.$emit("close", false);
+        },
+        handleSubmit(){
+            var self = this;
+
+            this.$refs["form"].validate(valid => {
+                if (valid) {
+                (function() {
+                   
+                    var id = self.businessKey
+
+                    return billPushApi.updateOrder(self.formModel);
+                    
+                })().then(function(response) {
+                    var jsonData = response.data;
+
+                    if (jsonData.result) {
+                    self.$message({
+                        message: "保存成功!",
+                        type: "success"
+                    });
+
+                    self.$emit("close", true);
+                    } else {
+                    self.$message({
+                        message: jsonData.message + "",
+                        type: "warning"
+                    });
+                    self.$emit("close", false);
+                    }
+                });
+                }
+            });
+        }
+    },
+    mounted: function() {
+        var self = this;
+
+        (function() {
+        if (self.businessKey.length == 0) {
+            return billPushApi.createPayTime(self.businessKey);
+        } else {
+            return billPushApi.editPayTime(self.businessKey);
+        }
+        })()
+        .then(response => {
+            var jsonData = response.data;
+            self.loading = false;
+
+            if (jsonData.result) {
+
+                self.formModel = jsonData.data;
+
+                if (jsonData.result) {
+                    self.formModel = jsonData.data;
+                } else {
+                    self.$message.error(jsonData.message + "");
+                }
+
+            } else {
+                self.$message.error(jsonData.message + "");
+            }
+        })
+        .catch(error => {
+            self.$message.error(error + "");
+        });
+    }
+}
+</script>
+<style lang="stylus" scoped>
+
+</style>
+