Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
f5a17724
authored
Aug 31, 2023
by
puhui999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
订单售后列表:完善部分 TODO
parent
29b8d06f
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
82 additions
and
47 deletions
+82
-47
src/views/mall/trade/afterSale/detail/index.vue
+75
-39
src/views/mall/trade/afterSale/form/AfterSaleDisagreeForm.vue
+1
-2
src/views/mall/trade/order/detail/index.vue
+4
-4
src/views/mall/trade/order/form/OrderDeliveryForm.vue
+0
-0
src/views/mall/trade/order/form/OrderUpdateAddressForm.vue
+0
-0
src/views/mall/trade/order/form/OrderUpdatePriceForm.vue
+0
-0
src/views/mall/trade/order/form/OrderUpdateRemarkForm.vue
+0
-0
src/views/mall/trade/order/index.vue
+2
-2
No files found.
src/views/mall/trade/afterSale/detail/index.vue
View file @
f5a17724
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
<el-descriptions-item
label=
"配送方式: "
>
<el-descriptions-item
label=
"配送方式: "
>
<dict-tag
:type=
"DICT_TYPE.TRADE_DELIVERY_TYPE"
:value=
"formData.order.deliveryType"
/>
<dict-tag
:type=
"DICT_TYPE.TRADE_DELIVERY_TYPE"
:value=
"formData.order.deliveryType"
/>
</el-descriptions-item>
</el-descriptions-item>
<!-- TODO 营销活动待实现 -->
<el-descriptions-item
label=
"订单类型: "
>
<el-descriptions-item
label=
"订单类型: "
>
<dict-tag
:type=
"DICT_TYPE.TRADE_ORDER_TYPE"
:value=
"formData.order.type"
/>
<dict-tag
:type=
"DICT_TYPE.TRADE_ORDER_TYPE"
:value=
"formData.order.type"
/>
</el-descriptions-item>
</el-descriptions-item>
...
@@ -38,21 +39,28 @@
...
@@ -38,21 +39,28 @@
<el-descriptions-item
label=
"申请时间: "
>
<el-descriptions-item
label=
"申请时间: "
>
{{
formatDate
(
formData
.
auditTime
)
}}
{{
formatDate
(
formData
.
auditTime
)
}}
</el-descriptions-item>
</el-descriptions-item>
<!-- TODO 营销活动待实现 -->
<el-descriptions-item
label=
"售后类型: "
>
<el-descriptions-item
label=
"售后类型: "
>
<dict-tag
:type=
"DICT_TYPE.TRADE_AFTER_SALE_TYPE"
:value=
"formData.type"
/>
<dict-tag
:type=
"DICT_TYPE.TRADE_AFTER_SALE_TYPE"
:value=
"formData.type"
/>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"售后方式: "
>
<el-descriptions-item
label=
"售后方式: "
>
<dict-tag
:type=
"DICT_TYPE.TRADE_AFTER_SALE_WAY"
:value=
"formData.way"
/>
<dict-tag
:type=
"DICT_TYPE.TRADE_AFTER_SALE_WAY"
:value=
"formData.way"
/>
</el-descriptions-item>
</el-descriptions-item>
<!-- TODO @puhui999:金额的格式化 -->
<el-descriptions-item
label=
"退款金额: "
>
<el-descriptions-item
label=
"退款金额: "
>
{{
formData
.
refundPrice
}}
</el-descriptions-item>
{{
floatToFixed2
(
formData
.
refundPrice
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"退款原因: "
>
{{
formData
.
applyReason
}}
</el-descriptions-item>
<el-descriptions-item
label=
"退款原因: "
>
{{
formData
.
applyReason
}}
</el-descriptions-item>
<el-descriptions-item
label=
"补充描述: "
>
<el-descriptions-item
label=
"补充描述: "
>
{{
formData
.
applyDescription
}}
{{
formData
.
applyDescription
}}
</el-descriptions-item>
</el-descriptions-item>
<!-- TODO @puhui999:数组,图片 -->
<el-descriptions-item
label=
"凭证图片: "
>
<el-descriptions-item
label=
"凭证图片: "
>
{{
formData
.
applyPicUrls
}}
</el-descriptions-item>
<el-image
v-for=
"(item, index) in formData.applyPicUrls"
:key=
"index"
:src=
"item.url"
class=
"w-60px h-60px mr-10px"
@
click=
"imagePreview(formData.applyPicUrls)"
/>
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
<!-- 退款状态 -->
<!-- 退款状态 -->
...
@@ -60,13 +68,16 @@
...
@@ -60,13 +68,16 @@
<el-descriptions-item
label=
"退款状态: "
>
<el-descriptions-item
label=
"退款状态: "
>
<dict-tag
:type=
"DICT_TYPE.TRADE_AFTER_SALE_STATUS"
:value=
"formData.status"
/>
<dict-tag
:type=
"DICT_TYPE.TRADE_AFTER_SALE_STATUS"
:value=
"formData.status"
/>
</el-descriptions-item>
</el-descriptions-item>
<!-- TODO @puhui999:不同状态,展示不同按钮 -->
<el-descriptions-item
label-class-name=
"no-colon"
>
<el-descriptions-item
label-class-name=
"no-colon"
>
<el-button
type=
"primary"
@
click=
"openForm('agree')"
>
同意售后
</el-button>
<el-button
v-if=
"formData.status === 10"
type=
"primary"
@
click=
"agree"
>
同意售后
</el-button>
<el-button
type=
"primary"
@
click=
"openForm('disagree')"
>
拒绝售后
</el-button>
<el-button
v-if=
"formData.status === 10"
type=
"primary"
@
click=
"disagree"
>
<el-button
type=
"primary"
@
click=
"openForm('receive')"
>
确认收货
</el-button>
拒绝售后
<el-button
type=
"primary"
@
click=
"openForm('refuse')"
>
拒绝收货
</el-button>
</el-button>
<el-button
type=
"primary"
@
click=
"openForm('refund')"
>
确认退款
</el-button>
<el-button
v-if=
"formData.status === 30"
type=
"primary"
@
click=
"receive"
>
确认收货
</el-button>
<el-button
v-if=
"formData.status === 30"
type=
"primary"
@
click=
"refuse"
>
拒绝收货
</el-button>
<el-button
v-if=
"formData.status === 40"
type=
"primary"
@
click=
"refund"
>
确认退款
</el-button>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item>
<el-descriptions-item>
<template
#
label
><span
style=
"color: red"
>
提醒:
</span></
template
>
<template
#
label
><span
style=
"color: red"
>
提醒:
</span></
template
>
...
@@ -123,7 +134,9 @@ import * as AfterSaleApi from '@/api/mall/trade/afterSale/index'
...
@@ -123,7 +134,9 @@ import * as AfterSaleApi from '@/api/mall/trade/afterSale/index'
import
{
floatToFixed2
}
from
'@/utils'
import
{
floatToFixed2
}
from
'@/utils'
import
{
DICT_TYPE
}
from
'@/utils/dict'
import
{
DICT_TYPE
}
from
'@/utils/dict'
import
{
formatDate
}
from
'@/utils/formatTime'
import
{
formatDate
}
from
'@/utils/formatTime'
import
UpdateAuditReasonForm
from
'@/views/mall/trade/afterSale/components/UpdateAuditReasonForm.vue'
import
UpdateAuditReasonForm
from
'@/views/mall/trade/afterSale/form/AfterSaleDisagreeForm.vue'
import
{
createImageViewer
}
from
'@/components/ImageViewer'
import
{
isArray
}
from
'@/utils/is'
defineOptions
({
name
:
'TradeOrderDetailForm'
})
defineOptions
({
name
:
'TradeOrderDetailForm'
})
...
@@ -141,34 +154,57 @@ const getDetail = async () => {
...
@@ -141,34 +154,57 @@ const getDetail = async () => {
formData
.
value
=
await
AfterSaleApi
.
getAfterSale
(
id
)
formData
.
value
=
await
AfterSaleApi
.
getAfterSale
(
id
)
}
}
}
}
/**
/** 各种操作 TODO @puhui999:是不是每个一个方法好点,干净点 */
* 同意售后
const
openForm
=
(
type
:
string
)
=>
{
*/
switch
(
type
)
{
const
agree
=
()
=>
{
case
'agree'
:
message
.
confirm
(
'是否同意售后?'
).
then
(()
=>
{
message
.
confirm
(
'是否同意售后?'
).
then
(()
=>
{
AfterSaleApi
.
agree
(
formData
.
value
.
id
)
AfterSaleApi
.
agree
(
formData
.
value
.
id
)
})
})
}
break
/**
case
'disagree'
:
* 拒绝售后
updateAuditReasonFormRef
.
value
?.
open
(
formData
.
value
)
*/
break
const
disagree
=
()
=>
{
case
'receive'
:
updateAuditReasonFormRef
.
value
?.
open
(
formData
.
value
)
message
.
confirm
(
'是否确认收货?'
).
then
(()
=>
{
}
AfterSaleApi
.
receive
(
formData
.
value
.
id
)
/**
})
* 确认收货
break
*/
case
'refuse'
:
const
receive
=
()
=>
{
message
.
confirm
(
'是否拒绝收货?'
).
then
(()
=>
{
message
.
confirm
(
'是否确认收货?'
).
then
(()
=>
{
AfterSaleApi
.
refuse
(
formData
.
value
.
id
)
AfterSaleApi
.
receive
(
formData
.
value
.
id
)
})
})
break
}
case
'refund'
:
/**
message
.
confirm
(
'是否确认退款?'
).
then
(()
=>
{
* 拒绝收货
AfterSaleApi
.
refund
(
formData
.
value
.
id
)
*/
})
const
refuse
=
()
=>
{
break
message
.
confirm
(
'是否拒绝收货?'
).
then
(()
=>
{
AfterSaleApi
.
refuse
(
formData
.
value
.
id
)
})
}
/**
* 确认退款
*/
const
refund
=
()
=>
{
message
.
confirm
(
'是否确认退款?'
).
then
(()
=>
{
AfterSaleApi
.
refund
(
formData
.
value
.
id
)
})
}
/** 图片预览 */
const
imagePreview
=
(
args
)
=>
{
const
urlList
=
[]
if
(
isArray
(
args
))
{
args
.
forEach
((
item
)
=>
{
urlList
.
push
(
item
.
url
)
})
}
else
{
urlList
.
push
(
args
)
}
}
createImageViewer
({
urlList
})
}
}
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
await
getDetail
()
await
getDetail
()
...
...
src/views/mall/trade/afterSale/
components/UpdateAuditReason
Form.vue
→
src/views/mall/trade/afterSale/
form/AfterSaleDisagree
Form.vue
View file @
f5a17724
...
@@ -19,8 +19,7 @@
...
@@ -19,8 +19,7 @@
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
*
as
AfterSaleApi
from
'@/api/mall/trade/afterSale/index'
import
*
as
AfterSaleApi
from
'@/api/mall/trade/afterSale/index'
// TODO @puhui999:是不是改成 AfterSaleDisagreeForm ,更明确
defineOptions
({
name
:
'AfterSaleDisagreeForm'
})
defineOptions
({
name
:
'UpdateAuditReasonForm'
})
const
{
t
}
=
useI18n
()
// 国际化
const
{
t
}
=
useI18n
()
// 国际化
const
message
=
useMessage
()
// 消息弹窗
const
message
=
useMessage
()
// 消息弹窗
...
...
src/views/mall/trade/order/detail/index.vue
View file @
f5a17724
...
@@ -208,10 +208,10 @@
...
@@ -208,10 +208,10 @@
import
*
as
TradeOrderApi
from
'@/api/mall/trade/order'
import
*
as
TradeOrderApi
from
'@/api/mall/trade/order'
import
{
floatToFixed2
}
from
'@/utils'
import
{
floatToFixed2
}
from
'@/utils'
import
{
DICT_TYPE
}
from
'@/utils/dict'
import
{
DICT_TYPE
}
from
'@/utils/dict'
import
OrderUpdateRemarkForm
from
'@/views/mall/trade/order/
components
/OrderUpdateRemarkForm.vue'
import
OrderUpdateRemarkForm
from
'@/views/mall/trade/order/
form
/OrderUpdateRemarkForm.vue'
import
OrderDeliveryForm
from
'@/views/mall/trade/order/
components
/OrderDeliveryForm.vue'
import
OrderDeliveryForm
from
'@/views/mall/trade/order/
form
/OrderDeliveryForm.vue'
import
OrderUpdateAddressForm
from
'@/views/mall/trade/order/
components
/OrderUpdateAddressForm.vue'
import
OrderUpdateAddressForm
from
'@/views/mall/trade/order/
form
/OrderUpdateAddressForm.vue'
import
OrderUpdatePriceForm
from
'@/views/mall/trade/order/
components
/OrderUpdatePriceForm.vue'
import
OrderUpdatePriceForm
from
'@/views/mall/trade/order/
form
/OrderUpdatePriceForm.vue'
defineOptions
({
name
:
'TradeOrderDetailForm'
})
defineOptions
({
name
:
'TradeOrderDetailForm'
})
...
...
src/views/mall/trade/order/
components
/OrderDeliveryForm.vue
→
src/views/mall/trade/order/
form
/OrderDeliveryForm.vue
View file @
f5a17724
File moved
src/views/mall/trade/order/
components
/OrderUpdateAddressForm.vue
→
src/views/mall/trade/order/
form
/OrderUpdateAddressForm.vue
View file @
f5a17724
File moved
src/views/mall/trade/order/
components
/OrderUpdatePriceForm.vue
→
src/views/mall/trade/order/
form
/OrderUpdatePriceForm.vue
View file @
f5a17724
File moved
src/views/mall/trade/order/
components
/OrderUpdateRemarkForm.vue
→
src/views/mall/trade/order/
form
/OrderUpdateRemarkForm.vue
View file @
f5a17724
File moved
src/views/mall/trade/order/index.vue
View file @
f5a17724
...
@@ -309,8 +309,8 @@
...
@@ -309,8 +309,8 @@
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
type
{
FormInstance
,
TableColumnCtx
}
from
'element-plus'
import
type
{
FormInstance
,
TableColumnCtx
}
from
'element-plus'
import
OrderDeliveryForm
from
'
./components
/OrderDeliveryForm.vue'
import
OrderDeliveryForm
from
'
@/views/mall/trade/order/form
/OrderDeliveryForm.vue'
import
OrderUpdateRemarkForm
from
'
./components
/OrderUpdateRemarkForm.vue'
import
OrderUpdateRemarkForm
from
'
@/views/mall/trade/order/form
/OrderUpdateRemarkForm.vue'
import
*
as
TradeOrderApi
from
'@/api/mall/trade/order'
import
*
as
TradeOrderApi
from
'@/api/mall/trade/order'
import
*
as
PickUpStoreApi
from
'@/api/mall/trade/delivery/pickUpStore'
import
*
as
PickUpStoreApi
from
'@/api/mall/trade/delivery/pickUpStore'
import
{
DICT_TYPE
,
getIntDictOptions
,
getStrDictOptions
}
from
'@/utils/dict'
import
{
DICT_TYPE
,
getIntDictOptions
,
getStrDictOptions
}
from
'@/utils/dict'
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment