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
03d2db39
authored
Jul 06, 2026
by
renyizhao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2026普惠算力平台优化建议表260702
parent
3499d263
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
351 additions
and
217 deletions
+351
-217
src/api/member/recharge/index.ts
+3
-0
src/views/compute/resourceorder/ResourceOrderDetail.vue
+93
-0
src/views/compute/resourceorder/index.vue
+230
-217
src/views/member/recharge/index.vue
+25
-0
No files found.
src/api/member/recharge/index.ts
View file @
03d2db39
...
@@ -50,5 +50,8 @@ export const MemberRechargeApi = {
...
@@ -50,5 +50,8 @@ export const MemberRechargeApi = {
},
},
getPendingCount
:
async
()
=>
{
getPendingCount
:
async
()
=>
{
return
request
.
get
({
url
:
'/member/recharge/pending-count'
})
return
request
.
get
({
url
:
'/member/recharge/pending-count'
})
},
exportRecharge
:
async
(
params
:
any
)
=>
{
return
await
request
.
download
({
url
:
'/member/recharge/export-excel'
,
params
})
}
}
}
}
src/views/compute/resourceorder/ResourceOrderDetail.vue
0 → 100644
View file @
03d2db39
<
template
>
<Dialog
title=
"订单详情"
v-model=
"dialogVisible"
width=
"720px"
>
<el-descriptions
:column=
"2"
border
v-loading=
"loading"
label-width=
"130px"
>
<el-descriptions-item
label=
"订单编号"
:span=
"2"
>
{{
detail
.
orderNo
}}
</el-descriptions-item>
<el-descriptions-item
label=
"下单用户手机号"
>
{{
detail
.
mobile
}}
</el-descriptions-item>
<el-descriptions-item
label=
"用户昵称"
>
{{
detail
.
nickname
||
'-'
}}
</el-descriptions-item>
<el-descriptions-item
label=
"算力资源名称"
>
{{
detail
.
spuName
}}
</el-descriptions-item>
<el-descriptions-item
label=
"订单状态"
>
<dict-tag
:type=
"DICT_TYPE.COMPUTE_RESOURCE_ORDER_STATUS"
:value=
"detail.status"
/>
</el-descriptions-item>
<el-descriptions-item
label=
"市场价格"
>
¥
{{
fenToYuan
(
detail
.
marketPrice
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"实付金额"
>
¥
{{
fenToYuan
(
detail
.
paymentPrice
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"支付渠道"
>
{{
detail
.
payChannelCode
}}
</el-descriptions-item>
<el-descriptions-item
label=
"支付时间"
>
{{
detail
.
payTime
?
formatDate
(
detail
.
payTime
)
:
'-'
}}
</el-descriptions-item>
<el-descriptions-item
label=
"租赁开始时间"
>
{{
detail
.
rentStartTime
?
formatDate
(
detail
.
rentStartTime
)
:
'-'
}}
</el-descriptions-item>
<el-descriptions-item
label=
"租赁结束时间"
>
{{
detail
.
rentEndTime
?
formatDate
(
detail
.
rentEndTime
)
:
'-'
}}
</el-descriptions-item>
<el-descriptions-item
label=
"取消时间"
>
{{
detail
.
cancelTime
?
formatDate
(
detail
.
cancelTime
)
:
'-'
}}
</el-descriptions-item>
<el-descriptions-item
label=
"退款状态"
>
<dict-tag
:type=
"DICT_TYPE.COMPUTE_RESOURCE_REFUND_STATUS"
:value=
"detail.refundStatus"
/>
</el-descriptions-item>
<el-descriptions-item
label=
"退款金额"
>
{{
detail
.
refundPrice
?
'¥'
+
fenToYuan
(
Number
(
detail
.
refundPrice
))
:
'-'
}}
</el-descriptions-item>
<el-descriptions-item
label=
"开票状态"
>
<dict-tag
:type=
"DICT_TYPE.TRADE_INVOICE_STATUS"
:value=
"detail.invoiceStatus"
/>
</el-descriptions-item>
<el-descriptions-item
label=
"发票链接"
:span=
"2"
>
<el-link
v-if=
"detail.invoiceUrl"
type=
"primary"
:href=
"detail.invoiceUrl"
target=
"_blank"
>
{{
detail
.
invoiceUrl
}}
</el-link>
<span
v-else
>
-
</span>
</el-descriptions-item>
<el-descriptions-item
label=
"备注"
:span=
"2"
>
{{
detail
.
remark
||
'-'
}}
</el-descriptions-item>
<el-descriptions-item
label=
"创建时间"
>
{{
detail
.
createTime
?
formatDate
(
detail
.
createTime
)
:
'-'
}}
</el-descriptions-item>
</el-descriptions>
<template
#
footer
>
<el-button
@
click=
"dialogVisible = false"
>
关 闭
</el-button>
</
template
>
</Dialog>
</template>
<
script
setup
lang=
"ts"
>
import
{
ResourceOrderApi
,
ResourceOrder
}
from
'@/api/compute/resourceorder'
import
{
DICT_TYPE
}
from
'@/utils/dict'
import
{
fenToYuan
}
from
'@/utils'
import
{
formatDate
}
from
'@/utils/formatTime'
/** 算力资源订单详情 */
defineOptions
({
name
:
'ResourceOrderDetail'
})
const
dialogVisible
=
ref
(
false
)
const
loading
=
ref
(
false
)
const
detail
=
ref
<
Partial
<
ResourceOrder
>>
({})
/** 打开弹窗 */
const
open
=
async
(
id
:
number
)
=>
{
dialogVisible
.
value
=
true
loading
.
value
=
true
try
{
detail
.
value
=
await
ResourceOrderApi
.
getResourceOrder
(
id
)
}
finally
{
loading
.
value
=
false
}
}
defineExpose
({
open
})
</
script
>
src/views/compute/resourceorder/index.vue
View file @
03d2db39
...
@@ -9,23 +9,23 @@
...
@@ -9,23 +9,23 @@
label-width=
"100px"
label-width=
"100px"
>
>
<!--
<el-form-item
label=
"下单用户ID"
prop=
"userId"
>
-->
<!--
<el-form-item
label=
"下单用户ID"
prop=
"userId"
>
-->
<!--
<el-input-->
<!--
<el-input-->
<!-- v-model="queryParams.userId"-->
<!-- v-model="queryParams.userId"-->
<!-- placeholder="请输入下单用户ID"-->
<!-- placeholder="请输入下单用户ID"-->
<!-- clearable-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- class="!w-240px"-->
<!-- />-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"算力资源SKU ID"
prop=
"skuId"
>
-->
<!--
<el-form-item
label=
"算力资源SKU ID"
prop=
"skuId"
>
-->
<!--
<el-input-->
<!--
<el-input-->
<!-- v-model="queryParams.skuId"-->
<!-- v-model="queryParams.skuId"-->
<!-- placeholder="请输入算力资源SKU ID"-->
<!-- placeholder="请输入算力资源SKU ID"-->
<!-- clearable-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- class="!w-240px"-->
<!-- />-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<el-form-item
label=
"算力资源名称"
prop=
"spuName"
>
<el-form-item
label=
"算力资源名称"
prop=
"spuName"
>
<el-input
<el-input
v-model=
"queryParams.spuName"
v-model=
"queryParams.spuName"
...
@@ -35,158 +35,158 @@
...
@@ -35,158 +35,158 @@
class=
"!w-240px"
class=
"!w-240px"
/>
/>
</el-form-item>
</el-form-item>
<!--
<el-form-item
label=
"订单编号"
prop=
"orderNo"
>
-->
<!--
<el-form-item
label=
"订单编号"
prop=
"orderNo"
>
-->
<!--
<el-input-->
<!--
<el-input-->
<!-- v-model="queryParams.orderNo"-->
<!-- v-model="queryParams.orderNo"-->
<!-- placeholder="请输入订单编号"-->
<!-- placeholder="请输入订单编号"-->
<!-- clearable-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- class="!w-240px"-->
<!-- />-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"订单状态"
prop=
"status"
>
-->
<!--
<el-form-item
label=
"订单状态"
prop=
"status"
>
-->
<!--
<el-select-->
<!--
<el-select-->
<!-- v-model="queryParams.status"-->
<!-- v-model="queryParams.status"-->
<!-- placeholder="请选择订单状态"-->
<!-- placeholder="请选择订单状态"-->
<!-- clearable-->
<!-- clearable-->
<!-- class="!w-240px"-->
<!-- class="!w-240px"-->
<!-- >-->
<!-- >-->
<!--
<el-option-->
<!--
<el-option-->
<!-- v-for="dict in getIntDictOptions(DICT_TYPE.COMPUTE_RESOURCE_ORDER_STATUS)"-->
<!-- v-for="dict in getIntDictOptions(DICT_TYPE.COMPUTE_RESOURCE_ORDER_STATUS)"-->
<!-- :key="dict.value"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- />-->
<!--
</el-select>
-->
<!--
</el-select>
-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"市场价格"
prop=
"marketPrice"
>
-->
<!--
<el-form-item
label=
"市场价格"
prop=
"marketPrice"
>
-->
<!--
<el-input-->
<!--
<el-input-->
<!-- v-model="queryParams.marketPrice"-->
<!-- v-model="queryParams.marketPrice"-->
<!-- placeholder="请输入市场价格"-->
<!-- placeholder="请输入市场价格"-->
<!-- clearable-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- class="!w-240px"-->
<!-- />-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"实付金额"
prop=
"paymentPrice"
>
-->
<!--
<el-form-item
label=
"实付金额"
prop=
"paymentPrice"
>
-->
<!--
<el-input-->
<!--
<el-input-->
<!-- v-model="queryParams.paymentPrice"-->
<!-- v-model="queryParams.paymentPrice"-->
<!-- placeholder="请输入实付金额"-->
<!-- placeholder="请输入实付金额"-->
<!-- clearable-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- class="!w-240px"-->
<!-- />-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"支付订单编号"
prop=
"payOrderId"
>
-->
<!--
<el-form-item
label=
"支付订单编号"
prop=
"payOrderId"
>
-->
<!--
<el-input-->
<!--
<el-input-->
<!-- v-model="queryParams.payOrderId"-->
<!-- v-model="queryParams.payOrderId"-->
<!-- placeholder="请输入支付订单编号"-->
<!-- placeholder="请输入支付订单编号"-->
<!-- clearable-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- class="!w-240px"-->
<!-- />-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"支付时间"
prop=
"payTime"
>
-->
<!--
<el-form-item
label=
"支付时间"
prop=
"payTime"
>
-->
<!--
<el-date-picker-->
<!--
<el-date-picker-->
<!-- v-model="queryParams.payTime"-->
<!-- v-model="queryParams.payTime"-->
<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
<!-- type="daterange"-->
<!-- type="daterange"-->
<!-- start-placeholder="开始日期"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- end-placeholder="结束日期"-->
<!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
<!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
<!-- class="!w-220px"-->
<!-- class="!w-220px"-->
<!-- />-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"支付渠道"
prop=
"payChannelCode"
>
-->
<!--
<el-form-item
label=
"支付渠道"
prop=
"payChannelCode"
>
-->
<!--
<el-input-->
<!--
<el-input-->
<!-- v-model="queryParams.payChannelCode"-->
<!-- v-model="queryParams.payChannelCode"-->
<!-- placeholder="请输入支付渠道"-->
<!-- placeholder="请输入支付渠道"-->
<!-- clearable-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- class="!w-240px"-->
<!-- />-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"租赁开始时间"
prop=
"rentStartTime"
>
-->
<!--
<el-form-item
label=
"租赁开始时间"
prop=
"rentStartTime"
>
-->
<!--
<el-date-picker-->
<!--
<el-date-picker-->
<!-- v-model="queryParams.rentStartTime"-->
<!-- v-model="queryParams.rentStartTime"-->
<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
<!-- type="daterange"-->
<!-- type="daterange"-->
<!-- start-placeholder="开始日期"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- end-placeholder="结束日期"-->
<!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
<!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
<!-- class="!w-220px"-->
<!-- class="!w-220px"-->
<!-- />-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"租赁结束时间"
prop=
"rentEndTime"
>
-->
<!--
<el-form-item
label=
"租赁结束时间"
prop=
"rentEndTime"
>
-->
<!--
<el-date-picker-->
<!--
<el-date-picker-->
<!-- v-model="queryParams.rentEndTime"-->
<!-- v-model="queryParams.rentEndTime"-->
<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
<!-- type="daterange"-->
<!-- type="daterange"-->
<!-- start-placeholder="开始日期"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- end-placeholder="结束日期"-->
<!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
<!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
<!-- class="!w-220px"-->
<!-- class="!w-220px"-->
<!-- />-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"取消时间"
prop=
"cancelTime"
>
-->
<!--
<el-form-item
label=
"取消时间"
prop=
"cancelTime"
>
-->
<!--
<el-date-picker-->
<!--
<el-date-picker-->
<!-- v-model="queryParams.cancelTime"-->
<!-- v-model="queryParams.cancelTime"-->
<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
<!-- type="daterange"-->
<!-- type="daterange"-->
<!-- start-placeholder="开始日期"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- end-placeholder="结束日期"-->
<!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
<!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
<!-- class="!w-220px"-->
<!-- class="!w-220px"-->
<!-- />-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"备注"
prop=
"remark"
>
-->
<!--
<el-form-item
label=
"备注"
prop=
"remark"
>
-->
<!--
<el-input-->
<!--
<el-input-->
<!-- v-model="queryParams.remark"-->
<!-- v-model="queryParams.remark"-->
<!-- placeholder="请输入备注"-->
<!-- placeholder="请输入备注"-->
<!-- clearable-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- class="!w-240px"-->
<!-- />-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"算力资源状态"
prop=
"resourceStatus"
>
-->
<!--
<el-form-item
label=
"算力资源状态"
prop=
"resourceStatus"
>
-->
<!--
<el-select-->
<!--
<el-select-->
<!-- v-model="queryParams.resourceStatus"-->
<!-- v-model="queryParams.resourceStatus"-->
<!-- placeholder="请选择算力资源状态"-->
<!-- placeholder="请选择算力资源状态"-->
<!-- clearable-->
<!-- clearable-->
<!-- class="!w-240px"-->
<!-- class="!w-240px"-->
<!-- >-->
<!-- >-->
<!--
<el-option-->
<!--
<el-option-->
<!-- v-for="dict in getIntDictOptions(DICT_TYPE.COMPUTE_RESOURCE_SPU_STATUS)"-->
<!-- v-for="dict in getIntDictOptions(DICT_TYPE.COMPUTE_RESOURCE_SPU_STATUS)"-->
<!-- :key="dict.value"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- />-->
<!--
</el-select>
-->
<!--
</el-select>
-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"退款状态"
prop=
"refundStatus"
>
-->
<!--
<el-form-item
label=
"退款状态"
prop=
"refundStatus"
>
-->
<!--
<el-select-->
<!--
<el-select-->
<!-- v-model="queryParams.refundStatus"-->
<!-- v-model="queryParams.refundStatus"-->
<!-- placeholder="请选择退款状态"-->
<!-- placeholder="请选择退款状态"-->
<!-- clearable-->
<!-- clearable-->
<!-- class="!w-240px"-->
<!-- class="!w-240px"-->
<!-- >-->
<!-- >-->
<!--
<el-option-->
<!--
<el-option-->
<!-- v-for="dict in getIntDictOptions(DICT_TYPE.COMPUTE_RESOURCE_REFUND_STATUS)"-->
<!-- v-for="dict in getIntDictOptions(DICT_TYPE.COMPUTE_RESOURCE_REFUND_STATUS)"-->
<!-- :key="dict.value"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- />-->
<!--
</el-select>
-->
<!--
</el-select>
-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"退款金额"
prop=
"refundPrice"
>
-->
<!--
<el-form-item
label=
"退款金额"
prop=
"refundPrice"
>
-->
<!--
<el-input-->
<!--
<el-input-->
<!-- v-model="queryParams.refundPrice"-->
<!-- v-model="queryParams.refundPrice"-->
<!-- placeholder="请输入退款金额"-->
<!-- placeholder="请输入退款金额"-->
<!-- clearable-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- class="!w-240px"-->
<!-- />-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<el-form-item
label=
"开票状态"
prop=
"invoiceStatus"
>
<el-form-item
label=
"开票状态"
prop=
"invoiceStatus"
>
<el-select
<el-select
v-model=
"queryParams.invoiceStatus"
v-model=
"queryParams.invoiceStatus"
...
@@ -202,15 +202,15 @@
...
@@ -202,15 +202,15 @@
/>
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<!--
<el-form-item
label=
"发票链接"
prop=
"invoiceUrl"
>
-->
<!--
<el-form-item
label=
"发票链接"
prop=
"invoiceUrl"
>
-->
<!--
<el-input-->
<!--
<el-input-->
<!-- v-model="queryParams.invoiceUrl"-->
<!-- v-model="queryParams.invoiceUrl"-->
<!-- placeholder="请输入发票链接"-->
<!-- placeholder="请输入发票链接"-->
<!-- clearable-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- class="!w-240px"-->
<!-- />-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
</el-form-item>
-->
<el-form-item
label=
"创建时间"
prop=
"createTime"
>
<el-form-item
label=
"创建时间"
prop=
"createTime"
>
<el-date-picker
<el-date-picker
v-model=
"queryParams.createTime"
v-model=
"queryParams.createTime"
...
@@ -225,14 +225,14 @@
...
@@ -225,14 +225,14 @@
<el-form-item>
<el-form-item>
<el-button
@
click=
"handleQuery"
><Icon
icon=
"ep:search"
class=
"mr-5px"
/>
搜索
</el-button>
<el-button
@
click=
"handleQuery"
><Icon
icon=
"ep:search"
class=
"mr-5px"
/>
搜索
</el-button>
<el-button
@
click=
"resetQuery"
><Icon
icon=
"ep:refresh"
class=
"mr-5px"
/>
重置
</el-button>
<el-button
@
click=
"resetQuery"
><Icon
icon=
"ep:refresh"
class=
"mr-5px"
/>
重置
</el-button>
<el-button
<
!--
<
el-button
type=
"primary"
type=
"primary"
plain
plain
@
click=
"openForm('create')"
@
click=
"openForm('create')"
v-hasPermi=
"['compute:resource-order:create']"
v-hasPermi=
"['compute:resource-order:create']"
>
>
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
</el-button>
</el-button>
-->
<el-button
<el-button
type=
"success"
type=
"success"
plain
plain
...
@@ -242,7 +242,7 @@
...
@@ -242,7 +242,7 @@
>
>
<Icon
icon=
"ep:download"
class=
"mr-5px"
/>
导出
<Icon
icon=
"ep:download"
class=
"mr-5px"
/>
导出
</el-button>
</el-button>
<el-button
<
!--
<
el-button
type=
"danger"
type=
"danger"
plain
plain
:disabled=
"isEmpty(checkedIds)"
:disabled=
"isEmpty(checkedIds)"
...
@@ -250,7 +250,7 @@
...
@@ -250,7 +250,7 @@
v-hasPermi=
"['compute:resource-order:delete']"
v-hasPermi=
"['compute:resource-order:delete']"
>
>
<Icon
icon=
"ep:delete"
class=
"mr-5px"
/>
批量删除
<Icon
icon=
"ep:delete"
class=
"mr-5px"
/>
批量删除
</el-button>
</el-button>
-->
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</ContentWrap>
</ContentWrap>
...
@@ -265,10 +265,10 @@
...
@@ -265,10 +265,10 @@
:show-overflow-tooltip=
"true"
:show-overflow-tooltip=
"true"
@
selection-change=
"handleRowCheckboxChange"
@
selection-change=
"handleRowCheckboxChange"
>
>
<el-table-column
type=
"selection"
width=
"55"
/
>
<!--
<el-table-column
type=
"selection"
width=
"55"
/>
--
>
<!--
<el-table-column
label=
"订单ID"
align=
"center"
prop=
"id"
/>
-->
<!--
<el-table-column
label=
"订单ID"
align=
"center"
prop=
"id"
/>
-->
<el-table-column
label=
"下单用户手机号"
align=
"center"
prop=
"mobile"
min-width=
"130"
/>
<el-table-column
label=
"下单用户手机号"
align=
"center"
prop=
"mobile"
min-width=
"130"
/>
<!--
<el-table-column
label=
"算力资源SKU ID"
align=
"center"
prop=
"skuId"
/>
-->
<!--
<el-table-column
label=
"算力资源SKU ID"
align=
"center"
prop=
"skuId"
/>
-->
<el-table-column
label=
"算力资源名称"
align=
"center"
prop=
"spuName"
min-width=
"160"
/>
<el-table-column
label=
"算力资源名称"
align=
"center"
prop=
"spuName"
min-width=
"160"
/>
<el-table-column
label=
"订单编号"
align=
"center"
prop=
"orderNo"
min-width=
"160"
/>
<el-table-column
label=
"订单编号"
align=
"center"
prop=
"orderNo"
min-width=
"160"
/>
<el-table-column
label=
"订单状态"
align=
"center"
prop=
"status"
width=
"90"
>
<el-table-column
label=
"订单状态"
align=
"center"
prop=
"status"
width=
"90"
>
...
@@ -276,15 +276,13 @@
...
@@ -276,15 +276,13 @@
<dict-tag
:type=
"DICT_TYPE.COMPUTE_RESOURCE_ORDER_STATUS"
:value=
"scope.row.status"
/>
<dict-tag
:type=
"DICT_TYPE.COMPUTE_RESOURCE_ORDER_STATUS"
:value=
"scope.row.status"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<!-- <el-table-column label="市场价格" align="center" prop="marketPrice">-->
<!-- <el-table-column label="市场价格" align="center" prop="marketPrice">-->
<!-- <template #default="{ row }">-->
<!-- <template #default="{ row }">-->
<!-- ¥{{ fenToYuan(row.marketPrice) }}-->
<!-- ¥{{ fenToYuan(row.marketPrice) }}-->
<!-- </template>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- </el-table-column>-->
<el-table-column
label=
"实付金额"
align=
"center"
prop=
"paymentPrice"
>
<el-table-column
label=
"实付金额"
align=
"center"
prop=
"paymentPrice"
>
<
template
#
default=
"{ row }"
>
<
template
#
default=
"{ row }"
>
¥
{{
fenToYuan
(
row
.
paymentPrice
)
}}
</
template
>
¥
{{
fenToYuan
(
row
.
paymentPrice
)
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"支付订单编号"
align=
"center"
prop=
"payOrderId"
min-width=
"160"
/>
<el-table-column
label=
"支付订单编号"
align=
"center"
prop=
"payOrderId"
min-width=
"160"
/>
<el-table-column
<el-table-column
...
@@ -318,26 +316,27 @@
...
@@ -318,26 +316,27 @@
/>
/>
<el-table-column
label=
"备注"
align=
"center"
prop=
"remark"
/>
<el-table-column
label=
"备注"
align=
"center"
prop=
"remark"
/>
<!-- <el-table-column label="算力资源状态" align="center" prop="resourceStatus">-->
<!-- <el-table-column label="算力资源状态" align="center" prop="resourceStatus">-->
<!-- <template #default="scope">-->
<!-- <template #default="scope">-->
<!-- <dict-tag :type="DICT_TYPE.COMPUTE_RESOURCE_SPU_STATUS" :value="scope.row.resourceStatus" />-->
<!-- <dict-tag :type="DICT_TYPE.COMPUTE_RESOURCE_SPU_STATUS" :value="scope.row.resourceStatus" />-->
<!-- </template>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- </el-table-column>-->
<el-table-column
label=
"退款状态"
align=
"center"
prop=
"refundStatus"
width=
"90"
>
<el-table-column
label=
"退款状态"
align=
"center"
prop=
"refundStatus"
width=
"90"
>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.COMPUTE_RESOURCE_REFUND_STATUS"
:value=
"scope.row.refundStatus"
/>
<dict-tag
:type=
"DICT_TYPE.COMPUTE_RESOURCE_REFUND_STATUS"
:value=
"scope.row.refundStatus"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"退款金额"
align=
"center"
prop=
"refundPrice"
>
<el-table-column
label=
"退款金额"
align=
"center"
prop=
"refundPrice"
>
<
template
#
default=
"{ row }"
>
<
template
#
default=
"{ row }"
>
¥
{{
fenToYuan
(
row
.
refundPrice
)
}}
</
template
>
¥
{{
fenToYuan
(
row
.
refundPrice
)
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"开票状态"
align=
"center"
prop=
"invoiceStatus"
width=
"90"
>
<el-table-column
label=
"开票状态"
align=
"center"
prop=
"invoiceStatus"
width=
"90"
>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.TRADE_INVOICE_STATUS"
:value=
"scope.row.invoiceStatus"
/>
<dict-tag
:type=
"DICT_TYPE.TRADE_INVOICE_STATUS"
:value=
"scope.row.invoiceStatus"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<!-- <el-table-column label="发票链接" align="center" prop="invoiceUrl" />-->
<!-- <el-table-column label="发票链接" align="center" prop="invoiceUrl" />-->
<el-table-column
<el-table-column
label=
"创建时间"
label=
"创建时间"
align=
"center"
align=
"center"
...
@@ -345,16 +344,24 @@
...
@@ -345,16 +344,24 @@
:formatter=
"dateFormatter"
:formatter=
"dateFormatter"
width=
"180px"
width=
"180px"
/>
/>
<el-table-column
label=
"操作"
align=
"center"
min-width=
"1
50px
"
>
<el-table-column
label=
"操作"
align=
"center"
min-width=
"1
90px"
fixed=
"right
"
>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<el-button
<el-button
link
link
type=
"primary"
type=
"primary"
@
click=
"handleDetail(scope.row.id)"
v-hasPermi=
"['compute:resource-order:query']"
>
详情
</el-button>
<!--
<el-button
link
type=
"primary"
@
click=
"openForm('update', scope.row.id)"
@
click=
"openForm('update', scope.row.id)"
v-hasPermi=
"['compute:resource-order:update']"
v-hasPermi=
"['compute:resource-order:update']"
>
>
编辑
编辑
</el-button>
</el-button>
-->
<!-- 如果订单开票状态为【未开票】【开票中】,则展示【开票】按钮-->
<!-- 如果订单开票状态为【未开票】【开票中】,则展示【开票】按钮-->
<el-button
<el-button
v-if=
"
v-if=
"
...
@@ -377,14 +384,14 @@
...
@@ -377,14 +384,14 @@
>
>
查看发票
查看发票
</el-button>
</el-button>
<el-button
<
!--
<
el-button
link
link
type=
"danger"
type=
"danger"
@
click=
"handleDelete(scope.row.id)"
@
click=
"handleDelete(scope.row.id)"
v-hasPermi=
"['compute:resource-order:delete']"
v-hasPermi=
"['compute:resource-order:delete']"
>
>
删除
删除
</el-button>
</el-button>
-->
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -400,17 +407,15 @@
...
@@ -400,17 +407,15 @@
<!-- 表单弹窗:添加/修改 -->
<!-- 表单弹窗:添加/修改 -->
<ResourceOrderForm
ref=
"formRef"
@
success=
"getList"
/>
<ResourceOrderForm
ref=
"formRef"
@
success=
"getList"
/>
<!-- 详情弹窗 -->
<ResourceOrderDetail
ref=
"detailRef"
/>
<!-- 发票预览弹窗 -->
<!-- 发票预览弹窗 -->
<el-dialog
<el-dialog
v-model=
"pdfDialogVisible"
title=
"发票预览"
width=
"80%"
top=
"5vh"
>
v-model=
"pdfDialogVisible"
title=
"发票预览"
width=
"80%"
top=
"5vh"
>
<iframe
<iframe
v-if=
"invoiceUrl"
v-if=
"invoiceUrl"
:src=
"invoiceUrl"
:src=
"invoiceUrl"
style=
"width: 100%; height: 80vh; border: none
;
"
style=
"width: 100%; height: 80vh; border: none"
></iframe>
></iframe>
</el-dialog>
</el-dialog>
...
@@ -424,6 +429,7 @@ import { dateFormatter } from '@/utils/formatTime'
...
@@ -424,6 +429,7 @@ import { dateFormatter } from '@/utils/formatTime'
import
download
from
'@/utils/download'
import
download
from
'@/utils/download'
import
{
ResourceOrderApi
,
ResourceOrder
}
from
'@/api/compute/resourceorder'
import
{
ResourceOrderApi
,
ResourceOrder
}
from
'@/api/compute/resourceorder'
import
ResourceOrderForm
from
'./ResourceOrderForm.vue'
import
ResourceOrderForm
from
'./ResourceOrderForm.vue'
import
ResourceOrderDetail
from
'./ResourceOrderDetail.vue'
import
{
DICT_TYPE
,
getIntDictOptions
}
from
'@/utils/dict'
import
{
DICT_TYPE
,
getIntDictOptions
}
from
'@/utils/dict'
import
{
fenToYuan
}
from
'@/utils'
import
{
fenToYuan
}
from
'@/utils'
import
{
InvoiceRequestEnum
}
from
'@/utils/constants'
import
{
InvoiceRequestEnum
}
from
'@/utils/constants'
...
@@ -465,6 +471,7 @@ const queryParams = reactive({
...
@@ -465,6 +471,7 @@ const queryParams = reactive({
const
queryFormRef
=
ref
()
// 搜索的表单
const
queryFormRef
=
ref
()
// 搜索的表单
const
exportLoading
=
ref
(
false
)
// 导出的加载中
const
exportLoading
=
ref
(
false
)
// 导出的加载中
const
issueInvoiceFormRef
=
ref
()
// 开票表单ref
const
issueInvoiceFormRef
=
ref
()
// 开票表单ref
const
detailRef
=
ref
()
// 详情弹窗ref
const
pdfDialogVisible
=
ref
(
false
)
// 发票预览弹窗
const
pdfDialogVisible
=
ref
(
false
)
// 发票预览弹窗
const
invoiceUrl
=
ref
(
''
)
// 发票地址
const
invoiceUrl
=
ref
(
''
)
// 发票地址
...
@@ -516,15 +523,15 @@ const handleDeleteBatch = async () => {
...
@@ -516,15 +523,15 @@ const handleDeleteBatch = async () => {
try
{
try
{
// 删除的二次确认
// 删除的二次确认
await
message
.
delConfirm
()
await
message
.
delConfirm
()
await
ResourceOrderApi
.
deleteResourceOrderList
(
checkedIds
.
value
)
;
await
ResourceOrderApi
.
deleteResourceOrderList
(
checkedIds
.
value
)
message
.
success
(
t
(
'common.delSuccess'
))
message
.
success
(
t
(
'common.delSuccess'
))
await
getList
()
;
await
getList
()
}
catch
{}
}
catch
{}
}
}
const
checkedIds
=
ref
<
number
[]
>
([])
const
checkedIds
=
ref
<
number
[]
>
([])
const
handleRowCheckboxChange
=
(
records
:
ResourceOrder
[])
=>
{
const
handleRowCheckboxChange
=
(
records
:
ResourceOrder
[])
=>
{
checkedIds
.
value
=
records
.
map
((
item
)
=>
item
.
id
)
;
checkedIds
.
value
=
records
.
map
((
item
)
=>
item
.
id
)
}
}
/** 导出按钮操作 */
/** 导出按钮操作 */
...
@@ -547,9 +554,15 @@ const handleIssueInvoice = (row: ResourceOrder) => {
...
@@ -547,9 +554,15 @@ const handleIssueInvoice = (row: ResourceOrder) => {
issueInvoiceFormRef
.
value
?.
open
(
row
)
issueInvoiceFormRef
.
value
?.
open
(
row
)
}
}
/** 查看详情 */
const
handleDetail
=
(
id
:
number
)
=>
{
detailRef
.
value
?.
open
(
id
)
}
/** 查看发票 */
/** 查看发票 */
const
handleViewInvoice
=
(
row
:
ResourceOrder
)
=>
{
const
handleViewInvoice
=
(
row
:
ResourceOrder
)
=>
{
invoiceUrl
.
value
=
import
.
meta
.
env
.
VITE_BASE_URL
+
'/admin-api/infra/file/preview?url='
+
row
.
invoiceUrl
invoiceUrl
.
value
=
import
.
meta
.
env
.
VITE_BASE_URL
+
'/admin-api/infra/file/preview?url='
+
row
.
invoiceUrl
pdfDialogVisible
.
value
=
true
pdfDialogVisible
.
value
=
true
}
}
...
...
src/views/member/recharge/index.vue
View file @
03d2db39
...
@@ -75,6 +75,10 @@
...
@@ -75,6 +75,10 @@
<el-button
@
click=
"resetQuery"
<el-button
@
click=
"resetQuery"
><Icon
icon=
"ep:refresh"
class=
"mr-5px"
/>
重置
</el-button
><Icon
icon=
"ep:refresh"
class=
"mr-5px"
/>
重置
</el-button
>
>
<el-button
type=
"success"
@
click=
"handleExport"
:disabled=
"exportLoading"
>
<Icon
icon=
"ep:download"
class=
"mr-5px"
/>
导出
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</el-tab-pane>
</el-tab-pane>
...
@@ -247,6 +251,7 @@
...
@@ -247,6 +251,7 @@
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
dateFormatter
}
from
'@/utils/formatTime'
import
{
dateFormatter
}
from
'@/utils/formatTime'
import
{
MemberRechargeApi
,
MemberRechargeRespVO
}
from
'@/api/member/recharge'
import
{
MemberRechargeApi
,
MemberRechargeRespVO
}
from
'@/api/member/recharge'
import
download
from
'@/utils/download'
/** 会员充值记录 列表 */
/** 会员充值记录 列表 */
defineOptions
({
name
:
'MemberRecharge'
})
defineOptions
({
name
:
'MemberRecharge'
})
...
@@ -261,6 +266,7 @@ const pendingTotal = ref(0)
...
@@ -261,6 +266,7 @@ const pendingTotal = ref(0)
const
pendingCount
=
ref
(
0
)
const
pendingCount
=
ref
(
0
)
const
dialogVisible
=
ref
(
false
)
const
dialogVisible
=
ref
(
false
)
const
submitLoading
=
ref
(
false
)
const
submitLoading
=
ref
(
false
)
const
exportLoading
=
ref
(
false
)
const
formRef
=
ref
()
const
formRef
=
ref
()
const
queryParams
=
reactive
({
const
queryParams
=
reactive
({
...
@@ -365,6 +371,25 @@ const resetQuery = () => {
...
@@ -365,6 +371,25 @@ const resetQuery = () => {
handleQuery
()
handleQuery
()
}
}
/** 导出按钮操作 */
const
handleExport
=
async
()
=>
{
if
(
exportLoading
.
value
)
return
exportLoading
.
value
=
true
try
{
const
params
=
{
userMobile
:
queryParams
.
userMobile
,
payChannel
:
queryParams
.
payChannel
,
payStatus
:
queryParams
.
payStatus
,
redeemed
:
queryParams
.
redeemed
,
createTime
:
queryParams
.
createTime
}
const
data
=
await
MemberRechargeApi
.
exportRecharge
(
params
)
download
.
excel
(
data
,
'充值记录.xls'
)
}
finally
{
exportLoading
.
value
=
false
}
}
/** 打开人工充值弹窗 */
/** 打开人工充值弹窗 */
const
openManualDialog
=
(
row
:
MemberRechargeRespVO
)
=>
{
const
openManualDialog
=
(
row
:
MemberRechargeRespVO
)
=>
{
if
(
!
row
.
id
)
{
if
(
!
row
.
id
)
{
...
...
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