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
fcfec653
authored
Oct 22, 2025
by
Jony.L
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
算力资源订单管理 隐藏无用的搜索栏、调整字段、开票功能
parent
c43550c0
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
353 additions
and
202 deletions
+353
-202
src/api/compute/resourceorder/index.ts
+6
-0
src/views/compute/resourceorder/form/ResourceOrderIssueInvoiceForm.vue
+90
-0
src/views/compute/resourceorder/index.vue
+257
-202
No files found.
src/api/compute/resourceorder/index.ts
View file @
fcfec653
...
@@ -60,5 +60,10 @@ export const ResourceOrderApi = {
...
@@ -60,5 +60,10 @@ export const ResourceOrderApi = {
// 导出算力资源订单 Excel
// 导出算力资源订单 Excel
exportResourceOrder
:
async
(
params
)
=>
{
exportResourceOrder
:
async
(
params
)
=>
{
return
await
request
.
download
({
url
:
`/compute/resource-order/export-excel`
,
params
})
return
await
request
.
download
({
url
:
`/compute/resource-order/export-excel`
,
params
})
},
// 开具发票
issueInvoice
:
async
(
data
:
any
)
=>
{
return
await
request
.
put
({
url
:
`/compute/resource-order/issue-invoice`
,
data
})
}
}
}
}
\ No newline at end of file
src/views/compute/resourceorder/form/ResourceOrderIssueInvoiceForm.vue
0 → 100644
View file @
fcfec653
<
template
>
<Dialog
v-model=
"dialogVisible"
title=
"上传发票"
width=
"45%"
>
<el-form
ref=
"formRef"
:model=
"formData"
label-width=
"100px"
>
<el-form-item
label=
"发票地址"
prop=
"invoiceUrl"
>
<UploadFile
v-model=
"formData.invoiceUrl"
:file-type=
"['pdf']"
:limit=
"1"
/>
<p
class=
"upload-tips"
>
请上传 大小不超过
<span
class=
"red-text"
>
5MB
</span>
格式为
<span
class=
"red-text"
>
pdf
</span>
的文件
</p>
</el-form-item>
</el-form>
<template
#
footer
>
<el-button
:disabled=
"formLoading"
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
</
template
>
</Dialog>
</template>
<
script
setup
lang=
"ts"
>
import
{
ResourceOrderApi
}
from
"@/api/compute/resourceorder"
;
import
{
UploadFile
}
from
'@/components/UploadFile'
;
const
{
t
}
=
useI18n
()
// 国际化
const
message
=
useMessage
()
// 消息弹窗
const
dialogVisible
=
ref
(
false
)
// 弹窗是否展示
const
formRef
=
ref
()
// 表单 Ref
const
formLoading
=
ref
(
false
)
// 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
/** 提交表单 */
const
emit
=
defineEmits
([
'success'
])
// 定义 success 事件,用于操作成功后的回调
const
submitForm
=
async
()
=>
{
// 提交请求
formLoading
.
value
=
true
try
{
const
data
=
unref
(
formData
)
await
ResourceOrderApi
.
issueInvoice
(
data
)
message
.
success
(
t
(
'common.updateSuccess'
))
dialogVisible
.
value
=
false
// 发送操作成功的事件
emit
(
'success'
,
true
)
}
catch
(
error
)
{
console
.
error
(
error
);
}
finally
{
formLoading
.
value
=
false
}
}
const
formData
=
ref
({
id
:
undefined
,
// 订单编号
invoiceStatus
:
undefined
,
invoiceUrl
:
''
})
const
open
=
async
(
row
:
any
)
=>
{
resetForm
()
// 设置数据
formData
.
value
.
id
=
row
.
id
formData
.
value
.
invoiceStatus
=
row
.
invoiceStatus
formData
.
value
.
invoiceUrl
=
row
.
invoiceUrl
dialogVisible
.
value
=
true
}
defineExpose
({
open
})
// 提供 open 方法,用于打开弹窗
/** 重置表单 */
const
resetForm
=
()
=>
{
formData
.
value
=
{
id
:
undefined
,
// 订单编号
invoiceStatus
:
undefined
,
invoiceUrl
:
''
}
formRef
.
value
?.
resetFields
()
}
</
script
>
<
style
scoped
lang=
"scss"
>
.red-text
{
color
:
red
;
}
.upload-tips
{
font-size
:
12px
;
color
:
#666
;
margin-top
:
5px
;
}
</
style
>
\ No newline at end of file
src/views/compute/resourceorder/index.vue
View file @
fcfec653
...
@@ -8,185 +8,185 @@
...
@@ -8,185 +8,185 @@
:inline=
"true"
:inline=
"true"
label-width=
"68px"
label-width=
"68px"
>
>
<
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"
placeholder=
"请输入算力资源名称(下单时快照)"
placeholder=
"请输入算力资源名称"
clearable
@
keyup
.
enter=
"handleQuery"
class=
"!w-240px"
/>
</el-form-item>
<el-form-item
label=
"订单编号"
prop=
"orderNo"
>
<el-input
v-model=
"queryParams.orderNo"
placeholder=
"请输入订单编号"
clearable
@
keyup
.
enter=
"handleQuery"
class=
"!w-240px"
/>
</el-form-item>
<el-form-item
label=
"订单状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择订单状态"
clearable
class=
"!w-240px"
>
<el-option
v-for=
"dict in getIntDictOptions(DICT_TYPE.COMPUTE_RESOURCE_ORDER_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"市场价格"
prop=
"marketPrice"
>
<el-input
v-model=
"queryParams.marketPrice"
placeholder=
"请输入市场价格"
clearable
@
keyup
.
enter=
"handleQuery"
class=
"!w-240px"
/>
</el-form-item>
<el-form-item
label=
"实付金额"
prop=
"paymentPrice"
>
<el-input
v-model=
"queryParams.paymentPrice"
placeholder=
"请输入实付金额"
clearable
@
keyup
.
enter=
"handleQuery"
class=
"!w-240px"
/>
</el-form-item>
<el-form-item
label=
"支付订单编号"
prop=
"payOrderId"
>
<el-input
v-model=
"queryParams.payOrderId"
placeholder=
"请输入支付订单编号"
clearable
@
keyup
.
enter=
"handleQuery"
class=
"!w-240px"
/>
</el-form-item>
<el-form-item
label=
"支付时间"
prop=
"payTime"
>
<el-date-picker
v-model=
"queryParams.payTime"
value-format=
"YYYY-MM-DD HH:mm:ss"
type=
"daterange"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
:default-time=
"[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class=
"!w-220px"
/>
</el-form-item>
<el-form-item
label=
"支付渠道"
prop=
"payChannelCode"
>
<el-input
v-model=
"queryParams.payChannelCode"
placeholder=
"请输入支付渠道"
clearable
@
keyup
.
enter=
"handleQuery"
class=
"!w-240px"
/>
</el-form-item>
<el-form-item
label=
"租赁开始时间"
prop=
"rentStartTime"
>
<el-date-picker
v-model=
"queryParams.rentStartTime"
value-format=
"YYYY-MM-DD HH:mm:ss"
type=
"daterange"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
:default-time=
"[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class=
"!w-220px"
/>
</el-form-item>
<el-form-item
label=
"租赁结束时间"
prop=
"rentEndTime"
>
<el-date-picker
v-model=
"queryParams.rentEndTime"
value-format=
"YYYY-MM-DD HH:mm:ss"
type=
"daterange"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
:default-time=
"[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class=
"!w-220px"
/>
</el-form-item>
<el-form-item
label=
"取消时间"
prop=
"cancelTime"
>
<el-date-picker
v-model=
"queryParams.cancelTime"
value-format=
"YYYY-MM-DD HH:mm:ss"
type=
"daterange"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
:default-time=
"[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class=
"!w-220px"
/>
</el-form-item>
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-input
v-model=
"queryParams.remark"
placeholder=
"请输入备注"
clearable
@
keyup
.
enter=
"handleQuery"
class=
"!w-240px"
/>
</el-form-item>
<el-form-item
label=
"算力资源状态"
prop=
"resourceStatus"
>
<el-select
v-model=
"queryParams.resourceStatus"
placeholder=
"请选择算力资源状态"
clearable
class=
"!w-240px"
>
<el-option
v-for=
"dict in getIntDictOptions(DICT_TYPE.COMPUTE_RESOURCE_SPU_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"退款状态"
prop=
"refundStatus"
>
<el-select
v-model=
"queryParams.refundStatus"
placeholder=
"请选择退款状态"
clearable
class=
"!w-240px"
>
<el-option
v-for=
"dict in getIntDictOptions(DICT_TYPE.COMPUTE_RESOURCE_REFUND_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"退款金额"
prop=
"refundPrice"
>
<el-input
v-model=
"queryParams.refundPrice"
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=
"orderNo"
>
-->
<!--
<el-input-->
<!-- v-model="queryParams.orderNo"-->
<!-- placeholder="请输入订单编号"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"订单状态"
prop=
"status"
>
-->
<!--
<el-select-->
<!-- v-model="queryParams.status"-->
<!-- placeholder="请选择订单状态"-->
<!-- clearable-->
<!-- class="!w-240px"-->
<!-- >-->
<!--
<el-option-->
<!-- v-for="dict in getIntDictOptions(DICT_TYPE.COMPUTE_RESOURCE_ORDER_STATUS)"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!--
</el-select>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"市场价格"
prop=
"marketPrice"
>
-->
<!--
<el-input-->
<!-- v-model="queryParams.marketPrice"-->
<!-- placeholder="请输入市场价格"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"实付金额"
prop=
"paymentPrice"
>
-->
<!--
<el-input-->
<!-- v-model="queryParams.paymentPrice"-->
<!-- placeholder="请输入实付金额"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"支付订单编号"
prop=
"payOrderId"
>
-->
<!--
<el-input-->
<!-- v-model="queryParams.payOrderId"-->
<!-- placeholder="请输入支付订单编号"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"支付时间"
prop=
"payTime"
>
-->
<!--
<el-date-picker-->
<!-- v-model="queryParams.payTime"-->
<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
<!-- type="daterange"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
<!-- class="!w-220px"-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"支付渠道"
prop=
"payChannelCode"
>
-->
<!--
<el-input-->
<!-- v-model="queryParams.payChannelCode"-->
<!-- placeholder="请输入支付渠道"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"租赁开始时间"
prop=
"rentStartTime"
>
-->
<!--
<el-date-picker-->
<!-- v-model="queryParams.rentStartTime"-->
<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
<!-- type="daterange"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
<!-- class="!w-220px"-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"租赁结束时间"
prop=
"rentEndTime"
>
-->
<!--
<el-date-picker-->
<!-- v-model="queryParams.rentEndTime"-->
<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
<!-- type="daterange"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
<!-- class="!w-220px"-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"取消时间"
prop=
"cancelTime"
>
-->
<!--
<el-date-picker-->
<!-- v-model="queryParams.cancelTime"-->
<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
<!-- type="daterange"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
<!-- class="!w-220px"-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"备注"
prop=
"remark"
>
-->
<!--
<el-input-->
<!-- v-model="queryParams.remark"-->
<!-- placeholder="请输入备注"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- />-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"算力资源状态"
prop=
"resourceStatus"
>
-->
<!--
<el-select-->
<!-- v-model="queryParams.resourceStatus"-->
<!-- placeholder="请选择算力资源状态"-->
<!-- clearable-->
<!-- class="!w-240px"-->
<!-- >-->
<!--
<el-option-->
<!-- v-for="dict in getIntDictOptions(DICT_TYPE.COMPUTE_RESOURCE_SPU_STATUS)"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!--
</el-select>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"退款状态"
prop=
"refundStatus"
>
-->
<!--
<el-select-->
<!-- v-model="queryParams.refundStatus"-->
<!-- placeholder="请选择退款状态"-->
<!-- clearable-->
<!-- class="!w-240px"-->
<!-- >-->
<!--
<el-option-->
<!-- v-for="dict in getIntDictOptions(DICT_TYPE.COMPUTE_RESOURCE_REFUND_STATUS)"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!--
</el-select>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
label=
"退款金额"
prop=
"refundPrice"
>
-->
<!--
<el-input-->
<!-- v-model="queryParams.refundPrice"-->
<!-- placeholder="请输入退款金额"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- />-->
<!--
</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"
...
@@ -266,27 +266,27 @@
...
@@ -266,27 +266,27 @@
@
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=
"下单用户
ID"
align=
"center"
prop=
"userId
"
/>
<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"
/>
<el-table-column
label=
"算力资源名称"
align=
"center"
prop=
"spuName"
min-width=
"160"
/>
<el-table-column
label=
"订单编号"
align=
"center"
prop=
"orderNo"
/>
<el-table-column
label=
"订单编号"
align=
"center"
prop=
"orderNo"
min-width=
"160"
/>
<el-table-column
label=
"订单状态"
align=
"center"
prop=
"status"
>
<el-table-column
label=
"订单状态"
align=
"center"
prop=
"status"
width=
"90"
>
<template
#
default=
"scope"
>
<template
#
default=
"scope"
>
<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
)
}}
¥
{{
fenToYuan
(
row
.
paymentPrice
)
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"支付订单编号"
align=
"center"
prop=
"payOrderId"
/>
<el-table-column
label=
"支付订单编号"
align=
"center"
prop=
"payOrderId"
min-width=
"160"
/>
<el-table-column
<el-table-column
label=
"支付时间"
label=
"支付时间"
align=
"center"
align=
"center"
...
@@ -317,12 +317,12 @@
...
@@ -317,12 +317,12 @@
width=
"180px"
width=
"180px"
/>
/>
<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"
>
<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
>
...
@@ -332,12 +332,12 @@
...
@@ -332,12 +332,12 @@
¥
{{
fenToYuan
(
row
.
refundPrice
)
}}
¥
{{
fenToYuan
(
row
.
refundPrice
)
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"开票状态"
align=
"center"
prop=
"invoiceStatus"
>
<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,7 +345,7 @@
...
@@ -345,7 +345,7 @@
:formatter=
"dateFormatter"
:formatter=
"dateFormatter"
width=
"180px"
width=
"180px"
/>
/>
<el-table-column
label=
"操作"
align=
"center"
min-width=
"1
2
0px"
>
<el-table-column
label=
"操作"
align=
"center"
min-width=
"1
5
0px"
>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<el-button
<el-button
link
link
...
@@ -355,6 +355,28 @@
...
@@ -355,6 +355,28 @@
>
>
编辑
编辑
</el-button>
</el-button>
<!-- 如果订单开票状态为【未开票】【开票中】,则展示【开票】按钮-->
<el-button
v-if=
"
scope.row.invoiceStatus === InvoiceRequestEnum.UNINVOICED.type ||
scope.row.invoiceStatus === InvoiceRequestEnum.INVOICING.type
"
link
type=
"success"
@
click=
"handleIssueInvoice(scope.row)"
v-hasPermi=
"['compute:resource-order:update']"
>
开票
</el-button>
<el-button
v-if=
"scope.row.invoiceStatus === InvoiceRequestEnum.INVOICED.type"
link
type=
"info"
@
click=
"handleViewInvoice(scope.row)"
v-hasPermi=
"['compute:resource-order:query']"
>
查看发票
</el-button>
<el-button
<el-button
link
link
type=
"danger"
type=
"danger"
...
@@ -377,6 +399,23 @@
...
@@ -377,6 +399,23 @@
<!-- 表单弹窗:添加/修改 -->
<!-- 表单弹窗:添加/修改 -->
<ResourceOrderForm
ref=
"formRef"
@
success=
"getList"
/>
<ResourceOrderForm
ref=
"formRef"
@
success=
"getList"
/>
<!-- 发票预览弹窗 -->
<el-dialog
v-model=
"pdfDialogVisible"
title=
"发票预览"
width=
"80%"
top=
"5vh"
>
<iframe
v-if=
"invoiceUrl"
:src=
"invoiceUrl"
style=
"width: 100%; height: 80vh; border: none;"
></iframe>
</el-dialog>
<!-- 开票表单弹窗 -->
<ResourceOrderIssueInvoiceForm
ref=
"issueInvoiceFormRef"
@
success=
"getList"
/>
</template>
</template>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
...
@@ -387,6 +426,8 @@ import { ResourceOrderApi, ResourceOrder } from '@/api/compute/resourceorder'
...
@@ -387,6 +426,8 @@ import { ResourceOrderApi, ResourceOrder } from '@/api/compute/resourceorder'
import
ResourceOrderForm
from
'./ResourceOrderForm.vue'
import
ResourceOrderForm
from
'./ResourceOrderForm.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
ResourceOrderIssueInvoiceForm
from
'./form/ResourceOrderIssueInvoiceForm.vue'
/** 算力资源订单 列表 */
/** 算力资源订单 列表 */
defineOptions
({
name
:
'ResourceOrder'
})
defineOptions
({
name
:
'ResourceOrder'
})
...
@@ -423,6 +464,9 @@ const queryParams = reactive({
...
@@ -423,6 +464,9 @@ const queryParams = reactive({
})
})
const
queryFormRef
=
ref
()
// 搜索的表单
const
queryFormRef
=
ref
()
// 搜索的表单
const
exportLoading
=
ref
(
false
)
// 导出的加载中
const
exportLoading
=
ref
(
false
)
// 导出的加载中
const
issueInvoiceFormRef
=
ref
()
// 开票表单ref
const
pdfDialogVisible
=
ref
(
false
)
// 发票预览弹窗
const
invoiceUrl
=
ref
(
''
)
// 发票地址
/** 查询列表 */
/** 查询列表 */
const
getList
=
async
()
=>
{
const
getList
=
async
()
=>
{
...
@@ -498,6 +542,17 @@ const handleExport = async () => {
...
@@ -498,6 +542,17 @@ const handleExport = async () => {
}
}
}
}
/** 开票 */
const
handleIssueInvoice
=
(
row
:
ResourceOrder
)
=>
{
issueInvoiceFormRef
.
value
?.
open
(
row
)
}
/** 查看发票 */
const
handleViewInvoice
=
(
row
:
ResourceOrder
)
=>
{
invoiceUrl
.
value
=
import
.
meta
.
env
.
VITE_BASE_URL
+
'/admin-api/infra/file/preview?url='
+
row
.
invoiceUrl
pdfDialogVisible
.
value
=
true
}
/** 初始化 **/
/** 初始化 **/
onMounted
(()
=>
{
onMounted
(()
=>
{
getList
()
getList
()
...
...
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