Browse Source

提交

master
chenkainan 1 year ago
parent
commit
edf848a3c3
  1. 14
      manifest.json
  2. 2
      mixins/myMixins.js
  3. 19
      pages.json
  4. 131
      pages/login/login.vue
  5. 2
      static/js/request.js
  6. 681
      subPackages/order/detail.vue
  7. 701
      subPackages/order/trades.vue

14
manifest.json

@ -50,11 +50,19 @@
"quickapp" : {},
/* */
"mp-weixin" : {
"appid" : "",
"appid" : "wxb8f15afe2765976d",
"setting" : {
"urlCheck" : false
"urlCheck" : false,
"es6" : true,
"minified" : true,
"postcss" : true
},
"usingComponents" : true
"usingComponents" : true,
"permission" : {
"scope.userLocation" : {
"desc" : "获取用户距离商家距离"
}
}
},
"mp-alipay" : {
"usingComponents" : true

2
mixins/myMixins.js

@ -15,7 +15,7 @@ export const myMixins ={
// 分享到朋友圈
onShareTimeline() {
return {
title: '吴优游',
title: '盐都文旅',
type: 0,
summary: "edewdewdewf",
imageUrl: "https://static.ticket.sz-trip.com/dongtai/images/index/share.jpg"

19
pages.json

@ -25,6 +25,12 @@
"navigationStyle": "custom",
"navigationBarTitleText": "我的"
}
},
{
"path": "pages/login/login",
"style": {
"navigationBarTitleText": "盐都文旅"
}
}
],
"subPackages": [{
@ -185,6 +191,19 @@
"style" : {
"navigationBarTitleText" : "个人收藏"
}
},
{
"path" : "order/trades",
"style" : {
"navigationBarTitleText" : "全部订单"
}
},
{
"path" : "order/detail",
"style" : {
"navigationBarTitleText" : "订单状态",
"navigationStyle": "custom"
}
}
]
}],

131
pages/login/login.vue

@ -0,0 +1,131 @@
<template>
<view class="bg">
<view class="logo flex-center">LOGO</view>
<view :class="['btn', 'flex-center', {'btns': flag}]" @click="getUserInfo()">快捷登录</view>
<image src="https://static.ticket.sz-trip.com/yandu/images/user/tips.png" class="tips" v-show="!flag"></image>
<footer class="flex-between">
<view @click="flag = !flag" :style="{border: flag ? 'none' : ''}"><image src="https://static.ticket.sz-trip.com/yandu/images/user/dui.png" v-show="flag"></image></view>
我已阅读并同意 <span @click="gotoPath('/subPackages/user/privacy')">用户服务协议隐私政策</span>
</footer>
</view>
</template>
<script>
export default {
data() {
return {
flag: false
}
},
methods: {
getUserInfo() {
if(!this.flag) return;
var _this = this
uni.login({
provider: 'weixin',
success(loginRes) {
uni.getUserInfo({
withCredentials: true,
success(res) {
_this.Post({
code: loginRes.code,
userInfo: res.userInfo,
encryptedData: res.encryptedData,
iv: res.iv,
wechat_qrcode: uni.getStorageSync('wechat_qrcode')?uni.getStorageSync('wechat_qrcode'):''
}, '/api/mini_program/login').then(resTwo => {
_this.$store.commit('changeUserInfo', resTwo.data.userinfo)
if (_this.$store.state.user.toPath.includes('user/user')) {
uni.switchTab({
url: _this.$store.state.user.toPath
})
} else {
uni.navigateBack({})
}
})
}
})
},
fail(err) {
console.log(err);
},
})
}
}
}
</script>
<style lang="scss" scoped>
.bg {
height: 100vh;
}
.logo {
width: 156rpx;
height: 156rpx;
background: #87CD93;
border-radius: 50%;
font-weight: 500;
font-size: 32rpx;
color: #FFFFFF;
position: absolute;
top: 66.67rpx;
left: 50%;
transform: translate(-50%, 0);
}
.btn {
width: 667rpx;
height: 93rpx;
background: #CCCCCC;
border-radius: 20rpx;
font-weight: 500;
font-size: 35rpx;
color: #FFFFFF;
position: absolute;
top: 301rpx;
left: 50%;
transform: translate(-50%,0)
}
.btns {
background: #71B580;
}
.tips {
position: absolute;
left: 54rpx;
bottom: 155rpx;
width: 293.33rpx;
height: 72.67rpx;
}
footer {
padding: 0 68rpx;
position: absolute;
bottom: 94rpx;
font-weight: 500;
font-size: 25rpx;
color: #333333;
width: 100%;
view {
width: 48rpx;
height: 48rpx;
border-radius: 50%;
overflow: hidden;
border: 1rpx solid #666666;
image {
width: 100%;
height: 100%;
}
}
span {
color: rgba(113, 181, 128, 1);
}
}
</style>

