- 订单流程

This commit is contained in:
sin 2019-04-08 23:17:14 +08:00
parent 6c50286477
commit 77c6edefb3
11 changed files with 920 additions and 687 deletions

View File

@ -0,0 +1,36 @@
import request from "../config/request";
export function getOrderPage(params) {
return request({
url: '/order-api/users/order/order_page',
method: 'get',
params: {
...params,
}
});
}
export function cancelOrder(id) {
return request({
url: '/product-api/users/spu/info',
method: 'get',
params: {
id,
}
});
}
export function createOrder(params) {
return request({
headers: {
'Content-Type': 'application/json',
},
url: '/order-api/users/order/create_order',
method: 'post',
data: {
...params,
},
});
}

View File

@ -2,7 +2,7 @@ import request from "../config/request";
export function getProductCategoryList(pid) { export function getProductCategoryList(pid) {
return request({ return request({
url: 'product-api/users/category/list', url: '/product-api/users/category/list',
method: 'get', method: 'get',
params: { params: {
pid pid
@ -12,7 +12,7 @@ export function getProductCategoryList(pid) {
export function getProductSpuPage(cid, pageNo, pageSize) { export function getProductSpuPage(cid, pageNo, pageSize) {
return request({ return request({
url: 'product-api/users/spu/page', url: '/product-api/users/spu/page',
method: 'get', method: 'get',
params: { params: {
cid, cid,
@ -24,10 +24,10 @@ export function getProductSpuPage(cid, pageNo, pageSize) {
export function getProductSpuInfo(id) { export function getProductSpuInfo(id) {
return request({ return request({
url: 'product-api/users/spu/info', url: '/product-api/users/spu/info',
method: 'get', method: 'get',
params: { params: {
id, id,
} }
}); });
} }

View File

@ -4,7 +4,7 @@ import request from "../config/request";
export function getBannerList() { export function getBannerList() {
return request({ return request({
url: 'promotion-api/users/banner/list', url: '/promotion-api/users/banner/list',
method: 'get', method: 'get',
}); });
} }
@ -13,7 +13,7 @@ export function getBannerList() {
export function getProductRecommendList() { export function getProductRecommendList() {
return request({ return request({
url: 'promotion-api/users/product_recommend/list', url: '/promotion-api/users/product_recommend/list',
method: 'get', method: 'get',
}); });
} }

View File

@ -74,14 +74,14 @@ export function ExchangeCoupon(code){
export function getUserInfo() { export function getUserInfo() {
return request({ return request({
url: 'user-api/users/user/info', url: '/user-api/users/user/info',
method: 'get', method: 'get',
}); });
} }
export function doUserUpdateNickname(nickname) { export function doUserUpdateNickname(nickname) {
return request({ return request({
url: 'user-api/users/user/update_nickname', url: '/user-api/users/user/update_nickname',
method: 'post', method: 'post',
params: { params: {
nickname, nickname,
@ -91,7 +91,7 @@ export function doUserUpdateNickname(nickname) {
export function doPassportMobileRegister(mobile, code) { export function doPassportMobileRegister(mobile, code) {
return request({ return request({
url: 'user-api/users/passport/mobile/register', url: '/user-api/users/passport/mobile/register',
method: 'post', method: 'post',
params: { params: {
mobile, mobile,
@ -102,7 +102,7 @@ export function doPassportMobileRegister(mobile, code) {
export function doPassportMobileSendRegisterCode(mobile) { export function doPassportMobileSendRegisterCode(mobile) {
return request({ return request({
url: 'user-api/users/passport/mobile/send_register_code', url: '/user-api/users/passport/mobile/send_register_code',
method: 'post', method: 'post',
params: { params: {
mobile, mobile,

View File

@ -1,79 +1,89 @@
<template> <template>
<div> <div>
<ul :class="'cap-goods-list__container cap-goods-list__container--'+data.classname+' cap-goods-list__container--'+data.ParameterDictionary.showtype+' '+(data.ParameterDictionary.type=='6'?'nowrap':'')" > <ul
<li v-if="productlist.length==0" style="width:100%;height:150px;border:0px;"> :class="'cap-goods-list__container cap-goods-list__container--'+data.classname+' cap-goods-list__container--'+data.ParameterDictionary.showtype+' '+(data.ParameterDictionary.type=='6'?'nowrap':'')">
<div style="width:100%;height:150px;"></div> <li v-if="productlist.length==0" style="width:100%;height:150px;border:0px;">
</li> <div style="width:100%;height:150px;"></div>
<li v-for="(item,index) in productlist" :key="index" :class="'cap-goods-list__wrapper '+(data.ParameterDictionary.type=='3'?(index%3==0?'cap-goods-list__wrapper--hybrid-big ':'cap-goods-list__wrapper--hybrid-small '):'')"> </li>
<router-link :class="'cap-goods-list__item cap-goods-list__item--'+data.classname+' '+data.ParameterDictionary.showtype+' '+data.aclass" :to="'/product/'+item.id"> <li v-for="(item,index) in productlist" :key="index"
<div class="cap-goods-list__photo"> :class="'cap-goods-list__wrapper '+(data.ParameterDictionary.type=='3'?(index%3==0?'cap-goods-list__wrapper--hybrid-big ':'cap-goods-list__wrapper--hybrid-small '):'')">
<img class="cap-goods-list__img lazy lazyload" v-lazy="item.imageURL+'?w='+((data.ParameterDictionary.type=='1'||data.ParameterDictionary.type=='3')?'750':'375')" /> <router-link
</div> :class="'cap-goods-list__item cap-goods-list__item--'+data.classname+' '+data.ParameterDictionary.showtype+' '+data.aclass"
<div :class="'cap-goods-list__info has-title has-price '+(data.ParameterDictionary.showtype == 'card'?'has-btn':'')"> :to="'/product/'+item.id">
<h3 class="title">{{item.title}}</h3> <div class="cap-goods-list__photo">
<p class="sale-info"> <img class="cap-goods-list__img lazy lazyload"
<span class="sale-price">¥ {{item.price}}</span> v-lazy="item.imageURL+'?w='+((data.ParameterDictionary.type=='1'||data.ParameterDictionary.type=='3')?'750':'375')"/>
</p> </div>
</div> <div
<div v-if="data.ParameterDictionary.showtype == 'card'" class="cap-goods-list__buy-btn-wrapper cap-goods-list__buy-btn-wrapper--4"> :class="'cap-goods-list__info has-title has-price '+(data.ParameterDictionary.showtype == 'card'?'has-btn':'')">
<button class="cap-goods-list__buy-btn-4 van-button van-button--default van-button--small">{{data.ParameterDictionary.buttonvalue}}</button> <h3 class="title">{{item.title}}</h3>
</div> <p class="sale-info">
</router-link> <span class="sale-price">¥ {{item.price}}</span>
</li> </p>
</div>
<div v-if="data.ParameterDictionary.showtype == 'card'"
class="cap-goods-list__buy-btn-wrapper cap-goods-list__buy-btn-wrapper--4">
<button
class="cap-goods-list__buy-btn-4 van-button van-button--default van-button--small">
{{data.ParameterDictionary.buttonvalue}}
</button>
</div>
</router-link>
</li>
</ul> </ul>
<div style="clear:both;"></div> <div style="clear:both;"></div>
</div> </div>
</template> </template>
<script> <script>
import {getProduct} from "../../api/page.js"; import {getProduct} from "../../api/page.js";
export default { export default {
name:'product', name: 'product',
data () { data() {
return { return {
productlist: [] productlist: []
} }
}, },
props:{ props: {
data:Object data: Object
}, },
created:function(){ created: function () {
var id=this.data.PageSectionId; var id = this.data.PageSectionId;
var data=this.data; var data = this.data;
var classname = "big"; var classname = "big";
var aclass = ""; var aclass = "";
switch (data.ParameterDictionary.type) { switch (data.ParameterDictionary.type) {
case "1": case "1":
aclass = "cap-goods-list__item--btn1 cap-goods-list__item--ratio-3-2 cap-goods-list__item--whitespace"; aclass = "cap-goods-list__item--btn1 cap-goods-list__item--ratio-3-2 cap-goods-list__item--whitespace";
break; break;
case "2": case "2":
classname = "small"; classname = "small";
aclass = "cap-goods-list__item--btn1 cap-goods-list__item--padding"; aclass = "cap-goods-list__item--btn1 cap-goods-list__item--padding";
break; break;
case "3": case "3":
classname = "hybrid"; classname = "hybrid";
aclass = "cap-goods-list__item--big cap-goods-list__item--hybrid-big cap-goods-list__item--btn1 cap-goods-list__item--padding"; aclass = "cap-goods-list__item--big cap-goods-list__item--hybrid-big cap-goods-list__item--btn1 cap-goods-list__item--padding";
break; break;
case "4": case "4":
classname = "list"; classname = "list";
aclass = "cap-goods-list__item--btn4 cap-goods-list__item--padding"; aclass = "cap-goods-list__item--btn4 cap-goods-list__item--padding";
break; break;
case "5": case "5":
classname = "three"; classname = "three";
aclass = "cap-goods-list__item--btn4 cap-goods-list__item--padding"; aclass = "cap-goods-list__item--btn4 cap-goods-list__item--padding";
break; break;
case "6": case "6":
classname = "three"; classname = "three";
break; break;
} }
data.classname=classname; data.classname = classname;
data.aclass=aclass; data.aclass = aclass;
getProduct(id).then(response => { getProduct(id).then(response => {
this.productlist=response; this.productlist = response;
}) })
} }
} }
</script> </script>
<style> <style>

View File

@ -15,6 +15,14 @@ const serviceRouter = function(requestUrl) {
prefix: '/user-api', prefix: '/user-api',
target: 'http://127.0.0.1:18082/user-api', target: 'http://127.0.0.1:18082/user-api',
}, },
'/product-api': {
prefix: '/product-api',
target: 'http://127.0.0.1:18081/product-api',
},
'/promotion-api': {
prefix: '/promotion-api',
target: 'http://127.0.0.1:18085//promotion-api',
},
}; };
const configProd = { const configProd = {
@ -26,6 +34,14 @@ const serviceRouter = function(requestUrl) {
prefix: '/user-api', prefix: '/user-api',
target: 'http://127.0.0.1:18082/user-api', target: 'http://127.0.0.1:18082/user-api',
}, },
'/product-api': {
prefix: '/product-api',
target: 'http://127.0.0.1:18081/product-api',
},
'/promotion-api': {
prefix: '/promotion-api',
target: 'http://127.0.0.1:18085//promotion-api',
},
}; };
if (process.env.NODE_ENV == 'development') { if (process.env.NODE_ENV == 'development') {
@ -57,7 +73,9 @@ const serviceRouter = function(requestUrl) {
const indexOf = requestUrl.indexOf("/", 1); const indexOf = requestUrl.indexOf("/", 1);
const _urlPrefix = requestUrl.substring(0, indexOf); const _urlPrefix = requestUrl.substring(0, indexOf);
if (!config[_urlPrefix]) { if (!config[_urlPrefix]) {
throw new Error(`服务路由,未找到可用服务! ${requestUrl}`); // throw new Error(`服务路由,未找到可用服务! ${requestUrl}`);
console.error(`服务路由,未找到可用服务! ${requestUrl}`)
return ''
} }
// if (!createServer[_urlPrefix]) { // if (!createServer[_urlPrefix]) {
// throw new Error("服务路由,未找到可用服务!"); // throw new Error("服务路由,未找到可用服务!");

View File

@ -178,6 +178,13 @@ const routes = [
title: '确认订单' title: '确认订单'
} }
}, },
{
path: '/order/success',
component: () => import('../page/shipping/order-success'),
meta: {
title: '确认订单'
}
},
{ {
name: 'category', name: 'category',
component: () => import('../page/category/index'), component: () => import('../page/category/index'),

View File

@ -1,9 +1,9 @@
<template> <template>
<div class="goods"> <div class="goods">
<headerNav title="商品详情"/> <headerNav title="商品详情"/>
<van-swipe class="goods-swipe" :autoplay="3000"> <van-swipe class="goods-swipe" :autoplay="3000">
<van-swipe-item v-for="thumb in spu.picUrls" :key="thumb"> <van-swipe-item v-for="thumb in spu.picUrls" :key="thumb">
<img :src="thumb" > <img :src="thumb">
</van-swipe-item> </van-swipe-item>
</van-swipe> </van-swipe>
@ -14,63 +14,63 @@
<div class="goods-title">{{ spu.name }}</div> <div class="goods-title">{{ spu.name }}</div>
<div class="goods-subtit">{{spu.sellPoint}}</div> <div class="goods-subtit">{{spu.sellPoint}}</div>
</van-cell> </van-cell>
<!--<van-cell @click="onClickShowTag" class="goods-tag" >--> <!--<van-cell @click="onClickShowTag" class="goods-tag" >-->
<!--<template slot="title" style="font-size:10px;">--> <!--<template slot="title" style="font-size:10px;">-->
<!--<img src="https://haitao.nos.netease.com/ba8a4c2fdaa54f82a45261293c116af61419663676663i46n3jlh10028.png"/>--> <!--<img src="https://haitao.nos.netease.com/ba8a4c2fdaa54f82a45261293c116af61419663676663i46n3jlh10028.png"/>-->
<!--<span >挪威品牌</span>--> <!--<span >挪威品牌</span>-->
<!--<img src="https://haitao.nosdn2.127.net/13bd59e6e29a4f06b278c586629e690d.png" />--> <!--<img src="https://haitao.nosdn2.127.net/13bd59e6e29a4f06b278c586629e690d.png" />-->
<!--<span >跨境商品</span>--> <!--<span >跨境商品</span>-->
<!--<van-icon name="passed" color="red" />--> <!--<van-icon name="passed" color="red" />-->
<!--<span >次日达</span>--> <!--<span >次日达</span>-->
<!--<van-icon name="passed" color="red" />--> <!--<van-icon name="passed" color="red" />-->
<!--<span >自提</span>--> <!--<span >自提</span>-->
<!--<van-icon name="passed" color="red" />--> <!--<van-icon name="passed" color="red" />-->
<!--<span >闪电退款</span>--> <!--<span >闪电退款</span>-->
<!--<van-icon name="passed" color="red" />--> <!--<van-icon name="passed" color="red" />-->
<!--<span >前海保税仓</span>--> <!--<span >前海保税仓</span>-->
<!--<van-icon name="passed" color="red" />--> <!--<van-icon name="passed" color="red" />-->
<!--<span >七天无理由退货拆封后不支持</span>--> <!--<span >七天无理由退货拆封后不支持</span>-->
<!--</template>--> <!--</template>-->
<!--</van-cell> --> <!--</van-cell> -->
</van-cell-group> </van-cell-group>
<!--<van-cell-group class="goods-cell-group">--> <!--<van-cell-group class="goods-cell-group">-->
<!--<van-cell is-link @click="showPromotion" >--> <!--<van-cell is-link @click="showPromotion" >-->
<!--<template slot="title">--> <!--<template slot="title">-->
<!--<span style="margin-right: 10px;">领券</span>--> <!--<span style="margin-right: 10px;">领券</span>-->
<!--<van-tag type="danger" mark style="margin-right: 5px;">满180减30</van-tag>--> <!--<van-tag type="danger" mark style="margin-right: 5px;">满180减30</van-tag>-->
<!--<van-tag type="danger" mark style="margin-right: 5px;">满300减100</van-tag>--> <!--<van-tag type="danger" mark style="margin-right: 5px;">满300减100</van-tag>-->
<!--</template>--> <!--</template>-->
<!--</van-cell>--> <!--</van-cell>-->
<!----> <!---->
<!--<van-cell is-link @click="showPromotion" >--> <!--<van-cell is-link @click="showPromotion" >-->
<!--<template slot="title">--> <!--<template slot="title">-->
<!--<span style="margin-right: 10px;">促销</span>--> <!--<span style="margin-right: 10px;">促销</span>-->
<!--<van-tag type="danger" style="margin-right: 5px;">多买优惠</van-tag>--> <!--<van-tag type="danger" style="margin-right: 5px;">多买优惠</van-tag>-->
<!--<van-tag type="danger" style="margin-right: 5px;">满减</van-tag>--> <!--<van-tag type="danger" style="margin-right: 5px;">满减</van-tag>-->
<!--<van-tag type="danger" style="margin-right: 5px;">限购</van-tag>--> <!--<van-tag type="danger" style="margin-right: 5px;">限购</van-tag>-->
<!--</template>--> <!--</template>-->
<!--</van-cell>--> <!--</van-cell>-->
<!--</van-cell-group>--> <!--</van-cell-group>-->
<van-cell-group class="goods-cell-group"> <van-cell-group class="goods-cell-group">
<van-cell is-link @click="showSku" > <van-cell is-link @click="showSku">
<template slot="title"> <template slot="title">
<span style="margin-right: 10px;">已选</span> <span style="margin-right: 10px;">已选</span>
<span>{{ formatSkuText(initialSku) }}</span> <span>{{ formatSkuText(initialSku) }}</span>
</template> </template>
</van-cell> </van-cell>
</van-cell-group> </van-cell-group>
<div class="goods-info"> <div class="goods-info">
<p class="goods-info-title" >图文详情</p> <p class="goods-info-title">图文详情</p>
<div v-html="spu.description"></div> <div v-html="spu.description"></div>
</div> </div>
<van-goods-action> <van-goods-action>
<van-goods-action-mini-btn icon="like-o" @click="sorry"> <van-goods-action-mini-btn icon="like-o" @click="sorry">
收藏 收藏
</van-goods-action-mini-btn> </van-goods-action-mini-btn>
@ -86,320 +86,349 @@
</van-goods-action> </van-goods-action>
<!--<van-actionsheet v-model="show" title="促销" style="font-size:14px;">--> <!--<van-actionsheet v-model="show" title="促销" style="font-size:14px;">-->
<!----> <!---->
<!--<van-cell is-link @click="sorry" >--> <!--<van-cell is-link @click="sorry" >-->
<!--<template slot="title">--> <!--<template slot="title">-->
<!--<van-tag type="danger">多买优惠</van-tag>--> <!--<van-tag type="danger">多买优惠</van-tag>-->
<!--<span> 满2件总价打9折</span>--> <!--<span> 满2件总价打9折</span>-->
<!--</template>--> <!--</template>-->
<!--</van-cell>--> <!--</van-cell>-->
<!--<van-cell is-link @click="sorry" >--> <!--<van-cell is-link @click="sorry" >-->
<!--<template slot="title">--> <!--<template slot="title">-->
<!--<van-tag type="danger">满减</van-tag>--> <!--<van-tag type="danger">满减</van-tag>-->
<!--<span> 满100元减50元</span>--> <!--<span> 满100元减50元</span>-->
<!--</template>--> <!--</template>-->
<!--</van-cell>--> <!--</van-cell>-->
<!--<van-cell is-link @click="sorry" >--> <!--<van-cell is-link @click="sorry" >-->
<!--<template slot="title">--> <!--<template slot="title">-->
<!--<van-tag type="danger">限购</van-tag>--> <!--<van-tag type="danger">限购</van-tag>-->
<!--<span> 购买不超过5件时享受单件价8.00超出数量以结算价为准</span>--> <!--<span> 购买不超过5件时享受单件价8.00超出数量以结算价为准</span>-->
<!--</template>--> <!--</template>-->
<!--</van-cell>--> <!--</van-cell>-->
<!--</van-actionsheet>--> <!--</van-actionsheet>-->
<!--<van-actionsheet v-model="showTag" title="服务说明" style="font-size:14px;">--> <!--<van-actionsheet v-model="showTag" title="服务说明" style="font-size:14px;">-->
<!----> <!---->
<!--<van-cell>--> <!--<van-cell>-->
<!--<template slot="title">--> <!--<template slot="title">-->
<!--<van-icon name="passed" color="red" style="margin-right: 10px;" />--> <!--<van-icon name="passed" color="red" style="margin-right: 10px;" />-->
<!--<span >次日达</span>--> <!--<span >次日达</span>-->
<!--<div style="margin-left: 24px;font-size:10px;color:#7d7d7d;">指定时间前下单次日送达</div>--> <!--<div style="margin-left: 24px;font-size:10px;color:#7d7d7d;">指定时间前下单次日送达</div>-->
<!--</template>--> <!--</template>-->
<!--</van-cell>--> <!--</van-cell>-->
<!--<van-cell>--> <!--<van-cell>-->
<!--<template slot="title">--> <!--<template slot="title">-->
<!--<van-icon name="passed" color="red" style="margin-right: 10px;" />--> <!--<van-icon name="passed" color="red" style="margin-right: 10px;" />-->
<!--<span >自提</span>--> <!--<span >自提</span>-->
<!--<div style="margin-left: 24px;font-size:10px;color:#7d7d7d;">我们提供多种自提服务包括自提点自助提货柜移动自提车等服务</div>--> <!--<div style="margin-left: 24px;font-size:10px;color:#7d7d7d;">我们提供多种自提服务包括自提点自助提货柜移动自提车等服务</div>-->
<!--</template>--> <!--</template>-->
<!--</van-cell>--> <!--</van-cell>-->
<!--<van-cell>--> <!--<van-cell>-->
<!--<template slot="title">--> <!--<template slot="title">-->
<!--<van-icon name="passed" color="red" style="margin-right: 10px;" />--> <!--<van-icon name="passed" color="red" style="margin-right: 10px;" />-->
<!--<span >闪电退款</span>--> <!--<span >闪电退款</span>-->
<!--<div style="margin-left: 24px;font-size:10px;color:#7d7d7d;">签收7天内退货的提供先退款后退货服务</div>--> <!--<div style="margin-left: 24px;font-size:10px;color:#7d7d7d;">签收7天内退货的提供先退款后退货服务</div>-->
<!--</template>--> <!--</template>-->
<!--</van-cell>--> <!--</van-cell>-->
<!--<van-cell>--> <!--<van-cell>-->
<!--<template slot="title">--> <!--<template slot="title">-->
<!--<van-icon name="passed" color="red" style="margin-right: 10px;" />--> <!--<van-icon name="passed" color="red" style="margin-right: 10px;" />-->
<!--<span >七天无理由退货拆封后不支持</span>--> <!--<span >七天无理由退货拆封后不支持</span>-->
<!--<div style="margin-left: 24px;font-size:10px;color:#7d7d7d;">七天无理由退货拆封后不支持</div>--> <!--<div style="margin-left: 24px;font-size:10px;color:#7d7d7d;">七天无理由退货拆封后不支持</div>-->
<!--</template>--> <!--</template>-->
<!--</van-cell>--> <!--</van-cell>-->
<!--<van-cell>--> <!--<van-cell>-->
<!--<template slot="title">--> <!--<template slot="title">-->
<!--<van-icon name="passed" color="red" style="margin-right: 10px;" />--> <!--<van-icon name="passed" color="red" style="margin-right: 10px;" />-->
<!--<span >前海保税仓</span>--> <!--<span >前海保税仓</span>-->
<!--<div style="margin-left: 24px;font-size:10px;color:#7d7d7d;">本商品由前海保税仓发货</div>--> <!--<div style="margin-left: 24px;font-size:10px;color:#7d7d7d;">本商品由前海保税仓发货</div>-->
<!--</template>--> <!--</template>-->
<!--</van-cell>--> <!--</van-cell>-->
<!--</van-actionsheet>--> <!--</van-actionsheet>-->
<van-sku <van-sku
v-model="showBase" v-model="showBase"
:sku="vanSku" :sku="vanSku"
:initial-sku="initialSku" :initial-sku="initialSku"
:goods="vanSpu" :goods="vanSpu"
:goods-id="spu.id" :goods-id="spu.id"
:hide-stock="hideStock" :hide-stock="hideStock"
:close-on-click-overlay="closeOnClickOverlay" :close-on-click-overlay="closeOnClickOverlay"
@stepper-change="stepperChange" @stepper-change="stepperChange"
@sku-selected="skuSelected" @sku-selected="skuSelected"
@buy-clicked="onBuyClicked" @buy-clicked="onBuyClicked"
@add-cart="onAddCartClicked" @add-cart="onAddCartClicked"
/> />
<!--:quota="skuData.quota"--> <!--:quota="skuData.quota"-->
</div> </div>
</template> </template>
<script> <script>
// import skuData from '../../data/sku'; // import skuData from '../../data/sku';
import { getProductSpuInfo } from '../../api/product'; import {getProductSpuInfo} from '../../api/product';
export default { export default {
components: { components: {},
}, data() {
data() { // this.skuData = skuData;
// this.skuData = skuData; return {
return { spu: {}, //
spu: {}, // vanSku: {
vanSku: { tree: [], //
tree: [], // list: [], // sku
list: [], // sku },
}, // TODO sku title picture
// TODO sku title picture vanSpu: {
vanSpu: { title: '',
title: '', picture: '',
picture: '', },
}, initialSku: { // sku
initialSku: { // sku //
// // price
// price // quantity
// quantity },
}, attrValueMap: new Map(), //
attrValueMap: new Map(), //
// show:false, // show:false,
// showTag:false, // showTag:false,
// goods: { // goods: {
// title: ' Lifeline Care DHAD3 30 2', // title: ' Lifeline Care DHAD3 30 2',
// subtitle:'QDHA400D3齿DPA', // subtitle:'QDHA400D3齿DPA',
// price: 2680, // price: 2680,
// market_price:9999, // market_price:9999,
// express: '', // express: '',
// remain: 19, // remain: 19,
// thumb: [ // thumb: [
// 'https://img.yzcdn.cn/public_files/2017/10/24/e5a5a02309a41f9f5def56684808d9ae.jpeg', // 'https://img.yzcdn.cn/public_files/2017/10/24/e5a5a02309a41f9f5def56684808d9ae.jpeg',
// 'https://img.yzcdn.cn/public_files/2017/10/24/1791ba14088f9c2be8c610d0a6cc0f93.jpeg' // 'https://img.yzcdn.cn/public_files/2017/10/24/1791ba14088f9c2be8c610d0a6cc0f93.jpeg'
// ], // ],
// info:'<p style="text-align:center;"><img src="https://haitao.nosdn2.127.net/ac19460151ee4d95a6657202bcfc653c1531470912089jjjq8ml410763.jpg" ></p><p style="text-align:center;"><img src="https://haitao.nos.netease.com/2a91cfad22404e5498d347672b1440301531470912182jjjq8mnq10764.jpg" ></p><p style="text-align:center;"><img src="https://haitao.nos.netease.com/caddd5a213de4c1cb1347c267e8275731531470912412jjjq8mu410765.jpg" ></p>', // info:'<p style="text-align:center;"><img src="https://haitao.nosdn2.127.net/ac19460151ee4d95a6657202bcfc653c1531470912089jjjq8ml410763.jpg" ></p><p style="text-align:center;"><img src="https://haitao.nos.netease.com/2a91cfad22404e5498d347672b1440301531470912182jjjq8mnq10764.jpg" ></p><p style="text-align:center;"><img src="https://haitao.nos.netease.com/caddd5a213de4c1cb1347c267e8275731531470912412jjjq8mu410765.jpg" ></p>',
// }, // },
showBase: false, // sku showBase: false, // sku
closeOnClickOverlay: true, // closeOnClickOverlay: true, //
hideStock: true, // hideStock: true, //
}; };
},
methods: {
formatPrice(data) {
return '¥' + (data / 100).toFixed(2);
}, },
formatSkuText(data) { // sku methods: {
let text = ''; formatPrice(data) {
for (let prop in data) { return '¥' + (data / 100).toFixed(2);
if (prop.indexOf('attr_') === 0) { },
text = text + this.attrValueMap.get(data[prop]) + ' '; formatSkuText(data) { // sku
let text = '';
for (let prop in data) {
if (prop.indexOf('attr_') === 0) {
text = text + this.attrValueMap.get(data[prop]) + ' ';
}
} }
} text = text + 'x ' + data.quantity + ' 件';
text = text + 'x ' + data.quantity + ' 件'; return text;
return text; },
},
stepperChange(value) { // sku stepperChange(value) { // sku
this.initialSku.quantity = value; this.initialSku.quantity = value;
}, },
skuSelected({skuValue, selectedSku, selectedSkuComb}) { // sku skuSelected({skuValue, selectedSku, selectedSkuComb}) { // sku
console.log(skuValue); console.log(skuValue);
console.log(selectedSku); console.log(selectedSku);
console.log(selectedSkuComb); console.log(selectedSkuComb);
this.initialSku = { this.initialSku = {
...selectedSkuComb, ...selectedSkuComb,
quantity: 1, quantity: 1,
};
},
onClickCart() {
this.$router.push('/cart');
},
sorry() {
Toast('暂无后续逻辑~');
},
showPromotion() {
this.show=true;
},
showSku() { // sku
this.showBase=true;
},
onClickShowTag(){
this.showTag=true;
},
onBuyClicked(data) {
this.$toast(JSON.stringify(data));
},
onAddCartClicked(data) {
this.$toast(JSON.stringify(data));
},
},
mounted() {
let id = this.$route.params.id; //
let response = getProductSpuInfo(id);
response.then(data => {
// spu
this.spu = data;
// vanSku
let vanSku = {
tree: [],
list: [],
};
for (let i = 0; i < data.skus.length; i++) {
let sku = data.skus[i];
// list sku
let skuVO = {
id: sku.id, // skuId
price: sku.price, //
stock_num: sku.quantity // sku
}; };
for (let j = 0; j < sku.attrs.length; j++) { },
let attr = sku.attrs[j];
skuVO['attr_' + attr.attrId] =attr.attrValueId; onClickCart() {
} this.$router.push('/cart');
vanSku.list.push(skuVO); },
// tree sorry() {
for (let j = 0; j < sku.attrs.length; j++) { Toast('暂无后续逻辑~');
let attr = sku.attrs[j]; },
let attrVO; showPromotion() {
for (let k = 0; k < vanSku.tree.length; k++) { this.show = true;
if (attr.attrName === vanSku.tree[k].k) { },
attrVO = vanSku.tree[k]; showSku() { // sku
break; this.showBase = true;
},
onClickShowTag() {
this.showTag = true;
},
onBuyClicked(data) {
const { selectedNum, goodsId } = data;
console.log(data);
// this.$toast(JSON.stringify(data));
this.$router.push({
path:'/order',
query:{
skuId: goodsId,
quantity: selectedNum,
}
});
},
onAddCartClicked(data) {
this.$toast(JSON.stringify(data));
},
},
mounted() {
let id = this.$route.params.id; //
let response = getProductSpuInfo(id);
response.then(data => {
// spu
this.spu = data;
// vanSku
let vanSku = {
tree: [],
list: [],
};
for (let i = 0; i < data.skus.length; i++) {
let sku = data.skus[i];
// list sku
let skuVO = {
id: sku.id, // skuId
price: sku.price, //
stock_num: sku.quantity // sku
};
for (let j = 0; j < sku.attrs.length; j++) {
let attr = sku.attrs[j];
skuVO['attr_' + attr.attrId] = attr.attrValueId;
}
vanSku.list.push(skuVO);
// tree
for (let j = 0; j < sku.attrs.length; j++) {
let attr = sku.attrs[j];
let attrVO;
for (let k = 0; k < vanSku.tree.length; k++) {
if (attr.attrName === vanSku.tree[k].k) {
attrVO = vanSku.tree[k];
break;
}
} }
} if (!attrVO) { //
if (!attrVO) { // attrVO = {
attrVO = { k: attr.attrName, // skuKeyName
k: attr.attrName, // skuKeyName v: [],
v: [], k_s: 'attr_' + attr.attrId,
k_s: 'attr_' + attr.attrId, };
}; vanSku.tree.push(attrVO);
vanSku.tree.push(attrVO);
}
let attrValueFound = false; //
for (let k = 0; k < attrVO.v.length; k++) {
if (attr.attrValueId === attrVO.v[k].id) {
attrValueFound = true;
break;
} }
let attrValueFound = false; //
for (let k = 0; k < attrVO.v.length; k++) {
if (attr.attrValueId === attrVO.v[k].id) {
attrValueFound = true;
break;
}
}
if (!attrValueFound) {
attrVO.v.push({
id: attr.attrValueId, // skuValueId id
name: attr.attrValueName, // skuValueName
});
}
// attrValueMap
this.attrValueMap.set(attr.attrValueId, attr.attrValueName);
} }
if (!attrValueFound) {
attrVO.v.push({
id: attr.attrValueId, // skuValueId id
name: attr.attrValueName, // skuValueName
});
}
// attrValueMap
this.attrValueMap.set(attr.attrValueId, attr.attrValueName);
} }
} // debugger;
// debugger; this.vanSku = vanSku;
this.vanSku = vanSku; //
// // TODO sku
// TODO sku this.initialSku = vanSku.list[0];
this.initialSku = vanSku.list[0]; this.initialSku.quantity = 1;
this.initialSku.quantity = 1; });
}); }
} };
};
</script> </script>
<style lang="less"> <style lang="less">
.goods { .goods {
padding-bottom: 50px; padding-bottom: 50px;
&-swipe {
img { &-swipe {
width: 7.5rem; img {
height: 7.5rem; width: 7.5rem;
display: block; height: 7.5rem;
} display: block;
}
&-tag{
font-size: 12px;
border-top: 1px solid #e5e5e5;
span{
margin-right: 10px;
}
i{
color: red;
margin-right: 3px;
}
img{
width: 12px;
margin-right: 3px;
margin-top: 6px;
} }
} }
&-title {
line-height: 18px; &-tag {
padding-top: 10px; font-size: 12px;
margin-bottom: 6px; border-top: 1px solid #e5e5e5;
font-size: 14px;
color: #333; span {
font-weight: 700; margin-right: 10px;
border-top: 1px solid #f0f0f0; }
}
&-subtit{ i {
color: red;
margin-right: 3px;
}
img {
width: 12px;
margin-right: 3px;
margin-top: 6px;
}
}
&-title {
line-height: 18px;
padding-top: 10px;
margin-bottom: 6px;
font-size: 14px;
color: #333;
font-weight: 700;
border-top: 1px solid #f0f0f0;
}
&-subtit {
font-size: 13px;
color: #333;
line-height: 21px;
}
&-price {
color: #f44;
font-size: 20px;
}
&-market-price {
text-decoration: line-through;
margin-left: 8px;
font-size: 13px; font-size: 13px;
color: #333;
line-height: 21px;
}
&-price {
color: #f44;font-size: 20px;
}
&-market-price {
text-decoration: line-through;
margin-left: 8px;
font-size: 13px;
color: #999;
}
&-cell-group {
margin: 15px 0;
.van-cell__value {
color: #999; color: #999;
} }
}
&-info-title{ &-cell-group {
height: 44px;line-height: 44px;text-align: center;font-size: 14px;font-weight: 700;margin: 10px;border-top: 1px solid #e5e5e5; margin: 15px 0;
}
&-info p{ .van-cell__value {
margin: 0; color: #999;
padding: 0; }
margin-block-end: 0; }
margin-block-start: 0;
display: grid; &-info-title {
} height: 44px;
&-info img{ line-height: 44px;
text-align: center;
font-size: 14px;
font-weight: 700;
margin: 10px;
border-top: 1px solid #e5e5e5;
}
&-info p {
margin: 0;
padding: 0;
margin-block-end: 0;
margin-block-start: 0;
display: grid;
}
&-info img {
width: 100%; width: 100%;
}
} }
} </style>
</style>

View File

@ -0,0 +1,35 @@
<template>
<div class="order-success">
<headerNav title="提交成功"/>
<sapn>TODO 支付成功</sapn>
<router-link :to="'/user/order'">
<van-button size="small" type="danger">订单列表</van-button>
</router-link>
</div>
</template>
<script>
import {createOrder} from '../../api/order';
export default {
data() {
return {
}
},
methods: {
},
activated() {
},
};
</script>
<style lang="less">
.order-success {
text-align: center;
}
</style>

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="order"> <div class="order">
<headerNav title="确认订单"/> <headerNav title="确认订单"/>
<van-cell <van-cell
center center
:border="false" :border="false"
class="contact-card" class="contact-card"
@ -13,12 +13,12 @@
</template> </template>
<template v-else> <template v-else>
<strong>张三 138****6520</strong> <strong>张三 138****6520</strong>
<div>广东省深圳市南山区科技园 </div> <div>广东省深圳市南山区科技园</div>
</template> </template>
</van-cell> </van-cell>
<div style="height:15px;"></div> <div style="height:15px;"></div>
<div class="card" v-for="(product,i) in products" :key="i"> <div class="card" v-for="(product,i) in products" :key="i">
<product-card :product='product' /> <product-card :product='product'/>
</div> </div>
<div style="height:15px;"></div> <div style="height:15px;"></div>
<van-cell-group> <van-cell-group>
@ -32,15 +32,15 @@
</van-cell-group> </van-cell-group>
<div style="height:15px;"></div> <div style="height:15px;"></div>
<van-cell-group class="total"> <van-cell-group class="total">
<van-cell title="优惠券" is-link value="抵扣¥5.00" /> <van-cell title="优惠券" is-link value="抵扣¥5.00"/>
</van-cell-group> </van-cell-group>
<div style="height:15px;"></div> <div style="height:15px;"></div>
<van-cell-group class="total"> <van-cell-group class="total">
<van-cell title="商品总额" value="9.99" /> <van-cell title="商品总额" value="9.99"/>
<van-cell title="运费" value="+ 0.00" /> <van-cell title="运费" value="+ 0.00"/>
<van-cell title="折扣" value="- 5.00" /> <van-cell title="折扣" value="- 5.00"/>
<van-cell title="实付金额" value="4.99" style="font-weight: 700;" /> <van-cell title="实付金额" value="4.99" style="font-weight: 700;"/>
</van-cell-group> </van-cell-group>
<div style="height:50px;"></div> <div style="height:50px;"></div>
@ -55,130 +55,155 @@
</template> </template>
<script> <script>
export default {
data() { import {createOrder} from '../../api/order';
return {
type: "add1", export default {
products: [ data() {
{ return {
imageURL: type: "add1",
"https://img10.360buyimg.com/mobilecms/s88x88_jfs/t17572/12/840082281/351445/e1828c58/5aab8dbbNedb77d88.jpg", products: [
title: "良品铺子 肉肉聚汇猪肉脯 猪蹄卤 辣味小吃520g", {
desc: "0.670kg/件肉肉聚汇520g", imageURL:
price: "59.80", "https://img10.360buyimg.com/mobilecms/s88x88_jfs/t17572/12/840082281/351445/e1828c58/5aab8dbbNedb77d88.jpg",
quantity: 2 title: "良品铺子 肉肉聚汇猪肉脯 猪蹄卤 辣味小吃520g",
}, desc: "0.670kg/件肉肉聚汇520g",
{ price: "59.80",
imageURL: quantity: 2
"https://img10.360buyimg.com/mobilecms/s88x88_jfs/t22720/128/1410375403/319576/8dbd859f/5b5e69b3Nf4f0e9e7.jpg", },
title: "元朗 鸡蛋卷 饼干糕点 中秋礼盒 广东特产680g", {
desc: "1.320kg/件", imageURL:
price: "65.80", "https://img10.360buyimg.com/mobilecms/s88x88_jfs/t22720/128/1410375403/319576/8dbd859f/5b5e69b3Nf4f0e9e7.jpg",
quantity: 1, title: "元朗 鸡蛋卷 饼干糕点 中秋礼盒 广东特产680g",
gift: [ desc: "1.320kg/件",
{ price: "65.80",
title: "星巴克Starbucks星冰乐小熊吊饰星巴克Starbucks星冰乐小熊吊饰", quantity: 1,
quantity: 2 gift: [
}, {
{ title: "星巴克Starbucks星冰乐小熊吊饰星巴克Starbucks星冰乐小熊吊饰",
title: "星巴克Starbucks星冰乐小熊吊饰星巴克Starbucks星冰乐小熊吊饰", quantity: 2
quantity: 1 },
} {
] title: "星巴克Starbucks星冰乐小熊吊饰星巴克Starbucks星冰乐小熊吊饰",
}, quantity: 1
{ }
imageURL: ]
"https://img10.360buyimg.com/mobilecms/s88x88_jfs/t17572/12/840082281/351445/e1828c58/5aab8dbbNedb77d88.jpg", },
title: "良品铺子 肉肉聚汇猪肉脯 猪蹄卤 辣味小吃520g", {
desc: "0.670kg/件肉肉聚汇520g", imageURL:
price: "59.80", "https://img10.360buyimg.com/mobilecms/s88x88_jfs/t17572/12/840082281/351445/e1828c58/5aab8dbbNedb77d88.jpg",
quantity: 2 title: "良品铺子 肉肉聚汇猪肉脯 猪蹄卤 辣味小吃520g",
}, desc: "0.670kg/件肉肉聚汇520g",
] price: "59.80",
}; quantity: 2
}, },
methods: { ]
onSubmit() { };
this.$toast("点击按钮");
}, },
}, methods: {
activated(){ onSubmit() {
//keydatamap this.$toast("点击按钮");
this.$on('selectAddress', function(data){ const { skuId, quantity } = this.$route.query;
const userAddressId = 1;
const remark = '';
const orderItems = [{
skuId,
quantity,
}];
createOrder({
orderItems,
userAddressId,
remark,
})
},
},
activated() {
//keydatamap
this.$on('selectAddress', function (data) {
// //
console.log(1); console.log(1);
}.bind(this)); }.bind(this));
}, },
}; };
</script> </script>
<style lang="less"> <style lang="less">
.order { .order {
font-size: 14px; font-size: 14px;
background: #f7f7f7; background: #f7f7f7;
.contact-card::before {
content: ""; .contact-card::before {
left: 0; content: "";
right: 0; left: 0;
bottom: 0; right: 0;
height: 2px; bottom: 0;
position: absolute; height: 2px;
background: -webkit-repeating-linear-gradient( position: absolute;
135deg, background: -webkit-repeating-linear-gradient(
#ff6c6c 0, 135deg,
#ff6c6c 20%, #ff6c6c 0,
transparent 0, #ff6c6c 20%,
transparent 25%, transparent 0,
#3283fa 0, transparent 25%,
#3283fa 45%, #3283fa 0,
transparent 0, #3283fa 45%,
transparent 50% transparent 0,
); transparent 50%
background: repeating-linear-gradient( );
-45deg, background: repeating-linear-gradient(
#ff6c6c 0, -45deg,
#ff6c6c 20%, #ff6c6c 0,
transparent 0, #ff6c6c 20%,
transparent 25%, transparent 0,
#3283fa 0, transparent 25%,
#3283fa 45%, #3283fa 0,
transparent 0, #3283fa 45%,
transparent 50% transparent 0,
); transparent 50%
background-size: 80px; );
} background-size: 80px;
.total {
.van-cell__value {
color: red;
} }
}
.total {
.van-submit-bar__bar { .van-cell__value {
border-top: 1px solid #f7f7f7; color: red;
} }
.additional {
.van-cell {
padding: 0 15px;
font-size: 12px;
} }
.van-cell__title {
flex: 11; .van-submit-bar__bar {
overflow: hidden; border-top: 1px solid #f7f7f7;
text-overflow: ellipsis;
white-space: nowrap;
} }
.van-tag {
line-height: 12px; .additional {
margin-right: 5px; .van-cell {
} padding: 0 15px;
font-size: 12px;
.price { }
color: #e93b3d;
font-size: 10px; .van-cell__title {
span { flex: 11;
font-size: 16px; overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.van-tag {
line-height: 12px;
margin-right: 5px;
}
.price {
color: #e93b3d;
font-size: 10px;
span {
font-size: 16px;
}
} }
} }
} }
}
</style> </style>

View File

@ -1,176 +1,249 @@
<template> <template>
<div> <div>
<headerNav title="我的订单"/> <headerNav title="我的订单"/>
<van-tabs v-model="active"> <van-tabs v-model="active" @change="onTabChange">
<van-tab title="全部"> <van-tab title="全部"></van-tab>
<van-tab title="待付款"></van-tab>
<div v-for="(item,index) in list" :key="index"> <van-tab title="待收货"></van-tab>
<van-cell-group class="order-item" > <van-tab title="已完成"></van-tab>
<van-panel :title="'订单:'+item.ordercode" :status="item.state" > <van-tab title="已取消"></van-tab>
<div slot="header">
<van-cell class="title" :title="'订单:'+item.ordercode" :value="item.state" :to="'/user/order/info/'+item.orderid"/>
</div>
<div>
<router-link :to="'/user/order/info/'+item.orderid">
<div v-if="item.products.length==1" v-for="(product,i) in item.products" :key="i">
<product-card :product='product' />
</div>
<div v-if="item.products.length>1" class="more" >
<div class="item" v-for="(product,i) in item.products" :key="i">
<div >
<img :src="product.imageURL"/>
</div>
</div>
</div>
</router-link>
</div>
<div slot="footer">
<span class="total">总价8154898.89</span>
<van-button size="small">确认收货</van-button>
<van-button size="small" type="danger">支付</van-button>
</div>
</van-panel>
</van-cell-group>
</div>
</van-tab>
<van-tab title="待付款">内容 2</van-tab>
<van-tab title="待收货">内容 3</van-tab>
<van-tab title="已完成">内容 4</van-tab>
<van-tab title="已取消">内容 5</van-tab>
</van-tabs> </van-tabs>
</div>
<div v-for="(item,index) in list" :key="index">
<van-cell-group class="order-item">
<van-panel :title="'订单:'+item.ordercode" :status="item.state">
<div slot="header">
<van-cell class="title" :title="'订单:'+item.ordercode" :value="item.state"
:to="'/user/order/info/'+item.orderid"/>
</div>
<div>
<router-link :to="'/user/order/info/'+item.orderid">
<div v-if="item.products.length==1" v-for="(product,i) in item.products" :key="i">
<product-card :product='product'/>
</div>
<div v-if="item.products.length > 0" class="more">
<div class="item" v-for="(product,i) in item.products" :key="i">
<div>
<img :src="product.imageURL"/>
</div>
</div>
</div>
</router-link>
</div>
<div slot="footer">
<span class="total">总价{{item.payAmount / 100}} </span>
<van-button size="small">确认收货</van-button>
<van-button size="small" type="danger">支付</van-button>
</div>
</van-panel>
</van-cell-group>
</div>
</div>
</template> </template>
<script> <script>
export default {
components:{ import {getOrderPage} from '../../../api/order';
},
data(){ export default {
return{ components: {},
active:0, data() {
return {
list:[ active: 0,
{
orderid:1, list: [
ordercode:'4511248234235', {
state:'待付款', orderid: 1,
products:[ ordercode: '4511248234235',
{ state: '待付款',
imageURL:'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712', products: [
title:'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套', {
price:'499', imageURL: 'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712',
quantity:2 title: 'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套',
}, price: '499',
{ quantity: 2
imageURL:'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712', },
title:'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套', {
price:'499', imageURL: 'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712',
quantity:1 title: 'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套',
}, price: '499',
{ quantity: 1
imageURL:'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712', },
title:'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套', {
price:'499', imageURL: 'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712',
quantity:2 title: 'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套',
}, price: '499',
{ quantity: 2
imageURL:'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712', },
title:'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套', {
price:'499', imageURL: 'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712',
quantity:2 title: 'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套',
}, price: '499',
{ quantity: 2
imageURL:'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712', },
title:'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套', {
price:'499', imageURL: 'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712',
quantity:2 title: 'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套',
}, price: '499',
] quantity: 2
}, },
{
orderid:2,
ordercode:'4511248234235',
state:'待收货',
products:[
{
imageURL:'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712',
title:'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套',
price:'499',
quantity:2
}
]
},
{
orderid:3,
ordercode:'4511248234235',
state:'已完成',
products:[
{
imageURL:'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712',
title:'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套',
price:'499',
quantity:2
}
]
},
{
orderid:4,
ordercode:'4511248234235',
state:'已取消',
products:[
{
imageURL:'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712',
title:'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套',
price:'499',
quantity:2
}
]
},
] ]
} },
} {
} orderid: 2,
ordercode: '4511248234235',
state: '待收货',
products: [
{
imageURL: 'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712',
title: 'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套',
price: '499',
quantity: 2
}
]
},
{
orderid: 3,
ordercode: '4511248234235',
state: '已完成',
products: [
{
imageURL: 'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712',
title: 'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套',
price: '499',
quantity: 2
}
]
},
{
orderid: 4,
ordercode: '4511248234235',
state: '已取消',
products: [
{
imageURL: 'https://pop.nosdn.127.net/19e33c9b-6c22-4a4b-96da-1cb7afb32712',
title: 'BEYOND博洋家纺 床上套件 秋冬保暖纯棉床单被套 双人被罩 磨毛全棉印花床品四件套',
price: '499',
quantity: 2
}
]
},
]
}
},
methods: {
onTabChange(index) {
console.log('onTabChange', index)
// status tab index
const statusArray = [null, 1, 3, 4, 5];
// if (index === 0) {
// //
// } else if (index === 1) {
// // 1
// } else if (index === 2) {
// // 3
// } else if (index === 3) {
// // 4
// } else if (index === 4) {
// // 5
// }
this.queryOrderPage({
status: statusArray[index],
})
},
queryOrderPage(params) {
getOrderPage({
pageNo: 0,
pageSize: 10,
...params,
}).then(data => {
const {orders} = data;
const list = orders.map(order => {
const {orderItems} = order;
const products = orderItems.map(order => {
return {
imageURL: order.skuImage,
title: order.skuName,
price: order.price,
quantity: order.quantity,
};
});
return {
orderid: order.id,
ordercode: order.orderNo,
state: `${order.status}`,
products,
payAmount: order.payAmount,
};
});
this.list = list;
// console.log('list', list)
});
},
},
mounted() {
this.queryOrderPage()
},
}
</script> </script>
<style lang="less"> <style lang="less">
.order-item{ .order-item {
margin-bottom: 10px; margin-bottom: 10px;
font-size: 12px; font-size: 12px;
.title{
border-bottom: 1px solid #e5e5e5;
.van-cell__title{ .title {
flex: 2; border-bottom: 1px solid #e5e5e5;
}
.van-cell__value{ .van-cell__title {
color: red; flex: 2;
} }
.van-cell__value {
color: red;
}
} }
.van-panel__footer { .van-panel__footer {
text-align: right; text-align: right;
border-bottom: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5;
} }
.van-button { .van-button {
margin-left: 5px; margin-left: 5px;
} }
.total{
position: absolute; .total {
top: 17px; position: absolute;
left: 15px; top: 17px;
font-size: 13px; left: 15px;
font-size: 13px;
} }
.more{
overflow-x: scroll;white-space: nowrap; -webkit-overflow-scrolling: touch; margin: 5px 0 5px 15px; .more {
.item{ overflow-x: scroll;
width: 90px; height:90px; margin-right: 10px;display: inline-block; white-space: nowrap;
img{ -webkit-overflow-scrolling: touch;
width: 100%; margin: 5px 0 5px 15px;
}
.item {
width: 90px;
height: 90px;
margin-right: 10px;
display: inline-block;
img {
width: 100%;
} }
}
} }
} }
</style> </style>