合并master修改

master
lemon橪 2021-08-27 18:11:52 +08:00
commit 5ac39d0e93
7 changed files with 162 additions and 93 deletions

View File

@ -8,7 +8,7 @@
<div v-else>{{end}}</div>
</div>
<span v-else class="cart-promotion">
<span v-if="end === ''"><span>{{ hours }}</span> : <span>{{ minutes }}</span> : <span>{{ seconds }}</span></span>
<span v-if="end === ''"><span>{{ hours }}</span> : <span>{{ minutes }}</span> : <span>{{ seconds }}</span></span>
<span v-else></span>
</span>
</div>

View File

@ -75,6 +75,18 @@
<promotion :time="promotion.endTime" type="cart"></promotion>
</div>
</template>
<template v-for="(promotion, promotionIndex) in goods.promotions">
<div class="promotion" :key="promotionIndex" v-if="promotion.promotionType === 'FULL_DISCOUNT'">
<span>满优惠活动</span>
<promotion :time="promotion.endTime" type="cart"></promotion>
</div>
</template>
<template v-for="(promotion, promotionIndex) in goods.promotions">
<div class="promotion" :key="promotionIndex" v-if="promotion.promotionType === 'COUPON'">
<span>优惠券</span>
<promotion :time="promotion.endTime" type="cart"></promotion>
</div>
</template>
</div>
</div>
<div class="width_150">

View File

