From e4ed3784e3d3678af532c98342b4dab3ece32435 Mon Sep 17 00:00:00 2001 From: sexygoat <1538832180@qq.com> Date: Fri, 24 Apr 2026 11:17:39 +0800 Subject: [PATCH] fix: pay --- .../business/CreateRefundDialog.vue | 15 ++- src/types/api/order.ts | 1 + src/views/finance/agent-recharge/index.vue | 23 +++- .../order-management/order-list/index.vue | 48 ++++++- src/views/settings/wechat-config/index.vue | 127 +++++++++--------- 5 files changed, 147 insertions(+), 67 deletions(-) diff --git a/src/components/business/CreateRefundDialog.vue b/src/components/business/CreateRefundDialog.vue index 5b78342..8e42199 100644 --- a/src/components/business/CreateRefundDialog.vue +++ b/src/components/business/CreateRefundDialog.vue @@ -104,9 +104,22 @@ refund_reason: '' }) + const validateRefundAmount = (rule: any, value: number, callback: any) => { + if (value === undefined || value === null || value === 0) { + callback(new Error('请输入申请退款金额')) + } else if (value > formData.actual_received_amount) { + callback(new Error('申请退款金额不能大于实收金额')) + } else { + callback() + } + } + const formRules = reactive({ order_id: [{ required: true, message: '请选择订单', trigger: 'change' }], - requested_refund_amount: [{ required: true, message: '请输入申请退款金额', trigger: 'blur' }] + requested_refund_amount: [ + { required: true, message: '请输入申请退款金额', trigger: 'blur' }, + { validator: validateRefundAmount, trigger: 'blur' } + ] }) const hasInitialOrder = computed(() => !!props.initialOrderId || !!props.initialOrderNo) diff --git a/src/types/api/order.ts b/src/types/api/order.ts index c1060eb..85014b6 100644 --- a/src/types/api/order.ts +++ b/src/types/api/order.ts @@ -82,6 +82,7 @@ export interface OrderQueryParams { start_time?: string end_time?: string is_expired?: boolean // 是否已过期 + seller_shop_id?: number // 所属代理商ID(销售来源店铺ID) dateRange?: string[] | any // For date range picker in UI } diff --git a/src/views/finance/agent-recharge/index.vue b/src/views/finance/agent-recharge/index.vue index ffde815..b721b7c 100644 --- a/src/views/finance/agent-recharge/index.vue +++ b/src/views/finance/agent-recharge/index.vue @@ -280,7 +280,9 @@ })), config: { clearable: true, - filterable: true + filterable: true, + remote: true, + remoteMethod: (query: string) => searchShops(query) } }, { @@ -534,6 +536,25 @@ } } + // 搜索店铺(用于搜索表单远程搜索) + const searchShops = async (query: string) => { + try { + const params: any = { + page: 1, + page_size: 20 + } + if (query) { + params.shop_name = query + } + const res = await ShopService.getShops(params) + if (res.code === 0) { + shopOptions.value = res.data.items || [] + } + } catch (error) { + console.error('Search shops failed:', error) + } + } + // 处理店铺选择变化 const handleShopChange = (value: any) => { if (Array.isArray(value) && value.length > 0) { diff --git a/src/views/order-management/order-list/index.vue b/src/views/order-management/order-list/index.vue index de0dc31..7969149 100644 --- a/src/views/order-management/order-list/index.vue +++ b/src/views/order-management/order-list/index.vue @@ -319,7 +319,8 @@ CardService, DeviceService, PackageManageService, - StorageService + StorageService, + ShopService } from '@/api/modules' import { ElMessage, ElMessageBox, ElTag } from 'element-plus' import { Plus } from '@element-plus/icons-vue' @@ -369,6 +370,7 @@ purchase_role: undefined, identifier: '', is_expired: undefined, + seller_shop_id: undefined, start_time: '', end_time: '' } @@ -376,6 +378,28 @@ // 搜索表单 const searchForm = reactive({ ...initialSearchState }) + // 店铺列表(用于代理商搜索) + const shopOptions = ref([]) + + // 搜索代理商 + const searchShops = async (query: string) => { + try { + const params: any = { + page: 1, + page_size: 20 + } + if (query) { + params.shop_name = query + } + const res = await ShopService.getShops(params) + if (res.code === 0) { + shopOptions.value = res.data.items || [] + } + } catch (error) { + console.error('Search shops failed:', error) + } + } + // 获取订单角色文本 const getPurchaseRoleText = (role: string): string => { const roleMap: Record = { @@ -404,10 +428,10 @@ label: '资产标识符', prop: 'identifier', type: 'input', - placeholder: 'ICCID 或 VirtualNo', config: { maxlength: 30, - clearable: true + clearable: true, + placeholder: 'ICCID/VirtualNo/IMEI/SN/MSISDN' }, labelWidth: '100' }, @@ -478,6 +502,23 @@ clearable: true } }, + { + label: '所属代理商', + prop: 'seller_shop_id', + type: 'select', + placeholder: '请选择所属代理商', + options: () => + shopOptions.value.map((shop) => ({ + label: shop.shop_name, + value: shop.id + })), + config: { + clearable: true, + filterable: true, + remote: true, + remoteMethod: (query: string) => searchShops(query) + } + }, { label: '订单渠道', prop: 'purchase_role', @@ -970,6 +1011,7 @@ purchase_role: searchForm.purchase_role, identifier: searchForm.identifier || undefined, is_expired: searchForm.is_expired, + seller_shop_id: searchForm.seller_shop_id, start_time: searchForm.start_time || undefined, end_time: searchForm.end_time || undefined } diff --git a/src/views/settings/wechat-config/index.vue b/src/views/settings/wechat-config/index.vue index 97cfcb7..cb9515c 100644 --- a/src/views/settings/wechat-config/index.vue +++ b/src/views/settings/wechat-config/index.vue @@ -293,68 +293,70 @@ - - 微信配置 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 富友支付配置 @@ -900,6 +902,7 @@ } else { const data: UpdateWechatConfigRequest = { name: form.name, + provider_type: form.provider_type, description: form.description || undefined } // 只有填写了有效的新值才更新敏感字段(不是空值且不是脱敏数据)