Jelajahi Sumber

商家入驻

DaMowang 2 tahun lalu
induk
melakukan
3553ca8b7e

+ 3 - 3
src/app.scss

@@ -47,9 +47,9 @@ view,text,div {
 /* 在线链接服务仅供平台体验和调试使用,平台不承诺服务的稳定性,企业客户需下载字体包自行发布使用并做好备份。 */
 @font-face {
     font-family: 'iconfont';  /* Project id 3748689 */
-    src: url('//at.alicdn.com/t/c/font_3748689_czprl959cfj.woff2?t=1701168822033') format('woff2'),
-         url('//at.alicdn.com/t/c/font_3748689_czprl959cfj.woff?t=1701168822033') format('woff'),
-         url('//at.alicdn.com/t/c/font_3748689_czprl959cfj.ttf?t=1701168822033') format('truetype');
+    src: url('//at.alicdn.com/t/c/font_3748689_egyerbpmrbl.woff2?t=1701245595289') format('woff2'),
+         url('//at.alicdn.com/t/c/font_3748689_egyerbpmrbl.woff?t=1701245595289') format('woff'),
+         url('//at.alicdn.com/t/c/font_3748689_egyerbpmrbl.ttf?t=1701245595289') format('truetype');
   }
 
 .iconfont {

+ 2 - 13
src/main.js

@@ -17,9 +17,6 @@ Vue.prototype.$md5 = md5;
 import dayjs from 'dayjs';
 Vue.prototype.$day = dayjs;
 
-import cof from '@/static/config/in';
-Vue.prototype.$cof = cof;
-
 // 微信全局分享
 import share from '@/utils/share.js'
 Vue.mixin(share)
@@ -43,19 +40,11 @@ import { goto, tidyTpye, hotelStarf, toast } from '@/utils/myfun.js';
 Vue.prototype.goto = goto;  // 页面跳转
 Vue.prototype.tidyTpye = tidyTpye;  // 专区判断
 Vue.prototype.hotelStarF = hotelStarf;  // 酒店星级判断
-Vue.prototype.$toast = toast;  // 酒店星级判断
+Vue.prototype.$toast = toast;  // toast
 
 App.mpType = 'app'
 
 const app = new Vue({
     ...App
 })
-app.$mount()
-
-Vue.directive('focus', {
-    inserted: (el, binding) => {
-        if (binding.value == true || binding.value == undefined) {
-            el.focus()
-        }
-    }
-});
+app.$mount()

+ 24 - 0
src/pages.json

@@ -496,6 +496,30 @@
 						"navigationBarTextStyle": "white",
 						"navigationStyle": "custom"
 					}
+				},
+				{
+					"path": "settledMerchant/pay",
+					"style": {
+						"navigationBarTitleText": ""
+					}
+				},
+				{
+					"path": "settledMerchant/myShop",
+					"style": {
+						"navigationBarTitleText": "我的店铺"
+					}
+				},
+				{
+					"path": "settledMerchant/myBusiness",
+					"style": {
+						"navigationBarTitleText": "我的商家"
+					}
+				},
+				{
+					"path": "settledMerchant/business",
+					"style": {
+						"navigationBarTitleText": "区域商家"
+					}
 				}
 			]
 		}

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

@@ -126,7 +126,7 @@
             <view class="fun mar_t30">
                 <view class="fun_title">商家中心</view>
                 <view class="fun_con mar_t50 flex_r flex_ac">
-                    <navigator class="fun_list flex_c flex_ac" url="/pagesB/address/list" hover-class="none">
+                    <navigator class="fun_list flex_c flex_ac" url="/pagesC/settledMerchant/myShop" hover-class="none">
                         <image class="fun_img" src="/static/my/store.png"></image>
                         <view class="fun_text">我的店铺</view>
                     </navigator>
@@ -134,15 +134,15 @@
                         <image class="fun_img" src="/static/my/merchant.png"></image>
                         <view class="fun_text">商家入驻</view>
                     </navigator>
-                    <navigator class="fun_list flex_c flex_ac" url="/pagesB/invoice/invoiceList" hover-class="none">
+                    <navigator class="fun_list flex_c flex_ac" url="/pagesC/settledMerchant/myBusiness" hover-class="none">
                         <image class="fun_img" src="/static/my/merchant2.png"></image>
                         <view class="fun_text">我的商家</view>
                     </navigator>
-                    <navigator class="fun_list flex_c flex_ac" @click="goto('/pages/agreement/index',{tit:'新手教程',type:1})" hover-class="none">
+                    <navigator class="fun_list flex_c flex_ac" url="/pagesC/settledMerchant/business" hover-class="none">
                         <image class="fun_img" src="/static/my/merchant3.png"></image>
                         <view class="fun_text">区域商家</view>
                     </navigator>
-                    <navigator class="fun_list flex_c flex_ac" @click="goto('/pages/agreement/index',{tit:'新手教程',type:1})" hover-class="none">
+                    <navigator class="fun_list flex_c flex_ac" hover-class="none">
                         <image class="fun_img" src="/static/my/operator.png"></image>
                         <view class="fun_text">申请运营商</view>
                     </navigator>

+ 3 - 11
src/pagesB/cinema/selectSeat.vue