@ -4,7 +4,7 @@
<card _Title="我的售后" :_Size="16"></card>
<!-- 搜索 筛选 -->
<div class="mb_20 box">
<div class="global_float_right" >
<div class="global_float_right">
<Input
class="width_300"
search
@ -16,15 +16,15 @@
</div>
</div>
<!-- 列表 -->
<empty v-if="orderList.length === 0" />
<empty v-if="orderList.length === 0"/>
<div class="order-content" v-else>
<template v-for="(order, onderIndex) in orderList">
<div class="order-list" :key="onderIndex">
<div class="order-header">
<div>
<div v-if="order.serviceStatus">{{filterOrderStatus(order.serviceStatus)}}</div>
<div v-if="order.serviceStatus">{{ filterOrderStatus(order.serviceStatus) }}</div>
<div>
售后单号{{ order.sn }} &nbsp; &nbsp; &nbsp;{{order.createTime}}
售后单号{{ order.sn }} &nbsp; &nbsp; &nbsp;{{ order.createTime }}
&nbsp; &nbsp;{{ order.memberName | secrecyMobile }}
</div>
</div>
@ -34,14 +34,11 @@
</div>
<div class="order-body">
<div class="goods-list">
<img @click="goodsDetail(order.skuId, order.goodsId)" class="hover-color" :src="order.goodsImage" alt="" />
<img @click="goodsDetail(order.skuId, order.goodsId)" class="hover-color" :src="order.goodsImage" alt=""/>
<div>
<div class="hover-color" @click="goodsDetail(order.skuId, order.goodsId)">{{ order.goodsName }}</div>
<div class="mt_10">
<span class="global_color"
>{{ order.flowPrice | unitPrice("¥") }} </span
>x {{ order.num }}
<div class="mt_10"> x {{ order.num }}
</div>
</div>
</div>
@ -52,10 +49,13 @@
<!-- 订单基础操作 -->
<Button @click="goDetail(order.sn)" type="info" size="small">售后详情</Button>
<Button @click="openModal(order)"
v-if="order.serviceStatus == 'PASS' &&
v-if="order.serviceStatus == 'PASS' &&
order.serviceType != 'RETURN_MONEY'"
type="warning" size="small">提交物流</Button>
<Button @click="cancel(order.sn)" type="error" v-if="order.afterSaleAllowOperationVO.cancel" size="small"></Button>
type="warning" size="small">提交物流
</Button>
<Button @click="cancel(order.sn)" type="error" v-if="order.afterSaleAllowOperationVO.cancel" size="small">
取消售后
</Button>
</div>
</div>
</div>
@ -65,9 +65,9 @@
<!-- 分页 -->
<div class="page-size">
<Page :total="total" @on-change="changePageNum"
@on-page-size-change="changePageSize"
:page-size="params.pageSize"
show-sizer>
@on-page-size-change="changePageSize"
:page-size="params.pageSize"
show-sizer>
</Page>
</div>
<Modal v-model="logisticsShow" width="530">
@ -76,12 +76,15 @@
</p>
<div>
<div class="goods-list modal-goods">
<img @click="goodsDetail(singleOrder.skuId, singleOrder.goodsId)" class="hover-color" :src="singleOrder.goodsImage" alt="" />
<img @click="goodsDetail(singleOrder.skuId, singleOrder.goodsId)" class="hover-color"
:src="singleOrder.goodsImage" alt=""/>
<div>
<div class="hover-color" @click="goodsDetail(singleOrder.skuId, singleOrder.goodsId)">{{ singleOrder.goodsName }}</div>
<div class="hover-color" @click="goodsDetail(singleOrder.skuId, singleOrder.goodsId)">
{{ singleOrder.goodsName }}
</div>
<div class="mt_10">
<span class="global_color"
>{{ singleOrder.flowPrice | unitPrice("¥") }} </span
>{{ singleOrder.flowPrice | unitPrice("¥") }} </span
>x {{ singleOrder.num }}
</div>
</div>
@ -96,7 +99,8 @@
<Input v-model="form.logisticsNo" placeholder="请填写快递单号"></Input>
</FormItem>
<FormItem label="发货时间" prop="mDeliverTime">
<DatePicker type="date" style="width:100%" v-model="form.mDeliverTime" @on-change="changeTime" format="yyyy-MM-dd" placeholder="选择发货时间"></DatePicker>
<DatePicker type="date" style="width:100%" v-model="form.mDeliverTime" @on-change="changeTime"
format="yyyy-MM-dd" placeholder="选择发货时间"></DatePicker>
</FormItem>
</Form>
</div>
@ -109,12 +113,13 @@
</template>
<script>
import { afterSaleList, cancelAfterSale } from '@/api/member.js';
import { afterSaleDelivery, getLogisticsCompany } from '@/api/order.js';
import { afterSaleStatusList } from '../enumeration.js'
import {afterSaleList, cancelAfterSale} from '@/api/member.js';
import {afterSaleDelivery, getLogisticsCompany} from '@/api/order.js';
import {afterSaleStatusList} from '../enumeration.js'
export default {
name: 'AfterSale',
data () {
data() {
return {
orderList: [], //
params: { //
@ -138,24 +143,24 @@ export default {
mDeliverTime: ''
},
rules: { //
logisticsId: [{ required: true, message: '请选择物流公司' }],
logisticsNo: [{ required: true, message: '请填写物流编号' }],
mDeliverTime: [{ required: true, message: '请选择发货时间' }]
logisticsId: [{required: true, message: '请选择物流公司'}],
logisticsNo: [{required: true, message: '请填写物流编号'}],
mDeliverTime: [{required: true, message: '请选择发货时间'}]
},
submitLoading: false //
};
},
mounted () {
mounted() {
this.getList();
},
methods: {
goDetail (sn) { //
goDetail(sn) { //
this.$router.push({
name: 'AfterSaleDetail',
query: {sn}
})
},
cancel (sn) { //
cancel(sn) { //
this.$Modal.confirm({
title: '取消',
content: '<p>确定取消此次售后申请吗?</p>',
@ -167,26 +172,27 @@ export default {
}
})
},
onCancel: () => {}
onCancel: () => {
}
});
},
goodsDetail (skuId, goodsId) {
goodsDetail(skuId, goodsId) {
//
let routeUrl = this.$router.resolve({
path: '/goodsDetail',
query: { skuId, goodsId }
query: {skuId, goodsId}
});
window.open(routeUrl.href, '_blank');
},
//
shopPage (id) {
shopPage(id) {
let routeUrl = this.$router.resolve({
path: '/Merchant',
query: { id: id }
query: {id: id}
});
window.open(routeUrl.href, '_blank');
},
getList () { //
getList() { //
this.spinShow = true;
let params = JSON.parse(JSON.stringify(this.params))
afterSaleList(params).then(res => {
@ -197,21 +203,23 @@ export default {
}
});
},
changePageNum (val) { //
changePageNum(val) { //
this.params.pageNumber = val;
this.getList()
},
changePageSize (val) { //
changePageSize(val) { //
this.params.pageNumber = 1;
this.params.pageSize = val;
this.getList()
},
filterOrderStatus (status) { //
const ob = this.afterSaleStatusList.filter(e => { return e.status === status });
filterOrderStatus(status) { //
const ob = this.afterSaleStatusList.filter(e => {
return e.status === status
});
return ob[0].name
},
//
getCompany () {
getCompany() {
getLogisticsCompany().then(res => {
if (res.success) {
this.companyList = res.result
@ -219,7 +227,7 @@ export default {
})
},
//
submitDelivery () {
submitDelivery() {
this.submitLoading = true
afterSaleDelivery(this.form).then(res => {
if (res.success) {
@ -233,7 +241,7 @@ export default {
})
},
// modal
openModal (row) {
openModal(row) {
console.log(row);
this.singleOrder = row;
this.form.afterSaleSn = row.sn
@ -244,7 +252,7 @@ export default {
}
},
//
changeTime (time) {
changeTime(time) {
this.form.mDeliverTime = time;
}
}
@ -255,25 +263,31 @@ export default {
.wrapper {
margin-bottom: 40px;
}
.box {
overflow: hidden;
}
.page-size {
margin: 15px 0px;
display: flex;
justify-content: flex-end;
align-items: center;
}
/** 订单列表 */
.order-list {
border: 1px solid #ddd;
border-radius: 3px;
margin-bottom: 10px;
&:hover{
.del-btn{visibility: visible;}
&:hover {
.del-btn {
visibility: visible;
}
}
.del-btn{
.del-btn {
visibility: hidden;
}
@ -283,12 +297,14 @@ export default {
padding: 10px;
justify-content: space-between;
border-bottom: 1px solid #ddd;
> div:nth-child(1) > div:nth-child(2) {
font-size: 12px;
color: #999;
margin-top: 3px;
}
}
.order-body {
display: flex;
justify-content: space-between;
@ -298,16 +314,20 @@ export default {
> div:nth-child(2) {
width: 150px;
text-align: center;
span {
color: #438cde;
cursor: pointer;
&:hover {
color: $theme_color;
}
}
.ivu-icon {
color: #ff8f23;
cursor: pointer;
&:hover {
color: $theme_color;
}
@ -316,26 +336,31 @@ export default {
> div:nth-child(3) {
width: 100px;
.ivu-btn {
margin-bottom: 10px;
}
}
}
}
.goods-list {
width: 500px;
display: flex;
margin-bottom: 10px;
img {
width: 60px;
height: 60px;
margin-right: 10px;
}
> div {
flex: 1;
}
}
.modal-goods{
.modal-goods {
padding: 5px;
background-color: #eee;
}

View File

@ -19,7 +19,7 @@
<div class="div-item">
<div class="div-item-left">订单来源</div>
<div class="div-item-right">
{{ orderInfo.order.clientType | clientTypeWay}}
{{ orderInfo.order.clientType | clientTypeWay }}
</div>
</div>
@ -45,7 +45,10 @@
<div class="div-item" v-if="orderInfo.order.needReceipt == true">
<div class="div-item-left">发票抬头</div>
<div class="div-item-right">{{ orderInfo.receipt.receiptTitle ? orderInfo.receipt.receiptTitle : '暂无' }}</div>
<div class="div-item-right">{{
orderInfo.receipt.receiptTitle ? orderInfo.receipt.receiptTitle : '暂无'
}}
</div>
</div>
<div class="div-item" v-if="orderInfo.order.needReceipt == true && orderInfo.receipt.taxpayerId">
@ -55,12 +58,17 @@
<div class="div-item" v-if="orderInfo.order.needReceipt == true">
<div class="div-item-left">发票内容</div>
<div class="div-item-right">{{ orderInfo.receipt.receiptContent ? orderInfo.receipt.receiptContent : '暂无' }}</div>
<div class="div-item-right">{{
orderInfo.receipt.receiptContent ? orderInfo.receipt.receiptContent : '暂无'
}}
</div>
</div>
<div class="div-item" v-if="orderInfo.order.needReceipt == true">
<div class="div-item-left">发票金额</div>
<div class="div-item-right">{{ orderInfo.receipt.receiptPrice ? orderInfo.receipt.receiptPrice : '暂无' | unitPrice('¥')}}</div>
<div class="div-item-right">
{{ orderInfo.receipt.receiptPrice ? orderInfo.receipt.receiptPrice : '暂无' | unitPrice('¥') }}
</div>
</div>
<div class="div-item" v-if="orderInfo.order.needReceipt == true">
@ -97,7 +105,10 @@
<div class="div-item" v-if="orderInfo.order.needReceipt == true">
<div class="div-item-left">发票抬头</div>
<div class="div-item-right">{{ orderInfo.receipt.receiptTitle ? orderInfo.receipt.receiptTitle : '暂无' }}</div>
<div class="div-item-right">{{
orderInfo.receipt.receiptTitle ? orderInfo.receipt.receiptTitle : '暂无'
}}
</div>
</div>
<div class="div-item" v-if="orderInfo.order.needReceipt == true && orderInfo.receipt.taxpayerId">
@ -107,12 +118,17 @@
<div class="div-item" v-if="orderInfo.order.needReceipt == true">
<div class="div-item-left">发票内容</div>
<div class="div-item-right">{{ orderInfo.receipt.receiptContent ? orderInfo.receipt.receiptContent : '暂无' }}</div>
<div class="div-item-right">{{
orderInfo.receipt.receiptContent ? orderInfo.receipt.receiptContent : '暂无'
}}
</div>
</div>
<div class="div-item" v-if="orderInfo.order.needReceipt == true">
<div class="div-item-left">发票金额</div>
<div class="div-item-right">{{ orderInfo.receipt.receiptPrice ? orderInfo.receipt.receiptPrice : '暂无' | unitPrice('¥')}}</div>
<div class="div-item-right">
{{ orderInfo.receipt.receiptPrice ? orderInfo.receipt.receiptPrice : '暂无' | unitPrice('¥') }}
</div>
</div>
<div class="div-item" v-if="orderInfo.order.needReceipt == true">
@ -134,21 +150,22 @@
<template slot="goodsSlot" slot-scope="{row}">
<div style="margin-top: 5px; height: 80px; display: flex">
<div style="">
<img :src="row.image" style="height: 60px; margin-top: 1px; width: 60px" />
<img :src="row.image" style="height: 60px; margin-top: 1px; width: 60px"/>
</div>
<div style="margin-left: 13px">
<div class="div-zoom">
<a @click="linkTo(row.goodsId,row.skuId)">{{row.goodsName}}</a>
<a @click="linkTo(row.goodsId,row.skuId)">{{ row.goodsName }}</a>
</div>
<span v-for="(item, key) in JSON.parse(row.specs)" :key="key">
<span v-show="key!='images'" style="font-size: 12px;color: #999999;">
{{key}} : {{item}}
{{ key }} : {{ item }}
</span>
</span>
<Poptip trigger="hover" style="display: block;" title="扫码在手机中查看" transfer>
<div slot="content">
<vue-qr :text="wapLinkTo(row.goodsId,row.skuId)" :margin="0" colorDark="#000" colorLight="#fff" :size="150"></vue-qr>
<vue-qr :text="wapLinkTo(row.goodsId,row.skuId)" :margin="0" colorDark="#000" colorLight="#fff"
:size="150"></vue-qr>
</div>
<img src="../../../assets/qrcode.svg" class="hover-pointer" width="20" height="20" alt="">
</Poptip>
@ -160,15 +177,20 @@
<ul>
<li>
<span class="label">商品总额</span>
<span class="txt">{{ orderInfo.order.priceDetailDTO.goodsPrice | unitPrice('¥') }}</span>
<span class="txt">{{ orderInfo.order.priceDetailDTO.goodsPrice | unitPrice('¥') }}</span>
</li>
<li>
<li v-if="orderInfo.order.priceDetailDTO.discountPrice && orderInfo.order.priceDetailDTO.discountPrice > 0">
<span class="label">优惠金额</span>
<span class="txt"> {{ orderInfo.order.discountPrice | unitPrice('¥')}} </span>
<span class="txt"> {{ orderInfo.order.priceDetailDTO.discountPrice | unitPrice('¥') }} </span>
</li>
<li v-if="orderInfo.order.priceDetailDTO.couponPrice && orderInfo.order.priceDetailDTO.couponPrice > 0">
<span class="label">优惠券金额</span>
<span class="txt"> {{ orderInfo.order.priceDetailDTO.couponPrice | unitPrice('¥') }} </span>
</li>
<li>
<span class="label">运费</span>
<span class="txt">{{ orderInfo.order.freightPrice | unitPrice('¥')}}</span>
<span class="txt">{{ orderInfo.order.freightPrice | unitPrice('¥') }}</span>
</li>
<li v-if="orderInfo.order.priceDetailDTO.updatePrice">
<span class="label">修改金额</span>
@ -176,7 +198,7 @@
</li>
<li v-if="orderInfo.order.priceDetailDTO.payPoint != 0">
<span class="label">使用积分</span>
<span class="txt flowPrice">{{orderInfo.order.priceDetailDTO.payPoint}}</span>
<span class="txt flowPrice">{{ orderInfo.order.priceDetailDTO.payPoint }}</span>
</li>
<li>
<span class="label">应付金额</span>
@ -193,9 +215,11 @@
<span>修改金额</span>
</p>
<div>
<Form ref="modifyPriceForm" :model="modifyPriceForm" label-position="left" :label-width="100" :rules="modifyPriceValidate">
<Form ref="modifyPriceForm" :model="modifyPriceForm" label-position="left" :label-width="100"
:rules="modifyPriceValidate">
<FormItem label="订单金额" prop="price">
<Input v-model="modifyPriceForm.price" size="large" number maxlength="9"><span slot="append"></span></Input>
<Input v-model="modifyPriceForm.price" size="large" number maxlength="9"><span
slot="append"></span></Input>
</FormItem>
</Form>
</div>
@ -211,9 +235,11 @@
<span>订单取消</span>
</p>
<div>
<Form ref="orderCancelForm" :model="orderCancelForm" label-position="left" :label-width="100" :rules="orderCancelValidate">
<Form ref="orderCancelForm" :model="orderCancelForm" label-position="left" :label-width="100"
:rules="orderCancelValidate">
<FormItem label="取消原因" prop="reason">
<Input v-model="orderCancelForm.reason" type="textarea" :autosize="{ minRows: 2, maxRows: 5 }" placeholder="请输入取消原因"></Input>
<Input v-model="orderCancelForm.reason" type="textarea" :autosize="{ minRows: 2, maxRows: 5 }"
placeholder="请输入取消原因"></Input>
</FormItem>
</Form>
</div>
@ -237,10 +263,11 @@
<Input v-model="addressForm.consigneeMobile" size="large" maxlength="11"></Input>
</FormItem>
<FormItem label="地址信息" prop="consigneeAddressPath">
<Input v-model="region" disabled style="width: 305px" v-if="showRegion == false" />
<Button v-if="showRegion == false" @click="regionClick" :loading="submitLoading" type="primary" icon="ios-create-outline" style="margin-left: 8px">
<Input v-model="region" disabled style="width: 305px" v-if="showRegion == false"/>
<Button v-if="showRegion == false" @click="regionClick" :loading="submitLoading" type="primary"
icon="ios-create-outline" style="margin-left: 8px">修改
</Button>
<region style="width: 400px" @selected="selectedRegion" v-if="showRegion == true" />
<region style="width: 400px" @selected="selectedRegion" v-if="showRegion == true"/>
</FormItem>
<FormItem label="详细地址" prop="consigneeDetail">
<Input v-model="addressForm.consigneeDetail" size="large" maxlength="50"></Input>
@ -258,7 +285,8 @@
<span>订单日志</span>
</p>
<div class="order-log-div">
<Table :loading="loading" border :columns="orderLogColumns" :data="orderInfo.orderLogs" ref="table" sortable="custom"></Table>
<Table :loading="loading" border :columns="orderLogColumns" :data="orderInfo.orderLogs" ref="table"
sortable="custom"></Table>
</div>
<div slot="footer" style="text-align: right">
@ -318,7 +346,7 @@ export default {
//
modifyPriceValidate: {
reason: [
{ required: true, message: "请输入大于0小于99999的合法金额" },
{required: true, message: "请输入大于0小于99999的合法金额"},
{
pattern: /^[1-9]\d{0,3}(\.\d{1,2})?$/,
message: "请输入大于0小于9999的合法金额",
@ -330,7 +358,7 @@ export default {
//
orderCancelValidate: {
reason: [
{ required: true, message: "取消原因不能为空", trigger: "blur" },
{required: true, message: "取消原因不能为空", trigger: "blur"},
],
},
addressModal: false, //
@ -344,18 +372,18 @@ export default {
},
orderDeliverFormValidate: {
logisticsNo: [
{ required: true, message: "发货单号不能为空", trigger: "change" },
{required: true, message: "发货单号不能为空", trigger: "change"},
],
logisticsId: [
{ required: true, message: "请选择物流公司", trigger: "blur" },
{required: true, message: "请选择物流公司", trigger: "blur"},
],
},
addressRule: {
consigneeName: [
{ required: true, message: "收货人姓名不能为空", trigger: "blur" },
{required: true, message: "收货人姓名不能为空", trigger: "blur"},
],
consigneeMobile: [
{ required: true, message: "联系方式不能为空", trigger: "blur" },
{required: true, message: "联系方式不能为空", trigger: "blur"},
{
pattern: RegExp.mobile,
trigger: "blur",
@ -363,7 +391,7 @@ export default {
},
],
consigneeDetail: [
{ required: true, message: "详细地址不能为空", trigger: "blur" },
{required: true, message: "详细地址不能为空", trigger: "blur"},
],
},
@ -668,26 +696,31 @@ export default {
padding: 20px;
height: 150px;
width: 100%;
ul {
margin-right: 10px;
display: block;
float: right;
list-style-type: none;
li {
text-align: -webkit-match-parent;
}
}
.label {
float: left;
width: 500px;
text-align: right;
}
.txt {
float: left;
width: 130px;
text-align: right;
font-family: verdana;
}
.flowPrice {
color: #cc0000;
font-size: 22px;

View File

@ -95,7 +95,7 @@ export default {
},
{
title: "领取数量/总数量",
title: "领取数量/总数量",
key: "publishNum",
width: 130,
render: (h, params) => {
@ -308,7 +308,7 @@ export default {
this.total = this.data.length;
this.loading = false;
},
edit(v) { //
this.$router.push({ name: "edit-platform-coupon", query: { id: v.id } });
},

View File

@ -111,7 +111,7 @@
<div class="div-item-right">
{{ orderInfo.receipt.receiptStatus == 0 ? "未开" : "已开" }}
</div>
</div>
</div>
</template>
</Col>
<Col span="12">
@ -217,15 +217,14 @@
orderInfo.order.priceDetailDTO.goodsPrice | unitPrice("¥")
}}</span>
</li>
<li>
<li v-if="orderInfo.order.priceDetailDTO.discountPrice && orderInfo.order.priceDetailDTO.discountPrice > 0">
<span class="label">优惠金额</span>
<span class="txt">
{{
(orderInfo.order.priceDetailDTO.couponPrice +
orderInfo.order.priceDetailDTO.discountPrice)
| unitPrice("¥")
}}
</span>
<span class="txt"> {{ orderInfo.order.priceDetailDTO.discountPrice | unitPrice('¥') }} </span>
</li>
<li v-if="orderInfo.order.priceDetailDTO.couponPrice && orderInfo.order.priceDetailDTO.couponPrice > 0">
<span class="label">优惠券金额</span>
<span class="txt"> {{ orderInfo.order.priceDetailDTO.couponPrice | unitPrice('¥') }} </span>
</li>
<li>
<span class="label">运费</span>
@ -619,13 +618,13 @@ export default {
key: "unitPrice",
minWidth: 100,
render: (h, params) => {
if (!params.row.priceDetailDTO.unitPrice) {
if (!params.row.unitPrice) {
return h("div", this.$options.filters.unitPrice(0, "¥"));
}
return h(
"div",
this.$options.filters.unitPrice(
params.row.priceDetailDTO.unitPrice,
params.row.unitPrice,
"¥"
)
);

View File

@ -92,7 +92,7 @@ export default {
},
{
title: "领取数量/总数量",
title: "领取数量/总数量",
key: "publishNum",
render: (h, params) => {
return h(