DaMowang 2 gadi atpakaļ
vecāks
revīzija
65dd40cce4

+ 13 - 13
src/pages.json

@@ -175,19 +175,19 @@
 				"navigationBarTitleText": "提现"
 			}
 		},
-		{
-			"path": "pages/tea-list/index",
-			"style": {
-				"navigationBarTitleText": "我的茶友"
-			}
-		},
-		{
-			"path": "pages/my-credites/index",
-			"style": {
-				"navigationBarTitleText": "茶宝兑换",
-				"enablePullDownRefresh": false
-			}
-		},
+		// {
+		// 	"path": "pages/tea-list/index",
+		// 	"style": {
+		// 		"navigationBarTitleText": "我的茶友"
+		// 	}
+		// },
+		// {
+		// 	"path": "pages/my-credites/index",
+		// 	"style": {
+		// 		"navigationBarTitleText": "茶宝兑换",
+		// 		"enablePullDownRefresh": false
+		// 	}
+		// },
 		{
 			"path": "pages/pay-agreement/index",
 			"style": {

+ 15 - 1
src/pages/index/index.vue

@@ -118,9 +118,10 @@ export default {
     },
     onLoad(option) {
         this.getToCity()
+        this.loadData()
+        uni.Luserfun()
     },
     onShow() {
-        this.loadData();
         this.getBanner(); //获取轮播图
         this.getAnnounce(); //获取公告列表
         this.gethomeImg(); //活动列表
@@ -175,6 +176,19 @@ export default {
         },
         // 轮播图跳转
         goList(e) {},
+        // 金刚区跳转
+        setPageUrl(item) {
+            if ([1, 3, 4, 6].includes(item.type)) {
+                this.goto("/pages/product/productRetail", { type: item.type });
+            } else if (item.type == 2) {
+                this.goto("/pages/product/productWholesale", { type: 2 });
+            } else if (item.type == 5) {
+                this.goto("/pages/product/productTeaBaby", { type: item.type });
+            } else {
+                appEv.errTips("此功能暂未开放!");
+                return false;
+            }
+        },
         goVipGift() {
             this.goto("/pages/product/productRetail", { type: 4, is_vip: 1 });
         },

+ 13 - 11
src/pages/invi-img/index.vue

@@ -1,6 +1,6 @@
 <template>
-    <view class="container">
-        <div @click="gomy" class="iconfont fanhui" :style="{top:topHight+'px'}">&#xe633;</div>
+    <view class="container" :class="[IsMobile?'pt-190':'pt-50']">
+        <div @click="gomy" class="iconfont fanhui" :style="{top:topHight+'px'}" v-if="IsMobile">&#xe633;</div>
         <view class="invi_img">
             <swiper class="swiper_box" circular="true" duration="1000" indicator-dots="true" indicator-color="rgba(255, 255, 255, .3)" indicator-active-color="#d7a54c" @change="swiperchange">
                 <block>
@@ -34,7 +34,8 @@ export default {
             Url: "",
             userImg: "",
             topHight: 50,
-        };
+            IsMobile: true,
+        }
     },
     onLoad: function(options) {
         this.loadData();
@@ -42,13 +43,8 @@ export default {
     onShow: function() {
         let menuButtonObject = uni.getMenuButtonBoundingClientRect();
         this.topHight = menuButtonObject.top;
-        // let app = uni.getSystemInfoSync()
-        // let topHight = app.statusBarHeight
-        // let navHeight = menuButtonObject.height + (menuButtonObject.top - topHight) * 2;
-        // this.topHight = topHight;
-        // console.log(menuButtonObject);
-        // console.log('顶部安全距离',topHight)
-        // console.log('按钮高度',navHeight)
+        let pf = uni.getSystemInfoSync().platform;
+        if(["windows","mac"].includes(pf)) this.IsMobile = false
     },
     methods: {
         loadData() {
@@ -201,6 +197,7 @@ export default {
 page {
     background-color: #2f323b;
     color: #fff;
+    overflow: hidden;
 }
 .fanhui{
     position: absolute;
@@ -215,7 +212,6 @@ page {
     margin: 0 auto;
     overflow: initial;
     position: relative;
-	padding-top: 190rpx;
 }
 
 .myCanvas {
@@ -295,4 +291,10 @@ page {
     line-height: 1.4;
     font-size: 28rpx;
 }
+.pt-190{
+    padding-top: 190rpx;
+}
+.pt-50{
+    padding-top: 50rpx;
+}
 </style>

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

@@ -230,8 +230,8 @@ export default {
         let token = uni.getStorageSync("token");
         if (!token) this.login()
         else {
-            this.merchantSet();
             this.getuserInfo();
+            this.merchantSet();
         }
     },
     methods: {

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

@@ -41,8 +41,8 @@ export default {
         return {
             list: [],
             Query: {
-                latitude: 113.9367,
-                longitude: 22.5325,
+                latitude: "",
+                longitude: "",
                 page: 1,
                 rows: 20
             },
@@ -59,8 +59,9 @@ export default {
         // 获取当前位置
         async getLocation() {
             let adres = await uni.Location();
-            this.Query.longitude = adres.lng;
             this.Query.latitude = adres.lat;
+            this.Query.longitude = adres.lng;
+            this.getList();
         },
         getList(page) {
             if (page) {
@@ -100,7 +101,6 @@ export default {
     },
     onLoad(da) {
         this.getLocation();
-        this.getList();
         this.getToCity();
     },
     onShow() {},

+ 55 - 91
src/pagesB/cinema/choiceMovie.vue

@@ -22,43 +22,40 @@
             <view class="moive-name">{{chooseMovice.movieName}}</view>
             <view class="moive-info">{{chooseMovice.duration}}分钟{{chooseMovice.movieType}}{{chooseMovice.cast}}</view>
         </template>
-        <view class="moive-tab-list">
-            <view class="tabs-list-item" :class="{'tab-sel':index==tabIndexs}" v-for="(value,index) in tabLists" :key="index" @click="getTimeTab(value,index)">
+        <view class="moive-tabs">
+            <view class="tabs-item" :class="{'tab-sel':index==tabIndexs}" v-for="(value,index) in tabLists" :key="index" @click="getTimeTab(value,index)">
                 {{value.time}}
                 <view class="bottoms" v-if="index==tabIndexs"></view>
             </view>
         </view>
-        <view class="ticket-list" v-for="(value,index) in timeList" :key="index">
-            <view style="width: 79%;">
-                <view class="ticet-left">
-                    <view style="display: flex;align-items: center;">
-                        <text class="left-time">{{tim(value.showTime)}}</text>
-                        <text class="left-type">{{value.showVersionType}}</text>
+        <view class="ticket-list">
+            <view v-for="(value,index) in timeList" :key="index" class="ticket-item flex_r flex_jb flex_ac">
+                <view class="show-info">
+                    <view class="ticet-left flex_r flex_jb flex_ac">
+                        <view>
+                            <text class="left-time">{{tim(value.showTime)}}</text>
+                            <text class="left-type">{{value.showVersionType}}</text>
+                        </view>
+                        <view>
+                            <view class="ret-price">{{value.showPrice}}</view>
+                        </view>
                     </view>
-                    <view style="display: flex;align-items: center;">
-                        <view class="ret-price">{{value.showPrice}}</view>
-                        <!-- <view class="ret-yuans">¥{{value.showPrice}}</view> -->
+                    <view class="ticet-left flex_r flex_jb flex_ac">
+                        <view class="ticet-booms">
+                            <text>时长:{{value.duration}}分钟</text>
+                            <text style="margin-left: 25rpx;">{{value.hallName}}</text>
+                        </view>
                     </view>
                 </view>
-                <view class="ticet-left" style="margin-top: 20rpx;">
-                    <view class="ticet-booms">
-                        <text>时长:{{value.duration}}分钟</text>
-                        <text style="margin-left: 25rpx;">{{value.hallName}}</text>
-                    </view>
-                    <!-- <view class="ticet-boom-ret">
-                        <view class="sheng-text">省</view>
-                        <view class="sheng-pirce">¥{{province(value.showPrice,value.userPrice)}}</view>
-                    </view> -->
-                </view>
+                <view class="buy-btns" @click="getGou(value)">购票</view>
             </view>
-            <view class="buy-btns" @click="getGou(value)">购票</view>
         </view>
         <view v-if="isLoad&&timeList.length==0" style="text-align: center;padding-top: 30rpx;font-size: 28rpx;">暂无排片!</view>
     </view>
 </template>
 <script>
 import swipers from '@/pagesB/components/u-swiper.vue'
-import { Desc, Asc } from "@/utils/myfun.js"
+import { Asc } from "@/utils/myfun.js"
 import { post } from "@/request/api.js";
 export default {
     components: { swipers },
@@ -118,13 +115,14 @@ export default {
                         if (arr.includes(m.movieId)) MS.unshift(m)
                     }
                     this.movieList = MS;
-                    this.chooseMovice = this.movieList[0];
+                    this.chooseMovice = MS[0];
                     this.tabLists = Asc(obj[this.chooseMovice.movieId], "time");
                     this.timeList = Asc(this.tabLists[0].list, "showTime");
                     this.allPreferential = obj;
                 }
             })
         },
+        // 查看地图
         openm() {
             let latitude = parseFloat(this.cinemaInfo.latitude);
             let longitude = parseFloat(this.cinemaInfo.longitude);
@@ -141,7 +139,6 @@ export default {
                 }
             });
         },
-
         // 切换轮播改变背景
         setBackground(index) {
             this.swiperCurrent = index;
@@ -161,11 +158,6 @@ export default {
             uni.setStorageSync("chooseMovice", this.chooseMovice);
             this.goto("/pagesB/cinema/selectSeat", { showId: data.showId })
         },
-        province(original, price) {
-            let val = original - price
-            return Math.floor(val * 100) / 100
-        },
-
         tim(str) {
             return this.$day(str).format("HH:mm")
         }
@@ -270,53 +262,57 @@ page {
 
 .moive-info {
     text-align: center;
-    margin-top: 14rpx;
+    padding: 15rpx 32rpx 0;
     color: #636775;
     font-size: 24rpx;
 }
 
-.moive-tab-list {
+.moive-tabs {
+    width: auto;
     margin-top: 40rpx;
-    padding: 24rpx 12rpx;
+    padding: 20rpx 12rpx;
     border-bottom: 2rpx solid #DFE0E2;
     overflow-x: auto;
-    white-space: nowrap;
-    width: auto;
     overflow-y: hidden;
+    white-space: nowrap;
 
-    .tabs-list-item {
+    .tabs-item {
         padding: 0rpx 20rpx;
         display: inline-block;
         position: relative;
         color: #636775;
-        font-size: 28rpx;
+        font-size: 32rpx;
     }
 
     .tab-sel {
         color: #EB5A5F !important;
-        font-size: 28rpx;
-        font-weight: 550;
+        font-size: 32rpx;
+        font-weight: 600;
     }
 
     .bottoms {
         position: absolute;
-        bottom: -30rpx;
+        bottom: -22rpx;
         right: 50%;
         left: 50%;
         transform: translate(-50%, -50%);
-        width: 52rpx;
+        width: 86rpx;
         height: 8rpx;
         background-color: #EB5A5F;
-        // border-radius: 5rpx 5rpx 0px 0px;
+        border-radius: 5rpx 5rpx 0px 0px;
     }
 }
 
-.ticket-list {
-    margin: 0rpx 32rpx;
-    padding: 38rpx 0rpx;
+.ticket-list{
+    padding: 0 32rpx 60rpx;
+}
+.ticket-item {
     border-bottom: 2rpx solid #E0E1E3;
-    display: flex;
-    align-items: center;
+    padding: 22rpx 0;
+
+    .show-info{
+        width: calc(100% - 150rpx);
+    }
 
     .ticet-left {
         display: flex;
@@ -324,15 +320,20 @@ page {
         justify-content: space-between;
 
         .left-time {
-            color: #2D3039;
-            font-size: 42rpx;
+            color: #555;
+            font-size: 36rpx;
+            font-weight: 600;
         }
 
         .left-type {
-            color: #2D3039;
-            font-size: 28rpx;
+            color: #555;
+            font-size: 24rpx;
             margin-left: 32rpx;
         }
+
+        &:nth-child(1){
+            margin-bottom: 6rpx;
+        }
     }
 
     .ret-price {
@@ -344,20 +345,6 @@ page {
             content: "¥";
             font-size: 28rpx;
         }
-
-        text {
-            color: #666;
-            font-size: 24rpx;
-            font-weight: 400;
-            margin-left: 12rpx;
-        }
-    }
-
-    .ret-yuans {
-        color: #A6A8AE;
-        font-size: 28rpx;
-        margin-left: 13rpx;
-        text-decoration: line-through;
     }
 }
 
@@ -366,38 +353,15 @@ page {
     font-size: 24rpx;
 }
 
-.ticet-boom-ret {
-    display: flex;
-    align-items: center;
-
-    .sheng-text {
-        padding: 0rpx 8rpx;
-        height: 30rpx;
-        line-height: 30rpx;
-        background-color: #3DB97C;
-        border-radius: 4rpx;
-        color: #FFFFFF;
-        font-size: 20rpx;
-        text-align: center;
-        margin-right: 12rpx;
-    }
-
-    .sheng-pirce {
-        color: #A6A8AE;
-        font-size: 24rpx;
-    }
-}
-
 .buy-btns {
     width: 110rpx;
     height: 58rpx;
     text-align: center;
     line-height: 58rpx;
     background: linear-gradient(207deg, #EA525F 0%, #EB5A5F 100%);
-    border-radius: 30rpx;
+    border-radius: 36rpx;
     color: #FFFFFF;
-    font-size: 24rpx;
-    font-weight: 550;
-    margin-left: auto;
+    font-size: 26rpx;
+    font-weight: 600;
 }
 </style>

+ 37 - 29
src/pagesB/cinema/selectSeat.vue

@@ -7,11 +7,11 @@
                     <view class="mt-10 fz-28 color-666">{{ SeatInfo.showTime }} {{ SeatInfo.showVersionType }}</view>
                 </view>
             </view>
-            <movable-area :style="'height:'+(seatRow*40+350)+'rpx;width: 100vw;top:'+(rpxNum*132)+'px'" class="pt-f left-0">
-                <movable-view :style="'width: 100vw;height:'+(seatRow*40+350)+'rpx;'" :inertia="true" :scale="true" :scale-min="0.95" :scale-max="2" direction="all" @change="onMove" @scale="onScale">
-                    <view class="Stage dp-f jc-c ai-c fz-22 color-333">5号厅</view>
+            <movable-area :style="'height:'+(seatRow*(seatSize + 10) + 80)+'px;width: 100vw;top:132rpx'" class="pt-f left-0">
+                <movable-view :style="'width: 100vw;height:'+(seatRow*(seatSize + 10) + 80)+'px;'" :inertia="true" :scale="true" :scale-min="0.95" :scale-max="2" direction="all" @change="onMove" @scale="onScale">
+                    <view class="Stage dp-f jc-c ai-c fz-22 color-333">{{SeatInfo.hallName}}</view>
                     <view style="width: 100rpx;height: 30rpx;" class="m-0-a mt-48 dp-f jc-c ai-c fz-20 color-999 b-1 br-5">银幕中央</view>
-                    <view class="pt-f pa-v-2 b-d-1" :style="'height:'+seatRow*(20+seatSize*pxNum)+'rpx;top:165rpx;width:0'"></view>
+                    <view class="pt-f pa-v-2 b-d-1" :style="'height:'+seatRow*(20+seatSize*pxNum)+'rpx;top:120rpx;width:0'"></view>
                     <view v-for="(item,index) in seatArray" :key="index" class="dp-f jc-c mt-20" :style="'width:'+boxWidth+'px;height:'+seatSize+'px'">
                         <view v-for="(seat,col) in item" :key="col" class="dp-ib" :style="'width:'+seatSize+'px;height:'+seatSize+'px'" @click="handleChooseSeat(index,col)">
                             <image v-if="seat.type===0" class="w-100 h-100" src="https://test-api.haocha13.cn/static/img/optional.png" mode="aspectFit"></image>
@@ -19,8 +19,8 @@
                             <image v-else-if="seat.type===2" class="w-100 h-100" src="https://test-api.haocha13.cn/static/img/sold.png" mode="aspectFit"></image>
                         </view>
                     </view>
-                    <view class="pt-f bg-line br-15 over-h" :style="'left: '+(10-moveX/scale)+'px;top:109rpx;width:30rpx;'">
-                        <view class="w-100 dp-f ai-c jc-c fz-22 color-fff" :style="'height:'+seatSize+'px;margin-top:20rpx;'" v-for="(m,mindex) in mArr" :key="mindex">{{m}}</view>
+                    <view class="pt-f bg-line br-15 over-h" :style="'left: '+(10-moveX/scale)+'px;top:116rpx;width:30rpx;'">
+                        <view class="w-100 mt-20 dp-f ai-c jc-c fz-22 color-fff" :style="'height:'+seatSize+'px;'" v-for="(m,mindex) in mArr" :key="mindex">{{m}}</view>
                         <view :style="'height: 20rpx;'"></view>
                     </view>
                 </movable-view>
@@ -39,7 +39,7 @@
                     </view>
                     <view class="dp-f ai-c jc-c fz-28 color-333 mb-20" v-else>
                         推荐选座
-                        <view style="width: 106rpx;height: 60rpx;" class="b-1 br-5 dp-f ai-c jc-c fz-28 ml-20" v-for="(n,numindex) in 4" :key="n" @click="smartChoose(numindex+1)">
+                        <view style="width: 106rpx;height: 60rpx;" class="b-1 br-12 dp-f ai-c jc-c fz-28 ml-20" v-for="(n,numindex) in 4" :key="n" @click="smartChoose(numindex+1)">
                             {{numindex+1}}人
                         </view>
                     </view>
@@ -68,7 +68,7 @@ export default {
     data() {
         return {
             scaleMin: 1, //h5端为解决1无法缩小问题,设为0.95
-            boxWidth: 400, //屏幕宽度px
+            boxWidth: 375, //屏幕宽度px
             space: ' ', //空格
             seatArray: [], //影院座位的二维数组,-1为非座位,0为未购座位,1为已选座位(绿色),2为已购座位(红色),一维行,二维列
             seatRow: 0, //影院座位行数
@@ -86,7 +86,6 @@ export default {
             isWXAPP: false,
 
             aPrice: 0, //合计价格
-
             restrictions: 0, //每次下单最多可选座位个数
             MoviceInfo: uni.getStorageSync("chooseMovice"), //所选影片信息
             SeatInfo: uni.getStorageSync("SeatInfo"), //所选场次信息
@@ -101,7 +100,7 @@ export default {
         },
     },
     onLoad(da) {
-        let e = uni.getSystemInfoAsync()
+        let e = uni.getSystemInfoSync()
         this.boxWidth = e.screenWidth
         this.initData(da)
     },
@@ -114,7 +113,7 @@ export default {
                 let da = res.data.data.seats
                 for (let it of da) {
                     let pa = {}
-                    if(this.SeatInfo.areaPrice){
+                    if (this.SeatInfo.areaPrice) {
                         for (let p of this.SeatInfo.areaPrice) {
                             pa[p.area] = p.showPrice
                         }
@@ -127,7 +126,8 @@ export default {
                         XCoord: it.columnNo,
                         SeatCode: it.seatId,
                         Status: it.status == "N" ? 0 : it.status == "LK" ? 2 : -1,
-                        RowNum: xy[0], ColumnNum: xy[1],
+                        RowNum: xy[0],
+                        ColumnNum: xy[1],
                         seatNo: it.seatNo,
                         Price: pa[it.areaId] || this.SeatInfo.showPrice
                     })
@@ -162,9 +162,7 @@ export default {
                 ColumnNum: ''
             }));
             this.seatArray = seatArray
-            this.seatSize = this.boxWidth > 0 ?
-                parseInt(parseInt(this.boxWidth, 10) / (this.seatCol + 1), 10) :
-                parseInt(parseInt(414, 10) / (this.seatCol + 1), 10)
+            this.seatSize = this.boxWidth > 0 ? parseInt(parseInt(this.boxWidth, 10) / (this.seatCol + 1), 10) : parseInt(parseInt(414, 10) / (this.seatCol + 1), 10)
             this.initNonSeatPlace();
         },
         //初始化是座位的地方
@@ -248,7 +246,7 @@ export default {
                     }
                 }
             }
-            uni.setStorageSync("confirmOrder",{ oldArray, m: this.MoviceInfo, s: this.SeatInfo })
+            uni.setStorageSync("confirmOrder", { oldArray, m: this.MoviceInfo, s: this.SeatInfo })
             this.goto("/pagesB/cinema/confirmOrder")
         },
         //处理座位选择逻辑
@@ -263,7 +261,7 @@ export default {
                 this.SelectNum--
                 this.getOptArr(newArray[row][col], 0)
             } else if (seatValue === 0) {
-                if(this.SelectNum == this.restrictions){
+                if (this.SelectNum == this.restrictions) {
                     uni.showToast({ title: `单次购票限制${this.restrictions}张`, icon: "none" });
                     return
                 }
@@ -290,12 +288,12 @@ export default {
             }
             this.optArr = optArr.slice()
         },
-        delSelectItem(va){
+        delSelectItem(va) {
             let arr = [];
             for (let a of this.optArr) {
                 if (va.SeatCode == a.SeatCode) {
                     this.optArr.remove(a)
-                }else arr.push(a.seatNo)
+                } else arr.push(a.seatNo)
             }
             this.SelectNum--;
             for (let i of this.seatArray) {
@@ -446,7 +444,7 @@ export default {
             handler(da) {
                 this.aPrice = 0;
                 for (let p of da) {
-                    this.aPrice = this.$h.Add(this.aPrice,p.Price)
+                    this.aPrice = this.$h.Add(this.aPrice, p.Price)
                 }
             }
         }
@@ -454,18 +452,21 @@ export default {
 }
 </script>
 <style lang="scss" scoped>
-.seatNo_box{
+.seatNo_box {
     padding: 26rpx 0;
-    .ti{
+
+    .ti {
         // width: 100rpx;
         font-size: 26rpx;
         margin-right: 16rpx;
     }
-    .seatNos{
+
+    .seatNos {
         // width: calc(100% - 100rpx);
         margin-bottom: -8rpx;
     }
-    .seatNo{
+
+    .seatNo {
         display: inline-block;
         font-size: 24rpx;
         // text-align: center;
@@ -475,19 +476,23 @@ export default {
         margin-right: 10rpx;
         margin-bottom: 8rpx;
         position: relative;
-        &:last-child{
+
+        &:last-child {
             margin-right: 0;
         }
-        .Price{
+
+        .Price {
             font-size: 24rpx;
             color: #EB5A5F;
-            &::before{
+
+            &::before {
                 content: "¥";
                 font-size: 20rpx;
             }
         }
     }
-    .ico{
+
+    .ico {
         position: absolute;
         right: 8rpx;
         top: 26rpx;
@@ -568,7 +573,7 @@ export default {
 }
 
 .b-d-1 {
-    border: 1px dashed #e5e5e5;
+    border: 1px dashed rgba($color: #000, $alpha: 0.12);
 }
 
 .w-100 {
@@ -674,6 +679,9 @@ export default {
 .br-5 {
     border-radius: 5rpx;
 }
+.br-12 {
+    border-radius: 12rpx;
+}
 
 .Stage {
     background-color: #dddddd;

+ 1 - 1
src/pagesB/invoice/invoiceList.vue

@@ -38,7 +38,7 @@ export default {
     };
   },
   onLoad(option) {
-    let res = uni.getSystemInfoAsync()
+    let res = uni.getSystemInfoSync()
     this.height = res.windowHeight * 2 - 150 + "rpx";
     this.getList();
   },

+ 1 - 1
src/pagesB/orderingfood/orderingfood.vue

@@ -255,7 +255,7 @@ export default {
         uni.setNavigationBarTitle({ title: this.MerchantInfo.restaurant_name });
         this.getCartList();
 
-        let e = uni.getSystemInfoAsync()
+        let e = uni.getSystemInfoSync()
         this.ios = e.model.search("iPhone");
     },
     onLoad(da) {

+ 179 - 70
src/pagesB/orderingfood/orderlist.vue

@@ -1,63 +1,89 @@
 <template>
-    <div class="orderlist" v-if="orderList.length">
-        <div class="o_item" v-for="(i,s) in orderList" :key="s" @click="entrance(i)">
-            <div class="p1 flex_r flex_jb">
-                <span class="name_tit ellipsis">{{ i.restaurant_name }}</span>
-                <span class="status">{{ typeto(i.status) }}</span>
-            </div>
-            <div class="p2 flex_r flex_jb" v-if="i.type == 0">
-                <div class="goods ellipsis">
-                    <div class="imgs" v-for="(a,b) in i.orderGoods" :key="b">
-                        <img :src="a.product_img" alt="" class="g_img">
-                        <div class="na ellipsis">{{ a.product_name }}</div>
+    <div class="orders">
+        <div class="tabs flex_r flex_jse">
+            <div v-for="(i,s) in tabs" :key="s" :class="{active:activeKey==i.key}" @click="ontab(i.key)">{{i.text}}</div>
+        </div>
+        <template v-if="activeKey == 1">
+            <div class="orderlist" v-if="orderList.length">
+                <div class="o_item" v-for="(i,s) in orderList" :key="s" @click="entrance(i)">
+                    <div class="p1 flex_r flex_jb">
+                        <span class="name_tit ellipsis">{{ i.restaurant_name }}</span>
+                        <span class="status">{{ typeto(i.status) }}</span>
                     </div>
-                </div>
-                <div class="g_amount"><span class="amount dinB">{{ i.actually_paid || i.pay_amount }}</span></div>
-            </div>
-            <div class="p2 flex_r flex_jb" v-else-if="i.type == 1">
-                <div class="Movie flex_r flex_jb" v-for="(a,b) in i.orderGoods" :key="b">
-                    <div class="info flex_c flex_jb">
-                        <p class="pt">{{ a.product_name }}</p>
-                        <p class="p">{{ a.number }}张</p>
-                        <p class="p">实付 ¥{{ i.actually_paid || i.pay_amount }}</p>
-                        <p class="p">{{ neaten1(i.product_detail,i.type) }}</p>
+                    <div class="p2 flex_r flex_jb" v-if="i.type == 0">
+                        <div class="goods ellipsis">
+                            <div class="imgs" v-for="(a,b) in i.orderGoods" :key="b">
+                                <img :src="a.product_img" alt="" class="g_img">
+                                <div class="na ellipsis">{{ a.product_name }}</div>
+                            </div>
+                        </div>
+                        <div class="g_amount"><span class="amount dinB">{{ i.actually_paid || i.pay_amount }}</span></div>
+                    </div>
+                    <div class="p2 flex_r flex_jb" v-else-if="i.type == 1">
+                        <div class="Movie flex_r flex_jb" v-for="(a,b) in i.orderGoods" :key="b">
+                            <div class="info flex_c flex_jb">
+                                <p class="pt">{{ a.product_name }}</p>
+                                <p class="p">{{ a.number }}张</p>
+                                <p class="p">实付 ¥{{ i.actually_paid || i.pay_amount }}</p>
+                                <p class="p">{{ neaten1(i.product_detail,i.type) }}</p>
+                            </div>
+                            <image class="poster" mode="aspectFill" :src="a.product_img" />
+                        </div>
                     </div>
-                    <image class="poster" mode="aspectFill" :src="a.product_img" />
+                    <div class="p2 flex_r flex_jb" v-else-if="[2,3,6].includes(i.type)">
+                        <div class="goods good2 ellipsis">
+                            <div class="p" v-for="(a,b) in i.orderGoods" :key="b">{{ a.product_name }}</div>
+                        </div>
+                        <div class="g_amount"><span class="amount dinB">{{ i.actually_paid || i.pay_amount }}</span></div>
+                    </div>
+                    <div class="p2 flex_r flex_jb" v-else-if="i.type == 4">
+                        <div class="Movie flex_r flex_jb" v-for="(a,b) in i.orderGoods" :key="b">
+                            <div class="info flex_c flex_jb">
+                                <p class="pt">{{ a.product_name }}</p>
+                                <p class="p">{{ a.number }}间</p>
+                                <p class="p">实付 ¥{{ i.actually_paid || i.pay_amount }}</p>
+                                <p class="p" v-if="a.attachment">{{ neaten2(a.attachment,i.type) }}</p>
+                            </div>
+                            <image class="poster" mode="aspectFill" :src="a.product_img" />
+                        </div>
+                    </div>
+                    <div class="p2 flex_r flex_jb" v-else-if="i.type == 5">
+                        <div class="Movie flex_r flex_jb" v-for="(a,b) in i.orderGoods" :key="b">
+                            <image class="poster" mode="aspectFill" :src="a.product_img" />
+                            <div class="info flex_c flex_jb">
+                                <p class="pt">{{ a.product_name }}</p>
+                                <p class="p">{{ a.number }}张</p>
+                                <p class="p">实付 ¥{{ i.actually_paid || i.pay_amount }}</p>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="p3">下单时间:{{ i.create_time }}</div>
                 </div>
             </div>
-            <div class="p2 flex_r flex_jb" v-else-if="[2,3,6].includes(i.type)">
-                <div class="goods good2 ellipsis">
-                    <div class="p" v-for="(a,b) in i.orderGoods" :key="b">{{ a.product_name }}</div>
-                </div>
-                <div class="g_amount"><span class="amount dinB">{{ i.actually_paid || i.pay_amount }}</span></div>
+            <div class="zanwu" v-else>
+                <img src="http://teaclub.oss-cn-chengdu.aliyuncs.com/CloudShop/head_pic/5a3c6b1e2d098aa6695394c927c38586545188b8png" alt="" class="zanwuimg">
+                <view class="zanwutxt">暂无订单信息</view>
             </div>
-            <div class="p2 flex_r flex_jb" v-else-if="i.type == 4">
-                <div class="Movie flex_r flex_jb" v-for="(a,b) in i.orderGoods" :key="b">
-                    <div class="info flex_c flex_jb">
-                        <p class="pt">{{ a.product_name }}</p>
-                        <p class="p">{{ a.number }}间</p>
-                        <p class="p">实付 ¥{{ i.actually_paid || i.pay_amount }}</p>
-                        <p class="p" v-if="a.attachment">{{ neaten2(a.attachment,i.type) }}</p>
+        </template>
+        <template v-if="activeKey == 2">
+            <div class="orderlist" v-if="selfSupportList.length">
+                <div class="o_item" v-for="(i,s) in selfSupportList" :key="s" @click="entrance(i)">
+                    <div class="p1 flex_r flex_jb">
+                        <span class="name_tit ellipsis">{{ i.name }}</span>
                     </div>
-                    <image class="poster" mode="aspectFill" :src="a.product_img" />
-                </div>
-            </div>
-            <div class="p2 flex_r flex_jb" v-else-if="i.type == 5">
-                <div class="Movie flex_r flex_jb" v-for="(a,b) in i.orderGoods" :key="b">
-                    <image class="poster" mode="aspectFill" :src="a.product_img" />
-                    <div class="info flex_c flex_jb">
-                        <p class="pt">{{ a.product_name }}</p>
-                        <p class="p">{{ a.number }}张</p>
-                        <p class="p">实付 ¥{{ i.actually_paid || i.pay_amount }}</p>
+                    <div class="p2 flex_r flex_jb">
+                        <div class="goods good2 ">金额</div>
+                        <div class="g_amount"><span class="amount dinB">{{ i.order_amount }}</span></div>
                     </div>
+                    <div class="p3">订单编号:{{ i.order_no }}</div>
+                    <div class="p3 mt-10">下单时间:{{ i.create_time }}</div>
                 </div>
             </div>
-            <div class="p3">下单时间:{{ i.create_time }}</div>
-        </div>
-    </div>
-    <div class="zanwu" v-else>
-        <img src="http://teaclub.oss-cn-chengdu.aliyuncs.com/CloudShop/head_pic/5a3c6b1e2d098aa6695394c927c38586545188b8png" alt="" class="zanwuimg">
-        <view class="zanwutxt">暂无订单信息</view>
+            <div class="zanwu" v-else>
+                <img src="http://teaclub.oss-cn-chengdu.aliyuncs.com/CloudShop/head_pic/5a3c6b1e2d098aa6695394c927c38586545188b8png" alt="" class="zanwuimg">
+                <view class="zanwutxt">暂无订单信息</view>
+            </div>
+        </template>
     </div>
 </template>
 <script>
@@ -69,6 +95,17 @@ export default {
     data() {
         return {
             orderList: [],
+            tabs: [
+                { key: 1, text: "我的订单" },
+                { key: 2, text: "快捷买单" },
+            ],
+            activeKey: 1,
+            Query: {
+                page: 1,
+                rows: 20,
+            },
+            pageData: {},
+            selfSupportList: [],
         };
     },
     methods: {
@@ -81,43 +118,103 @@ export default {
         },
         typeto(va) {
             switch (va) {
-                case 0: return "待支付";
-                case 1: return "已下单";
-                case 2: return "已完成";
-                case 3: return "下单失败";
-                case 4: return "失败";
-                default: return ""
+                case 0:
+                    return "待支付";
+                case 1:
+                    return "已下单";
+                case 2:
+                    return "已完成";
+                case 3:
+                    return "下单失败";
+                case 4:
+                    return "失败";
+                default:
+                    return ""
             }
         },
         entrance(i) {
             if (i.type == 0) this.goto('/pagesB/orderingfood/detail', { trade_no: i.trade_no, brand_id: i.brand_id })
             else if (i.type == 1) this.goto('/pagesB/cinema/cinemaTicket', { tradeNo: i.trade_no })
-            else if ([2,3].includes(i.type)) this.goto('/pagesB/directCharge/orderDetail', { trade_no: i.trade_no })
+            else if ([2, 3].includes(i.type)) this.goto('/pagesB/directCharge/orderDetail', { trade_no: i.trade_no })
             else if (i.type == 4) this.goto('/pagesB/hotel/orderDetail', { trade_no: i.trade_no })
             else if (i.type == 5) this.goto('/pagesB/scenicSpotTicket/orderDetail', { trade_no: i.trade_no })
             else if (i.type == 6) this.goto('/pagesB/prepaidRefill/orderDetail', { trade_no: i.trade_no })
         },
-        neaten1(va,type){
-            if(va && type == 1){
+        neaten1(va, type) {
+            if (va && type == 1) {
                 let arr = JSON.parse(va)
                 return arr.map(item => item.seatName).join(",")
             }
         },
-        neaten2(va,type){
-            if(type == 4){
+        neaten2(va, type) {
+            if (type == 4) {
                 let da = JSON.parse(va)
                 return `${da.windowType},${da.breakfast},${da.bedType},${da.useableArea}`
             }
-        }
+        },
+        ontab(va) {
+            // uni.showLoading({title: '加载中'})
+            this.activeKey = va
+        },
+        getList(page) {
+            if (page) {
+                this.list = []
+                this.Query.page = 1
+            }
+            post("v1/merchant/ordersList", this.Query).then(res => {
+                if (res.code == 0) {
+                    let da = res.data.data
+                    delete res.data.data
+                    this.pageData = res.data
+                    this.selfSupportList = [...this.selfSupportList, ...da]
+                    this.Query.page++
+                    uni.hideLoading()
+                }
+            })
+        },
     },
     onLoad(da) {
         this.getorderList()
+        this.getList()
     },
     onShow() {},
     mounted() {},
+    computed: {
+        isShow1() {
+            return this.orderList.length && this.activeKey == 1
+        },
+        isShow2() {
+            return this.selfSupportList.length && this.activeKey == 2
+        },
+    },
+    onReachBottom() {
+        if (this.Query.page < this.pageData.last_page) this.getList();
+    },
 };
 </script>
 <style scoped lang='scss'>
+.tabs {
+    padding: 30rpx 0 0;
+    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;
+        }
+    }
+}
+
 .orderlist {
     padding: 28rpx 32rpx;
 }
@@ -127,6 +224,7 @@ export default {
     padding: 25rpx 30rpx;
     border-radius: 16rpx;
     margin-bottom: 20rpx;
+    // box-shadow: 4rpx 4rpx 8rpx 4rpx rgba(0, 0, 0, 0.12);
 
     &:last-child {
         margin-bottom: 0;
@@ -184,8 +282,8 @@ export default {
         }
     }
 
-    .good2{
-        .p{
+    .good2 {
+        .p {
             font-size: 28rpx;
         }
     }
@@ -193,28 +291,35 @@ export default {
     .Movie {
         // padding: 25rpx 28rpx;
         width: 100%;
-        .info,.poster{
+
+        .info,
+        .poster {
             vertical-align: text-top;
         }
-        .info{
+
+        .info {
             width: calc(100% - 180rpx);
             min-height: 220rpx;
-            p{
+
+            p {
                 font-size: 26rpx;
                 color: #666;
                 margin-bottom: 8rpx;
             }
-            .pt{
+
+            .pt {
                 font-weight: bold;
                 color: #000;
                 font-size: 30rpx;
                 margin-bottom: 8rpx;
             }
-            .p{
+
+            .p {
                 color: #000;
             }
         }
-        .poster{
+
+        .poster {
             width: 150rpx;
             height: 220rpx;
             border-radius: 12rpx;
@@ -243,4 +348,8 @@ export default {
         color: #999;
     }
 }
+
+.mt-10 {
+    margin-top: 10rpx;
+}
 </style>

+ 2 - 2
src/pagesC/components/createCode/index.vue

@@ -63,10 +63,10 @@ export default {
             this.ctx.setFontSize(14); //设置标题字体大小
             this.ctx.setFillStyle('#333'); //设置标题文本颜色
             this.ctx.textAlign = 'center';
-            this.ctx.fillText(this.title, (this.canvasW / 2), this.canvasH - 135)
+            this.ctx.fillText(this.title, (this.canvasW / 2), (this.canvasH - uni.upx2px(275)))
             //小程序码
             let qrcodeImg = await this.getImageInfo(this.qrcode)
-            this.ctx.drawImage(qrcodeImg.path, 73, 93, 158, 158)
+            this.ctx.drawImage(qrcodeImg.path, (this.canvasW / 2) - uni.upx2px(158), uni.upx2px(190), uni.upx2px(316), uni.upx2px(316))
             //延迟渲染
             setTimeout(() => {
                 this.ctx.draw(true, () => {

+ 28 - 9
src/pagesC/settledMerchant/merchant.vue

@@ -24,6 +24,9 @@
                 </div>
                 <div class="iconfont ico" @click="openm">&#xe6b3;</div>
             </div>
+            <div class="atlas_list">
+                <image v-for="(i,s) in detail.atlas" :key="s" :src="i" @click="onpreview(s)" mode="aspectFill" class="atlas_img" />
+            </div>
         </div>
         <div class="btn-box">
             <div class="btn" @click="topay">快捷买单</div>
@@ -80,12 +83,12 @@ export default {
                 }
             });
         },
-        onpreview() {
+        onpreview(current=0) {
             if (this.detail.atlas.length) {
                 this.customShow = false
                 this.$refs.previewimg.open({
                     imgs: this.detail.atlas,
-                    current: 0,
+                    current,
                 });
             }
         },
@@ -213,7 +216,7 @@ export default {
 
     .h_address {
         padding: 20rpx 0;
-        margin-bottom: 30rpx;
+        margin-bottom: 10rpx;
 
         .address {
             font-size: 24rpx;
@@ -232,17 +235,33 @@ export default {
         }
     }
 }
+.atlas_list{
+    height: 334rpx;
+    overflow: hidden;
+    display: grid;
+    justify-content: space-between;
+    grid-template-columns: repeat(auto-fill, 220rpx);
+    grid-gap: 14rpx 0;
+    .atlas_img{
+        width: 220rpx;
+        height: 160rpx;
+        border-radius: 12rpx;
+    }
+}
 .btn-box{
-    text-align: right;
     padding: 0 30rpx;
     .btn{
-        display: inline-block;
+        // display: inline-block;
         color: #fff;
         background: #00A238;
-        font-size: 32rpx;
-        // font-weight: 600;
-        padding: 6rpx 30rpx;
-        border-radius: 26rpx;
+        font-size: 36rpx;
+        font-weight: 600;
+        height: 80rpx;
+        line-height: 80rpx;
+        text-align: center;
+        // padding: 6rpx 30rpx;
+        border-radius: 46rpx;
+        margin-top: 50rpx;
     }
 }
 </style>

+ 1 - 1
src/pagesC/settledMerchant/pay.vue

@@ -6,7 +6,7 @@
         </div>
         <div class="money card">
             <div class="li flex_r flex_jb">
-                <span>消费金扣</span>
+                <span>消费金扣</span>
                 <span>{{ discounts.discount || 0 }}</span>
             </div>
             <div class="li flex_r flex_jb">