Commit fcfec653 by Jony.L

算力资源订单管理 隐藏无用的搜索栏、调整字段、开票功能

parent c43550c0
...@@ -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
<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
...@@ -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="120px"> <el-table-column label="操作" align="center" min-width="150px">
<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()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment