添加:酒道馆进货页面

添加:酒道馆和商户登录功能
This commit is contained in:
wuhui_zzw 2024-02-28 18:11:04 +08:00
parent d9fd5e833b
commit 975ae30432
9 changed files with 669 additions and 135 deletions

View File

@ -545,4 +545,7 @@ export function priceRuleApi(id) {
noAuth: true
});
}
// 酒道馆登录
export function storeLogin(data) {
return request.get("store/merchant/login", data);
}

View File

@ -12,6 +12,10 @@ export function supplierApplyRecord(data) {
export function supplierApplyInfo(data) {
return request.get(`supplier/apply_info`, data);
}
// 供应商商品列表
export function supplierGoodsList(data) {
return request.get(`supplier/goods_list`, data);
}

View File

@ -1369,10 +1369,6 @@
"navigationBarTitleText": "佣金明细"
}
}
]
},
{
@ -1390,7 +1386,16 @@
"style": {
"navigationBarTitleText": "申请记录"
}
},
{
"path": "stock/with_goods",
"style": {
"navigationBarTitleText": "立即进货"
}
}
]
},
{

View File

@ -1,25 +1,42 @@
<template>
<view class="business">
<view class="business-header">
<view class="headerbox" @click="changeTips" v-if="service">
<image :src="service.merchant.mer_avatar" mode=""></image>
<span class='font line1'>{{service.merchant.mer_name || '暂无店铺'}}</span>
<template v-if="Object.values(storeList).length > 1">
<text v-if="!downStatus" class="iconfont icon-xiala1 spin"></text>
<text v-else class="iconfont icon-xiala1"></text>
</template>
</view>
</view>
<view v-if="Object.values(list).length > 0" class="business-content">
<view @click="goNext(item)" class="listBox" v-for="(item,index) in list">
<text :class="item.icon" class="businessIcon"></text>
<view>{{item.title}}</view>
</view>
</view>
<emptyPage v-else title="暂无任何操作权限~"></emptyPage>
<shopList ref="shopList" @changeStoreClose="changeClose" @getService="getService" :is_sys='is_sys'></shopList>
<!--登录后内容-->
<template v-if="is_sys == 1 || (is_sys != 1 && shopIsLogin)">
<view class="business-header">
<view class="headerbox" @click="changeTips" v-if="service">
<image :src="service.merchant.mer_avatar" mode=""></image>
<span class='font line1'>{{service.merchant.mer_name || '暂无店铺'}}</span>
<template v-if="Object.values(storeList).length > 1">
<text v-if="!downStatus" class="iconfont icon-xiala1 spin"></text>
<text v-else class="iconfont icon-xiala1"></text>
</template>
</view>
</view>
<view v-if="Object.values(list).length > 0" class="business-content">
<view @click="goNext(item)" class="listBox" v-for="(item,index) in list">
<text :class="item.icon" class="businessIcon"></text>
<view>{{item.title}}</view>
</view>
</view>
<emptyPage v-else title="暂无任何操作权限~"></emptyPage>
<shopList ref="shopList" @changeStoreClose="changeClose" @getService="getService" :is_sys='is_sys'></shopList>
</template>
<template v-else>
<view class="login-content">
<view class="login-form">
<view class="title">账号密码</view>
<view class="login-item">
<text class="item-icon iconfont icon-shouji"></text>
<input class="item-input" v-model="loginInfo.account" placeholder="请输入登录账号" name="text" />
</view>
<view class="login-item">
<text class="item-icon iconfont icon-mimatubiao"></text>
<input class="item-input" v-model="loginInfo.password" placeholder="请输入登录密码" name="password" />
</view>
<view class="login-btn" @click="clickLogin">登录</view>
</view>
</view>
</template>
<!--二维码-->
<uni-popup ref="qrCodePopup" type="center">
<view class="qr-code-content">
@ -35,6 +52,8 @@ import emptyPage from '@/components/emptyPage.vue'
import shopList from '@/components/shopList';
import {promoteQrCodes,onlinePaymentQrCodes} from "@/api/service";
import { getSiteQrCode } from '@/api/exchange.js';
import {mapGetters} from "vuex";
import {storeLogin} from "@/api/store";
export default {
name: 'business',
@ -50,6 +69,11 @@ export default {
storeList: {},
//
qrCode: '',
//
loginInfo:{
account: '',
password: ''
},
}
},
computed: {
@ -138,23 +162,37 @@ export default {
if(this.service.purchase_permission){
list.push({
title: '进货',
url: '/pages/store/shopStreet/index?merchant_type=2',
url: '/pages/supplier/stock/with_goods',
icon: 'iconfont icon-shangjiadingdan'
});
}
return list;
}
},
...mapGetters(['isLogin', 'uid', 'userInfo', 'viewColor', 'shopToken', 'shopIsLogin', 'shopMerId'])
},
onLoad: function(options) {
this.is_sys = options.is_sys;
this.getStoreList({is_sys: this.is_sys});
//
uni.setNavigationBarTitle({
title: this.is_sys == 1 ? '平台管理' : (this.is_sys == 2 ? '酒道馆管理' : '商家管理')
})
console.log("商户登录相关")
console.log({
shopIsLogin: this.shopIsLogin,
shopToken: this.shopToken
})
//
if(this.is_sys == 1 || this.shopIsLogin){
this.getStoreList({is_sys: this.is_sys});
}
},
methods: {
getStoreList: function(data) {
data.appoint_mer_id = this.shopMerId || '';
this.$nextTick(() => {
this.$refs.shopList.getStoreList(data)
});
@ -271,109 +309,187 @@ export default {
closeQrCode(){
this.$refs.qrCodePopup.close();
},
// -
clickLogin(){
let _this = this;
let params = _this.loginInfo || {};
storeLogin(params).then(res => {
if (res.status == 200) {
let data = res.data || {};
// console.log("")
// console.log(data)
_this.$store.commit("SHOP_LOGIN", {
'token': data.token,
'time': data.exp,
'shop_mer_id': data.mer_id,
});
this.getStoreList({is_sys: this.is_sys});
}
}).catch(err => {
this.$util.Tips({ title: err });
});
}
}
}
</script>
<style scoped lang="scss">
.business{
width: 100vw!important;
min-height: 100vh!important;
background: linear-gradient(180deg, #2291F8 0%, rgba(34,145,248,0) 100%);
.business {
width: 100vw !important;
min-height: 100vh !important;
background: linear-gradient(180deg, #2291F8 0%, rgba(34, 145, 248, 0) 100%);
}
.businessIcon {
color: #2291F8;
font-size: 80rpx;
display: inline-block;
margin-bottom: 29rpx;
}
.business-header {
//height: 305rpx;
//position: fixed;
padding-top: 20rpx;
width: 100%;
text-align: center;
top: 0;
left: 0;
.headerbox {
max-width: 360rpx;
margin: 0 auto;
position: relative;
padding: 10rpx 0rpx 10rpx 0rpx;
background-color: rgba(0, 0, 0, .25);
border-radius: 30rpx;
color: #FFFFFF;
margin-top: 33rpx;
.font {
max-width: 260rpx;
display: inline-block;
margin-left: 10rpx;
line-height: 28rpx;
}
image {
width: 34rpx;
height: 34rpx;
position: relative;
top: 4rpx;
}
.spin {
display: inline-block;
transform: rotate(180deg);
font-size: 36rpx;
}
}
}
.business-content {
width: 100%;
padding: 0 calc((100% - (345rpx * 2)) / 3);
//margin-top: 151rpx;
margin-top: 55rpx;
display: inline-flex;
flex-wrap: wrap;
flex-direction: row;
justify-content: space-between;
.listBox {
width: 345rpx;
height: 270rpx;
background: #FFFFFF;
box-shadow: 0rpx 5rpx 15rpx rgba(142, 82, 77, 0.1);
border-radius: 20rpx;
z-index: 1;
margin-bottom: 20rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
image {
width: 66rpx;
height: 66rpx;
background: #F34C20;
}
}
}
/deep/ radio .wx-radio-input.wx-radio-input-checked,
/deep/radio .uni-radio-input.uni-radio-input-checked {
border: 1px solid #2291F8 !important;
background-color: #2291F8 !important
}
//
.qr-code-content{
width: 80vw;
.image{
width: 80vw;
height: 80vw;
.businessIcon {
color: #2291F8;
font-size: 80rpx;
display: inline-block;
margin-bottom: 29rpx;
}
.business-header {
//height: 305rpx;
//position: fixed;
padding-top: 20rpx;
width: 100%;
text-align: center;
top: 0;
left: 0;
.headerbox {
max-width: 360rpx;
margin: 0 auto;
position: relative;
padding: 10rpx 0rpx 10rpx 0rpx;
background-color: rgba(0, 0, 0, .25);
border-radius: 30rpx;
color: #FFFFFF;
margin-top: 33rpx;
.font {
max-width: 260rpx;
display: inline-block;
margin-left: 10rpx;
line-height: 28rpx;
}
.close-qr-code{
position: fixed;
top: 35rpx;
right: 70rpx;
color: #FFFFFF;
border: 2rpx solid #FFFFFF;
height: 40rpx;
line-height: 36rpx;
padding: 0 20rpx;
border-radius: 50rpx;
image {
width: 34rpx;
height: 34rpx;
position: relative;
top: 4rpx;
}
.spin {
display: inline-block;
transform: rotate(180deg);
font-size: 36rpx;
}
}
}
.business-content {
width: 100%;
padding: 0 calc((100% - (345rpx * 2)) / 3);
//margin-top: 151rpx;
margin-top: 55rpx;
display: inline-flex;
flex-wrap: wrap;
flex-direction: row;
justify-content: space-between;
.listBox {
width: 345rpx;
height: 270rpx;
background: #FFFFFF;
box-shadow: 0rpx 5rpx 15rpx rgba(142, 82, 77, 0.1);
border-radius: 20rpx;
z-index: 1;
margin-bottom: 20rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
image {
width: 66rpx;
height: 66rpx;
background: #F34C20;
}
}
}
/deep/ radio .wx-radio-input.wx-radio-input-checked,
/deep/ radio .uni-radio-input.uni-radio-input-checked {
border: 1px solid #2291F8 !important;
background-color: #2291F8 !important
}
//
.qr-code-content {
width: 80vw;
.image {
width: 80vw;
height: 80vw;
}
.close-qr-code {
position: fixed;
top: 35rpx;
right: 70rpx;
color: #FFFFFF;
border: 2rpx solid #FFFFFF;
height: 40rpx;
line-height: 36rpx;
padding: 0 20rpx;
border-radius: 50rpx;
}
}
//
.login-content{
.login-form{
background: #F6f6f6;
padding: 40% 30rpx 0 30rpx;
min-height: 100vh;
width: 100vw;
.title{
font-size: 36rpx;
height: 80rpx;
line-height: 60rpx;
font-weight: bold;
}
.login-item{
width: 100%;
display: inline-flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center;
height: 80rpx;
border-top: 2rpx solid #f3f3f3;
border-bottom: 2rpx solid #f3f3f3;
.item-icon{
font-size: 40rpx;
width: 70rpx;
}
.item-input{
width: calc(100% - 80rpx);
padding-left: 15rpx;
}
}
.login-btn{
width: 70%;
background: #8e1318;
color: #f4dede;
height: 60rpx;
font-size: 30rpx;
line-height: 60rpx;
text-align: center;
border-radius: 100rpx;
margin: 130rpx auto 0 auto;
}
}
}
</style>

View File

@ -0,0 +1,382 @@
<template>
<view class="page-content">
<!--主要内容-->
<view class="main-content">
<!--顶部搜索-->
<view class="search-content">
<view class="search-main">
<input class="search-input" type="text" placeholder="请输入商品名称...">
<view class="search-btn">搜索</view>
</view>
</view>
<!--顶部提示-->
<view class="top-tips">请添加你需要的商品进行进货</view>
<!--商品列表-->
<view class="list">
<view class="item" v-for="(item,index) in Object.values(list)" :key="index">
<view class="goods">
<view class="image">
<image class="goods-image" :src="item.image"></image>
</view>
<view class="info">
<view class="title">{{ item.store_name }}</view>
<view class="price">¥{{ item.price }}</view>
</view>
</view>
<view class="buy">
<view class="left">
<template v-if="item.is_batch == 1">
<view v-if="index / 2 == 0" class="buy-unit">{{ item.batch_unit }}购买</view>
<view v-else class="buy-unit">{{ item.unit_name }}购买</view>
<text class="iconfont icon-jiantou_shangxiaqiehuan_o"></text>
</template>
</view>
<view class="right">
<text v-if="index / 2 == 0" class="iconfont icon-gengduozhankai1"></text>
<view v-else class="buy-num">
<view class="num-change">
<text class="iconfont icon-shangpinshuliang-jian"></text>
<input class="num-input" type='number' />
<text class="iconfont icon-shangpinshuliang-jia"></text>
</view>
<view class="unit"> 共12瓶</view>
</view>
</view>
</view>
</view>
</view>
<!--结算按钮-->
<view class="settlement">
<view class="left">
<text class="iconfont icon-gouwuche-mendian">
<text class="total-num">99+</text>
</text>
<view class="total">
合计<text class="total-price">¥54288.00</text>
</view>
</view>
<view class="settlement-btn">立即结算</view>
</view>
</view>
<!-- 授权登录 -->
<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authClose"></authorize>
</view>
</template>
<script>
import {mapGetters} from "vuex";
import authorize from '@/components/Authorize';
import {supplierGoodsList} from "@/api/supplier";
export default {
name: 'business',
components: {
authorize,
},
computed: {
...mapGetters(['isLogin', 'uid', 'userInfo', 'viewColor'])
},
data() {
return {
//
list: [],
search:{
page: 1,
store_name: '',
},
//
buy_list: {},
}
},
onLoad(options) {
//
if (!this.isLogin) this.isAuto = this.isShowAuth = true;//
else this.init();//
},
//
onReachBottom() {
this.getGoodsList();
},
methods: {
//
onLoadFun() {
if(this.isLogin){
this.isShowAuth = false;
this.init();
}
},
//
authClose(e) {
this.isShowAuth = e
},
//
init () {
this.getGoodsList();
},
//
getGoodsList(page = 0) {
let _this = this;
let params = _this.search;
if(Number(page) > 0) params.page = page;
//
supplierGoodsList(params).then(res => {
let list = res.data.list || {};
if (Object.values(list).length > 0) {
_this.list = _this.$util.SplitArray(list, _this.list);
_this.$set(_this, 'list', _this.list);
_this.search.page++;
}
}).catch(err => {
this.$util.Tips({title: err});
});
},
}
}
</script>
<style scoped lang="scss">
.page-content{
width: 100vw;
min-height: 100vh;
background-color: #f6f6f6;
.main-content{
padding-bottom: 150rpx;
//
.search-content{
background: #F9F0DA;
.search-main{
display: inline-flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
align-items: center;
width: 100%;
padding: 15rpx;
.search-input{
border-top-left-radius: 10rpx;
border-bottom-left-radius: 10rpx;
width: calc(100% - 110rpx);
padding: 0 20rpx;
height: 60rpx;
line-height: 60rpx;
border: 4rpx solid #c5464a;
background: transparent;
outline: none;
}
.search-btn{
background: #c5464a;
border-top-right-radius: 10rpx;
border-bottom-right-radius: 10rpx;
width: 110rpx;
height: calc(60rpx + (4rpx * 2));
line-height: calc(60rpx + (4rpx * 2));
font-size: 26rpx;
color: #F9F0DA;
text-align: center;
}
}
}
//
.top-tips{
background: #F9F0DA;
color: #813d40;
font-size: 30rpx;
font-weight: bold;
text-align: center;
width: 100%;
height: 80rpx;
line-height: 80rpx;
}
//
.list{
--item-padding-: 30rpx;
.item:not(:last-child){
margin-bottom: var(--item-padding-);
}
.item{
padding: var(--item-padding-);
background: #FFFFFF;
.goods{
width: 100%;
padding-bottom: var(--item-padding-);
display: inline-flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center;
.image{
width: 120rpx;
height: 120rpx;
.goods-image{
width: 100%;
height: 100%;
}
}
.info{
width: calc(100% - 120rpx);
height: 120rpx;
padding-left: 20rpx;
display: inline-flex;
flex-direction: column;
flex-wrap: nowrap;
justify-content: space-evenly;
align-items: flex-start;
.title{
width: 100%;
font-size: 32rpx;
font-weight: bold;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.price{
font-size: 26rpx;
color: #d84b40;
font-weight: bold;
}
}
}
.buy{
padding-top: var(--item-padding-);
border-top: 2rpx solid #F6F6F6;
width: 100%;
height: 75rpx;
display: inline-flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
align-items: center;
.left{
display: inline-flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center;
.buy-unit{
font-size: 26rpx;
}
.icon-jiantou_shangxiaqiehuan_o{
transform: rotate(90deg);
font-size: 36rpx;
font-weight: bold;
margin-left: 15rpx;
}
}
.right{
.icon-gengduozhankai1{
font-size: 42rpx;
}
.buy-num{
--border-color-: #f2f2f2;
display: inline-flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center;
.num-change{
border: 2rpx solid var(--border-color-);
display: inline-flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center;
border-radius: 100rpx;
padding: 0 15rpx;
height: 45rpx;
.iconfont{
text-align: center;
font-size: 30rpx;
}
.icon-shangpinshuliang-jian{
padding-right: 15rpx;
}
.icon-shangpinshuliang-jia{
padding-left: 15rpx;
}
.num-input{
border-left: 2rpx solid var(--border-color-);
border-right: 2rpx solid var(--border-color-);
width: 60rpx;
text-align: center;
}
}
.unit{
font-size: 26rpx;
margin-left: 10rpx;
}
}
}
}
}
}
//
.settlement{
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background: #FFFFFF;
padding: 20rpx 20rpx 50rpx 20rpx;
box-shadow: 0 0 10px 0 #f3f3f3;
display: inline-flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
align-items: center;
.left{
display: inline-flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center;
.icon-gouwuche-mendian{
font-size: 30rpx;
margin-right: 20rpx;
border: 2rpx solid #000000;
border-radius: 50%;
padding: 15rpx;
position: relative;
.total-num{
position: absolute;
top: -5px;
right: -5px;
font-size: 20rpx;
background: #ef2c1c;
color: #ffffff;
border-radius: 50%;
width: 35rpx;
height: 35rpx;
text-align: center;
line-height: 35rpx;
}
}
.total{
font-size: 30rpx;
.total-price{
font-weight: bold;
color: #ef2c1c;
}
}
}
.settlement-btn{
background: #ef2c1c;
color: #FFFFFF;
height: 55rpx;
line-height: 55rpx;
width: 200rpx;
text-align: center;
border-radius: 100rpx;
}
}
}
}
</style>

View File

@ -183,7 +183,7 @@
<text>{{ operation_center.province_title }}</text>
</view>
</view>
<view class="item" @click="clickOperationCenterMenu('county')" v-if="Object.keys(identity.county_list).length > 0">
<view class="item" @click="clickOperationCenterMenu('county')" v-if="Object.keys(identity.county_list).length > 0 || userInfo.service || userInfo.shopMerService">
<view class="item-count">
<image :src="operation_center.county_image"></image>
<text>{{ operation_center.county_title }}</text>
@ -264,18 +264,20 @@
<view class="agent-identity-list">
<view class="_list">
<!--固定菜单-->
<view class="_list-item" v-if="userInfo.service" @click="toService(0)">
<view class="top">商家管理</view>
<view class="tag-list">
<view class="tag-list-item">进入商家管理中心</view>
<template v-if="identityCurrentName == 'county'">
<view class="_list-item" v-if="userInfo.service" @click="toService(0)">
<view class="top">商家管理</view>
<view class="tag-list">
<view class="tag-list-item">商家管理中心</view>
</view>
</view>
</view>
<view class="_list-item" v-if="userInfo.shopMerService" @click="toService(2)">
<view class="top">酒道馆管理</view>
<view class="tag-list">
<view class="tag-list-item">进入酒道馆管理中心</view>
<view class="_list-item" v-if="userInfo.shopMerService" @click="toService(2)">
<view class="top">酒道馆管理</view>
<view class="tag-list">
<view class="tag-list-item">酒道馆管理中心</view>
</view>
</view>
</view>
</template>
<!--类型1=总部发起人,2=省公司发起人,3=省合伙人(外勤),4=省合伙人(内勤),5=区县运营商,6=区县合伙人,7=餐厅,8=配送商,9=总部外勤,10=总部内勤-->
<view class="_list-item" v-for="(item,index) in identityCurrent" :key="index" @click="goToAgentCenter(item)">
<!--餐厅-->
@ -296,7 +298,7 @@
<!--其他角色-->
<template v-else>
<view class="top">{{ item.corporate_name || '' }}</view>
<view class="tag-list">
<view class="tag-list" v-if="item.agent_type_list">
<view class="tag-list-item" v-for="(tagItem,tagIndex) in Object.values(item.agent_type_list)" :key="tagIndex">{{ tagItem || '' }}</view>
</view>
</template>
@ -515,6 +517,14 @@
})
},
toService(is_sys){
// 0 || 2
if(is_sys == 0 || is_sys == 2){
this.$store.commit("SHOP_LOGIN", {
'token': null,
'time': null,
'shop_mer_id': null,
});
}
uni.navigateTo({
url: '/pages/admin/business/index?is_sys=' + is_sys
})

View File

@ -1,3 +1,4 @@
import Cache from "../utils/cache";
export default {
token: state => state.app.token,
@ -11,6 +12,10 @@ export default {
copyPwd: state => state.app.copyPwd,
viewColor: state => state.app.viewColor,
keyColor: state => state.app.keyColor,
// 商户登录相关
shopToken: state => state.app.shopToken,
shopIsLogin: state => !!state.app.shopToken,
shopMerId: state => state.app.shopMerId,
};
// export default {
// token: state => 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJrYWlmYS5jcm1lYi5uZXQiLCJhdWQiOiJrYWlmYS5jcm1lYi5uZXQiLCJpYXQiOjE1NzcwODM1MzQsIm5iZiI6MTU3NzA4MzUzNCwiZXhwIjoxNTc3MDk0MzM0LCJqdGkiOnsiaWQiOjExMCwidHlwZSI6InVzZXIifX0.U-i1pbdRjyXI1gr79Uq2XBPZ89T8f5Ai9jwrR8woTwE',

View File

@ -22,6 +22,9 @@ const state = {
pageFooter:uni.getStorageSync('pageFoot') || {},
keyColor: Cache.get('KEY_COLOR') || '_default',
viewColor: Cache.get('VIEW_COLOR') || '--view-theme: #E93323;--view-assist:#FF7612;--view-priceColor:#E93323;--view-bgColor:rgba(255, 118, 18,.1);--view-minorColor:rgba(233, 51, 35,.1);--view-bntColor11:#FDA923;--view-bntColor12:#FD6523;--view-bntColor21:#F11B09;--view-bntColor22:#F67A38;',
// 商户登录相关
shopToken: Cache.get('SHOP_LOGIN_STATUS_TOKEN') || null,
shopMerId: Cache.get('SHOP_MER_ID') || null,
};
const mutations = {
@ -30,6 +33,11 @@ const mutations = {
Cache.set(LOGIN_STATUS, opt.token, opt.time);
uni.removeStorageSync('auth_token');
},
SHOP_LOGIN(state, opt) {
state.shopToken = opt.token;
Cache.set('SHOP_LOGIN_STATUS_TOKEN', opt.token, opt.time);
Cache.set('SHOP_MER_ID', opt.shop_mer_id);
},
SETUID(state,val){
state.uid = val;
Cache.set(UID, val);

View File

@ -69,6 +69,7 @@ function baseRequest(url, method, data, {
}
}
if (store.state.app.token) header[TOKENNAME] = 'Bearer ' + store.state.app.token;
if (store.state.app.shopToken) header['Shop-Token'] = 'Bearer ' + store.state.app.shopToken;
return new Promise((reslove, reject) => {
uni.request({
url: Url + '/api/' + url,