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
cfbc2ed7
authored
Aug 23, 2023
by
YunaiV
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
code review:订单列表、订单详情
parent
69a66b2a
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
116 additions
and
90 deletions
+116
-90
src/api/mall/promotion/bargain/bargainActivity.ts
+1
-1
src/utils/dict.ts
+4
-6
src/views/mall/promotion/bargain/activity/BargainActivityForm.vue
+3
-3
src/views/mall/trade/order/components/DeliveryOrderForm.vue
+4
-1
src/views/mall/trade/order/components/OrderAdjustAddressForm.vue
+2
-0
src/views/mall/trade/order/components/OrderAdjustPriceForm.vue
+1
-0
src/views/mall/trade/order/components/OrderDetailForm.vue
+12
-10
src/views/mall/trade/order/components/OrderRemarksForm.vue
+1
-0
src/views/mall/trade/order/index.vue
+86
-67
src/views/member/user/UserForm.vue
+1
-1
src/views/pay/order/index.vue
+1
-1
No files found.
src/api/mall/promotion/bargain/bargainActivity.ts
View file @
cfbc2ed7
...
@@ -20,7 +20,7 @@ export interface BargainActivityVO {
...
@@ -20,7 +20,7 @@ export interface BargainActivityVO {
successCount
?:
number
// 砍价成功数量
successCount
?:
number
// 砍价成功数量
}
}
// 砍价活动所需属性。
选择的商品和属性的时候使用方便使用活动的通用封装
// 砍价活动所需属性。选择的商品和属性的时候使用方便使用活动的通用封装
export
interface
BargainProductVO
{
export
interface
BargainProductVO
{
spuId
:
number
spuId
:
number
skuId
:
number
skuId
:
number
...
...
src/utils/dict.ts
View file @
cfbc2ed7
...
@@ -90,6 +90,7 @@ export enum DICT_TYPE {
...
@@ -90,6 +90,7 @@ export enum DICT_TYPE {
USER_TYPE
=
'user_type'
,
USER_TYPE
=
'user_type'
,
COMMON_STATUS
=
'common_status'
,
COMMON_STATUS
=
'common_status'
,
SYSTEM_TENANT_PACKAGE_ID
=
'system_tenant_package_id'
,
SYSTEM_TENANT_PACKAGE_ID
=
'system_tenant_package_id'
,
TERMINAL
=
'terminal'
,
// 终端
// ========== SYSTEM 模块 ==========
// ========== SYSTEM 模块 ==========
SYSTEM_USER_SEX
=
'system_user_sex'
,
SYSTEM_USER_SEX
=
'system_user_sex'
,
...
@@ -130,7 +131,7 @@ export enum DICT_TYPE {
...
@@ -130,7 +131,7 @@ export enum DICT_TYPE {
BPM_OA_LEAVE_TYPE
=
'bpm_oa_leave_type'
,
BPM_OA_LEAVE_TYPE
=
'bpm_oa_leave_type'
,
// ========== PAY 模块 ==========
// ========== PAY 模块 ==========
PAY_CHANNEL_CODE
_TYPE
=
'pay_channel_code_typ
e'
,
// 支付渠道编码类型
PAY_CHANNEL_CODE
=
'pay_channel_cod
e'
,
// 支付渠道编码类型
PAY_ORDER_STATUS
=
'pay_order_status'
,
// 商户支付订单状态
PAY_ORDER_STATUS
=
'pay_order_status'
,
// 商户支付订单状态
PAY_REFUND_STATUS
=
'pay_refund_status'
,
// 退款订单状态
PAY_REFUND_STATUS
=
'pay_refund_status'
,
// 退款订单状态
PAY_NOTIFY_STATUS
=
'pay_notify_status'
,
// 商户支付回调状态
PAY_NOTIFY_STATUS
=
'pay_notify_status'
,
// 商户支付回调状态
...
@@ -155,7 +156,7 @@ export enum DICT_TYPE {
...
@@ -155,7 +156,7 @@ export enum DICT_TYPE {
TRADE_ORDER_TYPE
=
'trade_order_type'
,
// 订单 - 类型
TRADE_ORDER_TYPE
=
'trade_order_type'
,
// 订单 - 类型
TRADE_ORDER_STATUS
=
'trade_order_status'
,
// 订单 - 状态
TRADE_ORDER_STATUS
=
'trade_order_status'
,
// 订单 - 状态
TRADE_ORDER_ITEM_AFTER_SALE_STATUS
=
'trade_order_item_after_sale_status'
,
// 订单项 - 售后状态
TRADE_ORDER_ITEM_AFTER_SALE_STATUS
=
'trade_order_item_after_sale_status'
,
// 订单项 - 售后状态
T
ERMINAL
=
'terminal'
,
// 终端
T
RADE_DELIVERY_TYPE
=
'trade_delivery_type'
,
// 配送方式
// ========== MALL - 营销模块 ==========
// ========== MALL - 营销模块 ==========
PROMOTION_DISCOUNT_TYPE
=
'promotion_discount_type'
,
// 优惠类型
PROMOTION_DISCOUNT_TYPE
=
'promotion_discount_type'
,
// 优惠类型
...
@@ -164,8 +165,5 @@ export enum DICT_TYPE {
...
@@ -164,8 +165,5 @@ export enum DICT_TYPE {
PROMOTION_COUPON_STATUS
=
'promotion_coupon_status'
,
// 优惠劵的状态
PROMOTION_COUPON_STATUS
=
'promotion_coupon_status'
,
// 优惠劵的状态
PROMOTION_COUPON_TAKE_TYPE
=
'promotion_coupon_take_type'
,
// 优惠劵的领取方式
PROMOTION_COUPON_TAKE_TYPE
=
'promotion_coupon_take_type'
,
// 优惠劵的领取方式
PROMOTION_ACTIVITY_STATUS
=
'promotion_activity_status'
,
// 优惠活动的状态
PROMOTION_ACTIVITY_STATUS
=
'promotion_activity_status'
,
// 优惠活动的状态
PROMOTION_CONDITION_TYPE
=
'promotion_condition_type'
,
// 营销的条件类型枚举
PROMOTION_CONDITION_TYPE
=
'promotion_condition_type'
// 营销的条件类型枚举
// ========== MALL - 物流模块 ==========
DELIVERY_TYPE
=
'delivery_type'
// 配送方式
}
}
src/views/mall/promotion/bargain/activity/BargainActivityForm.vue
View file @
cfbc2ed7
...
@@ -83,17 +83,17 @@ const ruleConfig: RuleConfig[] = [
...
@@ -83,17 +83,17 @@ const ruleConfig: RuleConfig[] = [
{
{
name
:
'productConfig.bargainFirstPrice'
,
name
:
'productConfig.bargainFirstPrice'
,
rule
:
(
arg
)
=>
arg
>
0
,
rule
:
(
arg
)
=>
arg
>
0
,
message
:
'商品砍价起始价格不能小于0 !!!'
message
:
'商品砍价起始价格不能小于
0 !!!'
},
},
{
{
name
:
'productConfig.bargainPrice'
,
name
:
'productConfig.bargainPrice'
,
rule
:
(
arg
)
=>
arg
>=
0
,
rule
:
(
arg
)
=>
arg
>=
0
,
message
:
'商品砍价底价不能小于0 !!!'
message
:
'商品砍价底价不能小于
0 !!!'
},
},
{
{
name
:
'productConfig.stock'
,
name
:
'productConfig.stock'
,
rule
:
(
arg
)
=>
arg
>=
1
,
rule
:
(
arg
)
=>
arg
>=
1
,
message
:
'商品活动库存不能小于1 !!!'
message
:
'商品活动库存不能小于
1 !!!'
}
}
]
]
const
selectSpu
=
(
spuId
:
number
,
skuIds
:
number
[])
=>
{
const
selectSpu
=
(
spuId
:
number
,
skuIds
:
number
[])
=>
{
...
...
src/views/mall/trade/order/components/DeliveryOrderForm.vue
View file @
cfbc2ed7
...
@@ -33,6 +33,7 @@
...
@@ -33,6 +33,7 @@
import
*
as
DeliveryExpressApi
from
'@/api/mall/trade/delivery/express'
import
*
as
DeliveryExpressApi
from
'@/api/mall/trade/delivery/express'
import
*
as
TradeOrderApi
from
'@/api/mall/trade/order'
import
*
as
TradeOrderApi
from
'@/api/mall/trade/order'
// TODO @puhui999:是不是名字叫 OrderDeliveryForm 保持统一
defineOptions
({
name
:
'DeliveryOrderForm'
})
defineOptions
({
name
:
'DeliveryOrderForm'
})
const
{
t
}
=
useI18n
()
// 国际化
const
{
t
}
=
useI18n
()
// 国际化
...
@@ -40,7 +41,7 @@ const message = useMessage() // 消息弹窗
...
@@ -40,7 +41,7 @@ const message = useMessage() // 消息弹窗
const
dialogVisible
=
ref
(
false
)
// 弹窗的是否展示
const
dialogVisible
=
ref
(
false
)
// 弹窗的是否展示
const
formLoading
=
ref
(
false
)
// 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
const
formLoading
=
ref
(
false
)
// 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
const
radio
=
ref
(
'1'
)
const
radio
=
ref
(
'1'
)
// TODO @puhui999:尽量不用 radio 这种命名,无业务含义。这里的话,可以考虑用 expressType,如果值是 express,则是快递;none 则是无;未来做同城配送,就比较容易拓展啦;
const
formData
=
ref
<
TradeOrderApi
.
DeliveryVO
>
({
const
formData
=
ref
<
TradeOrderApi
.
DeliveryVO
>
({
id
:
0
,
// 订单编号
id
:
0
,
// 订单编号
logisticsId
:
null
,
// 物流公司编号
logisticsId
:
null
,
// 物流公司编号
...
@@ -48,6 +49,7 @@ const formData = ref<TradeOrderApi.DeliveryVO>({
...
@@ -48,6 +49,7 @@ const formData = ref<TradeOrderApi.DeliveryVO>({
})
})
const
formRef
=
ref
()
// 表单 Ref
const
formRef
=
ref
()
// 表单 Ref
// TODO @puhui999:每次点击发货的时候,是不是可以把之前的信息带过来哈。
/** 打开弹窗 */
/** 打开弹窗 */
const
open
=
async
(
orderId
:
number
)
=>
{
const
open
=
async
(
orderId
:
number
)
=>
{
resetForm
()
resetForm
()
...
@@ -65,6 +67,7 @@ const submitForm = async () => {
...
@@ -65,6 +67,7 @@ const submitForm = async () => {
try
{
try
{
const
data
=
unref
(
formData
)
const
data
=
unref
(
formData
)
if
(
radio
.
value
===
'2'
)
{
if
(
radio
.
value
===
'2'
)
{
// 无需发货的情况
data
.
logisticsId
=
0
data
.
logisticsId
=
0
data
.
logisticsNo
=
''
data
.
logisticsNo
=
''
}
}
...
...
src/views/mall/trade/order/components/OrderAdjustAddressForm.vue
View file @
cfbc2ed7
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
<el-form-item
label=
"收件人手机"
>
<el-form-item
label=
"收件人手机"
>
<el-input
v-model=
"formData.receiverMobile"
/>
<el-input
v-model=
"formData.receiverMobile"
/>
</el-form-item>
</el-form-item>
<!-- TODO @puhui999:应该是个地区下拉框,可以看下 UserForm 所在地 -->
<el-form-item
label=
"收件人地区编号"
>
<el-form-item
label=
"收件人地区编号"
>
<el-input
v-model=
"formData.receiverAreaId"
/>
<el-input
v-model=
"formData.receiverAreaId"
/>
</el-form-item>
</el-form-item>
...
@@ -24,6 +25,7 @@
...
@@ -24,6 +25,7 @@
import
*
as
TradeOrderApi
from
'@/api/mall/trade/order'
import
*
as
TradeOrderApi
from
'@/api/mall/trade/order'
import
{
copyValueToTarget
}
from
'@/utils'
import
{
copyValueToTarget
}
from
'@/utils'
// TODO @puhui999:OrderAdjustAddressForm 改成 OrderUpdateAddressForm 更新哈,保持统一;
defineOptions
({
name
:
'OrderAdjustAddressForm'
})
defineOptions
({
name
:
'OrderAdjustAddressForm'
})
const
{
t
}
=
useI18n
()
// 国际化
const
{
t
}
=
useI18n
()
// 国际化
...
...
src/views/mall/trade/order/components/OrderAdjustPriceForm.vue
View file @
cfbc2ed7
...
@@ -23,6 +23,7 @@ import * as TradeOrderApi from '@/api/mall/trade/order'
...
@@ -23,6 +23,7 @@ import * as TradeOrderApi from '@/api/mall/trade/order'
import
{
convertToInteger
,
formatToFraction
}
from
'@/utils'
import
{
convertToInteger
,
formatToFraction
}
from
'@/utils'
import
{
cloneDeep
}
from
'lodash-es'
import
{
cloneDeep
}
from
'lodash-es'
// TODO @puhui999:OrderAdjustPriceForm 改成 OrderUpdatePriceForm 更新哈,保持统一;
defineOptions
({
name
:
'OrderAdjustPriceForm'
})
defineOptions
({
name
:
'OrderAdjustPriceForm'
})
const
{
t
}
=
useI18n
()
// 国际化
const
{
t
}
=
useI18n
()
// 国际化
...
...
src/views/mall/trade/order/components/OrderDetailForm.vue
View file @
cfbc2ed7
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
<el-descriptions
title=
"订单信息"
>
<el-descriptions
title=
"订单信息"
>
<el-descriptions-item
label=
"订单号: "
>
{{
orderInfo
.
no
}}
</el-descriptions-item>
<el-descriptions-item
label=
"订单号: "
>
{{
orderInfo
.
no
}}
</el-descriptions-item>
<el-descriptions-item
label=
"配送方式: "
>
<el-descriptions-item
label=
"配送方式: "
>
<dict-tag
:type=
"DICT_TYPE.DELIVERY_TYPE"
:value=
"orderInfo.deliveryType"
/>
<dict-tag
:type=
"DICT_TYPE.
TRADE_
DELIVERY_TYPE"
:value=
"orderInfo.deliveryType"
/>
</el-descriptions-item>
</el-descriptions-item>
<!-- TODO 营销活动待实现 -->
<!-- TODO 营销活动待实现 -->
<el-descriptions-item
label=
"营销活动: "
>
秒杀活动
</el-descriptions-item>
<el-descriptions-item
label=
"营销活动: "
>
秒杀活动
</el-descriptions-item>
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
<el-descriptions-item
label=
"商家备注: "
>
{{
orderInfo
.
remark
}}
</el-descriptions-item>
<el-descriptions-item
label=
"商家备注: "
>
{{
orderInfo
.
remark
}}
</el-descriptions-item>
<el-descriptions-item
label=
"支付单号: "
>
{{
orderInfo
.
payOrderId
}}
</el-descriptions-item>
<el-descriptions-item
label=
"支付单号: "
>
{{
orderInfo
.
payOrderId
}}
</el-descriptions-item>
<el-descriptions-item
label=
"付款方式: "
>
<el-descriptions-item
label=
"付款方式: "
>
<dict-tag
:type=
"DICT_TYPE.PAY_CHANNEL_CODE
_TYPE
"
:value=
"orderInfo.payChannelCode"
/>
<dict-tag
:type=
"DICT_TYPE.PAY_CHANNEL_CODE"
:value=
"orderInfo.payChannelCode"
/>
</el-descriptions-item>
</el-descriptions-item>
<!--
<el-descriptions-item
label=
"买家: "
>
{{
orderInfo
.
user
.
nickname
}}
</el-descriptions-item>
-->
<!--
<el-descriptions-item
label=
"买家: "
>
{{
orderInfo
.
user
.
nickname
}}
</el-descriptions-item>
-->
<!-- TODO 芋艿:待实现:跳转会员 -->
<!-- TODO 芋艿:待实现:跳转会员 -->
...
@@ -41,14 +41,10 @@
...
@@ -41,14 +41,10 @@
<dict-tag
:type=
"DICT_TYPE.TRADE_ORDER_STATUS"
:value=
"orderInfo.status"
/>
<dict-tag
:type=
"DICT_TYPE.TRADE_ORDER_STATUS"
:value=
"orderInfo.status"
/>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label-class-name=
"no-colon"
>
<el-descriptions-item
label-class-name=
"no-colon"
>
<el-button
size=
"small"
type=
"primary"
@
click=
"openForm('adjustPrice')"
>
调整价格
</el-button>
<el-button
type=
"primary"
@
click=
"openForm('adjustPrice')"
>
调整价格
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"openForm('remark')"
>
备注
</el-button>
<el-button
type=
"primary"
@
click=
"openForm('remark')"
>
备注
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"openForm('delivery')"
>
发货
</el-button>
<el-button
type=
"primary"
@
click=
"openForm('delivery')"
>
发货
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"openForm('adjustAddress')"
>
<el-button
type=
"primary"
@
click=
"openForm('adjustAddress')"
>
修改地址
</el-button>
修改地址
</el-button>
<!-- TODO 后台商家也需要收货功能吗? -->
<el-button
size=
"small"
type=
"primary"
>
确认收货
</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
>
...
@@ -201,6 +197,8 @@
...
@@ -201,6 +197,8 @@
</el-descriptions>
</el-descriptions>
</div>
</div>
</ContentWrap>
</ContentWrap>
<!-- 各种操作的弹窗 -->
<DeliveryOrderForm
ref=
"deliveryFormRef"
@
success=
"getDetail"
/>
<DeliveryOrderForm
ref=
"deliveryFormRef"
@
success=
"getDetail"
/>
<OrderRemarksForm
ref=
"remarksFormRef"
@
success=
"getDetail"
/>
<OrderRemarksForm
ref=
"remarksFormRef"
@
success=
"getDetail"
/>
<OrderAdjustAddressForm
ref=
"adjustAddressFormRef"
@
success=
"getDetail"
/>
<OrderAdjustAddressForm
ref=
"adjustAddressFormRef"
@
success=
"getDetail"
/>
...
@@ -215,10 +213,12 @@ import DeliveryOrderForm from '@/views/mall/trade/order/components/DeliveryOrder
...
@@ -215,10 +213,12 @@ import DeliveryOrderForm from '@/views/mall/trade/order/components/DeliveryOrder
import
OrderAdjustAddressForm
from
'@/views/mall/trade/order/components/OrderAdjustAddressForm.vue'
import
OrderAdjustAddressForm
from
'@/views/mall/trade/order/components/OrderAdjustAddressForm.vue'
import
OrderAdjustPriceForm
from
'@/views/mall/trade/order/components/OrderAdjustPriceForm.vue'
import
OrderAdjustPriceForm
from
'@/views/mall/trade/order/components/OrderAdjustPriceForm.vue'
// TODO @puhui999:TradeOrderDetailForm 可以挪到 order/detail/index.vue 中,它是一个 vue 界面哈。
defineOptions
({
name
:
'TradeOrderDetailForm'
})
defineOptions
({
name
:
'TradeOrderDetailForm'
})
const
message
=
useMessage
()
// 消息弹窗
const
message
=
useMessage
()
// 消息弹窗
const
{
params
}
=
useRoute
()
// 查询参数
const
{
params
}
=
useRoute
()
// 查询参数
// TODO @puhui999:orderInfo 应该不用把属性弄出来也;
const
orderInfo
=
ref
<
TradeOrderApi
.
OrderVO
>
({
const
orderInfo
=
ref
<
TradeOrderApi
.
OrderVO
>
({
no
:
''
,
no
:
''
,
createTime
:
null
,
createTime
:
null
,
...
@@ -263,6 +263,7 @@ const orderInfo = ref<TradeOrderApi.OrderVO>({
...
@@ -263,6 +263,7 @@ const orderInfo = ref<TradeOrderApi.OrderVO>({
user
:
{}
user
:
{}
})
})
// TODO @puhui999:这个改成直接读属性,不用按照这种写法;
const
detailGroups
=
ref
([
const
detailGroups
=
ref
([
{
{
title
:
'物流信息'
,
title
:
'物流信息'
,
...
@@ -281,6 +282,7 @@ const detailGroups = ref([
...
@@ -281,6 +282,7 @@ const detailGroups = ref([
}
}
])
])
// TODO @puhui999:从后台读数据哈。
const
detailInfo
=
ref
({
const
detailInfo
=
ref
({
// 物流信息
// 物流信息
expressInfo
:
{
expressInfo
:
{
...
...
src/views/mall/trade/order/components/OrderRemarksForm.vue
View file @
cfbc2ed7
...
@@ -14,6 +14,7 @@
...
@@ -14,6 +14,7 @@
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
*
as
TradeOrderApi
from
'@/api/mall/trade/order'
import
*
as
TradeOrderApi
from
'@/api/mall/trade/order'
// TODO @puhui999:OrderRemarksForm 改成 OrderUpdateRemarkForm 更新哈,保持统一;
defineOptions
({
name
:
'OrderRemarksForm'
})
defineOptions
({
name
:
'OrderRemarksForm'
})
const
{
t
}
=
useI18n
()
// 国际化
const
{
t
}
=
useI18n
()
// 国际化
...
...
src/views/mall/trade/order/index.vue
View file @
cfbc2ed7
This diff is collapsed.
Click to expand it.
src/views/member/user/UserForm.vue
View file @
cfbc2ed7
...
@@ -70,7 +70,7 @@
...
@@ -70,7 +70,7 @@
<el-form-item
<el-form-item
label=
"修改原因"
label=
"修改原因"
prop=
"levelReason"
prop=
"levelReason"
v-if=
"formData.levelId != originLevelId"
v-if=
"formData.levelId !=
=
originLevelId"
>
>
<el-input
type=
"text"
v-model=
"formData.levelReason"
placeholder=
"请输入修改原因"
/>
<el-input
type=
"text"
v-model=
"formData.levelReason"
placeholder=
"请输入修改原因"
/>
</el-form-item>
</el-form-item>
...
...
src/views/pay/order/index.vue
View file @
cfbc2ed7
...
@@ -29,7 +29,7 @@
...
@@ -29,7 +29,7 @@
class=
"!w-240px"
class=
"!w-240px"
>
>
<el-option
<el-option
v-for=
"dict in getStrDictOptions(DICT_TYPE.PAY_CHANNEL_CODE
_TYPE
)"
v-for=
"dict in getStrDictOptions(DICT_TYPE.PAY_CHANNEL_CODE)"
:key=
"dict.value"
:key=
"dict.value"
:label=
"dict.label"
:label=
"dict.label"
:value=
"dict.value"
:value=
"dict.value"
...
...
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