Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录
切换导航
S
shop-new
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
王天霸
shop-new
Commits
0bca0892
提交
0bca0892
authored
7月 29, 2021
作者:
王天霸
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
0
上级
ba9ea683
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
998 行增加
和
245 行删除
+998
-245
retreat.js
src/api/module/retreat.js
+26
-0
index.vue
src/views/system/retreat/retreat/index.vue
+158
-245
index的副本.vue
src/views/system/retreat/retreat/index的副本.vue
+814
-0
没有找到文件。
src/api/module/retreat.js
浏览文件 @
0bca0892
import
request
from
'@/utils/request'
// 同意售后申请
export
function
refundagreeat
(
data
)
{
return
request
({
url
:
'/system/retreat/refundAgree'
,
method
:
'post'
,
data
:
data
})
}
// 查询retreat列表
export
function
listRetreat
(
query
)
{
return
request
({
...
...
src/views/system/retreat/retreat/index.vue
浏览文件 @
0bca0892
...
...
@@ -127,179 +127,82 @@
:limit
.
sync=
"queryParams.limit"
@
pagination=
"getList"
/>
<!-- 售后申请信息对话框 -->
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"80%"
append-to-body
class=
"after-sales-details"
>
<el-col
:span=
"24"
class=
"card-box"
v-loading=
"loading"
>
</el-card>
<!-- 售后申请信息对话框 -->
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"80%"
class=
"after-sales-details"
:modal-append-to-body=
"false"
:close-on-click-modal=
'false'
>
<el-col
:span=
"24"
class=
"card-box"
>
<el-card>
<div
slot=
"header"
>
<span>
商品
信息
</span>
<span>
订单
信息
</span>
</div>
<div
class=
"el-table el-table--enable-row-hover el-table--medium"
>
<table
cellspacing=
"0"
style=
"width: 100%;"
>
<tbody>
<tr>
<td>
<div
class=
"cell"
>
商品图
</div>
</td>
<td>
<!-- <div class="cell"><img :src="form.order.Img" alt="" width="120" height="98"></div> -->
</td>
<td>
<div
class=
"cell"
>
商品ID
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.goods_id}}
</div>
</td>
<td>
<div
class=
"cell"
>
商品名
</div>
</td>
<td>
<!-- <div class="cell">{{form.order.GoodsName}}</div> -->
</td>
<td>
<div
class=
"cell"
>
商品规格
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.sku_id}}
</div>
</td>
<td>
<div
class=
"cell"
>
商品数量
</div>
</td>
<td>
<!-- <div class="cell">{{form.order.Quantity}}</div> -->
</td>
</tr>
<tr>
<td>
<div
class=
"cell"
>
订单编号
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.order_sn}}
</div>
</td>
<td>
<div
class=
"cell"
>
订单应付金额
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.Money}}元
</div>
</td>
<td>
<div
class=
"cell"
>
订单实付金额
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.Money}}元
</div>
</td>
<td>
<div
class=
"cell"
>
运费金额
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.Freight}}元
</div>
</td>
<td>
<div
class=
"cell"
>
商品金额
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.SellerMoney}}元
</div>
</td>
</tr>
<tr>
<td>
<div
class=
"cell"
>
联系电话
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.Tel}}
</div>
</td>
<td>
<div
class=
"cell"
>
申请原因
</div>
</td>
<td>
<div
class=
"cell"
v-text=
'userMsg(form.retreat.info.needMsg)'
></div>
</td>
<td>
<div
class=
"cell"
>
售后类型
</div>
</td>
<td>
<div
class=
"cell"
v-text=
'userNeed(form.retreat.info.userNeed)'
></div>
</td>
<td>
<div
class=
"cell"
>
退款金额
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.retreat.info.refundMoney/100}}元
</div>
</td>
<td>
<div
class=
"cell"
>
货物状态
</div>
</td>
<td>
<div
class=
"cell"
v-text=
'goodsStatus(form.retreat.info.goodsStatus)'
></div>
</td>
</tr>
</tbody>
</table>
<el-row>
<el-col
:span=
"12"
><div
class=
"cells"
>
订单编号: {{form.order.order_sn}}
</div></el-col>
<el-col
:span=
"12"
><div
class=
"cells"
>
下单时间: {{form.order.order_create_time}}
</div></el-col>
<el-col
:span=
"12"
><div
class=
"cells"
>
订单金额: {{form.order.order_money/100}} 元
</div></el-col>
<el-col
:span=
"12"
><div
class=
"cells"
>
运费: {{form.order.dispatch_price/100}}元
</div></el-col>
<el-col
:span=
"12"
><div
class=
"cells"
>
数量: x {{form.order.order_goods_total}}
</div></el-col>
<el-col
:span=
"12"
><div
class=
"cells"
>
订单来源: xxxxxxxx
</div></el-col>
<el-col
:span=
"12"
><div
class=
"cells"
>
支付时间: {{form.order.order_pay_time}}
</div></el-col>
<el-col
:span=
"12"
><div
class=
"cells"
>
支付方式: xxxxxx
</div></el-col>
<el-col
:span=
"24"
><div
class=
"cells"
>
订单状态: {{goodsStatus(form.order.order_status)}}
</div></el-col>
</el-row>
</div>
</el-card>
</el-col>
<el-col
:span=
"24"
class=
"card-box"
v-loading=
"loading"
v-if=
"orderInfo"
>
<el-col
:span=
"24"
class=
"card-box"
>
<el-card>
<div
slot=
"header"
>
<span>
订单状态
</span>
<span>
商品信息
</span>
</div>
<div
class=
"el-table el-table--enable-row-hover el-table--medium"
>
<!-- 已处理 -->
<el-row
:gutter=
"30"
class=
"mb8"
v-if=
"form.retreat.info.processDes == 3 && form.retreat.info.userNeed == 1"
>
<el-col
:span=
"1.5"
>
{{form.retreat.info.dse}}
</el-col>
</el-row>
<!-- 已处理 -->
<el-row
:gutter=
"30"
class=
"mb8"
v-if=
"form.retreat.info.processDes == 2 && form.retreat.info.userNeed == 1"
>
<el-col
:span=
"1.5"
>
{{form.retreat.info.dse}}
</el-col>
</el-row>
<!-- 仅退款 -->
<el-row
:gutter=
"30"
class=
"mb8"
v-if=
"form.retreat.info.userNeed == 1 && form.retreat.info.processDes == 1"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"success"
size=
"mini"
@
click=
"handleagree"
>
同意
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleRejectPre"
>
拒绝
</el-button>
</el-col>
<el-row>
<el-col
:span=
"24"
><div
class=
"cells"
>
商品名称: {{form.order.goods_title}}
</div></el-col>
<el-col
:span=
"24"
><div
class=
"cells"
>
商品ID: {{form.order.goods_id}}
</div></el-col>
<el-col
:span=
"24"
><div
class=
"cells"
>
商品数量: x {{form.order.goods_total}}
</div></el-col>
<el-col
:span=
"24"
><div
class=
"cells"
>
商品规格: {{form.order.goods_option_title}}
</div></el-col>
</el-row>
<!-- 退货退款 -->
<el-row
:gutter=
"30"
class=
"mb8"
v-if=
"form.retreat.info.userNeed == 2"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"success"
size=
"mini"
@
click=
"handleAddress"
>
同意申请,并发送退货地址
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleRejectPre"
>
拒绝
</el-button>
</el-col>
</div>
</el-card>
</el-col>
<el-col
:span=
"24"
class=
"card-box"
>
<el-card>
<div
slot=
"header"
>
<span>
退换货信息
</span>
</div>
<div
class=
"el-table el-table--enable-row-hover el-table--medium"
>
<el-row>
<el-col
:span=
"24"
><div
class=
"cells"
>
退换货类型: {{userNeed(form.order.refund_type)}}
</div></el-col>
<el-col
:span=
"24"
><div
class=
"cells"
>
退货数量: {{form.order.refund_goods_total}}
</div></el-col>
<el-col
:span=
"24"
><div
class=
"cells"
>
联系电话: {{form.order.receiver_phone}}
</div></el-col>
<el-col
:span=
"24"
><div
class=
"cells"
>
申请原因: {{userMsg(form.order.reason)}}
</div></el-col>
<el-col
:span=
"24"
><div
class=
"cells"
>
问题描述: {{form.order.content}}
</div></el-col>
<el-col
:span=
"24"
><div
class=
"cells"
>
申请金额: {{form.order.goods_option_title}}
</div></el-col>
<el-col
:span=
"24"
><div
class=
"cells"
>
退款金额: {{form.order.goods_option_title}}
</div></el-col>
</el-row>
</div>
</el-card>
</el-col>
<!-- 退款 同意,拒绝 -->
<!-- 退货退换 同意,拒绝 -->
<!-- 同意 确认收货 退款 -->
<!-- 同意 拒绝收货 拒绝 -->
<el-row>
<!-- refundtype//退款类型 1退款2退货3换货-->
<!-- refundstatus//退款状态 退款状态-1关闭1用户取消2待审核3驳回4待退货5待收货6重新发货7重新收货8待打款9已完成 -->
<el-button
type=
"primary"
v-if=
'refundstatus==2'
@
click=
refundagree()
>
同意申请
</el-button>
<el-button
type=
"warning"
v-if=
'refundstatus==2'
>
拒绝申请
</el-button>
<el-button
type=
"info"
v-if=
'refundstatus==3'
disabled
>
拒绝申请
</el-button>
<el-button
type=
"warning"
disabled
v-if=
'refundstatus==8'
>
退款
</el-button>
</el-row>
<el-col
:span=
"24"
class=
"card-box"
v-if=
"reject"
>
<el-card>
<div
slot=
"header"
>
...
...
@@ -362,15 +265,22 @@
</el-card>
</el-col>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"handleCancel"
>
取 消
</el-button>
</div>
<!-- 退货退款弹窗 -->
<el-dialog
title=
"退货退款"
:visible
.
sync=
"dialogTableVisible"
:modal-append-to-body=
"false"
:append-to-body=
"true"
:close-on-click-modal=
'false'
>
确定同意买家的退货退款申请吗?请确认您已收到买家寄回的商品后,再同意退款!∂
<el-table
:data=
"gridData"
>
<el-table-column
property=
"date"
label=
"日期"
width=
"150"
></el-table-column>
<el-table-column
property=
"name"
label=
"姓名"
width=
"200"
></el-table-column>
<el-table-column
property=
"address"
label=
"地址"
></el-table-column>
</el-table>
</el-dialog>
</el-dialog>
</el-card>
</div>
</template>
<
script
>
import
{
listRetreat
,
getRetreat
,
retreatSubmit
,
getSearchParams
}
from
'@/api/module/retreat'
import
{
listRetreat
,
getRetreat
,
re
fundagreeat
,
re
treatSubmit
,
getSearchParams
}
from
'@/api/module/retreat'
import
{
dateFormat
}
from
'@/utils'
export
default
{
name
:
"retreat"
,
...
...
@@ -478,6 +388,10 @@ import {dateFormat} from '@/utils'
retreat
:
{
info
:
{
needMsg
:
0
}},
order
:
{},
},
orderrefundid
:
''
,
//订单号
refundtype
:
''
,
//退款类型
refundstatus
:
''
,
//退款状态
dialogTableVisible
:
false
,
//退货退款弹窗
pickerOptions
:
{
shortcuts
:
[{
text
:
'最近一周'
,
...
...
@@ -529,6 +443,67 @@ import {dateFormat} from '@/utils'
}
},
methods
:
{
/** 查看售后详情 */
handleInfo
(
row
)
{
const
id
=
row
.
refund_sn
getRetreat
(
id
).
then
(
response
=>
{
this
.
loading
=
false
;
this
.
form
.
order
=
response
.
data
;
this
.
orderrefundid
=
response
.
data
.
order_refund_sn
// this.refundtype= response.data.refund_type//退款类型
// this.refundstatus= response.data.status//退款状态
this
.
refundtype
=
2
//退款类型
this
.
refundstatus
=
2
//退款状态
this
.
open
=
true
;
this
.
title
=
"售后申请信息详情"
;
});
},
// 售后star
// refundtype//退款类型 1退款2退货3换货
// refundstatus//退款状态 退款状态-1关闭1用户取消2待审核3驳回4待退货5待收货6重新发货7重新收货8待打款9已完成
refundagree
(){
if
(
this
.
refundtype
==
1
){
//退款
this
.
$msgbox
({
title
:
'确认同意买家的仅退款申请吗?'
,
message
:
'如果您同意,将直接退款给买家,买家不用寄回商品!'
,
center
:
true
,
showCancelButton
:
true
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
beforeClose
:
(
action
,
instance
,
done
)
=>
{
if
(
action
===
'confirm'
)
{
done
();
let
data
=
{
order_refund_id
:
this
.
orderrefundid
}
refundagreeat
(
data
).
then
(
res
=>
{
if
(
res
.
code
==
1
){
done
();
this
.
$message
({
type
:
'success'
,
message
:
'操作成功!'
});
}
else
{
done
();
this
.
$message
({
type
:
'warning'
,
message
:
res
.
message
});
}
})
}
else
{
done
();
}
}
}).
then
(
action
=>
{
});
}
else
if
(
this
.
refundtype
==
2
){
//退货
this
.
dialogTableVisible
=
true
}
},
// 售后over
formatter
(
time
)
{
return
dateFormat
(
time
,
'Y-m-d H:i:s'
)
},
...
...
@@ -607,15 +582,17 @@ import {dateFormat} from '@/utils'
//商品状态 0:,1:,2:,3
goodsStatus
(
status
)
{
if
(
status
==
0
)
{
return
"
未发货
"
return
"
待付款
"
}
else
if
(
status
==
1
)
{
return
"
已
发货"
return
"
待
发货"
}
else
if
(
status
==
2
)
{
return
"
已
收货"
return
"
待
收货"
}
else
if
(
status
==
3
)
{
return
"揽件中"
}
else
{
return
"未知"
return
"已完成"
}
else
if
(
status
==
4
){
return
"已结算"
}
else
if
(
status
==
-
1
){
return
"订单取消"
}
},
userNeed
(
ids
)
{
//1::2:3:
...
...
@@ -624,7 +601,7 @@ import {dateFormat} from '@/utils'
}
else
if
(
ids
==
2
)
{
return
"退款退货"
}
else
if
(
ids
==
3
)
{
return
"
客服仲裁
"
return
"
换货
"
}
else
{
return
"未知"
}
...
...
@@ -713,85 +690,15 @@ import {dateFormat} from '@/utils'
this
.
reback
=
false
this
.
orderInfo
=
true
},
//同意申请并发送收货地址
handleRefund
()
{
const
id
=
this
.
form
.
retreat
.
info
.
id
this
.
loading
=
true
;
this
.
submitParam
.
event_id
=
id
this
.
submitParam
.
act
=
"send-dz"
retreatSubmit
(
this
.
submitParam
).
then
(
response
=>
{
// console.log("同意申请并发送收货地址",response)
if
(
response
.
code
==
0
)
{
this
.
msgSuccess
(
response
.
msg
);
}
this
.
loading
=
false
;
});
},
//拒绝操作提交
handleReject
()
{
const
id
=
this
.
form
.
retreat
.
info
.
id
this
.
loading
=
true
;
this
.
submitParam
.
event_id
=
id
this
.
submitParam
.
act
=
"reject"
retreatSubmit
(
this
.
submitParam
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
msgSuccess
(
response
.
msg
);
}
// console.log("拒绝提交返回", response)
this
.
loading
=
false
;
});
},
/** 同意按钮操作 */
handleagree
()
{
const
id
=
this
.
form
.
retreat
.
info
.
id
this
.
loading
=
true
;
this
.
submitParam
.
event_id
=
id
// this.submitParam.money=id
this
.
submitParam
.
act
=
"agree"
retreatSubmit
(
this
.
submitParam
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
msgSuccess
(
response
.
msg
);
}
// console.log("确定提交返回",response)
this
.
loading
=
false
;
});
},
/** 查看详情 */
handleInfo
(
row
)
{
this
.
loading
=
true
;
// this.reset();
const
id
=
row
.
refund_sn
getRetreat
(
id
).
then
(
response
=>
{
this
.
loading
=
false
;
//console.log("000", response.data)
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"售后申请信息详情"
;
});
},
// 取消关闭 详情对话框
handleCancel
()
{
this
.
open
=
false
;
},
//
userNeedChange
(
val
)
{
if
(
val
===
''
)
{
this
.
queryParams
.
userNeed
=
null
;
}
},
needMsgChange
(
val
)
{
if
(
val
===
''
)
{
this
.
queryParams
.
needMsg
=
null
;
}
},
processDesChange
(
val
)
{
if
(
val
===
''
)
{
this
.
queryParams
.
processDes
=
null
;
}
}
}
//methods结束
//methods结束
};
</
script
>
<
style
scoped
lang=
"scss"
type=
"text/stylus"
>
...
...
@@ -800,4 +707,10 @@ import {dateFormat} from '@/utils'
margin-bottom
:
5px
;
}
}
.after-sales-details
{
height
:
80%
;
}
.cells
{
line-height
:
32px
;
}
</
style
>
src/views/system/retreat/retreat/index的副本.vue
0 → 100644
浏览文件 @
0bca0892
<
template
>
<div
class=
"app-container"
>
<el-card
class=
"box-card"
>
<div
slot=
"header"
class=
"clearfix"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
:inline=
"true"
v-show=
"showSearch"
label-width=
"82px"
class=
"queryFormInline"
>
<el-form-item
label=
"申请时间"
prop=
"applyTime"
>
<el-date-picker
size=
"small"
v-model=
"queryParams.applyTime"
type=
"daterange"
align=
"left"
unlink-panels
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
:picker-options=
"pickerOptions"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"商品ID"
prop=
"goodsId"
>
<el-input
v-model=
"queryParams.goodsId"
placeholder=
"请输入商品id"
clearable
size=
"small"
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"商品名称"
prop=
"goodsName"
>
<el-input
v-model=
"queryParams.goodsName"
placeholder=
"请输入商品名称"
clearable
size=
"small"
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"退换货类型"
prop=
"userNeed"
>
<el-select
v-model=
"queryParams.userNeed"
placeholder=
"全部原因"
size=
"small"
clearable
@
change=
"userNeedChange"
>
<el-option
v-for=
"item in userNeedOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"退换货原因"
prop=
"needMsg"
>
<el-select
v-model=
"queryParams.needMsg"
placeholder=
"全部类型"
size=
"small"
clearable
@
change=
"needMsgChange"
>
<el-option
v-for=
"item in needMsgOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"处理状态"
prop=
"processDes"
>
<el-select
v-model=
"queryParams.processDes"
placeholder=
"全部状态"
size=
"small"
clearable
@
change=
"processDesChange"
>
<el-option
v-for=
"item in processDesOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
</div>
<el-table
v-loading=
"loading"
:data=
"retreatList"
:height=
"tableHeight"
>
<el-table-column
label=
"序号"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"商品名称"
align=
"center"
prop=
"goods_title"
/>
<el-table-column
label=
"订单号"
align=
"center"
prop=
"refund_sn"
/>
<el-table-column
label=
"订单手机号"
align=
"center"
prop=
"UPhone"
/>
<el-table-column
label=
"退换货原因"
align=
"center"
prop=
"reason"
>
<template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.reason==1"
>
协商一致退款
</span>
<span
v-if=
"scope.row.reason==2"
>
质量问题
</span>
<span
v-if=
"scope.row.reason==3"
>
物流问题
</span>
<span
v-if=
"scope.row.reason==4"
>
假冒品牌
</span>
<span
v-if=
"scope.row.reason==5"
>
少件/漏发/破损/污渍
</span>
<span
v-if=
"scope.row.reason==6"
>
7天无理由
</span>
<span
v-if=
"scope.row.reason==7"
>
拍错/多拍/不想要
</span>
<span
v-if=
"scope.row.reason==8"
>
其他
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"退换货类型"
align=
"center"
prop=
"refund_type"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.refund_type==1"
>
退款
</span>
<span
v-if=
"scope.row.refund_type==2"
>
退货
</span>
<span
v-if=
"scope.row.refund_type==3"
>
换货
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"处理状态"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.reason==-1"
>
关闭
</span>
<span
v-if=
"scope.row.reason==1"
>
用户取消
</span>
<span
v-if=
"scope.row.reason==2"
>
待审核
</span>
<span
v-if=
"scope.row.reason==3"
>
驳回
</span>
<span
v-if=
"scope.row.reason==4"
>
待退货
</span>
<span
v-if=
"scope.row.reason==5"
>
待收货
</span>
<span
v-if=
"scope.row.reason==6"
>
重新发货
</span>
<span
v-if=
"scope.row.reason==7"
>
重新收货
</span>
<span
v-if=
"scope.row.reason==8"
>
待打款
</span>
<span
v-if=
"scope.row.reason==9"
>
已完成
</span>
</
template
>
</el-table-column>
<!-- <el-table-column label="到期时间" align="center" prop="TaskEndtime"/> -->
<el-table-column
label=
"申请时间"
align=
"center"
prop=
"created_time"
>
<
template
slot-scope=
"scope"
>
{{
formatter
(
scope
.
row
.
created_time
)
}}
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
@
click=
"handleInfo(scope.row)"
>
详情
</el-button>
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"total>0"
:total=
"total"
:page
.
sync=
"queryParams.page"
:limit
.
sync=
"queryParams.limit"
@
pagination=
"getList"
/>
</el-card>
<!-- 售后申请信息对话框 -->
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"80%"
class=
"after-sales-details"
>
<el-col
:span=
"24"
class=
"card-box"
>
<el-card>
<div
slot=
"header"
>
<span>
订单信息
</span>
</div>
<div
class=
"el-table el-table--enable-row-hover el-table--medium"
>
<table
cellspacing=
"0"
style=
"width: 100%;"
>
<tbody>
<tr>
<td>
<div
class=
"cell"
>
商品图
</div>
</td>
<td>
<!-- <div class="cell"><img :src="form.order.Img" alt="" width="120" height="98"></div> -->
</td>
<td>
<div
class=
"cell"
>
商品ID
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.goods_id}}
</div>
</td>
<td>
<div
class=
"cell"
>
商品名
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.goods_title}}
</div>
</td>
<td>
<div
class=
"cell"
>
商品规格
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.goods_option_title}}
</div>
</td>
<td>
<div
class=
"cell"
>
商品数量
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.goods_total}}
</div>
</td>
</tr>
<tr>
<td>
<div
class=
"cell"
>
订单编号
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.order_sn}}
</div>
</td>
<td>
<div
class=
"cell"
>
订单应付金额
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.Money}}元
</div>
</td>
<td>
<div
class=
"cell"
>
订单实付金额
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.order_money/100}}元
</div>
</td>
<td>
<div
class=
"cell"
>
运费金额
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.dispatch_price/100}}元
</div>
</td>
<td>
<div
class=
"cell"
>
商品金额
</div>
</td>
<td>
<!-- <div class="cell">{{form.order.SellerMoney}}元</div> -->
</td>
</tr>
<tr>
<td>
<div
class=
"cell"
>
联系电话
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.order.receiver_phone}}
</div>
</td>
<td>
<div
class=
"cell"
>
申请原因
</div>
</td>
<td>
<div
class=
"cell"
v-text=
'userMsg(form.retreat.info.reason)'
></div>
</td>
<td>
<div
class=
"cell"
>
售后类型
</div>
</td>
<td>
<div
class=
"cell"
v-text=
'userNeed(form.retreat.info.refund_type)'
></div>
</td>
<td>
<div
class=
"cell"
>
退款金额
</div>
</td>
<td>
<div
class=
"cell"
>
{{form.retreat.info.price/100}}元
</div>
</td>
<td>
<div
class=
"cell"
>
货物状态
</div>
</td>
<td>
<div
class=
"cell"
v-text=
'goodsStatus(form.retreat.info.order_status)'
></div>
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
</el-col>
<el-col
:span=
"24"
class=
"card-box"
v-if=
"orderInfo"
>
<el-card>
<div
slot=
"header"
>
<span>
订单状态
</span>
</div>
<div
class=
"el-table el-table--enable-row-hover el-table--medium"
>
<!-- 已处理 -->
<el-row
:gutter=
"30"
class=
"mb8"
v-if=
"form.retreat.info.processDes == 3 && form.retreat.info.userNeed == 1"
>
<el-col
:span=
"1.5"
>
{{form.retreat.info.dse}}
</el-col>
</el-row>
<!-- 已处理 -->
<el-row
:gutter=
"30"
class=
"mb8"
v-if=
"form.retreat.info.processDes == 2 && form.retreat.info.userNeed == 1"
>
<el-col
:span=
"1.5"
>
{{form.retreat.info.dse}}
</el-col>
</el-row>
<!-- 仅退款 -->
<el-row
:gutter=
"30"
class=
"mb8"
v-if=
"form.retreat.info.userNeed == 1 && form.retreat.info.processDes == 1"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"success"
size=
"mini"
@
click=
"handleagree"
>
同意
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleRejectPre"
>
拒绝
</el-button>
</el-col>
</el-row>
<!-- 退货退款 -->
<el-row
:gutter=
"30"
class=
"mb8"
v-if=
"form.retreat.info.userNeed == 2"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"success"
size=
"mini"
@
click=
"handleAddress"
>
同意申请,并发送退货地址
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleRejectPre"
>
拒绝
</el-button>
</el-col>
</el-row>
</div>
</el-card>
</el-col>
<el-col
:span=
"24"
class=
"card-box"
v-if=
"reject"
>
<el-card>
<div
slot=
"header"
>
<span>
拒绝信息
</span>
</div>
<div
class=
"el-table el-table--enable-row-hover el-table--medium"
>
<el-form
:model=
"submitParam"
ref=
"queryForm"
label-width=
"68px"
>
<el-form-item
label=
"拒绝原因"
>
<el-select
v-model=
"submitParam.act_cause"
placeholder=
"拒绝原因"
>
<el-option
v-for=
"item in actCause"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"详细说明"
prop=
"goods_name"
>
<el-input
v-model=
"submitParam.des"
placeholder=
"请输入商品名称"
clearable
size=
"small"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"cyan"
size=
"mini"
@
click=
"handleReject"
>
确定提交
</el-button>
<el-button
size=
"mini"
@
click=
"handleRejectCancel"
>
取消
</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</el-col>
<el-col
:span=
"24"
class=
"card-box"
v-if=
"reback"
>
<el-card>
<div
slot=
"header"
>
<span>
退货地址
</span>
</div>
<div
class=
"el-table el-table--enable-row-hover el-table--medium"
>
<el-form
:model=
"submitParam"
ref=
"queryForm"
label-width=
"68px"
>
<el-form-item
label=
"退货地址"
>
<el-select
v-model=
"submitParam.address"
placeholder=
"退货地址"
style=
"width:500px;"
>
<el-option
v-for=
"(item,index) in form.address"
:key=
"item.value"
:label=
"item.label"
v-if=
"item != '' "
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"退货说明"
prop=
"des"
>
<el-input
v-model=
"submitParam.des"
placeholder=
"可以详细说明原因"
clearable
size=
"small"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"cyan"
size=
"mini"
@
click=
"handleRefund"
>
确定提交
</el-button>
<el-button
size=
"mini"
@
click=
"handleRebackCancel"
>
取消
</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</el-col>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"handleCancel"
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
listRetreat
,
getRetreat
,
retreatSubmit
,
getSearchParams
}
from
'@/api/module/retreat'
import
{
dateFormat
}
from
'@/utils'
export
default
{
name
:
"retreat"
,
data
()
{
return
{
// 遮罩层
loading
:
false
,
fullHeight
:
0
,
tableHeight
:
0
,
//退货地址
address
:
[],
//提交信息
submitParam
:
{
event_id
:
0
,
act
:
""
,
act_cause
:
0
,
des
:
""
,
address
:
""
,
imgObj
:
[]
},
//拒绝原因 1:,2:,3:,4:,5,6:,7:,8:,9:,10:,11:,12:,13:,14:
actCause
:
[
{
label
:
'请选择拒绝原因'
,
value
:
0
},
{
label
:
"买家要求退款金额过高"
,
value
:
1
},
{
label
:
"买家举证无效,商品没问题"
,
value
:
2
},
{
label
:
"买家未举证,商品没问题"
,
value
:
3
},
{
label
:
"商品已超售后服务时限"
,
value
:
4
},
{
label
:
"退回商品后才能退款"
,
value
:
5
},
{
label
:
"过期未操作"
,
value
:
6
},
{
label
:
"退回的商品影响2次销售"
,
value
:
7
},
{
label
:
"已经协商好换货或维修"
,
value
:
8
},
{
label
:
"买家家退回的商品不是我店铺的"
,
value
:
9
},
{
label
:
"买家填写的退货单号无记录"
,
value
:
10
},
{
label
:
"没收到退货,快递还在途中"
,
value
:
11
},
{
label
:
"买家擅自使用到货付款"
,
value
:
12
},
{
label
:
"买家退回的商品不全"
,
value
:
13
},
{
label
:
"其他"
,
value
:
14
},
],
// 售后类型/退换货类型
userNeedOptions
:
[
{
value
:
-
1
,
label
:
'全部类型'
},
{
value
:
1
,
label
:
'仅退款'
},
{
value
:
2
,
label
:
'退货退款'
},
{
value
:
3
,
label
:
'客服仲裁'
}
],
// 退换货原因
needMsgOptions
:
[
{
value
:
-
1
,
label
:
'全部原因'
},
{
value
:
1
,
label
:
'协商一致退款'
},
{
value
:
2
,
label
:
'质量问题'
},
{
value
:
3
,
label
:
'物流问题'
},
{
value
:
4
,
label
:
'假冒品牌'
},
{
value
:
5
,
label
:
'少件/漏发/破损/污渍'
},
{
value
:
6
,
label
:
'7天无理由'
},
{
value
:
7
,
label
:
'拍错/多拍/不想要'
},
{
value
:
8
,
label
:
'其他'
},
],
// 处理状态
processDesOptions
:
[
{
value
:
-
1
,
label
:
'全部状态'
},
{
value
:
1
,
label
:
'未处理'
},
{
value
:
2
,
label
:
'处理中'
},
{
value
:
3
,
label
:
'已处理'
},
{
value
:
4
,
label
:
'客服介入'
},
],
//状态
orderInfo
:
true
,
//拒绝框
reject
:
false
,
//退货地址
reback
:
false
,
// 选中数组
ids
:
[],
// 非单个禁用
single
:
true
,
// 非多个禁用
multiple
:
true
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 售后申请信息表格数据
retreatList
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
true
,
// 查询参数
queryParams
:
{
page
:
1
,
limit
:
10
,
applyTime
:
[],
beginTime
:
''
,
endTime
:
''
,
goodsId
:
null
,
goodsName
:
null
,
userNeed
:
null
,
needMsg
:
null
,
processDes
:
null
},
data
:
{},
// 表单参数
form
:
{
retreat
:
{
info
:
{
needMsg
:
0
}},
order
:
{},
},
pickerOptions
:
{
shortcuts
:
[{
text
:
'最近一周'
,
onClick
(
picker
)
{
const
end
=
new
Date
();
const
start
=
new
Date
();
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
7
);
picker
.
$emit
(
'pick'
,
[
start
,
end
]);
}
},
{
text
:
'最近一个月'
,
onClick
(
picker
)
{
const
end
=
new
Date
();
const
start
=
new
Date
();
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
30
);
picker
.
$emit
(
'pick'
,
[
start
,
end
]);
}
},
{
text
:
'最近三个月'
,
onClick
(
picker
)
{
const
end
=
new
Date
();
const
start
=
new
Date
();
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
90
);
picker
.
$emit
(
'pick'
,
[
start
,
end
]);
}
}]
},
};
},
created
()
{
this
.
getParams
();
this
.
getList
();
this
.
$nextTick
(()
=>
{
this
.
fullHeight
=
document
.
getElementsByClassName
(
'box-card'
)[
0
].
clientHeight
})
},
watch
:
{
fullHeight
(
val
)
{
let
formHeight
=
document
.
getElementsByClassName
(
'clearfix'
)[
0
].
clientHeight
this
.
tableHeight
=
val
-
formHeight
-
120
},
'queryParams.applyTime'
()
{
// select组件,clear的时候,将addTimeInterval的值,初始化为null,判断当其值为null时,赋值为数组
if
(
!
this
.
queryParams
.
applyTime
&&
typeof
(
this
.
queryParams
.
applyTime
)
!==
"undefined"
)
{
this
.
queryParams
.
applyTime
=
[];
this
.
queryParams
.
beginTime
=
''
;
this
.
queryParams
.
endTime
=
''
;
}
}
},
methods
:
{
formatter
(
time
)
{
return
dateFormat
(
time
,
'Y-m-d H:i:s'
)
},
getParams
()
{
getSearchParams
().
then
(
res
=>
{
if
(
res
.
userNeed
&&
res
.
userNeed
.
length
>
0
)
{
this
.
userNeedOptions
=
res
.
userNeed
;
}
if
(
res
.
needMsg
&&
res
.
needMsg
.
length
>
0
)
{
this
.
needMsgOptions
=
res
.
needMsg
;
}
if
(
res
.
processDes
&&
res
.
processDes
.
length
>
0
)
{
this
.
processDesOptions
=
res
.
processDes
;
}
});
},
//原因 卖家拒绝(1:买家要求退款金额过高2:买家举证无效,商品没问题3:买家未举证,商品没问题4:商品已超售后服务时限5:退回商品后才能退款6:过期未操作,7:其他)
actCauses
(
actCause
)
{
if
(
actCause
==
1
)
{
return
"买家要求退款金额过高"
}
else
if
(
actCause
==
2
)
{
return
"买家举证无效,商品没问题"
}
else
if
(
actCause
==
3
)
{
return
"买家未举证,商品没问题"
}
else
if
(
actCause
==
4
)
{
return
"商品已超售后服务时限"
}
else
if
(
actCause
==
5
)
{
return
"退回商品后才能退款"
}
else
if
(
actCause
==
6
)
{
return
"过期未操作"
}
else
if
(
actCause
==
7
)
{
return
"其他"
}
else
{
return
"未知"
}
},
//行为1:同意:2拒绝3:客服介入4:撤销 5:发送收货地址 6:同意收货 7:买家上传物流信息
act
(
act
)
{
if
(
act
==
1
)
{
return
"同意"
}
else
if
(
act
==
2
)
{
return
"拒绝"
}
else
if
(
act
==
3
)
{
return
"客服介入"
}
else
if
(
act
==
4
)
{
return
"撤销"
}
else
if
(
act
==
5
)
{
return
"发送收货地址"
}
else
if
(
act
==
6
)
{
return
"同意收货"
}
else
if
(
act
==
7
)
{
return
"买家上传物流信息"
}
else
{
return
"未知"
}
},
//角色 1:2:3:客服 4:系统
role
(
id
)
{
if
(
id
==
1
)
{
return
"商家操作"
}
else
if
(
id
==
2
)
{
return
"用户操作"
}
else
if
(
id
==
3
)
{
return
"客服操作"
}
else
if
(
id
==
4
)
{
return
"系统操作"
}
else
{
return
"未知"
}
},
// //获取地址后缀id
// getIndex(index) {
// index = index.slice(14);
// return index
// },
//商品状态 0:,1:,2:,3
goodsStatus
(
status
)
{
if
(
status
==
0
)
{
return
"待付款"
}
else
if
(
status
==
1
)
{
return
"待发货"
}
else
if
(
status
==
2
)
{
return
"待收货"
}
else
if
(
status
==
3
)
{
return
"已完成"
}
else
if
(
status
==
4
){
return
"已结算"
}
else
if
(
status
==
-
1
){
return
"订单取消"
}
},
userNeed
(
ids
)
{
//1::2:3:
if
(
ids
==
1
)
{
return
"仅退款"
}
else
if
(
ids
==
2
)
{
return
"退款退货"
}
else
if
(
ids
==
3
)
{
return
"客服仲裁"
}
else
{
return
"未知"
}
},
userMsg
(
typs
)
{
if
(
typs
==
1
)
{
return
"协商一致退款"
}
else
if
(
typs
==
2
)
{
return
"质量问题"
}
else
if
(
typs
==
3
)
{
return
"物流问题"
}
else
if
(
typs
==
4
)
{
return
"假冒品牌"
}
else
if
(
typs
==
5
)
{
return
"少件/漏发/破损/污渍"
}
else
if
(
typs
==
6
)
{
return
"7天无理由"
}
else
if
(
typs
==
7
)
{
return
"拍错/多拍/不想要"
}
else
{
return
"其他"
}
},
/** 查询售后申请信息列表 */
getList
()
{
listRetreat
(
this
.
queryParams
).
then
(
res
=>
{
if
(
res
.
data
)
{
this
.
retreatList
=
res
.
data
.
data
;
this
.
total
=
res
.
data
.
count
;
}
});
},
// 取消按钮
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
// 表单重置
reset
()
{
this
.
form
=
{
"order"
:
[],
"retreat"
:
[]
};
this
.
resetForm
(
"form"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
if
(
this
.
queryParams
.
applyTime
.
length
===
2
)
{
this
.
queryParams
.
beginTime
=
new
Date
(
this
.
queryParams
.
applyTime
[
0
]).
getTime
()
/
1000
;
this
.
queryParams
.
endTime
=
new
Date
(
this
.
queryParams
.
applyTime
[
1
]).
getTime
()
/
1000
;
}
this
.
queryParams
.
page
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
resetForm
(
"queryForm"
);
this
.
queryParams
.
beginTime
=
''
;
this
.
queryParams
.
endTime
=
''
;
this
.
handleQuery
();
},
//同意申请并发货
handleAddress
()
{
this
.
orderInfo
=
false
this
.
reject
=
false
this
.
reback
=
true
},
// 多选框选中数据
handleSelectionChange
(
selection
)
{
this
.
ids
=
selection
.
map
(
item
=>
item
.
id
)
this
.
single
=
selection
.
length
!==
1
this
.
multiple
=
!
selection
.
length
},
handleRejectCancel
()
{
this
.
orderInfo
=
true
this
.
reject
=
false
},
handleRejectPre
()
{
this
.
orderInfo
=
false
this
.
reject
=
true
},
handleRebackCancel
()
{
this
.
reject
=
false
this
.
reback
=
false
this
.
orderInfo
=
true
},
//同意申请并发送收货地址
handleRefund
()
{
const
id
=
this
.
form
.
retreat
.
info
.
id
this
.
loading
=
true
;
this
.
submitParam
.
event_id
=
id
this
.
submitParam
.
act
=
"send-dz"
retreatSubmit
(
this
.
submitParam
).
then
(
response
=>
{
// console.log("同意申请并发送收货地址",response)
if
(
response
.
code
==
0
)
{
this
.
msgSuccess
(
response
.
msg
);
}
this
.
loading
=
false
;
});
},
//拒绝操作提交
handleReject
()
{
const
id
=
this
.
form
.
retreat
.
info
.
id
this
.
loading
=
true
;
this
.
submitParam
.
event_id
=
id
this
.
submitParam
.
act
=
"reject"
retreatSubmit
(
this
.
submitParam
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
msgSuccess
(
response
.
msg
);
}
// console.log("拒绝提交返回", response)
this
.
loading
=
false
;
});
},
/** 同意按钮操作 */
handleagree
()
{
const
id
=
this
.
form
.
retreat
.
info
.
id
this
.
loading
=
true
;
this
.
submitParam
.
event_id
=
id
// this.submitParam.money=id
this
.
submitParam
.
act
=
"agree"
retreatSubmit
(
this
.
submitParam
).
then
(
response
=>
{
if
(
response
.
code
==
0
)
{
this
.
msgSuccess
(
response
.
msg
);
}
// console.log("确定提交返回",response)
this
.
loading
=
false
;
});
},
/** 查看详情 */
handleInfo
(
row
)
{
// this.loading = true;
// this.reset();
const
id
=
row
.
refund_sn
getRetreat
(
id
).
then
(
response
=>
{
this
.
loading
=
false
;
//console.log("000", response.data)
this
.
form
.
order
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"售后申请信息详情"
;
});
},
// 取消关闭 详情对话框
handleCancel
()
{
this
.
open
=
false
;
},
//
userNeedChange
(
val
)
{
if
(
val
===
''
)
{
this
.
queryParams
.
userNeed
=
null
;
}
},
needMsgChange
(
val
)
{
if
(
val
===
''
)
{
this
.
queryParams
.
needMsg
=
null
;
}
},
processDesChange
(
val
)
{
if
(
val
===
''
)
{
this
.
queryParams
.
processDes
=
null
;
}
}
}
//methods结束
};
</
script
>
<
style
scoped
lang=
"scss"
type=
"text/stylus"
>
/
deep
/
.queryFormInline
{
.el-form-item
{
margin-bottom
:
5px
;
}
}
</
style
>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论