@@ -101,17 +101,9 @@ export default {
         },
     },
     onLoad(da) {
-        let that = this
-        //获取宽度
-        uni.getSystemInfo({
-            success: function(e) {
-                that.boxWidth = e.screenWidth
-                //#ifdef H5
-                that.scaleMin = 0.95
-                //#endif
-            }
-        })
-        that.initData(da)
+        let e = uni.getSystemInfoAsync()
+        this.boxWidth = e.screenWidth
+        this.initData(da)
     },
     methods: {
         async initData(da) {

+ 0 - 1
src/pagesB/hotel/index.vue

@@ -79,7 +79,6 @@ import QQMapWX from '@/pagesB/static/js/qqmap-wx-jssdk.min.js';
 const showmap = new QQMapWX({ key: 'K7LBZ-RE23Q-JEN5D-4ZNEI-MS54Q-BHF6D' });
 import { post } from "@/request/api.js";
 import { setCache } from "@/utils/storage.js"
-// import {similar} from '@/pagesB/static/js/similar.js';
 export default {
     name: "hotel",
     props: {},

+ 3 - 7
src/pagesB/invoice/invoiceList.vue

@@ -38,13 +38,9 @@ export default {
     };
   },
   onLoad(option) {
-    let that = this;
-    uni.getSystemInfo({
-      success: function (res) {
-        that.height = res.windowHeight * 2 - 150 + "rpx";
-        that.getList();
-      },
-    });
+    let res = uni.getSystemInfoAsync()
+    this.height = res.windowHeight * 2 - 150 + "rpx";
+    this.getList();
   },
   onLaunch() {},
   onShow() {},

+ 12 - 1
src/pagesB/my/addShop.vue

@@ -82,7 +82,8 @@
                 <upimg v-model="formData.atlas" :count="6"/>
             </uni-forms-item>
         </uni-forms>
-        <button class="button" @click="submit">校验表单</button>
+        <div class="btn" @click="submit">确认提交</div>
+        <!-- <button class="button" @click="submit">校验表单</button> -->
         <select-address :address.sync="address" ref="selectAddress" @change="changeAddress" />
     </div>
 </template>
@@ -243,4 +244,14 @@ export default {
         }
     }
 }
+.btn{
+    color: #fff;
+    height: 80rpx;
+    line-height: 80rpx;
+    font-size: 36rpx;
+    background: #17bb87;
+    border-radius: 45rpx;
+    text-align: center;
+    margin-bottom: 50rpx;
+}
 </style>

+ 1 - 7
src/pagesB/my/assistant.vue

@@ -79,13 +79,7 @@ export default {
     };
   },
   onLoad(option) {
-    let that = this;
-    uni.getSystemInfo({
-      success: function (res) {
-        // that.height = res.windowHeight * 2 - 150 + "rpx";
-        that.getList();
-      },
-    });
+    this.getList();
   },
   onLaunch() {},
   onShow() {},

+ 2 - 6
src/pagesB/orderingfood/orderingfood.vue