2
static/js/request.js

@ -16,7 +16,7 @@ Vue.prototype.Post = (params, apiurl) => {
data: params || {},
header: params.header || {
'content-type': 'application/json',
'token': params.token || '2dd9b712-f118-41f6-b3a8-602e4fbb0ce3'
'token': params.token || ''
},
success: res => {
uni.hideLoading()

681
subPackages/order/detail.vue

@ -0,0 +1,681 @@
<template>
<view class="bg">
<view class="title-box">
<span class="iconfont" @click="goBack">&#xe660;</span>
<view>订单状态</view>
</view>
<view class="top-box">
<view>{{info.status_text}}</view>
<!-- 待支付时会显示自动取消时间 -->
<view v-if="info.status=='WAIT_PAYMENT'" class="close-time">订单将在{{info.close_time.slice(-8)}}自动取消</view>
</view>
<!-- 子订单里info.order_child[0].goods_genre景点ticket酒店hotel美食food邮寄自提pgoods -->
<!-- 景点订单 -->
<view v-if="info.order_child[0].goods_genre == 'ticket'">
<!-- 景点详情 -->
<view class="scenic-detail">
<view>
<view class="scenic-title">
{{info.order_child[0].goods_title}}
<image src="https://static.ticket.sz-trip.com/yandu/images/order/rightIcon.png"></image>
</view>
<view class="scenic-subtitle">
出行时间<span>{{info.order_child[0].use_date}}</span>
</view>
<view class="scenic-subtitle" v-if="info.order_child[0].scenic_data.open_description">
开放时间<span>{{info.order_child[0].scenic_data.open_description}}</span>
</view>
</view>
<!-- 子订单规格 -->
<view>
<view v-for="(item,index) in info.order_child" :key="index" class="specifications-item flex-between">
<view>{{item.specifications_name}}</view>
<view class="flex-between" style="width: 150rpx;">
<view>{{item.pay_money / 100}}</view>
<view>x{{item.num}}</view>
</view>
</view>
</view>
<!-- 商品价格 -->
<view class="public-price">
<view class="flex-between">
商品总额<span>{{info.money / 100}}</span>
</view>
<view class="flex-between" v-if="info.discounts">
优惠券<span>-{{info.discounts / 100}}</span>
</view>
<view class="flex-between">
实付金额<span style="font-size: 35rpx;color: #EE3E3B;">{{info.pay_money / 100}}</span>
</view>
</view>
</view>
<!-- 出行人 -->
<view class="novice-box">
出行人
<view v-for="(item,index) in info.order_child" :key="index" class="novice-item">
<view class="novice-title">{{item.specifications_name}}</view>
<view class="novice-subtitle">
<span>姓名</span>{{item.contact_name}}
</view>
<view class="novice-subtitle">
<span>身份证</span>{{item.id_number}}
</view>
</view>
</view>
</view>
<!-- 邮寄自提订单 -->
<view v-if="info.order_child[0].goods_genre == 'pgoods'">
<view class="shipping-address" v-if="info.order_child[0].consignee_id">
收货地址
<view>{{info.order_child[0].consignee.name}} {{info.order_child[0].consignee.tel}}</view>
<view class="text-overflowRows">{{info.order_child[0].consignee.address}}</view>
</view>
<!-- 产品详情 -->
<view class="pgoods-detail" :style="{marginTop: info.order_child[0].consignee_id ? '20rpx' : '-66rpx'}">
商家名称
<view class="pgoods-product" v-for="(item,index) in info.order_child" :key="index">
<image :src="showImg(item.specifications_image)" mode="aspectFill" class="product-img"></image>
<view class="product-content flex-column">
<view class="product-title">{{item.goods_title}}</view>
<view class="product-subtitle flex-between">
{{item.specifications_name}}
<span>x{{item.num}}</span>
</view>
</view>
</view>
<!-- 商品价格 -->
<view class="public-price">
<view class="flex-between">
商品总额<span>{{info.money / 100}}</span>
</view>
<view class="flex-between" v-if="info.discounts">
优惠券<span>-{{info.discounts / 100}}</span>
</view>
<view class="flex-between">
实付金额<span style="font-size: 35rpx;color: #EE3E3B;">{{info.pay_money / 100}}</span>
</view>
</view>
</view>
<!-- 自提信息 -->
<view class="pickup-box" v-if="info.order_child[0].contact_id && info.order_child[0].extract_id">
自提信息
<view class="pickup-user">
<image src="https://static.ticket.sz-trip.com/yandu/images/order/user.png" class="picker-userImg"></image>
<view>{{info.order_child[0].contact.name}}</view>
<view>{{info.order_child[0].contact.tel}}</view>
</view>
<view class="pickup-address">
<image></image>
</view>
</view>
</view>
<!-- 订单信息 -->
<view class="order-info">
订单信息
<view class="order-subtitle" style="display: flex;align-items: center;">
<span>订单账号</span>{{info.order_id}}
<view class="copy flex-around" @click="clickCopy">
<image src="https://static.ticket.sz-trip.com/yandu/images/order/copy.png" class="copy-img"></image>
复制
</view>
</view>
<view class="order-subtitle">
<span>下单时间</span>{{info.create_time}}
</view>
<view class="order-subtitle" v-if="info.pay_time">
<span>支付时间</span>{{info.pay_time}}
</view>
</view>
<!-- 联系客服 -->
<view class="kefu-box" @click="clickPhone('110')">
<image src="https://static.ticket.sz-trip.com/yandu/images/order/kefu.png" mode="" class="kefu-img"></image>
联系客服
</view>
<!-- 底部按钮 -->
<footer>
<view class="bottom-price" v-if="info.status == 'WAIT_PAYMENT'">
合计
<span class="price">{{info.pay_money/100}}</span>
</view>
<view class="btn-box">
<view class="btn" v-if="['PAYMENT_SUCCESSFULLY','WAIT_PAYMENT'].includes(info.status)" @click="closeOrder(info.order_id)">
取消订单
</view>
<view class="btn" v-if="['WAIT_REFUND','REFUND_SUCCESS','WAIT_COMMENT','COMPLETE','CLOSED'].includes(info.status)" @click="gotoDetail">
再次购买
</view>
<view class="btn pay-btn" v-if="info.status == 'WAIT_PAYMENT'" @click="setOrderId(info.order_id)">
立即支付
</view>
</view>
</footer>
</view>
</template>
<script>
export default {
data() {
return {
order_id: '',
info: {},
}
},
onLoad(option) {
this.order_id = option.id
this.getDetail()
},
onShow() {
},
methods: {
//
getDetail() {
this.Post({
order_id: this.order_id
},'/api/order/orderDetail').then(res => {
this.info = res.data;
})
},
//
clickCopy() {
uni.setClipboardData({
data: this.info.order_id, //
success: () => {
//
uni.showToast({
title: '复制成功',
icon: 'none'
});
}
});
},
//
gotoDetail() {
},
//
closeOrder(id, index) {
let that = this;
uni.showModal({
title: '提示',
content: '是否关闭订单?',
success: successRes => {
if (successRes.confirm) {
that.Post({
order_id: id
},'/api/order/closeOrder').then(res => {
if (res.code == 1) {
uni.showToast({
title: '关闭成功',
icon: 'success'
});
that.getDetail();
}
});
}
}
});
},
//
setOrderId(id) {
let that = this;
that.orderId = id;
that.Post({
order_id: id,
type: "miniprogram",
platform: 'miniprogram'
},'/api/pay/unify').then(res => {
if (res.data) {
uni.requestPayment({
nonceStr: res.data.nonceStr,
package: res.data.package,
paySign: res.data.paySign,
signType: res.data.signType,
timeStamp: res.data.timeStamp,
success:()=>{
that.getDetail();
}
});
}
});
},
}
}
</script>
<style lang="scss" scoped>
.bg {
overflow-x: hidden;
min-height: 100vh;
background-color: #F7F7F7;
padding-bottom: 200rpx;
}
.title-box {
position: absolute;
left: 5rpx;
top: 101rpx;
font-size: 40rpx;
padding: 0 26.67rpx;
z-index: 2;
display: flex;
align-items: center;
width: 100%;
view {
font-weight: 400;
font-size: 36rpx;
color: #000000;
margin-left: 245rpx;
}
}
.top-box {
width: 750rpx;
height: 414rpx;
background: linear-gradient(180deg, #DDF2E2, #DDF2E2, #DDF2E2, #DDF2E2, #DDF2E2, #F7F7F7);
padding: 200rpx 0 0 50rpx;
font-weight: bold;
font-size: 43rpx;
color: #000000;
.close-time {
font-weight: 400;
font-size: 27rpx;
margin-top: 20rpx;
}
}
//
.scenic-detail {
width: 697rpx;
height: auto;
background: #FFFFFF;
border-radius: 20rpx;
padding: 26rpx;
margin: -66rpx auto 0;
&>view:nth-child(2) {
margin: 30rpx 0;
border-top: 1rpx solid #D8D8D8;
border-bottom: 1rpx solid #D8D8D8;
}
.scenic-title {
font-weight: bold;
font-size: 36rpx;
color: #000000;
image {
width: 17.33rpx;
height: 29.33rpx;
margin-left: 20rpx;
vertical-align: middle;
}
}
.scenic-subtitle {
font-weight: 500;
font-size: 27rpx;
color: #666666;
margin-top: 20rpx;
span {
color: #000;
}
}
.specifications-item {
font-weight: 500;
font-size: 27rpx;
color: #000000;
margin: 25rpx 0;
}
}
.novice-box {
width: 697rpx;
height: auto;
background: #FFFFFF;
border-radius: 20rpx;
padding: 26rpx;
font-weight: bold;
font-size: 36rpx;
color: #010101;
margin: 20rpx auto;
.novice-item {
view {
margin: 20rpx 0;
}
.novice-title {
font-weight: 800;
font-size: 27rpx;
color: #333333;
}
.novice-subtitle {
font-weight: 500;
font-size: 27rpx;
color: #000000;
span {
display: inline-block;
width: 130rpx;
color: #666666;
}
}
}
.novice-item:nth-child(n+2) {
border-top: 1rpx solid #D8D8D8;
}
}
//
.shipping-address {
width: 697rpx;
height: 235rpx;
background: #FFFFFF;
border-radius: 20rpx;
padding: 26rpx;
margin: -66rpx auto 0;
font-weight: bold;
font-size: 36rpx;
color: #000000;
&>view {
margin-top: 25rpx;
font-weight: 500;
}
&>view:first-child {
font-size: 31rpx;
color: #222222;
}
&>view:last-child {
font-size: 31rpx;
color: #222222;
font-size: 27rpx;
color: #666666;
}
}
.pgoods-detail {
width: 697rpx;
height: auto;
background: #FFFFFF;
border-radius: 20rpx;
padding: 26rpx;
margin: 20rpx auto;
font-weight: bold;
font-size: 32rpx;
color: #000000;
.pgoods-product {
display: flex;
margin-top: 24rpx;
padding-bottom: 33rpx;
border-bottom: 1rpx solid #D8D8D8;
.product-img {
width: 140rpx;
height: 140rpx;
border-radius: 13rpx;
}
.product-content {
width: 485rpx;
height: 140rpx;
margin-left: 18rpx;
padding: 5rpx 0 12rpx;
justify-content: space-between;
.product-title {
font-weight: bold;
font-size: 27rpx;
color: #000000;
}
.product-subtitle {
font-weight: 500;
font-size: 24rpx;
color: #666666;
}
}
}
}
//
.pickup-box {
width: 697rpx;
height: auto;
background: #FFFFFF;
border-radius: 20rpx;
margin: 20rpx auto;
padding: 33rpx 26rpx;
font-weight: bold;
font-size: 36rpx;
color: #000000;
&>view {
margin-top: 40rpx;
}
.pickup-user {
display: flex;
align-items: center;
font-weight: bold;
font-size: 31rpx;
color: #000000;
.picker-userImg {
width: 33.33rpx;
height: 33.33rpx;
}
&>view:first-of-type {
margin: 0 63rpx 0 19rpx;
}
}
.pickup-address {
display: flex;
.pickup-addressImg {
width: 33.33rpx;
height: 33.33rpx;
}
&>view:first-of-type {
width: 305rpx;
margin-left: 18rpx;
}
.picker-shopName {
font-weight: bold;
font-size: 31rpx;
color: #222222;
}
.picker-shopAddress {
font-weight: 500;
font-size: 24rpx;
color: #666666;
margin-top: 15rpx;
}
.pickup-icon {
margin-left: auto;
font-weight: 500;
font-size: 24rpx;
color: #666666;
&>view {
text-align: center;
}
&>view:last-child {
margin-left: 40rpx;
}
image {
width: 56rpx;
height: 56rpx;
margin-bottom: 5rpx;
}
}
}
}
//
.public-price {
view {
font-weight: 500;
font-size: 27rpx;
color: #666666;
margin-top: 25rpx;
span {
font-weight: bold;
font-size: 27rpx;
color: #111111;
}
}
}
//
.order-info {
width: 697rpx;
height: auto;
background: #FFFFFF;
border-radius: 20rpx;
margin: 20rpx auto;
padding: 33rpx 26rpx;
font-weight: bold;
font-size: 36rpx;
color: #000000;
.order-subtitle {
font-weight: 500;
font-size: 27rpx;
color: #000;
margin: 30rpx 0;
span {
display: inline-block;
width: 130rpx;
color: #666666;
}
}
.copy {
width: 93rpx;
height: 37rpx;
border-radius: 11rpx;
border: 1rpx solid #71B580;
font-weight: 500;
font-size: 22rpx;
color: #71B580;
margin-left: 30rpx;
.copy-img {
width: 22rpx;
height: 23.33rpx;
}
}
}
//
.kefu-box {
width: 697rpx;
height: 96rpx;
background: #FFFFFF;
border-radius: 20rpx;
margin: 20rpx auto;
display: flex;
align-items: center;
font-weight: 500;
font-size: 31rpx;
color: #000000;
padding-left: 27rpx;
.kefu-img {
width: 44rpx;
height: 44rpx;
margin-right: 14rpx;
}
}
//
footer {
width: 750rpx;
height: 167rpx;
position: fixed;
bottom: 0;
display: flex;
align-items: center;
background-color: #fff;
border-top: 10rpx solid #F7F7F7;
padding: 0 26rpx;
.bottom-price {
font-weight: 500;
font-size: 28rpx;
color: #000000;
span {
font-weight: bold;
font-size: 48rpx;
color: #EE3E3B;
}
span::before {
content: '¥';
font-size: 27rpx;
}
}
.btn-box {
margin-left: auto;
display: flex;
.btn {
width: 213rpx;
line-height: 71rpx;
border-radius: 37rpx;
border: 1rpx solid #999999;
text-align: center;
margin-right: 14rpx;
font-weight: 500;
font-size: 31rpx;
color: #000000;
}
.btn:last-of-type {
margin-right: 0;
}
.pay-btn {
height: 73rpx;
background: linear-gradient(270deg, #FD6F34, #F4A61F);
border: none;
color: #FFFFFF;
}
}
}
</style>

701
subPackages/order/trades.vue

@ -0,0 +1,701 @@
<template>
<view class="bg">
<view class="top-bg">
<view class="search-box">
<view class="left">
<image src="https://static.ticket.sz-trip.com/yandu/images/eventCalendar/search.png" mode="aspectFill"></image>
<input v-model="keywords" type="text" placeholder="请输入关键字" @confirm="search()" />
</view>
<!-- <view class="btn" @click="search()">搜索</view> -->
</view>
<view class="common-box">
<view class="common-types com-flex-tao">
<view @click="setType(index)" v-for="(item, index) in typeList" :key="item.id" :class="['common-type', typeIndex == index ? 'active' : '']">
{{ item.name }}
</view>
</view>
</view>
</view>
<view class="list-common-empty" v-if="list.length == 0">
<img :src="showImg('/uploads/20221201/8f97261b8eddffcc55342eca0ed0249c.png')" />
<p class="list-common-empty-tip">暂无订单~</p>
</view>
<view class="trade-list" v-if="list.length > 0">
<view v-for="(item, key) in list" :key="item.id" class="trade-items" v-if="showItem(item)" @click="() => choseType(item)">
<view class="trade-item-head">
<view class="trade-item-head-tid">订单号:{{ item.order_id }}</view>
<!-- <view class="trade-item-head-name" v-else>
<image src="https://testtaihu.https://yjks.oss-cn-shanghai.aliyuncs.com/uploads/20221209/49c148d8753ae5aaf50949b2b09e696e.png" mode="aspectFill"></image>
<view class="sj-name">{{ item.list_merchant_name }}</view>
</view> -->
<view class="trade-item-head-state">{{ item.status_text }}</view>
</view>
<view class="trade-item-pros">
<view
class="trade-item-pro"
v-for="(pro, proIndex) in item.order_child"
:key="pro.child_id"
>
<view class="trade-item-pro-img" v-if="pro.specifications_image"><image :src="showImg(pro.specifications_image)" mode="aspectFill"></image></view>
<view class="trade-item-pro-title">{{ pro.goods_title + pro.specifications_name }}</view>
<view class="trade-item-pro-price">
<view class="trade-item-pro-price-pri">{{ pro.pay_money / 100 }}</view>
<view class="trade-item-pro-num">x{{ pro.num }}</view>
<!-- <view v-if="pro.status=='WAIT_COMMENT'">
<navigator catchtap="emptyFunc"
:url="'/subPackages1/order/rate?id='+pro.goods_id+'&tid='+pro.child_id+'&num='+pro.num"
tag="view" class="comment-btn">评价
</navigator>
</view> -->
</view>
</view>
</view>
<view class="trade-item-info">
合计
<text>{{ item.pay_money / 100 }}</text>
</view>
<view class="trade-item-btns">
<view @click.stop="() => refund(item.order_id, key)" v-if="item.status == 'PAYMENT_SUCCESSFULLY'">申请退款</view>
<view @click.stop="() => closeOrder(item.order_id, item)" v-if="item.status == 'WAIT_PAYMENT'">关闭订单</view>
<view @click.stop="confirmpost(item.order_id, key)" v-if="item.postFlag">确认收货</view>
<view class="pay-btn" @click.native="setOrderId(item.order_id)" v-if="item.status == 'WAIT_PAYMENT'">立即支付</view>
</view>
</view>
</view>
<!-- <view v-if="list.length === 0 && finished" class="noDate">
<view>暂无订单</view>
</view> -->
</view>
</template>
<script>
export default {
name: 'Trades',
data() {
return {
finished: false,
list: [],
typeList: [
{
id: 'ALL',
name: '全部'
},
{
id: 'WAIT_PAYMENT',
name: '待付款'
},
{
id: 'PAYMENT_SUCCESSFULLY',
name: '待使用'
},
{
id: 'PAYMENT_SUCCESSFULLY',
name: '待发货'
},
{
id: 'WAIT_CONFIRM',
name: '待收货'
},
{
id: 'WAIT_COMMENT',
name: '待评价'
},
{
id: 'WAIT_REFUND,REFUND_SUCCESS,REFUND_REFUSAL,REFUND_ERROR,REFUND_PART',
name: '退款/售后'
}
],
typeIndex: 0,
ajaxFlag: true,
keywords: '',
orderId: null,
dateRange: [],
type: ''
};
},
onLoad(options) {
console.log(options);
if (options.type) this.typeIndex = this.typeList.findIndex(vm => vm.name === options.type);
this.getList();
uni.$on("updateDataByConnect",this.getDataByConnect)
},
onUnload () {
uni.$off("updateDataByConnect",this.getDataByConnect)
},
onReachBottom() {
if (this.finished) return false;
this.getList();
},
methods: {
getDataByConnect(data) {
if (data.msgType == "updateOrderTrades") {
this.list = [];
this.finished = false;
this.getList()
}
},
emptyFunc() {
},
showItem(item) {
let flag = true;
// if (this.typeIndex == 2 && item.order_child[0] && !item.order_child[0].consignee) flag = false
return flag;
},
onReload() {
this.list = [];
this.finished = false;
this.getList();
},
setType(index) {
this.typeIndex = index;
this.onReload();
},
//
goOrderDetail(item) {
console.log(item);
this.orderId = item.order_id;
// (item.order_child[0].consignee || item.order_child[0].extract)
let url = item.order_child[0] && item.order_child[0].consignee ? `/subPages/order/postOrderInfo?id=${item.order_id}` : `/subPages/order/orderInfo?id=${item.order_id}`;
if (item.status && item.status == 'WAIT_PAYMENT') url += `&status=WAIT_PAYMENT`;
console.log(url);
uni.navigateTo({
url: url
});
},
setOrderId(id) {
let that = this;
that.orderId = id;
that.Post(
{
order_id: id,
type: "miniprogram",
platform: 'miniprogram'
},
'/api/pay/unify'
).then(res => {
if (res.data) {
uni.requestPayment({
nonceStr: res.data.nonceStr,
package: res.data.package,
paySign: res.data.paySign,
signType: res.data.signType,
timeStamp: res.data.timeStamp
});
}
});
},
//
confirmpost(id, index) {
let that = this;
uni.showModal({
title: '提示',
content: '是否确认收货?',
success: successRes => {
if (successRes.confirm) {
that.Post(
{
order_id: id
},
'/api/order/confirmPost'
).then(res => {
if (res.code == 200) {
list[index].order_child.map(item => {
item.status = 'WAIT_COMMENT';
});
list[index].status = 'WAIT_COMMENT';
list[index].postFlag = false;
that.list = list;
uni.showToast({
title: '操作成功'
});
that.$forceUpdate();
}
});
}
}
});
},
//
closeOrder(id, index) {
console.log(id);
console.log(index);
let that = this;
uni.showModal({
title: '提示',
content: '是否关闭订单?',
success: successRes => {
if (successRes.confirm) {
that.Post(
{
order_id: id
},
'/api/order/closeOrder'
).then(res => {
if (res.code == 200) {
uni.showToast({
title: '关闭成功',
icon: 'success'
});
that.list = [];
that.finished = false;
that.getList();
}
});
}
}
});
},
//
deletOrder(id) {
let that = this;
uni.showModal({
title: '提示',
content: '是否删除订单?',
success: successRes => {
if (successRes.confirm) {
that.Post(
{
order_id: id
},
'/api/order/delOrder'
).then(res => {
if (res.code == 200) {
uni.showToast({
title: '删除成功',
icon: 'success'
});
that.list = [];
that.finished = false;
that.getList();
}
});
}
}
});
},
// 退
refund(id, index) {
console.log(id);
let that = this;
uni.showModal({
title: '提示',
content: '是否申请退款?',
success: successRes => {
if (successRes.confirm) {
that.Post(
{
order_id: id
},
'/api/order/applyRefund'
).then(res => {
if (res.code == 200) {
uni.showToast({
title: '申请成功',
icon: 'success'
});
that.onReload();
}
});
}
}
});
},
search(e) {
this.list = [];
this.getList();
// if (e.keyCode == 13) {
// //
// this.keywords = e.target.value;
// }
},
getList() {
let data = {
status: this.typeList[this.typeIndex].id == 'ALL' ? '' : this.typeList[this.typeIndex].true_id || this.typeList[this.typeIndex].id,
offset: this.list.length,
limit: 5,
name: this.keywords
};
this.Post(data, '/api/order/orderList').then(res => {
// this.list = res.data;
// let arr = res.data;
// arr.forEach(item => {
// item.order_child.forEach((itemX, index) => {
// if (index > 0) {
// item.order_child[0].data = [...item.order_child[0].data, ...itemX.data];
// } else {
// itemX.f_order_id = item.order_id;
// itemX.f_status_text = item.status_text;
// itemX.f_status = item.status;
// itemX.f_pay_money = item.pay_money;
// console.log(itemX);
// this.list.push(itemX);
// }
// });
// });
// console.log(this.list);
// res.data.map(item => {
// let num = 0,
// postFlag = true;
// item.order_child.map(order => {
// num = num + order.num;
// if (order.status != 'POST') {
// postFlag = false
// }
// })
// item.postFlag = postFlag;
// item.totalNumber = num;
// })
this.list = [...this.list, ...res.data]
if (res.data.length < 5) {
this.finished = true;
}
});
},
UpdateOrder(id) {
this.ajaxFlag = false;
let list = this.list;
this.Post(
{
order_id: id
},
'/api/order/orderDetail'
).then(res => {
this.ajaxFlag = true;
list.map(item => {
if (item.order_id == id) {
item = res.data;
}
});
this.list = list;
});
},
choseType(item) {
uni.navigateTo({
url:'/subPackages/order/detail?id='+item.order_id
});
},
}
};
</script>
<style scoped lang="scss">
view {
box-sizing: border-box;
}
.common-box {
height: 90rpx;
}
.common-types {
background: white;
height: 90rpx;
font-size: 31rpx;
z-index: 10;
margin: auto;
color: #666;
overflow-x: scroll;
padding: 0 27rpx;
}
.common-types::-webkit-scrollbar {
width: 0rpx;
height: 0;
display: none;
}
.common-type {
flex-shrink: 0;
margin: 0 26rpx;
line-height: 90rpx;
height: 90rpx;
position: relative;
}
.common-type.active {
font-size: 31rpx;
font-weight: bold;
color: #71B580;
}
.common-type.active:after {
display: block;
width: 60%;
background-color: rgba(0, 215, 237, 1);
font-size: 0;
content: '1';
margin: auto;
position: absolute;
left: 0;
right: 0;
bottom: 1rpx;
height: 4rpx;
background: #71B580;
border-radius: 2rpx;
}
.bg {
min-height: 100vh;
background-color: #f7f7f7;
}
.noDate {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
margin-top: 200rpx;
}
.noDate img {
width: 514rpx;
height: auto;
}
.noDate view {
font-size: 24rpx;
color: #777777;
}
.trade-list {
padding: 28rpx 26rpx;
}
.trade-items {
background-color: white;
margin-bottom: 28rpx;
border-radius: 20rpx;
}
.trade-item-head {
display: flex;
justify-content: space-between;
padding: 28rpx 20rpx;
border-bottom: 1rpx solid #d8d8d8;
}
.trade-item-head-tid {
font-size: 24rpx;
display: flex;
align-items: center;
color: #666666;
}
.trade-item-head-state {
font-size: 27rpx;
font-family: PingFang SC;
font-weight: bold;
color: #71B580;
}
.trade-item-head-name {
display: flex;
align-items: center;
font-size: 31rpx;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
image {
width: 33rpx;
height: 31rpx;
}
view {
margin-left: 13rpx;
}
}
.trade-item-pros {
display: flex;
/* background-color: #F2F2F2; */
flex-direction: column;
}
.trade-item-pro {
display: flex;
padding: 20rpx;
justify-content: space-between;
}
.trade-item-pro-img {
display: flex;
justify-content: center;
align-items: center;
}
.trade-item-pro-img image {
width: 180rpx;
height: 180rpx;
border-radius: 10rpx;
}
.trade-item-pro-price {
display: flex;
flex-direction: column;
}
.trade-item-pro-title {
text-align: left;
flex: 1;
padding: 0 20rpx;
font-size: 28rpx;
}
.trade-item-pro-price view {
display: flex;
flex-wrap: nowrap;
text-wrap: none;
white-space: nowrap;
justify-content: flex-end;
}
.trade-item-pro-price-pri {
font-size: 27rpx;
color: #fc514b;
font-weight: 500;
color: #333333;
}
.trade-item-pro-num {
font-size: 24rpx;
color: #666666;
margin-top: 24rpx;
}
.trade-item-info {
font-size: 28rpx;
display: flex;
justify-content: flex-end;
align-items: center;
background-color: white;
padding: 0rpx 20rpx;
margin-top: -6rpx;
/* border-bottom: 1px solid #B6B6B6; */
}
.trade-item-info text {
font-size: 36rpx;
font-weight: bold;
color: #333333;
}
.trade-item-btns {
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: center;
padding: 20rpx;
}
.trade-item-btns view {
margin-left: 20rpx;
background: rgba(237, 237, 237, 0);
border: 1rpx solid #999999;
border-radius: 27rpx;
padding: 8rpx 16rpx;
font-size: 27rpx;
font-family: PingFang SC;
font-weight: 500;
color: #333333;
}
.trade-item-btns .pay-btn {
color: #FFFFFF;
background: linear-gradient(90deg, #FD6F34, #F4A61F);
border: none;
padding: 10rpx 16rpx;
}
.comment-btn {
width: 100rpx;
text-align: center;
line-height: 40rpx;
border-radius: 20rpx;
border: 1px solid #999999;
color: #333333;
justify-content: center !important;
font-size: 24rpx;
margin-top: 16rpx;
}
.list-common-empty {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 50vh;
}
.list-common-empty img {
width: 483rpx;
height: 254rpx;
}
.list-common-empty-tip {
margin-top: 61rpx;
font-size: 29rpx;
font-family: PingFang SC;
font-weight: 500;
color: #8599b5;
}
.com-flex-tao {
display: flex;
justify-content: space-between;
align-items: center;
}
.search-box {
width: 697rpx;
height: 67rpx;
background: #f2f2f2;
border-radius: 33rpx;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 8rpx 0 28rpx;
margin: 0 auto;
margin-bottom: 20rpx;
.left {
display: flex;
align-items: center;
image {
width: 28rpx;
height: 30rpx;
}
input {
margin-left: 20rpx;
font-size: 31rpx;
font-weight: 400;
color: #333;
width: 450rpx;
}
}
.btn {
width: 107rpx;
height: 53rpx;
background: #71B580;
border-radius: 27rpx;
font-size: 28rpx;
font-weight: 400;
color: #ffffff;
line-height: 53rpx;
text-align: center;
}
}
.top-bg {
background: #fff;
padding-top: 20rpx;
}
</style>
Loading…
Cancel
Save