parent
d9fd5e833b
commit
975ae30432
|
|
@ -545,4 +545,7 @@ export function priceRuleApi(id) {
|
|||
noAuth: true
|
||||
});
|
||||
}
|
||||
|
||||
// 酒道馆登录
|
||||
export function storeLogin(data) {
|
||||
return request.get("store/merchant/login", data);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
13
pages.json
13
pages.json
|
|
@ -1369,10 +1369,6 @@
|
|||
"navigationBarTitleText": "佣金明细"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -1390,7 +1386,16 @@
|
|||
"style": {
|
||||
"navigationBarTitleText": "申请记录"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "stock/with_goods",
|
||||
"style": {
|
||||
"navigationBarTitleText": "立即进货"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -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
|
||||
})
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in New Issue