zhaoyun преди 2 седмици
родител
ревизия
76ff81587e

+ 12 - 0
mer_plat_admin/src/components/linkaddress/linkData.json

@@ -289,6 +289,18 @@
         "sort": 998,
         "add_time": 1626837579
       },
+	  {
+			  "id": 222,
+			  "cate_id": 5,
+			  "type": 1,
+			  "name": "骑手接单",
+			  "url": "/pages/rider_index/index",
+			  "param": " ",
+			  "example": "/pages/rider_index/index",
+			  "status": 1,
+			  "sort": 998,
+			  "add_time": 1626837579
+			},
       {
         "id": 23,
         "cate_id": 5,

+ 3 - 1
mer_plat_admin/src/router/index.js

@@ -29,7 +29,7 @@ import merchant from './modules/merchant';
 import pagediy from '@/router/modules/pagediy';
 import riderRouter from '@/router/modules/rider';
 import secondhandRouter from './modules/secondhand';
-
+import expressRouter from './modules/express';
 /**
  * Note: sub-menu only appear when route children.length >= 1
  * Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html
@@ -81,6 +81,8 @@ export const constantRoutes = [
   riderRouter,
   //二手交易
   secondhandRouter,
+  //快递
+  expressRouter,
 
   {
     path: '/404',

+ 2 - 2
mer_plat_admin/src/views/login/index.vue

@@ -131,8 +131,8 @@ export default {
         },
       },
       loginForm: {
-        account: 'demo', // admin
-        pwd: 'crmeb.com',
+        account: 'admin', // admin
+        pwd: '123456',
         captchaVO: {},
       },
       loginRules: {

+ 0 - 741
mer_plat_admin/src/views/order/components/fastMailOrderDetail.vue

@@ -1,741 +0,0 @@
-<template>
-  <div>
-    <el-drawer :visible.sync="drawerVisible" :direction="direction" size="1000px" :before-close="handleClose">
-      <div v-loading="loading">
-        <div class="detailHead">
-          <div class="acea-row row-between headerBox">
-            <div class="full">
-              <div class="order_icon"><span class="iconfont icon-shouhou_tuikuan-2"></span></div>
-              <div class="text">
-                <div class="title">退款订单</div>
-                <div>
-                  <span class="mr20">退款单号:{{ refundInfo.refundOrderNo }}</span>
-                </div>
-              </div>
-            </div>
-            <!-- 审核 -->
-            <div class="acea-row row-center-wrapper">
-              <el-button size="small" @click.native="onOrderMark()" v-hasPermi="['platform:refund:order:mark']"
-                >订单备注</el-button
-              >
-              <el-button
-                v-if="
-                  checkPermi(['platform:refund:order:compulsory:refund']) &&
-                  (refundInfo.refundStatus === 0 || refundInfo.refundStatus === 5)
-                "
-                type="primary"
-                size="small"
-                v-debounceClick="
-                  () => {
-                    handlerCompulsoryReturn(refundInfo);
-                  }
-                "
-                >强制退款</el-button
-              >
-            </div>
-          </div>
-
-          <ul class="list">
-            <li class="item">
-              <div class="title">退款状态</div>
-              <div class="color-warning">{{ refundInfo.refundStatus | refundStatusFilter }}</div>
-            </li>
-            <li class="item">
-              <div class="title">退款金额</div>
-              <div>¥ {{ refundInfo.refundPrice || '0.0' }}</div>
-            </li>
-            <li class="item">
-              <div class="title">实付金额</div>
-              <div>{{ refundInfo.payPrice }}</div>
-            </li>
-            <li class="item">
-              <div class="title">创建时间</div>
-              <div>{{ refundInfo.orderInfoVo ? refundInfo.orderInfoVo.createTime : '' }}</div>
-            </li>
-          </ul>
-        </div>
-        <el-tabs type="border-card" v-model="activeName">
-          <el-tab-pane label="售后信息" name="refund">
-            <div class="detailSection" style="border: none">
-              <div class="title">退款商品</div>
-              <ul class="list">
-                <li class="item row-middle">
-                  <div class="image mr10">
-                    <el-image
-                      :src="refundInfo.image"
-                      :preview-src-list="[refundInfo.image]"
-                      style="width: 40px; height: 40px"
-                    ></el-image>
-                  </div>
-                  <div>
-                    <div class="text666 mb10 productName line-height-15">{{ refundInfo.productName }}</div>
-                    <div class="text999">
-                      <span>{{ refundInfo.sku }}</span
-                      ><span class="ml30">售价:¥{{ refundInfo.price }}</span>
-                    </div>
-                  </div>
-                </li>
-              </ul>
-            </div>
-            <div class="detailSection">
-              <div class="title">退款明细</div>
-              <ul class="list">
-                <li class="item">
-                  <div class="lang">退款数量:</div>
-                  <div class="value">{{ refundInfo.applyRefundNum }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">购买数量:</div>
-                  <div class="value">{{ refundInfo.payNum }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">预计退款方式:</div>
-                  <div class="value">原支付返还</div>
-                </li>
-                <li v-show="refundInfo.refundStatus === 2 || refundInfo.refundStatus === 3" class="item">
-                  <div class="lang">退回运费:</div>
-                  <div class="value">{{ refundInfo.refundFreightFee }}</div>
-                </li>
-                <li v-show="refundInfo.refundStatus === 2 || refundInfo.refundStatus === 3" class="item">
-                  <div class="lang">退一级佣金:</div>
-                  <div class="value">{{ refundInfo.refundFirstBrokerageFee }}</div>
-                </li>
-                <li v-show="refundInfo.refundStatus === 2 || refundInfo.refundStatus === 3" class="item">
-                  <div class="lang">退回抵扣积分:</div>
-                  <div class="value">{{ refundInfo.refundUseIntegral }}</div>
-                </li>
-                <li v-show="refundInfo.refundStatus === 2 || refundInfo.refundStatus === 3" class="item">
-                  <div class="lang">收回赠送积分:</div>
-                  <div class="value">{{ refundInfo.refundGainIntegral }}</div>
-                </li>
-                <li v-show="refundInfo.refundStatus === 2 || refundInfo.refundStatus === 3" class="item">
-                  <div class="lang">退二级返佣:</div>
-                  <div class="value">{{ refundInfo.refundSecondBrokerageFee }}</div>
-                </li>
-              </ul>
-            </div>
-            <!-- 退款流程信息-->
-            <div class="detailSection">
-              <div class="title">退款流程信息</div>
-              <div class="detail-centent acea-row">
-                <div>
-                  <!--  操作类型:apply-申请退款,audit-商家审核,returning-商品退回,receiving-商家确认收货,refund-退款,compulsory-平台强制退款,revoke-撤销-->
-                  <el-steps
-                    direction="vertical"
-                    :active="
-                      refundInfo.promoterType === 'merchant' ? 2 : refundInfo.statusList && refundInfo.statusList.length
-                    "
-                    finish-status="success"
-                  >
-                    <el-step title="直接退款-商家" v-if="refundInfo.promoterType === 'merchant'">
-                      <template slot="description">
-                        <div class="mb10">
-                          {{ refundInfo.refundTime }}
-                        </div>
-                      </template>
-                    </el-step>
-                    <el-step
-                      title="申请退款-用户"
-                      v-if="
-                        refundInfo.statusList &&
-                        refundInfo.statusList.length &&
-                        refundInfo.statusList.find((item) => item.changeType === 'apply')
-                      "
-                    >
-                      <template slot="description">
-                        <div class="mb10">
-                          {{ refundInfo.statusList.filter((item) => item.changeType === 'apply')[0].createTime }}
-                        </div>
-                        <div class="refundReasonWap">
-                          <div class="acea-row">
-                            <div class="detail-term" style="width: 58%">
-                              <span class="detail-infoTitle">退款原因:</span
-                              ><span class="detail-info">{{ refundInfo.refundReasonWap }}</span>
-                            </div>
-                            <div class="detail-term">
-                              <span class="detail-infoTitle">退货方式:</span
-                              ><span class="detail-info">{{
-                                refundInfo.returnGoodsType === 1
-                                  ? '快递退回'
-                                  : refundInfo.returnGoodsType === 2
-                                  ? '到店退货'
-                                  : '不退货'
-                              }}</span>
-                            </div>
-                          </div>
-                          <div class="detail-term acea-row">
-                            <span class="detail-infoTitle">备注说明:</span>
-                            <div class="detail-info" style="width: 600px">
-                              {{ refundInfo.refundReasonWapExplain | filterEmpty }}
-                            </div>
-                          </div>
-                          <div class="detail-term">
-                            <div class="acea-row">
-                              <span class="detail-infoTitle">退款凭证:</span>
-
-                              <div v-if="refundInfo.refundReasonWapImg">
-                                <el-image
-                                  v-for="(item, index) in refundInfo.refundReasonWapImg.split(',')"
-                                  :key="index"
-                                  style="width: 60px; height: 60px"
-                                  :src="item"
-                                  class="mr10"
-                                  :preview-src-list="refundInfo.refundReasonWapImg.split(',')"
-                                ></el-image>
-                              </div>
-                              <div v-else>-</div>
-                            </div>
-                          </div>
-                        </div>
-                      </template>
-                    </el-step>
-                    <el-step
-                      title="商家审核-商家"
-                      v-if="
-                        refundInfo.statusList &&
-                        refundInfo.statusList.length &&
-                        refundInfo.statusList.find((item) => item.changeType === 'audit')
-                      "
-                    >
-                      <template slot="description" v-if="refundInfo.statusList && refundInfo.statusList.length">
-                        <div class="mb10">
-                          {{
-                            refundInfo.statusList.filter((item) => item.changeType === 'audit').length
-                              ? refundInfo.statusList.filter((item) => item.changeType === 'audit')[0].createTime
-                              : ''
-                          }}
-                        </div>
-                        <div v-if="refundInfo.refundStatus > 0" class="refundReasonWap">
-                          <div class="detail-term">
-                            <span class="detail-infoTitle">审核结果:</span
-                            ><span class="detail-info">{{
-                              refundInfo.refundStatus === 1 && refundInfo.statusList.length === 2
-                                ? '拒绝退款'
-                                : '同意退款'
-                            }}</span>
-                          </div>
-                          <div
-                            v-if="refundInfo.refundStatus === 1 && refundInfo.statusList.length === 2"
-                            class="detail-term"
-                          >
-                            <span class="detail-infoTitle">拒绝原因:</span>
-                            <span class="detail-info">{{ refundInfo.refundReason | filterEmpty }}</span>
-                          </div>
-                          <div
-                            v-if="refundInfo.returnGoodsType === 1 && refundInfo.refundStatus !== 1"
-                            class="detail-term"
-                          >
-                            <div>
-                              <span class="detail-infoTitle">退货地址:</span>
-                              <span class="detail-info">{{ refundInfo.receiverAddressDetail }}</span>
-                            </div>
-                            <div>
-                              <span class="detail-infoTitle"></span>
-                              <span class="detail-info">{{ refundInfo.receiver }} {{ refundInfo.receiverPhone }}</span>
-                            </div>
-                          </div>
-                        </div>
-                      </template>
-                    </el-step>
-                    <el-step
-                      title="商品退回信息-用户"
-                      v-if="
-                        refundInfo.statusList &&
-                        refundInfo.statusList.length &&
-                        refundInfo.statusList.find((item) => item.changeType === 'returning')
-                      "
-                    >
-                      <template slot="description" v-if="refundInfo.statusList && refundInfo.statusList.length">
-                        <div class="mb10">
-                          {{ refundInfo.statusList.filter((item) => item.changeType === 'returning')[0].createTime }}
-                        </div>
-                        <div v-if="refundInfo.returnGoodsType === 1" class="refundReasonWap">
-                          <div class="acea-row">
-                            <div class="detail-term" style="width: 58%">
-                              <span class="detail-infoTitle">物流公司:</span
-                              ><span class="detail-info">{{ refundInfo.expressName }}</span>
-                            </div>
-                            <div class="detail-term">
-                              <span class="detail-infoTitle">物流单号:</span>
-                              <span class="detail-info">{{ refundInfo.trackingNumber }}</span>
-                            </div>
-                          </div>
-                          <div class="detail-term">
-                            <div>
-                              <span class="detail-infoTitle">联系电话:</span>
-                              <span class="detail-info">{{ refundInfo.telephone }}</span>
-                            </div>
-                          </div>
-                        </div>
-                        <div v-if="refundInfo.returnGoodsType === 2" class="refundReasonWap">
-                          <div class="detail-term">
-                            <div>
-                              <span class="detail-infoTitle">联系电话:</span>
-                              <span class="detail-info">{{ refundInfo.telephone }}</span>
-                            </div>
-                          </div>
-                        </div>
-                      </template>
-                    </el-step>
-                    <el-step
-                      title="商家确认收货-商家"
-                      v-if="
-                        refundInfo.refundStatus !== 1 &&
-                        refundInfo.refundStatus !== 6 &&
-                        refundInfo.statusList &&
-                        refundInfo.statusList.length &&
-                        refundInfo.statusList.find((item) => item.changeType === 'receiving')
-                      "
-                    >
-                      <template slot="description" v-if="refundInfo.statusList && refundInfo.statusList.length">
-                        <div class="mb10">
-                          {{
-                            refundInfo.statusList.filter((item) => item.changeType === 'receiving').length
-                              ? refundInfo.statusList.filter((item) => item.changeType === 'receiving')[0].createTime
-                              : ''
-                          }}
-                        </div>
-                      </template>
-                    </el-step>
-                    <el-step
-                      title="商品拒绝收货-商家"
-                      v-if="
-                        refundInfo.statusList &&
-                        refundInfo.statusList.length &&
-                        refundInfo.statusList.find((item) => item.changeType === 'rejectionGoods')
-                      "
-                    >
-                      <template slot="description" v-if="refundInfo.statusList && refundInfo.statusList.length">
-                        <div class="mb10">
-                          {{
-                            refundInfo.statusList.filter((item) => item.changeType === 'rejectionGoods')[0].createTime
-                          }}
-                        </div>
-                        <div v-if="refundInfo.refundStatus > 0" class="refundReasonWap">
-                          <div class="detail-term">
-                            <span class="detail-infoTitle">审核结果:</span
-                            ><span class="detail-info">{{
-                              refundInfo.refundStatus === 1 ? '拒绝退款' : '同意退款'
-                            }}</span>
-                          </div>
-                          <div v-if="refundInfo.refundStatus === 1" class="detail-term">
-                            <span class="detail-infoTitle">拒绝原因:</span>
-                            <span class="detail-info">{{ refundInfo.refundReason | filterEmpty }}</span>
-                          </div>
-                          <div
-                            v-if="refundInfo.returnGoodsType === 1 && refundInfo.refundStatus !== 1"
-                            class="detail-term"
-                          >
-                            <div>
-                              <span class="detail-infoTitle">退货地址:</span>
-                              <span class="detail-info">{{ refundInfo.receiverAddressDetail }}</span>
-                            </div>
-                            <div>
-                              <span class="detail-infoTitle"></span>
-                              <span class="detail-info">{{ refundInfo.receiver }} {{ refundInfo.receiverPhone }}</span>
-                            </div>
-                          </div>
-                        </div>
-                      </template>
-                    </el-step>
-                    <el-step
-                      title="已撤销"
-                      v-if="
-                        refundInfo.refundStatus === 6 &&
-                        refundInfo.statusList &&
-                        refundInfo.statusList.length &&
-                        refundInfo.statusList.find((item) => item.changeType === 'revoke')
-                      "
-                    >
-                      <template slot="description" v-if="refundInfo.statusList && refundInfo.statusList.length">
-                        <div class="mb10">
-                          {{
-                            refundInfo.statusList.filter((item) => item.changeType === 'revoke').length
-                              ? refundInfo.statusList.filter((item) => item.changeType === 'revoke')[0].createTime
-                              : ''
-                          }}
-                        </div>
-                      </template>
-                    </el-step>
-                    <el-step
-                      title="平台强制退款成功"
-                      v-if="
-                        refundInfo.statusList &&
-                        refundInfo.statusList.length &&
-                        refundInfo.statusList.find((item) => item.changeType === 'compulsory')
-                      "
-                    >
-                      <template slot="description" v-if="refundInfo.statusList && refundInfo.statusList.length">
-                        <div class="mb10">
-                          {{
-                            refundInfo.statusList.filter((item) => item.changeType === 'compulsory').length
-                              ? refundInfo.statusList.filter((item) => item.changeType === 'compulsory')[0].createTime
-                              : ''
-                          }}
-                        </div>
-                      </template>
-                    </el-step>
-                    <el-step
-                      :title="refundInfo.promoterType === 'user' ? '退款成功' : '退款成功-商家直接退款'"
-                      v-if="
-                        refundInfo.refundStatus !== 1 &&
-                        refundInfo.refundStatus !== 6 &&
-                        refundInfo.statusList &&
-                        refundInfo.statusList.length &&
-                        refundInfo.statusList.find((item) => item.changeType === 'refund')
-                      "
-                    >
-                      <template slot="description" v-if="refundInfo.statusList && refundInfo.statusList.length">
-                        <div class="mb10">
-                          {{
-                            refundInfo.statusList.filter((item) => item.changeType === 'refund').length
-                              ? refundInfo.statusList.filter((item) => item.changeType === 'refund')[0].createTime
-                              : ''
-                          }}
-                        </div>
-                      </template>
-                    </el-step>
-                    <el-step
-                      title="商家审核-商家"
-                      v-if="
-                        refundInfo.refundStatus !== 1 &&
-                        refundInfo.refundStatus !== 2 &&
-                        refundInfo.refundStatus !== 6 &&
-                        refundInfo.refundStatus === 0
-                      "
-                    >
-                    </el-step>
-                    <el-step
-                      title="商品退回信息-用户"
-                      v-if="
-                        refundInfo.refundStatus !== 1 &&
-                        refundInfo.refundStatus !== 2 &&
-                        refundInfo.refundStatus !== 6 &&
-                        refundInfo.afterSalesType === 2 &&
-                        (refundInfo.refundStatus === 0 || refundInfo.refundStatus === 4)
-                      "
-                    >
-                    </el-step>
-                    <el-step
-                      title="商家确认收货-商家"
-                      v-if="
-                        refundInfo.refundStatus !== 1 &&
-                        refundInfo.refundStatus !== 2 &&
-                        refundInfo.refundStatus !== 6 &&
-                        refundInfo.afterSalesType === 2 &&
-                        (refundInfo.refundStatus === 0 ||
-                          refundInfo.refundStatus === 4 ||
-                          refundInfo.refundStatus === 5)
-                      "
-                    >
-                    </el-step>
-                    <el-step
-                      :title="refundInfo.promoterType === 'user' ? '退款成功' : '退款成功-商家直接退款'"
-                      v-if="
-                        refundInfo.refundStatus !== 1 &&
-                        refundInfo.refundStatus !== 6 &&
-                        (refundInfo.refundStatus === 0 ||
-                          refundInfo.refundStatus === 2 ||
-                          refundInfo.refundStatus === 4 ||
-                          refundInfo.refundStatus === 5)
-                      "
-                    >
-                    </el-step>
-                  </el-steps>
-                </div>
-              </div>
-            </div>
-            <div class="detailSection">
-              <div class="title">平台备注</div>
-              <ul class="list">
-                <li class="item">
-                  <div>{{ refundInfo.platformRemark | filterEmpty }}</div>
-                </li>
-              </ul>
-            </div>
-            <div class="detailSection">
-              <div class="title">商家备注</div>
-              <ul class="list">
-                <li class="item">
-                  <div>{{ refundInfo.merRemark | filterEmpty }}</div>
-                </li>
-              </ul>
-            </div>
-          </el-tab-pane>
-          <el-tab-pane label="订单信息" name="detail" v-if="refundInfo.orderInfoVo">
-            <div class="detailSection">
-              <div class="title">用户信息</div>
-              <ul class="list">
-                <li class="item">
-                  <div class="lang">用户昵称:</div>
-                  <div class="value">
-                    <span class="mr5">{{ refundInfo.orderInfoVo.nickname }}</span>
-                    <span class="mr5"> | </span>
-                    <span>{{ refundInfo.orderInfoVo.uid }}</span>
-                  </div>
-                </li>
-                <li class="item">
-                  <div class="lang">用户电话:</div>
-                  <div class="value">{{ refundInfo.orderInfoVo.phone }}</div>
-                </li>
-              </ul>
-            </div>
-            <div v-show="refundInfo.orderInfoVo.secondType < 2" class="detailSection">
-              <div class="title">配送信息</div>
-              <ul class="list">
-                <li class="item">
-                  <div class="lang">配送方式:</div>
-                  <div class="value">{{ refundInfo.orderInfoVo.shippingType === 1 ? '商家配送' :(refundInfo.orderInfoVo.shippingType === 2? '到店自提':'外卖配送' ) }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">收货电话:</div>
-                  <div class="value">{{ refundInfo.orderInfoVo.userPhone | filterEmpty }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">收货人:</div>
-                  <div class="value">{{ refundInfo.orderInfoVo.realName | filterEmpty }}</div>
-                </li>
-              </ul>
-              <div class="userAddress acea-row">
-                <div class="lang">收货地址:</div>
-                <div class="value">{{ refundInfo.orderInfoVo.userAddress | filterEmpty }}</div>
-              </div>
-            </div>
-            <div class="detailSection">
-              <div class="title">订单信息</div>
-              <ul class="list">
-                <li class="item">
-                  <div class="lang">订单号:</div>
-                  <div class="value">{{ refundInfo.orderInfoVo.orderNo }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">商品总数:</div>
-                  <div class="value">{{ refundInfo.orderInfoVo.totalNum }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">支付状态:</div>
-                  <div class="value">{{ refundInfo.orderInfoVo.paid ? '已支付' : '未支付' }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">支付方式:</div>
-                  <div class="value">{{ refundInfo.orderInfoVo.payType | payTypeFilter }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">订单状态:</div>
-                  <div class="value textE93323">
-                    <span v-if="refundInfo.orderInfoVo.refundStatus === 3">已退款</span>
-                    <span v-else>{{ refundInfo.orderInfoVo.status | orderStatusFilter }}</span>
-                  </div>
-                </li>
-                <li class="item">
-                  <div class="lang">已发货数量:</div>
-                  <div class="value">{{ refundInfo.orderInfoVo.deliveryNum }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">创建时间:</div>
-                  <div class="value">{{ refundInfo.orderInfoVo.createTime }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">支付时间:</div>
-                  <div class="value">{{ refundInfo.orderInfoVo.payTime }}</div>
-                </li>
-              </ul>
-            </div>
-            <div class="detailSection">
-              <div class="title">订单明细</div>
-              <ul class="list">
-                <li class="item">
-                  <div class="lang">商品总价:</div>
-                  <div class="value">¥{{ refundInfo.orderInfoVo.proTotalPrice }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">平台优惠金额:</div>
-                  <div class="value">¥{{ refundInfo.orderInfoVo.platCouponPrice }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">赠送积分:</div>
-                  <div class="value">¥{{ refundInfo.orderInfoVo.gainIntegral }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">实际支付:</div>
-                  <div class="value">¥{{ refundInfo.orderInfoVo.payPrice }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">扣除抵扣积分:</div>
-                  <div class="value">{{ refundInfo.orderInfoVo.useIntegral }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">商家优惠金额:</div>
-                  <div class="value">¥{{ refundInfo.orderInfoVo.merCouponPrice }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">会员抵扣金额:</div>
-                  <div class="value">¥{{ refundInfo.orderInfoVo.svipDiscountPrice || 0 }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">支付邮费:</div>
-                  <div class="value">¥{{ refundInfo.orderInfoVo.payPostage }}</div>
-                </li>
-                <li class="item">
-                  <div class="lang">积分抵扣金额:</div>
-                  <div class="value">¥{{ refundInfo.orderInfoVo.integralPrice }}</div>
-                </li>
-              </ul>
-            </div>
-            <div class="detailSection">
-              <div class="title">用户备注</div>
-              <ul class="list">
-                <li class="item">
-                  <div class="value productName">{{ refundInfo.orderInfoVo.userRemark | filterEmpty }}</div>
-                </li>
-              </ul>
-            </div>
-            <div class="detailSection">
-              <div class="title">商家备注</div>
-              <ul class="list">
-                <li class="item">
-                  <div class="value productName">{{ refundInfo.orderInfoVo.merchantRemark | filterEmpty }}</div>
-                </li>
-              </ul>
-            </div>
-          </el-tab-pane>
-        </el-tabs>
-        <!-- 售后状态:0:待审核 1:商家拒绝 2:退款中 3:已退款 4:用户退货 5:商家待收货 6:已撤销-->
-      </div>
-    </el-drawer>
-  </div>
-</template>
-<script setup>
-import { orderRefundCompulsoryApi, refundMarkApi, refundOrderDetailApi } from '@/api/order';
-import { checkPermi } from '@/utils/permission'; // 权限判断函数
-import { filterEmpty, refundStatusFilter } from '@/filters';
-export default {
-  name: 'fastMailOrderDetail',
-  props: {
-    //退款单号
-    refundOrderNo: {
-      type: String,
-      default: 0,
-    },
-    //是否显示隐藏
-    drawerVisible: {
-      type: Boolean,
-      default: false,
-    },
-  },
-  data() {
-    return {
-      dialogVisible: false,
-      loadingBtn: false,
-      activeName: 'refund',
-      direction: 'rtl',
-      reverse: true,
-      orderDatalist: {},
-      loading: false,
-      modal2: false,
-      result: [],
-      resultInfo: {},
-      refundInfo: {},
-    };
-  },
-  mounted() {
-    this.getRefundOrderDetail(this.refundOrderNo);
-  },
-  methods: {
-    checkPermi,
-    handleClose() {
-      this.$emit('onClosedrawerVisible');
-    },
-    // 备注
-    onOrderMark() {
-      this.$modalPrompt('textarea', '退款单备注', this.refundInfo.platformRemark).then((V) => {
-        refundMarkApi({ remark: V, refundOrderNo: this.refundOrderNo }).then(() => {
-          this.$message.success('操作成功');
-        });
-      });
-    },
-    // 获取订单退款信息
-    getRefundOrderDetail(id) {
-      this.loading = true;
-      refundOrderDetailApi(id)
-        .then(async (res) => {
-          this.refundInfo = res;
-          this.loading = false;
-        })
-        .catch(() => {
-          this.loading = false;
-        });
-    },
-    handlerCompulsoryReturn(refundInfo) {
-      this.$confirm(
-        `确定强制退款【${refundInfo.refundPrice}】 退款单,此操作不可逆,请慎重确认后再操作`,
-        '强制退款提示',
-      ).then(async () => {
-        let result = await orderRefundCompulsoryApi(refundInfo.refundOrderNo);
-        this.$emit('compulsoryReturnSuccess');
-      });
-    },
-  },
-};
-</script>
-<style scoped lang="scss">
-.userAddress {
-  width: 100%;
-  margin-top: 16px;
-  font-size: 13px;
-  color: #666;
-}
-
-.productName {
-  width: 633px;
-}
-
-.detail-centent {
-  margin-top: 16px;
-}
-
-::v-deep .el-step__main {
-  margin-bottom: 30px !important;
-}
-
-::v-deep .el-step__title {
-  font-size: 14px !important;
-}
-
-.flow-path {
-  margin-bottom: 70px;
-}
-
-.refundReasonWap {
-  width: 720px;
-  height: auto;
-  padding: 10px 25px 0 0;
-  border-radius: 14px;
-  background-color: #f3f8fe;
-  overflow: hidden;
-}
-
-.image {
-  width: 40px;
-  height: 40px;
-  border-radius: 4px;
-  overflow: hidden;
-}
-
-.refund {
-  &-title {
-    font-size: 17px;
-    color: #333333;
-    font-weight: 600;
-  }
-
-  &-orderNo {
-    font-size: 14px;
-    color: #333333;
-  }
-
-  &-price {
-    margin-right: 100px;
-  }
-}
-</style>

+ 0 - 503
mer_plat_admin/src/views/order/fastMail.vue

@@ -1,503 +0,0 @@
-<template>
-  <div class="divBox relative">
-    <el-card
-      :bordered="false"
-      shadow="never"
-      class="ivu-mt"
-      :body-style="{ padding: 0 }"
-      v-hasPermi="['platform:order:page:list']"
-    >
-      <div class="padding-add">
-        <el-form size="small" inline label-position="right" @submit.native.prevent>
-          <el-form-item label="订单编号:" label-width="66px">
-            <el-input
-              v-model.trim="tableFrom.orderNo"
-              placeholder="请输入订单编号"
-              class="selWidth"
-              size="small"
-              clearable
-              @keyup.enter.native="handleSearchList"
-            />
-          </el-form-item>
-          <el-form-item label="订单类型:">
-            <el-select
-              v-model="tableFrom.type"
-              clearable
-              size="small"
-              placeholder="请选择"
-              class="selWidth"
-              @change="handleSearchList"
-            >
-              <el-option v-for="(item, i) in fromType" :key="i" :label="item.text" :value="item.value" />
-            </el-select>
-          </el-form-item>
-          <el-form-item label="时间选择:">
-            <el-date-picker
-              v-model="timeVal"
-              value-format="yyyy-MM-dd"
-              format="yyyy-MM-dd"
-              size="small"
-              type="daterange"
-              placement="bottom-end"
-              placeholder="自定义时间"
-              @change="onchangeTime"
-              class="selWidth"
-            />
-          </el-form-item>
-          <el-form-item label="用户搜索:" label-for="nickname">
-            <UserSearchInput v-model="tableFrom" />
-          </el-form-item>
-          <el-form-item label="商户名称:">
-            <merchant-name @getMerId="getMerId" :merIdChecked="tableFrom.merId"></merchant-name>
-          </el-form-item>
-          <el-form-item>
-            <el-button type="primary" size="small" @click="handleSearchList">查询</el-button>
-            <el-button size="small" @click="handleReset">重置</el-button>
-          </el-form-item>
-        </el-form>
-      </div>
-    </el-card>
-    <el-card class="box-card mt14" :body-style="{ padding: '0 20px 20px' }" shadow="never" :bordered="false">
-      <el-tabs class="list-tabs" v-model="tableFrom.status" @tab-click="handleSearchList">
-        <el-tab-pane name="all" :label="`全部(${orderChartType.all || 0})`"></el-tab-pane>
-        <el-tab-pane name="unPaid" :label="`未支付(${orderChartType.unPaid || 0})`"></el-tab-pane>
-        <el-tab-pane name="notShipped" :label="`未发货(${orderChartType.notShipped || 0})`"></el-tab-pane>
-        <el-tab-pane name="spike" :label="`待收货(${orderChartType.spike || 0})`"></el-tab-pane>
-        <el-tab-pane name="awaitVerification" :label="`待核销(${orderChartType.verification || 0})`"></el-tab-pane>
-        <el-tab-pane name="receiving" :label="`已收货(${orderChartType.receiving || 0})`"></el-tab-pane>
-        <el-tab-pane name="complete" :label="`已完成(${orderChartType.complete || 0})`"></el-tab-pane>
-        <el-tab-pane name="refunded" :label="`已退款(${orderChartType.refunded || 0})`"></el-tab-pane>
-        <el-tab-pane name="cancel" :label="`已取消(${orderChartType.cancel || 0})`"></el-tab-pane>
-        <el-tab-pane name="deleted" :label="`已删除(${orderChartType.deleted || 0})`"></el-tab-pane>
-      </el-tabs>
-      <div class="mt5">
-        <el-button size="small" @click="exports" v-hasPermi="['platform:export:order:excel']">导出</el-button>
-      </div>
-      <el-table
-        v-loading="listLoading"
-        :data="tableData.data"
-        size="small"
-        highlight-current-row
-        :row-key="
-          (row) => {
-            return row.orderNo;
-          }
-        "
-        class="mt20"
-      >
-        <el-table-column label="订单编号" min-width="220" v-if="checkedCities.includes('订单编号')">
-          <template slot-scope="scope">
-            <div class="acea-row">
-              <font v-show="scope.row.type === 1" class="mr5">[秒杀]</font>
-              <font v-show="scope.row.type === 2" class="mr5">[拼团]</font>
-              <span
-                style="display: block"
-                v-text="scope.row.orderNo"
-              />
-            </div>
-           <div class="flex">
-              <span class="colorPrompt" v-show="parseInt(scope.row.refundStatus) > 0" style="display: block">{{
-                  scope.row.refundStatus | orderRefundStatusFilter
-                }}</span>
-             <span v-show="scope.row.refundStatus==2" class="colorPrompt">{{ `(已退款 ${scope.row.refundNum} / 购买 ${scope.row.totalNum})`}}</span>
-           </div>
-            <span v-show="scope.row.isUserDel" class="colorPrompt" style="display: block">用户已删除</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="merName" label="商户名称" min-width="150" v-if="checkedCities.includes('商户名称')" />
-        <el-table-column prop="nickName" label="用户昵称" min-width="150" v-if="checkedCities.includes('用户昵称')">
-          <template slot-scope="scope">
-            <span :class="scope.row.isLogoff == true ? 'colorPrompt' : ''">{{ scope.row.nickName }}</span>
-            <span :class="scope.row.isLogoff == true ? 'colorPrompt' : ''" v-if="scope.row.isLogoff == true">|</span>
-            <span v-if="scope.row.isLogoff == true" class="colorPrompt">(已注销)</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="payPrice" label="实际支付" min-width="80" v-if="checkedCities.includes('实际支付')" />
-        <el-table-column label="支付方式" min-width="80" v-if="checkedCities.includes('支付方式')">
-          <template slot-scope="scope">
-            <span>{{ scope.row.payType | payTypeFilter }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="订单状态" min-width="100" v-if="checkedCities.includes('订单状态')">
-          <template slot-scope="scope">
-            <span class="textE93323 tag-background notStartTag tag-padding" v-if="scope.row.refundStatus === 3"
-              >已退款</span
-            >
-            <span
-              :class="scope.row.status < 5 ? 'doingTag' : 'endTag'"
-              class="tag-background tag-padding"
-              v-else-if="
-                scope.row.groupBuyRecordStatus == 99 || scope.row.status == 9 || scope.row.groupBuyRecordStatus == 10
-              "
-              >{{ scope.row.status | orderStatusFilter }}</span
-            >
-            <span class="textE93323 tag-background notStartTag tag-padding" v-else>{{
-              scope.row.groupBuyRecordStatus == 0 ? '拼团中' : '拼团失败'
-            }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="createTime" label="下单时间" min-width="140" v-if="checkedCities.includes('下单时间')" />
-        <el-table-column v-if="checkPermi(['platform:order:info'])" width="70" fixed="right">
-          <template slot="header">
-            <p>
-              <span style="padding-right: 5px">操作</span>
-              <i class="el-icon-setting" @click="handleAddItem"></i>
-            </p>
-          </template>
-          <template slot-scope="scope">
-            <a v-if="scope.row.groupBuyRecordStatus != 0" @click="onOrderDetails(scope.row.orderNo)"> 详情</a>
-          </template>
-        </el-table-column>
-      </el-table>
-      <div class="block">
-        <el-pagination
-          background
-          :page-sizes="[20, 40, 60, 80]"
-          :page-size="tableFrom.limit"
-          :current-page="tableFrom.page"
-          layout="total, sizes, prev, pager, next, jumper"
-          :total="tableData.total"
-          @size-change="handleSizeChange"
-          @current-change="pageChange"
-        />
-      </div>
-    </el-card>
-    <div class="card_abs" v-show="card_select_show">
-      <template>
-        <div class="cell_ht">
-          <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange"
-            >全选</el-checkbox
-          >
-          <el-button type="text" @click="checkSave()">保存</el-button>
-        </div>
-        <el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
-          <el-checkbox v-for="item in columnData" :label="item" :key="item" class="check_cell">{{ item }}</el-checkbox>
-        </el-checkbox-group>
-      </template>
-    </div>
-
-    <!--详情-->
-    <details-from ref="orderDetail" :orderNo="orderNo" />
-  </div>
-</template>
-
-<script>
-// +---------------------------------------------------------------------
-// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
-// +---------------------------------------------------------------------
-// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
-// +---------------------------------------------------------------------
-// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
-// +---------------------------------------------------------------------
-// | Author: CRMEB Team <admin@crmeb.com>
-// +---------------------------------------------------------------------
-import { orderStatusNumApi, orderListApi, orderExcelApi } from '@/api/order';
-import detailsFrom from '@/components/OrderDetail';
-import merchantName from '@/components/merchantName';
-import { isWriteOff } from '@/utils';
-import { checkPermi } from '@/utils/permission'; // 权限判断函数
-export default {
-  name: 'orderFastMail',
-  components: {
-    detailsFrom,
-    merchantName,
-  },
-  data() {
-    return {
-      options: [
-        {
-          value: 0,
-          label: '全部',
-        },
-        {
-          value: 2,
-          label: '商城订单',
-        },
-        {
-          value: 1,
-          label: '视频号订单',
-        },
-      ],
-      RefuseVisible: false,
-      RefuseData: {},
-      orderNo: '',
-      refundVisible: false,
-      refundData: {},
-      dialogVisibleJI: false,
-      tableDataLog: {
-        data: [],
-        total: 0,
-      },
-      tableFromLog: {
-        page: 1,
-        limit: 10,
-        orderNo: 0,
-      },
-      LogLoading: false,
-      isCreate: 1,
-      editData: null,
-      dialogVisible: false,
-      tableData: {
-        data: [],
-        total: 0,
-      },
-      listLoading: true,
-      tableFrom: {
-        status: 'all',
-        dateLimit: '',
-        orderNo: '',
-        page: 1,
-        limit: 20,
-        merId: null,
-        type: '',
-        searchType: 'all',
-        content: '',
-      },
-      orderChartType: {},
-      timeVal: [],
-      fromList: this.$constants.fromList,
-      fromType: [
-        { value: '', text: '全部' },
-        { value: '0', text: '普通' },
-        { value: '1', text: '秒杀' },
-        { value: '2', text: '拼团' },
-      ],
-      selectionList: [],
-      ids: '',
-      orderids: '',
-      cardLists: [],
-      isWriteOff: isWriteOff(),
-      proType: 0,
-      active: false,
-      card_select_show: false,
-      checkAll: false,
-      checkedCities: ['订单编号', '商户名称', '用户昵称', '实际支付', '支付方式', '订单状态', '下单时间'],
-      columnData: ['订单编号', '商户名称', '用户昵称', '实际支付', '支付方式', '订单状态', '下单时间'],
-      isIndeterminate: true,
-    };
-  },
-  mounted() {
-    if (checkPermi(['platform:order:page:list'])) this.getList();
-    if (checkPermi(['platform:order:status:num'])) this.getOrderStatusNum();
-  },
-  methods: {
-    checkPermi,
-    getMerId(id) {
-      this.tableFrom.merId = id;
-      this.handleSearchList();
-    },
-    resetForm(formValue) {
-      this.dialogVisible = false;
-    },
-    handleReset() {
-      this.tableFrom.content = '';
-      this.tableFrom.searchType = 'all';
-      this.tableFrom.status = 'all';
-      this.tableFrom.dateLimit = '';
-      this.tableFrom.orderNo = '';
-      this.tableFrom.page = 1;
-      this.tableFrom.merId = null;
-      this.tableFrom.type = '';
-      this.tableFrom.searchType = 'all';
-      this.tableFrom.content = '';
-      this.timeVal = [];
-      this.handleSearchList();
-    },
-    handleSearchList() {
-      this.tableFrom.page = 1;
-      this.getList();
-      this.getOrderStatusNum();
-    },
-    // 详情
-    onOrderDetails(id) {
-      this.orderNo = id;
-      this.$refs.orderDetail.getDetail(id);
-      this.$refs.orderDetail.getOrderInvoiceList(id);
-      this.$refs.orderDetail.dialogVisible = true;
-    },
-    handleClose() {
-      this.dialogVisible = false;
-    },
-    // 选择时间
-    selectChange(tab) {
-      this.timeVal = [];
-      this.tableFrom.page = 1;
-      this.getList();
-      this.getOrderStatusNum();
-    },
-    // 具体日期
-    onchangeTime(e) {
-      this.timeVal = e;
-      this.tableFrom.dateLimit = e ? this.timeVal.join(',') : '';
-      this.tableFrom.page = 1;
-      this.getList();
-      this.getOrderStatusNum();
-    },
-    // 列表
-    getList() {
-      this.listLoading = true;
-      orderListApi(this.tableFrom)
-        .then((res) => {
-          this.tableData.data = res.list || [];
-          this.tableData.total = res.total;
-          this.listLoading = false;
-          this.checkedCities = this.$cache.local.has('order_stroge')
-            ? this.$cache.local.getJSON('order_stroge')
-            : this.checkedCities;
-        })
-        .catch(() => {
-          this.listLoading = false;
-        });
-    },
-    // 获取各状态数量
-    getOrderStatusNum() {
-      let data = Object.assign({}, this.tableFrom);
-      delete data.page;
-      delete data.limit;
-      delete data.status;
-      orderStatusNumApi(data).then((res) => {
-        this.orderChartType = res;
-      });
-    },
-    pageChange(page) {
-      this.tableFrom.page = page;
-      this.getList();
-    },
-    handleSizeChange(val) {
-      this.tableFrom.limit = val;
-      this.getList();
-    },
-    exports() {
-      let data = {
-        dateLimit: this.tableFrom.dateLimit,
-        orderNo: this.tableFrom.orderNo,
-        status: this.tableFrom.status,
-        type: this.tableFrom.type,
-        merId: this.tableFrom.merId,
-      };
-      orderExcelApi(data).then((res) => {
-        window.open(res.fileName);
-      });
-    },
-    handleAddItem() {
-      if (this.card_select_show) {
-        this.$set(this, 'card_select_show', false);
-      } else if (!this.card_select_show) {
-        this.$set(this, 'card_select_show', true);
-      }
-    },
-    handleCheckAllChange(val) {
-      this.checkedCities = val ? this.columnData : [];
-      this.isIndeterminate = false;
-    },
-    handleCheckedCitiesChange(value) {
-      let checkedCount = value.length;
-      this.checkAll = checkedCount === this.columnData.length;
-      this.isIndeterminate = checkedCount > 0 && checkedCount < this.columnData.length;
-    },
-    checkSave() {
-      this.card_select_show = false;
-      this.$modal.loading('正在保存到本地,请稍候...');
-      this.$cache.local.setJSON('order_stroge', this.checkedCities);
-      setTimeout(this.$modal.closeLoading(), 1000);
-    },
-  },
-};
-</script>
-<style lang="scss" scoped>
-font {
-  color: var(--prev-color-primary);
-}
-
-.ml5 {
-  margin-left: 5px;
-}
-
-.el-table__body {
-  width: 100%;
-  table-layout: fixed !important;
-}
-
-.demo-table-expand {
-  ::v-deeplabel {
-    width: 83px !important;
-  }
-}
-
-.refunding {
-  span {
-    display: block;
-  }
-}
-
-.el-icon-arrow-down {
-  font-size: 12px;
-}
-
-.tabBox_tit {
-  font-size: 12px !important;
-  /*margin: 0 2px 0 10px;*/
-  letter-spacing: 1px;
-  /*padding: 5px 0;*/
-  box-sizing: border-box;
-}
-
-.text_overflow {
-  white-space: nowrap;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  max-width: 400px;
-}
-
-.pup_card {
-  width: 200px;
-  border-radius: 5px;
-  padding: 5px;
-  box-sizing: border-box;
-  font-size: 12px;
-  line-height: 16px;
-}
-
-.flex-column {
-  display: flex;
-  flex-direction: column;
-}
-
-.relative {
-  position: relative;
-}
-
-.card_abs {
-  position: absolute;
-  padding-bottom: 15px;
-  top: 300px;
-  right: 40px;
-  width: 200px;
-  background: #fff;
-  z-index: 99999;
-  box-shadow: 0px 0px 14px 0px rgba(0, 0, 0, 0.1);
-}
-
-.cell_ht {
-  height: 50px;
-  padding: 15px 20px;
-  box-sizing: border-box;
-  border-bottom: 1px solid #eeeeee;
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-}
-
-.check_cell {
-  width: 100%;
-  padding: 15px 20px 0;
-}
-
-::v-deep .el-checkbox__input.is-checked + .el-checkbox__label {
-  color: #606266;
-}
-
-.tag-background {
-  padding: 3px 8px;
-}
-</style>

