瀏覽代碼

数据中心添加时间段查询 商铺收益排行增加筛选商铺筛选
订单中心添加小票打印明细 商铺类型、优惠券类型、骑手站点筛选
优惠券管理 添加超级管理员审核平台所发布优惠券
跑腿模块添加骑手站点界面
实名认证添加编辑、提现信息按钮功能 添加骑手站点筛选
骑手排行添加骑手站点筛选
跑腿财务中心添加骑手站点筛选 添加银行卡字段

hzj18279462576@163.com 1 年之前
父節點
當前提交
9270a93a0b

+ 4 - 1
src/main.js

@@ -18,6 +18,9 @@ import {
   VueJsonp
 } from 'vue-jsonp'
 
+import axios from "axios";
+
+
 import Viewer from 'v-viewer'
 import 'viewerjs/dist/viewer.css'
 Vue.use(VueJsonp)
@@ -33,7 +36,7 @@ Vue.prototype.Tupian =function(img){
     return 'https://mxys.chuanghai-tech.com/wmfile'+img
   }//全局图片请求头
 
-
+  Vue.prototype.$axios = axios
 Viewer.setDefaults({
   // 工具栏按钮的控制
     toolbar: {

+ 61 - 0
src/utils/compressImg.js

@@ -0,0 +1,61 @@
+//base64转码(压缩完成后的图片为base64编码,这个方法可以将base64编码转回file文件)
+function dataURLtoFile(dataurl) {
+  var arr = dataurl.split(","),
+    mime = arr[0].match(/:(.*?);/)[1],
+    bstr = atob(arr[1]),
+    n = bstr.length,
+    u8arr = new Uint8Array(n);
+  while (n--) {
+    u8arr[n] = bstr.charCodeAt(n);
+  }
+  return new File([u8arr], { type: mime });
+}
+//压缩图片
+function compressImg(file) {
+  var src;
+  var files;
+  var fileSize = parseFloat(parseInt(file["size"]) / 1024 / 1024).toFixed(2);
+  var read = new FileReader();
+  read.readAsDataURL(file);
+  return new Promise(function (resolve, reject) {
+    read.onload = function (e) {
+      var img = new Image();
+      img.src = e.target.result;
+      img.onload = function () {
+        //默认按比例压缩
+        var w = this.width,
+          h = this.height;
+        //生成canvas
+        var canvas = document.createElement("canvas");
+        var ctx = canvas.getContext("2d");
+        var base64;
+        // 创建属性节点
+        canvas.setAttribute("width", w);
+        canvas.setAttribute("height", h);
+        ctx.drawImage(this, 0, 0, w, h);
+        if (fileSize < 0.2) {
+          //如果图片小于0.2兆 那么不执行压缩操作
+          base64 = canvas.toDataURL(file["type"], 1);
+        } else if (fileSize < 1) {
+          //如果图片大于1M 那么压缩0.5
+          base64 = canvas.toDataURL(file["type"], 0.5);
+        } else if (fileSize > 1 && fileSize < 2) {
+          //如果图片大于1M并且小于2M 那么压缩0.1
+          base64 = canvas.toDataURL(file["type"], 0.1);
+        } else {
+          //如果图片超过2m 那么压缩0.2
+          base64 = canvas.toDataURL(file["type"], 0.1);
+        }
+        // 回调函数返回file的值(将base64编码转成file)
+        files = dataURLtoFile(base64); //如果后台接收类型为base64的话这一步可以省略
+        console.log(files, "压缩的文件");
+
+        resolve(files);
+      };
+    };
+  });
+}
+//结尾处将该方法暴露出来供外部调用
+export default {
+  compressImg,
+};

+ 2 - 3
src/utils/httpRequest.js

@@ -44,6 +44,7 @@ http.interceptors.response.use(
       clearLoginInfo();
       router.push({ name: "login" });
     }
+
     if (ifShangxian == 1) {
       // console.log(response.data,'导出',response.data.type)
       if (response.data.type) {
@@ -71,9 +72,7 @@ http.adornUrl = actionName => {
   // return 'https://www.daweilinli.com/sqx_fast/' + actionName
   // return 'http://192.168.0.131:8171/sqx_fast/' + actionName
   // return 'https://mxys.chuanghai-tech.com/sqx_fast/' + actionName
-  return (
-    "https://mxys.chuanghai-tech.com/wm-test/wm-api/sqx_fast/" + actionName
-  );
+  return "https://mxys.chuanghai-tech.com/wm-test/wm-api/sqx_fast/" + actionName;
 };
 
 http.adornUrl2 = actionName => {

+ 182 - 8
src/views/autonym/autonym.vue

@@ -38,7 +38,12 @@
         >&nbsp;&nbsp;
       </div>
       <span>骑手所在站点:</span>
-      <el-select @change="select()" :clearable="true" v-model="stationName" placeholder="请选择骑手所在站点">
+      <el-select
+        @change="select()"
+        :clearable="true"
+        v-model="stationName"
+        placeholder="请选择骑手所在站点"
+      >
         <el-option
           :label="i.stationName"
           :value="i.id"
@@ -231,14 +236,14 @@
       </el-table-column>
       <el-table-column prop="createTime" label="创建时间" width="170">
       </el-table-column>
-      <el-table-column fixed="right" prop="status" label="状态" width="160">
+      <el-table-column fixed="right" prop="status" label="状态" width="120">
         <template slot-scope="scope">
           <span v-if="scope.row.checkCertification == '0'">待审核</span>
           <span v-if="scope.row.checkCertification == '1'">审核成功</span>
           <span v-if="scope.row.checkCertification == '2'">已拒绝</span>
         </template>
       </el-table-column>
-      <el-table-column fixed="right" label="操作" width="250">
+      <el-table-column fixed="right" label="操作" width="320">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -269,6 +274,16 @@
             @click="editClicks(scope.row)"
             >编辑
           </el-button>
+
+          <el-button
+            size="mini"
+            type="primary"
+            :disabled="
+              !isAuth('autonym:tixian') || scope.row.checkCertification !== '1'
+            "
+            @click="infoClicks(scope.row)"
+            >提现信息
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -353,11 +368,13 @@
               alt=""
             />
             <el-upload
-              :action="Tupiantou"
+              action="#"
               list-type="picture-card"
+              :auto-upload="false"
               :on-success="handleUploadSuccess"
               :on-change="handleChange"
               :on-remove="handleRemove"
+              :before-upload="beforeAvatarUpload"
             >
               <i class="el-icon-plus"></i>
             </el-upload>
@@ -410,10 +427,44 @@
         </el-form-item>
       </el-form>
     </el-dialog>
+
+    <!-- 提现信息 -->
+    <el-dialog
+      title="提现信息"
+      custom-class="info"
+      :visible.sync="infoVisible"
+      :close-on-click-modal="false"
+      center
+    >
+    <el-form
+        :model="infoRuleForm"
+        :rules="infoRules"
+        ref="infoRuleForm"
+        label-width="120px"
+        class="demo-ruleForm"
+      >
+        <el-form-item label="银行卡号" prop="cardNumber">
+          <el-input style="width: 250px;" v-model="infoRuleForm.cardNumber"></el-input>
+        </el-form-item>
+        <el-form-item label="开户行" prop="bank">
+          <el-input style="width: 250px;" v-model="infoRuleForm.bank"></el-input>
+        </el-form-item>
+        <el-form-item label="开户人姓名" prop="name">
+          <el-input style="width: 250px;" v-model="infoRuleForm.name"></el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="submitInfo('infoRuleForm')"
+            >确定</el-button
+          >
+          <el-button @click="cancelInfo('infoRuleForm')">取消</el-button>
+        </el-form-item>
+      </el-form>
+    </el-dialog>
   </div>
 </template>
 
 <script>
+import compressImg from "@/utils/compressImg.js";
 export default {
   data() {
     return {
@@ -499,7 +550,21 @@ export default {
         //     trigger: "change"
         //   }
         // ]
-      }
+      },
+
+      infoVisible:false,// 提现信息
+      infoRuleForm: {
+        userId:"",
+        id:'',
+        cardNumber: "",
+        bank: "",
+        name: "",
+      },
+      infoRules: {
+        cardNumber: [{ required: true, message: "银行卡号不能为空", trigger: "blur" }],
+        bank: [{ required: true, message: "开户行不能为空", trigger: "blur" }],
+        name: [{ required: true, message: "开户人姓名不能为空", trigger: "blur" }],
+      },
     };
   },
   methods: {
@@ -667,7 +732,7 @@ export default {
           phone: this.phone,
           userName: this.userName,
           checkCertification: this.status,
-          riderStationId:this.stationName
+          riderStationId: this.stationName
         })
       }).then(({ data }) => {
         console.log(data, "实名认证");
@@ -695,14 +760,38 @@ export default {
     //上传成功  图片上传 start(----------------------------------------------------------)
     handleUploadSuccess(file, fileList) {
       console.log(file, "Success");
-      this.ruleForm.frontPhoto = file.data;
+      // this.ruleForm.frontPhoto = file.data;
     },
     handleChange(file, fileList) {
       console.log(file, "change");
+      var formData = new FormData();
+      formData.append('file', file.raw);
+      this.$axios({
+        url: this.Tupiantou,
+        method: "post",
+        data: formData
+      }).then(({data}) => {
+        console.log(data, "上传正面身份证照片");
+        this.ruleForm.frontPhoto = data.data;
+      }).catch(err=>{
+        console.log(err);
+      });
     },
     handleRemove(file, fileList) {
       console.log(file, "Remove");
     },
+    beforeAvatarUpload(file) {
+        // const isJPG = file.type === 'image/jpeg';
+        // const isLt2M = file.size / 1024 / 1024 < 2;
+
+        // if (!isJPG) {
+        //   this.$message.error('上传头像图片只能是 JPG 格式!');
+        // }
+        // if (!isLt2M) {
+        //   this.$message.error('上传头像图片大小不能超过 2MB!');
+        // }
+        return true;
+      },
     // 图片上传 start(----------------------------------------------------------)
 
     //上传成功  图片上传 start(----------------------------------------------------------)
@@ -795,7 +884,85 @@ export default {
         console.log(data, "站点下拉框");
         this.stationData = data.data;
       });
-    }
+    },
+
+    // 提现信息
+    infoClicks(rows){
+      this.infoVisible=true
+      this.infoRuleForm.cardNumber = "";
+      this.infoRuleForm.bank = "";
+      this.infoRuleForm.name = "";
+      this.infoRuleForm.id = "";
+      this.infoRuleForm.userId = rows.userId
+      this.$http({
+        url: this.$http.adornUrl("rider/bank/getUserId"),
+        method: "get",
+        params: this.$http.adornParams({
+          userId: rows.userId
+        })
+      }).then(({ data }) => {
+        console.log(data, "提现信息");
+        if(data.data){
+          this.infoRuleForm.cardNumber = data.data.cardNo
+          this.infoRuleForm.bank = data.data.bankName
+          this.infoRuleForm.name = data.data.realName
+          this.infoRuleForm.id = data.data.id
+        }
+      });
+      this.$nextTick(()=>{
+        this.$refs.infoRuleForm.resetFields();
+      })
+    },
+    submitInfo(formName) {
+      this.$refs[formName].validate(valid => {
+        if (valid) {
+          let agData={
+              "userId": this.infoRuleForm.userId, //骑手id
+              "cardNo": this.infoRuleForm.cardNumber, //卡号
+              "openBank": this.infoRuleForm.bank, //开户行
+              "realName": this.infoRuleForm.name, //户主名称
+              "bankName": this.infoRuleForm.bank //银行名称
+          }
+          if(this.infoRuleForm.id){
+            agData.id=this.infoRuleForm.id
+          }
+          this.$http({
+            url: this.$http.adornUrl("rider/bank/update"),
+            method: "post",
+            data: this.$http.adornData(agData)
+          }).then(({ data }) => {
+            console.log(data, "操作");
+            if (data.code == 0) {
+              this.$message({
+                message: "操作成功",
+                type: "success",
+                duration: 1000,
+                onClose: () => {
+                  this.dataSelect();
+                }
+              });
+              this.infoVisible=false
+            } else {
+              this.$message({
+                message: data.msg,
+                type: "warning",
+                duration: 1500,
+                onClose: () => {}
+              });
+            }
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+    cancelInfo(formName) {
+      this.$refs[formName].resetFields();
+      this.infoRuleForm.cardNumber = "";
+      this.infoRuleForm.bank = "";
+      this.infoRuleForm.name = "";
+      this.infoVisible=false
+    },
   },
   mounted() {
     this.dataSelect();
@@ -823,4 +990,11 @@ export default {
     }
   }
 }
+.info {
+  width: 500px;
+}
+
+.viewer-container{
+  z-index: 999999;
+}
 </style>

+ 2 - 0
src/views/common/login.vue

@@ -83,6 +83,8 @@ import {
                 'captcha': this.dataForm.captcha
               })
             }).then(({data}) => {
+              // console.log(data,'登录');
+
               if (data && data.code === 0) {
                 this.$cookie.set('username', this.dataForm.userName)
                 this.$cookie.set('token', data.token)

文件差異過大導致無法顯示
+ 1451 - 947
src/views/coupon/coupon.vue


+ 1 - 0
src/views/downLoad/downList.vue

@@ -111,6 +111,7 @@
           <el-button
             size="mini"
             type="primary"
+            :disabled="!isAuth('downList:xiazai')"
             @click="downFile(scope.row)"
             style="margin: 5px;"
           >

+ 20 - 8
src/views/entryManagement/entryManagement.vue

@@ -144,6 +144,10 @@
         <el-table-column prop="title" label="标题" width="200">
         </el-table-column>
         <el-table-column
+          prop="orderAmount"
+          label="订单总金额"
+        ></el-table-column>
+        <el-table-column
           prop="couponName"
           label="优惠活动标题"
         ></el-table-column>
@@ -156,23 +160,31 @@
           label="优惠券优惠金额"
         ></el-table-column>
         <el-table-column
+          prop="payMoney"
+          label="用户付款金额"
+        ></el-table-column>
+        <el-table-column
+          prop="smsMoneyTotal"
+          label="短信费"
+        ></el-table-column>
+        <el-table-column
           prop="errandMoney"
           label="跑腿费"
         >
-          <template slot-scope="scope">
-            <span @click="errandMoneyClick(scope.row)" style="cursor: pointer;color: #3e8ef7;">{{
-              scope.row.errandMoney
-            }}</span>
-          </template>
         </el-table-column>
-        <el-table-column prop="orderNumber" label="订单号" width="180">
+        <el-table-column prop="orderNumber" label="订单号" width="170">
           <!-- <template slot-scope="scope">
             <span style="cursor: pointer;"">{{
               scope.row.orderNumber
             }}</span>
           </template> -->
         </el-table-column>
-        <el-table-column prop="money" label="金额" width="100">
+        <el-table-column prop="money" label="商家实际收入" width="110">
+          <template slot-scope="scope">
+            <span @click="errandMoneyClick(scope.row)" style="cursor: pointer;color: #3e8ef7;">{{
+              scope.row.money
+            }}</span>
+          </template>
         </el-table-column>
         <el-table-column prop="createTime" label="创建时间"></el-table-column>
       </el-table>
@@ -245,7 +257,7 @@
       :visible.sync="errandMoneyVisible"
       center
       title="内容"
-      :close-on-click-modal="false"
+      :close-on-click-modal="true"
     >
       <span style="font-size: 15px;">{{ content }}</span>
     </el-dialog>

+ 2 - 0
src/views/finance/financeList.vue

@@ -1641,6 +1641,8 @@ export default {
           endTime: this.endTime
         })
       }).then(({ data }) => {
+        console.log(data,'财务中心');
+
         this.tableDataLoading = false;
         let returnData = data.data;
         this.tableData = returnData.list;

+ 213 - 43
src/views/mission/mission.vue

@@ -84,6 +84,43 @@
           >&nbsp;&nbsp;
         </div>
         <div style="position: relative;display: inline-block;margin: 3px;">
+          <span>商铺类型:</span>
+          <el-select
+              v-model="spEarningTypeId"
+              style="width:200px;"
+              @change="phoneSelect"
+              :clearable="true"
+            >
+              <el-option
+                v-for="item in spEarnings"
+                :key="item.id"
+                :label="item.shopTypeName"
+                :value="item.id"
+              >
+              </el-option> </el-select
+            >&nbsp;&nbsp;&nbsp;
+        </div>
+        <div style="position: relative;display: inline-block;margin: 3px;">
+          <span>优惠券类型:</span>
+          <el-select
+              v-model="couponType"
+              style="width:200px;"
+              @change="phoneSelect"
+              :clearable="true"
+            >
+              <el-option
+                label="平台"
+                :value="0"
+              >
+              </el-option>
+              <el-option
+                label="商家"
+                :value="1"
+              >
+              </el-option>
+          </el-select>&nbsp;&nbsp;&nbsp;
+        </div>
+        <div style="position: relative;display: inline-block;margin: 3px;">
           <span>手机号:</span>
           <el-input
             style="width: 200px;"
@@ -96,14 +133,19 @@
         </div>
         <div style="position: relative;display: inline-block;margin: 3px;">
           <span>骑手所在站点:</span>
-          <el-select @change="phoneSelect" :clearable="true" v-model="stationName" placeholder="请选择骑手所在站点">
-        <el-option
-          :label="i.stationName"
-          :value="i.id"
-          :key="i.id"
-          v-for="i in stationData"
-        ></el-option>
-      </el-select>&nbsp;&nbsp;
+          <el-select
+            @change="phoneSelect"
+            :clearable="true"
+            v-model="stationName"
+            placeholder="请选择骑手所在站点"
+          >
+            <el-option
+              :label="i.stationName"
+              :value="i.id"
+              :key="i.id"
+              v-for="i in stationData"
+            ></el-option> </el-select
+          >&nbsp;&nbsp;
         </div>
         <div style="position: relative;display: inline-block; margin: 3px;">
           <span>骑手电话:</span>
@@ -243,6 +285,7 @@
           </template>
         </el-table-column>
         <el-table-column prop="phone" label="手机号"></el-table-column>
+        <el-table-column prop="shopTypeName" label="商铺类型"></el-table-column>
         <el-table-column prop="shopName" label="商铺信息" width="300">
           <template slot-scope="scope">
             <div>店铺名称:{{ scope.row.shopName }}</div>
@@ -364,7 +407,12 @@
         <el-table-column
           prop="activityTitle"
           label="活动名称"
-          width="200"
+          width="160"
+        ></el-table-column>
+        <el-table-column
+          prop="couponTypeRemark"
+          label="优惠券类型"
+          width="100"
         ></el-table-column>
         <el-table-column prop="" label="活动优惠金额(元)" width="100">
           <template slot-scope="scope">
@@ -407,6 +455,7 @@
         </el-table-column>
         <el-table-column prop="remark" label="订单备注" width="150">
         </el-table-column>
+
         <el-table-column prop="createTime" label="创建时间"></el-table-column>
         <el-table-column prop="payTime" label="支付时间"></el-table-column>
         <el-table-column prop="payType" label="支付方式" width="100">
@@ -453,7 +502,17 @@
             >
           </template>
         </el-table-column>
-
+        <el-table-column
+          fixed="right"
+          prop="isPrint"
+          label="小票打印状态"
+          width="80"
+        >
+          <template slot-scope="scope">
+            <span v-if="scope.row.isPrint === 0 || scope.row.isPrint === ''">未打印</span>
+            <span v-if="scope.row.isPrint === 1">已打印</span>
+          </template>
+        </el-table-column>
         <el-table-column
           fixed="right"
           prop="indentState"
@@ -513,8 +572,7 @@
               v-if="scope.row.status === 6"
               :disabled="!isAuth('mission:qucan')"
               @click="wancheng(scope.row)"
-              >制作已完成</el-button
-            >
+            >制作已完成</el-button>
             <el-button
               size="mini"
               type="danger"
@@ -522,12 +580,11 @@
               style="margin: 10px;"
               v-if="
                 scope.row.status === 3 ||
-                  scope.row.status === 6 ||
-                  scope.row.status === 7
+                scope.row.status === 6 ||
+                scope.row.status === 7
               "
               @click="tuikuan(scope.row)"
-              >退款</el-button
-            >
+            >退款</el-button>
             <el-button
               size="mini"
               type="primary"
@@ -535,28 +592,38 @@
               :disabled="!isAuth('mission:qucan')"
               @click="wancheng(scope.row)"
               style="margin: 5px 0;"
-              >{{ scope.row.orderType == 1 ? "餐品已完成" : "餐品已完成" }}
+            >{{ scope.row.orderType == 1 ? "餐品已完成" : "餐品已完成" }}
             </el-button>
             <el-button
               size="mini"
               type="primary"
               v-if="
                 scope.row.status == 3 ||
-                  scope.row.status === 4 ||
-                  scope.row.status === 6
+                scope.row.status === 4 ||
+                scope.row.status === 6
               "
               :disabled="!isAuth('mission:qucan')"
               @click="dayin(scope.row)"
               style="margin: 3px;"
-              >打印小票</el-button
-            >
+            >打印小票</el-button>
+            <el-button
+              size="mini"
+              type="primary"
+              v-if="
+                scope.row.status == 3 ||
+                scope.row.status === 4 ||
+                scope.row.status === 6
+              "
+              :disabled="!isAuth('mission:mingxi')"
+              @click="detailClick(scope.row)"
+              style="margin: 3px;"
+            >打印小票明细</el-button>
             <el-button
               size="mini"
               type="primary"
               @click="complainDetails(scope.row)"
               style="margin: 3px;"
-              >聊天内容
-            </el-button>
+            >聊天内容</el-button>
             <el-button
               size="mini"
               type="primary"
@@ -564,8 +631,7 @@
               :disabled="!isAuth('orderCenterRun:zhuandan')"
               @click="zhuandan(scope.row)"
               style="margin: 3px;"
-              >转单</el-button
-            >
+            >转单</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -921,6 +987,45 @@
         </el-pagination>
       </div>
     </el-dialog>
+
+    <!-- 打印小票明细 -->
+    <el-dialog
+      custom-class="detail"
+      :visible.sync="detailVisible"
+      center
+      title="小票明细"
+      :close-on-click-modal="false"
+    >
+      <el-table v-loading="detailLoading" :data="detailData.list">
+        <el-table-column fixed prop="id" label="打印编号"></el-table-column>
+        <el-table-column
+          fixed
+          prop="orderStatus"
+          label="打印时订单状态"
+        ></el-table-column>
+        <el-table-column
+          fixed
+          prop="isAppend"
+          label="打印状态是否补打"
+        ></el-table-column>
+        <el-table-column prop="createTime" label="打印时间"> </el-table-column>
+      </el-table>
+      <div style="text-align: center;margin-top: 10px;">
+        <el-pagination
+          @size-change="detailSizeChange"
+          @current-change="detailCurrentChange"
+          :page-sizes="[10, 20, 30, 40]"
+          :page-size="detailLimit"
+          :current-page="detailPage"
+          layout="total,sizes, prev, pager, next"
+          :total="detailData.totalCount"
+        >
+        </el-pagination>
+      </div>
+      <!-- <div class="btn">
+        <el-button type="primary" @click="exportAffirm">确定</el-button>
+      </div> -->
+    </el-dialog>
   </el-tabs>
 </template>
 
@@ -930,7 +1035,10 @@ export default {
     return {
       dialogVisible: false,
       stationData: [], // 骑手站点数据
-      stationName:'',
+      stationName: "",
+      spEarnings:[],// 商铺类型数据
+      couponType:'',// 优惠券类型
+      spEarningTypeId:"",
       imageUrl: [],
       limit: 10,
       page: 1,
@@ -1172,12 +1280,20 @@ export default {
       // 导出限制
       exportTitle: "导出错误",
       exportVisible: false,
-      exportFlag: 1 //1 超出限制  2导出中
+      exportFlag: 1, //1 超出限制  2导出中
+
+      // 打印小票明细
+      detailVisible: false,
+      detailLoading: false,
+      detailData: {},
+      detailId: "",
+      detailLimit: 10,
+      detailPage: 1
     };
   },
   methods: {
-       // 站点下拉框
-       stationList() {
+    // 站点下拉框
+    stationList() {
       this.$http({
         url: this.$http.adornUrl("admin/riderStation/stationList"),
         method: "get",
@@ -1187,6 +1303,21 @@ export default {
         this.stationData = data.data;
       });
     },
+    shopTypeList(){
+      this.$http({
+        url: this.$http.adornUrl("admin/shoptype/selectShopTypeList"),
+        method: "get",
+        params: this.$http.adornParams({
+          page: 1,
+          limit: 1000
+        })
+      }).then(({ data }) => {
+        console.log(data,'商铺类型');
+
+        let returnData = data.data.list;
+        this.spEarnings = returnData;
+      });
+    },
     // 订单跳转到短信界面
     orderSkip(row) {
       console.log(row.indentId);
@@ -1539,6 +1670,9 @@ export default {
       this.endTime = "";
       this.payStartTime = "";
       this.payEndTime = "";
+      this.stationName=""
+      this.spEarningTypeId=""
+      this.couponType=""
       this.taskdataSelect();
     },
     // 查询
@@ -1604,10 +1738,12 @@ export default {
           endTime: this.endTime,
           payStartTime: this.payStartTime,
           payEndTime: this.payEndTime,
-          riderStationId:this.stationName
+          riderStationId: this.stationName,
+          shopTypeId:this.spEarningTypeId,
+          couponType:this.couponType
         })
       }).then(({ data }) => {
-        console.log(data,'订单中心');
+        console.log(data, "订单中心");
 
         this.tableDataLoading = false;
         let returnData = data.data;
@@ -1730,7 +1866,8 @@ export default {
         url: this.$http.adornUrl("admin/order/print"),
         method: "post",
         params: this.$http.adornParams({
-          orderId: row.orderId
+          orderId: row.orderId,
+          isAppend: 1,// 1 默认补打
         })
       }).then(({ data }) => {
         if (data.code == 0) {
@@ -1904,6 +2041,36 @@ export default {
       this.phoneU = "";
       this.dataSelectUser();
     },
+
+    // 打印小票明细  (-------------------------------------------------------)
+    detailClick(row) {
+      this.detailVisible = true;
+      this.detailLoading = true;
+      this.detailId = row ? row.orderId : this.detailId;
+      this.$http({
+        url: this.$http.adornUrl("admin/printInfo/getOrderPrintDetailList"),
+        method: "get",
+        params: this.$http.adornParams({
+          page: this.detailPage,
+          limit: this.detailLimit,
+          orderId: this.detailId
+        })
+      }).then(({ data }) => {
+        console.log(data, "打印小票明细");
+        this.detailLoading = false;
+        let returnData = data.data;
+        this.detailData = returnData;
+      });
+    },
+    detailSizeChange(val) {
+      this.detailLimit = val;
+      this.detailClick();
+    },
+    detailCurrentChange(val) {
+      this.detailPage = val;
+      this.detailClick();
+    },
+
     // 导出
     // exportBtn() {
     //   var userId = this.$cookie.get('userId')
@@ -1985,7 +2152,9 @@ export default {
             endTime: this.endTime,
             payStartTime: this.payStartTime,
             payEndTime: this.payEndTime,
-            riderStationId:this.stationName
+            riderStationId: this.stationName,
+            shopTypeId:this.spEarningTypeId,
+            couponType:this.couponType
           })
         }).then(({ data }) => {
           console.log(data, "导出");
@@ -2021,16 +2190,7 @@ export default {
     // this.classifySelect()
     this.taskdataSelect();
     this.stationList();
-    // this.$http({
-    //   url: this.$http.adornUrl(`shop/shopmoney/accountEntryManagement`),
-    //   method: "get",
-    //   params: this.$http.adornParams({
-    //     page: 1,
-    //     limit: 10,
-    //   })
-    // }).then(({ data }) => {
-    //   console.log(data,'入账管理');
-    // });
+    this.shopTypeList()
   }
 };
 </script>
@@ -2067,4 +2227,14 @@ export default {
   display: flex;
   flex-direction: row-reverse;
 }
+
+/* 打印小票明细 */
+.el-tabs >>> .detail {
+  width: 700px;
+}
+.el-tabs >>> .detail .btn {
+  margin-top: 15px;
+  display: flex;
+  flex-direction: row-reverse;
+}
 </style>

+ 270 - 260
src/views/modules/sys/menu-add-or-update.vue

@@ -1,260 +1,270 @@
-<template>
-  <el-dialog
-    :title="!dataForm.id ? '新增' : '修改'"
-    :close-on-click-modal="false"
-    :visible.sync="visible">
-    <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
-      <el-form-item label="类型" prop="type">
-        <el-radio-group v-model="dataForm.type">
-          <el-radio v-for="(type, index) in dataForm.typeList" :label="index" :key="index">{{ type }}</el-radio>
-        </el-radio-group>
-      </el-form-item>
-      <el-form-item :label="dataForm.typeList[dataForm.type] + '名称'" prop="name">
-        <el-input v-model="dataForm.name" :placeholder="dataForm.typeList[dataForm.type] + '名称'"></el-input>
-      </el-form-item>
-      <el-form-item label="上级菜单" prop="parentName">
-        <el-popover
-          ref="menuListPopover"
-          placement="bottom-start"
-          trigger="click">
-          <el-tree
-            :data="menuList"
-            :props="menuListTreeProps"
-            node-key="menuId"
-            ref="menuListTree"
-            @current-change="menuListTreeCurrentChangeHandle"
-            :default-expand-all="true"
-            :highlight-current="true"
-            :expand-on-click-node="false">
-          </el-tree>
-        </el-popover>
-        <el-input v-model="dataForm.parentName" v-popover:menuListPopover :readonly="true" placeholder="点击选择上级菜单" class="menu-list__input"></el-input>
-      </el-form-item>
-      <el-form-item v-if="dataForm.type === 1" label="菜单路由" prop="url">
-        <el-input v-model="dataForm.url" placeholder="菜单路由"></el-input>
-      </el-form-item>
-      <el-form-item v-if="dataForm.type !== 0" label="授权标识" prop="perms">
-        <el-input v-model="dataForm.perms" placeholder="多个用逗号分隔, 如: user:list,user:create"></el-input>
-      </el-form-item>
-      <el-form-item v-if="dataForm.type !== 2" label="排序号" prop="orderNum">
-        <el-input-number v-model="dataForm.orderNum" controls-position="right" :min="0" label="排序号"></el-input-number>
-      </el-form-item>
-      <el-form-item v-if="dataForm.type !== 2" label="菜单图标" prop="icon">
-        <el-row>
-          <el-col :span="22">
-            <el-popover
-              ref="iconListPopover"
-              placement="bottom-start"
-              trigger="click"
-              popper-class="mod-menu__icon-popover">
-              <div class="mod-menu__icon-inner">
-                <div class="mod-menu__icon-list">
-                  <el-button
-                    v-for="(item, index) in iconList"
-                    :key="index"
-                    @click="iconActiveHandle(item)"
-                    :class="{ 'is-active': item === dataForm.icon }">
-                    <icon-svg :name="item"></icon-svg>
-                  </el-button>
-                </div>
-              </div>
-            </el-popover>
-            <el-input v-model="dataForm.icon" v-popover:iconListPopover :readonly="true" placeholder="菜单图标名称" class="icon-list__input"></el-input>
-          </el-col>
-          <el-col :span="2" class="icon-list__tips">
-            <el-tooltip placement="top" effect="light">
-              <div slot="content">全站推荐使用SVG Sprite, 详细请参考:<a href="//github.com/daxiongYang/sz-fast-vue/blob/master/src/icons/index.js" target="_blank">icons/index.js</a>描述</div>
-              <i class="el-icon-warning"></i>
-            </el-tooltip>
-          </el-col>
-        </el-row>
-      </el-form-item>
-    </el-form>
-    <span slot="footer" class="dialog-footer">
-      <el-button @click="visible = false">取消</el-button>
-      <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
-    </span>
-  </el-dialog>
-</template>
-
-<script>
-  import { treeDataTranslate } from '@/utils'
-  import Icon from '@/icons'
-  export default {
-    data () {
-      var validateUrl = (rule, value, callback) => {
-        if (this.dataForm.type === 1 && !/\S/.test(value)) {
-          callback(new Error('菜单URL不能为空'))
-        } else {
-          callback()
-        }
-      }
-      return {
-        visible: false,
-        dataForm: {
-          id: 0,
-          type: 1,
-          typeList: ['目录', '菜单', '按钮'],
-          name: '',
-          parentId: 0,
-          parentName: '',
-          url: '',
-          perms: '',
-          orderNum: 0,
-          icon: '',
-          iconList: []
-        },
-        dataRule: {
-          name: [
-            { required: true, message: '菜单名称不能为空', trigger: 'blur' }
-          ],
-          parentName: [
-            { required: true, message: '上级菜单不能为空', trigger: 'change' }
-          ],
-          url: [
-            { validator: validateUrl, trigger: 'blur' }
-          ]
-        },
-        menuList: [],
-        menuListTreeProps: {
-          label: 'name',
-          children: 'children'
-        }
-      }
-    },
-    created () {
-      this.iconList = Icon.getNameList()
-    },
-    methods: {
-      init (id) {
-        this.dataForm.id = id || 0
-        this.$http({
-          url: this.$http.adornUrl('sys/menu/select'),
-          method: 'get',
-          params: this.$http.adornParams()
-        }).then(({data}) => {
-          this.menuList = treeDataTranslate(data.menuList, 'menuId')
-        }).then(() => {
-          this.visible = true
-          this.$nextTick(() => {
-            this.$refs['dataForm'].resetFields()
-          })
-        }).then(() => {
-          if (!this.dataForm.id) {
-            // 新增
-            this.menuListTreeSetCurrentNode()
-          } else {
-            // 修改
-            this.$http({
-              url: this.$http.adornUrl(`/sys/menu/info/${this.dataForm.id}`),
-              method: 'get',
-              params: this.$http.adornParams()
-            }).then(({data}) => {
-              this.dataForm.id = data.menu.menuId
-              this.dataForm.type = data.menu.type
-              this.dataForm.name = data.menu.name
-              this.dataForm.parentId = data.menu.parentId
-              this.dataForm.url = data.menu.url
-              this.dataForm.perms = data.menu.perms
-              this.dataForm.orderNum = data.menu.orderNum
-              this.dataForm.icon = data.menu.icon
-              this.menuListTreeSetCurrentNode()
-            })
-          }
-        })
-      },
-      // 菜单树选中
-      menuListTreeCurrentChangeHandle (data, node) {
-        this.dataForm.parentId = data.menuId
-        this.dataForm.parentName = data.name
-      },
-      // 菜单树设置当前选中节点
-      menuListTreeSetCurrentNode () {
-        this.$refs.menuListTree.setCurrentKey(this.dataForm.parentId)
-        this.dataForm.parentName = (this.$refs.menuListTree.getCurrentNode() || {})['name']
-      },
-      // 图标选中
-      iconActiveHandle (iconName) {
-        this.dataForm.icon = iconName
-      },
-      // 表单提交
-      dataFormSubmit () {
-        this.$refs['dataForm'].validate((valid) => {
-          if (valid) {
-            this.$http({
-              url: this.$http.adornUrl(`/sys/menu/${!this.dataForm.id ? 'save' : 'update'}`),
-              method: 'post',
-              data: this.$http.adornData({
-                'menuId': this.dataForm.id || undefined,
-                'type': this.dataForm.type,
-                'name': this.dataForm.name,
-                'parentId': this.dataForm.parentId,
-                'url': this.dataForm.url,
-                'perms': this.dataForm.perms,
-                'orderNum': this.dataForm.orderNum,
-                'icon': this.dataForm.icon
-              })
-            }).then(({data}) => {
-              if (data && data.code === 0) {
-                this.$message({
-                  message: '操作成功',
-                  type: 'success',
-                  duration: 1500,
-                  onClose: () => {
-                    this.visible = false
-                    this.$emit('refreshDataList')
-                  }
-                })
-              } else {
-                this.$message.error(data.msg)
-              }
-            })
-          }
-        })
-      }
-    }
-  }
-</script>
-
-<style lang="scss">
-  .mod-menu {
-    .menu-list__input,
-    .icon-list__input {
-       > .el-input__inner {
-        cursor: pointer;
-      }
-    }
-    &__icon-popover {
-      width: 458px;
-      overflow: hidden;
-    }
-    &__icon-inner {
-      width: 478px;
-      max-height: 258px;
-      overflow-x: hidden;
-      overflow-y: auto;
-    }
-    &__icon-list {
-      width: 458px;
-      padding: 0;
-      margin: -8px 0 0 -8px;
-      > .el-button {
-        padding: 8px;
-        margin: 8px 0 0 8px;
-        > span {
-          display: inline-block;
-          vertical-align: middle;
-          width: 18px;
-          height: 18px;
-          font-size: 18px;
-        }
-      }
-    }
-    .icon-list__tips {
-      font-size: 18px;
-      text-align: center;
-      color: #e6a23c;
-      cursor: pointer;
-    }
-  }
-</style>
+<template>
+  <el-dialog
+    :title="!dataForm.id ? '新增' : '修改'"
+    :close-on-click-modal="false"
+    :visible.sync="visible">
+    <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
+      <el-form-item label="类型" prop="type">
+        <el-radio-group v-model="dataForm.type">
+          <el-radio v-for="(type, index) in dataForm.typeList" :label="index" :key="index">{{ type }}</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item :label="dataForm.typeList[dataForm.type] + '名称'" prop="name">
+        <el-input v-model="dataForm.name" :placeholder="dataForm.typeList[dataForm.type] + '名称'"></el-input>
+      </el-form-item>
+      <el-form-item label="上级菜单" prop="parentName">
+        <el-popover
+          ref="menuListPopover"
+          popper-class="menu-add-update"
+          placement="left-start"
+          trigger="click">
+          <el-tree
+            :data="menuList"
+            :props="menuListTreeProps"
+            node-key="menuId"
+            ref="menuListTree"
+            @current-change="menuListTreeCurrentChangeHandle"
+            :default-expand-all="true"
+            :highlight-current="true"
+            :expand-on-click-node="false">
+          </el-tree>
+        </el-popover>
+        <el-input v-model="dataForm.parentName" v-popover:menuListPopover :readonly="true" placeholder="点击选择上级菜单" class="menu-list__input"></el-input>
+      </el-form-item>
+      <el-form-item v-if="dataForm.type === 1" label="菜单路由" prop="url">
+        <el-input v-model="dataForm.url" placeholder="菜单路由"></el-input>
+      </el-form-item>
+      <el-form-item v-if="dataForm.type !== 0" label="授权标识" prop="perms">
+        <el-input v-model="dataForm.perms" placeholder="多个用逗号分隔, 如: user:list,user:create"></el-input>
+      </el-form-item>
+      <el-form-item v-if="dataForm.type !== 2" label="排序号" prop="orderNum">
+        <el-input-number v-model="dataForm.orderNum" controls-position="right" :min="0" label="排序号"></el-input-number>
+      </el-form-item>
+      <el-form-item v-if="dataForm.type !== 2" label="菜单图标" prop="icon">
+        <el-row>
+          <el-col :span="22">
+            <el-popover
+              ref="iconListPopover"
+              placement="bottom-start"
+              trigger="click"
+              popper-class="mod-menu__icon-popover">
+              <div class="mod-menu__icon-inner">
+                <div class="mod-menu__icon-list">
+                  <el-button
+                    v-for="(item, index) in iconList"
+                    :key="index"
+                    @click="iconActiveHandle(item)"
+                    :class="{ 'is-active': item === dataForm.icon }">
+                    <icon-svg :name="item"></icon-svg>
+                  </el-button>
+                </div>
+              </div>
+            </el-popover>
+            <el-input v-model="dataForm.icon" v-popover:iconListPopover :readonly="true" placeholder="菜单图标名称" class="icon-list__input"></el-input>
+          </el-col>
+          <el-col :span="2" class="icon-list__tips">
+            <el-tooltip placement="top" effect="light">
+              <div slot="content">全站推荐使用SVG Sprite, 详细请参考:<a href="//github.com/daxiongYang/sz-fast-vue/blob/master/src/icons/index.js" target="_blank">icons/index.js</a>描述</div>
+              <i class="el-icon-warning"></i>
+            </el-tooltip>
+          </el-col>
+        </el-row>
+      </el-form-item>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="visible = false">取消</el-button>
+      <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+  import { treeDataTranslate } from '@/utils'
+  import Icon from '@/icons'
+  export default {
+    data () {
+      var validateUrl = (rule, value, callback) => {
+        if (this.dataForm.type === 1 && !/\S/.test(value)) {
+          callback(new Error('菜单URL不能为空'))
+        } else {
+          callback()
+        }
+      }
+      return {
+        visible: false,
+        dataForm: {
+          id: 0,
+          type: 1,
+          typeList: ['目录', '菜单', '按钮'],
+          name: '',
+          parentId: 0,
+          parentName: '',
+          url: '',
+          perms: '',
+          orderNum: 0,
+          icon: '',
+          iconList: []
+        },
+        dataRule: {
+          name: [
+            { required: true, message: '菜单名称不能为空', trigger: 'blur' }
+          ],
+          parentName: [
+            { required: true, message: '上级菜单不能为空', trigger: 'change' }
+          ],
+          url: [
+            { validator: validateUrl, trigger: 'blur' }
+          ]
+        },
+        menuList: [],
+        menuListTreeProps: {
+          label: 'name',
+          children: 'children'
+        }
+      }
+    },
+    created () {
+      this.iconList = Icon.getNameList()
+    },
+    methods: {
+      init (id) {
+        this.dataForm.id = id || 0
+        this.$http({
+          url: this.$http.adornUrl('sys/menu/select'),
+          method: 'get',
+          params: this.$http.adornParams()
+        }).then(({data}) => {
+          this.menuList = treeDataTranslate(data.menuList, 'menuId')
+        }).then(() => {
+          this.visible = true
+          this.$nextTick(() => {
+            this.$refs['dataForm'].resetFields()
+          })
+        }).then(() => {
+          if (!this.dataForm.id) {
+            // 新增
+            this.menuListTreeSetCurrentNode()
+          } else {
+            // 修改
+            this.$http({
+              url: this.$http.adornUrl(`/sys/menu/info/${this.dataForm.id}`),
+              method: 'get',
+              params: this.$http.adornParams()
+            }).then(({data}) => {
+              this.dataForm.id = data.menu.menuId
+              this.dataForm.type = data.menu.type
+              this.dataForm.name = data.menu.name
+              this.dataForm.parentId = data.menu.parentId
+              this.dataForm.url = data.menu.url
+              this.dataForm.perms = data.menu.perms
+              this.dataForm.orderNum = data.menu.orderNum
+              this.dataForm.icon = data.menu.icon
+              this.menuListTreeSetCurrentNode()
+            })
+          }
+        })
+      },
+      // 菜单树选中
+      menuListTreeCurrentChangeHandle (data, node) {
+        this.dataForm.parentId = data.menuId
+        this.dataForm.parentName = data.name
+      },
+      // 菜单树设置当前选中节点
+      menuListTreeSetCurrentNode () {
+        this.$refs.menuListTree.setCurrentKey(this.dataForm.parentId)
+        this.dataForm.parentName = (this.$refs.menuListTree.getCurrentNode() || {})['name']
+      },
+      // 图标选中
+      iconActiveHandle (iconName) {
+        this.dataForm.icon = iconName
+      },
+      // 表单提交
+      dataFormSubmit () {
+        this.$refs['dataForm'].validate((valid) => {
+          if (valid) {
+            this.$http({
+              url: this.$http.adornUrl(`/sys/menu/${!this.dataForm.id ? 'save' : 'update'}`),
+              method: 'post',
+              data: this.$http.adornData({
+                'menuId': this.dataForm.id || undefined,
+                'type': this.dataForm.type,
+                'name': this.dataForm.name,
+                'parentId': this.dataForm.parentId,
+                'url': this.dataForm.url,
+                'perms': this.dataForm.perms,
+                'orderNum': this.dataForm.orderNum,
+                'icon': this.dataForm.icon
+              })
+            }).then(({data}) => {
+              if (data && data.code === 0) {
+                this.$message({
+                  message: '操作成功',
+                  type: 'success',
+                  duration: 1500,
+                  onClose: () => {
+                    this.visible = false
+                    this.$emit('refreshDataList')
+                  }
+                })
+              } else {
+                this.$message.error(data.msg)
+              }
+            })
+          }
+        })
+      }
+    }
+  }
+</script>
+
+<style lang="scss">
+  .mod-menu {
+    .menu-list__input,
+    .icon-list__input {
+       > .el-input__inner {
+        cursor: pointer;
+      }
+    }
+    &__icon-popover {
+      width: 458px;
+      overflow: hidden;
+    }
+    &__icon-inner {
+      width: 478px;
+      max-height: 258px;
+      overflow-x: hidden;
+      overflow-y: auto;
+    }
+    &__icon-list {
+      width: 458px;
+      padding: 0;
+      margin: -8px 0 0 -8px;
+      > .el-button {
+        padding: 8px;
+        margin: 8px 0 0 8px;
+        > span {
+          display: inline-block;
+          vertical-align: middle;
+          width: 18px;
+          height: 18px;
+          font-size: 18px;
+        }
+      }
+    }
+    .icon-list__tips {
+      font-size: 18px;
+      text-align: center;
+      color: #e6a23c;
+      cursor: pointer;
+    }
+  }
+
+  .menu-add-update{
+    // border: 1px solid red;
+    .el-tree{
+      width: 200px;
+      height: 800px;
+      overflow: auto;
+    }
+  }
+</style>

+ 1 - 0
src/views/recharge/recharge.vue

@@ -84,6 +84,7 @@
           <el-button
             size="mini"
             type="primary"
+            :disabled="!isAuth('recharge:xiugai')"
             @click="remarkClick(scope.row)"
             style="margin: 5px;"
           >

+ 114 - 71
src/views/runErrands/financeList.vue

@@ -10,7 +10,7 @@
             placeholder="请输入支付宝账号"
             v-model="zhifubao"
           ></el-input
-          >&nbsp;&nbsp;
+          >&nbsp;&nbsp;&nbsp;
           <span
             @click="phoneSelect"
             style="position: absolute;right: 18px;top:8px;"
@@ -26,7 +26,7 @@
             placeholder="请输入支付宝名称"
             v-model="zhifubaoName"
           ></el-input
-          >&nbsp;&nbsp;
+          >&nbsp;&nbsp;&nbsp;
           <span
             @click="phoneSelect"
             style="position: absolute;right: 18px;top:8px;"
@@ -53,7 +53,7 @@
               :value="item.value"
             >
             </el-option> </el-select
-          >&nbsp;&nbsp;
+          >&nbsp;&nbsp;&nbsp;
         </div>
         <div style="margin:5px;display: inline-block;">
           <span>开始时间:</span>
@@ -80,7 +80,8 @@
             value-format="yyyy-MM-dd"
             placeholder="选择截止时间"
           >
-          </el-date-picker>
+          </el-date-picker
+          >&nbsp;&nbsp;&nbsp;
         </div>
         <div style="position: relative;display: inline-block;">
           <span>骑手所在站点:</span>
@@ -95,8 +96,11 @@
               :value="i.id"
               :key="i.id"
               v-for="i in stationData"
-            ></el-option>
-          </el-select>
+            ></el-option> </el-select
+          >&nbsp;&nbsp;&nbsp;
+        </div>
+        <div style="position: relative;display: inline-block;margin:5px;">
+          <span>提现总金额:{{ totalMoney }}</span>
         </div>
       </div>
       <div style="display: inline-block;">
@@ -141,6 +145,17 @@
         <el-table-column type="selection"> </el-table-column>
         <el-table-column fixed prop="id" label="编号" width="80">
         </el-table-column>
+        <el-table-column prop="userName" label="骑手名称" width="150">
+        </el-table-column>
+        <el-table-column prop="phoneNumber" label="骑手手机号" width="150">
+        </el-table-column>
+        <el-table-column prop="bankCardNo" label="银行卡号" width="150">
+        </el-table-column>
+        <el-table-column prop="openBank" label="开户银行" width="150">
+        </el-table-column>
+        <el-table-column prop="bankRealName" label="开户人姓名" width="150">
+        </el-table-column>
+
         <el-table-column prop="zhifubao" label="支付宝账号" width="150">
           <template slot-scope="scope">
             <span
@@ -193,14 +208,15 @@
         </el-table-column>
         <!-- <el-table-column prop="phone" label="手机号" width="150">
 				</el-table-column> -->
-        <el-table-column prop="money" label="提现金额" width="100">
-        </el-table-column>
+
         <el-table-column prop="state" label="提现方式" width="100">
           <template slot-scope="scope">
             <span v-if="scope.row.classify == 1">支付宝</span>
             <span v-if="scope.row.classify == 2">微信小程序</span>
           </template>
         </el-table-column>
+        <el-table-column prop="money" label="提现金额" width="100">
+        </el-table-column>
         <el-table-column prop="state" label="状态" width="100">
           <template slot-scope="scope">
             <span
@@ -212,6 +228,10 @@
             <span v-if="scope.row.state == -1">已拒绝</span>
           </template>
         </el-table-column>
+        <el-table-column prop="rate" label="手续费" width="150">
+        </el-table-column>
+        <el-table-column prop="currentBalance" label="当前余额" width="150">
+        </el-table-column>
         <el-table-column prop="refund" label="拒绝原因" width="220">
         </el-table-column>
         <el-table-column prop="createAt" label="申请时间" width="170">
@@ -222,6 +242,7 @@
         </el-table-column>
         <el-table-column prop="stationName" label="骑手所在站点" width="150">
         </el-table-column>
+
         <el-table-column fixed="right" label="操作" width="180">
           <template slot-scope="scope">
             <el-button
@@ -1025,6 +1046,7 @@
 export default {
   data() {
     return {
+      totalMoney: "", // 提现总金额
       stationData: [], // 骑手站点数据
       stationName: "",
       page: 1,
@@ -1567,60 +1589,60 @@ export default {
       this.dataSelect1();
     },
     // 支付宝账号查询
-    //     zfbselect () {
-    //       if (this.zhifubao == '') {
-    //         this.$notify({
-    //           title: '提示',
-    //           duration: 1800,
-    //           message: '请输入支付宝账号',
-    //           type: 'error'
-    //         })
-    //         return
-    //       }
-    // this.page = 1
-    //       this.tableDataLoading = true
-    //       this.$http({
-    //         url: this.$http.adornUrl('user/selectPayDetails'),
-    //         method: 'get',
-    //         params: this.$http.adornParams({
-    // 	  'page':this.page,
-    // 	  'limit':this.limit,
-    // 	  'zhifubao':this.zhifubao
-    //   })
-    //       }).then(({data}) => {
-    //         this.tableDataLoading = false
-    //         let returnData = data.data
-    //        this.tableData = returnData.list
-    //        this.totalnum = returnData.totalCount
-    //       })
-    //     },
-    //     // 支付宝名称
-    //     qdselect () {
-    //       if (this.zhifubaoName == '') {
-    //         this.$notify({
-    //           title: '提示',
-    //           duration: 1800,
-    //           message: '请输入渠道账号',
-    //           type: 'error'
-    //         })
-    //         return
-    //       }
-    //       this.tableDataLoading = true
-    //       this.$http({
-    //         url: this.$http.adornUrl('user/selectPayDetails'),
-    //         method: 'get',
-    //         params: this.$http.adornParams({
-    // 	  'page':this.page,
-    // 	  'limit':this.limit,
-    // 	  'zhifubaoName':this.zhifubaoName
-    //   })
-    //       }).then(({data}) => {
-    //         this.tableDataLoading = false
-    //         let returnData = data.data
-    //         this.tableData = returnData.list
-    //         this.totalnum = returnData.totalCount
-    //       })
-    //     },
+    zfbselect() {
+      if (this.zhifubao == "") {
+        this.$notify({
+          title: "提示",
+          duration: 1800,
+          message: "请输入支付宝账号",
+          type: "error"
+        });
+        return;
+      }
+      this.page = 1;
+      this.tableDataLoading = true;
+      this.$http({
+        url: this.$http.adornUrl("user/selectPayDetails"),
+        method: "get",
+        params: this.$http.adornParams({
+          page: this.page,
+          limit: this.limit,
+          zhifubao: this.zhifubao
+        })
+      }).then(({ data }) => {
+        this.tableDataLoading = false;
+        let returnData = data.data;
+        this.tableData = returnData.list;
+        this.totalnum = returnData.totalCount;
+      });
+    },
+    // 支付宝名称
+    // qdselect() {
+    //   if (this.zhifubaoName == "") {
+    //     this.$notify({
+    //       title: "提示",
+    //       duration: 1800,
+    //       message: "请输入渠道账号",
+    //       type: "error"
+    //     });
+    //     return;
+    //   }
+    //   this.tableDataLoading = true;
+    //   this.$http({
+    //     url: this.$http.adornUrl("user/selectPayDetails"),
+    //     method: "get",
+    //     params: this.$http.adornParams({
+    //       page: this.page,
+    //       limit: this.limit,
+    //       zhifubaoName: this.zhifubaoName
+    //     })
+    //   }).then(({ data }) => {
+    //     this.tableDataLoading = false;
+    //     let returnData = data.data;
+    //     this.tableData = returnData.list;
+    //     this.totalnum = returnData.totalCount;
+    //   });
+    // },
     // 获取数据列表
     dataSelect() {
       this.tableDataLoading = true;
@@ -1640,11 +1662,32 @@ export default {
           riderStationId: this.stationName
         })
       }).then(({ data }) => {
+        console.log(data, "跑腿财务中心");
+
         this.tableDataLoading = false;
         let returnData = data.data;
         this.tableData = returnData.list;
         this.totalnum = returnData.totalCount;
       });
+
+      //提现总金额
+      this.$http({
+        url: this.$http.adornUrl("cash/selectPayTotal"),
+        method: "get",
+        params: this.$http.adornParams({
+          zhifubaoName: this.zhifubaoName,
+          zhifubao: this.zhifubao,
+          type: this.type,
+          state: this.indentState,
+          phone: this.phone,
+          startTime: this.startTime,
+          endTime: this.endTime,
+          riderStationId: this.stationName
+        })
+      }).then(({ data }) => {
+        console.log(data, "提现总金额");
+        this.totalMoney = data.data;
+      });
     },
     // 获取数据列表
     dataSelect1() {
@@ -1864,15 +1907,15 @@ export default {
           method: "get",
           // responseType: "blob",
           params: this.$http.adornParams({
-            userId:userId,
-    			  'zhifubaoName': this.zhifubaoName,
-    			  'zhifubao': this.zhifubao,
-    			  'type':this.type,
-    			  'state':this.indentState,
-    			  'phone':this.phone,
-    			  'startTime': this.startTime,
-    			  'endTime': this.endTime,
-            riderStationId:this.stationName // 骑手站点
+            userId: userId,
+            zhifubaoName: this.zhifubaoName,
+            zhifubao: this.zhifubao,
+            type: this.type,
+            state: this.indentState,
+            phone: this.phone,
+            startTime: this.startTime,
+            endTime: this.endTime,
+            riderStationId: this.stationName // 骑手站点
           })
         }).then(({ data }) => {
           console.log(data, "导出");

+ 8 - 6
src/views/shopsList/shopWallet.vue

@@ -143,21 +143,21 @@
       <el-tab-pane label="提现银行账号信息" name="fourth">
         <div style="margin:10px 0;">
           <span>银行卡号:</span>
-          <el-input style="width: 200px;" clearable placeholder="请输入银行卡号"
+          <el-input style="width: 210px;" clearable placeholder="请输入银行卡号"
             v-model="yinghangData.cardNo">
-          </el-input>&nbsp;&nbsp;&nbsp;&nbsp;
+          </el-input>&nbsp;&nbsp;&nbsp;
         </div>
         <div style="position: relative;margin: 10px 0px;">
           <span>开户行:</span>
           <el-input style="width: 200px;" placeholder="请输入开户行名称"
             v-model="yinghangData.openBank">
-          </el-input>&nbsp;&nbsp
+          </el-input>&nbsp;&nbsp;&nbsp;
         </div>
         <div style="position: relative;margin: 10px 0px;">
           <span>开户人姓名:</span>
           <el-input style="width: 200px;" placeholder="请输入开户人姓名"
             v-model="yinghangData.realName">
-          </el-input>&nbsp;&nbsp
+          </el-input>&nbsp;&nbsp;&nbsp;
         </div>
         <el-button v-if="ifkaihuying" style="margin:50px;" type="primary" icon="document" @click="querenyinghangBtn">确认
         </el-button>
@@ -180,11 +180,11 @@
         <el-button type="primary" @click="refuseto()">确 定</el-button>
       </div>
     </el-dialog>
-    <!--    图片展示-->
+    <!-- 图片展示 -->
     <el-dialog title="图片" :visible.sync="dialogVisible" width="35%" :before-close="handleClose">
       <span v-if="imageUrl.length>0" v-for="(item, index) in imageUrl" :key="index" style="width: 100px;
         height: 100px;display:inline-block;">
-        <!--      <el-image style = "width: 100px; height: 100px" :src = "item" :preview-src-list="imageUrl"></el-image>-->
+        <!-- <el-image style = "width: 100px; height: 100px" :src = "item" :preview-src-list="imageUrl"></el-image> -->
         <img :src="item" alt="" style="width: 100px; height: 100px">
       </span>
       <span v-else>暂无图片</span>
@@ -884,6 +884,8 @@
         }).then(({
           data
         }) => {
+          console.log(data,'银行卡信息');
+
           if(data.msg=='success'){
             this.tableDataLoading = false
             let returnData = data.data

+ 21 - 8
src/views/shopsList/shopsList.vue

@@ -249,12 +249,24 @@
             ></el-input-number>
           </template>
         </el-table-column>
+        <el-table-column label="是否订阅消息配置" width="120">
+          <template slot-scope="scope">
+            <el-switch
+              v-model="scope.row.messageConfiguration"
+              @change="changeTj(scope.row)"
+              :active-value="0"
+              :inactive-value="1"
+              active-color="#13ce66"
+              inactive-color="#ff4949"
+            >
+            </el-switch>
+          </template>
+        </el-table-column>
         <el-table-column label="是否供货商" width="120">
           <template slot-scope="scope">
             <el-switch
               v-model="scope.row.isSupplier"
               @change="changeTj(scope.row)"
-              :disabled="!isAuth('userList:updateMoney')"
               :active-value="0"
               :inactive-value="1"
               active-color="#13ce66"
@@ -279,7 +291,6 @@
             <el-switch
               v-model="scope.row.isRecommend"
               @change="changeTj(scope.row)"
-              :disabled="!isAuth('userList:updateStatus')"
               :active-value="openValue"
               :inactive-value="closeValue"
               active-color="#13ce66"
@@ -1757,10 +1768,10 @@ export default {
       this.labels = [];
       this.shopPhone = "";
       this.shopUserId = "";
-      (this.shopUserName = ""),
-        (this.storeAddress = []),
-        (this.storeAddre = "请选择城市"),
-        (this.dialogFormVisible = true);
+      this.shopUserName = ""
+        this.storeAddress = []
+        this.storeAddre = "请选择城市"
+        this.dialogFormVisible = true;
       this.getMyLocation();
     },
 
@@ -2220,7 +2231,7 @@ export default {
         }
       });
     },
-    // 商铺骗保
+    // 商铺钱包
     shopsListQb(row) {
       this.$router.push({
         path: "/shopWallet",
@@ -3304,13 +3315,15 @@ export default {
     },
     // 是否推荐活动商家
     changeTj(row) {
+      console.log(row);
       this.$http({
         url: this.$http.adornUrl("admin/goods/updateGoodsShop"),
         method: "post",
         data: this.$http.adornData({
           isRecommend: row.isRecommend,
           shopId: row.shopId,
-          isSupplier:row.isSupplier
+          isSupplier:row.isSupplier,
+          messageConfiguration:row.messageConfiguration
         })
       }).then(({ data }) => {
         if (data.code == 0) {

+ 3 - 2
src/views/site/site.vue

@@ -11,6 +11,7 @@
         size="mini"
         type="primary"
         icon="document"
+        :disabled="!isAuth('site:tianjia')"
         @click="addSite"
         >添加站点</el-button
       >
@@ -22,10 +23,10 @@
       </el-table-column>
       <el-table-column label="操作" align="center" width="250">
         <template slot-scope="scope">
-          <el-button size="mini" type="primary" @click="updates(scope.row)">
+          <el-button size="mini" :disabled="!isAuth('site:xiugai')" type="primary" @click="updates(scope.row)">
             修改
           </el-button>
-          <el-button size="mini" type="danger" @click="deletes(scope.row)">
+          <el-button size="mini" type="danger" :disabled="!isAuth('site:shanchu')" @click="deletes(scope.row)">
             删除
           </el-button>
         </template>