mirror of
https://github.com/crmeb/CRMEB.git
synced 2026-10-29 22:10:49 +00:00
improve: 保底值
This commit is contained in:
parent
5aa8fcdf8c
commit
4ee92f8403
@ -13,8 +13,8 @@
|
||||
<image :src='item.image'></image>
|
||||
</view>
|
||||
<view class='text acea-row row-column-around'>
|
||||
<view class='name line1'>{{item.title}}</view>
|
||||
<view class='num'><text class='iconfont icon-pintuan'></text>{{item.people}}{{$t(`人正在参与`)}}
|
||||
<view class='name line1'>{{item.title || ''}}</view>
|
||||
<view class='num'><text class='iconfont icon-pintuan'></text>{{item.people || ''}}{{$t(`人正在参与`)}}
|
||||
</view>
|
||||
<view class='money'>{{$t(`最低`)}} : {{$t(`¥`)}}<text class='price'>{{item.min_price}}</text>
|
||||
</view>
|
||||
|
||||
@ -30,7 +30,7 @@
|
||||
<image src="../static/groupLine.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="list">
|
||||
<view class="list" v-if="combinationList.length">
|
||||
<view class="item acea-row row-between-wrapper" v-for="(item,index) in combinationList" :key='index'
|
||||
@tap="openSubcribe(item)">
|
||||
<view class="pictrue">
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
<view class='timeList'>
|
||||
<block v-for="(item,index) in timeList" :key='index'>
|
||||
<view @tap='settimeList(item,item.key)' class='item' :class="active == index + 1?'on':''">
|
||||
<view class='time'><span>{{item.name}}</span></view>
|
||||
<view class='time'><span>{{item.name || ''}}</span></view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
@ -21,10 +21,10 @@
|
||||
<image :src='item.image'></image>
|
||||
</view>
|
||||
<view class='text acea-row row-column-around'>
|
||||
<view class='name line2'>{{item.store_name}}</view>
|
||||
<view class='name line2'>{{item.store_name || ''}}</view>
|
||||
<view class='booking'>
|
||||
<text v-if="item.presell_type != 0 && active != 1" class="count"
|
||||
style="color: #999;">{{$t(`已预定`)}}{{item.sales ? item.sales : 0}}{{item.unit_name}}</text>
|
||||
style="color: #999;">{{$t(`已预定`)}}{{item.sales ? item.sales : 0}}{{item.unit_name || ''}}</text>
|
||||
<text v-else style="color: #999; font-size: 24rpx;">{{$t(`未开始`)}}</text>
|
||||
</view>
|
||||
<view v-if="item.coupon" class='coupon acea-row row-between-wrapper'
|
||||
|
||||
@ -1,49 +1,53 @@
|
||||
<template>
|
||||
<view v-if="shareInfoStatus" class="poster-first">
|
||||
<view class="mask-share">
|
||||
<image :src="imgHost + '/statics/images/share-info.png'" @click="shareInfoClose" @touchmove.stop.prevent="false"></image>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {HTTP_REQUEST_URL} from '@/config/app';
|
||||
export default {
|
||||
props: {
|
||||
shareInfoStatus: {
|
||||
type: Boolean,
|
||||
default:false,
|
||||
}
|
||||
},
|
||||
data: function() {
|
||||
return {
|
||||
imgHost:HTTP_REQUEST_URL,
|
||||
};
|
||||
},
|
||||
mounted: function() {},
|
||||
methods: {
|
||||
shareInfoClose: function() {
|
||||
this.$emit("setShareInfoStatus");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.poster-first {
|
||||
overscroll-behavior: contain;
|
||||
}
|
||||
.mask-share {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 99;
|
||||
}
|
||||
.mask-share image {
|
||||
width: 100%;
|
||||
height:100%;
|
||||
}
|
||||
<template>
|
||||
<view v-if="shareInfoStatus" class="poster-first">
|
||||
<view class="mask-share">
|
||||
<image :src="imgHost + '/statics/images/share-info.png'" @click="shareInfoClose"
|
||||
@touchmove.stop.prevent="false"></image>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
HTTP_REQUEST_URL
|
||||
} from '@/config/app';
|
||||
export default {
|
||||
props: {
|
||||
shareInfoStatus: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
}
|
||||
},
|
||||
data: function() {
|
||||
return {
|
||||
imgHost: HTTP_REQUEST_URL,
|
||||
};
|
||||
},
|
||||
mounted: function() {},
|
||||
methods: {
|
||||
shareInfoClose: function() {
|
||||
this.$emit("setShareInfoStatus");
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.poster-first {
|
||||
overscroll-behavior: contain;
|
||||
}
|
||||
|
||||
.mask-share {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 99;
|
||||
}
|
||||
|
||||
.mask-share image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
<template>
|
||||
<view :style="colorStyle">
|
||||
<view class='newsDetail'>
|
||||
<view class='title'>{{articleInfo.title}}</view>
|
||||
<view class='title'>{{articleInfo.title || ''}}</view>
|
||||
<view class='list acea-row row-middle'>
|
||||
<view class='label'>{{articleInfo.catename}}</view>
|
||||
<view class='item'></text>{{articleInfo.add_time}}</view>
|
||||
<view class='item'><text class='iconfont icon-liulan'></text>{{articleInfo.visit}}</view>
|
||||
<view class='label'>{{articleInfo.catename || ''}}</view>
|
||||
<view class='item'></text>{{articleInfo.add_time || ''}}</view>
|
||||
<view class='item'><text class='iconfont icon-liulan'></text>{{articleInfo.visit || ''}}</view>
|
||||
</view>
|
||||
<view class='conters'>
|
||||
<jyf-parser :html="content" ref="article" :tag-style="tagStyle"></jyf-parser>
|
||||
@ -16,11 +16,11 @@
|
||||
<image :src="store_info.image"></image>
|
||||
</view>
|
||||
<view class="text">
|
||||
<view class="name line1">{{store_info.store_name}}</view>
|
||||
<view class="name line1">{{store_info.store_name || ''}}</view>
|
||||
<view class="money font-color">
|
||||
{{$t(`¥`)}}<text class="num">{{store_info.price}}</text>
|
||||
{{$t(`¥`)}}<text class="num">{{store_info.price || 0}}</text>
|
||||
</view>
|
||||
<view class="y_money">{{$t(`¥`)}}{{store_info.ot_price}}</view>
|
||||
<view class="y_money">{{$t(`¥`)}}{{store_info.ot_price || 0}}</view>
|
||||
</view>
|
||||
<navigator class="label"><text class="span">{{$t(`查看商品`)}}</text></navigator>
|
||||
</navigator>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -11,9 +11,9 @@
|
||||
v-if='store_self_mention && is_shipping'></view>
|
||||
</view>
|
||||
<view class='address acea-row row-between-wrapper' @tap='onAddress' v-if='shippingType == 0'>
|
||||
<view class='addressCon' v-if="addressInfo.real_name">
|
||||
<view class='name'>{{addressInfo.real_name}}
|
||||
<text class='phone'>{{addressInfo.phone}}</text>
|
||||
<view class='addressCon' v-if="addressInfo.real_name || ''">
|
||||
<view class='name'>{{addressInfo.real_name || ''}}
|
||||
<text class='phone'>{{addressInfo.phone || ''}}</text>
|
||||
</view>
|
||||
<view class="line1">
|
||||
<text class='default font-num'
|
||||
@ -29,8 +29,8 @@
|
||||
<view class='address acea-row row-between-wrapper' v-else @tap="showStoreList">
|
||||
<block v-if="storeList.length>0">
|
||||
<view class='addressCon'>
|
||||
<view class='name'>{{system_store.name}}
|
||||
<text class='phone'>{{system_store.phone}}</text>
|
||||
<view class='name'>{{system_store.name || ''}}
|
||||
<text class='phone'>{{system_store.phone || ''}}</text>
|
||||
</view>
|
||||
<view class="line1"> {{system_store.address}}{{", " + system_store.detailed_address}}</view>
|
||||
</view>
|
||||
@ -172,7 +172,7 @@
|
||||
<view class='item acea-row row-between-wrapper'>
|
||||
<view>{{$t(`商品总价`)}}:</view>
|
||||
<view class='money'>
|
||||
{{$t(`¥`)}}{{allPrice}}
|
||||
{{$t(`¥`)}}{{allPrice || 0}}
|
||||
</view>
|
||||
</view>
|
||||
<view class='item acea-row row-between-wrapper'
|
||||
|
||||
@ -146,7 +146,7 @@
|
||||
<image src="../static/shuoming.png" mode=""></image>
|
||||
{{$t(`拒绝退款`)}}
|
||||
</view>
|
||||
<view class="con">{{$t(`拒绝原因`)}}:{{orderInfo.refuse_reason}}</view>
|
||||
<view class="con">{{$t(`拒绝原因`)}}:{{orderInfo.refuse_reason || ''}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<orderGoods v-for="(item,index) in split" :key="item.id" :evaluate='item._status._type == 3 ? 3 : 0'
|
||||
|
||||
@ -1,298 +1,307 @@
|
||||
<template>
|
||||
<view :style="colorStyle">
|
||||
<form @submit="subRefund">
|
||||
<view class='apply-return'>
|
||||
<view class='goodsStyle acea-row row-between' v-for="(item,index) in orderInfo.cart_info" :key="index">
|
||||
<view class='pictrue'>
|
||||
<image :src='item.productInfo.attrInfo?item.productInfo.attrInfo.image:item.productInfo.image'></image>
|
||||
</view>
|
||||
<view class='text acea-row row-between'>
|
||||
<view class='name line2'>{{item.productInfo.store_name}}</view>
|
||||
<view class='money'>
|
||||
<view>{{$t(`¥`)}}{{item.truePrice}}</view>
|
||||
<view class='num'>x{{item.cart_num}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class='list'>
|
||||
<view class='item acea-row row-between-wrapper' v-if="expressList.length">
|
||||
<view>{{$t(`快递公司`)}}</view>
|
||||
<picker class='num' @change="bindPickerChange" :value="seIndex" :range="expressList" range-key="name">
|
||||
<view class="picker acea-row row-between-wrapper">
|
||||
<view class='reason'>{{expressList[seIndex].name}}</view>
|
||||
<text class='iconfont icon-jiantou'></text>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class='item acea-row row-between-wrapper'>
|
||||
<view>{{$t(`快递单号`)}}</view>
|
||||
<input class="input" type="text" :placeholder="$t(`填写快递单号`)" placeholder-class='placeholder' v-model="refundInfo.refund_express" />
|
||||
</view>
|
||||
<view class='item acea-row row-between-wrapper'>
|
||||
<view>{{$t(`联系电话`)}}</view>
|
||||
<input class="input" type="number" :placeholder="$t(`请输入手机号`)" placeholder-class='placeholder' v-model="refundInfo.refund_phone" />
|
||||
</view>
|
||||
<view class='item textarea acea-row row-between'>
|
||||
<view>{{$t(`备注说明`)}}</view>
|
||||
<textarea :placeholder='$t(`填写备注信息,100字以内`)' class='num' v-model="refundInfo.refund_explain"></textarea>
|
||||
</view>
|
||||
<view class='item acea-row row-between'>
|
||||
<view class='title acea-row row-between-wrapper'>
|
||||
<view>{{$t(`上传图片`)}}</view>
|
||||
<view class='tip'>{{$t(`最多可上传3张`)}}</view>
|
||||
</view>
|
||||
<view class='upload acea-row row-middle'>
|
||||
<view class='pictrue' v-for="(item,index) in refund_reason_wap_img" :key="index">
|
||||
<image :src='item'></image>
|
||||
<view class='iconfont icon-guanbi1 font-num' @tap='DelPic(index)'></view>
|
||||
</view>
|
||||
<view class='pictrue acea-row row-center-wrapper row-column' @tap='uploadpic'
|
||||
v-if="refund_reason_wap_img.length < 3">
|
||||
<text class='iconfont icon-icon25201'></text>
|
||||
<view>{{$t(`上传图片`)}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<button class='returnBnt bg-color' form-type="submit">{{$t(`提交`)}}</button>
|
||||
</view>
|
||||
</form>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import { refundOrderDetail, refundExpress } from '@/api/order.js';
|
||||
import {
|
||||
toLogin
|
||||
} from '@/libs/login.js';
|
||||
import {
|
||||
mapGetters
|
||||
} from "vuex";
|
||||
import colors from '@/mixins/color.js';
|
||||
export default {
|
||||
mixins: [colors],
|
||||
data() {
|
||||
return {
|
||||
expressList:[],
|
||||
orderInfo:{},
|
||||
seIndex: 0,
|
||||
refund_reason_wap_img: [],
|
||||
refundInfo:{
|
||||
refund_express:'',
|
||||
refund_phone:'',
|
||||
refund_explain:'',
|
||||
id:'',
|
||||
refund_express_name:'',
|
||||
refund_img:''
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: mapGetters(['isLogin']),
|
||||
watch: {
|
||||
isLogin: {
|
||||
handler: function(newV, oldV) {
|
||||
if (newV) {
|
||||
this.getOrderInfo();
|
||||
}
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
this.orderId = options.orderId;
|
||||
if (this.isLogin) {
|
||||
this.getOrderInfo();
|
||||
} else {
|
||||
toLogin();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 申请退货
|
||||
*/
|
||||
subRefund: function(e) {
|
||||
let that = this
|
||||
if (!that.refundInfo.refund_express) return this.$util.Tips({
|
||||
title: that.$t(`填写快递单号`)
|
||||
});
|
||||
if (!that.refundInfo.refund_phone) return this.$util.Tips({
|
||||
title: that.$t(`请输入手机号`)
|
||||
});
|
||||
if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(that.refundInfo.refund_phone)) return this.$util.Tips({
|
||||
title: that.$t(`请输入正确的手机号码`)
|
||||
});
|
||||
that.refundInfo.refund_express_name = that.expressList[that.seIndex].name;
|
||||
that.refundInfo.refund_img = that.refund_reason_wap_img.join(',');
|
||||
refundExpress(that.refundInfo).then(res => {
|
||||
return this.$util.Tips({
|
||||
title: res.msg,
|
||||
icon: 'success'
|
||||
}, {
|
||||
tab: 5,
|
||||
url: '/pages/users/user_return_list/index?isT=1'
|
||||
});
|
||||
}).catch(err => {
|
||||
return this.$util.Tips({
|
||||
title: err
|
||||
});
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 删除图片
|
||||
*
|
||||
*/
|
||||
DelPic: function(e) {
|
||||
let index = e,
|
||||
that = this,
|
||||
pic = this.refund_reason_wap_img[index];
|
||||
that.refund_reason_wap_img.splice(index, 1);
|
||||
that.$set(that, 'refund_reason_wap_img', that.refund_reason_wap_img);
|
||||
},
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
*
|
||||
*/
|
||||
uploadpic: function() {
|
||||
let that = this;
|
||||
this.$util.uploadImageOne('upload/image', function(res) {
|
||||
that.refund_reason_wap_img.push(res.data.url);
|
||||
that.$set(that, 'refund_reason_wap_img', that.refund_reason_wap_img);
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 获取订单详情
|
||||
*
|
||||
*/
|
||||
getOrderInfo: function() {
|
||||
let that = this;
|
||||
refundOrderDetail(that.orderId).then(res => {
|
||||
that.$set(that, 'orderInfo', res.data);
|
||||
that.expressList = res.data.express_list;
|
||||
that.refundInfo.id = res.data.id;
|
||||
});
|
||||
},
|
||||
bindPickerChange(e) {
|
||||
this.$set(this, 'seIndex', e.detail.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.apply-return .list {
|
||||
background-color: #fff;
|
||||
margin-top: 18rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item {
|
||||
margin-left: 30rpx;
|
||||
padding-right: 30rpx;
|
||||
min-height: 90rpx;
|
||||
border-bottom: 1rpx solid #eee;
|
||||
font-size: 30rpx;
|
||||
color: #333;
|
||||
.input{
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
.apply-return .list .item .num {
|
||||
color: #282828;
|
||||
width: 427rpx;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.apply-return .list .item .num .picker .reason {
|
||||
width: 385rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item .num .picker .iconfont {
|
||||
color: #666;
|
||||
font-size: 30rpx;
|
||||
margin-top: 2rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item.textarea {
|
||||
padding: 30rpx 30rpx 30rpx 0;
|
||||
}
|
||||
|
||||
.apply-return .list .item textarea {
|
||||
height: 100rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item .placeholder {
|
||||
color: #bbb;
|
||||
font-size: 30rpx;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.apply-return .list .item .title {
|
||||
height: 95rpx;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.apply-return .list .item .title .tip {
|
||||
font-size: 30rpx;
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
.apply-return .list .item .upload {
|
||||
padding-bottom: 36rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item .upload .pictrue {
|
||||
margin: 22rpx 23rpx 0 0;
|
||||
width: 156rpx;
|
||||
height: 156rpx;
|
||||
position: relative;
|
||||
font-size: 24rpx;
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
.apply-return .list .item .upload .pictrue:nth-of-type(4n) {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.apply-return .list .item .upload .pictrue image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 3rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item .upload .pictrue .icon-guanbi1 {
|
||||
position: absolute;
|
||||
font-size: 45rpx;
|
||||
top: -10rpx;
|
||||
right: -10rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item .upload .pictrue .icon-icon25201 {
|
||||
color: #bfbfbf;
|
||||
font-size: 50rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item .upload .pictrue:nth-last-child(1) {
|
||||
border: 1rpx solid #ddd;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.apply-return .returnBnt {
|
||||
font-size: 32rpx;
|
||||
color: #fff;
|
||||
width: 690rpx;
|
||||
height: 86rpx;
|
||||
border-radius: 50rpx;
|
||||
text-align: center;
|
||||
line-height: 86rpx;
|
||||
margin: 43rpx auto;
|
||||
}
|
||||
|
||||
.goodsStyle .text .name {
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
.list /deep/ .uni-input-input {
|
||||
text-align: right;
|
||||
}
|
||||
<template>
|
||||
<view :style="colorStyle">
|
||||
<form @submit="subRefund">
|
||||
<view class='apply-return'>
|
||||
<view class='goodsStyle acea-row row-between' v-for="(item,index) in orderInfo.cart_info" :key="index">
|
||||
<view class='pictrue'>
|
||||
<image :src='item.productInfo.attrInfo?item.productInfo.attrInfo.image:item.productInfo.image'>
|
||||
</image>
|
||||
</view>
|
||||
<view class='text acea-row row-between'>
|
||||
<view class='name line2'>{{item.productInfo.store_name}}</view>
|
||||
<view class='money'>
|
||||
<view>{{$t(`¥`)}}{{item.truePrice }}</view>
|
||||
<view class='num'>x{{item.cart_num }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class='list'>
|
||||
<view class='item acea-row row-between-wrapper' v-if="expressList.length">
|
||||
<view>{{$t(`快递公司`)}}</view>
|
||||
<picker class='num' @change="bindPickerChange" :value="seIndex" :range="expressList"
|
||||
range-key="name">
|
||||
<view class="picker acea-row row-between-wrapper">
|
||||
<view class='reason'>{{expressList[seIndex].name}}</view>
|
||||
<text class='iconfont icon-jiantou'></text>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class='item acea-row row-between-wrapper'>
|
||||
<view>{{$t(`快递单号`)}}</view>
|
||||
<input class="input" type="text" :placeholder="$t(`填写快递单号`)" placeholder-class='placeholder'
|
||||
v-model="refundInfo.refund_express" />
|
||||
</view>
|
||||
<view class='item acea-row row-between-wrapper'>
|
||||
<view>{{$t(`联系电话`)}}</view>
|
||||
<input class="input" type="number" :placeholder="$t(`请输入手机号`)" placeholder-class='placeholder'
|
||||
v-model="refundInfo.refund_phone" />
|
||||
</view>
|
||||
<view class='item textarea acea-row row-between'>
|
||||
<view>{{$t(`备注说明`)}}</view>
|
||||
<textarea :placeholder='$t(`填写备注信息,100字以内`)' class='num'
|
||||
v-model="refundInfo.refund_explain"></textarea>
|
||||
</view>
|
||||
<view class='item acea-row row-between'>
|
||||
<view class='title acea-row row-between-wrapper'>
|
||||
<view>{{$t(`上传图片`)}}</view>
|
||||
<view class='tip'>{{$t(`最多可上传3张`)}}</view>
|
||||
</view>
|
||||
<view class='upload acea-row row-middle'>
|
||||
<view class='pictrue' v-for="(item,index) in refund_reason_wap_img" :key="index">
|
||||
<image :src='item'></image>
|
||||
<view class='iconfont icon-guanbi1 font-num' @tap='DelPic(index)'></view>
|
||||
</view>
|
||||
<view class='pictrue acea-row row-center-wrapper row-column' @tap='uploadpic'
|
||||
v-if="refund_reason_wap_img.length < 3">
|
||||
<text class='iconfont icon-icon25201'></text>
|
||||
<view>{{$t(`上传图片`)}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<button class='returnBnt bg-color' form-type="submit">{{$t(`提交`)}}</button>
|
||||
</view>
|
||||
</form>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
refundOrderDetail,
|
||||
refundExpress
|
||||
} from '@/api/order.js';
|
||||
import {
|
||||
toLogin
|
||||
} from '@/libs/login.js';
|
||||
import {
|
||||
mapGetters
|
||||
} from "vuex";
|
||||
import colors from '@/mixins/color.js';
|
||||
export default {
|
||||
mixins: [colors],
|
||||
data() {
|
||||
return {
|
||||
expressList: [],
|
||||
orderInfo: {},
|
||||
seIndex: 0,
|
||||
refund_reason_wap_img: [],
|
||||
refundInfo: {
|
||||
refund_express: '',
|
||||
refund_phone: '',
|
||||
refund_explain: '',
|
||||
id: '',
|
||||
refund_express_name: '',
|
||||
refund_img: ''
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: mapGetters(['isLogin']),
|
||||
watch: {
|
||||
isLogin: {
|
||||
handler: function(newV, oldV) {
|
||||
if (newV) {
|
||||
this.getOrderInfo();
|
||||
}
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
this.orderId = options.orderId;
|
||||
if (this.isLogin) {
|
||||
this.getOrderInfo();
|
||||
} else {
|
||||
toLogin();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 申请退货
|
||||
*/
|
||||
subRefund: function(e) {
|
||||
let that = this
|
||||
if (!that.refundInfo.refund_express) return this.$util.Tips({
|
||||
title: that.$t(`填写快递单号`)
|
||||
});
|
||||
if (!that.refundInfo.refund_phone) return this.$util.Tips({
|
||||
title: that.$t(`请输入手机号`)
|
||||
});
|
||||
if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(that.refundInfo.refund_phone)) return this.$util.Tips({
|
||||
title: that.$t(`请输入正确的手机号码`)
|
||||
});
|
||||
that.refundInfo.refund_express_name = that.expressList[that.seIndex].name;
|
||||
that.refundInfo.refund_img = that.refund_reason_wap_img.join(',');
|
||||
refundExpress(that.refundInfo).then(res => {
|
||||
return this.$util.Tips({
|
||||
title: res.msg,
|
||||
icon: 'success'
|
||||
}, {
|
||||
tab: 5,
|
||||
url: '/pages/users/user_return_list/index?isT=1'
|
||||
});
|
||||
}).catch(err => {
|
||||
return this.$util.Tips({
|
||||
title: err
|
||||
});
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 删除图片
|
||||
*
|
||||
*/
|
||||
DelPic: function(e) {
|
||||
let index = e,
|
||||
that = this,
|
||||
pic = this.refund_reason_wap_img[index];
|
||||
that.refund_reason_wap_img.splice(index, 1);
|
||||
that.$set(that, 'refund_reason_wap_img', that.refund_reason_wap_img);
|
||||
},
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
*
|
||||
*/
|
||||
uploadpic: function() {
|
||||
let that = this;
|
||||
this.$util.uploadImageOne('upload/image', function(res) {
|
||||
that.refund_reason_wap_img.push(res.data.url);
|
||||
that.$set(that, 'refund_reason_wap_img', that.refund_reason_wap_img);
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 获取订单详情
|
||||
*
|
||||
*/
|
||||
getOrderInfo: function() {
|
||||
let that = this;
|
||||
refundOrderDetail(that.orderId).then(res => {
|
||||
that.$set(that, 'orderInfo', res.data);
|
||||
that.expressList = res.data.express_list;
|
||||
that.refundInfo.id = res.data.id;
|
||||
});
|
||||
},
|
||||
bindPickerChange(e) {
|
||||
this.$set(this, 'seIndex', e.detail.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.apply-return .list {
|
||||
background-color: #fff;
|
||||
margin-top: 18rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item {
|
||||
margin-left: 30rpx;
|
||||
padding-right: 30rpx;
|
||||
min-height: 90rpx;
|
||||
border-bottom: 1rpx solid #eee;
|
||||
font-size: 30rpx;
|
||||
color: #333;
|
||||
|
||||
.input {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
.apply-return .list .item .num {
|
||||
color: #282828;
|
||||
width: 427rpx;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.apply-return .list .item .num .picker .reason {
|
||||
width: 385rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item .num .picker .iconfont {
|
||||
color: #666;
|
||||
font-size: 30rpx;
|
||||
margin-top: 2rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item.textarea {
|
||||
padding: 30rpx 30rpx 30rpx 0;
|
||||
}
|
||||
|
||||
.apply-return .list .item textarea {
|
||||
height: 100rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item .placeholder {
|
||||
color: #bbb;
|
||||
font-size: 30rpx;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.apply-return .list .item .title {
|
||||
height: 95rpx;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.apply-return .list .item .title .tip {
|
||||
font-size: 30rpx;
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
.apply-return .list .item .upload {
|
||||
padding-bottom: 36rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item .upload .pictrue {
|
||||
margin: 22rpx 23rpx 0 0;
|
||||
width: 156rpx;
|
||||
height: 156rpx;
|
||||
position: relative;
|
||||
font-size: 24rpx;
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
.apply-return .list .item .upload .pictrue:nth-of-type(4n) {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.apply-return .list .item .upload .pictrue image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 3rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item .upload .pictrue .icon-guanbi1 {
|
||||
position: absolute;
|
||||
font-size: 45rpx;
|
||||
top: -10rpx;
|
||||
right: -10rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item .upload .pictrue .icon-icon25201 {
|
||||
color: #bfbfbf;
|
||||
font-size: 50rpx;
|
||||
}
|
||||
|
||||
.apply-return .list .item .upload .pictrue:nth-last-child(1) {
|
||||
border: 1rpx solid #ddd;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.apply-return .returnBnt {
|
||||
font-size: 32rpx;
|
||||
color: #fff;
|
||||
width: 690rpx;
|
||||
height: 86rpx;
|
||||
border-radius: 50rpx;
|
||||
text-align: center;
|
||||
line-height: 86rpx;
|
||||
margin: 43rpx auto;
|
||||
}
|
||||
|
||||
.goodsStyle .text .name {
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
.list /deep/ .uni-input-input {
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -66,7 +66,7 @@
|
||||
</view>
|
||||
<view class="iconfont icon-fenxiang" @click="listenerActionSheet"></view>
|
||||
</view>
|
||||
<view class="introduce" v-text="storeInfo.store_name"></view>
|
||||
<view class="introduce" v-text="storeInfo.store_name || ''"></view>
|
||||
<view class="limit_good" v-if="storeInfo.limit_type > 0">
|
||||
{{storeInfo.limit_type == 1 ? $t(`单次限购`) : $t(`永久限购`)}}{{storeInfo.limit_num}}{{$t(storeInfo.unit_name)}}
|
||||
</view>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user