新增功能

This commit is contained in:
Your Name
2026-03-14 11:16:04 +08:00
parent eb283f008b
commit 4ddee40675
264 changed files with 5039 additions and 2813 deletions
+76
View File
@@ -135,6 +135,13 @@
>
详情
</el-button>
<el-button
type="primary"
link
@click="handleOrderQrcode(row)"
>
小程序码
</el-button>
<el-button
v-if="row.status === 1"
v-perms="['order.order/pay']"
@@ -337,12 +344,46 @@
</el-button>
</template>
</el-dialog>
<!-- 小程序码弹窗 -->
<el-dialog
v-model="qrcodeDialogVisible"
title="支付小程序码"
width="400px"
:close-on-click-modal="false"
>
<div class="flex flex-col items-center justify-center py-4">
<div v-if="qrcodeLoading" class="text-center">
<el-icon class="is-loading" :size="40">
<Loading />
</el-icon>
<div class="mt-4 text-gray-500">生成中...</div>
</div>
<div v-else-if="qrcodeUrl" class="text-center">
<img :src="qrcodeUrl" alt="小程序二维码" class="w-64 h-64 border border-gray-200 rounded" />
<div class="mt-4 text-sm text-gray-600">
<div>订单号{{ qrcodeOrderNo }}</div>
<div class="mt-2">请使用微信扫描二维码完成支付</div>
</div>
</div>
<div v-else class="text-center text-gray-500">
生成失败请重试
</div>
</div>
<template #footer>
<el-button @click="qrcodeDialogVisible = false">关闭</el-button>
<el-button v-if="!qrcodeLoading" type="primary" @click="handleOrderQrcodeRefresh">
重新生成
</el-button>
</template>
</el-dialog>
</div>
</template>
<script setup lang="ts" name="orderList">
import { usePaging } from '@/hooks/usePaging'
import { orderLists, orderDetail, orderPay, orderCancel, orderDelete, orderRefund, orderExport, orderCreate, searchPatients as searchPatientsAPI, alipayPay, wechatPay } from '@/api/order'
import { generateOrderQrcode } from '@/api/tcm'
import { Loading } from '@element-plus/icons-vue'
import feedback from '@/utils/feedback'
const queryParams = reactive({
@@ -638,6 +679,41 @@ const handleDelete = async (row: any) => {
}
}
// 小程序码相关
const qrcodeDialogVisible = ref(false)
const qrcodeLoading = ref(false)
const qrcodeUrl = ref('')
const qrcodeOrderNo = ref('')
const handleOrderQrcode = async (row: any) => {
if (!row.order_no) {
feedback.msgWarning('订单号不存在')
return
}
qrcodeOrderNo.value = row.order_no
qrcodeDialogVisible.value = true
qrcodeLoading.value = true
qrcodeUrl.value = ''
try {
const res = await generateOrderQrcode({ order_no: row.order_no })
if (res?.qrcode_url) {
qrcodeUrl.value = res.qrcode_url
} else {
feedback.msgError('二维码生成失败')
}
} catch (e: any) {
feedback.msgError(e?.msg || '生成二维码失败')
} finally {
qrcodeLoading.value = false
}
}
const handleOrderQrcodeRefresh = () => {
if (qrcodeOrderNo.value) {
handleOrderQrcode({ order_no: qrcodeOrderNo.value })
}
}
onMounted(() => {
getLists()
})