支付方式完善
This commit is contained in:
@@ -2276,13 +2276,13 @@
|
|||||||
>
|
>
|
||||||
<el-form-item label="添加方式" prop="add_mode">
|
<el-form-item label="添加方式" prop="add_mode">
|
||||||
<el-radio-group v-model="addPayOrderForm.add_mode">
|
<el-radio-group v-model="addPayOrderForm.add_mode">
|
||||||
<el-radio value="create">手动创建</el-radio>
|
<el-radio value="create">付呗</el-radio>
|
||||||
<el-radio value="link">关联已有</el-radio>
|
<el-radio value="link">关联已有</el-radio>
|
||||||
<el-radio value="completion_only">直接完单申请</el-radio>
|
<el-radio value="completion_only">直接完单申请</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<!-- 手动创建模式 -->
|
<!-- 付呗(手动创建支付单) -->
|
||||||
<template v-if="addPayOrderForm.add_mode === 'create'">
|
<template v-if="addPayOrderForm.add_mode === 'create'">
|
||||||
<el-form-item label="费用类别" prop="order_type">
|
<el-form-item label="费用类别" prop="order_type">
|
||||||
<el-select v-model="addPayOrderForm.order_type" class="w-full">
|
<el-select v-model="addPayOrderForm.order_type" class="w-full">
|
||||||
@@ -5650,7 +5650,7 @@ const addPayOrderAlertTitle = computed(() => {
|
|||||||
if (addPayOrderForm.add_mode === 'completion_only') {
|
if (addPayOrderForm.add_mode === 'completion_only') {
|
||||||
return '不创建或关联支付单,仅提交完单申请,由审核人员在支付审核时处理。'
|
return '不创建或关联支付单,仅提交完单申请,由审核人员在支付审核时处理。'
|
||||||
}
|
}
|
||||||
return '可以手动创建新支付单,或关联已存在但未绑定的支付单。'
|
return '可以通过付呗创建新支付单,或关联已存在但未绑定的支付单。'
|
||||||
})
|
})
|
||||||
|
|
||||||
const addPayOrderForm = reactive({
|
const addPayOrderForm = reactive({
|
||||||
|
|||||||
@@ -1971,7 +1971,7 @@
|
|||||||
@closed="addPayOrderFormRef?.clearValidate()"
|
@closed="addPayOrderFormRef?.clearValidate()"
|
||||||
>
|
>
|
||||||
<el-alert
|
<el-alert
|
||||||
title="可以手动创建新支付单,或关联已存在但未绑定的支付单。"
|
title="可以通过付呗创建新支付单,或关联已存在但未绑定的支付单。"
|
||||||
type="info"
|
type="info"
|
||||||
:closable="false"
|
:closable="false"
|
||||||
show-icon
|
show-icon
|
||||||
@@ -1987,12 +1987,12 @@
|
|||||||
>
|
>
|
||||||
<el-form-item label="添加方式" prop="add_mode">
|
<el-form-item label="添加方式" prop="add_mode">
|
||||||
<el-radio-group v-model="addPayOrderForm.add_mode">
|
<el-radio-group v-model="addPayOrderForm.add_mode">
|
||||||
<el-radio value="create">手动创建</el-radio>
|
<el-radio value="create">付呗</el-radio>
|
||||||
<el-radio value="link">关联已有</el-radio>
|
<el-radio value="link">关联已有</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<!-- 手动创建模式 -->
|
<!-- 付呗(手动创建支付单) -->
|
||||||
<template v-if="addPayOrderForm.add_mode === 'create'">
|
<template v-if="addPayOrderForm.add_mode === 'create'">
|
||||||
<el-form-item label="费用类别" prop="order_type">
|
<el-form-item label="费用类别" prop="order_type">
|
||||||
<el-select v-model="addPayOrderForm.order_type" class="w-full">
|
<el-select v-model="addPayOrderForm.order_type" class="w-full">
|
||||||
|
|||||||
@@ -174,9 +174,9 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column label="支付方式" width="100">
|
<el-table-column label="支付方式" width="120">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
{{ getPaymentMethodText(row.payment_method) }}
|
{{ getCreateTypeText(row) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
@@ -327,7 +327,7 @@
|
|||||||
<span class="text-red-500 font-semibold">¥{{ detailData.amount }}</span>
|
<span class="text-red-500 font-semibold">¥{{ detailData.amount }}</span>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="支付方式">
|
<el-descriptions-item label="支付方式">
|
||||||
{{ getPaymentMethodText(detailData.payment_method) }}
|
{{ getCreateTypeText(detailData) }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="支付时间">
|
<el-descriptions-item label="支付时间">
|
||||||
{{ detailData.payment_time || '-' }}
|
{{ detailData.payment_time || '-' }}
|
||||||
@@ -1148,7 +1148,8 @@ const submitCreateOrder = async () => {
|
|||||||
patient_id: createForm.patient_id,
|
patient_id: createForm.patient_id,
|
||||||
order_type: createForm.order_type,
|
order_type: createForm.order_type,
|
||||||
amount: createForm.amount,
|
amount: createForm.amount,
|
||||||
remark: createForm.remark
|
remark: createForm.remark,
|
||||||
|
create_type: 'wechat_work'
|
||||||
}
|
}
|
||||||
const res: any = await orderCreateForWechatWork(params)
|
const res: any = await orderCreateForWechatWork(params)
|
||||||
const orderNo = res?.order_no ?? res?.data?.order_no
|
const orderNo = res?.order_no ?? res?.data?.order_no
|
||||||
@@ -1160,7 +1161,8 @@ const submitCreateOrder = async () => {
|
|||||||
patient_id: createForm.patient_id,
|
patient_id: createForm.patient_id,
|
||||||
order_type: createForm.order_type,
|
order_type: createForm.order_type,
|
||||||
amount: createForm.amount,
|
amount: createForm.amount,
|
||||||
remark: createForm.remark
|
remark: createForm.remark,
|
||||||
|
create_type: createForm.createType
|
||||||
}
|
}
|
||||||
if (createForm.createType === 'fubei') {
|
if (createForm.createType === 'fubei') {
|
||||||
params.payment_channel = 'fubei'
|
params.payment_channel = 'fubei'
|
||||||
@@ -1247,6 +1249,20 @@ const getPaymentMethodText = (method: string | null) => {
|
|||||||
return methodMap[method] || '未知'
|
return methodMap[method] || '未知'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 支付方式展示:优先按「创建方式」三值显示;历史单/无 create_type 时回退真实支付渠道文案
|
||||||
|
const getCreateTypeText = (row: any) => {
|
||||||
|
const createTypeMap: Record<string, string> = {
|
||||||
|
normal: '普通订单',
|
||||||
|
wechat_work: '企业微信对外收款',
|
||||||
|
fubei: '付呗'
|
||||||
|
}
|
||||||
|
const ct = row?.create_type
|
||||||
|
if (ct && createTypeMap[ct]) {
|
||||||
|
return createTypeMap[ct]
|
||||||
|
}
|
||||||
|
return getPaymentMethodText(row?.payment_method)
|
||||||
|
}
|
||||||
|
|
||||||
// 编辑订单
|
// 编辑订单
|
||||||
const handleEditOrder = (row: any) => {
|
const handleEditOrder = (row: any) => {
|
||||||
editOrderForm.value = {
|
editOrderForm.value = {
|
||||||
|
|||||||
@@ -207,6 +207,11 @@ class OrderController extends BaseAdminController
|
|||||||
$params['creator_id'] = $this->adminId;
|
$params['creator_id'] = $this->adminId;
|
||||||
$params['payment_channel'] = (string)$this->request->post('payment_channel', 'normal');
|
$params['payment_channel'] = (string)$this->request->post('payment_channel', 'normal');
|
||||||
$params['require_payment_slip_audit'] = (int)$this->request->post('require_payment_slip_audit', 0);
|
$params['require_payment_slip_audit'] = (int)$this->request->post('require_payment_slip_audit', 0);
|
||||||
|
// 创建方式:优先取前端透传的 create_type,否则按 payment_channel 派生(fubei→fubei,其余 normal)
|
||||||
|
$createTypeReq = (string)$this->request->post('create_type', '');
|
||||||
|
$params['create_type'] = in_array($createTypeReq, ['normal', 'wechat_work', 'fubei'], true)
|
||||||
|
? $createTypeReq
|
||||||
|
: ($params['payment_channel'] === 'fubei' ? 'fubei' : 'normal');
|
||||||
|
|
||||||
$result = OrderLogic::create($params);
|
$result = OrderLogic::create($params);
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
@@ -227,6 +232,7 @@ class OrderController extends BaseAdminController
|
|||||||
{
|
{
|
||||||
$params = (new OrderValidate())->post()->goCheck('create');
|
$params = (new OrderValidate())->post()->goCheck('create');
|
||||||
$params['creator_id'] = $this->adminId;
|
$params['creator_id'] = $this->adminId;
|
||||||
|
$params['create_type'] = 'wechat_work';
|
||||||
|
|
||||||
$result = OrderLogic::createForWechatWork($params);
|
$result = OrderLogic::createForWechatWork($params);
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
|
|||||||
@@ -43,6 +43,11 @@ class OrderLogic
|
|||||||
if (!in_array($channel, ['normal', 'fubei'], true)) {
|
if (!in_array($channel, ['normal', 'fubei'], true)) {
|
||||||
$channel = 'normal';
|
$channel = 'normal';
|
||||||
}
|
}
|
||||||
|
// 创建方式(三值):normal 普通订单 / wechat_work 企业微信对外收款 / fubei 付呗;非法值兜底 normal
|
||||||
|
$createType = (string)($params['create_type'] ?? 'normal');
|
||||||
|
if (!in_array($createType, ['normal', 'wechat_work', 'fubei'], true)) {
|
||||||
|
$createType = 'normal';
|
||||||
|
}
|
||||||
$requirePaymentSlipAudit = (int)($params['require_payment_slip_audit'] ?? 0) === 1;
|
$requirePaymentSlipAudit = (int)($params['require_payment_slip_audit'] ?? 0) === 1;
|
||||||
|
|
||||||
$order = new Order();
|
$order = new Order();
|
||||||
@@ -51,6 +56,7 @@ class OrderLogic
|
|||||||
$order->creator_id = $params['creator_id'];
|
$order->creator_id = $params['creator_id'];
|
||||||
$order->order_type = $params['order_type'];
|
$order->order_type = $params['order_type'];
|
||||||
$order->amount = $params['amount'];
|
$order->amount = $params['amount'];
|
||||||
|
$order->create_type = $createType;
|
||||||
// 付呗且申请审核支付单:待审核(5);否则待支付(1)
|
// 付呗且申请审核支付单:待审核(5);否则待支付(1)
|
||||||
if ($channel === 'fubei') {
|
if ($channel === 'fubei') {
|
||||||
$order->payment_method = 'fubei';
|
$order->payment_method = 'fubei';
|
||||||
|
|||||||
@@ -2361,7 +2361,8 @@ class PrescriptionOrderLogic
|
|||||||
$payOrder->order_type = $orderType;
|
$payOrder->order_type = $orderType;
|
||||||
$payOrder->amount = $amount;
|
$payOrder->amount = $amount;
|
||||||
$payOrder->status = 5; // 待审核
|
$payOrder->status = 5; // 待审核
|
||||||
$payOrder->payment_method = 'manual';
|
$payOrder->payment_method = 'fubei'; // 补齐支付单按「付呗」记账
|
||||||
|
$payOrder->create_type = 'fubei';
|
||||||
$payOrder->payment_time = null; // 审核通过后再设置支付时间
|
$payOrder->payment_time = null; // 审核通过后再设置支付时间
|
||||||
$payOrder->remark = $remark;
|
$payOrder->remark = $remark;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
-- 支付单:创建方式(统一为三值,用于支付方式显示)
|
||||||
|
ALTER TABLE `zyt_order`
|
||||||
|
ADD COLUMN `create_type` varchar(20) NOT NULL DEFAULT 'normal' COMMENT '创建方式:normal 普通订单 / wechat_work 企业微信对外收款 / fubei 付呗' AFTER `payment_method`;
|
||||||
Reference in New Issue
Block a user