商家端添加注释,删除无用代码,优化样式

This commit is contained in:
mabo
2021-07-19 18:03:35 +08:00
parent 07f41f5cb6
commit 5062cad2b0
40 changed files with 799 additions and 1573 deletions

View File

@@ -17,12 +17,12 @@
type="text"
v-model="searchForm.orderSn"
clearable
placeholder="请输入商品名"
placeholder="请输入订单号"
style="width: 200px"
/>
</Form-item>
<Form-item label="状态" prop="status">
<Select v-model="searchForm.status" placeholder="请选择" clearable style="width: 200px">
<Select v-model="searchForm.status" placeholder="请选择订单状态" clearable style="width: 200px">
<Option value="NEW">新投诉</Option>
<Option value="CANCEL">已撤销</Option>
<Option value="WAIT_APPEAL">待申诉</Option>
@@ -43,9 +43,6 @@
:data="data"
class="mt_10"
ref="table"
sortable="custom"
@on-sort-change="changeSort"
@on-selection-change="changeSelect"
>
<template slot-scope="{row}" slot="goodsName">
<a class="mr_10" @click="linkTo(row.goodsId,row.skuId)">{{row.goodsName}}</a>
@@ -72,56 +69,6 @@
></Page>
</Row>
</Card>
<Modal
:title="modalTitle"
v-model="modalVisible"
:mask-closable="false"
:width="500"
>
<Form ref="form" :model="form" :label-width="100" :rules="formValidate">
<FormItem label="评价内容">
<span v-if="content == ''">暂无评价</span>
<span v-else>{{content}}</span>
</FormItem>
<FormItem label="评价图片">
<upload-pic-thumb
v-model="image"
:disable="true"
:remove="false"
></upload-pic-thumb>
</FormItem>
<FormItem label="回复内容" prop="reply">
<Input v-if="replyStatus == false"
v-model="form.reply"
type="textarea"
maxlength="200"
:rows="4"
clearable
style="width:260px"
/>
<span v-else>
{{form.reply}}
</span>
</FormItem>
<FormItem label="回复图片" prop="replyImage">
<upload-pic-thumb v-if="replyStatus == false"
v-model="form.replyImage"
:limit="5"
></upload-pic-thumb>
<upload-pic-thumb v-else
v-model="form.replyImage"
:disable="true"
:remove="false"
></upload-pic-thumb>
</FormItem>
</Form>
<div slot="footer">
<Button type="text" @click="modalVisible = false">取消</Button>
<Button v-if="replyStatus == false" type="primary" :loading="submitLoading" @click="handleSubmit" >回复
</Button
>
</div>
</Modal>
</div>
</template>
@@ -137,14 +84,7 @@
},
data() {
return {
image:[],//评价图片
replyStatus:false,//回复状态
modalType: 0, // 添加或编辑标识
modalVisible: false, // 添加或编辑显示
modalTitle: "", // 添加或编辑标题
openTip: true, // 显示提示
loading: true, // 表单加载状态
content: "",//评价内容
searchForm: {
// 搜索框初始化对象
pageNumber: 1, // 当前页数
@@ -152,10 +92,6 @@
sort: "createTime", // 默认排序字段
order: "desc", // 默认排序方式
},
form: {}, // 表单数据
submitLoading: false, // 添加或编辑提交状态
selectList: [], // 多选数据
selectCount: 0, // 多选计数
columns: [
// 表头
{
@@ -213,9 +149,8 @@
"Button",
{
props: {
type: "primary",
size: "small",
icon: "ios-create-outline",
type: "info",
size: "small"
},
style: {
marginRight: "5px",
@@ -236,8 +171,7 @@
{
props: {
type: "primary",
size: "small",
icon: "ios-create-outline",
size: "small"
},
style: {
marginRight: "5px",
@@ -262,60 +196,34 @@
};
},
methods: {
init() {
// 初始化数据
init() {
this.getDataList();
},
// 改变页码
changePage(v) {
this.searchForm.pageNumber = v;
this.getDataList();
this.clearSelectAll();
},
// 改变页数
changePageSize(v) {
this.searchForm.pageSize = v;
this.getDataList();
},
// 搜索
handleSearch() {
this.searchForm.pageNumber = 1;
this.searchForm.pageSize = 10;
this.getDataList();
},
// 重置
handleReset() {
this.searchForm = {}
this.searchForm.pageNumber = 1;
this.searchForm.pageSize = 10;
this.getDataList();
},
changeSort(e) {
this.searchForm.sort = e.key;
this.searchForm.order = e.order;
if (e.order === "normal") {
this.searchForm.order = "";
}
this.getDataList();
},
clearSelectAll() {
this.$refs.table.selectAll(false);
},
changeSelect(e) {
this.selectList = e;
this.selectCount = e.length;
},
selectDateRange(v) {
if (v) {
this.searchForm.startDate = v[0];
this.searchForm.endDate = v[1];
}
},
dropDown() {
if (this.drop) {
this.dropDownContent = "展开";
this.dropDownIcon = "ios-arrow-down";
} else {
this.dropDownContent = "收起";
this.dropDownIcon = "ios-arrow-up";
}
this.drop = !this.drop;
},
// 获取数据
getDataList() {
this.loading = true;
API_Order.getComplainPage(this.searchForm).then((res) => {
@@ -328,21 +236,6 @@
this.total = this.data.length;
this.loading = false;
},
//回复
handleSubmit() {
this.$refs.form.validate((valid) => {
if (valid) {
API_Member.replyMemberReview(this.form.id, this.form).then((res) => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("回复成功");
this.getDataList();
this.modalVisible = false;
}
});
}
});
},
//投诉详情
detail(v) {
let id = v.id;

View File

@@ -1,257 +1,245 @@
<template>
<div class="search">
<Row>
<Col>
<Card>
<div class="main-content">
<div class="div-flow-left">
<div class="div-form-default">
<h3>投诉信息</h3>
<dl>
<dt>投诉商品</dt>
<dd>{{ complaintInfo.goodsName }}</dd>
</dl>
<dl>
<dt>投诉状态</dt>
<dd v-if="complaintInfo.complainStatus =='NEW'">新投</dd>
<dd v-if="complaintInfo.complainStatus =='CANCEL'">已撤销</dd>
<dd v-if="complaintInfo.complainStatus =='WAIT_APPEAL'">待申诉</dd>
<dd v-if="complaintInfo.complainStatus =='COMMUNICATION'">对话中</dd>
<dd v-if="complaintInfo.complainStatus =='WAIT_ARBITRATION'">等待仲裁</dd>
<dd v-if="complaintInfo.complainStatus =='COMPLETE'">已完成</dd>
</dl>
<dl>
<dt>投诉时间</dt>
<dd>{{ complaintInfo.createTime }}</dd>
</dl>
<dl>
<dt>投诉主题</dt>
<dd>{{ complaintInfo.complainTopic }}</dd>
</dl>
<dl>
<dt>投诉内容</dt>
<dd>{{ complaintInfo.content }}</dd>
</dl>
<dl>
<dt>投诉凭证</dt>
<dd v-if="images === ''">
暂无投诉凭证
</dd>
<dd v-else>
<div class="div-img" v-for="(item, index) in images">
<img class="complain-img" :src=item>
</div>
</dd>
</dl>
</div>
<div class="div-form-default" v-if="complaintInfo.complainStatus !== 'WAIT_APPEAL'">
<h3>商家申诉信息</h3>
<dl>
<dt>申诉时间</dt>
<dd>{{ complaintInfo.appealTime }}</dd>
</dl>
<dl>
<dt>申诉内容</dt>
<dd>{{ complaintInfo.appealContent }}</dd>
</dl>
<dl>
<dt>申诉凭证</dt>
<dd v-if="appealImages == ''">
暂无申诉凭证
</dd>
<dd v-else>
<div class="div-img" v-for="(item, index) in appealImages">
<img class="complain-img" :src=item>
</div>
</dd>
</dl>
</div>
<Card>
<div class="main-content">
<div class="div-flow-left">
<div class="div-form-default">
<h3>投诉信息</h3>
<dl>
<dt>投诉商品</dt>
<dd>{{ complaintInfo.goodsName }}</dd>
</dl>
<dl>
<dt>投诉状态</dt>
<dd v-if="complaintInfo.complainStatus =='NEW'">新投诉</dd>
<dd v-if="complaintInfo.complainStatus =='CANCEL'">已撤销</dd>
<dd v-if="complaintInfo.complainStatus =='WAIT_APPEAL'">待申</dd>
<dd v-if="complaintInfo.complainStatus =='COMMUNICATION'">对话中</dd>
<dd v-if="complaintInfo.complainStatus =='WAIT_ARBITRATION'">等待仲裁</dd>
<dd v-if="complaintInfo.complainStatus =='COMPLETE'">已完成</dd>
</dl>
<dl>
<dt>投诉时间</dt>
<dd>{{ complaintInfo.createTime }}</dd>
</dl>
<dl>
<dt>投诉主题</dt>
<dd>{{ complaintInfo.complainTopic }}</dd>
</dl>
<dl>
<dt>投诉内容</dt>
<dd>{{ complaintInfo.content }}</dd>
</dl>
<dl>
<dt>投诉凭证</dt>
<dd v-if="images === ''">
暂无投诉凭证
</dd>
<dd v-else>
<div class="div-img" v-for="(item, index) in images" :key="index">
<img class="complain-img" :src=item>
</div>
</dd>
</dl>
</div>
<div class="div-form-default" v-if="complaintInfo.complainStatus !== 'WAIT_APPEAL'">
<h3>商家申诉信息</h3>
<dl>
<dt>申诉时间</dt>
<dd>{{ complaintInfo.appealTime }}</dd>
</dl>
<dl>
<dt>申诉内容</dt>
<dd>{{ complaintInfo.appealContent }}</dd>
</dl>
<dl>
<dt>申诉凭证</dt>
<dd v-if="appealImages == ''">
暂无申诉凭证
</dd>
<dd v-else>
<div class="div-img" v-for="(item, index) in appealImages" :key="index">
<img class="complain-img" :src=item>
</div>
</dd>
</dl>
</div>
<div class="div-form-default" v-if="complaintInfo.complainStatus === 'WAIT_APPEAL'">
<h3>商家申诉</h3>
<dl>
<dt>申诉内容</dt>
<dd>
<Input v-model="appeal.appealContent" type="textarea" maxlength="200" :rows="4" clearable style="width:260px" />
</dd>
</dl>
<dl>
<dt>申诉凭证</dt>
<dd>
<div class="complain-upload-list" :key="index" v-for="(item,index) in appeal.appealImages">
<template v-if="item.status === 'finished'">
<img class="complain-img" :src="item.url">
<div class="complain-upload-list-cover">
<Icon type="ios-eye-outline" @click.native="handleView(item.url)"></Icon>
<Icon type="ios-trash-outline" @click.native="handleRemove(item)"></Icon>
</div>
</template>
<template v-else>
<Progress v-if="item.showProgress" :percent="item.percentage" hide-info></Progress>
</template>
</div>
<Upload ref="upload" :show-upload-list="false" :on-format-error="handleFormatError" :action="uploadFileUrl" :headers="accessToken" :on-success="handleSuccessGoodsPicture"
:format="['jpg','jpeg','png']" :max-size="2048" :on-exceeded-size="handleMaxSize" :before-upload="handleBeforeUpload" multiple type="drag"
style="display: inline-block;width:58px;">
<div style="width: 58px;height:58px;line-height: 58px;">
<Icon type="ios-camera" size="20"></Icon>
<div class="div-form-default" v-if="complaintInfo.complainStatus === 'WAIT_APPEAL'">
<h3>商家申诉</h3>
<dl>
<dt>申诉内容</dt>
<dd>
<Input v-model="appeal.appealContent" type="textarea" maxlength="200" :rows="4" clearable style="width:260px" />
</dd>
</dl>
<dl>
<dt>申诉凭证</dt>
<dd>
<div class="complain-upload-list" :key="index" v-for="(item,index) in appeal.appealImages">
<template v-if="item.status === 'finished'">
<img class="complain-img" :src="item.url">
<div class="complain-upload-list-cover">
<Icon type="ios-eye-outline" @click.native="handleView(item.url)"></Icon>
<Icon type="ios-trash-outline" @click.native="handleRemove(item)"></Icon>
</div>
</Upload>
<Modal title="View Image" v-model="visible">
<img :src="imgName" v-if="visible" style="width: 100%">
</Modal>
</template>
<template v-else>
<Progress v-if="item.showProgress" :percent="item.percentage" hide-info></Progress>
</template>
</div>
<Upload ref="upload" :show-upload-list="false" :on-format-error="handleFormatError" :action="uploadFileUrl" :headers="accessToken" :on-success="handleSuccessGoodsPicture"
:format="['jpg','jpeg','png']" :max-size="2048" :on-exceeded-size="handleMaxSize" :before-upload="handleBeforeUpload" multiple type="drag"
style="display: inline-block;width:58px;">
<div style="width: 58px;height:58px;line-height: 58px;">
<Icon type="ios-camera" size="20"></Icon>
</div>
</Upload>
<Modal title="View Image" v-model="visible">
<img :src="imgName" v-if="visible" style="width: 100%">
</Modal>
</dd>
</dl>
<dl>
<dt></dt>
<dd>
<Button type="primary" :loading="submitLoading" @click="appealSubmit()" style="margin-left: 5px">
提交申诉
</Button>
</dd>
</dl>
</div>
<!-- <Input v-model="appeal.appealImages" type="textarea" maxlength="200" :rows="4" clearable
style="width:260px"/> -->
</dd>
</dl>
<dl>
<dt></dt>
<dd>
<Button type="primary" :loading="submitLoading" @click="appealSubmit()" style="margin-left: 5px">
提交申诉
<div class="div-form-default">
<h3>对话详情</h3>
<dl>
<dt>对话记录</dt>
<dd>
<div class="div-content">
<p v-for="(item, index) in complaintInfo.orderComplaintCommunications" :key="index">
<span v-if="item.owner === 'STORE'">商家[{{ item.createTime }}]</span>
<span v-if="item.owner === 'BUYER'">买家[{{ item.createTime }}]</span>
<span v-if="item.owner === 'PLATFORM'">平台[{{ item.createTime }}]</span>
{{ item.content }}
</p>
</div>
</dd>
</dl>
<dl v-if="complaintInfo.complainStatus!='COMPLETE'">
<dt>发送对话</dt>
<dd>
<Input v-model="params.content" type="textarea" maxlength="200" :rows="4" clearable style="width:260px" />
</dd>
</dl>
<dl>
<dt></dt>
<dd v-if="complaintInfo.complainStatus != 'COMPLETE'">
<div style="text-align: right;width: 45%;margin-top: 10px">
<Button type="primary" :loading="submitLoading" @click="handleSubmit" style="margin-left: 5px">
回复
</Button>
</dd>
</dl>
</div>
<div class="div-form-default">
<h3>对话详情</h3>
<dl>
<dt>对话记录</dt>
<dd>
<div class="div-content">
<p v-for="(item, index) in complaintInfo.orderComplaintCommunications">
<span v-if="item.owner === 'STORE'">商家[{{ item.createTime }}]</span>
<span v-if="item.owner === 'BUYER'">买家[{{ item.createTime }}]</span>
<span v-if="item.owner === 'PLATFORM'">平台[{{ item.createTime }}]</span>
{{ item.content }}
</p>
</div>
</dd>
</dl>
<dl v-if="complaintInfo.complainStatus!='COMPLETE'">
<dt>发送对话</dt>
<dd>
<Input v-model="params.content" type="textarea" maxlength="200" :rows="4" clearable style="width:260px" />
</dd>
</dl>
<dl>
<dt></dt>
<dd v-if="complaintInfo.complainStatus != 'COMPLETE'">
<div style="text-align: right;width: 45%;margin-top: 10px">
<Button type="primary" :loading="submitLoading" @click="handleSubmit" style="margin-left: 5px">
回复
</Button>
<Button type="primary" :loading="submitLoading" @click="returnDataList" style="margin-left: 5px">
返回列表
</Button>
</div>
</dd>
</dl>
</div>
<div class="div-form-default" v-if="complaintInfo.complainStatus === 'COMPLETE'">
<h3>仲裁结果</h3>
<dl>
<dt>仲裁意见</dt>
<dd>
{{ complaintInfo.arbitrationResult }}
</dd>
</dl>
</div>
<Button type="default" :loading="submitLoading" @click="returnDataList" style="margin-left: 5px">
返回列表
</Button>
</div>
</dd>
</dl>
</div>
<div class="div-flow-center">
</div>
<div class="div-flow-right">
<div class="div-form-default">
<h3>相关商品交易信息</h3>
<dl>
<dt>
<img :src="complaintInfo.goodsImage" height="60px">
</dt>
<dd>
<a>{{ complaintInfo.goodsName }}</a><br>
<span>{{ complaintInfo.goodsPrice | unitPrice }} * {{ complaintInfo.num }}(数量)</span>
</dd>
</dl>
</div>
<div class="div-form-default">
<h3>订单相关信息</h3>
<dl>
<dt>
订单编号
</dt>
<dd>
{{ complaintInfo.orderSn }}
</dd>
</dl>
<dl>
<dt>
下单时间
</dt>
<dd>
{{ complaintInfo.orderTime }}
</dd>
</dl>
<dl>
<dt>
订单金额
</dt>
<dd>
{{ complaintInfo.orderPrice | unitPrice('¥')}}
</dd>
</dl>
</div>
<div class="div-form-default">
<h3>收件人信息</h3>
<dl>
<dt>
收货人
</dt>
<dd>
{{ complaintInfo.consigneeName }}
</dd>
</dl>
<dl>
<dt>
收货地址
</dt>
<dd>
{{ complaintInfo.consigneeAddressPath }}
</dd>
</dl>
<dl>
<dt>
收货人手机
</dt>
<dd>
{{ complaintInfo.consigneeMobile }}
</dd>
</dl>
</div>
<div class="div-form-default" v-if="complaintInfo.complainStatus === 'COMPLETE'">
<h3>仲裁结果</h3>
<dl>
<dt>仲裁意见</dt>
<dd>
{{ complaintInfo.arbitrationResult }}
</dd>
</dl>
</div>
</div>
<div class="div-flow-center">
</Card>
</Col>
</Row>
</div>
<div class="div-flow-right">
<div class="div-form-default">
<h3>相关商品交易信息</h3>
<dl>
<dt>
<img :src="complaintInfo.goodsImage" height="60px">
</dt>
<dd>
<a>{{ complaintInfo.goodsName }}</a><br>
<span>{{ complaintInfo.goodsPrice | unitPrice }} * {{ complaintInfo.num }}(数量)</span>
</dd>
</dl>
</div>
<div class="div-form-default">
<h3>订单相关信息</h3>
<dl>
<dt>
订单编号
</dt>
<dd>
{{ complaintInfo.orderSn }}
</dd>
</dl>
<dl>
<dt>
下单时间
</dt>
<dd>
{{ complaintInfo.orderTime }}
</dd>
</dl>
<dl>
<dt>
订单金额
</dt>
<dd>
{{ complaintInfo.orderPrice | unitPrice('¥')}}
</dd>
</dl>
</div>
<div class="div-form-default">
<h3>收件人信息</h3>
<dl>
<dt>
收货人
</dt>
<dd>
{{ complaintInfo.consigneeName }}
</dd>
</dl>
<dl>
<dt>
收货地址
</dt>
<dd>
{{ complaintInfo.consigneeAddressPath }}
</dd>
</dl>
<dl>
<dt>
收货人手机
</dt>
<dd>
{{ complaintInfo.consigneeMobile }}
</dd>
</dl>
</div>
</div>
</div>
</Card>
</div>
</template>
<script>
import * as API_Order from "@/api/order";
import uploadPicThumb from "@/views/my-components/lili/upload-pic-thumb";
import * as API_GOODS from "@/api/goods";
export default {
name: "orderComplaint",
components: {
uploadPicThumb,
},
data() {
return {
//展示图片层
@@ -284,15 +272,18 @@ export default {
},
},
methods: {
// 预览图片
handleView(name) {
this.imgName = name;
this.visible = true;
},
// 移除回复图片
handleRemove(file) {
this.appeal.appealImages = this.appeal.appealImages.filter(
(i) => i.url !== file.url
);
},
// 上传成功回调
handleSuccessGoodsPicture(res, file) {
if (file.response) {
file.url = file.response.result;
@@ -300,6 +291,7 @@ export default {
this.appeal.appealImages.push(file);
}
},
// 上传之前钩子
handleBeforeUpload() {
const check =
this.images.images !== undefined && this.images.images.length > 5;
@@ -310,6 +302,7 @@ export default {
}
return !check;
},
// 上传格式错误
handleFormatError(file) {
this.$Notice.warning({
title: "图片格式不正确",
@@ -319,12 +312,14 @@ export default {
" is incorrect, please select jpg or png.",
});
},
// 上传大小限制
handleMaxSize(file) {
this.$Notice.warning({
title: "超过文件大小限制",
desc: "图片 " + file.name + " 不能超过2mb",
});
},
// 获取详情
getDetail() {
this.loading = true;
API_Order.getComplainDetail(this.id).then((res) => {
@@ -358,7 +353,7 @@ export default {
}
});
},
//回复
//申诉
appealSubmit() {
if (this.appeal.appealContent === "") {
@@ -376,7 +371,7 @@ export default {
});
},
},
mounted() {
activated () {
this.id = this.$route.query.id;
this.getDetail();
this.accessToken = {

View File

@@ -53,9 +53,6 @@
:columns="columns"
:data="data"
ref="table"
sortable="custom"
@on-sort-change="changeSort"
@on-selection-change="changeSelect"
>
<!-- 商品栏目格式化 -->
@@ -121,19 +118,6 @@
goodsName:""
},
selectDate: null,
form: {
// 添加或编辑表单对象初始化数据
sn: "",
sellerName: "",
startTime: "",
endTime: "",
billPrice: "",
},
// 表单验证规则
formValidate: {},
submitLoading: false, // 添加或编辑提交状态
selectList: [], // 多选数据
selectCount: 0, // 多选计数
columns: [
{
@@ -236,33 +220,27 @@
};
},
methods: {
dropDown() {
if (this.drop) {
this.dropDownContent = "展开";
this.dropDownIcon = "ios-arrow-down";
} else {
this.dropDownContent = "收起";
this.dropDownIcon = "ios-arrow-up";
}
this.drop = !this.drop;
},
// 初始化数据
init() {
this.getDataList();
},
// 改变页码
changePage(v) {
this.searchForm.pageNumber = v;
this.getDataList();
this.clearSelectAll();
},
// 改变页数
changePageSize(v) {
this.searchForm.pageSize = v;
this.getDataList();
},
// 搜索
handleSearch() {
this.searchForm.pageNumber = 1;
this.searchForm.pageSize = 10;
this.getDataList();
},
// 重置
handleReset() {
this.searchForm = {};
this.selectDate = ''
@@ -270,28 +248,14 @@
this.searchForm.pageSize = 10;
this.getDataList();
},
changeSort(e) {
this.searchForm.sort = e.key;
this.searchForm.order = e.order;
if (e.order === "normal") {
this.searchForm.order = "";
}
this.getDataList();
},
clearSelectAll() {
this.$refs.table.selectAll(false);
},
changeSelect(e) {
this.selectList = e;
this.selectCount = e.length;
},
// 范围时间选择格式化
selectDateRange(v) {
if (v) {
this.searchForm.startDate = v[0];
this.searchForm.endDate = v[1];
}
},
// 获取列表数据
getDataList() {
this.loading = true;
API_Order.afterSaleOrderPage(this.searchForm).then((res) => {
@@ -304,7 +268,7 @@
this.total = this.data.length;
this.loading = false;
},
// 退货订单详情
detail(v) {
let sn = v.sn;
this.$router.push({

View File

@@ -53,9 +53,6 @@
:columns="columns"
:data="data"
ref="table"
sortable="custom"
@on-sort-change="changeSort"
@on-selection-change="changeSelect"
>
<!-- 商品栏目格式化 -->
@@ -103,7 +100,6 @@
export default {
name: "returnMoneyOrder",
components: {},
data() {
return {
loading: true, // 表单加载状态
@@ -121,19 +117,7 @@
goodsName:""
},
selectDate: null,
form: {
// 添加或编辑表单对象初始化数据
sn: "",
sellerName: "",
startTime: "",
endTime: "",
billPrice: "",
},
// 表单验证规则
formValidate: {},
submitLoading: false, // 添加或编辑提交状态
selectList: [], // 多选数据
selectCount: 0, // 多选计数
columns: [
// 表头
{
@@ -232,24 +216,27 @@
};
},
methods: {
// 初始化数据
init() {
this.getDataList();
},
// 改变页码
changePage(v) {
this.searchForm.pageNumber = v;
this.getDataList();
this.clearSelectAll();
},
// 改变页数
changePageSize(v) {
this.searchForm.pageSize = v;
this.getDataList();
},
// 搜索
handleSearch() {
this.searchForm.pageNumber = 1;
this.searchForm.pageSize = 10;
this.getDataList();
},
// 重置
handleReset() {
this.selectDate = ''
this.searchForm = {}
@@ -257,27 +244,14 @@
this.searchForm.pageSize = 10;
this.getDataList();
},
changeSort(e) {
this.searchForm.sort = e.key;
this.searchForm.order = e.order;
if (e.order === "normal") {
this.searchForm.order = "";
}
this.getDataList();
},
clearSelectAll() {
this.$refs.table.selectAll(false);
},
changeSelect(e) {
this.selectList = e;
this.selectCount = e.length;
},
// 范围时间重新赋值
selectDateRange(v) {
if (v) {
this.searchForm.startDate = v[0];
this.searchForm.endDate = v[1];
}
},
// 获取列表数据
getDataList() {
this.loading = true;
API_Order.afterSaleOrderPage(this.searchForm).then((res) => {
@@ -290,7 +264,7 @@
this.total = this.data.length;
this.loading = false;
},
// 退款订单详情
detail(v) {
let sn = v.sn;
this.$router.push({

View File

@@ -9,18 +9,9 @@
<h3>售后申请</h3>
<dl>
<dt>售后状态</dt>
<dd v-if="afterSaleInfo.serviceStatus =='APPLY'">申请售后</dd>
<dd v-if="afterSaleInfo.serviceStatus =='PASS'">申请通过</dd>
<dd v-if="afterSaleInfo.serviceStatus =='REFUSE'">申请拒绝</dd>
<dd v-if="afterSaleInfo.serviceStatus =='BUYER_RETURN'">买家退货待卖家收货</dd>
<dd v-if="afterSaleInfo.serviceStatus =='SELLER_RE_DELIVERY'">商家换货</dd>
<dd v-if="afterSaleInfo.serviceStatus =='SELLER_CONFIRM'">卖家确认收货</dd>
<dd v-if="afterSaleInfo.serviceStatus =='SELLER_TERMINATION'">卖家终止售后</dd>
<dd v-if="afterSaleInfo.serviceStatus =='BUYER_CONFIRM'">买家确认收货</dd>
<dd v-if="afterSaleInfo.serviceStatus =='BUYER_CANCEL'">买家取消售后</dd>
<dd v-if="afterSaleInfo.serviceStatus =='WAIT_REFUND'">等待平台退款</dd>
<dd v-if="afterSaleInfo.serviceStatus =='COMPLETE'">已完成</dd>
<dd>{{filterStatus(afterSaleInfo.serviceStatus)}}</dd>
</dl>
<dl>
<dt>退货退款编号</dt>
<dd>{{ afterSaleInfo.sn }}</dd>
@@ -296,7 +287,7 @@
</div>
<div slot="footer" style="text-align: right">
<Button size="large" @click="orderDeliverCancel">取消</Button>
<Button size="large" @click="modalVisible = false">取消</Button>
<Button type="success" size="large" @click="orderDeliverySubmit">发货</Button>
</div>
@@ -337,7 +328,7 @@
</div>
<div slot="footer" style="text-align: right">
<Button @click="logisticsClose">取消</Button>
<Button @click="logisticsModal = false">取消</Button>
</div>
</Modal>
</div>
@@ -387,13 +378,24 @@ export default {
remark: "",
actualRefundPrice: 0,
},
// 售后状态
afterSaleStatus: [
{status: 'APPLY', label: '申请售后'},
{status: 'PASS', label: '申请通过'},
{status: 'REFUSE', label: '申请拒绝'},
{status: 'BUYER_RETURN', label: '买家退货,待卖家收货'},
{status: 'SELLER_RE_DELIVERY', label: '商家换货'},
{status: 'SELLER_CONFIRM', label: '卖家确认收货'},
{status: 'SELLER_TERMINATION', label: '卖家终止售后'},
{status: 'BUYER_CONFIRM', label: '买家确认收货'},
{status: 'BUYER_CANCEL', label: '买家取消售后'},
{status: 'WAIT_REFUND', label: '等待平台退款'},
{status: 'COMPLETE', label: '已完成'},
]
};
},
watch: {
$route(to, from) {
},
},
methods: {
// 获取售后详情
getDetail() {
this.loading = true;
API_Order.afterSaleOrderDetail(this.sn).then((res) => {
@@ -415,9 +417,6 @@ export default {
}
});
},
orderDeliverCancel() {
this.modalVisible = false;
},
//商家确认收货
sellerConfirmSubmit(type) {
let title = "确认收货";
@@ -463,10 +462,6 @@ export default {
}
});
},
//关闭物流弹出框
logisticsClose() {
this.logisticsModal = false;
},
//换货发货
orderDeliverySubmit() {
@@ -497,12 +492,23 @@ export default {
}
});
},
// 返回售后状态中文描述
filterStatus (status) {
let label = ''
for (let i = 0; i< this.afterSaleStatus.length; i++) {
const obj = this.afterSaleStatus[i]
if (obj.status === status) {
label = obj.label
break;
}
}
return label
}
},
mounted() {
activated () {
this.sn = this.$route.query.sn;
this.getDetail();
},
}
};
</script>
<style lang="scss" scoped>

View File

@@ -76,7 +76,6 @@ export default {
},
mounted() {
this.accessToken.accessToken = this.getStore("accessToken");
console.log(this.accessToken.accessToken);
},
methods: {
// 点击选择步骤
@@ -89,19 +88,19 @@ export default {
val.checked = true;
}
},
// 上传数据
handleUpload(file) {
this.file = file;
this.upload();
return false;
},
// 跳转订单列表
navigationToGoodsOrder() {
this.$router.push({
path: "/order/orderList",
});
},
// 关闭页面
close() {
this.$store.commit("removeTag", "export-order-deliver");
localStorage.storeOpenedList = JSON.stringify(

View File

@@ -5,7 +5,7 @@
<Button v-if="allowOperation.editPrice" @click="modifyPrice" type="primary">调整价格</Button>
<Button v-if="allowOperation.editConsignee" @click="editAddress" type="primary">修改收货地址</Button>
<Button v-if="allowOperation.showLogistics" @click="logistics" type="primary">查看物流</Button>
<Button @click="orderLog" type="primary">订单日志</Button>
<Button @click="orderLogModal = true" type="primary">订单日志</Button>
<Button v-if="allowOperation.take" @click="orderTake" type="primary">订单核销</Button>
<Button v-if="allowOperation.ship" @click="orderDeliver" type="primary">发货</Button>
</div>
@@ -46,65 +46,65 @@
<div class="div-item-right">暂无发票信息</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.receiptTitle ? orderInfo.receipt.receiptTitle : '暂无' }}</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.receiptTitle ? orderInfo.receipt.receiptTitle : '暂无' }}</div>
</div>
<div class="div-item" v-if="orderInfo.order.needReceipt == true && orderInfo.receipt.taxpayerId">
<div class="div-item-left">发票税号</div>
<div class="div-item-right">{{ orderInfo.receipt.taxpayerId ? orderInfo.receipt.taxpayerId : '暂无' }}</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.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"><span v-if="orderInfo.receipt.receiptPrice"></span>{{ orderInfo.receipt.receiptPrice ? orderInfo.receipt.receiptPrice : '暂无' | unitPrice}}</div>
</div>
<div class="div-item" v-if="orderInfo.order.needReceipt == true && orderInfo.receipt.taxpayerId">
<div class="div-item-left">发票税号</div>
<div class="div-item-right">{{ orderInfo.receipt.taxpayerId ? orderInfo.receipt.taxpayerId : '暂无' }}</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.receiptStatus == 0 ? '未开' : '已开' }}</div>
</div>
</div>
<div style="width: 36%; float: left">
<div class="div-item">
<div class="div-item-left">收货信息</div>
<div class="div-item-right">
{{ orderInfo.order.consigneeName }}
{{ orderInfo.order.consigneeMobile }}
{{ orderInfo.order.consigneeAddressPath }}
{{ orderInfo.order.consigneeDetail }}
</div>
</div>
<div class="div-item">
<div class="div-item-left">支付方式</div>
<div class="div-item-right">
{{ orderInfo.paymentMethodValue }}
</div>
<div class="div-item-left">发票内容</div>
<div class="div-item-right">{{ orderInfo.receipt.receiptContent ? orderInfo.receipt.receiptContent : '暂无' }}</div>
</div>
<div class="div-item">
<div class="div-item-left">买家留言</div>
<div class="div-item-right">{{ orderInfo.order.remark }}</div>
<div class="div-item" v-if="orderInfo.order.needReceipt == true">
<div class="div-item-left">发票金额</div>
<div class="div-item-right"><span v-if="orderInfo.receipt.receiptPrice"></span>{{ orderInfo.receipt.receiptPrice ? orderInfo.receipt.receiptPrice : '暂无' | unitPrice}}</div>
</div>
<div class="div-item" v-if="orderInfo.order.orderType != 'VIRTUAL'">
<div class="div-item-left">配送方式</div>
<div class="div-item-right">
{{
orderInfo.deliveryMethodValue
? orderInfo.deliveryMethodValue
: "暂无配送方式"
}}
<div class="div-item" v-if="orderInfo.order.needReceipt == true">
<div class="div-item-left">是否开票</div>
<div class="div-item-right">{{ orderInfo.receipt.receiptStatus == 0 ? '未开' : '已开' }}</div>
</div>
</div>
<div style="width: 36%; float: left">
<div class="div-item">
<div class="div-item-left">收货信息</div>
<div class="div-item-right">
{{ orderInfo.order.consigneeName }}
{{ orderInfo.order.consigneeMobile }}
{{ orderInfo.order.consigneeAddressPath }}
{{ orderInfo.order.consigneeDetail }}
</div>
</div>
<div class="div-item">
<div class="div-item-left">支付方式</div>
<div class="div-item-right">
{{ orderInfo.paymentMethodValue }}
</div>
</div>
<div class="div-item">
<div class="div-item-left">买家留言</div>
<div class="div-item-right">{{ orderInfo.order.remark }}</div>
</div>
<div class="div-item" v-if="orderInfo.order.orderType != 'VIRTUAL'">
<div class="div-item-left">配送方式</div>
<div class="div-item-right">
{{
orderInfo.deliveryMethodValue
? orderInfo.deliveryMethodValue
: "暂无配送方式"
}}
</div>
</div>
</div>
</div>
</Card>
</Card>
<Card>
<Table class="mt_10" :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom">
@@ -242,7 +242,7 @@
</div>
<div slot="footer" style="text-align: right">
<Button @click="handelCancel">取消</Button>
<Button @click="orderLogModal = false">取消</Button>
</div>
</Modal>
<!-- 查询物流 -->
@@ -282,7 +282,7 @@
</div>
<div slot="footer" style="text-align: right">
<Button @click="logisticsClose">取消</Button>
<Button @click="logisticsModal = false">取消</Button>
</div>
</Modal>
<!-- 订单发货 -->
@@ -330,10 +330,8 @@ export default {
region: [], //地区
regionId: [], //地区id
showRegion: false,
orderLogInfo: [], //订单日志数据
orderLogModal: false, //弹出调整价格框
logisticsModal: false, //弹出查询物流框
receiptModal: false, //开发票弹出框
orderDeliverModal: false, //订单发货弹出框
orderTakeModal: false, //订单核销弹出框
checkedLogistics: [], //选中的物流公司集合
@@ -348,10 +346,6 @@ export default {
},
},
modal: false, //弹出调整价格框
searchForm: {
pageNumber: 1, // 当前页数
pageSize: 100, // 页面大小
},
//调整价格表单
modifyPriceForm: {
orderPrice: 0,
@@ -488,7 +482,7 @@ export default {
},
},
],
data: [], // 表单数据
data: [], // 商品表单数据
orderLogColumns: [
// 表头
{
@@ -512,6 +506,7 @@ export default {
minWidth: 200,
},
],
// 订单日志数据
orderLogData: [],
};
},
@@ -553,7 +548,7 @@ export default {
}
});
},
// 修改订单金额
modifyPrice() {
//默认要修改的金额为订单总金额
this.modifyPriceForm.orderPrice = this.orderInfo.order.flowPrice;
@@ -589,10 +584,6 @@ export default {
}
});
},
//关闭物流弹出框
logisticsClose() {
this.logisticsModal = false;
},
//订单发货
orderDeliver() {
API_Order.getLogisticsChecked().then((res) => {
@@ -606,27 +597,16 @@ export default {
orderDeliverySubmit() {
this.$refs.orderDeliveryForm.validate((valid) => {
if (valid) {
API_Order.orderDelivery(this.sn, this.orderDeliveryForm).then(
(res) => {
if (res.success) {
this.$Message.success("订单发货成功");
this.orderDeliverModal = false;
this.getDataDetail();
}
API_Order.orderDelivery(this.sn, this.orderDeliveryForm).then((res) => {
if (res.success) {
this.$Message.success("订单发货成功");
this.orderDeliverModal = false;
this.getDataDetail();
}
);
});
}
});
},
//订单日志
orderLog() {
this.orderLogModal = true;
},
//订单日志取消
handelCancel() {
this.orderLogModal = false;
},
//弹出修改收货地址框
editAddress() {
this.addressModal = true;

View File

@@ -63,7 +63,6 @@ export default {
},
data() {
return {
orderCode: "", // 虚拟订单核验码
loading: true, // 表单加载状态
searchForm: {
// 搜索框初始化对象
@@ -79,15 +78,6 @@ export default {
orderType: "NORMAL",
},
selectDate: null,
form: {
// 添加或编辑表单对象初始化数据
sn: "",
sellerName: "",
startTime: "",
endTime: "",
billPrice: "",
},
submitLoading: false, // 添加或编辑提交状态
columns: [
{
title: "订单号",
@@ -200,19 +190,6 @@ export default {
};
},
methods: {
/**
* 核验订单
*/
async orderVerification() {
let result = await verificationCode(this.orderCode);
if (result.success) {
this.$router.push({
name: "order-detail",
query: { sn: result.result.sn || this.orderCode },
});
}
},
/**
* 批量发货
*/
@@ -312,9 +289,6 @@ export default {
});
},
},
mounted() {
this.init();
},
activated() {
this.init();
},

View File

@@ -56,7 +56,7 @@ export default {
name: "virtualOrderList",
data() {
return {
orderCode: "",
orderCode: "", // 核验码
loading: true, // 表单加载状态
searchForm: {
// 搜索框初始化对象
@@ -72,19 +72,6 @@ export default {
orderType: "VIRTUAL",
},
selectDate: null,
form: {
// 添加或编辑表单对象初始化数据
sn: "",
sellerName: "",
startTime: "",
endTime: "",
billPrice: "",
},
// 表单验证规则
formValidate: {},
submitLoading: false, // 添加或编辑提交状态
selectList: [], // 多选数据
selectCount: 0, // 多选计数
columns: [
{
title: "订单号",
@@ -206,22 +193,27 @@ export default {
});
}
},
// 初始化数据
init() {
this.getDataList();
},
// 改变页码
changePage(v) {
this.searchForm.pageNumber = v;
this.getDataList();
},
// 改变页数
changePageSize(v) {
this.searchForm.pageSize = v;
this.getDataList();
},
// 搜索
handleSearch() {
this.searchForm.pageNumber = 1;
this.searchForm.pageSize = 10;
this.getDataList();
},
// 重置
handleReset() {
this.searchForm = {};
this.searchForm.pageNumber = 1;
@@ -233,6 +225,7 @@ export default {
// 重新加载数据
this.getDataList();
},
// 表格排序
changeSort(e) {
this.searchForm.sort = e.key;
this.searchForm.order = e.order;
@@ -241,17 +234,14 @@ export default {
}
this.getDataList();
},
changeSelect(e) {
this.selectList = e;
this.selectCount = e.length;
},
// 时间段重新赋值
selectDateRange(v) {
if (v) {
this.searchForm.startDate = v[0];
this.searchForm.endDate = v[1];
}
},
// 获取商品列表
getDataList() {
this.loading = true;
API_Order.getOrderList(this.searchForm).then((res) => {
@@ -262,7 +252,7 @@ export default {
}
});
},
// 跳转详情
detail(v) {
let sn = v.sn;
this.$router.push({

View File

@@ -40,8 +40,7 @@
import * as API_Order from "@/api/order";
export default {
name: "storeBill",
components: {},
name: "receipt",
data() {
return {
loading: true, // 表单加载状态
@@ -53,19 +52,6 @@ export default {
order: "desc", // 默认排序方式
receiptStatus: "", // 起始时间
},
form: {
// 添加或编辑表单对象初始化数据
sn: "",
sellerName: "",
startTime: "",
endTime: "",
billPrice: "",
},
// 表单验证规则
formValidate: {},
submitLoading: false, // 添加或编辑提交状态
selectList: [], // 多选数据
selectCount: 0, // 多选计数
columns: [
{
title: "订单号",
@@ -213,50 +199,41 @@ export default {
};
},
methods: {
// 初始化数据
init() {
this.getData();
},
// 改变页码
changePage(v) {
this.searchForm.pageNumber = v;
this.getData();
this.clearSelectAll();
},
// 改变页数
changePageSize(v) {
this.searchForm.pageSize = v;
this.getData();
},
// 搜索
handleSearch() {
this.searchForm.pageNumber = 1;
this.searchForm.pageSize = 10;
this.getData();
},
// 重置搜索条件
handleReset() {
this.searchForm = {};
this.searchForm.pageNumber = 1;
this.searchForm.pageSize = 10;
this.getData();
},
changeSort(e) {
this.searchForm.sort = e.key;
this.searchForm.order = e.order;
if (e.order === "normal") {
this.searchForm.order = "";
}
this.getData();
},
clearSelectAll() {
this.$refs.table.selectAll(false);
},
changeSelect(e) {
this.selectList = e;
this.selectCount = e.length;
},
// 时间段从新赋值
selectDateRange(v) {
if (v) {
this.searchForm.startDate = v[0];
this.searchForm.endDate = v[1];
}
},
// 获取数据
getData() {
this.loading = true;
API_Order.getReceiptPage(this.searchForm).then((res) => {
@@ -287,9 +264,6 @@ export default {
});
},
},
mounted() {
this.init();
},
activated() {
this.init();
},