xiaomei 8 сар өмнө
parent
commit
5d1d570b59
39 өөрчлөгдсөн 1931 нэмэгдсэн , 300 устгасан
  1. 2 1
      src/main.js
  2. 12 0
      src/pages.json
  3. 5 5
      src/pages/my/index.vue
  4. 13 3
      src/pages/szw-order-details/index.vue
  5. 13 3
      src/pages/szw-order-list/index.vue
  6. 14 3
      src/pages/to-pay-list/index.vue
  7. 13 3
      src/pages/top-up/index.vue
  8. 13 5
      src/pagesB/cinema/cinemaTicket.vue
  9. 13 3
      src/pagesB/cinema/confirmOrder.vue
  10. 13 3
      src/pagesB/directCharge/coupon.vue
  11. 13 5
      src/pagesB/directCharge/orderDetail.vue
  12. 13 3
      src/pagesB/directCharge/payment.vue
  13. 13 4
      src/pagesB/hotel/hotelDetail.vue
  14. 13 4
      src/pagesB/hotel/orderDetail.vue
  15. 23 0
      src/pagesB/my/eleContract.vue
  16. 1 1
      src/pagesB/my/shuZhiWallet.vue
  17. 13 5
      src/pagesB/orderingfood/detail.vue
  18. 13 3
      src/pagesB/orderingfood/payTheBill.vue
  19. 13 3
      src/pagesB/prepaidRefill/index.vue
  20. 13 4
      src/pagesB/prepaidRefill/orderDetail.vue
  21. 13 4
      src/pagesB/scenicSpotTicket/orderDetail.vue
  22. 13 4
      src/pagesB/scenicSpotTicket/scenicDetail.vue
  23. 13 3
      src/pagesB/topUp/Local.vue
  24. 152 0
      src/pagesC/components/upPdf/index.vue
  25. 716 207
      src/pagesC/settledMerchant/addShop.vue
  26. 4 2
      src/pagesC/settledMerchant/editmerchant.vue
  27. 604 0
      src/pagesC/settledMerchant/lcw-select-address/lcw-select-address.vue
  28. 2 2
      src/pagesC/settledMerchant/merchantDetail.vue
  29. 27 10
      src/pagesC/settledMerchant/myShop.vue
  30. 16 3
      src/pagesC/settledMerchant/pay.vue
  31. 107 0
      src/pagesC/settledMerchant/rz.vue
  32. 3 3
      src/request/api.js
  33. BIN
      src/static/my/14.png
  34. BIN
      src/static/my/15.png
  35. BIN
      src/static/my/16.png
  36. BIN
      src/static/my/head.png
  37. BIN
      src/static/my/merchant.png
  38. 1 1
      src/utils/share.js
  39. 21 0
      src/utils/up.js

+ 2 - 1
src/main.js

@@ -34,8 +34,9 @@ import { setCache, getCache } from "@/utils/storage.js"
 Vue.prototype.setLS = setCache;
 Vue.prototype.getLS = getCache;
 // 上传
-import { up } from "@/utils/up";
+import { up, upPdf } from "@/utils/up";
 Vue.prototype.$up = up;
+Vue.prototype.$upPdf = upPdf;
 import { goto, tidyTpye, hotelStarf, toast } from '@/utils/myfun.js';
 Vue.prototype.goto = goto;  // 页面跳转
 Vue.prototype.tidyTpye = tidyTpye;  // 专区判断

+ 12 - 0
src/pages.json

@@ -513,6 +513,12 @@
 					"style": {
 						"navigationBarTitleText": "APP下载"
 					}
+				},
+				{
+					"path": "my/eleContract",
+					"style": {
+						"navigationBarTitleText": "电子合同"
+					}
 				}
 			]
 		},
@@ -669,6 +675,12 @@
 					"style": {
 						"navigationBarTitleText": "支付"
 					}
+				},
+				{
+					"path": "settledMerchant/rz",
+					"style": {
+						"navigationBarTitleText": "微信认证"
+					}
 				}
 			]
 		}

+ 5 - 5
src/pages/my/index.vue

@@ -4,7 +4,7 @@
             <!-- 用户信息 -->
             <view class="uerInfo mar_t16 flex_r">
                 <view class="user_img">
-                    <image v-if="!userinfo.head_pic" class="image" src="/static/my/head.png" @click="toLogin"></image>
+                    <image v-if="!userinfo.head_pic" class="image" src="https://teaclub.oss-cn-chengdu.aliyuncs.com/static/icon/head.png" @click="toLogin"></image>
                     <image v-else @click="upheadimg" class="image" :src="userinfo.head_pic"></image>
                     <view class="coupon_info flex_r flex_ac" @tap="goToAutonym" v-if="isShiMing">
                         完成实名认证,享受更多权益
@@ -75,7 +75,7 @@
                         <view class="fun_text">我的店铺</view>
                     </navigator>
                     <navigator v-if="merchantSetlet.settled" class="fun_list flex_c flex_ac" url="/pagesC/settledMerchant/addShop" hover-class="none">
-                        <image class="fun_img" src="/static/my/merchant.png"></image>
+                        <image class="fun_img" src="https://teaclub.oss-cn-chengdu.aliyuncs.com/static/icon/merchant.png"></image>
                         <view class="fun_text">商家入驻</view>
                     </navigator>
                     <navigator v-if="merchantSetlet.settled" class="fun_list flex_c flex_ac" url="/pagesC/settledMerchant/myBusiness" hover-class="none">
@@ -104,11 +104,11 @@
                         <view class="fun_text">本地订单</view>
                     </navigator>
                     <navigator class="fun_list flex_c flex_ac" url="/pages/szw-order-list/index" hover-class="none">
-                        <image class="fun_img" src="/static/my/15.png"></image>
+                        <image class="fun_img" src="https://teaclub.oss-cn-chengdu.aliyuncs.com/static/icon/15.png"></image>
                         <view class="fun_text">电商订单</view>
                     </navigator>
                     <navigator class="fun_list flex_c flex_ac" url="/pagesC/shoppingMallType/order/list" hover-class="none">
-                        <image class="fun_img" src="/static/my/15.png"></image>
+                        <image class="fun_img" src="https://teaclub.oss-cn-chengdu.aliyuncs.com/static/icon/15.png"></image>
                         <view class="fun_text">商城订单</view>
                     </navigator>
                 </view>
@@ -156,7 +156,7 @@
                         <view class="fun_text">分享海报</view>
                     </navigator>
                     <navigator class="fun_list flex_c flex_ac" @click="copy" hover-class="none">
-                        <image class="fun_img" src="/static/my/14.png"></image>
+                        <image class="fun_img" src="https://teaclub.oss-cn-chengdu.aliyuncs.com/static/icon/14.png"></image>
                         <view class="fun_text">APP下载</view>
                     </navigator>
                 </view>

+ 13 - 3
src/pages/szw-order-details/index.vue

@@ -171,7 +171,7 @@ export default {
             });
         },
         // 立即支付
