|
@@ -1,339 +1,212 @@
|
|
|
<template>
|
|
|
- <view class="container">
|
|
|
- <u-sticky style="margin-top: 15rpx; margin-left: 20rpx" bgColor="#fff">
|
|
|
- <u-tabs lineWidth="40" :list="list" :current="current" @change="handlerChangeItem"
|
|
|
- itemStyle="padding-left: 15px; padding-right: 15px; height: 34px;" />
|
|
|
- </u-sticky>
|
|
|
-
|
|
|
- <!-- 订单 -->
|
|
|
- <view class="order">
|
|
|
- <view class="order-box">
|
|
|
- <view class="order-item" v-for="(item, index) of init_list" :key="index">
|
|
|
- <view class="" @click="handlerSkipDetail(item)">
|
|
|
- <view class="item-top">
|
|
|
- <view class="top-left gray-color">订单编号 : {{ item.orderSn }}</view>
|
|
|
- <view class="top-right">{{ type_name }}</view>
|
|
|
- </view>
|
|
|
- <view class="item-top">
|
|
|
- <view class="top-left gray-color">支付时间 : {{ item.createTimeText }}</view>
|
|
|
- <view class="top-right"></view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
-
|
|
|
- <u-line margin="20rpx 0"></u-line>
|
|
|
-
|
|
|
- <view class="item-center" :key="idx" v-for="(itm, idx) of item.goodsInfo">
|
|
|
- <view class="center-left">
|
|
|
- <image :src="itm.goodsPic" class="img"></image>
|
|
|
- </view>
|
|
|
- <view class="center-right">
|
|
|
- <view class="r-l">
|
|
|
- <view class="right-name"> {{ itm.goodsName }} </view>
|
|
|
- <view class="right-descript"> 测试商品描述111 </view>
|
|
|
- <view class="l-box">
|
|
|
- <view class="right-price"> ¥{{ itm.goodsPrice }} </view>
|
|
|
- <view class="right-numb"> ×{{ itm.goodsQuantity }} </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="r-r">
|
|
|
- <view class="r-item" @click.stop="handlerSkipComment(item, itm)"
|
|
|
- v-if="type == 4 && itm.assessStatus == 0">
|
|
|
- <u-icon name="chat" color="#000" size="28"></u-icon>
|
|
|
- <span>评价</span>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
-
|
|
|
- <u-line margin="20rpx 0" dashed="true"></u-line>
|
|
|
-
|
|
|
- <view class="item-allnumb-box">
|
|
|
- <view class="allnumb-left"> {{ item.allNumb }}件商品 </view>
|
|
|
- <view class="allnumb-right">
|
|
|
- <span class="r-text">共计</span>¥{{ item.allPrice }}
|
|
|
- </view>
|
|
|
- </view>
|
|
|
-
|
|
|
- <view class="item-bottom">
|
|
|
- <button class="btn" v-if="current == 0" @click='handlerCancelOrder(item)'>取消订单</button>
|
|
|
- <!-- <button class="btn" v-if='current == 1' @click='handlerOrderBtn(1)'>申请退款</button> -->
|
|
|
- <!-- <button class="btn" v-if='current == 2' @click='handlerOrderBtn(2)'>售后</button> -->
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view v-if="init_list.length == 0" style="margin-top: 40rpx">
|
|
|
- <u-empty mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png" />
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
+ <view class="container">
|
|
|
+ <u-sticky style="margin-top: 15rpx; margin-left: 20rpx" bgColor="#fff">
|
|
|
+ <u-tabs lineWidth="40" :list="list" :current="current"
|
|
|
+ itemStyle="padding-left: 15px; padding-right: 15px; height: 34px;" />
|
|
|
+ </u-sticky>
|
|
|
+
|
|
|
+ <view class='order-box'>
|
|
|
+ <view class="order-item" v-for="(item,index) of 3">
|
|
|
+ <view class="item-top">
|
|
|
+ <view class="top-left">
|
|
|
+ <image src="@/static/home/icon_home_detail_shop.png" class='img'></image>
|
|
|
+ <view class="left-name"> 聚鑫(途虎养车店)</view>
|
|
|
+ </view>
|
|
|
+ <view class="top-right"> 待付款 </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="goods-item" v-for="item of 3">
|
|
|
+ <view class='item-left'>
|
|
|
+ <image src="@/static/QR57a.jpg" class='img'></image>
|
|
|
+ </view>
|
|
|
+ <view class='item-right'>
|
|
|
+ <view class="right-top">
|
|
|
+ 38号轮胎38号轮胎38号轮胎38号轮胎38号轮号轮号轮胎
|
|
|
+ </view>
|
|
|
+ <view class="right-bottom">
|
|
|
+ <view class="bottom-left"> ¥20.00 </view>
|
|
|
+ <view class="bottom-right"> X1 </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <u-line margin='24rpx 0'></u-line>
|
|
|
+
|
|
|
+ <view class='price-box'>
|
|
|
+ <view class="price">需付款¥1559.9</view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="btn-box">
|
|
|
+ <button class='btn btn2'>继续付款</button>
|
|
|
+ <button class='btn btn1'>查看卷码</button>
|
|
|
+ <button class='btn btn2'>再来一单</button>
|
|
|
+ <button class='btn btn2'>退款进度</button>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ </view>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- import {
|
|
|
- userOrdersApi,
|
|
|
- getUserOrderList,
|
|
|
- cancelOrder
|
|
|
- } from '@/api/client/order';
|
|
|
- export default {
|
|
|
- data() {
|
|
|
- return {
|
|
|
- current: 0,
|
|
|
- type: 0,
|
|
|
- type_name: '',
|
|
|
- size: 20,
|
|
|
- // 订单状态:0->待付款;1->已付款;2->已发货;3->已完成;4->已关闭;5->无效订单
|
|
|
- list: [{
|
|
|
- name: '待付款',
|
|
|
- type: 0,
|
|
|
- },
|
|
|
- {
|
|
|
- name: '已付款',
|
|
|
- type: 1,
|
|
|
- },
|
|
|
- // {
|
|
|
- // name: '待发货',
|
|
|
- // type: 2,
|
|
|
- // },
|
|
|
- // {
|
|
|
- // name: '已发货',
|
|
|
- // type: 3,
|
|
|
- // },
|
|
|
- {
|
|
|
- name: '已完成',
|
|
|
- type: 3,
|
|
|
- },
|
|
|
- {
|
|
|
- name: '已关闭',
|
|
|
- type: 4,
|
|
|
- }
|
|
|
- // ,
|
|
|
- // {
|
|
|
- // name: '无效订单',
|
|
|
- // type: 5,
|
|
|
- // },
|
|
|
- ],
|
|
|
- init_list: [],
|
|
|
- };
|
|
|
- },
|
|
|
- mounted() {
|
|
|
- // this.userOrdersPage();
|
|
|
- },
|
|
|
- onShow() {
|
|
|
- let cur = this.$store.state.order.skip_order_type.type;
|
|
|
- switch (cur) {
|
|
|
- case 0:
|
|
|
- this.current = 0;
|
|
|
- this.userOrdersPage(cur);
|
|
|
- break;
|
|
|
- case 1:
|
|
|
- this.current = 2;
|
|
|
- this.userOrdersPage(cur);
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- this.current = 3;
|
|
|
- this.userOrdersPage(cur);
|
|
|
- break;
|
|
|
- }
|
|
|
- },
|
|
|
- computed: {
|
|
|
- allNumber() {
|
|
|
- this.init_list.map(rs => {
|
|
|
- let sum = 0;
|
|
|
- let price = 0;
|
|
|
- rs.goodsInfo.map(rc => {
|
|
|
- sum += rc.goodsQuantity;
|
|
|
- price += rc.goodsPrice;
|
|
|
- });
|
|
|
- rs.allNumb = sum;
|
|
|
- rs.allPrice = price;
|
|
|
- });
|
|
|
- return;
|
|
|
- },
|
|
|
- },
|
|
|
- methods: {
|
|
|
- handlerChangeItem(data) {
|
|
|
- this.current = data.index;
|
|
|
- this.type = data.type;
|
|
|
- this.type_name = data.name;
|
|
|
- this.userOrdersPage(this.type);
|
|
|
- },
|
|
|
-
|
|
|
- async userOrdersPage(type) {
|
|
|
- let orderStatus = type == undefined ? 0 : `${type}`;
|
|
|
- let res = await getUserOrderList({
|
|
|
- status: orderStatus,
|
|
|
- paging: '1,20',
|
|
|
- });
|
|
|
- if ((res.code = 200 && res.data)) {
|
|
|
- this.init_list = res.data.records;
|
|
|
- this.init_list.map(rs => {
|
|
|
- rs.createTimeText = uni.$u.timeFormat(rs.createTime, 'yyyy-mm-dd hh:MM:ss');
|
|
|
- })
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- // 跳转到订单详情
|
|
|
- handlerSkipDetail(e) {
|
|
|
- uni.navigateTo({
|
|
|
- url: `/PageMine/orderModules/orderDetail?orderList=${JSON.stringify(e)}`,
|
|
|
- });
|
|
|
- },
|
|
|
- // 取消订单
|
|
|
- handlerCancelOrder(e) {
|
|
|
- cancelOrder(e.id).then(res => {
|
|
|
- if (res.code == 'OK') {
|
|
|
- uni.showToast({
|
|
|
- title: '订单取消成功',
|
|
|
- icon: 'none',
|
|
|
- });
|
|
|
- this.userOrdersPage(this.type);
|
|
|
- } else {
|
|
|
- uni.showToast({
|
|
|
- title: res.message,
|
|
|
- icon: 'none',
|
|
|
- });
|
|
|
- return
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- // 点击跳转到商品评价
|
|
|
- handlerSkipComment(item, itm) {
|
|
|
- uni.navigateTo({
|
|
|
- url: `/PageMine/orderModules/orderComment?orderList=${JSON.stringify(item)}&goodsList=${JSON.stringify(itm)}`,
|
|
|
- });
|
|
|
- },
|
|
|
- },
|
|
|
- };
|
|
|
+ export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ current: 0,
|
|
|
+ list: [{
|
|
|
+ name: '待付款',
|
|
|
+ type: 0,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '已付款',
|
|
|
+ type: 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '已完成',
|
|
|
+ type: 3,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '已关闭',
|
|
|
+ type: 4,
|
|
|
+ }
|
|
|
+
|
|
|
+ ],
|
|
|
+ };
|
|
|
+ },
|
|
|
+ };
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
- .order {
|
|
|
- margin-top: 10px;
|
|
|
- padding: 10rpx 20rpx 20rpx;
|
|
|
- box-sizing: border-box;
|
|
|
-
|
|
|
- .order-box {
|
|
|
- .order-item {
|
|
|
- margin-bottom: 20rpx;
|
|
|
- background-color: #fff;
|
|
|
- border-radius: 20rpx;
|
|
|
- padding: 20rpx;
|
|
|
- box-shadow: 0 8rpx 15rpx 0 rgba(0, 0, 0, 0.08);
|
|
|
-
|
|
|
- .item-top {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- margin-bottom: 10rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .item-center {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- margin-bottom: 10rpx;
|
|
|
-
|
|
|
- .center-left {
|
|
|
- height: 160rpx;
|
|
|
-
|
|
|
- .img {
|
|
|
- width: 160rpx;
|
|
|
- height: 160rpx;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .center-right {
|
|
|
- width: 100%;
|
|
|
- height: 160rpx;
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- margin-left: 20rpx;
|
|
|
-
|
|
|
- .r-l {
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- justify-content: space-around;
|
|
|
-
|
|
|
- .right-name {
|
|
|
- color: #4d5671;
|
|
|
- font-size: 32rpx;
|
|
|
- font-weight: bold;
|
|
|
- }
|
|
|
-
|
|
|
- .right-descript {
|
|
|
- font-size: 28rpx;
|
|
|
- color: #858797;
|
|
|
- }
|
|
|
-
|
|
|
- .l-box {
|
|
|
- display: flex;
|
|
|
- font-size: 24rpx;
|
|
|
- align-items: center;
|
|
|
- font-style: italic;
|
|
|
-
|
|
|
- .right-price {
|
|
|
- margin-right: 20rpx;
|
|
|
- font-weight: bold;
|
|
|
- font-size: 28rpx;
|
|
|
- color: #f57f32;
|
|
|
- }
|
|
|
-
|
|
|
- .right-numb {
|
|
|
- font-size: 24rpx;
|
|
|
- color: #858797;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .r-r {
|
|
|
- .r-item {
|
|
|
- align-items: center;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .item-allnumb-box {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- align-items: center;
|
|
|
- font-weight: bold;
|
|
|
-
|
|
|
- .allnumb-left {
|
|
|
- font-size: 32rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .allnumb-right {
|
|
|
- font-size: 26rpx;
|
|
|
- color: #f57f32;
|
|
|
-
|
|
|
- .r-text {
|
|
|
- color: #000;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .item-bottom {
|
|
|
- width: 100%;
|
|
|
- margin-top: 20rpx;
|
|
|
-
|
|
|
- .btn {
|
|
|
- height: 70rpx;
|
|
|
- background-color: rgba(248, 213, 53, 0.8);
|
|
|
- color: #4e5059;
|
|
|
- font-size: 28rpx;
|
|
|
- text-align: center;
|
|
|
- line-height: 70rpx;
|
|
|
- border-radius: 20rpx;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .gray-color {
|
|
|
- color: #858797;
|
|
|
- }
|
|
|
+ .container {
|
|
|
+ font-size: 28rpx;
|
|
|
+ padding: 0 0 30rpx;
|
|
|
+ .order-box {
|
|
|
+ margin-top: 18rpx;
|
|
|
+
|
|
|
+ .order-item {
|
|
|
+ padding: 34rpx 32rpx;
|
|
|
+ background-color: #fff;
|
|
|
+ margin-bottom: 18rpx;
|
|
|
+ .item-top {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 24rpx;
|
|
|
+
|
|
|
+ .top-left {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ .img {
|
|
|
+ width: 32rpx;
|
|
|
+ height: 32rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .left-name {
|
|
|
+ margin-left: 8rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .top-right {
|
|
|
+ color: #ED4444;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .goods-item {
|
|
|
+ display: flex;
|
|
|
+ margin-bottom: 24rpx;
|
|
|
+ .item-left {
|
|
|
+ margin-right: 24rpx;
|
|
|
+
|
|
|
+ .img {
|
|
|
+ width: 160rpx;
|
|
|
+ height: 160rpx;
|
|
|
+ border-radius: 16rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .item-right {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: space-between;
|
|
|
+
|
|
|
+ .right-top {
|
|
|
+ color: #333333;
|
|
|
+ }
|
|
|
+
|
|
|
+ .right-bottom {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ .bottom-left {
|
|
|
+ color: #EB3636;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 32rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .bottom-right {
|
|
|
+ color: #616570;
|
|
|
+ font-size: 24rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .goods-item:last-child{
|
|
|
+ margin:0;
|
|
|
+ }
|
|
|
+ .price-box {
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-end;
|
|
|
+ margin-bottom: 24rpx;
|
|
|
+ font-size: 30rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+
|
|
|
+ .btn-box {
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-end;
|
|
|
+
|
|
|
+ .btn {
|
|
|
+ padding: 0 24rpx;
|
|
|
+ border-radius: 8rpx;
|
|
|
+ box-sizing: border-box;
|
|
|
+ margin-right: 24rpx;
|
|
|
+ height: 60rpx;
|
|
|
+ line-height: 60rpx;
|
|
|
+ font-size: 28rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .btn:last-child {
|
|
|
+ margin: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .btn1 {
|
|
|
+ color: #616570;
|
|
|
+ border: 2rpx solid #616570;
|
|
|
+ }
|
|
|
+
|
|
|
+ .btn2 {
|
|
|
+ color: #215EBE;
|
|
|
+ border: 2rpx solid #215EBE;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|
|
|
|
|
|
- ::deep .u-tabs__wrapper__nav__item__text {
|
|
|
- font-size: 30px;
|
|
|
- }
|
|
|
+<style scope>
|
|
|
+ ::v-deep .u-tabs__wrapper__nav[data-v-48634e29] {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ position: relative;
|
|
|
+ justify-content: space-between;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* //选中蓝色滑块对应 */
|
|
|
+ ::v-deep .u-tabs__wrapper__nav__item {
|
|
|
+ flex: 1 1 0% !important;
|
|
|
+ }
|
|
|
</style>
|