+ 14 - 0
mer_uniapp/pages/rider_index/index.vue

@@ -78,9 +78,23 @@
 				// 	animationType: 'none' // 关闭默认的滑动效果
 				// });
 			},
+			getUserInfo() {
+				this.$store.dispatch('USERINFO').then(res => {
+					this.userInfo = res;
+					console.log(this.userInfo)
+					if(!this.userInfo.isRider){
+						this.$util.navigateTo("/pages/users/user_rider/index");
+						this.$util.Tips({
+							title: "您未注册,请先注册成为骑手"
+						}); 
+					
+					 }
+				});
+			},
 		},
 		onLoad(options) {
 			let that = this
+			this.getUserInfo();
 			// 隐藏TabBar
 			uni.hideTabBar({});
 			uni.getSystemInfo({

+ 787 - 475
mer_uniapp/pages/user/index.vue

@@ -1,130 +1,208 @@
 <template>
-	<view>
-		<!-- 状态栏高度 -->
-		<view :style="{ height: `${statusBarHeight}px` }"></view>
-
-		<!-- 导航栏 -->
-		<view :style="{ height: `${navigationBarHeight}px`,lineHeight: `${navigationBarHeight}px`}" class="order-nav">
-			个人中心
+	<view :data-theme="theme">
+		<!-- #ifdef MP -->
+		<view class="cart_nav" :style='"height:"+navH+"rpx;"'>
+			<nav-bar iconColor='#fff' ref="navBarRef"  navTitle="个人中心">
+			</nav-bar>
 		</view>
-
-		<view style="background-color: #FF6702;height: 60rpx;"></view>
-
-		<view class="card">
-			<view class="card-left">
-				<view class="name" v-if="!isLogin" @tap="openAuto">
-					<image class="avatar tui-skeleton-rect" :src='userInfo.avatar' v-if="userInfo.avatar" @click="goEdit()"></image>
-					<image v-else class="avatar tui-skeleton-rect" :src="urlDomain+'crmebimage/presets/morenT.png'" mode="" @click="goEdit()">
-					</image>
-					<view class="username">请点击登录</view>
-				</view>
-
-				<template v-else>
-					<image class="avatar tui-skeleton-rect" :src='userInfo.avatar' v-if="userInfo.avatar" @click="goEdit()"></image>
-					<image v-else class="avatar tui-skeleton-rect" :src="urlDomain+'crmebimage/presets/morenT.png'" mode="" @click="goEdit()">
-					</image>
-					<view class="username">
-						{{userInfo.nickname}}
-						<!-- <image src="/static/img/ic-code.png" class="code"></image> -->
-					</view>
-
-					<view class="phone-info">
-						<text>绑定手机号:{{userInfo.phone}}</text>
-						<image src="/static/img/ic-copy.png">
-						</image>
-					</view>
-				</template>
-
-			</view>
-
-			<view class="card-right">
-				<view class="card-content">
-					<!--view class="content-item">
-						<img class="content-icon" src="/static/img/ic-tickets.png" alt="我的票劵">
-						<view class="content-text1">我的票劵</view>
-					</view>
-					<view class="content-item" @click="menusTap('/pages/goods/order_list/index')">
-						<img class="content-icon" src="/static/img/ic-order.png" alt="我的订单">
-						<view class="content-text2">我的订单</view>
+		<!-- #endif -->
+		<tui-skeleton v-if="showSkeleton"></tui-skeleton>
+		<view class="new-users copy-data tui-skeleton">
+			<view class="mid" style="flex:1;overflow: hidden;">
+				<scroll-view scroll-y="true">
+					<view class="head borderPad">
+						<view class="bg"
+							:style="{'background-image': `url(${urlDomain}crmebimage/presets/user_bg.png)`}">
+							<view class="user-card">
+								<view class="user-info">
+									<image class="avatar tui-skeleton-rect" :src='userInfo.avatar'
+										v-if="userInfo.avatar" @click="goEdit()"></image>
+									<image v-else class="avatar tui-skeleton-rect"
+										:src="urlDomain+'crmebimage/presets/morenT.png'" mode="" @click="goEdit()">
+									</image>
+									<view class="info">
+										<view class="name" v-if="!isLogin" @tap="openAuto">
+											请点击登录
+										</view>
+										<view class="name" v-if="userInfo && uid">
+											<view @click="goEdit()">
+												{{userInfo && userInfo.nickname && uid ? userInfo.nickname : ''}}
+											</view>
+											<view class="vip" v-if="userInfo.vipIcon" @click="goEdit()">
+												<image :src="userInfo.vipIcon" alt=""></image>
+											</view>
+											<view class="vip" v-if="userInfo.isPaidMember"
+												@click="menusTap('/pages/activity/vip_paid/index')">
+												<image
+													:style="{'background-image': `url(${urlDomain}crmebimage/presets/viptu.png)`}">
+												</image>
+											</view>
+										</view>
+										<view class="num mt10" v-if="userInfo && userInfo.phone && uid"
+											@click="goEdit()">
+											<view class="num-txt">{{userInfo.phone}}</view>
+										</view>
+									</view>
+									<view class="app_set" @click="handleUserSetting()">
+										<text class="iconfont icon-shezhi"></text>
+									</view>
+								</view>
+								<view class="num-wrapper tui-skeleton-rect">
+									<view class="num-item" @click="goMenuPage('/pages/merchant/user_integral/index')">
+										<text class="num">{{userInfo.integral && uid ? userInfo.integral: 0}}</text>
+										<view class="txt">积分</view>
+									</view>
+									<view class="num-item" @click="goMenuPage('/pages/users/user_coupon/index')">
+										<text
+											class="num">{{userInfo.couponCount && uid ? userInfo.couponCount : 0}}</text>
+										<view class="txt">优惠券</view>
+									</view>
+									<view class="num-item"
+										@click="goMenuPage('/pages/goods/user_goods_collection/index')">
+										<text
+											class="num">{{userInfo.collectCount && uid ? userInfo.collectCount : 0}}</text>
+										<view class="txt">收藏</view>
+									</view>
+									<view class="num-item" @click="goMenuPage('/pages/goods/browsing_history/index')">
+										<text class="num">{{userInfo.browseNum && uid ? userInfo.browseNum:0}}</text>
+										<view class="txt">浏览记录</view>
+									</view>
+								</view>
+							</view>
+						</view>
+						<view v-show="userInfo.paidMemberPaidEntrance===1"
+							@click="menusTap('/pages/activity/vip_paid/index')" class="h-128 svip-box px-30"
+							:style="{'background-image': `url(${urlDomain}crmebimage/presets/cardbj.png)`}">
+							<view class="acea-row row-middle row-between h-94">
+								<view class="acea-row">
+									<view class="w-34 h-28 no-repeat vipicon"
+										:style="{'background-image': `url(${urlDomain}crmebimage/presets/huangguan.png)`}">
+									</view>
+									<view class="f-s-24 text ml-12">加入SVIP畅享精彩</view>
+								</view>
+								<view class="acea-row row-middle">
+									<view class="f-s-24 text mr10">{{userInfo.isPaidMember?'去查看':'去开通'}}</view>
+									<text class="iconfont icon-gengduo3 text f-s-20"></text>
+								</view>
+							</view>
+						</view>
+						<view class="order-wrapper tui-skeleton-rect"
+							:class="userInfo.paidMemberPaidEntrance===1?'mt34rpx':''">
+							<view class="order-hd flex">
+								<view class="left">订单中心</view>
+								<view class="right flex" @click="menusTap('/pages/goods/order_list/index')">查看全部
+									<text class="iconfont icon-xiangyou"></text>
+								</view>
+							</view>
+							<view class="order-bd">
+								<block v-for="(item,index) in orderMenu" :key="index">
+									<view class="order-item" @click="menusTap(item.url)">
+										<view class="pic">
+											<text class="iconfont pic_status" :class="item.img"></text>
+											<text class="order-status-num" v-if="item.num > 0">{{ item.num }}</text>
+										</view>
+										<view class="txt tui-skeleton-rect">{{item.title}}</view>
+									</view>
+								</block>
+							</view>
+						</view>
 					</view>
-					<view class="content-item">
-						<img class="content-icon" src="/static/img/ic-gold.png" alt="我的金币">
-						<view class="content-text3">我的金币</view>
-					</view-->
-					<view class="app_set" @click="goEdit()">
-							<text class="iconfont icon-shezhi">设置</text>
+					<view class="contenBox borderPad" id="pageIndex">
+						<!-- 轮播 -->
+						<view class="slider-wrapper tui-skeleton-rect" @click.native="bindEdit('userBanner')"
+							v-if="centerBanner != null && centerBanner.length > 0">
+							<swiper v-if="centerBanner.length>0" indicator-dots="true" :autoplay="autoplay"
+								:circular="circular" :interval="interval" :duration="duration"
+								indicator-color="rgba(255,255,255,0.6)" indicator-active-color="#fff">
+								<block v-for="(item,index) in centerBanner" :key="index">
+									<swiper-item class="borRadius14">
+										<image :src="item.pic" class="slide-image" @click="navito(item.url)"></image>
+									</swiper-item>
+								</block>
+							</swiper>
+						</view>
+						<!-- 会员菜单 -->
+						<view class="user-menus mt20" @click.native="bindEdit('userMenus')">
+							<view class="menu-title">我的服务</view>
+							<view class="list-box">
+								<block v-for="(item,index) in centerMenu" :key="index">
+									<view class="item tui-skeleton-rect" @click="menusTap(item.url)"
+										v-if="!(item.url =='/pages/service/index' || (item.url =='/pages/users/user_spread_user/index' && !userInfo.isPromoter)||(!isEmployee&&item.url=='/pages/admin/work/index'))">
+										<image :src="item.pic"></image>
+										<text>{{item.name}}</text>
+									</view>
+								</block>
+								<!-- #ifndef MP -->
+								<view class="item" @click="kefuClick">
+									<image :src="servicePic"></image>
+									<text>联系客服</text>
+								</view>
+								<!-- #endif -->
+								<!-- #ifdef MP -->
+								<button class="item" hover-class='none' @click="kefuClick"
+									v-if="chatConfig.telephone_service_switch === 'true'">
+									<image :src="servicePic"></image>
+									<text>联系客服</text>
+								</button>
+								<button class="item" open-type='contact' hover-class='none' v-else>
+									<image :src="servicePic"></image>
+									<text>联系客服</text>
+								</button>
+								<!-- #endif -->
+							</view>
+						</view>
+						<!-- 商家管理 -->
+						<view class="user-menus mt20" v-if="isEmployee">
+							<view class="menu-title">店铺管理</view>
+							<view class="list-box">
+								<view class="item" @click="toggle('bottom')">
+									<image :src="urlDomain+'crmebimage/presets/adminImg/sjgl.png'"></image>
+									<text>商家管理</text>
+								</view>
+							</view>
+						</view>
 					</view>
-				</view>
-					
-				<!-- <view class="profile-link">
-					<text>个人中心</text>
-					<img src="/static/img/ic-right.png" />
-				</view> -->
+					<image :src="copyImage" alt="" class='support'></image>
+				</scroll-view>
 			</view>
 		</view>
-		
-		<view style="position: relative;top: -90rpx;">
-			<view class="item-settled">
-				<image @tap="menusTap('/pages/users/settled/index')" src="/static/img/ic-settled-left.png" style="width: 350rpx;height: 116rpx;"></image>
-
-				<image src="/static/img/ic-bg-line.png" style="width: 10rpx;height: 154rpx;margin: 0 20rpx;"></image>
-				<image v-if="!userInfo.isRider" @tap="menusRider('/pages/users/user_rider/index')" src="/static/img/ic-settled-right.png"
-				 style="width: 350rpx;height: 116rpx;"></image>
-				<image v-else @tap="menusRider('/pages/rider_index/index', true)" src="/static/img/go-shipping.png" style="width: 350rpx;height: 116rpx;"></image>
-			</view>
-
-			<view class="order-box">
-				<view class="order-hd flex">
-					<view class="left">订单中心</view>
-					<view class="right flex" @click="menusTap('/pages/goods/order_list/index')">查看全部
-						<text class="iconfont icon-xiangyou"></text>
+		<!-- <view v-if="bottomNavigationIsCustom" class="footerBottom"></view> -->
+		<!-- <pageFooter></pageFooter> -->
+		<uni-popup ref="popup" type="bottom" background-color="rgba(0,0,0,0)" border-radius="10px 10px 0 0">
+			<view class="popup-content">
+				<view class="item" v-for="(item,index) in merchantEmployeeList" :key="index"
+					:class="{bottom_border:index!=merchantEmployeeList.length-1}">
+					<view class="item_main">
+						<image :src="item.currentMerchant.avatar" mode="" class="item_img"></image>
+						<view class="item_name" :class="{nameColor:item.merId==selectMerId}">
+							{{item.currentMerchant.name}}</view>
 					</view>
+					<text v-if="item.merId==selectMerId" class="iconfont icon-xuanzhong11 icon-size icon_color"></text>
+					<text v-else class="iconfont icon-weixuan icon-size" @click="radioChange(item)"></text>
 				</view>
-				<view class="order-bd">
-					<block v-for="(item,index) in orderMenu" :key="index">
-						<view class="order-item" @click="menusTap(item.url)">
-							<view class="pic">
-								<text class="iconfont pic_status" :class="item.img"></text>
-								<text class="order-status-num" v-if="item.num > 0">{{ item.num }}</text>
-							</view>
-							<view class="txt tui-skeleton-rect">{{item.title}}</view>
-						</view>
-					</block>
-				</view>
-			</view>
-
-			<view class="item-features" v-if="isLogin">
-				<view class="item-features-title">我的功能</view>
-				<div class="grid-container">
-					<!-- 示例:12 个格子(3行x4列) -->
-					<div class="grid-item" v-for="item in featuresList" :key="item.id" @click="menusTap(item.url)">
-						<img class="grid-img" :src="item.icon">
-						<div class="grid-text">{{item.text}}</div>
-					</div>
-				</div>
 			</view>
-		    <!-- 商家管理 -->
-		    <view class="item-features" v-if="isLogin && isEmployee">
-		    	<view class="item-features-title">店铺管理</view>
-		    	<view class="list-box">
-		    		<view class="item" @click="toggle('bottom')">
-		    			<image :src="urlDomain+'crmebimage/presets/adminImg/sjgl.png'"></image>
-		    			<text>商家管理</text>
-		    		</view>
-		    	</view>
-		    </view>
-		</view>
+		</uni-popup>
 	</view>
 </template>
-
 <script>
-	var statusBarHeight = uni.getSystemInfoSync().statusBarHeight + 'px';
-	let app = getApp();
+	let sysHeight = uni.getSystemInfoSync().statusBarHeight + 'px';
+	import Cache from '@/utils/cache';
+	import navBar from '@/components/navBar';
+	import {
+		goPage
+	} from '@/libs/iframe.js'
+	import {
+		BACK_URL,
+		USER_INFO
+	} from '@/config/cache';
 	import {
 		userCenterInfo,
 		copyrightImageApi
 	} from '@/api/user.js';
-	import Cache from '@/utils/cache';
+	import {
+		MerchantBelongListApi,
+		merchantActive
+	} from '@/api/work.js';
 	import {
 		orderNum
 	} from '@/api/order.js';
@@ -135,17 +213,38 @@
 		mapGetters
 	} from "vuex";
 	import {
-		BACK_URL
-	} from '@/config/cache';
+		getCityList
+	} from "@/utils";
+	import {
+		tokenIsExistApi
+	} from '@/api/api.js';
+	// #ifdef H5
+	import Auth from '@/libs/wechat';
+	// #endif
+	import {
+		getShare
+	} from '@/api/public.js';
+	import {
+		setThemeColor
+	} from '@/utils/setTheme.js'
 	import animationType from '@/utils/animationType.js'
+	import {
+		chatConfig
+	} from '@/utils/consumerType.js'
+	import tuiSkeleton from '@/components/base/tui-skeleton.vue';
+	import pageFooter from "@/components/pageFooter/index.vue";
+	const app = getApp();
 	export default {
-		computed: mapGetters(['isLogin','merchantEmployeeList', 'isEmployee', 'selectMerId']),
+		computed: mapGetters(['isLogin', 'chatUrl', 'uid', 'globalData', 'bottomNavigationIsCustom',
+			'merchantEmployeeList', 'isEmployee', 'selectMerId'
+		]),
 		data() {
 			return {
-				statusBarHeight: app.globalData.statusBarHeight,
-				navigationBarHeight: 0,
-				userInfo: {},
+				scrollHeight: 0,
+				triggered: false,
+				isRefresher: false, //下拉刷新状态
 				urlDomain: this.$Cache.get("imgHost"),
+				showSkeleton: true, //骨架屏显示隐藏
 				orderMenu: [{
 						img: 'icon-daifukuan',
 						title: '待付款',
@@ -183,96 +282,109 @@
 						num: 0
 					},
 				],
-				featuresList: [{
-						id: 1,
-						icon: '/static/img/ic-express.png',
-						text: '我的快递',
-						url: '/pages/substitute_fast_mail/my_fast_mail/index'
-					},
-					{
-						id: 2,
-						icon: '/static/img/ic-address.png',
-						text: '通用地址',
-						url: '/pages/address/user_address_list/index'
-					},
-					{
-						id: 3,
-						icon: '/static/img/ic-comments.png',
-						text: '我的评论',
-						url: ''
-					},
-					{
-						id: 4,
-						icon: '/static/img/ic-collection.png',
-						text: '我的收藏',
-						url: '/pages/goods/user_goods_collection/index'
-					},
-					{
-						id: 5,
-						icon: '/static/img/ic-buy.png',
-						text: '我的团购',
-						url: ''
-					},
-					{
-						id: 6,
-						icon: '/static/img/ic-vouchers.png',
-						text: '我的卡券',
-						url: '/pages/users/user_coupon/index'
-					},
-					{
-						id: 7,
-						icon: '/static/img/ic-distribution.png',
-						text: '我的分销',
-						url: '/pages/users/user_spread_user/index'
-					},
-					{
-						id: 8,
-						icon: '/static/img/ic-friend.png',
-						text: '邀请好友',
-						url: ''
-					},
-					// {
-					// 	id: 9,
-					// 	icon: '/static/img/ic-feedback.png',
-					// 	text: '帮助反馈',
-					// 	url: ''
-					// },
-					{
-						id: 9,
-						icon: '/static/img/ic-feedback.png',
-						text: '我的账户',
-						url: '/pages/users/user_money/index'
-					},
-					{
-						id: 10,
-						icon: '/static/img/ic-security-settings.png',
-						text: '安全设置',
-						url: '/pages/users/user_setting/index'
-					}
-				],
+				centerBanner: [],
+				userMenu: [],
+				autoplay: true,
+				circular: true,
+				interval: 3000,
+				duration: 500,
+				isAuto: false, //没有授权的不会自动授权
+				isShowAuth: false, //是否隐藏授权
+				orderStatusNum: {},
+				centerMenu: [],
+				wechatUrl: [],
+				servicePic: '',
+				sysHeight: sysHeight,
+				// #ifdef MP
+				pageHeight: '100%',
+				// #endif
+				// #ifdef H5 || APP-PLUS
+				pageHeight: '',
+				// #endif
+				// #ifdef H5
+				isWeixin: Auth.isWeixin(),
+				//#endif
+				configApi: {}, //分享类容配置
+				theme: app.globalData.theme,
+				bgColor: '#e93323',
+				userInfo: {},
+				copyImage: '',
+				navH:''
 			}
 		},
-		onLoad(options) {
+		components: {
+			tuiSkeleton,
+			pageFooter,
+			navBar
+		},
+		onLoad() {
+			this.servicePic = this.urlDomain + 'crmebimage/presets/customer.png'
+			this.getTokenIsExist();
+			// #ifdef MP
+			this.navH = this.globalData.navHeight;
+			// #endif
+			// #ifndef MP
+			this.navH = 96;
+			// #endif
+			if (this.globalData.isIframe) {
+				setTimeout(() => {
+					let active;
+					document.getElementById('pageIndex').children.forEach(dom => {
+						dom.addEventListener('click', (e) => {
+							e.stopPropagation();
+							e.preventDefault();
+							if (dom === active) return;
+							dom.classList.add('borderShow');
+							active && active.classList.remove('borderShow');
+							active = dom;
+						})
+					})
+				});
+			}
+			// #ifdef APP-PLUS
+			setTimeout(()=>{
+			 	uni.setNavigationBarColor({
+			 		frontColor: '#ffffff',
+			 		backgroundColor:that.bgColor,   
+			 	});
+			 },500)
+			// #endif
 			let that = this;
-			//首页数据加载
-			// this.getIndexConfig();
-			// #ifdef MP-WEIXIN
-			// 获取微信胶囊的位置信息 width,height,top,right,left,bottom
-			const custom = wx.getMenuButtonBoundingClientRect()
-			// 导航栏高度(标题栏高度) = 胶囊高度 + (顶部距离 - 状态栏高度) * 2
-			this.navigationBarHeight = custom.height + (custom.top - this.statusBarHeight) * 2
-			// console.log("导航栏高度:"+this.globalData.navigationBarHeight)
+			// #ifdef H5 || APP-PLUS
+			that.$set(that, 'pageHeight', this.globalData.windowHeight);
 			// #endif
-
+			that.$set(that, 'centerMenu', this.globalData.centerMenu);
+			that.bgColor = setThemeColor();
 		},
 		onShow: function() {
 			if (this.isLogin) {
 				this.getUserCenterInfo();
 				this.getOrderData();
-				this.getMerchantList();
+				this.getMerchantList()
 			}
+			this.copyrightImage();
+			this.showSkeleton = false
+			let that = this;
+			if (!that.$Cache.get('cityList')) getCityList();
+			// #ifdef H5
+			uni.getSystemInfo({
+				success: function(res) {
+					that.pageHeight = res.windowHeight + 'px'
+				}
+			});
+			// #endif
+			// #ifdef MP
+			let query = uni.createSelectorQuery();
+			let dom = query.select('.new-users');
+			// #endif
 		},
 		methods: {
+			/**
+			 *  发现列表滑动中用到的方法
+			 */
+			onScroll() {
+				uni.$emit('scroll');
+			},
 			toggle(type) {
 				if (this.merchantEmployeeList.length == 1) {
 					merchantActive(this.merchantEmployeeList[0].merId).then(res => {
@@ -299,6 +411,83 @@
 					this.$refs.popup.open(type)
 				}
 			},
+			//选中商户
+			radioChange(item) {
+				let that = this
+				merchantActive(item.merId).then(res => {
+					if (res.code == 200) {
+						that.$store.commit('SET_MANAGER_TOKEN', {
+							managerToken: res.data.token
+						});
+						Cache.set('electrPrintingSwitch', res.data.electrPrintingSwitch);
+						that.$store.commit('SetSelectMerId', item.merId);
+						this.$store.commit('SetSelectMerchantRole', item.role);
+						this.$refs.popup.close()
+						uni.navigateTo({
+							url: '/pages/admin/work/index'
+						})
+					}
+				})
+			},
+			//获取商户列表
+			getMerchantList() {
+				let that = this
+				MerchantBelongListApi().then(res => {
+					if (this.selectMerId) {
+						let flag = res.data.find(item => item.merId === this.selectMerId);
+						!flag && that.$store.commit('CLEAR_SELECTMERID');
+					}
+					this.$store.commit("SetMerchantEmployeeList", res.data);
+				})
+			},
+			//校验token是否有效,true为有效,false为无效
+			getTokenIsExist() {
+				tokenIsExistApi().then(res => {
+					let tokenIsExist = res.data;
+					if (!tokenIsExist) {
+						this.$store.commit('UPDATE_LOGIN', '');
+						this.$store.commit('UPDATE_USERINFO', {});
+					}
+				})
+			},
+			copyrightImage() {
+				copyrightImageApi().then(res => {
+					if (res.data) {
+						this.copyImage = res.data;
+					} else {
+						this.copyImage = `${this.urlDomain}crmebimage/presets/support.png`;
+					}
+				}).catch(err => {
+					return this.$util.Tips({
+						title: err
+					})
+				});
+			},
+			bindEdit(name) {
+				if (this.globalData.isIframe) {
+					window.parent.postMessage({
+							name: name
+						},
+						'*'
+					);
+					return;
+				}
+			},
+			menusTap(url) {
+				if (!this.isLogin) {
+					this.openAuto();
+				} else {
+					if (url === '/pages/activity/vip_paid/index' && this.userInfo.paidMemberPaidEntrance === 0) return
+					this.$util.navigateTo(url);
+				}
+			},
+			//轮播图跳转
+			navito(url) {
+				this.$util.navigateTo(url);
+			},
+			kefuClick() {
+				chatConfig(this.$Cache.getItem('platChatConfig'));
+			},
 			getOrderData() {
 				let that = this;
 				orderNum().then(res => {
@@ -326,6 +515,14 @@
 					that.$set(that, 'orderMenu', that.orderMenu);
 				})
 			},
+			// 绑定手机
+			bindPhone() {
+				uni.navigateTo({
+					animationType: animationType.type,
+					animationDuration: animationType.duration,
+					url: '/pages/users/app_login/index'
+				})
+			},
 			/**
 			 * 
 			 * 获取个人中心详情
@@ -334,29 +531,45 @@
 				userCenterInfo().then(res => {
 					let data = res.data;
 					this.userInfo = data;
-					console.log(this, UserInfo)
-					// this.showSkeleton = false;
+					this.$store.commit("SETUID", data.id);
+					this.$store.commit("SetIsEmployee", data.isEmployee);
+					this.$set(this, 'centerMenu', data.centerMenu);
+					this.$store.commit('UPDATE_USERINFO', {
+						avatar: data.avatar,
+            nickname: data.nickname,
+						phone: data.phone
+					});
+					if (data.centerBanner) {
+						this.centerBanner = data.centerBanner
+					}
+					this.showSkeleton = false;
 				}).catch(err => {
-					// this.showSkeleton = false;
+					this.showSkeleton = false;
 				});
 			},
-			//获取商户列表
-			getMerchantList() {
-				let that = this
-				MerchantBelongListApi().then(res => {
-					if (this.selectMerId) {
-						let flag = res.data.find(item => item.merId === this.selectMerId);
-						!flag && that.$store.commit('CLEAR_SELECTMERID');
-					}
-					this.$store.commit("SetMerchantEmployeeList", res.data);
-				})
-			},
-			menusTap(url) {
-				if (!this.isLogin) {
+			// 编辑页面
+			goEdit() {
+				if (this.isLogin == false) {
 					this.openAuto();
 				} else {
-					if (url === '') return
-					this.$util.navigateTo(url);
+					uni.navigateTo({
+						animationType: animationType.type,
+						animationDuration: animationType.duration,
+						url: '/pages/users/user_info/index'
+					})
+				}
+			},
+			goMenuPage(url) {
+				if (this.isLogin) {
+					uni.navigateTo({
+						animationType: animationType.type,
+						animationDuration: animationType.duration,
+						url
+					})
+				} else {
+					// #ifdef MP
+					this.openAuto()
+					// #endif
 				}
 			},
 			// 打开授权
@@ -364,332 +577,431 @@
 				Cache.set(BACK_URL, '')
 				toLogin();
 			},
-			// 跳转骑手
-			menusRider(url, falg) {
+			// 去设置页面
+			handleUserSetting() {
 				if (!this.isLogin) {
-					this.openAuto();
-				} else {
-					if (url === '') return
-					falg ? uni.reLaunch({
-						url: url
-					}) : this.$util.navigateTo(url)
+					return this.openAuto();
 				}
+				uni.navigateTo({
+					url: '/pages/users/user_setting/index'
+				})
 			},
-			// 编辑页面
-			goEdit() {
-				if (this.isLogin == false) {
-					this.openAuto();
-				} else {
-					uni.navigateTo({
-						animationType: animationType.type,
-						animationDuration: animationType.duration,
-						url: '/pages/users/user_info/index'
-					})
-				}
+			shareApi: function() {
+				getShare().then(res => {
+					this.$set(this, 'configApi', res.data);
+					// #ifdef H5
+					this.setOpenShare(res.data);
+					// #endif
+				})
 			},
-		},
+			// 微信分享;
+			setOpenShare: function() {
+				let that = this;
+				if (that.$wechat.isWeixin()) {
+					let configAppMessage = {
+						desc: 'crmeb',
+						title: 'crmeb',
+						link: location.href,
+						imgUrl: ''
+					};
+					that.$wechat.wechatEvevt([
+							"updateAppMessageShareData",
+							"updateTimelineShareData",
+							"onMenuShareAppMessage",
+							"onMenuShareTimeline",
+						],
+						configAppMessage);
+				}
+			}
+		}
 	}
 </script>
 
 <style lang="scss" scoped>
-	.order-nav {
-		font-weight: 500;
-		font-size: 35rpx;
-		color: #FFFFFF;
-		background-color: #FF6702;
-		text-align: center;
+	.vipicon {
+		background-size: 100% 100%;
 	}
 
-	.item-settled {
-		background: linear-gradient(135deg, #FED0A7 0%, #FFF3E2 52%, #FAEDD3 100%);
-		border-radius: 8rpx;
-		padding: 20rpx;
-		box-shadow: 0 0 0 2rpx rgba(255, 220, 135, 1);
-		position: relative;
-		// top: -90rpx;
-		margin: 0 20rpx;
-		display: flex;
-		align-items: center;
-	}
-
-	.item-settled::after {
-		content: "";
-		position: absolute;
-		top: -2rpx;
-		left: -2rpx;
-		right: -2rpx;
-		bottom: -2rpx;
-		background: linear-gradient(200deg, rgba(255, 220, 135, 1), rgba(255, 172, 33, 1), rgba(255, 201, 24, 1));
-		border-radius: 10rpx;
-		z-index: -1;
-		pointer-events: none;
+	.mt34rpx {
+		margin-top: -34rpx;
 	}
 
-	.card {
-		position: relative;
-		display: flex;
-		/* 启用flex布局 */
-		box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1);
-		padding: 40rpx 30rpx 120rpx 30rpx;
-		box-sizing: border-box;
-		background: linear-gradient(225deg, #ECF3FE 0%, #FEFEFE 100%);
-		border-radius: 23rpx;
-		top: -20rpx;
-	}
+	.svip-box {
+		width: 702rpx;
+		background-repeat: no-repeat;
+		background-size: 702rpx 128rpx;
 
-	.card-left {
-		position: relative;
+		.text {
+			color: #FFD89C;
+		}
 	}
 
-	.card-right {
-		flex: 1;
+	.num-txt {
+		padding: 6rpx 20rpx;
+		border-radius: 36rpx;
+		background: rgba(255, 255, 255, 0.2);
 	}
-	.app_set {
-						color: #fff;
-						width: 140rpx;
-						height: 110rpx;
-						text-align: right;
-						line-height: 110rpx;
 
-						.icon-shezhi {
-							font-size: 36rpx;
-						}
-					}
-	.avatar {
-		position: absolute;
-		top: -80rpx;
-		left: 0;
-		width: 131rpx;
-		height: 131rpx;
-		background-color: #D8D8D8;
-		border: 4rpx solid #FFFFFF;
-		border-radius: 50%;
-		object-fit: cover;
+	page,
+	body {
+		height: 100%;
+		margin: 0;
 	}
 
-	.username {
-		margin-top: 70rpx;
-		color: #141414;
-		font-size: 35rpx;
-		font-weight: bold;
+	.ma .mp-header {
+		@include main_bg_color(theme);
 	}
 
-	.code {
-		width: 31rpx;
-		height: 31rpx;
-		margin-left: 20rpx;
+	.bg {
+		width: 100%;
+		background-repeat: no-repeat;
+		background-size: 100% 100%;
 	}
 
-	.card-content {
-		display: flex;
-		justify-content: space-between;
+	.support {
+		width: 219rpx;
+		height: 74rpx;
+		margin: 20rpx auto;
+		display: block;
 	}
 
-	.content-item {
+	.new-users {
 		display: flex;
 		flex-direction: column;
-		align-items: center;
-		width: 33%;
-	}
-
-	.content-icon {
-		width: 70rpx;
-		height: 70rpx;
-		margin-bottom: 15rpx;
-	}
+		height: 100%;
+
+		.sys-head {
+			position: relative;
+			width: 100%;
+			background: linear-gradient(90deg, $bg-star1 0%, $bg-end1 100%);
+
+			.sys-title {
+				z-index: 10;
+				position: relative;
+				height: 43px;
+				text-align: center;
+				line-height: 43px;
+				font-size: 36rpx;
+				color: #FFFFFF;
+			}
+		}
 
-	.content-text1 {
-		font-size: 23rpx;
-		background: linear-gradient(90deg, #FFB908 0%, #DC7A11 100%);
-		-webkit-background-clip: text;
-		background-clip: text;
-		color: transparent;
-	}
+		.head {
+			width: 100%;
+			background-repeat: no-repeat;
+			background-size: 100% 100%;
+			@include index-gradient(theme);
+
+			.user-card {
+				width: 100%;
+				margin: 0 auto;
+				padding: 35rpx 0 40rpx 0;
+
+				.user-info {
+					z-index: 20;
+					display: flex;
+					align-items: center;
+					color: #fff;
+
+					.avatar {
+						width: 120rpx;
+						height: 120rpx;
+						border-radius: 50%;
+					}
 
-	.content-text2 {
-		font-size: 23rpx;
-		background: linear-gradient(90deg, #93B0FF 0%, #1B4EFF 100%);
-		-webkit-background-clip: text;
-		background-clip: text;
-		color: transparent;
-	}
+					.app_set {
+						color: #fff;
+						width: 140rpx;
+						height: 110rpx;
+						text-align: right;
+						line-height: 110rpx;
 
-	.content-text3 {
-		font-size: 23rpx;
-		background: linear-gradient(90deg, #F4D600 0%, #FF9100 100%);
-		-webkit-background-clip: text;
-		background-clip: text;
-		color: transparent;
-	}
+						.icon-shezhi {
+							font-size: 36rpx;
+						}
+					}
 
-	.phone-info {
-		font-size: 21rpx;
-		padding-top: 10rpx;
-	}
+					.info {
+						flex: 1;
+						display: flex;
+						flex-direction: column;
+						justify-content: space-between;
+						margin-left: 20rpx;
+						padding: 15rpx 0;
+
+						.name {
+							display: flex;
+							align-items: center;
+							color: #fff;
+							font-size: 31rpx;
+
+							.vip {
+								display: flex;
+								align-items: center;
+								border-radius: 18px;
+								font-size: 20rpx;
+								margin-left: 14rpx;
+
+								image {
+									width: 27rpx;
+									height: 27rpx;
+									background-repeat: no-repeat;
+									background-size: 100% 100%;
+								}
+							}
+						}
 
-	.phone-info text {
-		margin-right: 14rpx;
-	}
+						.num {
+							display: flex;
+							align-items: center;
+							font-size: 26rpx;
+							color: rgba(255, 255, 255, 0.6);
+
+							image {
+								width: 22rpx;
+								height: 23rpx;
+								margin-left: 20rpx;
+							}
+						}
+					}
+				}
 
-	.phone-info image {
-		width: 27rpx;
-		height: 27rpx;
-		vertical-align: middle;
-	}
+				.num-wrapper {
+					z-index: 30;
+					position: relative;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					margin-top: 30rpx;
+					color: #fff;
+
+					.num-item {
+						width: 33.33%;
+						text-align: center;
+
+						.num {
+							font-size: 42rpx;
+							font-weight: bold;
+						}
 
-	.profile-link {
-		margin-top: 20rpx;
-		font-size: 23rpx;
-		font-weight: 600;
-		line-height: 21rpx;
-		text-align: right;
-	}
+						.txt {
+							margin-top: 10rpx;
+							font-size: 26rpx;
+							color: rgba(255, 255, 255, 0.6);
+						}
+					}
+				}
 
-	.profile-link img {
-		width: 24rpx;
-		height: 24rpx;
-		vertical-align: middle;
-		margin-left: 12rpx;
-	}
+				.sign {
+					z-index: 200;
+					position: absolute;
+					right: -12rpx;
+					top: 80rpx;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					width: 120rpx;
+					height: 60rpx;
+					background: linear-gradient(90deg, rgba(255, 225, 87, 1) 0%, rgba(238, 193, 15, 1) 100%);
+					border-radius: 29rpx 4rpx 4rpx 29rpx;
+					color: #282828;
+					font-size: 28rpx;
+					font-weight: bold;
+				}
+			}
 
-	.grid-container {
-		display: flex;
-		flex-wrap: wrap;
-		gap: 0;
-		/* 改用 margin 控制间距 */
-		padding: 20rpx;
-		/* 父容器内边距 */
-		box-sizing: border-box;
-		/* 包含 padding 在宽度内 */
-	}
+			.order-wrapper {
+				background-color: #fff;
+				border-radius: 14rpx;
+				padding: 30rpx 16rpx;
+				position: relative;
+				z-index: 11;
+
+				.order-hd {
+					justify-content: space-between;
+					font-size: 30rpx;
+					color: #282828;
+					margin-bottom: 40rpx;
+					padding: 0 16rpx;
+
+					.left {
+						color: #282828;
+						font-size: 30rpx;
+						font-weight: 600;
+					}
 
-	.grid-item {
-		width: 25%;
-		/* 直接 25% 无需 calc */
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		margin-bottom: 30rpx;
-		/* 行间距 */
-		padding: 0 10rpx;
-		/* 左右间隙(替代 gap) */
-		box-sizing: border-box;
-		/* 关键 */
-	}
+					.right {
+						align-items: center;
+						color: #666666;
+						font-size: 26rpx;
 
-	.grid-img {
-		width: 58rpx;
-		height: 58rpx;
-		margin-bottom: 8rpx;
-	}
+						.icon-xiangyou {
+							margin-left: 5rpx;
+							font-size: 24rpx;
+						}
+					}
+				}
 
-	.grid-text {
-		font-size: 24rpx;
-		color: #333;
-	}
+				.order-bd {
+					display: flex;
+					justify-content: space-between;
+					padding: 0;
+
+					.order-item {
+						display: flex;
+						flex-direction: column;
+						justify-content: center;
+						align-items: center;
+
+						.pic {
+							position: relative;
+							text-align: center;
+
+							image {
+								width: 48rpx;
+								height: 48rpx;
+							}
+						}
 
-	.item-features {
-		background: #FFFFFF;
-		border-radius: 23rpx;
-		margin: 0rpx 20rpx;
-	}
+						.txt {
+							margin-top: 15rpx;
+							font-size: 26rpx;
+							color: #454545;
+						}
+					}
+				}
+			}
+		}
 
-	.item-features-title {
-		padding: 20rpx;
-		font-weight: 600;
-		font-size: 27rpx;
-		color: #2E261E;
-		line-height: 38rpx;
-	}
+		.slider-wrapper {
+			margin: 20rpx 0;
+			height: 138rpx;
 
-	.go-img {
-		background: linear-gradient(135deg, #FED0A7 0%, #FFF3E2 52%, #FAEDD3 100%);
-		border-radius: 8rpx;
-		padding: 20rpx;
-		box-shadow: 0 0 0 2rpx rgba(255, 220, 135, 1);
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		margin-top: 20rpx;
-	}
+			swiper,
+			swiper-item {
+				height: 100%;
+			}
 
-	.order-box {
-		background-color: #fff;
-		border-radius: 14rpx;
-		padding: 30rpx 16rpx;
-		position: relative;
-		z-index: 11;
-		margin:  20rpx;
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
 
-		.order-hd {
-			justify-content: space-between;
-			font-size: 30rpx;
-			color: #282828;
-			margin-bottom: 40rpx;
-			padding: 0 16rpx;
+		.user-menus {
+			background-color: #fff;
+			border-radius: 14rpx;
 
-			.left {
-				color: #282828;
+			.menu-title {
+				padding: 30rpx 30rpx 40rpx;
 				font-size: 30rpx;
+				color: #282828;
 				font-weight: 600;
 			}
 
-			.right {
+			.list-box {
+				display: flex;
+				flex-wrap: wrap;
+				padding: 0;
+			}
+
+			.item {
+				position: relative;
+				display: flex;
 				align-items: center;
-				color: #666666;
+				justify-content: space-between;
+				flex-direction: column;
+				width: 25%;
+				margin-bottom: 47rpx;
 				font-size: 26rpx;
+				color: #333333;
+
+				image {
+					width: 52rpx;
+					height: 52rpx;
+					margin-bottom: 18rpx;
+				}
+
 
-				.icon-xiangyou {
-					margin-left: 5rpx;
-					font-size: 24rpx;
+				&:last-child::before {
+					display: none;
 				}
 			}
+
+			button {
+				font-size: 28rpx;
+			}
 		}
 
-		.order-bd {
+		.phone {
+			color: #fff;
+		}
+
+		.pic_status {
+			font-size: 43rpx;
+			@include main_color(theme);
+		}
+
+		.order-status-num {
+			min-width: 13rpx;
+			background-color: #fff;
+			@include main_color(theme);
+			border-radius: 15px;
+			position: absolute;
+			right: -14rpx;
+			top: -15rpx;
+			font-size: 20rpx;
+			padding: 0 8rpx;
+			@include coupons_border_color(theme);
+		}
+
+	}
+
+	.sub_btn {
+		width: 690rpx;
+		height: 86rpx;
+		line-height: 86rpx;
+		margin-top: 60rpx;
+		background: $theme-color;
+		border-radius: 43rpx;
+		color: #fff;
+		font-size: 28rpx;
+		text-align: center;
+	}
+
+	.popup-content {
+		border-radius: 16rpx 16rpx 0px 0px;
+
+		.bottom_border {
+			border-bottom: 1px solid #F5F5F5;
+		}
+
+		.item {
 			display: flex;
+			align-items: center;
 			justify-content: space-between;
-			padding: 0;
+			padding: 20rpx;
+
+			.icon_color {
+				color: #2A7EFB;
+			}
 
-			.order-item {
+			.item_main {
 				display: flex;
-				flex-direction: column;
-				justify-content: center;
 				align-items: center;
 
-				.pic {
-					position: relative;
-					text-align: center;
-
-					image {
-						width: 48rpx;
-						height: 48rpx;
-					}
-					
-					.order-status-num {
-						min-width: 13rpx;
-						background-color: #fff;
-						color: $bg-color-primary;
-						border-radius: 15px;
-						position: absolute;
-						right: -14rpx;
-						top: -15rpx;
-						font-size: 20rpx;
-						padding: 0 8rpx;
-						border: 2rpx solid $bg-color-primary;
-					}
+				.item_name {
+					margin-left: 20rpx;
+					font-weight: 500;
+					font-size: 28rpx;
 				}
+			}
 
-				.txt {
-					margin-top: 15rpx;
-					font-size: 26rpx;
-					color: #454545;
-				}
-				
-				.pic_status {
-					color: $bg-color-primary;
-				}
+			.item_img {
+				width: 60rpx;
+				height: 60rpx;
+				border-radius: 60rpx;
 			}
 		}
 	}
-</style>
+</style>

+ 38 - 13
mer_uniapp/pages/users/user_rider/index.vue

@@ -1,5 +1,5 @@
 <template>
-	<view>
+<view>
 		<!-- #ifdef MP -->
 		<view class="cart_nav">
 			<nav-bar ref="navBarRef" navTitle="成为骑手" :isBackgroundColor="false">
@@ -14,28 +14,28 @@
 				<view class="list">
 					<view style="padding: 21rpx 0 86rpx 39rpx;">
 						<view class="item-box">
-							<view class="title" style="width: 147rpx;">姓名</view>
+							<view class="title required" style="width: 147rpx;">姓名</view>
 							<input class="uni-input" v-model="name" focus placeholder="请输入你的姓名" />
 						</view>
 						<view class="item-box">
-							<view class="title" style="width: 147rpx;">手机号</view>
+							<view class="title required" style="width: 147rpx;">手机号</view>
 							<input class="uni-input" type='number' v-model="phone" focus placeholder="请输入你的手机号" />
 						</view>
 						<view class="item-box">
-							<view class="title" style="width: 147rpx;">短信验证</view>
+							<view class="title required" style="width: 147rpx;">短信验证</view>
 							<input class="uni-input" type='number' maxlength="6" v-model="bindingCaptcha" focus placeholder="请输入验证码" />
 							<button class="code" :class="disabled === true ? 'on' : ''" :disabled='disabled' @click="code">
 								{{ text }}
 							</button>
 						</view>
 						<view class="item-box" style="justify-content: space-between;">
-							<view class="title">是否有过配送经验</view>
+							<view class="title required">是否有过配送经验</view>
 							<switch :value="isSwitch" :checked="isSwitch" @change="isSwitch = !isSwitch" color="#12CA00" style="transform:scale(0.9)">
 								<text style="margin-top: 3rpx;">{{isSwitch ? '是' : '否'}}</text>
 							</switch>
 						</view>
 						<view class="item-box" style="border: none;padding: 0;">
-							<view class="title">配送职责(可多选)</view>
+							<view class="title required">配送职责(可多选)</view>
 						</view>
 						<view class="item-box" style="justify-content: space-between;">
 							<view class="item-job" :class="checkbox1 ? 'job-border-color' : ''" @tap="checkbox1 = !checkbox1">
@@ -110,6 +110,9 @@
 
 <script>
 	import {
+		mapGetters
+	} from "vuex";
+	import {
 		riderSettledCode,
 		riderSettledApply
 	} from '@/api/user.js'
@@ -121,6 +124,9 @@
 	var statusBarHeight = uni.getSystemInfoSync().statusBarHeight + 'px';
 	let app = getApp();
 	export default {
+		computed: {
+			...mapGetters(['isLogin', 'uid'])
+		},
 		components: {
 			Verify,
 			navBar
@@ -132,6 +138,7 @@
 				tagStyle: {
 					img: 'width:100%;display:block;'
 				},
+				userInfo: {},
 				merchantData: {
 					name: "",
 					realName: "",
@@ -192,6 +199,19 @@
 				}
 				return true;
 			},
+			getUserInfo() {
+				this.$store.dispatch('USERINFO').then(res => {
+					this.userInfo = res;
+					console.log(this.userInfo)
+					if(this.userInfo.isRider){
+					 	this.$util.navigateTo("/pages/rider_index/index");
+					 }else{
+						this.$util.Tips({
+							title: "您未注册,请先注册成为骑手"
+						}); 
+					 }
+				});
+			},
 			handBack() {
 				uni.navigateBack({
 					delta: 1
@@ -321,15 +341,21 @@
 				}
 			},
 		},
-		onLoad(options) {},
+		onLoad(options) {
+		   //  this.getUserInfo();
+		},
 		mounted() {
-
+	     this.merchantBg = `../static/images/${this.theme}.jpg`;
 		},
 	}
 </script>
 
 <style scoped lang="scss">
-
+	.required::before {
+		content: '* ';
+		color: red;
+		margin-right: 4rpx;
+	}
 	.item-box {
 		display: flex;
 		align-items: center;
@@ -339,9 +365,9 @@
 		margin-right: 38rpx;
 
 		.title {
-			font-weight: 600;
-			font-size: 27rpx;
-			color: #141414;
+			//font-weight: 600;
+			font-size: 28rpx;
+			color: #666666;
 		}
 
 		input {
@@ -617,7 +643,6 @@
 			font-size: 36rpx;
 		}
 	}
-
 	.merchantsSettled .list {
 		background-color: #fff;
 		border-radius: 12px;