-        toPay(id) {
+        async toPay(id) {
             let type = "jsapi";
             // #ifdef  H5
             type = "H5";
@@ -182,12 +182,22 @@ export default {
             // #ifdef  MP-WEIXIN
             type = "jsapi";
             // #endif
+            let adres = await uni.Location();
             post("v1/goods/payOrder", {
                 id, trade_type: type,
+                location: "+"+adres.lat+'/+'+adres.lng
             }).then((res) => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code === 0 && data.prepayid) {
                         toPayOpre.toPay(data, (da) => {
                             if (!da) {

+ 13 - 3
src/pages/szw-order-list/index.vue

@@ -185,7 +185,7 @@ export default {
         },
 
         // 立即支付
-        toPay(e) {
+        async toPay(e) {
             let type = "jsapi";
             // #ifdef  H5
             type = "H5";
@@ -196,13 +196,23 @@ export default {
             // #ifdef  MP-WEIXIN
             type = "jsapi";
             // #endif
+            let adres = await uni.Location();
             post("v1/goods/payOrder", {
                 id: e.order_id,
                 trade_type: type,
+                location: "+"+adres.lat+'/+'+adres.lng
             }).then((res) => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code === 0 && data.prepayid) {
                         toPayOpre.toPay(data, (da) => {
                             if (!da) {

+ 14 - 3
src/pages/to-pay-list/index.vue

@@ -445,7 +445,7 @@ export default {
                 that.Pay();
             }
         },
-        Pay() {
+        async Pay() {
             let trade_type = "jsapi";
             // #ifdef  H5
             trade_type = "H5";
@@ -458,6 +458,7 @@ export default {
             // #endif
 
             let that = this
+            let adres = await uni.Location();
 
             post("v1/goods/submitOrder", {
                 ...that.Data,
@@ -466,11 +467,21 @@ export default {
                 trade_type: trade_type,
                 prom_type: that.prom_type,
                 price: that.goodsInfo.cost_price,
+                location: "+"+adres.lat+'/+'+adres.lng
             }).then((res) => {
                 if (res.code === 0) {
                     if(res.data && res.data != 200){
-                        let data = JSON.parse(res.data)
-                        data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                        let data = {
+                            ...res.data,
+                            appId:res.data.app_id,
+                            nonceStr:res.data.nonce_str,
+                            package:res.data.package,
+                            signType:res.data.sign_type,
+                            paySign:res.data.pay_sign,
+                            timeStamp:res.data.time_stamp,
+                            prepayid:res.data.prepay_id
+                        }
+                        // data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
                         if (res.code == 0 && data.prepayid) {
                             toPayOpre.toPay(data, (rea) => {
                                 if (!rea) {

+ 13 - 3
src/pages/top-up/index.vue

@@ -63,7 +63,7 @@ export default {
         this.getAdvImg();
     },
     methods: {
-        confimTopUp() {
+        async confimTopUp() {
             let that = this
             if (!this.price) {
                 this.$toast("充值不能为0");
@@ -82,16 +82,26 @@ export default {
                 // #ifdef  MP-WEIXIN
                 trade_type = "jsapi";
                 // #endif
+                let adres = await uni.Location();
                 let data = {
                     type: this.type == "local" ? 2 : 1,
                     trade_type: trade_type,
                     amount: this.price,
+                    location: "+"+adres.lat+'/+'+adres.lng
                 };
 
                 post("v1/user/recharge", data).then((res) => {
                     if(res.data && res.data != 200){
-                        let data = JSON.parse(res.data)
-                        data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                        let data = {
+                            ...res.data,
+                            appId:res.data.app_id,
+                            nonceStr:res.data.nonce_str,
+                            package:res.data.package,
+                            signType:res.data.sign_type,
+                            paySign:res.data.pay_sign,
+                            timeStamp:res.data.time_stamp,
+                            prepayid:res.data.prepay_id
+                        }
                         if (res.code == 0 && data.prepayid) {
                             toPayOpre.toPay(data, (rea) => {
                                 if (!rea) {

+ 13 - 5
src/pagesB/cinema/cinemaTicket.vue

@@ -159,7 +159,7 @@ export default {
                 }
             })
         },
-        pay() {
+        async pay() {
             let type = "";
             // #ifdef  H5
 			type = "H5";
@@ -170,11 +170,19 @@ export default {
 			// #ifdef  MP-WEIXIN
 			type = "jsapi";
 			// #endif
-            
-            post("local/goOrderPay", { trade_no: this.order.trade_no,trade_type: type }).then(res => {
+            let adres = await uni.Location();
+            post("local/goOrderPay", { trade_no: this.order.trade_no,trade_type: type,location: "+"+adres.lat+'/+'+adres.lng }).then(res => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code == 0 && data.prepayid) {
                         toPayOpre.toPay(data, (rea) => {
                             if (!rea) {

+ 13 - 3
src/pagesB/cinema/confirmOrder.vue

@@ -100,7 +100,7 @@ export default {
                 });
             }else this.payok();
         },
-        payok(){
+        async payok(){
             let ar = []
             for (let it of this.OrderDa.oldArray) {
                 ar.push({
@@ -118,6 +118,7 @@ export default {
 			// #ifdef  MP-WEIXIN
 			type = "jsapi";
 			// #endif
+            let adres = await uni.Location();
             let da = {
                 cinemaId: this.cinemaInfo.restaurant_id,
                 showId: this.OrderDa.s.showId,
@@ -126,11 +127,20 @@ export default {
                 movieName: this.OrderDa.m.movieName,
                 posterUrl: this.OrderDa.m.posterUrl,
                 trade_type: type,
+                location: "+"+adres.lat+'/+'+adres.lng
             }
             post("local/cinemaOrder", da).then(res => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code == 0 && data.prepayid) {
                         toPayOpre.toPay(data, (rea) => {
                         if (!rea) {

+ 13 - 3
src/pagesB/directCharge/coupon.vue

@@ -154,7 +154,7 @@ export default {
                 });
             }else this.payok();
         },
-        payok(){
+        async payok(){
             let type = "";
             // #ifdef  H5
 			type = "H5";
@@ -165,17 +165,27 @@ export default {
 			// #ifdef  MP-WEIXIN
 			type = "jsapi";
 			// #endif
+            let adres = await uni.Location();
             let da = {
                 type: 3,
                 count: this.count,
                 phone: this.mobile,
                 product_no: this.selectitem.product_no,
                 trade_type: type,
+                location: "+"+adres.lat+'/+'+adres.lng
             }
             post("local/coupon/addOrder", da).then(res => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code == 0 && data.prepayid) {
                         toPayOpre.toPay(data, (rea) => {
                             if (!rea) {

+ 13 - 5
src/pagesB/directCharge/orderDetail.vue

@@ -100,7 +100,7 @@ export default {
                 }
             })
         },
-        pay() {
+        async pay() {
             let type = "";
             // #ifdef  H5
 			type = "H5";
@@ -111,11 +111,19 @@ export default {
 			// #ifdef  MP-WEIXIN
 			type = "jsapi";
 			// #endif
-            
-            post("local/goOrderPay", { trade_no: this.order.trade_no,trade_type: type }).then(res => {
+            let adres = await uni.Location();
+            post("local/goOrderPay", { trade_no: this.order.trade_no,trade_type: type,location: "+"+adres.lat+'/+'+adres.lng }).then(res => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code == 0 && data.prepayid) {
                         toPayOpre.toPay(data, (rea) => {
                             if (!rea) {

+ 13 - 3
src/pagesB/directCharge/payment.vue

@@ -133,7 +133,7 @@ export default {
                 });
             }else this.payok();
         },
-        payok(){
+        async payok(){
             let type = "";
             // #ifdef  H5
 			type = "H5";
@@ -144,17 +144,27 @@ export default {
 			// #ifdef  MP-WEIXIN
 			type = "jsapi";
 			// #endif
+            let adres = await uni.Location();
             let da = {
                 type: 2,
                 count: 1,
                 phone: this.phone,
                 product_no: this.selectitem.product_no,
                 trade_type: type,
+                location: "+"+adres.lat+'/+'+adres.lng
             }
             post("local/coupon/addOrder", da).then(res => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code == 0 && data.prepayid) {
                         toPayOpre.toPay(data, (rea) => {
                             if (!rea) {

+ 13 - 4
src/pagesB/hotel/hotelDetail.vue

@@ -189,7 +189,7 @@ export default {
                 });
             }else this.payok();
         },
-        payok(){
+        async payok(){
             let RI = Object.assign({},this.roomInfo)
             let type = "";
             // #ifdef  H5
@@ -201,7 +201,7 @@ export default {
 			// #ifdef  MP-WEIXIN
 			type = "jsapi";
 			// #endif
-
+            let adres = await uni.Location();
             let da = {
                 ...this.qda,
                 hotelID: RI.hotelID,
@@ -211,14 +211,23 @@ export default {
                 guestNames: this.guestNames,
                 // orderAmount: this.actuallypaid
                 trade_type: type,
+                location: "+"+adres.lat+'/+'+adres.lng
             }
             delete RI.ratePlans;
             delete RI.ratePlanId;
             da.attachment = JSON.stringify(RI);
             post("local/hotel/addOrder", da).then(res => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code == 0 && data.prepayid) {
                         toPayOpre.toPay(data, (rea) => {
                             if (!rea) {

+ 13 - 4
src/pagesB/hotel/orderDetail.vue

@@ -168,7 +168,7 @@ export default {
                 }
             })
         },
-        pay() {
+        async pay() {
             let type = "";
             // #ifdef  H5
 			type = "H5";
@@ -179,10 +179,19 @@ export default {
 			// #ifdef  MP-WEIXIN
 			type = "jsapi";
 			// #endif
-            post("local/goOrderPay", { trade_no: this.order.trade_no,trade_type: type }).then(res => {
+            let adres = await uni.Location();
+            post("local/goOrderPay", { trade_no: this.order.trade_no,trade_type: type,location: "+"+adres.lat+'/+'+adres.lng }).then(res => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code == 0 && data.prepayid) {
                         toPayOpre.toPay(data, (rea) => {
                             if (!rea) {

+ 23 - 0
src/pagesB/my/eleContract.vue

@@ -0,0 +1,23 @@
+<!-- pages/webView/webView.vue -->  
+<template>  
+    <view>  
+      <web-view :src="url"></web-view>  
+    </view>  
+  </template>  
+  
+  <script>  
+  export default {  
+    data() {  
+      return {  
+        url: ''  
+      };  
+    },  
+    onLoad(options) { 
+      this.url = decodeURIComponent(options.url); // 接收从其他页面传递过来的URL
+    },
+    onBackPress(options) {
+      uni.navigateBack({ delta: 2 })
+    }
+  }  
+  </script>
+  

+ 1 - 1
src/pagesB/my/shuZhiWallet.vue

@@ -19,7 +19,7 @@
                 <span class="btn_txt">提现</span>
             </div>
             <div class="btn_item corc"  :style="{'width':isMerchant?'210rpx':'280rpx'}">
-                <image class="icon ico1" src="@/static/my/16.png" mode="" />
+                <image class="icon ico1" src="https://teaclub.oss-cn-chengdu.aliyuncs.com/static/icon/16.png" mode="" />
                 <span class="btn_txt">消费券</span>
             </div>
             <!-- <div class="btn_item conv" v-if="isMerchant" @click="goto('/pagesC/convert/index')">

+ 13 - 5
src/pagesB/orderingfood/detail.vue

@@ -221,7 +221,7 @@ export default {
                 phoneNumber: number
             });
         },
-        paypalPrderTap(trade_no) {
+        async paypalPrderTap(trade_no) {
             let type = "";
             // #ifdef  H5
 			type = "H5";
@@ -232,11 +232,19 @@ export default {
 			// #ifdef  MP-WEIXIN
 			type = "jsapi";
 			// #endif
-            
-            post("local/goOrderPay", {trade_no,trade_type: type}).then(res => {
+            let adres = await uni.Location();
+            post("local/goOrderPay", {trade_no,trade_type: type, location: "+"+adres.lat+'/+'+adres.lng}).then(res => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1] :''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code == 0 && data.prepayid) {
                         toPayOpre.toPay(data, (rea) => {
                         if (!rea) {

+ 13 - 3
src/pagesB/orderingfood/payTheBill.vue

@@ -144,7 +144,7 @@ export default {
                 });
             }else this.payok();
         },
-        payok(){
+        async payok(){
             let Arr = []
             for (const it of this.cartList) {
                 let spec = JSON.parse(it.spec)
@@ -165,6 +165,7 @@ export default {
 			// #ifdef  MP-WEIXIN
 			type = "jsapi";
 			// #endif
+            let adres = await uni.Location();
             let product_detail = JSON.stringify(Arr)
             let da = {
                 brand_id: this.Merchant.brand_id,
@@ -173,11 +174,20 @@ export default {
                 total_amount: this.actuallypaid,
                 product_detail,
                 trade_type: type,
+                location: "+"+adres.lat+'/+'+adres.lng
             }
             post("local/merchantOrder", da).then(res => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code == 0 && data.prepayid) {
                         toPayOpre.toPay(data, (rea) => {
                         if (!rea) {

+ 13 - 3
src/pagesB/prepaidRefill/index.vue

@@ -135,7 +135,7 @@ export default {
                 });
             }else this.payok();
         },
-        payok(){
+        async payok(){
             let type = "";
             // #ifdef  H5
 			type = "H5";
@@ -146,11 +146,21 @@ export default {
 			// #ifdef  MP-WEIXIN
 			type = "jsapi";
 			// #endif
+            let adres = await uni.Location();
             this.qda.trade_type = type
+            this.qda.location= "+"+adres.lat+'/+'+adres.lng
             post("local/ofpay/onlineorde", this.qda).then((res) => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code == 0 && data.prepayid) {
                         toPayOpre.toPay(data, (rea) => {
                             if (!rea) {

+ 13 - 4
src/pagesB/prepaidRefill/orderDetail.vue

@@ -75,7 +75,7 @@ export default {
         //         }
         //     })
         // },
-        pay() {
+        async pay() {
             let type = "";
             // #ifdef  H5
 			type = "H5";
@@ -86,10 +86,19 @@ export default {
 			// #ifdef  MP-WEIXIN
 			type = "jsapi";
 			// #endif
-            post("local/goOrderPay", { trade_no: this.order.trade_no,trade_type: type }).then(res => {
+            let adres = await uni.Location();
+            post("local/goOrderPay", { trade_no: this.order.trade_no,trade_type: type, location: "+"+adres.lat+'/+'+adres.lng }).then(res => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code == 0 && data.prepayid) {
                         toPayOpre.toPay(data, (rea) => {
                             if (!rea) {

+ 13 - 4
src/pagesB/scenicSpotTicket/orderDetail.vue

@@ -76,7 +76,7 @@ export default {
                 }
             })
         },
-        pay() {
+        async pay() {
             let type = "";
             // #ifdef  H5
 			type = "H5";
@@ -87,10 +87,19 @@ export default {
 			// #ifdef  MP-WEIXIN
 			type = "jsapi";
 			// #endif
-            post("local/goOrderPay", { trade_no: this.order.trade_no,trade_type: type }).then(res => {
+            let adres = await uni.Location();
+            post("local/goOrderPay", { trade_no: this.order.trade_no,trade_type: type, location: "+"+adres.lat+'/+'+adres.lng }).then(res => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code == 0 && data.prepayid) {
                         toPayOpre.toPay(data, (rea) => {
                             if (!rea) {

+ 13 - 4
src/pagesB/scenicSpotTicket/scenicDetail.vue

@@ -183,7 +183,7 @@ export default {
                 });
             }else this.payok();
         },
-        payok(){
+        async payok(){
             let type = "";
             // #ifdef  H5
 			type = "H5";
@@ -194,7 +194,7 @@ export default {
 			// #ifdef  MP-WEIXIN
 			type = "jsapi";
 			// #endif
-
+            let adres = await uni.Location();
             let da = {
                 ...this.qda,
                 travelDate: this.selectDay.date,
@@ -203,11 +203,20 @@ export default {
                 productID: this.qda.productId,
                 ...this.users[0],
                 trade_type: type,
+                location: "+"+adres.lat+'/+'+adres.lng
             }
             post("local/ticket/addOrder", da).then(res => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code == 0 && data.prepayid) {
                         toPayOpre.toPay(data, (rea) => {
                             if (!rea) {

+ 13 - 3
src/pagesB/topUp/Local.vue

@@ -88,7 +88,7 @@ export default {
                 return;
             } else this.payok();
         },
-        payok() {
+        async payok() {
             let that = this
             let type = "";
             // #ifdef  H5
@@ -100,11 +100,21 @@ export default {
 			// #ifdef  MP-WEIXIN
 			type = "jsapi";
 			// #endif
+            let adres = await uni.Location();
             this.qda.trade_type = type
+            this.qda.location= "+"+adres.lat+'/+'+adres.lng
             post("v1/user/recharge", this.qda).then((res) => {
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
                     if (res.code == 0 && data.paySign) {
                         toPayOpre.toPay(data, (rea) => {
                             if (!rea) {

+ 152 - 0
src/pagesC/components/upPdf/index.vue

@@ -0,0 +1,152 @@
+<template>
+    <div class="upimgList">
+        <div class="upimg" v-for="(i,s) in imgs" :key="s">
+            <img src="https://teaclub.oss-cn-chengdu.aliyuncs.com/img/Pdf.png" class="logo" alt="" srcset="" />
+            <div class="del iconfont" @click="del">&#xe609;</div>
+        </div>
+        <div v-if="imgs.length < count" class="upimg flex_c flex_ac flex_jc flex_wrap" @click="upimg">
+            <div class="upico iconfont">&#xe674;</div>
+            <div class="upmsg" v-if="!desc">最多{{ count }}张</div>
+            <div class="upmsg" v-else>{{ desc }}</div>
+        </div>
+        <center-popup ref="centerPopup" :title="Popuptitle" @confirmClick="delimg" />
+    </div>
+</template>
+<script>
+import centerPopup from "@/pagesC/components/centerPopup/centerPopup"
+import { post } from "@/request/api.js";
+export default {
+    name: "upimgList",
+    props: {
+        count: {
+            type: Number,
+            default: 1
+        },
+        value: {
+            type: String,
+            default: ""
+        },
+        desc: "",
+    },
+    components: { centerPopup },
+    data() {
+        return {
+            imgs: [],
+            Popuptitle: "",
+            Popuptitle: "",
+            delinx: "", // 要删除的图片索引
+        };
+    },
+    methods: {
+        upimg() {
+            let that = this
+            wx.chooseMessageFile({
+                count: that.count,
+                type: "file",
+                extension: [".pdf"],
+                success: async (res) => {
+                    let arr = res.tempFiles.slice(0,that.count - that.imgs.length)
+                    for (const it of arr) {
+                        if (it.size/1024/1024 <= 5) {
+                            let url = await that.$upPdf(it.path)
+                            that.imgs.push(url)
+                            // post("v1/lakala/upload",{file: url,}).then(res1=>{
+                            //     console.log(res1,"====");
+                            //     res1.pdf = url
+                            //     if (res1.code == 0 && res1.data) {
+                            //         that.imgs.push(res1.data)
+                                    
+                            //     } else {
+                            //         return that.$toast(res1.msg)
+                            //     }
+                            // })
+                            
+                        }else{
+                            return uni.showToast({
+                                title: "文件大小超出5M",
+                                icon: "none",
+                            });
+                        }
+                    }
+                    
+                    that.emitI1(this.imgs);
+                },
+            });
+        },
+        del(inx) {
+            this.delinx = inx
+            this.Popuptitle = "确认要删除这个文件吗?"
+            this.$refs.centerPopup.open()
+        },
+        delimg() {
+            this.imgs.splice(this.delinx, 1)
+            this.emitI1(this.imgs)
+            this.$refs.centerPopup.close()
+        },
+        emitI1(arr){
+            let va = ""
+            if(this.count == 1) va = arr[0]
+            else va = JSON.stringify(arr)
+            this.$emit("input", va);
+        },
+    },
+    watch: {
+        value: {
+            immediate: true,
+            deep: true,
+            handler(str) {
+                console.log(str,"str====");
+                
+                if (str){
+                    if(this.count == 1) this.imgs = [str]
+                    else this.imgs = JSON.parse(str)
+                }
+            }
+        }
+    },
+    onLoad(da) {},
+    onShow() {},
+    mounted() {},
+};
+</script>
+<style scoped lang='scss'>
+.upimgList {
+    display: grid;
+    justify-content: space-between;
+    grid-template-columns: repeat(auto-fill, 170rpx);
+    grid-gap: 0 1px;
+}
+
+.upimg {
+    width: 170rpx;
+    height: 130rpx;
+    font-size: 23rpx;
+    border-radius: 15rpx;
+    border: 2rpx dashed #999;
+    color: #999;
+    margin-bottom: 6rpx;
+    position: relative;
+
+    .upico {
+        color: #999;
+        font-size: 70rpx;
+    }
+
+    .logo {
+        width: 100%;
+        height: 100%;
+        border-radius: 15rpx;
+    }
+
+    .del {
+        position: absolute;
+        top: 6rpx;
+        right: 6px;
+        color: #fff;
+        padding: 6rpx 12rpx;
+        font-weight: 600;
+        border-radius: 12rpx;
+        background-color: rgba($color: #f20, $alpha: 0.6);
+    }
+}
+</style>

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 716 - 207
src/pagesC/settledMerchant/addShop.vue


+ 4 - 2
src/pagesC/settledMerchant/editmerchant.vue

@@ -10,9 +10,9 @@
             <uni-forms-item label="商家简介" name="summary">
                 <uni-easyinput v-model="formData.summary" type="textarea" autoHeight placeholder="请输入商家简介" />
             </uni-forms-item>
-            <uni-forms-item label="店铺图集" name="atlas">
+            <!-- <uni-forms-item label="店铺图集" name="atlas">
                 <upimg v-model="formData.atlas" :count="9"/>
-            </uni-forms-item>
+            </uni-forms-item> -->
             <uni-forms-item label="绑定音响" name="imei_no">
                 <uni-easyinput v-model="formData.imei_no" suffixIcon="scan" type="text" placeholder="请输入音响IMEI" @iconClick="scan" />
             </uni-forms-item>
@@ -52,6 +52,8 @@ export default {
                 success(res) {
                     if (res.confirm) {
                         that.$refs.form.validate().then((res) => {
+                            console.log({ ...res, shop_id: that.shopID });
+                            
                             post("v1/merchant/edit",{ ...res, shop_id: that.shopID }).then(res=>{
                                 if (res.code == 0) {
                                     that.$toast("修改成功")

+ 604 - 0
src/pagesC/settledMerchant/lcw-select-address/lcw-select-address.vue

@@ -0,0 +1,604 @@
+<template>
+    <uni-popup type="bottom" ref="selectAddressRef">
+        <view class="select-address-box">
+            <view class="header-box">
+                <view></view>
+                <view class="title-box">选择所在地区</view>
+                <view class="close-icon" @tap="close">
+                    <view class="iconfont icon-a-Shutdown-01">x</view>
+                </view>
+            </view>
+            <view class="main-box">
+                <view class="address-info">
+                    <view class="address-item" @tap="setSelectStatus(0)">
+                        <view class="strip-item">
+                            <view :class="{
+								'show-line': address.province,
+								'active': address.province || ''
+							}">
+                            </view>
+                        </view>
+                        <view class="name-box" :class="{
+								active: selectStatus == 0
+							}">
+                            <text v-if="address.province">
+                                {{ address.province }}
+                            </text>
+                            <text v-else>请选择所在省份</text>
+                        </view>
+                        <view class="icon-box">
+                            <view class="iconfont icon-xiangyou">
+                                {{ '>' }}
+                            </view>
+                        </view>
+                    </view>
+                    <view v-if="address.province" class="address-item" @tap="setSelectStatus(1)">
+                        <view class="strip-item">
+                            <view :class="{
+									'show-line': address.city,
+									active: address.city
+								}"></view>
+                        </view>
+                        <view class="name-box" :class="{
+								active: selectStatus == 1
+							}">
+                            <text v-if="address.city">{{ address.city }}</text>
+                            <text v-else>请选择所在城市</text>
+                        </view>
+                        <view class="icon-box">
+                            <view class="iconfont icon-xiangyou">
+                                {{ '>' }}
+                            </view>
+                        </view>
+                    </view>
+                    <view v-if="address.city && tiers==3" class="address-item" @tap="setSelectStatus(2)">
+                        <view class="strip-item last-strip-item">
+                            <view :class="{
+									'show-line': showStreet,
+									active: address.area
+								}"></view>
+                        </view>
+                        <view class="name-box" :class="{
+								active: selectStatus == 2
+							}">
+                            <text v-if="address.area">{{ address.area }}</text>
+                            <text v-else>请选择所在区/县</text>
+                        </view>
+                        <view class="icon-box">
+                            <view class="iconfont icon-xiangyou">
+                                {{ '>' }}
+                            </view>
+                        </view>
+                    </view>
+                    <view v-if="showStreet" class="address-item" @tap="setSelectStatus(3)">
+                        <view class="strip-item last-strip-item">
+                            <view :class="{
+									active: address.street
+								}"></view>
+                        </view>
+                        <view class="name-box" :class="{
+								active: selectStatus == 3
+							}">
+                            <text v-if="address.street">
+                                {{ address.street }}
+                            </text>
+                            <text v-else>请选择所在乡/镇</text>
+                        </view>
+                        <view class="icon-box">
+                            <view class="iconfont icon-xiangyou">
+                                {{ '>' }}
+                            </view>
+                        </view>
+                    </view>
+                </view>
+                <view class="address-select-box">
+                    <scroll-view class="content-box" :style="{ height: scrollHeight }" scroll-y="true">
+                        <view v-if="selectStatus === 0">
+                            <view class="select-tip">请选择省份</view>
+                            <view class="select-item" :class="{
+									active: activeProvinvial.name === i.name
+								}" v-for="i in provinvial" :key="i.code" @tap="changeProvinvial(i)">
+                                {{ i.name }}
+                            </view>
+                        </view>
+                        <view v-else-if="selectStatus === 1">
+                            <view class="select-tip">请选择城市</view>
+                            <view class="select-item" :class="{
+									active: activeCity.name === i.name
+								}" v-for="i in citys" :key="i.code" @tap="changeCity(i)">
+                                {{ i.name }}
+                            </view>
+                        </view>
+                        <view v-else-if="selectStatus === 2">
+                            <view class="select-tip">请选择区/县</view>
+                            <view class="select-item" :class="{
+									active: activeArea.name === i.name
+								}" v-for="i in areas" :key="i.code" @tap="changeArea(i)">
+                                {{ i.name }}
+                            </view>
+                        </view>
+                        <view v-else>
+                            <view class="select-tip">请选择乡/镇</view>
+                            <view class="select-item" :class="{
+									active: activeStreet.name === i.name
+								}" v-for="i in streets" :key="i.code" @tap="changeStreet(i)">
+                                {{ i.name }}
+                            </view>
+                        </view>
+                    </scroll-view>
+                </view>
+            </view>
+        </view>
+    </uni-popup>
+</template>
+<script>
+import { post } from "@/request/api.js"
+import loginVue from '../../../pages/my/login.vue';
+export default {
+    emits: ['change'],
+    props: {
+        address: {
+            type: Object,
+            require: true,
+            default: () => ({
+                province: '',
+                city: '',
+                area: '',
+                street: ''
+            })
+        },
+        tiers: {
+            type: Number,
+            require: true,
+            default: 0
+        },
+        type: {
+            type: Number,
+            require: true,
+            default: 1
+        } // 1基本信息的省市区选择  2结算信息的省市选择
+    },
+    data() {
+        return {
+            //全部数据
+            provinvial: [], // 省
+            cityData: [],
+            areaData: [],
+            streetsData: [],
+            // 筛选后的数据
+            citys: [], // 城市
+            areas: [], // 区/县
+            streets: [], // 镇
+            // 选择的省、市、区具体名称
+            activeProvinvial: { name: '' }, // 选择中的省份
+            activeCity: {
+                name: ''
+            }, // 选中的城市
+            activeArea: { name: '' }, // 选中的区县
+            activeStreet: { name: '' }, // 选中的乡镇
+            //  0 1 2 3 当前正在选择 省 市 区 镇
+            selectStatus: 0,
+
+            regional_code: [],
+        };
+    },
+    computed: {
+        // 高度计算
+        scrollHeight() {
+            let height = 920;
+
+            if (this.address.province) {
+                height -= 80;
+            }
+            if (this.address.city) {
+                height -= 80;
+            }
+            if (this.address.area && 'street' in this.address) {
+                height -= 80;
+            }
+            return height + 'rpx';
+        },
+        // 是否展示4级
+        showStreet() {
+            return Boolean(
+                this.selectStatus === 3 ||
+                (this.activeArea.name && 'street' in this.address)
+            );
+        }
+    },
+    watch: {
+        address: {
+            handler(newHandler) {
+                if (newHandler.province && !this.activeProvinvial.code) {
+                    this.setActiveProvinvial();
+                }
+                if (newHandler.city && !this.activeCity.code) {
+                    this.setActiveCity();
+                }
+                if (newHandler.area && !this.activeArea.code) {
+                    this.setActiveArea();
+                }
+                if (newHandler.street && !this.activeStreet.code) {
+                    this.setActiveStreet();
+                }
+            },
+            deep: true
+        }
+    },
+    mounted() {
+        
+        this.getProvinvial();
+    },
+    methods: {
+        // 更新正在选择内容的标记
+        setSelectStatus(newSelectStatus) {
+            this.selectStatus = newSelectStatus;
+        },
+        // 关闭 popup
+        close() {
+            this.$refs.selectAddressRef.close();
+        },
+        // 打开  popup
+        open() {
+        console.log(this.selectStatus, this.tiers,"=====");
+            this.$refs.selectAddressRef.open();
+        },
+        // 选择省
+        changeProvinvial(i) {
+            this.getCity(i.code)
+            if (i.name !== this.address.province) {
+                this.regional_code[0] = i.code
+                this.activeProvinvial = i;
+                this.activeCity = {};
+                this.activeArea = {};
+                this.activeStreet = {};
+                const newAddress = {
+                    province: i.name,
+                    city: '',
+                    area: ''
+                };
+                if ('street' in this.address) {
+                    newAddress.street = '';
+                }
+                this.$emit('change', newAddress);
+            }
+            
+            this.selectStatus = 1;
+        },
+        // 选择市
+        changeCity(i) {
+            console.log(this.tiers);
+            
+            if(this.tiers > 2){
+                this.getArea(i.code)
+                if (i.name !== this.address.city) {
+                    this.regional_code[1] = i.code
+                    this.activeCity = i;
+                    this.activeArea = {};
+                    this.activeStreet = {};
+                    const newAddress = {
+                        province: this.address.province,
+                        city: i.name,
+                        area: ''
+                    };
+                    if ('street' in this.address) {
+                        newAddress.street = '';
+                    }
+                    this.$emit('change', newAddress);
+                }
+                this.selectStatus = 2;
+            } else {
+                if (i.name !== this.address.city) {
+                    this.regional_code[1] = i.code
+                    this.activeCity = i;
+                    this.activeArea = {};
+                    this.activeStreet = {};
+                    const newAddress = {
+                        province: this.address.province,
+                        city: i.name,
+                        area: '',
+                        regional_code: this.regional_code.join()
+                    };
+                    if ('street' in this.address) {
+                        newAddress.street = '';
+                    }
+                    this.$emit('change', newAddress);
+                }
+
+                this.close();
+            }
+            
+        },
+        // 选择区县
+        changeArea(i) {
+            this.getStreets(i.name)
+            if (i.name !== this.address.area) {
+                this.regional_code[2] = i.code
+                this.activeArea = i;
+                this.activeStreet = {};
+                const newAddress = {
+                    province: this.address.province,
+                    city: this.address.city,
+                    area: i.name,
+                    regional_code: this.regional_code.join()
+                };
+                if ('street' in this.address) {
+                    newAddress.street = '';
+                }
+                this.$emit('change', newAddress);
+            }
+
+            if ('street' in this.address) {
+                this.selectStatus = 3;
+                this.streets = this.streetsData.filter(
+                    item => item.areaCode === i.code
+                );
+            } else {
+                this.close();
+            }
+        },
+        // 选择乡镇
+        changeStreet(i) {
+            if (i.name !== this.address.street) {
+                this.regional_code[3] = i.code
+                this.activeStreet = i;
+                this.$emit('change', {
+                    ...this.address,
+                    street: i.name,
+                    regional_code: this.regional_code.join()
+                });
+            }
+            this.close();
+        },
+        // 省份数据获取
+        getProvinvial() {
+            let url = "v1/lakala/getArea"
+            this.type == 2?url="v1/lakala/getBankArea":url="v1/lakala/getArea"
+            post(url, { parentCode: 1 }).then(res => {
+                if (res.code == 0) {
+                    let da = res.data
+                    this.provinvial = da;
+                    this.setActiveProvinvial();
+                }
+            })
+        },
+        setActiveProvinvial() {
+            console.log(this.address.province ,this.activeProvinvial.code);
+            
+            if (this.address.province && !this.activeProvinvial.code) {
+                const provinceIndex = this.provinvial.findIndex(
+                    i => i.name == this.address.province
+                );
+                if (provinceIndex !== -1) {
+                    this.activeProvinvial = this.provinvial[provinceIndex];
+                }
+            }
+        },
+        // 城市数据获取
+        getCity(code) {
+            let url = "v1/lakala/getArea"
+            this.type == 2?url="v1/lakala/getBankArea":url="v1/lakala/getArea"
+            post(url, { parentCode: code }).then(res => {
+                if (res.code == 0) {
+                    let da = res.data
+                    this.cityData = da;
+                    this.setActiveCity();
+                    this.citys = this.cityData
+                }
+            })
+        },
+        setActiveCity() {
+            if (this.cityData && this.cityData.length === 0) {
+                return;
+            }
+
+            this.citys = this.cityData.filter(
+                item => item.provinceCode === this.activeProvinvial.code
+            );
+
+            if (this.address.city && !this.activeCity.code) {
+                const cityIndex = this.cityData.findIndex(
+                    i =>
+                    i.name == this.address.city &&
+                    this.activeProvinvial.code == i.provinceCode
+                );
+                if (cityIndex !== -1) {
+                    this.activeCity = this.cityData[cityIndex];
+                }
+            }
+        },
+        // 区县数据
+        getArea(code) {
+            let url = "v1/lakala/getArea"
+            this.type == 2?url="v1/lakala/getBankArea":url="v1/lakala/getArea"
+            post(url, { parentCode: code }).then(res => {
+                if (res.code == 0) {
+                    let da = res.data
+                    this.areaData = da;
+                    this.areas = this.areaData
+                    this.setActiveArea();
+                    // if ('street' in this.address) {
+                    //     this.getStreets();
+                    // }
+                }
+            })
+        },
+        setActiveArea() {
+            if (this.areaData.length === 0) {
+                return;
+            }
+            // this.areas = this.areaData.filter(
+            //     item => item.cityCode === this.activeCity.code
+            // );
+            if (this.address.area && !this.activeArea.code) {
+                const areaIndex = this.areaData.findIndex(
+                    i =>
+                    i.name == this.address.area &&
+                    i.cityCode == this.activeCity.code
+                );
+                if (areaIndex !== -1) {
+                    this.activeArea = this.areaData[areaIndex];
+                }
+            }
+        },
+        // 镇 社区 街道
+        getStreets(name) {
+            post("v1/lakala/getStreet", { areas: name }).then(res => {
+                if (res.code == 0) {
+                    let da = res.data.data
+                    this.streetsData = da;
+                    this.streets = this.streetsData;
+                    this.setActiveStreet();
+                }
+            })
+        },
+        setActiveStreet() {
+            if (this.streetsData.length === 0) {
+                return;
+            }
+            // this.streets = this.streetsData.filter(
+            //     item => item.areaCode === this.activeArea.code
+            // );
+            if (this.address.street && !this.activeStreet.code) {
+                const streetIndex = this.streetsData.findIndex(
+                    i => i.name == this.address.street
+                );
+                if (streetIndex !== -1) {
+                    this.activeStreet = this.streetsData[streetIndex];
+                }
+            }
+        }
+    }
+};
+</script>
+<style lang="scss">
+.select-address-box {
+    height: 1100rpx;
+    border-top-left-radius: 20rpx;
+    border-top-right-radius: 20rpx;
+    background-color: #fff;
+    // padding: 30rpx 0;
+
+    .header-box {
+        display: flex;
+        justify-content: space-between;
+        font-size: 32rpx;
+        font-weight: bold;
+        color: #333;
+        // margin-bottom: 40rpx;
+        height: 80rpx;
+        line-height: 80rpx;
+        padding: 0 20rpx;
+
+        >.title-box {
+            font-size: 36rpx;
+        }
+
+        .iconfont {
+            color: #72899b;
+            padding: 0 20rpx;
+        }
+    }
+
+    .main-box {
+        height: calc(100% - 80rpx);
+
+        .address-info {
+            padding: 0 20rpx;
+
+            >.address-item {
+                display: flex;
+                align-items: center;
+                height: 80rpx;
+
+                .strip-item {
+                    color: #333;
+                    margin-right: 48rpx;
+                    position: relative;
+
+                    >view {
+                        width: 12rpx;
+                        height: 12rpx;
+                        border-radius: 50%;
+                        border: 2rpx solid #086df7;
+                        transition: all 0.25s;
+                        box-sizing: border-box;
+                    }
+
+                    .show-line {
+                        &::after {
+                            content: '';
+                            position: absolute;
+                            top: 100%;
+                            left: 50%;
+                            width: 2rpx;
+                            height: 69rpx;
+                            background-color: #086df7;
+                        }
+
+                        /* #ifndef H5*/
+                        &::after {
+                            transform: translateX(-50%);
+                        }
+
+                        /* #endif */
+
+                        /* #ifdef VUE2 */
+                        &::after {
+                            transform: translateX(-50%);
+                        }
+
+                        /* #endif */
+                    }
+
+                    .active {
+                        background: #086df7;
+                    }
+                }
+
+                .name-box {
+                    font-size: 28rpx;
+                    flex: 1;
+                }
+
+                .active {
+                    color: #086df7;
+                }
+
+                .icon-box {
+                    .iconfont {
+                        font-size: 24rpx;
+                        color: #72899b;
+                    }
+                }
+            }
+        }
+
+        .address-select-box {
+            padding: 20rpx 20rpx 0;
+            border-top: 2rpx solid #d4d4d4;
+
+            .content-box {
+                height: 600rpx;
+
+                .select-tip {
+                    font-size: 32rpx;
+                    color: #333;
+                    font-weight: bold;
+                    padding-bottom: 20rpx;
+                }
+
+                .select-item {
+                    padding: 20rpx 20rpx;
+                    font-size: 28rpx;
+                    color: #333;
+                }
+
+                .active {
+                    color: #086df7;
+                }
+            }
+        }
+    }
+}
+</style>

+ 2 - 2
src/pagesC/settledMerchant/merchantDetail.vue

@@ -29,7 +29,7 @@
             <div class="tit">收款信息</div>
             <view class="label">
                 <view class="title">开户银行:</view>
-                <view class="nums">{{ detail.account_name }}</view>
+                <view class="nums">{{ detail.account_bank_name }}</view>
             </view>
             <view class="label">
                 <view class="title">开户名称:</view>
@@ -41,7 +41,7 @@
             </view>
             <view class="label">
                 <view class="title">开户手机:</view>
-                <view class="nums">{{ detail.open_phone }}</view>
+                <view class="nums">{{ detail.phone }}</view>
             </view>
             <view class="label">
                 <view class="title">银行卡号:</view>

+ 27 - 10
src/pagesC/settledMerchant/myShop.vue

@@ -39,9 +39,15 @@
                     <div class="l"><span class="iconfont">&#xe9b9;</span>区域商:{{i.user_nickname}}</div>
                     <div class="r" @click.stop="copyText(i.user_mobile)"><span class="iconfont">&#xe9d3;</span>电话:{{i.user_mobile}}<span class="iconfont copy">&#xe602;</span></div>
                 </div>
-                <div class="elseMoney1 flex_r flex_jb flex_ac">
-                    <div class="total_money" @click.stop="goto('/pagesC/settledMerchant/shopOrderLog',{s:1,shop_id: i.shop_id})">总收入<span>¥{{i.total_money || "0.00"}}</span></div>
-                    <div class="day_income" @click.stop="goto('/pagesC/settledMerchant/shopOrderLog',{s:1,shop_id: i.shop_id})">今日收入<span>¥{{i.day_income || "0.00"}}</span></div>
+                <div class="elseMoney1">
+                    <div class="flex_r flex_jb flex_ac">
+                        <div class="total_money" @click.stop="goto('/pagesC/settledMerchant/shopOrderLog',{s:1,shop_id: i.shop_id})">总收入<span>¥{{i.total_money || "0.00"}}</span></div>
+                        <div class="day_income" @click.stop="goto('/pagesC/settledMerchant/shopOrderLog',{s:1,shop_id: i.shop_id})">今日收入<span>¥{{i.day_income || "0.00"}}</span></div>
+                    </div>
+                    <div class="total_money" @click.stop="goto('/pagesC/settledMerchant/rz',{merchant_no: i.merchant_no})">微信认证
+                        <span class="rzStatus" v-if="i.status<=6">未认证></span>
+                        <span class="rzfStatus" v-else>已认证></span>
+                    </div>
                 </div>
             </div>
             <view class="flex_r flex_jc" @click="getProPage">
@@ -233,7 +239,7 @@ export default {
         width: 100%;
 
         .elseMoney1{
-            height: 90rpx;
+            height: 120rpx;
             background-color: #ECECEC;
             border-radius: 0 0 30rpx 30rpx;
             // margin-top: -50rpx;
@@ -242,25 +248,36 @@ export default {
             color: #666;
             position: absolute;
             width: 100%;
-            bottom: -86rpx;
+            bottom: -116rpx;
             left: 0;
             box-shadow: 4rpx 4rpx 8rpx 4rpx rgba(0, 0, 0, 0.12);
+            line-height: 100%;
             // border-right: 2rpx solid rgba(0, 0, 0, 0.12);
             // border-left: 2rpx solid rgba(0, 0, 0, 0.12);
             // border-bottom: 2rpx solid rgba(0, 0, 0, 0.12);
 
-            div:last-child {
-                text-align: right;
-            }
+            
 
             span {
                 color: #2E57FD;
                 font-size: 28rpx;
                 margin-left: 8rpx;
             }
+            .rzStatus {
+                font-size: 26rpx;
+                color: red;
+            }
+            .rzfStatus {
+                font-size: 26rpx;
+                color: rgb(110, 230, 150);
+            }
             div{
-                height: 90rpx;
-                line-height: 90rpx;
+                padding-top: 20rpx;
+                // height: 90rpx;
+                // line-height: 90rpx;
+            }
+            div:first-child {
+                padding-top: 10rpx;
             }
         }
     }

+ 16 - 3
src/pagesC/settledMerchant/pay.vue

@@ -149,7 +149,7 @@ export default {
                 },
             });
         },
-        pay(){
+        async pay(){
             let type = "";
             // #ifdef  H5
             type = "H5";
@@ -161,10 +161,23 @@ export default {
             type = "jsapi";
             // #endif
             this.Body.trade_type = type
+            let adres = await uni.Location();
+            this.Body.location = "+"+adres.lat+'/+'+adres.lng
+            
             post("v1/merchant/orders",this.Body).then(res=>{
                 if(res.data && res.data != 200){
-                    let data = JSON.parse(res.data)
-                    data.prepayid = data.package?data.package.split('prepay_id=')[1]:''
+                    let data = {
+                        ...res.data,
+                        appId:res.data.app_id,
+                        nonceStr:res.data.nonce_str,
+                        package:res.data.package,
+                        signType:res.data.sign_type,
+                        paySign:res.data.pay_sign,
+                        timeStamp:res.data.time_stamp,
+                        prepayid:res.data.prepay_id
+                    }
+                    console.log(res.code , data.prepayid);
+                    
                     if (res.code == 0 && data.prepayid) {
                         toPayOpre.toPay(data, (rea) => {
                             if (!rea) {

+ 107 - 0
src/pagesC/settledMerchant/rz.vue

@@ -0,0 +1,107 @@
+<template>
+  <div class="box">
+    <image :src="datainfo.auth_code" alt="" />
+    <div class="flex">
+      <div>
+        <span class="green" v-if="datainfo.auth_status.b2b == 1">已认证</span>
+        <span class="red" v-else>未认证</span>
+      </div>
+      <div>
+        <span class="green" v-if="datainfo.auth_status.scha == 1">已认证</span>
+        <span class="red" v-else>未认证</span>
+      </div>
+    </div>
+    <div class="button">
+      <div class="tip">认证成功后点击下方“我已认证”按钮进行确认</div>
+      <button class="btn" @click="getAuth(da)">我已认证</button>
+    </div>
+  </div>
+</template>
+
+<script>
+import { post } from "@/request/api.js";
+export default {
+  props: {},
+  components: {},
+  data() {
+    return {
+      datainfo: {},
+      da:""
+    };
+  },
+
+  methods: {
+    getAuth(da) {
+      post("v1/lakala/getAuth", da).then((res) => {
+        if (res.code == 0) {
+          this.datainfo = res.data;
+        }
+      });
+    },
+  },
+
+  onLoad(da) {
+    this.da = da
+    this.getAuth(da);
+  },
+  mounted() {},
+};
+</script>
+
+<style scoped lang='scss'>
+.box {
+  width: 100vw;
+  height: 100vh;
+  box-sizing: border-box;
+  padding: 26rpx 0;
+  position: relative;
+  background-color: #fff;
+  image {
+    width: 100%;
+    padding: 0 26rpx;
+    box-sizing: border-box;
+  }
+  .flex {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding-top: 30rpx;
+    padding: 0 26rpx;
+    div {
+      width: 50%;
+      font-size: 26rpx;
+      text-align: center;
+      .green {
+        color: #17bb87;
+      }
+      .red {
+        color: red;
+      }
+    }
+  }
+
+  .button {
+    position: absolute;
+    bottom: 26rpx;
+    width: 100%;
+    box-sizing: border-box;
+    font-size: 26rpx;
+    margin-bottom: 50rpx;
+
+    .tip {
+      margin-left: 40rpx;
+    }
+
+    .btn {
+      color: #fff;
+      font-size: 36rpx;
+      text-align: center;
+      height: 80rpx;
+      line-height: 80rpx;
+      border-radius: 45rpx;
+      margin: 26rpx 26rpx 0;
+      background: #17bb87;
+    }
+  }
+}
+</style>

+ 3 - 3
src/request/api.js

@@ -49,8 +49,8 @@ export function get(url, params, baseURL) {
 		header: { token: "" },
 	})
 }
-export function post(url, params, baseURL) {
-	// console.log(url, params);
+export function post(url, params, baseURL, headers) {
+	console.log(url, params);
 	let data = {
 		// 发送数据时附上iv
 		encrypted_string: encrypt(JSON.stringify(params), encrypt_key, iv),
@@ -62,7 +62,7 @@ export function post(url, params, baseURL) {
 			data: Buffer.from(JSON.stringify(data)).toString('base64')
 		},
 		method: "POST",
-		header: { "Content-Type": "application/x-www-form-urlencoded" },
+		header: headers ? headers : { "Content-Type": "application/x-www-form-urlencoded" },
 		baseURL,
 	})
 }

BIN
src/static/my/14.png


BIN
src/static/my/15.png


BIN
src/static/my/16.png


BIN
src/static/my/head.png


BIN
src/static/my/merchant.png


+ 1 - 1
src/utils/share.js

@@ -3,7 +3,7 @@ export default {
 	data() {
 		return {
 			share: {
-				title: '让数字经济赋能美好生活',
+				title: '好生活,茶付宝!',
 				path: '/pages/index/index?invite=' + userinfo.invite
 			}
 		}

+ 21 - 0
src/utils/up.js

@@ -18,4 +18,25 @@ export function up(img) {
             },
         });
     });
+}
+
+export function upPdf(pdf) {
+    return new Promise((resolve, reject) => {
+        uni.uploadFile({
+            url: hosts.Hhost + "v1/fileUpload",
+            filePath: pdf,
+            name: "images",
+            header: {
+                token: uni.getStorageSync("token"),
+            },
+            success: function (res) {
+                let da = JSON.parse(res.data)
+                if (da.code === 0) {
+                    resolve(da.data.images)
+                } else {
+                    reject(da.data.images)
+                }
+            },
+        });
+    });
 }

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно