Commit a6040332 authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/viitto/mallapp

# Conflicts:
#	pages/cart/cart.vue
parents ba161133 29d5b80b
...@@ -104,7 +104,7 @@ export default { ...@@ -104,7 +104,7 @@ export default {
font-family: "oswald"; font-family: "oswald";
src: url("https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/smallapp/Oswald-Regular.ttf"); src: url("https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/smallapp/Oswald-Regular.ttf");
} }
*{ html,body{
font-family: "oswald" !important; font-family: "oswald" !important;
} }
swiper{ swiper{
......
...@@ -3,6 +3,10 @@ ...@@ -3,6 +3,10 @@
"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
}, },
"pages": [{ "pages": [{
"path": "pages/order/index/index"
},
{
"path": "pages/index/index" "path": "pages/index/index"
}, },
{ {
...@@ -49,10 +53,6 @@ ...@@ -49,10 +53,6 @@
}, },
{ {
"path": "pages/order/index" "path": "pages/order/index"
},
{
"path": "pages/order/index/index"
} }
], ],
"globalStyle": { "globalStyle": {
......
...@@ -53,6 +53,7 @@ ...@@ -53,6 +53,7 @@
export default { export default {
data(){ data(){
return{ return{
pageTitle:'收货地址',
contentHeight:0, contentHeight:0,
mainColor:'', mainColor:'',
msg:{ msg:{
...@@ -75,7 +76,9 @@ ...@@ -75,7 +76,9 @@
created(){ created(){
this.contentHeight = this.$utils.calcContentHeight(-40)+'px'; this.contentHeight = this.$utils.calcContentHeight(-40)+'px';
this.mainColor = this.$uiConfig.mainColor; this.mainColor = this.$uiConfig.mainColor;
uni.setNavigationBarTitle({
title: this.pageTitle,
});
}, },
onLoad: function (option) { //option为object类型,会序列化上个页面传递的参数 onLoad: function (option) { //option为object类型,会序列化上个页面传递的参数
if(option.u!=undefined){ if(option.u!=undefined){
......
...@@ -70,6 +70,7 @@ import auth from "../../components/auth/index.vue"; ...@@ -70,6 +70,7 @@ import auth from "../../components/auth/index.vue";
export default { export default {
data() { data() {
return { return {
pageTitle:'收货地址',
loading: true, loading: true,
list: [], list: [],
showAuth: false, showAuth: false,
...@@ -88,9 +89,23 @@ export default { ...@@ -88,9 +89,23 @@ export default {
this.mainColor = this.$uiConfig.mainColor; this.mainColor = this.$uiConfig.mainColor;
}, },
mounted() {
let currentPages = getCurrentPages();
let u = "/" + currentPages[currentPages.length - 1].route;
let pages = wx.getStorageSync("basedata")
? wx.getStorageSync("basedata").bar_title
: [];
pages.forEach((x) => {
if (x.value == u) {
this.pageTitle = x.new_name ? x.new_name : x.name;
}
});
uni.setNavigationBarTitle({
title: this.pageTitle,
});
},
onLoad() { onLoad() {
console.log(uni.getStorageSync("basedata")); this.u = wx.getStorageSync("userinfo");
this.u = uni.getStorageSync("userinfo");
if (!this.u) { if (!this.u) {
this.u = { this.u = {
nickName: "未登录", nickName: "未登录",
...@@ -190,9 +205,7 @@ export default { ...@@ -190,9 +205,7 @@ export default {
}); });
} }
}, },
mounted() {
}
}; };
</script> </script>
......
<template> <template>
<div class="cartStyle" v-if="!isloading"> <div class="cartStyle" v-if="!isloading" :style="{ height: contentHeight }">
<view <view
style=" style="
display: flex; display: flex;
...@@ -26,143 +26,169 @@ ...@@ -26,143 +26,169 @@
mode="car" mode="car"
></u-empty> ></u-empty>
<template v-if="list.length > 0"> <view
<view v-if="list.length > 0"
class="cartList" style="
:style="{ 'margin-bottom': listbottom }" height: calc(100vh - 60px);
v-for="(c, i) in list" width: calc(100vw);
:key="i" overflow: hidden;
padding-top: 10px;
"
>
<scroll-view
:scroll-y="true"
:enable-back-to-top="true"
:enable-flex="true"
:style="{ height: '100%' }"
> >
<view <template v-if="list.length > 0">
style="
padding: 0 12px 12px 12px;
border-bottom: 1rpx solid #f5f5f5;
width: 100%;
"
>
<u-checkbox-group @change="mch_SelectAll(c.checked, i)">
<u-checkbox v-model="c.checked" shape="circle" :active-color="mc">{{
c.name
}}</u-checkbox>
</u-checkbox-group>
</view>
<view
class="cartList_item"
v-for="(item, index) in c.goods_list"
:key="index"
:name="item.name"
>
<u-checkbox-group
v-if="item.new_status == 0 || editType == true"
@change="clickcheckbox(item.checked, item.attrs.price, index, i)"
>
<u-checkbox
v-model="item.checked"
shape="circle"
:active-color="mc"
></u-checkbox>
</u-checkbox-group>
<Text
v-if="item.new_status != 0 && editType == false"
style="color: #a0a09d; width: 22px;"
>失效</Text
>
<image
:src="
item.attrs.pic_url ? item.attrs.pic_url : item.goods.cover_pic
"
mode="aspectFill"
style="
width: 150rpx;
height: 150rpx;
margin-left: 30rpx;
border-radius: 5px;
"
/>
<view <view
style=" class="cartList"
display: flex; :style="{ 'margin-bottom': listbottom }"
flex-direction: column; v-for="(c, i) in list"
justify-content: space-between; :key="i"
width: 460rpx;
height: 150rpx;
margin-left: 20rpx;
"
> >
<Text
style="
font-size: 28rpx;
width: 460rpx;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
"
>{{ item.goods.name }}</Text
>
<view <view
style=" style="
width: 460rpx; padding: 0 12px 12px 12px;
overflow: hidden; border-bottom: 1rpx solid #f5f5f5;
white-space: nowrap; width: 100%;
text-overflow: ellipsis;
" "
> >
<view v-for="(attr, inde2x) in item.attrs.attr" :key="inde2x"> <u-checkbox-group @change="mch_SelectAll(c.checked, i)">
<Text <u-checkbox
style="color: #a0a09d; font-size: 24rpx; margin-right: 5rpx;" v-model="c.checked"
>{{ attr.attr_group_name }}:{{ attr.attr_name }}</Text shape="circle"
:active-color="mc"
>{{ c.name }}</u-checkbox
> >
</view> </u-checkbox-group>
</view> </view>
<view <view
style=" class="cartList_item"
display: flex; v-for="(item, index) in c.goods_list"
flex-direction: row; :key="index"
align-items: center; :name="item.name"
justify-content: space-between;
"
> >
<Text style="font-size: 30rpx;" :style="{ color: mc }" <u-checkbox-group
>¥<Text style="40rpx">{{ item.attrs.price }}</Text></Text v-if="item.new_status == 0 || editType == true"
@change="
clickcheckbox(item.checked, item.attrs.price, index, i)
"
> >
<!-- <u-number-box :value="item.num" :min="1" :max='100' :input-width="100" @change="valChange(i,index, item.num,item.attrs.price,$event)"></u-number-box> --> <u-checkbox
<view class="item_input"> v-model="item.checked"
<view shape="circle"
class="item_input_l" :active-color="mc"
:style="{ ></u-checkbox>
color: item.num == 1 ? '#E2E2E2' : '#9B9B9B', </u-checkbox-group>
}" <Text
@click="reduce(i, index, item.attrs.price)" v-if="item.new_status != 0 && editType == false"
>-</view style="color: #a0a09d; width: 22px;"
> >失效</Text
<input >
type="number" <image
class="item_input_c" :src="
:value="item.num" item.attrs.pic_url ? item.attrs.pic_url : item.goods.cover_pic
@blur=" "
inputblur(i, index, item.num, item.attrs.price, $event) mode="aspectFill"
style="
width: 150rpx;
height: 150rpx;
margin-left: 30rpx;
border-radius: 5px;
"
/>
<view
style="
display: flex;
flex-direction: column;
justify-content: space-between;
width: 460rpx;
height: 150rpx;
margin-left: 20rpx;
"
>
<Text
style="
font-size: 28rpx;
width: 460rpx;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
" "
@input=" >{{ item.goods.name }}</Text
onKeyInput(i, index, item.num, item.attrs.price, $event) >
<view
style="
width: 460rpx;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
" "
/> >
<view v-for="(attr, inde2x) in item.attrs.attr" :key="inde2x">
<Text
style="
color: #a0a09d;
font-size: 24rpx;
margin-right: 5rpx;
"
>{{ attr.attr_group_name }}:{{ attr.attr_name }}</Text
>
</view>
</view>
<view <view
class="item_input_r" style="
style="color: #9b9b9b;" display: flex;
@click="plus(i, index, item.attrs.price)" flex-direction: row;
>+</view align-items: center;
justify-content: space-between;
"
> >
<Text style="font-size: 30rpx;" :style="{ color: mc }"
>¥<Text style="40rpx">{{ item.attrs.price }}</Text></Text
>
<!-- <u-number-box :value="item.num" :min="1" :max='100' :input-width="100" @change="valChange(i,index, item.num,item.attrs.price,$event)"></u-number-box> -->
<view class="item_input">
<view
class="item_input_l"
:style="{
color: item.num == 1 ? '#E2E2E2' : '#9B9B9B',
}"
@click="reduce(i, index, item.attrs.price)"
>-</view
>
<input
type="number"
class="item_input_c"
:value="item.num"
@blur="
inputblur(i, index, item.num, item.attrs.price, $event)
"
@input="
onKeyInput(i, index, item.num, item.attrs.price, $event)
"
/>
<view
class="item_input_r"
style="color: #9b9b9b;"
@click="plus(i, index, item.attrs.price)"
>+</view
>
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
</view> </template>
</view> </scroll-view>
</template> </view>
<view class="box_bottom" :style="{ 'margin-bottom': bottommargin }"> <view class="box_bottom">
<div style="margin-left: 30rpx;"> <div style="margin-left: 30rpx;">
<u-checkbox-group @change="SelectAll"> <u-checkbox-group @change="SelectAll">
<u-checkbox v-model="allchecked" shape="circle" active-color="red" <u-checkbox v-model="allchecked" shape="circle" :active-color="mc"
>全选</u-checkbox >全选</u-checkbox
> >
</u-checkbox-group> </u-checkbox-group>
...@@ -245,34 +271,33 @@ export default { ...@@ -245,34 +271,33 @@ export default {
: []; : [];
if (this.cstyle.cat_style == "4") { if (this.cstyle.cat_style == "4") {
// this.searchStyle.p = {
// position: "fixed",
// top: this.navHeight,
// width: "100%",
// left: "0",
// };
} }
}, },
mounted() { mounted() {
let currentPages = getCurrentPages(); let currentPages = getCurrentPages();
let c = this.$uiConfig.is_bang ? 80 : 52; let c = this.$uiConfig.is_bang ? 80 : 52;
this.bottommargin = c - 2 + "px"; this.bottommargin = c - 2 + "px";
this.listbottom = c - 2 + 50 + "px"; this.listbottom = c + 44 + "px";
this.contentHeight = this.$utils.calcContentHeight(c); this.contentHeight = this.$utils.calcContentHeight(c - 42) + "px";
let u = "/" + currentPages[currentPages.length - 1].route; let u = "/" + currentPages[currentPages.length - 1].route;
let pages = uni.getStorageSync("basedata") let pages = wx.getStorageSync("basedata")
? uni.getStorageSync("basedata").bar_title ? wx.getStorageSync("basedata").bar_title
: []; : [];
pages.forEach((x) => { pages.forEach((x) => {
if (x.value == u) { if (x.value == u) {
this.pageTitle = x.new_name ? x.new_name : x.name; this.pageTitle = x.new_name ? x.new_name : x.name;
} }
}); });
uni.setNavigationBarTitle({
title: this.pageTitle,
});
this.init(); this.init();
}, },
methods: { methods: {
goHome() { goHome() {
uni.redirectTo({ url: "/pages/index/main" }); uni.redirectTo({
url: "/pages/index/main",
});
}, },
init() { init() {
uni.showNavigationBarLoading(); uni.showNavigationBarLoading();
...@@ -552,18 +577,18 @@ export default { ...@@ -552,18 +577,18 @@ export default {
if (this.checkCount > 0) { if (this.checkCount > 0) {
let forms = { let forms = {
list: [], list: [],
address_id:0, address_id: 0,
}; };
this.list.forEach((y) => { this.list.forEach((y) => {
let good={ let good = {
mch_id:y.mch_id, mch_id: y.mch_id,
goods_list: [], goods_list: [],
distance: 0, distance: 0,
remark: "", remark: "",
order_form: [], order_form: [],
use_integral: 0, use_integral: 0,
user_coupon_id: 0, user_coupon_id: 0,
} };
y.goods_list.forEach((x) => { y.goods_list.forEach((x) => {
if (x.checked) { if (x.checked) {
let g = { let g = {
...@@ -579,10 +604,10 @@ export default { ...@@ -579,10 +604,10 @@ export default {
attr_group_id: x.attr_group_id, attr_group_id: x.attr_group_id,
}); });
}); });
good.goods_list.push(g) good.goods_list.push(g);
} }
}); });
forms.list.push(good) forms.list.push(good);
}); });
uni.navigateTo({ uni.navigateTo({
url: url:
...@@ -608,18 +633,22 @@ export default { ...@@ -608,18 +633,22 @@ export default {
position: relative; position: relative;
font-family: "oswald"; font-family: "oswald";
} }
.cartStyle .u-checkbox__label { .cartStyle .u-checkbox__label {
margin-left: 12px; margin-left: 12px;
} }
.cartStyle .grid-text { .cartStyle .grid-text {
font-size: 24rpx; font-size: 24rpx;
margin-top: 4rpx; margin-top: 4rpx;
color: #939393; color: #939393;
} }
.cartStyle .grid-text_r { .cartStyle .grid-text_r {
margin-top: 4rpx; margin-top: 4rpx;
margin-right: 10rpx; margin-right: 10rpx;
} }
.cartStyle .cartList { .cartStyle .cartList {
width: 100%; width: 100%;
display: flex; display: flex;
...@@ -627,6 +656,7 @@ export default { ...@@ -627,6 +656,7 @@ export default {
align-items: center; align-items: center;
overflow-y: hidden; overflow-y: hidden;
} }
.cartStyle .cartList .cartList_item { .cartStyle .cartList .cartList_item {
width: 100%; width: 100%;
padding: 40rpx 30rpx; padding: 40rpx 30rpx;
...@@ -635,6 +665,7 @@ export default { ...@@ -635,6 +665,7 @@ export default {
align-items: center; align-items: center;
border-bottom: 1rpx solid #f5f5f5; border-bottom: 1rpx solid #f5f5f5;
} }
.cartList .cartList_item .item_input { .cartList .cartList_item .item_input {
width: 200rpx; width: 200rpx;
height: 60rpx; height: 60rpx;
...@@ -644,6 +675,7 @@ export default { ...@@ -644,6 +675,7 @@ export default {
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
} }
.cartList .item_input .item_input_l, .cartList .item_input .item_input_l,
.item_input_r { .item_input_r {
width: 50rpx; width: 50rpx;
...@@ -653,16 +685,18 @@ export default { ...@@ -653,16 +685,18 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.cartStyle .item_input .item_input_c { .cartStyle .item_input .item_input_c {
text-align: center; text-align: center;
width: 50rpx; width: 50rpx;
height: 60rpx; height: 60rpx;
font-size: 20rpx; font-size: 20rpx;
} }
.cartStyle .box_bottom { .cartStyle .box_bottom {
width: 100%; width: 100%;
height: 50px; height: 50px;
position: fixed; position: absolute;
background: #fff; background: #fff;
left: 0; left: 0;
bottom: 0; bottom: 0;
...@@ -673,6 +707,7 @@ export default { ...@@ -673,6 +707,7 @@ export default {
border-top: 1rpx solid #f5f5f5; border-top: 1rpx solid #f5f5f5;
z-index: 999; z-index: 999;
} }
.cartStyle .bottom_btn { .cartStyle .bottom_btn {
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -680,6 +715,7 @@ export default { ...@@ -680,6 +715,7 @@ export default {
width: 250rpx; width: 250rpx;
height: 50px; height: 50px;
} }
.cartStyle .Deletestyle { .cartStyle .Deletestyle {
margin-right: 40rpx; margin-right: 40rpx;
} }
......
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
export default { export default {
data() { data() {
return { return {
pageTitle:'我的收藏',
loading: true, loading: true,
contentHeight:0, contentHeight:0,
showAuth:false, showAuth:false,
...@@ -84,6 +85,21 @@ ...@@ -84,6 +85,21 @@
this.contentHeight = this.$utils.calcContentHeight(-40)+'px'; this.contentHeight = this.$utils.calcContentHeight(-40)+'px';
this.init() this.init()
}, },
mounted() {
let currentPages = getCurrentPages();
let u = "/" + currentPages[currentPages.length-1].route;
let pages = wx.getStorageSync("basedata")
? wx.getStorageSync("basedata").bar_title
: [];
pages.forEach((x) => {
if (x.value == u) {
this.pageTitle = x.new_name ? x.new_name : x.name;
}
});
uni.setNavigationBarTitle({
title: this.pageTitle,
});
},
onLoad(){ onLoad(){
this.u = uni.getStorageSync("userinfo"); this.u = uni.getStorageSync("userinfo");
if (!this.u) { if (!this.u) {
...@@ -185,6 +201,7 @@ ...@@ -185,6 +201,7 @@
margin-bottom: 3px; margin-bottom: 3px;
font-size: 13px; font-size: 13px;
margin: 7px 10px; margin: 7px 10px;
height: 36px;
} }
.favoriteStyle .u-good-list .good .good-info { .favoriteStyle .u-good-list .good .good-info {
display: flex; display: flex;
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
</view> </view>
<view v-if="g.length > 0" <view v-if="g.length > 0"
style=" style="
height: calc(100vh - 40px); height: calc(100vh - 50px);
width: calc(100vw); width: calc(100vw);
overflow: hidden; overflow: hidden;
padding-top: 10px; padding-top: 10px;
...@@ -47,6 +47,8 @@ ...@@ -47,6 +47,8 @@
<view class="cBox_item" v-for="(cx, ci) in item.goods" :key="ci" > <view class="cBox_item" v-for="(cx, ci) in item.goods" :key="ci" >
<view class="good-img" @click="clickHandler(cx.goods_id)"> <view class="good-img" @click="clickHandler(cx.goods_id)">
<image :src="cx.goodsWarehouse.cover_pic" style="width: 100%; height: 100%;" /> <image :src="cx.goodsWarehouse.cover_pic" style="width: 100%; height: 100%;" />
<image src="../../../static/images/icon/plugins-out.png" v-if="item.goods_num==0"
style="width: 100%; height: 100%;position: absolute;left:0;top:0;background: #000;opacity: 0.6;" />
</view> </view>
<view class="good-info"> <view class="good-info">
<Text class='good-name' @click="clickHandler(cx.goods_id)">{{cx.goodsWarehouse.name}}</Text> <Text class='good-name' @click="clickHandler(cx.goods_id)">{{cx.goodsWarehouse.name}}</Text>
...@@ -60,14 +62,15 @@ ...@@ -60,14 +62,15 @@
</view> </view>
</view> </view>
<u-divider
contentPosition="center"
v-if="isover"
:margin-top="20"
:margin-bottom="20"
bg-color='#f3f4f6'
>没有更多足迹了</u-divider>
</scroll-view> </scroll-view>
<u-divider
contentPosition="center"
v-if="isover"
:margin-top="20"
:margin-bottom="20"
>没有更多商品了</u-divider>
</view> </view>
<!-- <auth v-if="showAuth" @changeuserinfo="reloadUserinfo"></auth> --> <!-- <auth v-if="showAuth" @changeuserinfo="reloadUserinfo"></auth> -->
<view class="loading" v-show="loading"> <view class="loading" v-show="loading">
...@@ -128,6 +131,7 @@ ...@@ -128,6 +131,7 @@
export default { export default {
data() { data() {
return { return {
pageTitle:"我的足迹",
isloading:true, isloading:true,
loading:false, loading:false,
loading2:false, loading2:false,
...@@ -165,6 +169,21 @@ ...@@ -165,6 +169,21 @@
this.fun_date(0) this.fun_date(0)
}, },
mounted() {
let currentPages = getCurrentPages();
let u = "/" + currentPages[currentPages.length-1].route;
let pages = wx.getStorageSync("basedata")
? wx.getStorageSync("basedata").bar_title
: [];
pages.forEach((x) => {
if (x.value == u) {
this.pageTitle = x.new_name ? x.new_name : x.name;
}
});
uni.setNavigationBarTitle({
title: this.pageTitle,
});
},
onLoad(){ onLoad(){
this.u = uni.getStorageSync("userinfo"); this.u = uni.getStorageSync("userinfo");
if (!this.u) { if (!this.u) {
...@@ -404,6 +423,7 @@ ...@@ -404,6 +423,7 @@
} }
.footStyle .good-img { .footStyle .good-img {
position: relative;
width: 100%; width: 100%;
height: 200rpx; height: 200rpx;
} }
......
<template> <template>
<view class="orderindexStyle" :style="{'height':contentHeight}"> <view class="orderindexStyle" :style="{ height: contentHeight }">
<u-tabs :list="list" :is-scroll="false" :current="current" @change="change" :active-color='mainColor' bg-color='#f3f4f6'></u-tabs> <u-tabs
<u-empty v-if="g.length==0" text="暂无相关订单" mode="order"></u-empty> :list="list"
:is-scroll="false"
<view v-if="g.length > 0" :current="current"
style=" @change="change"
height: calc(100vh - 50px); :active-color="mainColor"
width: calc(100vw); bg-color="#f3f4f6"
overflow: hidden; ></u-tabs>
padding-top: 10px; <u-empty v-if="g.length == 0" text="暂无相关订单" mode="order"></u-empty>
">
<scroll-view <view
:scroll-y="true" v-if="g.length > 0"
:enable-back-to-top="true" style="
:enable-flex="true" height: calc(100vh - 50px);
@scrolltolower="lower" width: calc(100vw);
:style="{ height: '100%' }"> overflow: hidden;
<view class="orderList"> padding-top: 10px;
<view class="listBox" v-for="(item, index) in g" :key="index"> "
<view class="listBox_t"> >
<Text >订单号:{{item.order_no}}</Text> <scroll-view
<Text>{{item.status_text}}</Text> :scroll-y="true"
</view> :enable-back-to-top="true"
<view class="listBox_c"> :enable-flex="true"
<template v-if="item.detail.length == 1"> @scrolltolower="lower"
<view v-for="(cx, ci) in item.detail" :key="ci" class="box_bottom"> :style="{ height: '100%' }"
<image :src="cx.goods_info.pic_url" style="width: 75px; height: 75px" /> >
<view style="width: calc(100% - 85px);height: 75px;display: flex;flex-direction: column;margin-left: 10px;justify-content: space-between;"> <view class="orderList">
<Text class='topic_cont_text' >{{cx.goods_info.name}}</Text> <view class="listBox" v-for="(item, index) in g" :key="index">
<view style='width: calc(100% - 85px);overflow: hidden;white-space: nowrap;text-overflow: ellipsis;'> <view class="listBox_t">
<view v-for="(attr, index2) in cx.goods_info.attr_list" :key="index2" > <Text>订单号:{{ item.order_no }}</Text>
<Text style='color: #A0A09D;font-size: 24rpx;margin-right: 5rpx;'>规格:{{attr.attr_name}}</Text> <Text>{{ item.status_text }}</Text>
</view> </view>
</view> <view class="listBox_c">
<view style="width: 100%;display: flex;flex-direction: row;align-items:center;justify-content: space-between;"> <template v-if="item.detail.length == 1">
<Text style='color: #A0A09D;font-size: 24rpx;'>X{{cx.num}}</Text> <view
<Text style='font-size: 24rpx;'>{{cx.total_price}}</Text> v-for="(cx, ci) in item.detail"
</view> :key="ci"
</view> class="box_bottom"
</view> >
</template> <image
<template v-else> :src="cx.goods_info.pic_url"
<view class="goodboxmore"> style="width: 75px; height: 75px;"
<view class="good-list"> />
<view style="white-space: nowrap"> <view
<image style="
v-for="(y, yi) in item.detail" width: calc(100% - 85px);
:key="yi" height: 75px;
:src="y.goods_info.pic_url" display: flex;
mode="aspectFill" flex-direction: column;
class="item" margin-left: 10px;
/> justify-content: space-between;
</view> "
</view> >
<view class="infos"> <Text class="topic_cont_text">{{
<view class="text">{{ item.detail.length }}</view> cx.goods_info.name
<u-icon }}</Text>
name="ellipsis" <view
size="36" style="
@click="showGoodListHandler(index)" width: calc(100% - 85px);
></u-icon> overflow: hidden;
</view> white-space: nowrap;
</view> text-overflow: ellipsis;
</template> "
<Text style='font-size: 32rpx;text-align: right;width: 100%;'>¥{{item.total_price}}</Text> >
<view
<!-- TODO 样式结构修改--> v-for="(attr, index2) in cx.goods_info.attr_list"
<view class="handle"> :key="index2"
<view class="handle_item" @click="cancel(item,index)"> >
<Text>取消</Text> <Text
</view> style="
<view class="handle_item"> color: #a0a09d;
<Text>付款</Text> font-size: 24rpx;
</view> margin-right: 5rpx;
</view> "
</view> >规格:{{ attr.attr_name }}</Text
</view> >
</view> </view>
</view>
<view
</scroll-view> style="
width: 100%;
</view> display: flex;
<!-- 加载中 --> flex-direction: row;
<view class="loading" v-if="loading"> align-items: center;
<u-loading mode="flower" size="48">></u-loading> justify-content: space-between;
<Text style='color: #fff;margin-top: 10rpx;'>加载中...</Text> "
</view> >
<!-- 取消提示 --> <Text style="color: #a0a09d; font-size: 24rpx;"
<u-modal >X{{ cx.num }}</Text
v-model="showModal" >
content="是否取消订单?" <Text style="font-size: 24rpx;"
:show-cancel-button="true" >{{ cx.total_price }}</Text
:show-title="false" >
@confirm="confirm" </view>
></u-modal> </view>
<u-toast ref="uToast" /> </view>
<good-list :list="goodData" v-if="showGoodList" @close="closeGoodListHandler"></good-list> </template>
<template v-else>
</view> <view class="goodboxmore">
<view class="good-list">
<view style="white-space: nowrap;">
<image
v-for="(y, yi) in item.detail"
:key="yi"
:src="y.goods_info.pic_url"
mode="aspectFill"
class="item"
/>
</view>
</view>
<view class="infos">
<view class="text">{{ item.detail.length }}</view>
<u-icon
name="ellipsis"
size="36"
@click="showGoodListHandler(index)"
></u-icon>
</view>
</view>
</template>
<Text style="font-size: 32rpx; text-align: right; width: 100%;"
>合计:¥{{ item.total_price }}
<Text
v-if="item.express_price != 0"
style="font-size: 20rpx; color: #a0a09d;"
>(含运费 ¥{{ item.express_price }})</Text
>
</Text>
<!-- TODO 样式结构修改-->
<view class="handle">
<view class="handle_item" @click="cancel(item, index)">
<Text>取消</Text>
</view>
<view class="handle_item">
<Text>付款</Text>
</view>
</view>
</view>
</view>
</view>
<u-divider
contentPosition="center"
v-if="isover"
:margin-top="20"
:margin-bottom="20"
bg-color="#f3f4f6"
>没有更多订单了</u-divider
>
</scroll-view>
</view>
<!-- 加载中 -->
<view class="loading" v-if="loading">
<u-loading mode="flower" size="48">></u-loading>
<Text style="color: #fff; margin-top: 10rpx;">加载中...</Text>
</view>
<!-- 取消提示 -->
<u-modal
v-model="showModal"
content="是否取消订单?"
:show-cancel-button="true"
:show-title="false"
@confirm="confirm"
></u-modal>
<u-toast ref="uToast" />
<good-list
:list="goodData"
v-if="showGoodList"
@close="closeGoodListHandler"
></good-list>
</view>
</template> </template>
<script> <script>
import goodList from '@/components/goods/order-good-list2' import goodList from "@/components/goods/order-good-list2";
export default { export default {
components:{ components: {
goodList goodList,
}, },
data() { data() {
return { return {
current: 0, pageTitle: "我的订单",
list: [{name: '全部'}, {name: '待付款'},{name: '待发货'},{name: '待收货'},{name: '待评价'},], current: 0,
mainColor: "", list: [
contentHeight:0, { name: "全部" },
page:1, { name: "待付款" },
page_count:0, { name: "待发货" },
g:[], { name: "待收货" },
loading:false, { name: "待评价" },
showModal:false, { name: "已完成" },
item:'', { name: "已取消" }
index:0, ],
goodData:[], mainColor: "",
showGoodList:false, contentHeight: 0,
}; page: 1,
}, page_count: 1,
created(){ g: [],
this.contentHeight = this.$utils.calcContentHeight(-40)+'px'; loading: false,
this.mainColor = this.$uiConfig.mainColor; showModal: false,
item: "",
}, index: 0,
onLoad: function (option) { //option为object类型,会序列化上个页面传递的参数 goodData: [],
this.current = option.status; showGoodList: false,
this.loading = true; isover: false,
this.init() };
}, },
methods: { created() {
change(index){ this.contentHeight = this.$utils.calcContentHeight(-40) + "px";
this.current = index; this.mainColor = this.$uiConfig.mainColor;
this.page= 1; },
this.g = []; mounted() {
this.loading = true; let currentPages = getCurrentPages();
this.init() let u = "/" + currentPages[currentPages.length - 1].route;
}, let pages = wx.getStorageSync("basedata")
init(){ ? wx.getStorageSync("basedata").bar_title
: [];
let h=this.apiheader() pages.forEach((x) => {
if (x.value == u) {
this.request( this.pageTitle = x.new_name ? x.new_name : x.name;
{ }
url: "", });
header:h, uni.setNavigationBarTitle({
data: { title: this.pageTitle,
r: "api/order/list", });
status:this.current, },
page: this.page, onLoad: function (option) {
//option为object类型,会序列化上个页面传递的参数
} this.current = option.status;
}, this.loading = true;
res => { this.init();
this.loading = false; },
this.g = res.data.list; methods: {
} change(index) {
); this.current = index;
this.page = 1;
}, this.g = [];
cancel(e,index){ this.loading = true;
this.showModal=true; this.init();
this.index=index; },
this.item = e; init() {
}, this.isover = false;
confirm(){ let h = this.apiheader();
this.showModal = false this.request(
let h = this.apiheader(); {
// h['content-type']='application/x-www-form-urlencoded' url: "",
this.request( header: h,
{ data: {
url: "", r: "api/order/list",
// method: "POST", status: this.current,
header: h, page: this.page,
data: { },
r: "api/order/cancel", },
id: this.item.id (res) => {
} this.loading = false;
}, this.g = this.g.concat(res.data.list);
this.page_count = res.data.pagination.page_count;
res => { if (this.page_count == 1) {
this.$refs.uToast.show({title: res.msg,}) this.isover = true;
this.g.splice(this.index,1) }
}
} );
); },
}, lower(e) {
closeGoodListHandler(){ if (this.page < this.page_count) {
this.goodData=[] this.page++;
this.showGoodList=false this.init();
}, } else {
showGoodListHandler(i){ this.isover = true;
this.goodData=this.g[i].detail }
console.log(this.goodData) },
this.showGoodList=true cancel(e, index) {
}, this.showModal = true;
} this.index = index;
}; this.item = e;
},
confirm() {
this.showModal = false;
let h = this.apiheader();
// h['content-type']='application/x-www-form-urlencoded'
this.request(
{
url: "",
// method: "POST",
header: h,
data: {
r: "api/order/cancel",
id: this.item.id,
},
},
(res) => {
this.$refs.uToast.show({ title: res.msg });
this.g.splice(this.index, 1);
}
);
},
closeGoodListHandler() {
this.goodData = [];
this.showGoodList = false;
},
showGoodListHandler(i) {
this.goodData = this.g[i].detail;
console.log(this.goodData);
this.showGoodList = true;
},
},
};
</script> </script>
<style> <style>
.orderindexStyle{ .orderindexStyle {
width: 100%; width: 100%;
height: 100%; height: 100%;
background: #f3f4f6; background: #f3f4f6;
} }
.orderindexStyle .orderList{ .orderindexStyle .orderList {
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
} }
.orderList .listBox{ .orderList .listBox {
width: 94%; width: 94%;
background: #fff; background: #fff;
border-radius: 10rpx; border-radius: 10rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
padding: 20rpx; padding: 20rpx;
margin-bottom: 30rpx; margin-bottom: 30rpx;
} }
.orderList .listBox .listBox_t{ .orderList .listBox .listBox_t {
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
font-size: 24rpx; font-size: 24rpx;
margin: 10rpx 0; margin: 10rpx 0;
} }
.orderList .listBox .listBox_c{ .orderList .listBox .listBox_c {
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
}
} .orderList .listBox .box_bottom {
.orderList .listBox .box_bottom{ display: flex;
display: flex; flex-direction: row;
flex-direction: row; align-items: center;
align-items: center; width: 100%;
width: 100%; margin-bottom: 18rpx;
margin-bottom: 18rpx; }
} .orderList .handle {
.orderList .handle{ width: 100%;
width: 100%; display: flex;
display: flex; flex-direction: row;
flex-direction: row; align-items: center;
align-items: center; justify-content: flex-end;
justify-content: flex-end; margin-top: 10rpx;
margin-top: 10rpx; }
} .orderList .handle_item {
.orderList .handle_item{ padding: 0 24rpx;
padding:0 24rpx; border: 1px solid #c8c9cc;
border: 1px solid #c8c9cc; margin-left: 20rpx;
margin-left: 20rpx; height: 50rpx;
height: 50rpx; border-radius: 25rpx;
border-radius: 25rpx; line-height: 50rpx;
line-height: 50rpx; }
} .orderindexStyle .loading {
.orderindexStyle .loading{ width: 200rpx;
width: 200rpx; height: 200rpx;
height: 200rpx; background: #000000;
background: #000000; opacity: 0.7;
opacity: 0.7; border-radius: 10rpx;
border-radius: 10rpx; display: flex;
display: flex; flex-direction: column;
flex-direction: column; align-items: center;
align-items: center; justify-content: center;
justify-content: center; position: fixed;
position: fixed; left: 50%;
left: 50%; top: 30%;
top:30%; margin-left: -100rpx;
margin-left: -100rpx; z-index: 999;
z-index: 999; }
} .listBox_c .goodboxmore {
.listBox_c .goodboxmore { margin-bottom: 20px;
margin-bottom: 20px; display: flex;
display: flex; width: 100%;
width: 100%; }
} .listBox_c .goodboxmore .good-list {
.listBox_c .goodboxmore .good-list { display: flex;
display: flex; flex: 1;
flex: 1; overflow-x: auto;
overflow-x: auto; }
} .listBox_c .goodboxmore .good-list .item {
.listBox_c .goodboxmore .good-list .item { width: 70px;
width: 70px; height: 70px;
height: 70px; border-radius: 5px;
border-radius: 5px; margin-right: 10px;
margin-right: 10px; }
} .listBox_c .goodboxmore .infos {
.listBox_c .goodboxmore .infos { display: flex;
display: flex; width: 80px;
width: 80px; }
} .listBox_c .goodboxmore .infos .text {
.listBox_c .goodboxmore .infos .text { text-align: center;
text-align: center; font-size: 13px;
font-size: 13px; width: 57px;
width: 57px; margin-right: 5px;
margin-right: 5px; line-height: 70px;
line-height: 70px; }
} .listBox_c .left {
.listBox_c .left{ flex: 1;
flex: 1; color: #232323;
color: #232323; font-size: 16px;
font-size: 16px; flex: 1;
flex: 1; font-family: "oswald";
font-family: "oswald"; }
} .listBox_c .small {
.listBox_c .small { font-size: 13px;
font-size: 13px; }
} .listBox_c .topic_cont_text {
.listBox_c .topic_cont_text{ font-size: 26rpx;
font-size: 26rpx; max-height: 70rpx;
max-height: 70rpx; overflow: hidden;
overflow: hidden; word-break: break-all; /* break-all(允许在单词内换行。) */
word-break: break-all; /* break-all(允许在单词内换行。) */ text-overflow: ellipsis; /* 超出部分省略号 */
text-overflow: ellipsis; /* 超出部分省略号 */ display: -webkit-box; /** 对象作为伸缩盒子模型显示 **/
display: -webkit-box; /** 对象作为伸缩盒子模型显示 **/ -webkit-box-orient: vertical; /** 设置或检索伸缩盒对象的子元素的排列方式 **/
-webkit-box-orient: vertical; /** 设置或检索伸缩盒对象的子元素的排列方式 **/ -webkit-line-clamp: 2; /** 显示的行数 **/
-webkit-line-clamp: 2; /** 显示的行数 **/ }
} </style>
</style>
\ No newline at end of file
...@@ -77,6 +77,7 @@ ...@@ -77,6 +77,7 @@
:name="item.name" @click="goUrl(item.link_url)"> :name="item.name" @click="goUrl(item.link_url)">
<image :src='item.icon_url' style="width: 66rpx;height: 60rpx;"></image> <image :src='item.icon_url' style="width: 66rpx;height: 60rpx;"></image>
<Text style='margin-top: 10rpx;'>{{item.name}}</Text> <Text style='margin-top: 10rpx;'>{{item.name}}</Text>
<view v-if='item.num>0' class='badge' :style="{'background':mainColor}">{{item.num}}</view>
</view> </view>
</view> </view>
</view> </view>
...@@ -87,7 +88,7 @@ ...@@ -87,7 +88,7 @@
<image :src='item.icon_url' style="width: 48rpx;height: 48rpx;"></image> <image :src='item.icon_url' style="width: 48rpx;height: 48rpx;"></image>
<Text :style="{'margin-top':meueData.user_center.menu_style == 1 ? '0rpx':'10rpx','margin-left':meueData.user_center.menu_style == 1 ? '10rpx':'0rpx'}"> <Text :style="{'margin-top':meueData.user_center.menu_style == 1 ? '0rpx':'10rpx','margin-left':meueData.user_center.menu_style == 1 ? '10rpx':'0rpx'}">
{{item.name}} {{item.name}}
</Text> </Text>
</view> </view>
</view> </view>
<view class="copyright"> <view class="copyright">
...@@ -133,7 +134,7 @@ ...@@ -133,7 +134,7 @@
}, },
onLoad() { onLoad() {
this.navHeight = this.$navHeight - 2; this.navHeight = this.$navHeight - 2;
this.u = uni.getStorageSync("userinfo"); this.u = wx.getStorageSync("userinfo");
if (!this.u) { if (!this.u) {
this.u = { this.u = {
nickName: "未登录", nickName: "未登录",
...@@ -141,10 +142,10 @@ ...@@ -141,10 +142,10 @@
}; };
this.showAuth = true; this.showAuth = true;
} }
this.cstyle = uni.getStorageSync("basedata") this.cstyle = uni.getStorageSync("basedata")
? uni.getStorageSync("basedata").cat_style ? uni.getStorageSync("basedata").cat_style
: []; : [];
if (this.cstyle.cat_style == "4") { if (this.cstyle.cat_style == "4") {
} }
...@@ -157,16 +158,18 @@ ...@@ -157,16 +158,18 @@
this.contentHeight = this.$utils.calcContentHeight(c); this.contentHeight = this.$utils.calcContentHeight(c);
let u = "/" + currentPages[currentPages.length - 1].route; let u = "/" + currentPages[currentPages.length - 1].route;
let pages = wx.getStorageSync("basedata")
let pages = uni.getStorageSync("basedata") ? wx.getStorageSync("basedata").bar_title
? uni.getStorageSync("basedata").bar_title
: []; : [];
console.log(uni.getStorageSync("basedata")) console.log(wx.getStorageSync("basedata"))
pages.forEach((x) => { pages.forEach((x) => {
if (x.value == u) { if (x.value == u) {
this.pageTitle = x.new_name ? x.new_name : x.name; this.pageTitle = x.new_name ? x.new_name : x.name;
} }
}); });
uni.setNavigationBarTitle({
title: this.pageTitle,
});
this.userinfo() this.userinfo()
this.getmeue() this.getmeue()
...@@ -324,6 +327,20 @@ ...@@ -324,6 +327,20 @@
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
margin-top: 20rpx; margin-top: 20rpx;
position: relative
}
.userStyle .badge{
position: absolute;
right: -10rpx;
top: -10rpx;
padding:0 7rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 20rpx;
color: #fff;
height: 30rpx;
border-radius: 15rpx;
} }
.userStyle .menus{ .userStyle .menus{
width: 94%; width: 94%;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment