This commit is contained in:
mactj 2021-01-19 16:28:42 +08:00
parent 15b7221dc0
commit fdb2b76691
14 changed files with 350 additions and 35 deletions

View File

@ -1,4 +1,3 @@
import request from '../js/request' import request from '../js/request'
import { baseUrl } from '../baseDefine' import { baseUrl } from '../baseDefine'
@ -30,6 +29,13 @@ class OrderApis {
url: baseUrl + 'winery/detail/refund/' + id url: baseUrl + 'winery/detail/refund/' + id
}) })
} }
getOrderDetailList(data) {
return request.get({
url: baseUrl + 'winery/detail/list',
data: data
})
}
} }
export default new OrderApis() export default new OrderApis()

View File

@ -106,6 +106,7 @@ pages: [
'pages/mall/user/user-address', 'pages/mall/user/user-address',
'pages/mall/user/user-address-list', 'pages/mall/user/user-address-list',
'pages/mall/order/order-list', 'pages/mall/order/order-list',
'pages/mall/order/order-detail-list',
'pages/mall/order/order-check', 'pages/mall/order/order-check',
'pages/mall/shopping-car/shopping-car-list', 'pages/mall/shopping-car/shopping-car-list',
'pages/winery/winery-detail' 'pages/winery/winery-detail'

View File

@ -5,9 +5,9 @@
*/ */
// export const baseUrl = 'http://127.0.0.1:18989/' // export const baseUrl = 'http://127.0.0.1:18989/'
export const baseUrl = 'http://36.1.51.30:18989/' // export const baseUrl = 'http://36.1.51.30:18989/'
// export const baseUrl = 'http://36.1.50.18:18989/winery/' export const baseUrl = 'http://41.liyiren.me:8696/'
// export const baseUrl = 'http://62.234.123.172:18989/api/' // export const baseUrl = 'http://36.1.50.18:18989/'
// export const baseUrl = 'https://www.xiao4r.com/wine/winery/' // export const baseUrl = 'https://www.xiao4r.com/wine/winery/'
export const imgbaseUrl = 'https://www.xiao4r.com/xiao4rstatic/img/winery/' export const imgbaseUrl = 'https://www.xiao4r.com/xiao4rstatic/img/winery/'

View File

@ -24,13 +24,11 @@ module.exports.parseImage = parseImage;
<div v-for="(item,index) in records" style="width: 100%;"> <div v-for="(item,index) in records" style="width: 100%;">
<van-card <van-card
:num="item.goodsPrice" :num="item.goodsCount"
tag="标签" :price="item.goodsCount * item.goods.goodsPrice"
price="10.00" :desc="item.goods.goodsAlias"
desc="描述信息" :title="item.goods.goodsName"
:title="item.goodsName" :thumb="filters.parseImage(item.goods.goodsFaceImg)"
:thumb="filters.parseImage(item.goodsFaceImg)"
> >
<view slot="footer"> <view slot="footer">
<van-button size="mini" plain @tap="onRefund(item)">申请退款</van-button> <van-button size="mini" plain @tap="onRefund(item)">申请退款</van-button>

View File

@ -0,0 +1,172 @@
<style lang="less">
page {
background-color: #eeeeee;
}
.fream {
border-radius: 25px;
width: 660rpx;
margin-top: 20px;
background-color: white;
//box-shadow: 4px 4px 10px #eeeeee;
padding: 10px 10px 10px 10px;
display: flex;
flex-direction: column;
}
.van-card {
background-color: #ffffff !important;
}
</style>
<wxs module="filters" lang="babel">
const parseImage = (imageKey) => {
return 'https://winery-1257413599.cos.ap-beijing.myqcloud.com/' + imageKey
}
const parseOrderStatus = (status) => {
let result = '未知状态'
switch(status) {
case 0:
result = '未支付'
break
case 1:
result = '已取消'
break
case 2:
result = '已支付'
break
case 3:
result = '待收货'
break
case 4:
result = '交易完成'
break
default:
break
}
console.log("123:",status)
console.log("123:",result)
return result
}
module.exports.parseImage = parseImage;
module.exports.parseOrderStatus = parseOrderStatus;
</wxs>
<template>
<div style="width: 100%;">
<van-loading wx:if="{{ !isInit }}" style="margin-top: 20px; display: flex;align-items: center;flex-direction: column;"></van-loading>
<view class="contianer" style="margin: 10px;" wx:else>
<div v-if="records.length < 1" style="display: flex;flex-direction: column;align-items: center;width: 100%;">
<van-empty description="暂无订单" />
</div>
<div class="fream" v-for="(item,index) in records" >
<van-card
:num="item.goodsCount"
:price="item.goodsCount * item.goods.goodsPrice"
:desc="item.goods.goodsAlias"
:title="item.goods.goodsName"
:thumb="filters.parseImage(item.goods.goodsFaceImg)"
>
<view slot="footer">
<!-- <van-button v-if="row.status === 2 || row.status === 4" size="mini" plain @tap="onRefund(item)">申请退款</van-button>-->
<!-- <van-button size="mini" plain @tap="onDetail(item)" style="margin-left: 10px;">查看详情</van-button>-->
</view>
</van-card>
</div>
</view>
</div>
</template>
<script>
import wepy from '@wepy/core'
import store from '@/store'
import { mapActions, mapState } from '@wepy/x'
import defaultMix from '../../../mixins/defaultMix'
import appManager from '../../../appManager'
import orderApis from '../../../apis/orderApis'
import { goodsDetailPage } from '../../../store/constant/nav/pages'
wepy.component({
store,
hooks: {},
props: {
status: ''
},
data: {
records: [],
isInit: false
},
mixins: [defaultMix],
computed: {
...mapState({
'imageDefine': state => state.imageDefine,
'user': state => state.user,
'navDefine': state => state.navDefine,
'userAddress': state => state.userAddress
})
},
methods: {
onRefund(item) {
// 申请退款
// orderApis.refundOrder(item.id)
},
onDetail(item) {
// appManager.navigateTo(goodsDetailPage + '?id=' + item.goods.id)
},
async init() {
this.isInit = false
let data
if (this.status) {
data = {
status: this.status
}
}
const req = await orderApis.getOrderDetailList(data)
if (req.code === 200) {
this.records = req.rows
}
this.isInit = true
}
},
ready() {
console.log('ready')
this.init()
},
onShow() {
console.log('onShow')
this.init()
}
})
</script>
<config>
{
navigationBarTitleText: ''
}
</config>

View File

@ -47,10 +47,8 @@ default:
break break
} }
console.log("123:",status)
console.log("123:",result)
return result
return result
} }
@ -63,7 +61,8 @@ module.exports.parseOrderStatus = parseOrderStatus;
<div style="width: 100%;"> <div style="width: 100%;">
<van-loading wx:if="{{ !isInit }}" style="margin-top: 20px;"></van-loading> <van-loading wx:if="{{ !isInit }}"
style="margin-top: 20px; display: flex;align-items: center;flex-direction: column;"></van-loading>
<view class="contianer" style="margin: 10px;" wx:else> <view class="contianer" style="margin: 10px;" wx:else>
@ -72,24 +71,30 @@ module.exports.parseOrderStatus = parseOrderStatus;
</div> </div>
<div class="fream" v-for="(row,index) in records" > <div class="fream" v-for="(row,index) in records">
<span style="display: flex;justify-content: flex-end;margin-right: 10px;font-size: 14px; color: #AC1630;">{{filters.parseOrderStatus(row.status)}}</span> <span
style="display: flex;justify-content: flex-end;margin-right: 10px;font-size: 14px; color: #AC1630;">{{filters.parseOrderStatus(row.status)}}</span>
<div v-for="(item,index) in row.orderDetailList" style="width: 100%;"> <div v-for="(item,index) in row.orderDetailList" style="width: 100%;">
<van-card <van-card
:num="item.goodsCount" :num="item.goodsCount"
:price="item.goodsCount" :price="item.goodsCount * item.goods.goodsPrice"
:desc="'描述信息'" :desc="item.goods.goodsAlias"
:title="item.goodsId" :title="item.goods.goodsName"
:thumb="filters.parseImage(item.goodsFaceImg)" :thumb="filters.parseImage(item.goods.goodsFaceImg)"
> >
<view slot="footer"> <view slot="footer">
<van-button v-if="row.status === 2 || row.status === 4" size="mini" plain @tap="onRefund(item)">申请退款</van-button> <van-button v-if="row.status === 2 || row.status === 4" size="mini" plain @tap="onRefund(item)">申请退款
<van-button size="mini" plain @tap="onDetail(item)" style="margin-left: 10px;">查看详情</van-button> </van-button>
<van-button size="mini" plain @tap="onDetail(item)" style="margin-left: 10px;margin-top: 10px;">查看详情</van-button>
</view> </view>
</van-card> </van-card>
<div v-if="row.status === 0">
<van-divider />
<van-button style="float: right;margin-right: 16px;" size="mini" plain @tap="onPay(row)">继续支付</van-button>
</div>
</div> </div>
</div> </div>
@ -139,7 +144,30 @@ wepy.component({
}, },
onDetail(item) { onDetail(item) {
appManager.navigateTo(goodsDetailPage + '?id=' + item.goods.id) appManager.navigateTo(goodsDetailPage + '?id=' + item.goods.id)
},
onPay(item) {
let self = this
console.log(item)
let payData = JSON.parse(item.payMsg)
wx.requestPayment({
appId: payData.appId,
timeStamp: payData.timeStamp,
nonceStr: payData.nonceStr,
package: payData.packageValue,
signType: payData.signType,
paySign: payData.paySign,
success: function(res) {
wx.showLoading({ title: '正在获取订单信息.', mask: true })
setTimeout(() => {
wx.hideLoading()
self.init()
}, 3000)
},
fail: function(res) {
appManager.showToast('支付失败.')
}
})
}, },
async init() { async init() {
this.isInit = false this.isInit = false

View File

@ -29,7 +29,7 @@ module.exports.getTime = getTime;
</wxs> </wxs>
<template> <template>
<van-tabbar active="{{ pageIndex }}" bind:change="onChange" fixed active-color="#AC1630"> <van-tabbar active="{{ pageIndex }}" bind:change="onChange" fixed active-color="#AC1630">
<van-tabbar-item info="3" > <van-tabbar-item >
<image <image
slot="icon" slot="icon"
:src="imageDefine.TAP_BAR_ICON1_OFF" :src="imageDefine.TAP_BAR_ICON1_OFF"
@ -44,7 +44,7 @@ module.exports.getTime = getTime;
/> />
首页 首页
</van-tabbar-item> </van-tabbar-item>
<van-tabbar-item info="3"> <van-tabbar-item >
<image <image
slot="icon" slot="icon"
:src="imageDefine.TAP_BAR_ICON2_OFF" :src="imageDefine.TAP_BAR_ICON2_OFF"
@ -59,7 +59,7 @@ module.exports.getTime = getTime;
/> />
福利购 福利购
</van-tabbar-item> </van-tabbar-item>
<van-tabbar-item info="3"> <van-tabbar-item >
<image <image
slot="icon" slot="icon"
:src="imageDefine.TAP_BAR_ICON3_OFF" :src="imageDefine.TAP_BAR_ICON3_OFF"
@ -74,7 +74,7 @@ module.exports.getTime = getTime;
/> />
紫环会 紫环会
</van-tabbar-item> </van-tabbar-item>
<van-tabbar-item info="3"> <van-tabbar-item >
<image <image
slot="icon" slot="icon"
:src="imageDefine.TAP_BAR_ICON4_OFF" :src="imageDefine.TAP_BAR_ICON4_OFF"

View File

@ -42,7 +42,7 @@ module.exports.parseImage = parseImage;
</div> </div>
</div> </div>
<div v-else class="fream" @tap="onSelectAddress"> <div v-else class="fream" >
<div style="display: flex; justify-content: space-between;"> <div style="display: flex; justify-content: space-between;">
<van-icon name="home-o" size="60rpx" /> <van-icon name="home-o" size="60rpx" />
@ -56,7 +56,7 @@ module.exports.parseImage = parseImage;
<span style="margin-top: 5px;">{{currentAddress.address}}</span> <span style="margin-top: 5px;">{{currentAddress.address}}</span>
</div> </div>
</div> </div>
<van-icon name="arrow" /> <van-icon name="arrow" @tap="onSelectAddress" />
</div> </div>
<div style="display: flex; justify-content:flex-end;margin: 10px;"> <div style="display: flex; justify-content:flex-end;margin: 10px;">

View File

@ -0,0 +1,96 @@
<style lang="less">
</style>
<wxs module="filters" lang="babel">
const parseImage = (imageKey) => {
return 'https://winery-1257413599.cos.ap-beijing.myqcloud.com/' + imageKey
}
module.exports.parseImage = parseImage;
</wxs>
<template>
<nav-bar title="退款记录" />
<div style="width: 100%;">
<van-tabs active="{{ activeTab }}" bind:change="onChangeTab">
<van-tab title="退款成功">
<order-detail-list-body status="3" />
</van-tab>
<van-tab title="退款申请">
<order-detail-list-body status="1" />
</van-tab>
<van-tab title="退款中">
<order-detail-list-body status="2" />
</van-tab>
</van-tabs>
</div>
</template>
<script>
import wepy from '@wepy/core'
import store from '@/store'
import { mapActions, mapState } from '@wepy/x'
import defaultMix from '../../../mixins/defaultMix'
import appManager from '../../../appManager'
import addressApis from '../../../apis/addressApis'
import { userAddressPage } from '../../../store/constant/nav/home'
import orderApis from '../../../apis/orderApis'
wepy.page({
store,
hooks: {},
data: {
activeTab: 0,
records: [],
isInit: false
},
mixins: [defaultMix],
computed: {
...mapState({
'imageDefine': state => state.imageDefine,
'user': state => state.user,
'navDefine': state => state.navDefine,
'userAddress': state => state.userAddress
})
},
methods: {
onChangeTab(e) {
this.activeTab = e.$wx.detail.index
},
async init() {
}
},
ready() {
this.init()
},
onShow() {
this.init()
}
})
</script>
<config>
{
navigationBarTitleText: '',
usingComponents: {
'order-detail-list-body': '../../../components/mall/order/order-detail-list-body',
}
}
</config>

View File

@ -28,7 +28,7 @@ module.exports.parseImage = parseImage;
<order-list-body status="2" /> <order-list-body status="2" />
</van-tab> </van-tab>
<van-tab title="交易完成"> <van-tab title="交易完成">
<order-list-body status="3" /> <order-list-body status="3" />
</van-tab> </van-tab>
<van-tab title="已取消"> <van-tab title="已取消">
<order-list-body status="1" /> <order-list-body status="1" />
@ -87,6 +87,13 @@ wepy.page({
} }
}, },
onLoad(options) {
if (options.orderStatus) {
this.activeTab = Number(options.orderStatus)
}
},
ready() { ready() {
this.init() this.init()
}, },

View File

@ -130,6 +130,11 @@ wepy.page({
this.isCheckedAll = this.checkList.length === this.shoppingCar.length this.isCheckedAll = this.checkList.length === this.shoppingCar.length
}, },
onSubmit() { onSubmit() {
if (this.shoppingCar.length < 1) {
appManager.showToast('购物车中没有商品.')
return
}
let order = { let order = {
addressId: '', addressId: '',
orderDetailList: [], orderDetailList: [],

View File

@ -1,5 +1,5 @@
import { imgbaseUrl } from '../../../baseDefine' import { imgbaseUrl } from '../../../baseDefine'
import { orderListPage, userAddressListPage } from './pages' import { orderDetailListPage, orderListPage, userAddressListPage } from './pages'
export const myMenuList1 = [ export const myMenuList1 = [
@ -25,9 +25,9 @@ export const myMenuList2 = [
path: userAddressListPage path: userAddressListPage
}, },
{ {
name: '发票管理', name: '退款管理',
icon: imgbaseUrl + 'doctor.png', icon: imgbaseUrl + 'doctor.png',
path: '' path: orderDetailListPage
}, { }, {
name: '优惠券', name: '优惠券',
icon: imgbaseUrl + 'doctor.png', icon: imgbaseUrl + 'doctor.png',

View File

@ -1,5 +1,6 @@
export const shoppingCarList = '/pages/mall/shopping-car/shopping-car-list' export const shoppingCarList = '/pages/mall/shopping-car/shopping-car-list'
export const orderListPage = '/pages/mall/order/order-list' export const orderListPage = '/pages/mall/order/order-list'
export const orderDetailListPage = '/pages/mall/order/order-detail-list'
export const orderCheck = '/pages/mall/order/order-check' export const orderCheck = '/pages/mall/order/order-check'
export const userAddressListPage = '/pages/mall/user/user-address-list' export const userAddressListPage = '/pages/mall/user/user-address-list'
export const goodsDetailPage = '/pages/mall/goods/goods-detail' export const goodsDetailPage = '/pages/mall/goods/goods-detail'

View File

@ -1,6 +1,6 @@
import { homeBanner, homeBanner1, homeBanner2, homeHeader, homeMenuList, menu1, menu2 } from './nav/home' import { homeBanner, homeBanner1, homeBanner2, homeHeader, homeMenuList, menu1, menu2 } from './nav/home'
import { myMenuList1, myMenuList2, myMenuList3 } from './nav/my' import { myMenuList1, myMenuList2, myMenuList3 } from './nav/my'
import { orderCheck, orderListPage, shoppingCarList, userAddressListPage } from './nav/pages' import { orderCheck, orderDetailListPage, orderListPage, shoppingCarList, userAddressListPage } from './nav/pages'
export const navDefine = { export const navDefine = {
HOME_MENU_LIST: homeMenuList, HOME_MENU_LIST: homeMenuList,
@ -18,6 +18,7 @@ export const navDefine = {
SHOPPING_CAR_LIST: shoppingCarList, SHOPPING_CAR_LIST: shoppingCarList,
ORDER_LIST_PAGE: orderListPage, ORDER_LIST_PAGE: orderListPage,
ORDER_DETAIL_LIST_PAGE: orderDetailListPage,
ORDER_CHECK: orderCheck, ORDER_CHECK: orderCheck,
USER_ADDRESS_LIST_PAGE: userAddressListPage, USER_ADDRESS_LIST_PAGE: userAddressListPage,