Browse Source

优化细节

master
gaoxs 5 years ago
parent
commit
b4c76df22a
  1. 2
      assets/css/style.css
  2. 2
      assets/css/style.css.map
  3. 2
      assets/css/style.less
  4. 69
      components/CountDown.vue
  5. 12
      pages/activity/BargainRecord/index.vue
  6. 12
      pages/activity/DargainDetails/index.vue
  7. 12
      pages/activity/GoodsSeckill/index.vue
  8. 12
      pages/activity/GroupDetails/index.vue
  9. 456
      pages/activity/GroupRule/index.vue
  10. 12
      pages/activity/SeckillDetails/index.vue
  11. 2
      pages/shop/ShoppingCart/index.vue
  12. 708
      pages/user/User/index.vue
  13. 42
      pages/user/address/AddAddress/index.vue
  14. 2
      utils/request.js

2
assets/css/style.css

File diff suppressed because one or more lines are too long

2
assets/css/style.css.map

File diff suppressed because one or more lines are too long

2
assets/css/style.less

@ -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%;

69
components/CountDown.vue

@ -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: {

12
pages/activity/BargainRecord/index.vue

@ -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">

12
pages/activity/DargainDetails/index.vue

@ -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>

12
pages/activity/GoodsSeckill/index.vue

@ -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>

12
pages/activity/GroupDetails/index.vue

@ -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>

456
pages/activity/GroupRule/index.vue

@ -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>

12
pages/activity/SeckillDetails/index.vue

@ -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>

2
pages/shop/ShoppingCart/index.vue

@ -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>

708
pages/user/User/index.vue

@ -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>

42
pages/user/address/AddAddress/index.vue

@ -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() {

2
utils/request.js

@ -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 视为登录失效

Loading…
Cancel
Save