Преглед на файлове

修改商户推荐新页面;

郭鹏飞 преди 7 месеца
родител
ревизия
7dd6f502b3

+ 0 - 63
src/api/index.js

@@ -165,42 +165,6 @@ export function updateOrder(data) {
     });
 }
 
-// 订单详情
-export function orderDeatails(data) {
-    return request({
-        method: 'get',
-        url: '/api/order/v1/wx/getOrder',
-        data
-    });
-}
-
-// 取消订单
-export function cancleOrder(data) {
-    return request({
-        method: 'post',
-        url: '/api/order/v1/wx/cancle',
-        data
-    });
-}
-
-// 删除订单
-export function delOrder(data) {
-    return request({
-        method: 'post',
-        url: '/api/order/v1/del',
-        data
-    });
-}
-
-// 确认服务完成订单
-export function confirmOrder(data) {
-    return request({
-        method: 'post',
-        url: '/api/order/v1/wx/confirm',
-        data
-    });
-}
-
 // 评论订单
 export function commentOrder(data) {
     return request({
@@ -291,24 +255,6 @@ export function getJsLocation(data) {
     });
 }
 
-// 接受订单
-export function takeOrder(data) {
-    return request({
-        method: 'post',
-        url: '/api/order/v1/wx/takingOrders',
-        data
-    });
-}
-
-// 拒绝订单
-export function refuse(data) {
-    return request({
-        method: 'post',
-        url: '/api/order/v1/wx/jujue',
-        data
-    });
-}
-
 // 到达服务订单位置
 export function arriveOderLocation(data) {
     return request({
@@ -336,15 +282,6 @@ export function alertOrder(data) {
     });
 }
 
-// 加单
-export function speedOrder(data) {
-    return request({
-        method: 'post',
-        url: '/api/order/v1/wx/add',
-        data
-    });
-}
-
 // 获取优惠券
 export function getCoupon(data) {
     return request({

+ 73 - 0
src/api/order.js

@@ -0,0 +1,73 @@
+import request from "@/utils/request.js";
+
+// 订单详情
+export function orderDeatails(data) {
+    return request({
+        method: 'get',
+        url: '/api/order/v1/wx/getOrder',
+        data
+    });
+}
+
+// 取消订单
+export function cancleOrder(data) {
+    return request({
+        method: 'post',
+        url: '/api/order/v1/wx/cancle',
+        data
+    });
+}
+
+// 删除订单
+export function delOrder(data) {
+    return request({
+        method: 'post',
+        url: '/api/order/v1/del',
+        data
+    });
+}
+
+// 接受订单
+export function takeOrder(data) {
+    return request({
+        method: 'post',
+        url: '/api/order/v1/wx/takingOrders',
+        data
+    });
+}
+
+// 拒绝订单
+export function refuseOrder(data) {
+    return request({
+        method: 'post',
+        url: '/api/order/v1/wx/jujue',
+        data
+    });
+}
+
+// 确认服务完成订单
+export function confirmOrder(data) {
+    return request({
+        method: 'post',
+        url: '/api/order/v1/wx/confirm',
+        data
+    });
+}
+
+// 加单
+export function speedOrder(data) {
+    return request({
+        method: 'post',
+        url: '/api/order/v1/wx/add',
+        data
+    });
+}
+
+// 获取技师可预约时间
+export function getStaffServiceTime(data) {
+    return request({
+        method: 'post',
+        url: '/api/order/v1/wx/getTechnicianAvailability',
+        data
+    });
+}

+ 3 - 2
src/components/picker/service-time.vue

@@ -13,7 +13,7 @@
                 <div class="date-bar">
                     <div class="tabs-wrapper">
                         <u-tabs :list="dateList" :current="currentDateIndex" @click="handleDateChange"
-                            lineColor="#2979ff" :activeStyle="{ color: '#2979ff', fontWeight: 'bold' }"
+                            lineColor="#00B8B0" :activeStyle="{ color: '#00B8B0', fontWeight: 'bold' }"
                             itemStyle="height: 44px; padding: 0 13px;"></u-tabs>
                     </div>
                     <div class="line"></div>
@@ -46,7 +46,7 @@
                             预计 {{ resultText }} 结束
                         </text>
                     </div>
-                    <u-button type="primary" shape="circle" text="确认预约" :disabled="!activeTime" @click="confirm"
+                    <u-button color="#00B8B0" shape="circle" text="确认预约" :disabled="!activeTime" @click="confirm"
                         customStyle="width: 140px; height: 40px; margin: 0;"
                     ></u-button>
                 </div>
@@ -379,6 +379,7 @@ export default {
             }
 
             &.disabled { 
+                display: none;
                 // opacity: 0.6;
                 background-color: #E4E9EF;
 

+ 58 - 0
src/components/popup/index.vue

@@ -0,0 +1,58 @@
+<template>
+	<u-popup :show="show" 
+		:mode="mode"
+		:round="round"
+		:bgColor="bgColor"
+		:safeAreaInsetBottom="mode !== 'center'"
+		@open="open"
+		@close="close">
+		<slot></slot>
+	</u-popup>
+</template>
+
+<script>
+export default {
+	name: "",
+	props: {
+		mode: {
+			type: String,
+			default: 'bottom',
+		},
+		round: {
+			type: [Number, String],
+			default: '0',
+		},
+		bgColor: {
+			type: String,
+			default: '#fff',
+		},
+	},
+	data() {
+		return {
+			show: false,
+		};
+	},
+	mounted() {
+		
+	},
+	methods: {
+		open() {
+			this.show = true;
+			this.$emit('open');
+		},
+		close() {
+			this.show = false;
+			this.$emit('close');
+		},
+	}
+}
+</script>
+
+<style lang="scss" scoped>
+.u-popup {
+	flex: initial;
+}
+::v-deep .u-popup {
+	flex: initial;
+}
+</style>

+ 392 - 109
src/pages/demo/rec.vue

@@ -1,134 +1,264 @@
 <template>
     <view class="page-container">
-        <view class="header-section">
-            <view class="search-wrapper flex">
-                <view class="location flex">
-                    <text>太原市</text>
-                    <u-icon name="arrow-down" size="24rpx" color="#333" style="margin-left: 4px;"></u-icon>
-                </view>
-                <view class="search-box">
-                    <u-search placeholder="请搜索商家名称" :show-action="false" bgColor="#fff"></u-search>
-                </view>
-            </view>
+		<z-paging ref="paging" v-model="dataList" @query="getList">
+            <template #top>
+                <view class="header-section">
+                    <view class="search-wrapper flex">
+                        <view class="location flex">
+                            <text>太原市</text>
+                            <u-icon name="arrow-down" size="24rpx" color="#333" style="margin-left: 4px;"></u-icon>
+                        </view>
+                        <view class="search-box">
+                            <u-search placeholder="请输入名称搜索" :show-action="false" bgColor="#fff"
+                                v-model="params.cNickName" 
+                                @search="onSearch" 
+                                @custom="onSearch" 
+                            ></u-search>
+                        </view>
+                    </view>
 
-            <view class="filter-tags">
-                <view class="tag-item total">
-                    <text>热门推荐</text>
-                </view>
-                <view :class="{'tag-item': true, 'active': index === 1}" v-for="(item, index) in filters" :key="index">
-                    <text>{{ item }}</text>
+                    <view class="filter-tags">
+                        <view class="tag-item total">
+                            <text>热门推荐</text>
+                        </view>
+                        <view :class="{'tag-item': true, 'active': index === tabCurrent}" 
+                            v-for="(item, index) in tabList" :key="index"
+                            @click="onTabChange">
+                            <text>{{ item }}</text>
+                        </view>
+                    </view>
                 </view>
-            </view>
-        </view>
 
-        <view class="banner-box">
-            <u-image src="https://via.placeholder.com/700x160/4CBFB0/ffffff?text=Banner+Ad" width="100%" height="120rpx" radius="0" mode="widthFix"></u-image>
-        </view>
-
-        <view class="list-section">
-            <view class="list-item" v-for="(item, index) in list" :key="index">
-
-                <view class="left-avatar">
-                    <view class="badge" :class="item.badgeType" v-if="item.badgeText">
-                        {{ item.badgeText }}
+                <view class="banner-box">
+                    <u-image src="/static/identify/bg0.png" width="100%" height="120rpx" radius="0" mode="widthFix"></u-image>
+                    <view class="call-box" @click="$utils.makePhoneCall(servicePhone)">
+                        <image class="icon" src="/static/identify/call.png"></image>
+                        <text>客服电话:{{ servicePhone }}</text>
                     </view>
+                </view>
+            </template>
 
-                    <u-avatar :src="item.avatar" size="60" shape="circle"></u-avatar>
+            <view class="list-section">
+                <view class="list-item" v-for="(item, index) in dataList" :key="index">
+                    <view class="left-avatar" @click="goToDetails(item)">
+                        <!-- hot or recommend -->
+                        <view class="badge" :class="{ hot: true }">hot</view>
 
-                    <view class="status-pill" :class="item.status === '可预约' ? 'green-bg' : 'green-bg'">
-                        {{ item.status }}
-                    </view>
-                </view>
+                        <u-avatar :src="$globalData.publicUrl + item.cPortrait" size="136rpx" shape="circle" mode="aspectFill"></u-avatar>
 
-                <view class="right-content">
-                    <view class="row-header">
-                        <text class="name">{{ item.name }}</text>
-                        <text class="avail-time">最早可约: <text class="highlight">{{ item.earliestTime }}</text></text>
+                        <view class="status-pill" 
+                            :class="{'green-bg': item.nStatus === 0}"
+                            v-if="item.nStatus === 0">
+                            可预约
+                        </view>
                     </view>
 
-                    <view class="row-info">
-                        <text class="score">{{ item.score }}分</text>
-                        <u-line color="#dadada" direction="col" length="18rpx" margin="0 12rpx"></u-line>
-                        <text class="shop-name">{{ item.shopName }}</text>
-                        <u-line color="#dadada" direction="col" length="18rpx" margin="0 12rpx"></u-line>
-                        <text class="service-count">服务 {{ item.serviceCount }} 单</text>
-                    </view>
+                    <view class="right-content" @click="goToDetails(item)">
+                        <view class="row-header">
+                            <text class="name">{{ item.cNickName }}</text>
+                            <!-- <text class="avail-time">最早可约: <text class="highlight">{{ item.earliestTime }}</text></text> -->
+                        </view>
 
-                    <view class="row-tags">
-                        <view class="icon-tag">
-                            <u-icon name="heart-fill" color="#ff6b81" size="14"></u-icon>
-                            <text>{{ item.likes }}</text>
+                        <view class="row-info two-line-text" v-if="item.cJianjie">{{ item.cJianjie }}</view>
+                        <view class="row-info">
+                            <text class="score">{{ item.nStar }}分</text>
+                            <u-line color="#dadada" direction="col" length="18rpx" margin="0 12rpx"></u-line>
+                            <!-- <text class="shop-name">{{ item.nZan }}</text>
+                            <u-line color="#dadada" direction="col" length="18rpx" margin="0 12rpx"></u-line> -->
+                            <text class="service-count">服务 {{ item.nNum }} 单</text>
                         </view>
-                        <view class="icon-tag">
-                            <u-icon name="rmb-circle-fill" color="#f1c40f" size="14"></u-icon>
-                            <text>{{ item.coins }}</text>
+
+                        <view class="row-tags">
+                            <view class="icon-tag">
+                                <u-icon name="heart-fill" color="#ff6b81" size="14"></u-icon>
+                                <text>{{ item.nZan || 0 }}</text>
+                            </view>
+                            <view class="icon-tag">
+                                <u-icon name="map-fill" color="#00cba3" size="14"></u-icon>
+                                <text>{{ item.distance }} km</text>
+                            </view>
+                            <view class="text-tag" v-if="item.freeTravel">免出行费</view>
                         </view>
-                        <view class="text-tag" v-if="item.freeTravel">免出行费</view>
                     </view>
 
                     <view class="action-btn">
-                        <u-button text="去下单" color="linear-gradient(131deg, #00DAAB 0%, #07CDC4 100%)" shape="circle" size="small"
-                            :customStyle="{ width: '140rpx', height: '56rpx' }"></u-button>
+                        <button 
+                            size="mini"
+                            :class="{
+                                'btn': true,
+                                'disabled': item.nStatus !== 0
+                            }"
+                            :disabled="item.nStatus !== 0"
+                            @click.stop="onSubmit(item)"
+                        >{{ item.nStatus == 0 ? '立即预约' : '不可预约' }}</button>
                     </view>
                 </view>
             </view>
-        </view>
+        </z-paging>
+
+        <!-- 商品选择 -->
+        <Popup ref="orderPopup" :round="10" mode="bottom">
+            <view class="popup-box">
+				<view class="list">
+					<view class="item" v-for="(item,index) in projects" :key="index">
+						<view class="imgs">
+							<image :src="$globalData.publicUrl + item.cCover" mode="" />
+						</view>
+						<view class="right">
+							<view class="list_title">
+								<view class="title">{{item.cTitle}}</view>
+								<!-- <view class="time">{{item.nMinute}}分钟</view> -->
+								<view class="price">
+									<span>¥</span>{{item.dPrice}}
+								</view>
+							</view>
+							<view class="num">
+								{{item.cLdList}}
+								<span>超{{item.nSaleNumber}}选择</span>
+							</view>
+							<view class="time">
+								<view class="money">{{item.nMinute}}分钟</view>
+								<view class="counter">
+                                    <u-number-box v-model="item.number">
+                                        <view slot="minus" class="minus">
+                                            <u-icon name="minus-circle-fill" color="#999" size="36rpx"></u-icon>
+                                        </view>
+                                        <text
+                                            class="input" slot="input"
+                                            style="width: 50rpx; text-align: center;"
+                                        >{{ item.number }}</text>
+                                        <view slot="plus" class="plus">
+                                            <u-icon name="plus-circle-fill" color="#11C7BF" size="36rpx"></u-icon>
+                                        </view>
+                                    </u-number-box>
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+				<view class="btns" @click="nowYuyue">
+                    <text>立即预约</text>
+                </view>
+			</view>
+        </Popup>
     </view>
 </template>
 
 <script>
+import {
+    addOrder,
+    getCityList,
+    engineer,
+    engineerDetails,
+} from '@/api/index';
+import {
+    getAddrList,
+} from '@/api/address';
+import Popup from '@/components/popup/index.vue';
 export default {
+    components: {
+        Popup,
+    },
     data() {
         return {
-            filters: ['资深', '专家', '保健', '免出行费'],
-            list: [
-                {
-                    id: 1,
-                    name: '赵青青',
-                    avatar: 'https://cdn.uviewui.com/uview/album/1.jpg', // 替换真实头像
-                    badgeText: 'HOT',
-                    badgeType: 'hot', // hot or recommend
-                    status: '可预约',
-                    score: '5.0',
-                    shopName: '小雨养生',
-                    serviceCount: 32,
-                    likes: 29,
-                    coins: 12,
-                    freeTravel: true,
-                    earliestTime: '今15:30'
-                },
-                {
-                    id: 2,
-                    name: '赵青青',
-                    avatar: 'https://cdn.uviewui.com/uview/album/2.jpg',
-                    badgeText: '推荐',
-                    badgeType: 'recommend',
-                    status: '可服务',
-                    score: '5.0',
-                    shopName: '小雨养生',
-                    serviceCount: 32,
-                    likes: 29,
-                    coins: 12,
-                    freeTravel: true,
-                    earliestTime: '今15:30'
-                },
-                {
-                    id: 3,
-                    name: '赵青青',
-                    avatar: 'https://cdn.uviewui.com/uview/album/3.jpg',
-                    badgeText: '推荐',
-                    badgeType: 'recommend',
-                    status: '可服务',
-                    score: '5.0',
-                    shopName: '小雨养生',
-                    serviceCount: 32,
-                    likes: 29,
-                    coins: 12,
-                    freeTravel: true,
-                    earliestTime: '今15:30'
-                }
-            ]
+            params: {
+                nB2: '',
+                free: '',
+                nStatus: '',
+                cNickName: '',
+            },
+            tabList: ['全部', '可服务', '新商家'],
+            tabCurrent: 0,
+            dataList: [],
+            projects: [],
+            servicePhone: '19935577015'
         };
+    },
+    onShow() {
+        this.city = uni.getStorageSync('selectCity')
+    },
+    methods: {
+        getList(pageNo, pageSize) {
+            let params = {
+                current: pageNo,
+				size: pageSize,
+                ...this.params,
+
+                nTong: 1,
+                nStatus2: 0,
+                // jsGrade: '',
+                city: this.city,
+                
+                latitude: uni.getStorageSync('latitude'),
+                longitude: uni.getStorageSync('longitude'),
+                projectId: uni.getStorageSync('projectId'),
+            }
+
+            engineer(params).then(res => {
+                if (res.data.code === 200) {
+					this.$refs.paging.complete(res.data.data.records);
+				} else {
+					this.$refs.paging.complete(false);
+				}
+            }).catch(() => {
+                
+            });
+        },
+        // 搜索
+        onSearch() {
+            this.$refs.paging.reload();
+        },
+        // tab事件
+        onTabChange(e) {
+            this.tabCurrent = e;
+            let params = {
+                nB2: '',
+                free: '',
+                nStatus: '',
+            };
+            // 可服务
+            if (e == 1) {
+                params.nStatus = 0;
+            }
+            // 新商家
+            else if (e == 2) {
+                params.nB2 = 1;
+            }
+            // 免出行费
+            else if (e == 3) {
+                params.free = 1;
+            }
+            this.params = {
+                ...this.params,
+                ...params
+            };
+            // api
+            this.$refs.paging.reload();
+        },
+        // 下单
+        onSubmit(e) {
+			if (!this.$utils.checkLogin({ type: 'modal' })) return;
+            let params = {
+                id: e.id
+            }
+            engineerDetails(params).then(res => {
+                res.data.data.projects.forEach(element => {
+                    element.number = 0
+                });
+                this.details = res.data.data;
+                this.projects = res.data.data.projects;
+                this.$refs.orderPopup.open();
+            });
+        },
+        goToDetails(e) {
+			if (!this.$utils.checkLogin({ type: 'modal' })) return;
+            let str = uni.$u.queryParams({
+                id: e.id
+            });
+            uni.navigateTo({
+                url: `/pages/identify/details${str}`
+            });
+        },
     }
 };
 </script>
@@ -167,8 +297,8 @@ export default {
         }
 
         .filter-tags {
+            gap: 24rpx;
             display: flex;
-            justify-content: space-between;
             align-items: center;
 
             .tag-item {
@@ -201,6 +331,28 @@ export default {
     .list-section {
         padding: 24rpx 30rpx;
     }
+
+    .banner-box {
+        position: relative;
+
+        .call-box {
+            font-weight: 500;
+            font-size: 34rpx;
+            color: #FFFFFF;
+            padding: 0 24rpx;
+            display: flex;
+            align-items: center;
+            position: absolute;
+            bottom: 24rpx;
+            z-index: 1;
+
+            .icon {
+                width: 36rpx; 
+                height: 36rpx;
+                margin-right: 6rpx;
+            }
+        }
+    }
 }
 
 .list-item {
@@ -284,7 +436,7 @@ export default {
             align-items: center;
             font-size: 24rpx;
             color: #666;
-            margin-bottom: 16rpx;
+            margin-bottom: 6rpx;
 
             .score {
                 color: #EB5137;
@@ -313,11 +465,142 @@ export default {
                 color: #F35031;
             }
         }
+    }
 
-        .action-btn {
-            position: absolute;
-            right: 20rpx;
-            bottom: 30rpx;
+    .action-btn {
+        position: absolute;
+        right: 20rpx;
+        bottom: 20rpx;
+
+        .btn {
+            width: auto; 
+            height: 56rpx;
+            color: #fff;
+            padding: 0 24rpx;
+            background: linear-gradient(131deg, #00DAAB 0%, #07CDC4 100%);
+            border-radius: 56rpx;
+
+            &.disabled {
+                opacity: 0.5;
+            }
+        }
+    }
+}
+
+
+.popup-box {
+    height: 50vh;
+    padding: 30rpx 24rpx 24rpx;
+    border-top-left-radius: 20rpx;
+    border-top-right-radius: 20rpx;
+    background: #F3F3F3;
+    display: flex;
+    flex-direction: column;
+
+    .list {
+        // height: 90%;
+        padding: 0 4rpx;
+        overflow-y: auto;
+
+        .item {
+            margin-bottom: 20rpx;
+            padding: 24rpx 32rpx;
+            border-radius: 24rpx;
+            background-color: #fff;
+            display: flex;
+            justify-content: space-between;
+
+            &:last-child {
+                margin-bottom: 0;
+            }
+
+            .imgs {
+                width: 160rpx;
+                height: 160rpx;
+                border-radius: 16rpx;
+                overflow: hidden;
+
+                image {
+                    width: 100%;
+                    height: 100%;
+                }
+            }
+
+            .right {
+                flex: 1;
+                padding-left: 30rpx;
+                display: flex;
+                flex-direction: column;
+                justify-content: space-between;
+
+                .list_title {
+                    display: flex;
+                    align-items: start;
+                    justify-content: space-between;
+
+                    .title {
+                        width: 280rpx;
+                        font-size: 34rpx;
+                        overflow: hidden;
+                        white-space: nowrap;
+                        text-overflow: ellipsis;
+                    }
+                    
+                    .price {
+                        font-size: 48rpx;
+                        color: #F53E54;
+                        padding: 0;
+                        display: flex;
+                        align-items: center;
+
+                        span {
+                            font-size: 24rpx
+                        }
+                    }
+                }
+
+                .num {
+                    font-size: 24rpx;
+                    color: #888888;
+                    display: flex;
+                    align-items: center;
+                    justify-content: space-between;
+                }
+
+                .time {
+                    display: flex;
+                    align-items: center;
+                    justify-content: space-between;
+
+                    .money {
+                        font-size: 26rpx;
+                        color: #666666;
+                        font-weight: bold;
+                    }
+
+                    .counter {
+                        .input {
+                            width: 50rpx;
+                            text-align: center;
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    .btns {
+        padding-top: 24rpx;
+
+        text {
+            width: 100%;
+            height: 80rpx;
+            color: #fff;
+            line-height: 80rpx;
+            text-align: center;
+            background: linear-gradient(90deg, #1AD7CE 0%, #21C9C1 100%);
+            border-radius: 106rpx;
+            display: inline-block;
         }
     }
 }

+ 2 - 1
src/pages/identify/city.vue

@@ -26,5 +26,6 @@
 	}
 </script>
 
-<style>
+<style lang="scss" scoped>
+	
 </style>

+ 17 - 4
src/pages/identify/pay_order.vue

@@ -132,8 +132,8 @@
 
 		<ServiceTimePicker
             ref="stp"
-            startHour="09:00"
-            endHour="21:00"
+            startHour="00:00"
+            endHour="24:00"
             :duration="120"
             :bookedTimes="bookedTimes"
             @confirm="onTimeConfirm"
@@ -145,7 +145,6 @@
 import wx from 'weixin-js-sdk';
 import ServiceTimePicker from '@/components/picker/service-time.vue';
 import {
-	orderDeatails,
 	getInfo,
 	payoff,
 	pay,
@@ -154,6 +153,10 @@ import {
 	getFareSetting,
 	verification
 } from '@/api/index.js';
+import {
+	orderDeatails,
+	getStaffServiceTime
+} from '@/api/order.js';
 export default {
 	components: {
 		ServiceTimePicker
@@ -237,7 +240,7 @@ export default {
 				couponReceiveId: this.couponId
 			}
 			orderDeatails(params).then(res => {
-				console.log(res)
+				console.log('orderDeatails', res)
 				if (res.data.code === 200) {
 					this.details = {
 						...res.data.data.records[0],
@@ -252,9 +255,19 @@ export default {
 					this.remainingTime = res.data.data.records[0].remainingTime;
 					// 获取部门车费
 					this.fareSetting(res.data.data.records[0].deptId);
+					// 获取服务时间
+					this.getServiceTime();
 				}
 			})
 		},
+		// 获取服务时间
+		getServiceTime() {
+			getStaffServiceTime({
+				technicianId: this.details.cJsId
+			}).then(res => {
+
+			});
+		},
 		// 获取部门车费
 		fareSetting(id) {
 			let params = {

+ 6 - 10
src/pages/login/wxLogin.vue

@@ -50,21 +50,17 @@
 				this.look = !this.look
 			},
 			login() {
-				if(this.look){
-				 	window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxa72f643173a90106&redirect_uri=https://test.baoxianzhanggui.com/fragrance/&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect'
-				}else{
+				if (this.look) {
+					let ruri = encodeURIComponent('https://test.baoxianzhanggui.com/nightFragrance')
+				 	window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxa72f643173a90106&redirect_uri=${ruri}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect`
+					// 正式——广誉源
+				 	// window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx9dc677bd41e82569&redirect_uri=https://city.baoxianzhanggui.com/fragrance/&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect'
+				} else {
 					uni.showToast({
 						title: '请同意《用户协议》和《隐私政策》',
 						icon: 'none'
 					})
 				}
-				// wxGetCode().then(res => {
-				// })
-				// uni.request({
-				// 	url: 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx9aaa5016e4b259bd&redirect_uri=https://test.baoxianzhanggui.com/fragrance/%23/&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect',
-				// 	success: (res) => {
-				// 	}
-				// })
 			},
 			back() {
 				uni.switchTab({

+ 7 - 5
src/pages/my/js_order.vue

@@ -175,19 +175,21 @@
 	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
 	import {
 		getStatusList,
-		orderDeatails,
 		getInfo,
 		getMerchantData,
-		confirmOrder,
-		takeOrder,
 		arriveOderLocation,
 		enterService,
-		refuse,
 		depart,
 		imgUpload,
 		reach,
 		confirm
 	} from '@/api/index'
+	import {
+		takeOrder,
+		refuseOrder,
+		confirmOrder,
+		orderDeatails,
+	} from '@/api/order.js';
 	import Upload from '@/components/upload/index.vue';
 	export default {
 		components: {
@@ -232,7 +234,7 @@
 					})
 					return
 				}
-				refuse(data).then(res => {
+				refuseOrder(data).then(res => {
 					if (res.data.code == 200) {
 						this.list = []
 						uni.showToast({

+ 4 - 2
src/pages/order/order.vue

@@ -69,12 +69,14 @@
 </template>
 
 <script>
+import {
+	getStatusList,
+} from '@/api/index.js';
 import {
 	delOrder,
 	cancleOrder,
-	getStatusList,
 	orderDeatails,
-} from '@/api/index.js';
+} from '@/api/order.js';
 export default {
 	data() {
 		return {

+ 10 - 8
src/pages/order/order_detail.vue

@@ -277,25 +277,27 @@
 
 <script>
 	import {
-		orderDeatails,
 		getInfo,
-		delOrder,
-		confirmOrder,
 		alertOrder,
 		engineerDetails,
-		speedOrder,
 		addOrder,
-		takeOrder,
 		arriveOderLocation,
 		updateOrder,
 		project,
 		enterService,
-		refuse,
 		depart,
 		userComment,
 		reach,
 		confirm
-	} from '../../api/index.js'
+	} from '@/api/index.js'
+	import {
+		delOrder,
+		takeOrder,
+		speedOrder,
+		refuseOrder,
+		confirmOrder,
+		orderDeatails,
+	} from '@/api/order.js';
 	import Upload from '@/components/upload/index.vue';
 	export default {
 		components: {
@@ -481,7 +483,7 @@
 					})
 					return
 				}
-				refuse(data).then(res => {
+				refuseOrder(data).then(res => {
 					if (res.data.code == 200) {
 						this.list = []
 						uni.showToast({

BIN
src/static/identify/bg0.png


+ 6 - 0
src/utils/index.js

@@ -173,6 +173,12 @@ const otherUtil = {
 		// 返回指定索引的图片URL
 		return imgArr[validIndex];
 	},
+	// 电话
+	makePhoneCall(e) {
+		if (e) {
+			uni.makePhoneCall({ phoneNumber: e });
+		}
+	},
 	// 全局状态管理
 	statusManager,
 };