优化细节

This commit is contained in:
gaoxs
2020-04-13 16:24:40 +08:00
parent d8f92720d2
commit b4c76df22a
14 changed files with 689 additions and 658 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -6990,7 +6990,7 @@ flex: 0 2.4*100rpx;
} }
.product-con .footerRush .bnt { .product-con .footerRush .bnt {
width: 86%; width: 100%;
text-align: center; text-align: center;
line-height: 1*100rpx; line-height: 1*100rpx;
height: 100%; height: 100%;

View File

@ -1,62 +1,57 @@
<template> <template>
<view class="time"> <view class="time">
{{ tipText }} <text v-if="rtipText">{{ rtipText }}</text>
<text class="styleAll" v-if="isDay === true">{{ day }}</text> <text class="styleAll" v-if="risDay === true">{{ rday }}</text>
<!-- <text class="timeTxt">{{ dayText }}</text> --> <text class="timeTxt" v-if="rdayText">{{ rdayText }}</text>
<text class="styleAll">{{ hour }}</text> <text class="styleAll">{{ hour }}</text>
<text class="timeTxt">{{ hourText }}</text> <text class="timeTxt" v-if="rhourText">{{ rhourText }}</text>
<text class="styleAll">{{ minute }}</text> <text class="styleAll">{{ minute }}</text>
<text class="timeTxt">{{ minuteText }}</text> <text class="timeTxt" v-if="rminuteText">{{ rminuteText }}</text>
<text class="styleAll">{{ second }}</text> <text class="styleAll">{{ second }}</text>
<!-- <text class="timeTxt">{{ secondText }}</text> --> <text class="timeTxt" v-if="rsecondText">{{ rsecondText }}</text>
</view> </view>
</template> </template>
<script> <script>
export default { export default {
name: "CountDown", name: "CountDown",
props: { props: [
//距离开始提示文字 //距离开始提示文字
tipText: { 'tipText',
type: String, 'dayText',
default: "倒计时" 'hourText',
}, 'minuteText',
dayText: { 'secondText',
type: String, 'datatime',
default: "天" 'isDay'
}, ],
hourText: {
type: String,
default: "时"
},
minuteText: {
type: String,
default: "分"
},
secondText: {
type: String,
default: "秒"
},
datatime: {
type: Number,
default: 0
},
isDay: {
type: Boolean,
default: true
}
},
data: function() { data: function() {
return { return {
day: "00", day: "00",
hour: "00", hour: "00",
minute: "00", minute: "00",
second: "00" second: "00",
rtipText: "倒计时",
rdayText: "天",
rhourText: "时",
rminuteText: "分",
rsecondText: "秒",
rdatatime: 0,
risDay: true
}; };
}, },
created: function() { created: function() {
// this.show_time(); // this.show_time();
}, },
mounted: function() { mounted: function() {
console.log(this)
this.rtipText = this.$props.tipText;
this.rdayText = this.$props.dayText;
this.rhourText = this.$props.hourText;
this.rminuteText = this.$props.minuteText;
this.rsecondText = this.$props.secondText;
this.rdatatime = this.$props.datatime;
this.risDay = this.$props.isDay;
console.log(this.rdayText)
this.show_time(); this.show_time();
}, },
methods: { methods: {

View File

@ -8,12 +8,12 @@
<view class="text acea-row row-column-around"> <view class="text acea-row row-column-around">
<view class="line1">{{ item.title }}</view> <view class="line1">{{ item.title }}</view>
<count-down <count-down
:is-day="true" :isDay="true"
:tip-text="'倒计时 '" :tipText="'倒计时 '"
:day-text="' 天 '" :dayText="' 天 '"
:hour-text="' 时 '" :hourText="' 时 '"
:minute-text="' 分 '" :minuteText="' 分 '"
:second-text="' 秒'" :secondText="' 秒'"
:datatime="item.datatime" :datatime="item.datatime"
></count-down> ></count-down>
<view class="money font-color-red"> <view class="money font-color-red">

View File

@ -14,12 +14,12 @@
</view> </view>
</view> </view>
<count-down <count-down
:is-day="true" :isDay="true"
:tip-text="'倒计时 '" :tipText="'倒计时 '"
:day-text="' '" :dayText="' 天 '"
:hour-text="' '" :hourText="' 时 '"
:minute-text="' '" :minuteText="' 分 '"
:second-text="' '" :secondText="' 秒'"
:datatime="datatime" :datatime="datatime"
></count-down> ></count-down>
</view> </view>

View File

@ -18,12 +18,12 @@
<view class="countDown font-color-red acea-row row-center-wrapper"> <view class="countDown font-color-red acea-row row-center-wrapper">
<view v-if="item.status === 0" class="activity">活动已结束</view> <view v-if="item.status === 0" class="activity">活动已结束</view>
<count-down <count-down
:is-day="false" :isDay="false"
:tip-text="'距结束仅剩 '" :tipText="'距结束仅剩 '"
:day-text="''" :dayText="false"
:hour-text="' : '" :hourText="' : '"
:minute-text="' : '" :minuteText="' : '"
:second-text="''" :secondText="false"
:datatime="datatime" :datatime="datatime"
v-if="item.status === 1" v-if="item.status === 1"
></count-down> ></count-down>

View File

@ -50,12 +50,12 @@
<text>人成团</text> <text>人成团</text>
</view> </view>
<count-down <count-down
:is-day="false" :isDay="false"
:tip-text="'剩余 '" :tipText="'剩余 '"
:day-text="''" :dayText="false"
:hour-text="':'" :hourText="':'"
:minute-text="':'" :minuteText="':'"
:second-text="''" :secondText="false"
:datatime="item.stopTime" :datatime="item.stopTime"
></count-down> ></count-down>
</view> </view>

View File

@ -1,220 +1,246 @@
<template> <template>
<view class="group-con"> <view class="group-con">
<view class="header acea-row row-between-wrapper"> <view class="header acea-row row-between-wrapper">
<view class="pictrue"> <view class="pictrue">
<image :src="storeCombination.image" /> <image :src="storeCombination.image" />
</view> </view>
<view class="text"> <view class="text">
<view class="line1" v-text="storeCombination.title"></view> <view class="line1" v-text="storeCombination.title"></view>
<view class="money"> <view class="money">
<text>¥</text> <text>¥</text>
<text class="num" v-text="storeCombination.price"></text> <text class="num" v-text="storeCombination.price"></text>
<text class="team cart-color" v-text="storeCombination.people + '人拼'"></text> <text class="team cart-color" v-text="storeCombination.people + '人拼'"></text>
</view> </view>
</view> </view>
<view v-if="pinkBool === -1" class="iconfont icon-pintuanshibai"></view> <view v-if="pinkBool === -1" class="iconfont icon-pintuanshibai"></view>
<view v-else-if="pinkBool === 1" class="iconfont icon-pintuanchenggong font-color-red"></view> <view v-else-if="pinkBool === 1" class="iconfont icon-pintuanchenggong font-color-red"></view>
</view> </view>
<view class="wrapper"> <view class="wrapper">
<view class="title acea-row row-center-wrapper"> <view class="title acea-row row-center-wrapper">
<view class="line"></view> <view class="line"></view>
<view class="name acea-row row-center-wrapper"> <view class="name acea-row row-center-wrapper">
<text>剩余</text> <text>剩余</text>
<count-down :is-day="false" :tip-text="''" :day-text="''" :hour-text="' : '" :minute-text="' : '" :second-text="''" <count-down
:datatime="pinkT.stopTime"></count-down> :isDay="false"
<text>结束</text> :tipText="false"
</view> :dayText="false"
<view class="line"></view> :hourText="' : '"
</view> :minuteText="' : '"
<text class="tips font-color-red" v-if="pinkBool === 1">恭喜您拼团成功</text> :secondText="false"
<text class="tips" v-else-if="pinkBool === -1">还差{{ count }}人,拼团失败</text> :datatime="pinkT.stopTime"
<text class="tips font-color-red" v-else-if="pinkBool === 0">拼团中,还差{{ count }}人拼团成功</text> ></count-down>
<view class="list acea-row row-middle" :class="[pinkBool === 1 || pinkBool === -1 ? 'result' : '',iShidden ? 'on' : '']"> <text>结束</text>
<view class="pictrue"> </view>
<image :src="pinkT.avatar" /> <view class="line"></view>
</view> </view>
<view class="acea-row row-middle" v-if="pinkAll.length > 0"> <view class="tips-warp">
<view class="pictrue" v-for="(item, pinkAllIndex) in pinkAll" :key="pinkAllIndex"> <text class="tips font-color-red" v-if="pinkBool === 1">恭喜您拼团成功</text>
<image :src="item.avatar" /> <text class="tips" v-else-if="pinkBool === -1">还差{{ count }}人,拼团失败</text>
</view> <text class="tips font-color-red" v-else-if="pinkBool === 0">拼团中,还差{{ count }}人拼团成功</text>
</view> </view>
<view class="pictrue" v-for="countIndex in count" :key="countIndex"> <view
<image class="img-none" src="@/static/images/vacancy.png" /> class="list acea-row row-middle"
</view> :class="[pinkBool === 1 || pinkBool === -1 ? 'result' : '',iShidden ? 'on' : '']"
</view> >
<view v-if="(pinkBool === 1 || pinkBool === -1) && count > 9" class="lookAll acea-row row-center-wrapper" @click="lookAll"> <view class="pictrue">
{{ iShidden ? "收起" : "查看全部" }} <image :src="pinkT.avatar" />
<text class="iconfont" :class="iShidden ? 'icon-xiangshang' : 'icon-xiangxia'"></text> </view>
</view> <view class="acea-row row-middle" v-if="pinkAll.length > 0">
<view class="teamBnt bg-color-red" v-if="userBool === 1 && isOk == 0 && pinkBool === 0" @click="goPoster">邀请好友参团</view> <view class="pictrue" v-for="(item, pinkAllIndex) in pinkAll" :key="pinkAllIndex">
<view class="teamBnt bg-color-red" v-else-if="userBool === 0 && pinkBool === 0 && count > 0" @click="pay">我要参团</view> <image :src="item.avatar" />
<view class="teamBnt bg-color-red" v-if="pinkBool === 1 || pinkBool === -1" @click="goDetail(storeCombination.id)">再次开团</view> </view>
<view class="cancel" @click="getCombinationRemove" v-if="pinkBool === 0 && userBool === 1"> </view>
<text class="iconfont icon-guanbi3"></text> <view class="pictrue" v-for="countIndex in count" :key="countIndex">
<text>取消开团</text> <image class="img-none" src="@/static/images/vacancy.png" />
</view> </view>
<view class="lookOrder" v-if="pinkBool === 1" @click="goOrder"> </view>
<text>查看订单信息</text> <view
<text class="iconfont icon-xiangyou"></text> v-if="(pinkBool === 1 || pinkBool === -1) && count > 9"
</view> class="lookAll acea-row row-center-wrapper"
</view> @click="lookAll"
</view> >
{{ iShidden ? "收起" : "查看全部" }}
<text class="iconfont" :class="iShidden ? 'icon-xiangshang' : 'icon-xiangxia'"></text>
</view>
<view
class="teamBnt bg-color-red"
v-if="userBool === 1 && isOk == 0 && pinkBool === 0"
@click="goPoster"
>邀请好友参团</view>
<view
class="teamBnt bg-color-red"
v-else-if="userBool === 0 && pinkBool === 0 && count > 0"
@click="pay"
>我要参团</view>
<view
class="teamBnt bg-color-red"
v-if="pinkBool === 1 || pinkBool === -1"
@click="goDetail(storeCombination.id)"
>再次开团</view>
<view class="cancel" @click="getCombinationRemove" v-if="pinkBool === 0 && userBool === 1">
<text class="iconfont icon-guanbi3"></text>
<text>取消开团</text>
</view>
<view class="lookOrder" v-if="pinkBool === 1" @click="goOrder">
<text>查看订单信息</text>
<text class="iconfont icon-xiangyou"></text>
</view>
</view>
</view>
</template> </template>
<script> <script>
import CountDown from "@/components/CountDown"; import CountDown from "@/components/CountDown";
import { import { getCombinationPink, getCombinationRemove } from "@/api/activity";
getCombinationPink, import { postCartAdd } from "@/api/store";
getCombinationRemove import { isWeixin, parseQuery, handleQrCode } from "@/utils/index";
} from "@/api/activity";
import {
postCartAdd
} from "@/api/store";
import {
isWeixin,
parseQuery,
handleQrCode
} from "@/utils/index";
const NAME = "GroupRule"; const NAME = "GroupRule";
export default { export default {
name: NAME, name: NAME,
components: { components: {
CountDown CountDown
}, },
props: {}, props: {},
data: function() { data: function() {
return { return {
currentPinkOrder: "", //当前拼团订单 currentPinkOrder: "", //当前拼团订单
isOk: 0, //判断拼团是否完成 isOk: 0, //判断拼团是否完成
pinkBool: 0, //判断拼团是否成功|0=失败,1=成功 pinkBool: 0, //判断拼团是否成功|0=失败,1=成功
userBool: 0, //判断当前用户是否在团内|0=未在,1=在 userBool: 0, //判断当前用户是否在团内|0=未在,1=在
pinkAll: [], //团员 pinkAll: [], //团员
pinkT: [], //团长信息 pinkT: [], //团长信息
storeCombination: [], //拼团产品 storeCombination: [], //拼团产品
pinkId: 0, pinkId: 0,
count: 0, //拼团剩余人数 count: 0, //拼团剩余人数
iShidden: false iShidden: false
}; };
}, },
watch: { watch: {
$yroute(n) { $yroute(n) {
var that = this; var that = this;
if (n.name === NAME) { if (n.name === NAME) {
that.pinkId = that.$yroute.query.id; that.pinkId = that.$yroute.query.id;
that.getCombinationPink(); that.getCombinationPink();
} }
} }
}, },
mounted: function() { mounted: function() {
var that = this; var that = this;
let url = handleQrCode(); let url = handleQrCode();
if (url) { if (url) {
that.pinkId = url.pinkId; that.pinkId = url.pinkId;
} else { } else {
that.pinkId = that.$yroute.query.id; that.pinkId = that.$yroute.query.id;
} }
that.getCombinationPink(); that.getCombinationPink();
}, },
methods: { methods: {
pay: function() { pay: function() {
var that = this; var that = this;
var data = {}; var data = {};
data.productId = that.storeCombination.productId; data.productId = that.storeCombination.productId;
data.cartNum = that.pinkT.totalNum; data.cartNum = that.pinkT.totalNum;
data.uniqueId = ""; data.uniqueId = "";
data.combinationId = that.storeCombination.id; data.combinationId = that.storeCombination.id;
data.new = 1; data.new = 1;
postCartAdd(data) postCartAdd(data)
.then(res => { .then(res => {
that.$yrouter.push({ that.$yrouter.push({
path: "/pages/order/OrderSubmission/index", path: "/pages/order/OrderSubmission/index",
query: { query: {
id: res.data.cartId, id: res.data.cartId,
pinkid: that.pinkId pinkid: that.pinkId
} }
}); });
}) })
.catch(err => { .catch(err => {
uni.showToast({ uni.showToast({
title: err.msg || err.response.data.msg, title: err.msg || err.response.data.msg,
icon: 'none', icon: "none",
duration: 2000 duration: 2000
}); });
}); });
}, },
goPoster: function() { goPoster: function() {
var that = this; var that = this;
this.$yrouter.push({ this.$yrouter.push({
path: "/pages/activity/Poster/index", path: "/pages/activity/Poster/index",
query: { query: {
id: that.pinkId, id: that.pinkId,
type: 1 type: 1
} }
}); });
}, },
goOrder: function() { goOrder: function() {
var that = this; var that = this;
this.$yrouter.push({ this.$yrouter.push({
path: "/pages/order/OrderDetails/index", path: "/pages/order/OrderDetails/index",
query: { query: {
id: that.currentPinkOrder id: that.currentPinkOrder
} }
}); });
}, },
//拼团列表 //拼团列表
goList: function() { goList: function() {
this.$yrouter.push({ this.$yrouter.push({
path: "/pages/activity/GoodsGroup/index" path: "/pages/activity/GoodsGroup/index"
}); });
}, },
//拼团详情 //拼团详情
goDetail: function(id) { goDetail: function(id) {
this.$yrouter.push({ this.$yrouter.push({
path: "/pages/activity/GroupDetails/index", path: "/pages/activity/GroupDetails/index",
query: { query: {
id id
} }
}); });
}, },
//拼团信息 //拼团信息
getCombinationPink: function() { getCombinationPink: function() {
var that = this; var that = this;
getCombinationPink(that.pinkId).then(res => { getCombinationPink(that.pinkId).then(res => {
that.$set(that, "storeCombination", res.data.storeCombination); that.$set(that, "storeCombination", res.data.storeCombination);
that.$set(that, "pinkT", res.data.pinkT); that.$set(that, "pinkT", res.data.pinkT);
that.$set(that, "pinkAll", res.data.pinkAll); that.$set(that, "pinkAll", res.data.pinkAll);
that.$set(that, "count", res.data.count); that.$set(that, "count", res.data.count);
that.$set(that, "userBool", res.data.userBool); that.$set(that, "userBool", res.data.userBool);
that.$set(that, "pinkBool", res.data.pinkBool); that.$set(that, "pinkBool", res.data.pinkBool);
that.$set(that, "isOk", res.data.isOk); that.$set(that, "isOk", res.data.isOk);
that.$set(that, "currentPinkOrder", res.data.currentPinkOrder); that.$set(that, "currentPinkOrder", res.data.currentPinkOrder);
}); });
}, },
//拼团取消 //拼团取消
getCombinationRemove: function() { getCombinationRemove: function() {
var that = this; var that = this;
getCombinationRemove({ getCombinationRemove({
id: that.pinkId, id: that.pinkId,
cid: that.storeCombination.id cid: that.storeCombination.id
}) })
.then(res => { .then(res => {
uni.showToast({ uni.showToast({
title: res.msg, title: res.msg,
icon: "none", icon: "none",
duration: 2000 duration: 2000
}); });
}) })
.catch(res => { .catch(res => {
uni.showToast({ uni.showToast({
title: res.msg, title: res.msg,
icon: "none", icon: "none",
duration: 2000 duration: 2000
}); });
}); });
}, },
lookAll: function() { lookAll: function() {
this.iShidden = !this.iShidden; this.iShidden = !this.iShidden;
} }
} }
}; };
</script> </script>
<style lang="less">
.tips-warp{
text-align: center;
margin-top: 20rpx;
}
</style>

View File

@ -11,12 +11,12 @@
<view class="times"> <view class="times">
<view>距秒杀结束仅剩</view> <view>距秒杀结束仅剩</view>
<count-down <count-down
:is-day="false" :isDay="false"
:tip-text="''" :tipText="false"
:day-text="''" :dayText="false"
:hour-text="' : '" :hourText="' : '"
:minute-text="' : '" :minuteText="' : '"
:second-text="''" :secondText="false"
:datatime="datatime" :datatime="datatime"
></count-down> ></count-down>
</view> </view>

View File

@ -1,6 +1,6 @@
<template> <template>
<view class="shoppingCart"> <view class="shoppingCart">
<view class v-if="userInfo.uid"> <view v-if="$store.getters.token||userInfo.uid">
<view class="labelNav acea-row row-around row-middle"> <view class="labelNav acea-row row-around row-middle">
<view class="item"> <view class="item">
<text class="iconfont icon-xuanzhong"></text> <text class="iconfont icon-xuanzhong"></text>

View File

@ -1,364 +1,384 @@
<template> <template>
<view class="user"> <view class="user">
<view v-if="userInfo.uid"> <view v-if="$store.getters.token||userInfo.uid">
<view class="header bg-color-red acea-row row-between-wrapper"> <view class="header bg-color-red acea-row row-between-wrapper">
<view class="picTxt acea-row row-between-wrapper"> <view class="picTxt acea-row row-between-wrapper">
<view class="pictrue"> <view class="pictrue">
<image :src="userInfo.avatar" /> <image :src="userInfo.avatar" />
</view> </view>
<view class="text"> <view class="text">
<view class="acea-row row-middle"> <view class="acea-row row-middle">
<view class="name line1">{{ userInfo.nickname }}</view> <view class="name line1">{{ userInfo.nickname }}</view>
<view class="member acea-row row-middle" v-if="userInfo.vip"> <view class="member acea-row row-middle" v-if="userInfo.vip">
<image :src="userInfo.vipIcon" /> <image :src="userInfo.vipIcon" />
<text>{{ userInfo.vipName }}</text> <text>{{ userInfo.vipName }}</text>
</view> </view>
</view> </view>
<view @click="goPersonalData()" class="id" v-if="userInfo.phone"> <view @click="goPersonalData()" class="id" v-if="userInfo.phone">
<text>ID{{ userInfo.uid || 0}}</text> <text>ID{{ userInfo.uid || 0}}</text>
<text class="iconfont icon-bianji1"></text> <text class="iconfont icon-bianji1"></text>
</view> </view>
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber" class="binding" v-else> <button
<text>绑定手机号</text> open-type="getPhoneNumber"
</button> @getphonenumber="getPhoneNumber"
</view> class="binding"
</view> v-else
<text class="iconfont icon-shezhi" @click="goPersonalData()"></text> >
</view> <text>绑定手机号</text>
<view class="wrapper"> </button>
<view class="nav acea-row row-middle"> </view>
<view @click="goUserAccount()" class="item"> </view>
<text>我的余额</text> <text class="iconfont icon-shezhi" @click="goPersonalData()"></text>
<text class="num">{{ userInfo.nowMoney || 0 }}</text> </view>
</view> <view class="wrapper">
<view @click="goUserPromotion()" class="item" v-if="userInfo.isPromoter === 1 || userInfo.statu === 2"> <view class="nav acea-row row-middle">
<text>当前佣金</text> <view @click="goUserAccount()" class="item">
<text class="num">{{ userInfo.brokeragePrice || 0 }}</text> <text>我的余额</text>
</view> <text class="num">{{ userInfo.nowMoney || 0 }}</text>
<view @click="goIntegral()" class="item" v-else> </view>
<text>当前积分</text> <view
<text class="num">{{ userInfo.integral || 0 }}</text> @click="goUserPromotion()"
</view> class="item"
<view @click="goUserCoupon()" class="item"> v-if="userInfo.isPromoter === 1 || userInfo.statu === 2"
<text>优惠券</text> >
<text class="num">{{ userInfo.couponCount || 0 }}</text> <text>当前佣金</text>
</view> <text class="num">{{ userInfo.brokeragePrice || 0 }}</text>
</view> </view>
<view class="myOrder"> <view @click="goIntegral()" class="item" v-else>
<view class="title acea-row row-between-wrapper"> <text>当前积分</text>
<text>我的订单</text> <text class="num">{{ userInfo.integral || 0 }}</text>
<text @click="goMyOrder()" class="allOrder"> </view>
<text>全部订单</text> <view @click="goUserCoupon()" class="item">
<text class="iconfont icon-jiantou"></text> <text>优惠券</text>
</text> <text class="num">{{ userInfo.couponCount || 0 }}</text>
</view> </view>
<view class="orderState acea-row row-middle"> </view>
<view @click="goMyOrder(0)" class="item"> <view class="myOrder">
<view class="pictrue"> <view class="title acea-row row-between-wrapper">
<image src="@/static/images/dfk.png" /> <text>我的订单</text>
<text class="order-status-num" v-if="userInfo.orderStatusNum.unpaidCount > 0">{{ userInfo.orderStatusNum.unpaidCount }}</text> <text @click="goMyOrder()" class="allOrder">
</view> <text>全部订单</text>
<view>待付款</view> <text class="iconfont icon-jiantou"></text>
</view> </text>
<view @click="goMyOrder(1)" class="item"> </view>
<view class="pictrue"> <view class="orderState acea-row row-middle">
<image src="@/static/images/dfh.png" /> <view @click="goMyOrder(0)" class="item">
<text class="order-status-num" v-if="userInfo.orderStatusNum.unshippedCount > 0">{{ userInfo.orderStatusNum.unshippedCount }}</text> <view class="pictrue">
</view> <image src="@/static/images/dfk.png" />
<view>待发货</view> <text
</view> class="order-status-num"
<view @click="goMyOrder(2)" class="item"> v-if="userInfo.orderStatusNum.unpaidCount > 0"
<view class="pictrue"> >{{ userInfo.orderStatusNum.unpaidCount }}</text>
<image src="@/static/images/dsh.png" /> </view>
<text class="order-status-num" v-if="userInfo.orderStatusNum.receivedCount > 0">{{ userInfo.orderStatusNum.receivedCount }}</text> <view>待付款</view>
</view> </view>
<text>待收货</text> <view @click="goMyOrder(1)" class="item">
</view> <view class="pictrue">
<view @click="goMyOrder(3)" class="item"> <image src="@/static/images/dfh.png" />
<view class="pictrue"> <text
<image src="@/static/images/dpj.png" /> class="order-status-num"
<text class="order-status-num" v-if="userInfo.orderStatusNum.evaluatedCount > 0">{{ userInfo.orderStatusNum.evaluatedCount }}</text> v-if="userInfo.orderStatusNum.unshippedCount > 0"
</view> >{{ userInfo.orderStatusNum.unshippedCount }}</text>
<text>待评价</text> </view>
</view> <view>待发货</view>
<view @click="goReturnList()" class="item"> </view>
<view class="pictrue"> <view @click="goMyOrder(2)" class="item">
<image src="@/static/images/sh.png" /> <view class="pictrue">
<text class="order-status-num" v-if="userInfo.orderStatusNum.refundCount > 0">{{ userInfo.orderStatusNum.refundCount }}</text> <image src="@/static/images/dsh.png" />
</view> <text
<text>售后/退款</text> class="order-status-num"
</view> v-if="userInfo.orderStatusNum.receivedCount > 0"
</view> >{{ userInfo.orderStatusNum.receivedCount }}</text>
</view> </view>
<view class="myService"> <text>待收货</text>
<view class="title acea-row row-middle"> </view>
<text>我的服务</text> <view @click="goMyOrder(3)" class="item">
</view> <view class="pictrue">
<view class="serviceList acea-row row-middle"> <image src="@/static/images/dpj.png" />
<template v-for="(item, MyMenusIndex) in MyMenus"> <text
<view class="item" :key="MyMenusIndex" @click="goPages(MyMenusIndex)" v-if="item.url&&item.id!='230'"> class="order-status-num"
<view class="pictrue"> v-if="userInfo.orderStatusNum.evaluatedCount > 0"
<image :src="item.pic" /> >{{ userInfo.orderStatusNum.evaluatedCount }}</text>
</view> </view>
<view>{{ item.name }}</view> <text>待评价</text>
</view> </view>
</template> <view @click="goReturnList()" class="item">
</view> <view class="pictrue">
</view> <image src="@/static/images/sh.png" />
<!--<view --> <text
<!--class="item"--> class="order-status-num"
<!--@click="changeswitch(true)"--> v-if="userInfo.orderStatusNum.refundCount > 0"
<!--v-if="userInfo.phone && isWeixin"--> >{{ userInfo.orderStatusNum.refundCount }}</text>
<!--&gt;--> </view>
<!--<view class="pictrue"><image src="@/static/images/switch.png" /></view>--> <text>售后/退款</text>
<!--<view>账号切换</!--<view>--> </view>
<!--</!--<view>--> </view>
<!-- </view> </view>
<view class="myService">
<view class="title acea-row row-middle">
<text>我的服务</text>
</view>
<view class="serviceList acea-row row-middle">
<template v-for="(item, MyMenusIndex) in MyMenus">
<view
class="item"
:key="MyMenusIndex"
@click="goPages(MyMenusIndex)"
v-if="item.url&&item.id!='230'"
>
<view class="pictrue">
<image :src="item.pic" />
</view>
<view>{{ item.name }}</view>
</view>
</template>
</view>
</view>
<!--<view -->
<!--class="item"-->
<!--@click="changeswitch(true)"-->
<!--v-if="userInfo.phone && isWeixin"-->
<!--&gt;-->
<!--<view class="pictrue"><image src="@/static/images/switch.png" /></view>-->
<!--<view>账号切换</!--<view>-->
<!--</!--<view>-->
<!-- </view>
</view>--> </view>-->
</view> </view>
<view class="by"> <view class="by">
<text class="by-text">By@意象</text> <text class="by-text">By@意象</text>
</view> </view>
<view class="by"> <view class="by">
<view> <view>
<text class="by-text">Copyright © 2020</text> <text class="by-text">Copyright © 2020</text>
</view> </view>
<view> <view>
<text class="by-text">漯河市大有前途网络科技有限公司</text> <text class="by-text">漯河市大有前途网络科技有限公司</text>
</view> </view>
</view> </view>
<view class="footer-line-height"></view> <view class="footer-line-height"></view>
<!-- <SwitchWindow <!-- <SwitchWindow
v-on:changeswitch="changeswitch" v-on:changeswitch="changeswitch"
:switchActive="switchActive" :switchActive="switchActive"
:login_type="userInfo.login_type" :login_type="userInfo.login_type"
></SwitchWindow> --> ></SwitchWindow>-->
</view> </view>
<Authorization v-if="!$store.getters.token" /> <Authorization v-if="!$store.getters.token" />
</view> </view>
</template> </template>
<script> <script>
import { import { getUser, getMenuUser, bindingPhone } from "@/api/user";
getUser, import { isWeixin, VUE_APP_RESOURCES_URL } from "@/utils";
getMenuUser, import SwitchWindow from "@/components/SwitchWindow";
bindingPhone import Authorization from "@/pages/authorization/index";
} from "@/api/user"; import { mapGetters } from "vuex";
import {
isWeixin,
VUE_APP_RESOURCES_URL
} from "@/utils";
import SwitchWindow from "@/components/SwitchWindow";
import Authorization from "@/pages/authorization/index";
import {
mapGetters
} from "vuex";
const NAME = "User"; const NAME = "User";
export default { export default {
name: NAME, name: NAME,
components: { components: {
SwitchWindow, SwitchWindow,
Authorization Authorization
}, },
props: {}, props: {},
data: function() { data: function() {
return { return {
MyMenus: [], MyMenus: [],
switchActive: false, switchActive: false,
isWeixin: false isWeixin: false
}; };
}, },
computed: mapGetters(["userInfo"]), computed: mapGetters(["userInfo"]),
methods: { methods: {
goReturnList() { goReturnList() {
this.$yrouter.push("/pages/order/ReturnList/index"); this.$yrouter.push("/pages/order/ReturnList/index");
}, },
goMyOrder(type) { goMyOrder(type) {
this.$yrouter.push({ this.$yrouter.push({
path: "/pages/order/MyOrder/index", path: "/pages/order/MyOrder/index",
query: { query: {
type type
} }
}); });
}, },
goUserCoupon() { goUserCoupon() {
this.$yrouter.push("/pages/user/coupon/UserCoupon/index"); this.$yrouter.push("/pages/user/coupon/UserCoupon/index");
}, },
goIntegral() { goIntegral() {
this.$yrouter.push("/pages/user/signIn/Integral/index"); this.$yrouter.push("/pages/user/signIn/Integral/index");
}, },
goUserPromotion() { goUserPromotion() {
this.$yrouter.push("/pages/user/promotion/UserPromotion/index"); this.$yrouter.push("/pages/user/promotion/UserPromotion/index");
}, },
goUserAccount() { goUserAccount() {
this.$yrouter.push({ this.$yrouter.push({
path: "/pages/user/UserAccount/index" path: "/pages/user/UserAccount/index"
}); });
}, },
goPersonalData() { goPersonalData() {
this.$yrouter.push("/pages/user/PersonalData/index"); this.$yrouter.push("/pages/user/PersonalData/index");
}, },
getPhoneNumber: function(e) { getPhoneNumber: function(e) {
console.log(e.mp.detail); console.log(e.mp.detail);
// 判断一下这里是不是小程序 如果是小程序,走获取微信手机号进行绑定 // 判断一下这里是不是小程序 如果是小程序,走获取微信手机号进行绑定
if (e.mp.detail.errMsg == "getPhoneNumber:ok") { if (e.mp.detail.errMsg == "getPhoneNumber:ok") {
uni.showLoading({ uni.showLoading({
title: "绑定中" title: "绑定中"
}); });
// 获取当前环境的服务商 // 获取当前环境的服务商
uni.getProvider({ uni.getProvider({
service: "oauth", service: "oauth",
success: function(res) { success: function(res) {
console.log(res.provider); console.log(res.provider);
// 此处可以排除h5 // 此处可以排除h5
if (res.provider) { if (res.provider) {
uni.login({ uni.login({
success: loginRes => { success: loginRes => {
bindingPhone({ bindingPhone({
code: loginRes.code, code: loginRes.code,
encryptedData: e.mp.detail.encryptedData, encryptedData: e.mp.detail.encryptedData,
iv: e.mp.detail.iv iv: e.mp.detail.iv
}) })
.then(res => { .then(res => {
this.User(); this.User();
uni.hideLoading(); uni.hideLoading();
uni.showToast({ uni.showToast({
title: res.msg, title: res.msg,
icon: "success", icon: "success",
duration: 2000 duration: 2000
}); });
}) })
.catch(error => { .catch(error => {
uni.showToast({ uni.showToast({
title: error.msg || error.response.data.msg, title: error.msg || error.response.data.msg,
icon: "none", icon: "none",
duration: 2000 duration: 2000
}); });
}); });
} }
}); });
} }
} }
}); });
} else { } else {
uni.showToast({ uni.showToast({
title: "已拒绝授权", title: "已拒绝授权",
icon: "none", icon: "none",
duration: 2000 duration: 2000
}); });
} }
}, },
changeswitch: function(data) { changeswitch: function(data) {
this.switchActive = data; this.switchActive = data;
}, },
User: function() { User: function() {
let that = this; let that = this;
// getUser().then(res => { // getUser().then(res => {
// that.user = res.data; // that.user = res.data;
// that.orderStatusNum = res.data.orderStatusNum; // that.orderStatusNum = res.data.orderStatusNum;
// }); // });
}, },
MenuUser: function() { MenuUser: function() {
let that = this; let that = this;
getMenuUser().then(res => { getMenuUser().then(res => {
that.MyMenus = res.data.routine_my_menus; that.MyMenus = res.data.routine_my_menus;
}); });
}, },
goPages: function(index) { goPages: function(index) {
let url = this.MyMenus[index].uniapp_url; let url = this.MyMenus[index].uniapp_url;
if ( if (
url === "/pages/user/promotion/UserPromotion/index" && url === "/pages/user/promotion/UserPromotion/index" &&
this.userInfo.statu === 1 this.userInfo.statu === 1
) { ) {
if (!this.userInfo.isPromoter) { if (!this.userInfo.isPromoter) {
uni.showToast({ uni.showToast({
title: "您还没有推广权限!!", title: "您还没有推广权限!!",
icon: "none", icon: "none",
duration: 2000 duration: 2000
}); });
return; return;
} }
} }
if ( if (
url === "/pages/orderAdmin/OrderIndex/index" && url === "/pages/orderAdmin/OrderIndex/index" &&
!this.userInfo.adminid !this.userInfo.adminid
) { ) {
uni.showToast({ uni.showToast({
title: "您还不是管理员!!", title: "您还不是管理员!!",
icon: "none", icon: "none",
duration: 2000 duration: 2000
}); });
return; return;
} }
this.$yrouter.push({ this.$yrouter.push({
path: this.MyMenus[index].uniapp_url path: this.MyMenus[index].uniapp_url
}); });
} }
}, },
watch: { watch: {
userInfo() { userInfo() {
this.MenuUser(); this.MenuUser();
} }
}, },
onShow() { onShow() {
console.log(this.$store.getters.token) console.log(this.$store.getters.token);
console.log(this.userInfo); console.log(this.userInfo);
if (this.$store.getters.token) { if (this.$store.getters.token) {
this.User(); this.User();
this.MenuUser(); this.MenuUser();
this.isWeixin = isWeixin(); this.isWeixin = isWeixin();
} }
} }
}; };
</script> </script>
<style lang="less"> <style lang="less">
.footer-line-height { .footer-line-height {
height: 1*100rpx; height: 1 * 100rpx;
} }
.order-status-num { .order-status-num {
min-width: 0.33*100rpx; min-width: 0.33 * 100rpx;
background-color: #fff; background-color: #fff;
color: #00c17b; color: #00c17b;
border-radius: 15px; border-radius: 15px;
position: absolute; position: absolute;
right: -0.14*100rpx; right: -0.14 * 100rpx;
top: -0.15*100rpx; top: -0.15 * 100rpx;
font-size: 0.2*100rpx; font-size: 0.2 * 100rpx;
padding: 0 0.08*100rpx; padding: 0 0.08 * 100rpx;
border: 1px solid #00c17b; border: 1px solid #00c17b;
} }
.pictrue { .pictrue {
position: relative; position: relative;
} }
.switch-h5 { .switch-h5 {
margin-left: 0.2*100rpx; margin-left: 0.2 * 100rpx;
} }
.binding { .binding {
margin-top: 0.1*100rpx; margin-top: 0.1 * 100rpx;
display: inline-block; display: inline-block;
padding: 0.05*100rpx 0.2*100rpx; padding: 0.05 * 100rpx 0.2 * 100rpx;
background-color: #ca1f10; background-color: #ca1f10;
border-radius: 50px; border-radius: 50px;
font-size: 0.22*100rpx; font-size: 0.22 * 100rpx;
line-height: 1.5; line-height: 1.5;
border: 1px solid #e8695e; border: 1px solid #e8695e;
color: #ffffff; color: #ffffff;
} }
.by{ .by {
text-align:center; text-align: center;
margin-top: 30rpx margin-top: 30rpx;
} }
.by-text{ .by-text {
text-align:center; text-align: center;
font-size: 30rpx; font-size: 30rpx;
} }
</style> </style>

View File

@ -12,7 +12,7 @@
<view class="item acea-row row-between-wrapper"> <view class="item acea-row row-between-wrapper">
<view class="name">所在地区</view> <view class="name">所在地区</view>
<view class="picker acea-row row-between-wrapper select-value form-control"> <view class="picker acea-row row-between-wrapper select-value form-control">
<view class="address" @tap="openAddres2"> <view class="address" @tap="openAddres">
<!-- <picker <!-- <picker
@columnchange="addRessColumnchange" @columnchange="addRessColumnchange"
@change="changeAddress" @change="changeAddress"
@ -102,24 +102,21 @@ export default {
}, },
methods: { methods: {
openAddres() { openAddres() {
this.cityPickerValueDefault = [0, 0, 1];
this.$refs.simpleAddress.open();
},
openAddres2() {
// 根据 label 获取 // 根据 label 获取
if (this.address.province) { if (this.address.province) {
// 这个插件有个问题,直辖市的 city 必须得是 市辖区 // 这个插件有个问题,直辖市的 city 必须得是 市辖区
let str = "市"; try {
let city = this.address.city; let str = "市";
if (this.address.province.indexOf(str) != -1) { let city = this.address.city;
city = "市辖区"; if (this.address.province.indexOf(str) != -1) {
} city = "市辖区";
var index = this.$refs.simpleAddress.queryIndex( }
[this.address.province, city, this.address.district], var index = this.$refs.simpleAddress.queryIndex(
"label" [this.address.province, city, this.address.district],
); "label"
console.log(index); );
this.cityPickerValueDefault = index.index; this.cityPickerValueDefault = index.index;
} catch (error) {}
} }
this.$refs.simpleAddress.open(); this.$refs.simpleAddress.open();
@ -130,19 +127,12 @@ export default {
// this.cityPickerValueDefault = index.index; // this.cityPickerValueDefault = index.index;
// this.$refs.simpleAddress.open(); // this.$refs.simpleAddress.open();
}, },
openAddres3() {
// 根据value 获取
var index = this.$refs.simpleAddress.queryIndex(
[13, 1302, 130203],
"value"
);
console.log(index);
this.cityPickerValueDefault = index.index;
this.$refs.simpleAddress.open();
},
onConfirm(e) { onConfirm(e) {
this.pickerText = JSON.stringify(e); this.pickerText = JSON.stringify(e);
this.model2 = e.label; this.model2 = e.label;
this.address.province = e.labelArr[0] || "";
this.address.city = e.labelArr[1] || "";
this.address.district = e.labelArr[2] || "";
console.log(this.pickerText); console.log(this.pickerText);
}, },
getUserAddress: function() { getUserAddress: function() {

View File

@ -37,7 +37,7 @@ function baseRequest(options) {
// 如果接口需要登录,携带 token 去请求 // 如果接口需要登录,携带 token 去请求
options.headers = { options.headers = {
...options.headers, ...options.headers,
Authorization: options.login ? "Bearer " + token : null Authorization: "Bearer " + token
} }
// 如果需要登录才可访问的接口没有拿到 token 视为登录失效 // 如果需要登录才可访问的接口没有拿到 token 视为登录失效