@@ -255,12 +255,8 @@ export default {
         uni.setNavigationBarTitle({ title: this.MerchantInfo.restaurant_name });
         this.getCartList();
 
-        let that = this;
-        uni.getSystemInfo({
-            success: function(e) {
-                that.ios = e.model.search("iPhone");
-            }
-        })
+        let e = uni.getSystemInfoAsync()
+        this.ios = e.model.search("iPhone");
     },
     onLoad(da) {
         this.getGoodsAllList(da)

+ 94 - 0
src/pagesC/components/empty/empty.vue

@@ -0,0 +1,94 @@
+<template>
+    <view :class="['o-empty']" :style="Bg+Height">
+        <image :style="ImgSize" :src="Img" mode="aspectFit"></image>
+        <view class="text">{{text}}</view>
+        <view class="slot" v-if="$slots.default">
+            <slot></slot>
+        </view>
+    </view>
+</template>
+<script>
+export default {
+    name: 'oEmpty',
+    // #ifdef MP-WEIXIN
+    options: { virtualHost: true },
+    // #endif
+    props: {
+
+        // img:缺省图片,可选值 error network search,支持传入图片URL,图片仅支持jpg/png/svg三种格式
+        // imgSize:缺省图尺寸,
+        // text:描述文字,
+        // bg:背景色
+        // height:组件占位最小高度,实际高度看是否被内容撑开
+
+        img: {
+            type: String,
+            default: 'e'
+        },
+        imgSize: {
+            type: [String, Number],
+            default: '320'
+        },
+        text: {
+            type: String,
+            default: '暂无数据'
+        },
+        bg: {
+            type: String,
+            default: 'rgba(0, 0, 0, 0)'
+        },
+        height: {
+            type: String,
+            default: '480rpx'
+        }
+    },
+    data() {
+        return {
+
+        }
+    },
+    methods: {
+
+    },
+    computed: {
+        Bg() { return `backgroundColor:${this.bg};` },
+        Height() {
+            if (['rpx', 'px', 'rem', 'em', 'vw', 'vh', '%'].includes(this.height)) return `minHeight:${this.height}`
+            else return `minHeight:${this.height}rpx`
+        },
+        Img() {
+            if (['error', 'network', 'search'].includes(this.img)) return require(`@/pagesC/static/${this.img}.svg`);
+            else if (this.img.endsWith('.jpg') || this.img.endsWith('.png') || this.img.endsWith('.svg')) return this.img;
+            else return require('@/pagesC/static/empty.svg')
+        },
+        ImgSize() {
+            if (['rpx', 'px', 'rem', 'em', 'vw', '%'].includes(this.imgSize)) return `width:${this.imgSize};height:${this.imgSize};`
+            else return `width:${this.imgSize}rpx;height:${this.imgSize}rpx;`
+        }
+    },
+}
+</script>
+<style lang="scss">
+.o-empty {
+    // min-height:350rpx;
+    display: flex;
+    flex-direction: column;
+    padding: 64rpx 0 !important;
+    align-items: center;
+    justify-content: center;
+    box-sizing: border-box;
+}
+
+.center {
+    text-align: center;
+}
+
+.text {
+    color: #969798;
+    padding: 20rpx 0;
+}
+
+.slot {
+    padding-top: 20rpx;
+}
+</style>

+ 2 - 5
src/pagesC/components/nav/nav.vue

@@ -4,7 +4,7 @@
                 <image class="search-bak" src="@/static/img/search-bak-icon.png" mode="" @click="bakpage"></image>
                 <view class="new-search-box">
                     <image src="@/static/img/new-search.png" mode=""></image>
-                    <input type="text" :focus="showfocus" :placeholder="hint" v-model="goods" @confirm="search" />
+                    <input :focus="true" :placeholder="hint" v-model="goods" @confirm="search" />
                 </view>
             </view>
         </view>
@@ -14,7 +14,6 @@ export default {
     data() {
         return {
             goods: '',
-            showfocus: false
         }
     },
     props: {
@@ -27,9 +26,7 @@ export default {
             default: ""
         },
     },
-    created() {
-        this.showfocus = true;
-    },
+    created() {},
 	computed: {
 		height() {
 			const { platform, statusBarHeight } = uni.getSystemInfoSync()

+ 115 - 0
src/pagesC/settledMerchant/business.vue

@@ -0,0 +1,115 @@
+<template>
+    <div class="myBusiness">
+        <div class="list" v-if="list.length">
+            <div class="list-item" v-for="(i,s) in list" :key="s">
+                <div class="head_info_row flex_r flex_ac">
+                    <image class="logo" :src="i.logo" />
+                    <div class="head_name">
+                        <div class="name">{{ i.name }}</div>
+                        <div class="flex_r flex_ac">
+                            <uni-rate :max="5" :value="i.score" :size="12" allow-half />
+                            <span class="commentScore">{{i.score}}分</span>
+                        </div>
+                    </div>
+                </div>
+                <div class="p1 flex_r">
+                    <div>商户姓名:{{i.contact}}</div>
+                    <div>商户电话:{{i.phone}}</div>
+                </div>
+                <div class="p1 flex_r">
+                    <div>今日流水:{{i.day_stream}}</div>
+                    <div>总流水:{{i.total_stream}}</div>
+                </div>
+            </div>
+        </div>
+        <empty v-else/>
+    </div>
+</template>
+<script>
+import empty from "@/pagesC/components/empty/empty"
+import { post } from "@/request/api.js";
+export default {
+    name: "myBusiness",
+    props: {},
+    components: {empty},
+    data() {
+        return {
+            list: [],
+            Query: {
+                page: 1,
+                rows: 20,
+            },
+            pageData: {},
+        };
+    },
+    methods: {
+        getList() {
+            post("v1/merchant/region", this.Query).then(res => {
+                if (res.code == 0) {
+                    let da = res.data.data
+                    delete res.data.data
+                    this.pageData = res.data
+                    this.list = [...this.list, ...da]
+                    this.Query.page++
+                    uni.hideLoading()
+                }
+            })
+        },
+    },
+    onLoad(da) {
+        uni.showLoading({title: '加载中'})
+        this.getList()
+    },
+    onShow() {},
+    mounted() {},
+    onReachBottom() {
+        if (this.Query.page < this.pageData.last_page) this.getList();
+    },
+};
+</script>
+<style scoped lang='scss'>
+.myBusiness {
+    padding: 28rpx 32rpx;
+}
+
+.list{
+    padding: 30rpx 0;
+    .list-item{
+        padding: 28rpx 30rpx;
+        margin-bottom: 50rpx;
+        border-radius: 12rpx;
+        background-color: #fff;
+        box-shadow: 4rpx 4rpx 8rpx 4rpx rgba(0, 0, 0, 0.12);
+    }
+    .head_info_row {
+        margin-bottom: 20rpx;
+        .logo {
+            width: 120rpx;
+            height: 110rpx;
+            border-radius: 12rpx;
+            margin-right: 25rpx;
+            border: 1px solid #e5e5e5;
+        }
+    
+        .head_name {
+            .name {
+                font-size: 36rpx;
+                font-weight: 600;
+                margin-bottom: 12rpx;
+            }
+    
+            .commentScore {
+                margin-left: 10rpx;
+                font-size: 24rpx;
+            }
+        }
+    }
+    .p1{
+        font-size: 24rpx;
+        margin-top: 6rpx;
+        div{
+            width: 50%;
+        }
+    }
+}
+</style>

+ 10 - 5
src/pagesC/settledMerchant/index.vue

@@ -13,15 +13,15 @@
 			</view>
 			<view class="next-history-list">
 				<view class="history-name" v-for="(item,index) in oldKeywordList" :key="index" @click="historyItemClick(item,index)">
-					{{item}}
-					<text v-if="isDelete" class="iconfont" style="font-size: 30rpx;">&#xe609;</text>
+                    <text>{{item}}</text>
+					<text v-if="isDelete" class="iconfont">&#xe609;</text>
 				</view>
 			</view>
             <view class="history-title">
                 <view class="title-name"><text>附近商家</text></view>
             </view>
 		</view>
-        <div class="list">
+        <div class="list" v-if="list.length">
             <div class="li_item" v-for="(i,s) in list" :key="s" @click="goMerchant(i)">
                 <!-- <div class="li_title">{{ i.name }}</div> -->
                 <div class="logo_img">
@@ -34,15 +34,17 @@
                 </div>
             </div>
         </div>
+        <empty v-else/>
     </div>
 </template>
 <script>
 import { post } from "@/request/api.js";
 import myNav from "@/pagesC/components/nav/nav"
+import empty from "@/pagesC/components/empty/empty"
 export default {
     name: "settledMerchantList",
     props: {},
-    components: { myNav },
+    components: { myNav,empty },
     data() {
         return {
             list: [],
@@ -110,10 +112,10 @@ export default {
         },
     },
     onLoad(da) {
+        this.oldKeywordList = this.getLS("oldKeywords") || [];
         this.getLocation();
         if(da.key) this.navSearch(decodeURIComponent(da.key))
         else this.getList();
-        this.oldKeywordList = this.getLS("oldKeywords") || [];
     },
     onShow() {},
     mounted() {},
@@ -195,6 +197,9 @@ export default {
             display: flex;
             align-items: center;
             justify-content: center;
+            .iconfont{
+                margin-left: 8rpx;
+            }
         }
     }
 }

+ 8 - 2
src/pagesC/settledMerchant/merchant.vue

@@ -26,7 +26,7 @@
             </div>
         </div>
         <div class="btn-box">
-            <div class="btn">快捷买单</div>
+            <div class="btn" @click="topay">快捷买单</div>
         </div>
         <!-- 图片查看组件 -->
         <preview ref="previewimg" :listType="2" @close="previewclose"/>
@@ -44,7 +44,9 @@ export default {
         return {
             query: {},
             merchantID: "",
-            merchantInfo: {},
+            merchantInfo: {
+                distance:0
+            },
             detail: {},
             config: {
                 title: "",
@@ -92,6 +94,10 @@ export default {
                 }
             });
         },
+        topay(){
+            this.setLS("topay_merchant",this.detail)
+            this.goto("/pagesC/settledMerchant/pay")
+        }
     },
     onLoad(da) {
         this.merchantID = da.id;

+ 156 - 0
src/pagesC/settledMerchant/myBusiness.vue

@@ -0,0 +1,156 @@
+<template>
+    <div class="myBusiness">
+        <div class="tabs flex_r flex_jb">
+            <div v-for="(i,s) in tabs" :key="s"
+                :class="{active:Query.status==i.status}"
+                @click="ontab(i.status)">{{i.text}}</div>
+        </div>
+        
+        <div class="list" v-if="list.length">
+            <div class="list-item" v-for="(i,s) in list" :key="s">
+                <div class="head_info_row flex_r flex_ac">
+                    <image class="logo" :src="i.logo" />
+                    <div class="head_name">
+                        <div class="name">{{ i.name }}</div>
+                        <div class="flex_r flex_ac">
+                            <uni-rate :max="5" :value="i.score" :size="12" allow-half />
+                            <span class="commentScore">{{i.score}}分</span>
+                        </div>
+                    </div>
+                </div>
+                <div class="p1 flex_r">
+                    <div>商户姓名:{{i.contact}}</div>
+                    <div>商户电话:{{i.phone}}</div>
+                </div>
+                <div class="p1 flex_r">
+                    <div>今日流水:{{i.day_stream}}</div>
+                    <div>总流水:{{i.total_stream}}</div>
+                </div>
+            </div>
+        </div>
+        <empty v-else/>
+    </div>
+</template>
+<script>
+import empty from "@/pagesC/components/empty/empty"
+import { post } from "@/request/api.js";
+export default {
+    name: "myBusiness",
+    props: {},
+    components: {empty},
+    data() {
+        return {
+            tabs: [
+                { status: 2, text: "已审核" },
+                { status: 1, text: "待审核" },
+                { status: 3, text: "未通过" },
+            ],
+            list: [],
+            Query: {
+                page: 1,
+                rows: 20,
+                status: 2
+            },
+            pageData: {},
+        };
+    },
+    methods: {
+        getList(page) {
+            if (page) {
+                this.list = []
+                this.Query.page = 1
+            }
+            post("v1/merchant/myMerchant", this.Query).then(res => {
+                if (res.code == 0) {
+                    let da = res.data.data
+                    delete res.data.data
+                    this.pageData = res.data
+                    this.list = [...this.list, ...da]
+                    this.Query.page++
+                    uni.hideLoading()
+                }
+            })
+        },
+        ontab(va){
+            uni.showLoading({title: '加载中'})
+            this.Query.status = va;
+            this.getList(1)
+        }
+    },
+    onLoad(da) {
+        this.getList()
+    },
+    onShow() {},
+    mounted() {},
+    onReachBottom() {
+        if (this.Query.page < this.pageData.last_page) this.getList();
+    },
+};
+</script>
+<style scoped lang='scss'>
+.myBusiness {
+    padding: 28rpx 32rpx;
+}
+
+.tabs {
+    padding: 0 30rpx;
+    font-size: 30rpx;
+    font-weight: 600;
+    margin-bottom: 18rpx;
+
+    .active {
+        position: relative;
+
+        &::after {
+            content: "";
+            width: 88rpx;
+            height: 6rpx;
+            background-color: #2E57FD;
+            border-radius: 5rpx;
+            position: absolute;
+            left: 2rpx;
+            bottom: -8rpx;
+        }
+    }
+}
+.list{
+    padding: 30rpx 0;
+    .list-item{
+        padding: 28rpx 30rpx;
+        margin-bottom: 50rpx;
+        border-radius: 12rpx;
+        background-color: #fff;
+        box-shadow: 4rpx 4rpx 8rpx 4rpx rgba(0, 0, 0, 0.12);
+    }
+    .head_info_row {
+        margin-bottom: 20rpx;
+        .logo {
+            width: 120rpx;
+            height: 110rpx;
+            border-radius: 12rpx;
+            margin-right: 25rpx;
+            border: 1px solid #e5e5e5;
+        }
+    
+        .head_name {
+            .name {
+                font-size: 36rpx;
+                font-weight: 600;
+                margin-bottom: 12rpx;
+            }
+    
+            .commentScore {
+                margin-left: 10rpx;
+                font-size: 24rpx;
+            }
+        }
+    }
+    .p1{
+        font-size: 24rpx;
+        margin-top: 6rpx;
+        div{
+            width: 50%;
+        }
+    }
+}
+</style>

+ 185 - 0
src/pagesC/settledMerchant/myShop.vue

@@ -0,0 +1,185 @@
+<template>
+    <div class="myshop">
+        <div class="card">
+            <div class="money">¥{{money.withdraw_money}}</div>
+            <div class="msg">可提现金额(元)</div>
+            <div class="btn">
+                <span>去提现</span>
+                <span class="iconfont">&#xe62e;</span>
+            </div>
+        </div>
+        <div class="elseMoney flex_r flex_jb flex_ac">
+            <div class="total_money">总收入<span>¥{{money.total_money}}</span></div>
+            <div class="day_income">今日收入<span>¥{{money.day_income}}</span></div>
+        </div>
+        <div class="list" v-if="list.length">
+            <div class="list-item" v-for="(i,s) in list" :key="s">
+                <div class="head_info_row flex_r flex_ac">
+                    <image class="logo" :src="i.logo" />
+                    <div class="head_name">
+                        <div class="name">{{ i.name }}</div>
+                        <div class="flex_r flex_ac">
+                            <uni-rate :max="5" :value="i.score" :size="12" allow-half />
+                            <span class="commentScore">{{i.score}}分</span>
+                        </div>
+                    </div>
+                </div>
+                <div class="p1 flex_r">
+                    <div class="l"><span class="iconfont">&#xe9d2;</span>业务员:{{i.nickname}}</div>
+                    <div class="r"><span class="iconfont">&#xe9d3;</span>电话:{{i.mobile}}</div>
+                </div>
+                <div class="p1 flex_r" v-if="i.user_nickname">
+                    <div class="l"><span class="iconfont">&#xe9b9;</span>区域商:{{i.user_nickname}}</div>
+                    <div class="r"><span class="iconfont">&#xe9d3;</span>电话:{{i.user_mobile}}</div>
+                </div>
+            </div>
+        </div>
+        <empty v-else/>
+    </div>
+</template>
+<script>
+import empty from "@/pagesC/components/empty/empty"
+import { post } from "@/request/api.js";
+export default {
+    name: "myshop",
+    props: {},
+    components: {empty},
+    data() {
+        return {
+            list: [],
+            money: {}
+        };
+    },
+    methods: {
+        getList(page) {
+            uni.showLoading({title: '加载中'})
+            post("v1/merchant/myShop").then(res => {
+                if (res.code == 0) {
+                    this.list = res.data.list.data
+                    let { day_income, total_money, withdraw_money } = res.data
+                    this.money = { day_income, total_money, withdraw_money }
+                    uni.hideLoading()
+                }
+            })
+        },
+    },
+    onLoad(da) {
+        this.getList()
+    },
+    onShow() {},
+    mounted() {},
+};
+</script>
+<style scoped lang='scss'>
+.myshop {
+    padding: 28rpx 32rpx;
+    min-height: 100vh;
+    background-color: #fff;
+}
+
+.card {
+    height: 260rpx;
+    border-radius: 30rpx;
+    background: linear-gradient(to right, #696EFD, #2E57FD);
+    position: relative;
+    color: #fff;
+
+    .money {
+        font-size: 56rpx;
+        font-weight: 600;
+        padding-left: 35rpx;
+        height: 55rpx;
+        line-height: 55rpx;
+        position: absolute;
+        left: 0;
+        top: calc(50% - 50rpx);
+    }
+
+    .msg {
+        position: absolute;
+        bottom: 30rpx;
+        left: 0;
+        padding-left: 38rpx;
+        font-size: 26rpx;
+    }
+
+    .btn {
+        color: #2E57FD;
+        position: absolute;
+        right: 0;
+        top: calc(50% - 50rpx);
+        width: 170rpx;
+        text-align: center;
+        height: 55rpx;
+        line-height: 55rpx;
+        font-size: 30rpx;
+        background-color: #fff;
+        border-radius: 28rpx 0 0 28rpx;
+
+        .iconfont {
+            font-size: 25rpx;
+            margin-left: 12rpx;
+        }
+    }
+}
+
+.elseMoney {
+    height: 120rpx;
+    background-color: #ECECEC;
+    border-radius: 0 0 30rpx 30rpx;
+    margin-top: -30rpx;
+    padding: 30rpx 32rpx 0;
+    font-size: 26rpx;
+    color: #666;
+
+    div:last-child {
+        text-align: right;
+    }
+
+    span {
+        color: #2E57FD;
+        font-size: 28rpx;
+        margin-left: 8rpx;
+    }
+}
+.list{
+    padding: 30rpx 0;
+    .list-item{
+        margin-bottom: 50rpx;
+    }
+    .head_info_row {
+        .logo {
+            width: 120rpx;
+            height: 110rpx;
+            border-radius: 12rpx;
+            margin-right: 25rpx;
+            border: 1px solid #e5e5e5;
+        }
+    
+        .head_name {
+            .name {
+                font-size: 36rpx;
+                font-weight: 600;
+                margin-bottom: 12rpx;
+            }
+    
+            .commentScore {
+                margin-left: 10rpx;
+                font-size: 24rpx;
+            }
+        }
+    }
+    .p1{
+        font-size: 26rpx;
+        margin-top: 12rpx;
+        div{
+            width: 50%;
+        }
+        .iconfont{
+            font-size: 26rpx;
+            color: #2E57FD;
+            margin-right: 10rpx;
+        }
+    }
+}
+</style>

+ 140 - 0
src/pagesC/settledMerchant/pay.vue

@@ -0,0 +1,140 @@
+<template>
+    <div class="pay">
+        <div class="card inpt-box">
+            <div class="tit">消费总额</div>
+            <input v-model="Body.money" @input="payCalculate" placeholder="请询问服务员后输入" class="inp bur"/>
+        </div>
+        <div class="money card">
+            <div class="li flex_r flex_jb">
+                <span>消费金折扣</span>
+                <span>{{ discounts.discount || 0 }}</span>
+            </div>
+            <div class="li flex_r flex_jb">
+                <span>赠送茶宝</span>
+                <span>{{ discounts.chabao || 0 }}</span>
+            </div>
+        </div>
+        <div class="btn" @click="pay">确认买单</div>
+    </div>
+</template>
+
+<script>
+import { post } from "@/request/api.js";
+export default {
+    name: "pay",
+    props: {},
+    components: {},
+    data() {
+        return {
+            Body: {},
+            merchant: {},
+            discounts: {}
+        };
+    },
+    methods: {
+        payCalculate(){
+            post("v1/merchant/quickPay",this.Body).then(res=>{
+                if(res.code == 0){
+                    this.discounts = res.data
+                }
+            })
+        },
+        pay(){
+            post("v1/merchant/orders",this.Body).then(res=>{
+                if (res.code == 0 && res.data.prepayid) {
+                    toPayOpre.toPay(res.data, (rea) => {
+                        if (!rea) {
+                            this.$toast(res.msg)
+                            setTimeout(() => {
+                                uni.navigateBack({ delta: 1 })
+                            }, 1500);
+                        } else {}
+                    });
+                }else if (res.code == 0) uni.navigateBack({ delta: 1 })
+            })
+        }
+    },
+    onLoad(da) {
+        this.merchant = this.getLS("topay_merchant")
+        uni.setNavigationBarTitle({ title: this.merchant.name })
+        this.Body.shopt_id = this.merchant.id
+    },
+    onShow() {},
+    mounted() {},
+};
+</script>
+
+<style scoped lang='scss'>
+.pay{
+    padding: 28rpx 32rpx;
+}
+.inpt-box{
+    .tit{
+        font-size: 36rpx;
+        font-weight: 600;
+        margin-bottom: 20rpx;
+    }
+    .inp{
+        background-color: #F6F6F6;
+        height: 72rpx;
+        line-height: 72rpx;
+        border-radius: 12rpx;
+        font-size: 28rpx;
+        padding: 0 30rpx;
+        text-align: right;
+    }
+    .bur{
+        position: relative;
+        padding-left: 228rpx;
+        &::after{
+            content: "不参与优惠金额";
+            position: absolute;
+            left: 30rpx;
+            top: 0;
+            font-size: 24rpx;
+            color: #222;
+        }
+    }
+}
+.money {
+    .li {
+        margin-bottom: 16rpx;
+
+        &:last-child {
+            margin-bottom: 0;
+        }
+
+        span {
+            font-size: 30rpx;
+        }
+    }
+
+    .corg {
+        color: #18bb88;
+        margin-left: 12rpx;
+    }
+}
+
+.card {
+    background-color: #fff;
+    border-radius: 20rpx;
+    margin-bottom: 30rpx;
+    padding: 28rpx 30rpx;
+    font-size: 32rpx;
+    box-shadow: 4rpx 4rpx 8rpx 4rpx rgba(0, 0, 0, 0.12);
+
+    &:last-child {
+        margin-bottom: 0;
+    }
+}
+.btn{
+    color: #fff;
+    height: 80rpx;
+    line-height: 80rpx;
+    font-size: 36rpx;
+    background: #17bb87;
+    border-radius: 45rpx;
+    text-align: center;
+    margin-top: 100rpx;
+}
+</style>

+ 38 - 0
src/pagesC/static/empty.svg

@@ -0,0 +1,38 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 152 133">
+<defs>
+<linearGradient id="a" x1="0.65" y1="0.8" x2="0.65" gradientUnits="objectBoundingBox">
+    <stop offset="0" stop-color="#4d5a5a" stop-opacity="0"/>
+    <stop offset="1" stop-color="#4d5a5a" stop-opacity="0.12"/>
+</linearGradient>
+<linearGradient id="b" x1="0.65" y1="0.8" x2="0.65" xlink:href="#a"/>
+<linearGradient id="c" x1="0.65" y1="0.95" x2="0.65" xlink:href="#a"/>
+<linearGradient id="d" x1="0.65" y1="1.2" x2="0.65" xlink:href="#b"/>
+<linearGradient id="e" x1="0.5" x2="0.5" y2="1" gradientUnits="objectBoundingBox">
+<stop offset="0" stop-color="#f2f3f5"/><stop offset="1" stop-color="#dcdee0"/>
+</linearGradient>
+<linearGradient id="f" x1="0.95" y1="0.48" x2="0.055" y2="0.51" gradientUnits="objectBoundingBox">
+<stop offset="0" stop-color="#eaedf1"/><stop offset="1" stop-color="#dcdee0"/>
+</linearGradient>
+<linearGradient id="i" x1="0" y1="0.45" x2="1" y2="0.54" xlink:href="#f"/>
+</defs>
+
+<g transform="translate(-155 -150)">
+    <path d="M36,131V53H16V73H2v58Z" transform="translate(153 144)" fill="url(#a)"/>
+    <path d="M123,15h22V29h9v77H123Z" transform="translate(153 144)" fill="url(#b)"/>
+    <path d="M87,6c3,0,7,3,8,6a8.016,8.016,0,0,1-1,16H80a7,7,0,0,1-8-6c0-4,3-7,6-7A8.963,8.963,0,0,1,87,6Z" transform="translate(153 144)" fill="url(#c)" />
+    <path d="M19,23c2,0,3,1,4,3a4.033,4.033,0,0,1,4,4,4.08,4.08,0,0,1-4,4H15c-2,0-3-2-3-4a3.193,3.193,0,0,1,3-3A4.3,4.3,0,0,1,19,23Z" transform="translate(153 144)" fill="url(#c)" />
+    <g transform="translate(189 194)">
+        <g transform="translate(8)">
+        <rect width="36" height="53" rx="2" transform="translate(38 13)" fill="#ebedf0" opacity="0.6"/>
+        <rect width="64" height="66" rx="2" fill="url(#e)"/>
+        <rect width="52" height="55" rx="1" transform="translate(6 6)" fill="#fff"/>
+            <g transform="translate(15 17)"><rect width="34" height="6" rx="1" fill="url(#f)"/>
+                <path d="M0,14H34v6H0Z" fill="url(#f)"/><rect width="34" height="6" rx="1" transform="translate(0 28)" fill="url(#f)"/>
+            </g>
+        </g>
+    <rect width="88" height="28" rx="1" transform="translate(0 61)" fill="url(#i)"/>
+    <rect width="30" height="6" rx="1" transform="translate(29 72)" fill="#f7f8fa"/>
+    </g>
+</g>
+
+</svg>

+ 28 - 0
src/pagesC/static/error.svg

@@ -0,0 +1,28 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160">
+<defs>
+<linearGradient id="a" x1="0.65" y1="0.8" x2="0.65" gradientUnits="objectBoundingBox">
+    <stop offset="0" stop-color="#4d5a5a" stop-opacity="0"/>
+    <stop offset="1" stop-color="#4d5a5a" stop-opacity="0.12"/>
+</linearGradient>
+<linearGradient id="b" x1="0.65" y1="0.8" x2="0.65" xlink:href="#a"/>
+<linearGradient id="c" x1="0.65" y1="0.95" x2="0.65" xlink:href="#a"/>
+<radialGradient id="e" cx="0.5" cy="0.5" r="2.97" gradientTransform="translate(0.58 0.72) rotate(180) scale(0.16 0.33)" gradientUnits="objectBoundingBox">
+    <stop offset="0" stop-color="#ebedf0"/>
+    <stop offset="1" stop-color="#f2f3f5" stop-opacity="0.302"/>
+</radialGradient>
+<linearGradient id="f" x1="0.5" x2="0.5" y2="1" gradientUnits="objectBoundingBox">
+    <stop offset="0" stop-color="#4d5a5a" stop-opacity="0.12"/>
+    <stop offset="1" stop-color="#4d5a5a" stop-opacity="0.2"/>
+</linearGradient>
+</defs>
+<g transform="translate(-47 -211)">
+<g transform="translate(45 205)" opacity="0.8">
+<path d="M36,131V53H16V73H2v58Z" fill="url(#a)"/>
+<path d="M123,15h22V29h9v77H123Z" fill="url(#b)"/>
+</g>
+<path d="M87,6c3,0,7,3,8,6a8.016,8.016,0,0,1-1,16H80a7,7,0,0,1-8-6c0-4,3-7,6-7A8.963,8.963,0,0,1,87,6Z" transform="translate(45 205)" fill="url(#c)"/>
+<path d="M19,23c2,0,3,1,4,3a4.3,4.3,0,0,1,4,4,4,4,0,0,1-4,3v1H16V33l-1,1c-2,0-3-2-3-4a3.193,3.193,0,0,1,3-3A4.3,4.3,0,0,1,19,23Z" transform="translate(45 205)" fill="url(#c)"/>
+<ellipse cx="46" cy="8" rx="46" ry="8" transform="translate(79 337)" opacity="0.8" fill="url(#e)"/>
+<path d="M59,60,80,81l21-21h3l9,9v3L92,93l21,21v3l-9,9h-3L80,105,59,126H56l-9-9v-3L68,93,47,72V69l9-9Z" transform="translate(45 205)" fill="url(#f)"/>
+</g>
+</svg>

+ 28 - 0
src/pagesC/static/network.svg

@@ -0,0 +1,28 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160">
+<defs>
+    <linearGradient id="a" x1="0.65" y1="0.8" x2="0.65" gradientUnits="objectBoundingBox">
+        <stop offset="0" stop-color="#4d5a5a" stop-opacity="0"/>
+        <stop offset="1" stop-color="#4d5a5a" stop-opacity="0.12"/>
+    </linearGradient>
+    <linearGradient id="b" x1="0.645" y1="0.931" x2="0.64" xlink:href="#a"/>
+    <radialGradient id="c" cx="0.5" cy="0" gradientUnits="objectBoundingBox">
+        <stop offset="0" stop-color="#ebedf0"/>
+        <stop offset="1" stop-color="#fff" stop-opacity="0"/>
+    </radialGradient>
+    <linearGradient id="d" x1="0.5" x2="0.5" y2="0.84" gradientUnits="objectBoundingBox">
+        <stop offset="0" stop-color="#4d5a5a" stop-opacity="0.15"/>
+        <stop offset="1" stop-color="#4d5a5a" stop-opacity="0.05"/>
+    </linearGradient>
+    <linearGradient id="e" x1="0.5" y1="-0.3" x2="0.5" y2="1" xlink:href="#a"/>
+</defs>
+<g transform="translate(-41 -391)"><path d="M36,131V53H16V73H2v58Z" transform="translate(39 376)" fill="url(#a)"/>
+    <path d="M123,15h22V29h9v77H123Z" transform="translate(39 376)" fill="url(#b)"/>
+    <path d="M0,139H152v21H0Z" transform="translate(41 376)" opacity="0.6" fill="url(#c)"/>
+    <path d="M80,54a7,7,0,0,1,3,13V94l-2,2H79a2,2,0,0,1-2-2V67a7,7,0,0,1,3-13Z" transform="translate(39 376)" fill="url(#d)"/>
+    <path d="M63.918,53.979a3.5,3.5,0,0,1-.009-4.95,30.556,30.556,0,0,0,0-43.059A3.5,3.5,0,0,1,68.867,1.03a37.568,37.568,0,0,1,0,52.941,3.5,3.5,0,0,1-4.949.009ZM10.909,53.97a37.57,37.57,0,0,1,0-52.941,3.5,3.5,0,1,1,4.958,4.941,30.558,30.558,0,0,0,0,43.059,3.5,3.5,0,1,1-4.958,4.941ZM52.833,42.891A3.5,3.5,0,0,1,53,37.944a15.417,15.417,0,0,0,4.894-10.606c0-3.729-1.491-6.877-4.978-10.363a3.5,3.5,0,1,1,4.949-4.95c4.793,4.793,7.025,9.71,7.025,15.476a22.46,22.46,0,0,1-7.109,15.556,3.5,3.5,0,0,1-4.946-.165Zm-30.92.084A22.513,22.513,0,0,1,15.889,27.5,22.406,22.406,0,0,1,21.81,12.134a3.5,3.5,0,1,1,5.157,4.732,15.454,15.454,0,0,0-4.079,10.606,15.53,15.53,0,0,0,3.975,10.553,3.5,3.5,0,0,1-4.95,4.95Z" transform="translate(78.612 408.5)" fill="url(#e)"/>
+    <g transform="translate(70 481)"><rect width="98" height="34" rx="2" fill="#ebedf0"/>
+    <rect width="80" height="18" rx="1.1" transform="translate(9 8)" fill="#fff"/>
+    <rect width="18" height="6" rx="1.1" transform="translate(15 12)" fill="#ebedf0"/>
+    </g>
+</g>
+</svg>

+ 63 - 0
src/pagesC/static/search.svg

@@ -0,0 +1,63 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160">
+
+<defs>
+    <linearGradient x1="50%" y1="100%" x2="50%" id="van-empty-10-9">
+        <stop stop-color="#EEE" offset="0%"/>
+        <stop stop-color="#D8D8D8" offset="100%"/>
+    </linearGradient>
+    <linearGradient x1="100%" y1="50%" y2="50%" id="van-empty-10-10">
+        <stop stop-color="#F2F3F5" offset="0%"/>
+        <stop stop-color="#DCDEE0" offset="100%"/>
+    </linearGradient>
+    <linearGradient x1="50%" x2="50%" y2="100%" id="van-empty-10-11">
+        <stop stop-color="#F2F3F5" offset="0%"/>
+        <stop stop-color="#DCDEE0" offset="100%"/>
+    </linearGradient>
+    <linearGradient x1="50%" x2="50%" y2="100%" id="van-empty-10-12">
+        <stop stop-color="#FFF" offset="0%"/>
+        <stop stop-color="#F7F8FA" offset="100%"/>
+    </linearGradient>
+</defs>
+
+<defs>
+    <linearGradient id="van-empty-10-a" x1="64%" y1="100%" x2="64%">
+        <stop offset="0" stop-color="#4d5a5a" stop-opacity="0"/>
+        <stop offset="1" stop-color="#4d5a5a" stop-opacity="0.12"/>
+    </linearGradient>
+</defs>
+
+<g opacity=".8">
+    <path d="M36 131V53H16v20H2v58h34z" fill="url(#van-empty-10-a)"/>
+    <path d="M123 15h22v14h9v77h-31V15z" fill="url(#van-empty-10-a)"/>
+</g>
+
+<defs>
+    <linearGradient id="van-empty-10-b" x1="64%" y1="97%" x2="64%" y2="0%">
+        <stop stop-color="#4d5a5a" offset="0%" stop-opacity="0.02"/>
+        <stop stop-color="#4d5a5a" offset="100%" stop-opacity="0.15"/>
+    </linearGradient>
+</defs>
+
+<g opacity=".8">
+    <path d="M87 6c3 0 7 3 8 6a8 8 0 1 1-1 16H80a7 7 0 0 1-8-6c0-4 3-7 6-7 0-5 4-9 9-9Z" fill="url(#van-empty-10-b)"/>
+    <path d="M19 23c2 0 3 1 4 3 2 0 4 2 4 4a4 4 0 0 1-4 3v1h-7v-1l-1 1c-2 0-3-2-3-4 0-1 1-3 3-3 0-2 2-4 4-4Z" fill="url(#van-empty-10-b)"/>
+</g>
+
+<defs>
+<radialGradient id="van-empty-10-d" cx="50%" cy="54%" fx="50%" fy="54%" r="297%" gradientTransform="matrix(-.16 0 0 -.33 .58 .72)">
+<stop stop-color="#EBEDF0" offset="0%"/>
+<stop stop-color="#F2F3F5" offset="100%" stop-opacity="0.3"/>
+</radialGradient>
+</defs>
+
+<ellipse fill="url(#van-empty-10-d)" opacity=".8" cx="80" cy="140" rx="46" ry="8"></ellipse>
+
+<g transform="rotate(-45 113 -4)" fill="none">
+    <rect fill="url(#van-empty-10-9)" x="24" y="52.8" width="5.8" height="19" rx="1"></rect>
+    <rect fill="url(#van-empty-10-10)" x="22.1" y="67.3" width="9.9" height="28" rx="1"></rect>
+    <circle stroke="url(#van-empty-10-11)" stroke-width="8" cx="27" cy="27" r="27"></circle>
+    <circle fill="url(#van-empty-10-12)" cx="27" cy="27" r="16"></circle>
+    <path d="M37 7c-8 0-15 5-16 12" stroke="url(#van-empty-10-11)" stroke-width="3" opacity=".5" stroke-linecap="round" transform="rotate(45 29 13)"/>
+</g>
+
+</svg>

+ 0 - 3
src/static/config/in.js

@@ -1,3 +0,0 @@
-export default {
-	
-}

+ 0 - 2
src/utils/run_now.js

@@ -41,8 +41,6 @@ uni.Location = () => {
             uni.getLocation({
                 type: 'wgs84',
                 success(res) {
-                    // latitude: 22.53270706658251 longitude: 113.94161660883711
-                    // {lat: 22.532707, lng: 113.941617}
                     let location = { lat: res.latitude, lng: res.longitude };
                     setCache("location", location, 60 * 2);
                     resolve(location);