diff --git a/yudao-ui-admin-vue3/src/api/pay/app/index.ts b/yudao-ui-admin-vue3/src/api/pay/app/index.ts index 501fb2024..348185c8e 100644 --- a/yudao-ui-admin-vue3/src/api/pay/app/index.ts +++ b/yudao-ui-admin-vue3/src/api/pay/app/index.ts @@ -1,8 +1,44 @@ import request from '@/config/axios' -import type { AppVO } from './types' + +export interface AppVO { + id: number + name: string + status: number + remark: string + payNotifyUrl: string + refundNotifyUrl: string + merchantId: number + merchantName: string + createTime: Date +} + +export interface AppPageReqVO extends PageParam { + name?: string + status?: number + remark?: string + payNotifyUrl?: string + refundNotifyUrl?: string + merchantName?: string + createTime?: Date[] +} + +export interface AppExportReqVO { + name?: string + status?: number + remark?: string + payNotifyUrl?: string + refundNotifyUrl?: string + merchantName?: string + createTime?: Date[] +} + +export interface AppUpdateStatusReqVO { + id: number + status: number +} // 查询列表支付应用 -export const getAppPageApi = (params) => { +export const getAppPageApi = (params: AppPageReqVO) => { return request.get({ url: '/pay/app/page', params }) } @@ -22,11 +58,7 @@ export const updateAppApi = (data: AppVO) => { } // 支付应用信息状态修改 -export const changeAppStatusApi = (id: number, status: number) => { - const data = { - id, - status - } +export const changeAppStatusApi = (data: AppUpdateStatusReqVO) => { return request.put({ url: '/pay/app/update-status', data: data }) } @@ -36,7 +68,7 @@ export const deleteAppApi = (id: number) => { } // 导出支付应用 -export const exportAppApi = (params) => { +export const exportAppApi = (params: AppExportReqVO) => { return request.download({ url: '/pay/app/export-excel', params }) } diff --git a/yudao-ui-admin-vue3/src/api/pay/app/types.ts b/yudao-ui-admin-vue3/src/api/pay/app/types.ts deleted file mode 100644 index ed5779db9..000000000 --- a/yudao-ui-admin-vue3/src/api/pay/app/types.ts +++ /dev/null @@ -1,11 +0,0 @@ -export type AppVO = { - id: number - name: string - status: number - remark: string - payNotifyUrl: string - refundNotifyUrl: string - merchantName: string - merchantId: number - createTime: string -} diff --git a/yudao-ui-admin-vue3/src/api/pay/channel/index.ts b/yudao-ui-admin-vue3/src/api/pay/channel/index.ts index 3fbd54def..a6da9eb88 100644 --- a/yudao-ui-admin-vue3/src/api/pay/channel/index.ts +++ b/yudao-ui-admin-vue3/src/api/pay/channel/index.ts @@ -1,8 +1,41 @@ import request from '@/config/axios' -import type { ChannelVO } from './types' + +export interface ChannelVO { + id: number + code: string + config: string + status: number + remark: string + feeRate: number + merchantId: number + appId: number + createTime: Date +} + +export interface ChannelPageReqVO extends PageParam { + code?: string + status?: number + remark?: string + feeRate?: number + merchantId?: number + appId?: number + config?: string + createTime?: Date[] +} + +export interface ChannelExportReqVO { + code?: string + status?: number + remark?: string + feeRate?: number + merchantId?: number + appId?: number + config?: string + createTime?: Date[] +} // 查询列表支付渠道 -export const getChannelPageApi = (params) => { +export const getChannelPageApi = (params: ChannelPageReqVO) => { return request.get({ url: '/pay/channel/page', params }) } @@ -32,6 +65,6 @@ export const deleteChannelApi = (id: number) => { } // 导出支付渠道 -export const exportChannelApi = (params) => { +export const exportChannelApi = (params: ChannelExportReqVO) => { return request.download({ url: '/pay/channel/export-excel', params }) } diff --git a/yudao-ui-admin-vue3/src/api/pay/channel/types.ts b/yudao-ui-admin-vue3/src/api/pay/channel/types.ts deleted file mode 100644 index 980a7c377..000000000 --- a/yudao-ui-admin-vue3/src/api/pay/channel/types.ts +++ /dev/null @@ -1,11 +0,0 @@ -export type ChannelVO = { - id: number - code: string - config: string - status: number - remark: string - feeRate: number - merchantId: number - appId: number - createTime: string -} diff --git a/yudao-ui-admin-vue3/src/api/pay/merchant/index.ts b/yudao-ui-admin-vue3/src/api/pay/merchant/index.ts index 749591c5c..b4b6ba511 100644 --- a/yudao-ui-admin-vue3/src/api/pay/merchant/index.ts +++ b/yudao-ui-admin-vue3/src/api/pay/merchant/index.ts @@ -1,8 +1,35 @@ import request from '@/config/axios' -import type { MerchantVO } from './types' + +export interface MerchantVO { + id: number + no: string + name: string + shortName: string + status: number + remark: string + createTime: Date +} + +export interface MerchantPageReqVO extends PageParam { + no?: string + name?: string + shortName?: string + status?: number + remark?: string + createTime?: Date[] +} + +export interface MerchantExportReqVO { + no?: string + name?: string + shortName?: string + status?: number + remark?: string + createTime?: Date[] +} // 查询列表支付商户 -export const getMerchantPageApi = (params) => { +export const getMerchantPageApi = (params: MerchantPageReqVO) => { return request.get({ url: '/pay/merchant/page', params }) } @@ -37,7 +64,7 @@ export const deleteMerchantApi = (id: number) => { } // 导出支付商户 -export const exportMerchantApi = (params) => { +export const exportMerchantApi = (params: MerchantExportReqVO) => { return request.download({ url: '/pay/merchant/export-excel', params }) } // 支付商户状态修改 diff --git a/yudao-ui-admin-vue3/src/api/pay/merchant/types.ts b/yudao-ui-admin-vue3/src/api/pay/merchant/types.ts deleted file mode 100644 index 0a78a2a58..000000000 --- a/yudao-ui-admin-vue3/src/api/pay/merchant/types.ts +++ /dev/null @@ -1,9 +0,0 @@ -export type MerchantVO = { - id: number - no: string - name: string - shortName: string - status: number - remark: string - createTime: string -} diff --git a/yudao-ui-admin-vue3/src/api/pay/order/index.ts b/yudao-ui-admin-vue3/src/api/pay/order/index.ts index 9f4f18bc1..53e35aa94 100644 --- a/yudao-ui-admin-vue3/src/api/pay/order/index.ts +++ b/yudao-ui-admin-vue3/src/api/pay/order/index.ts @@ -1,8 +1,85 @@ import request from '@/config/axios' -import type { OrderVO } from './types' + +export interface OrderVO { + id: number + merchantId: number + appId: number + channelId: number + channelCode: string + merchantOrderId: string + subject: string + body: string + notifyUrl: string + notifyStatus: number + amount: number + channelFeeRate: number + channelFeeAmount: number + status: number + userIp: string + expireTime: Date + successTime: Date + notifyTime: Date + successExtensionId: number + refundStatus: number + refundTimes: number + refundAmount: number + channelUserId: string + channelOrderNo: string + createTime: Date +} + +export interface OrderPageReqVO extends PageParam { + merchantId?: number + appId?: number + channelId?: number + channelCode?: string + merchantOrderId?: string + subject?: string + body?: string + notifyUrl?: string + notifyStatus?: number + amount?: number + channelFeeRate?: number + channelFeeAmount?: number + status?: number + expireTime?: Date[] + successTime?: Date[] + notifyTime?: Date[] + successExtensionId?: number + refundStatus?: number + refundTimes?: number + channelUserId?: string + channelOrderNo?: string + createTime?: Date[] +} + +export interface OrderExportReqVO { + merchantId?: number + appId?: number + channelId?: number + channelCode?: string + merchantOrderId?: string + subject?: string + body?: string + notifyUrl?: string + notifyStatus?: number + amount?: number + channelFeeRate?: number + channelFeeAmount?: number + status?: number + expireTime?: Date[] + successTime?: Date[] + notifyTime?: Date[] + successExtensionId?: number + refundStatus?: number + refundTimes?: number + channelUserId?: string + channelOrderNo?: string + createTime?: Date[] +} // 查询列表支付订单 -export const getOrderPageApi = async (params) => { +export const getOrderPageApi = async (params: OrderPageReqVO) => { return await request.get({ url: '/pay/order/page', params }) } @@ -27,6 +104,6 @@ export const deleteOrderApi = async (id: number) => { } // 导出支付订单 -export const exportOrderApi = async (params) => { +export const exportOrderApi = async (params: OrderExportReqVO) => { return await request.download({ url: '/pay/order/export-excel', params }) } diff --git a/yudao-ui-admin-vue3/src/api/pay/order/types.ts b/yudao-ui-admin-vue3/src/api/pay/order/types.ts deleted file mode 100644 index 6a8729073..000000000 --- a/yudao-ui-admin-vue3/src/api/pay/order/types.ts +++ /dev/null @@ -1,26 +0,0 @@ -export type OrderVO = { - id: number - merchantId: number - appId: number - channelId: number - channelCode: string - merchantOrderId: string - subject: string - body: string - notifyUrl: string - notifyStatus: number - amount: number - channelFeeRate: number - channelFeeAmount: number - status: number - userIp: string - expireTime: string - successTime: string - notifyTime: string - successExtensionId: number - refundStatus: number - refundTimes: number - refundAmount: number - channelUserId: string - channelOrderNo: string -} diff --git a/yudao-ui-admin-vue3/src/api/pay/refund/index.ts b/yudao-ui-admin-vue3/src/api/pay/refund/index.ts index 45d9bc9ad..cd68a1448 100644 --- a/yudao-ui-admin-vue3/src/api/pay/refund/index.ts +++ b/yudao-ui-admin-vue3/src/api/pay/refund/index.ts @@ -1,8 +1,92 @@ import request from '@/config/axios' -import type { RefundVO } from './types' + +export interface RefundVO { + id: number + merchantId: number + appId: number + channelId: number + channelCode: string + orderId: string + tradeNo: string + merchantOrderId: string + merchantRefundNo: string + notifyUrl: string + notifyStatus: number + status: number + type: number + payAmount: number + refundAmount: number + reason: string + userIp: string + channelOrderNo: string + channelRefundNo: string + channelErrorCode: string + channelErrorMsg: string + channelExtras: string + expireTime: Date + successTime: Date + notifyTime: Date + createTime: Date +} + +export interface RefundPageReqVO extends PageParam { + merchantId?: number + appId?: number + channelId?: number + channelCode?: string + orderId?: string + tradeNo?: string + merchantOrderId?: string + merchantRefundNo?: string + notifyUrl?: string + notifyStatus?: number + status?: number + type?: number + payAmount?: number + refundAmount?: number + reason?: string + userIp?: string + channelOrderNo?: string + channelRefundNo?: string + channelErrorCode?: string + channelErrorMsg?: string + channelExtras?: string + expireTime?: Date[] + successTime?: Date[] + notifyTime?: Date[] + createTime?: Date[] +} + +export interface PayRefundExportReqVO { + merchantId?: number + appId?: number + channelId?: number + channelCode?: string + orderId?: string + tradeNo?: string + merchantOrderId?: string + merchantRefundNo?: string + notifyUrl?: string + notifyStatus?: number + status?: number + type?: number + payAmount?: number + refundAmount?: number + reason?: string + userIp?: string + channelOrderNo?: string + channelRefundNo?: string + channelErrorCode?: string + channelErrorMsg?: string + channelExtras?: string + expireTime?: Date[] + successTime?: Date[] + notifyTime?: Date[] + createTime?: Date[] +} // 查询列表退款订单 -export const getRefundPageApi = (params) => { +export const getRefundPageApi = (params: RefundPageReqVO) => { return request.get({ url: '/pay/refund/page', params }) } @@ -27,6 +111,6 @@ export const deleteRefundApi = (id: number) => { } // 导出退款订单 -export const exportRefundApi = (params) => { +export const exportRefundApi = (params: PayRefundExportReqVO) => { return request.download({ url: '/pay/refund/export-excel', params }) } diff --git a/yudao-ui-admin-vue3/src/api/pay/refund/types.ts b/yudao-ui-admin-vue3/src/api/pay/refund/types.ts deleted file mode 100644 index 878a23218..000000000 --- a/yudao-ui-admin-vue3/src/api/pay/refund/types.ts +++ /dev/null @@ -1,26 +0,0 @@ -export type RefundVO = { - id: number - merchantId: number - appId: number - channelId: number - channelCode: string - merchantOrderId: string - subject: string - body: string - notifyUrl: string - notifyStatus: number - amount: number - channelFeeRate: number - channelFeeAmount: number - status: number - userIp: string - expireTime: string - successTime: string - notifyTime: string - successExtensionId: number - refundStatus: number - refundTimes: number - refundAmount: number - channelUserId: string - channelOrderNo: string -} diff --git a/yudao-ui-admin-vue3/src/hooks/web/useVxeCrudSchemas.ts b/yudao-ui-admin-vue3/src/hooks/web/useVxeCrudSchemas.ts index f3379c81e..7fe7fb4ae 100644 --- a/yudao-ui-admin-vue3/src/hooks/web/useVxeCrudSchemas.ts +++ b/yudao-ui-admin-vue3/src/hooks/web/useVxeCrudSchemas.ts @@ -121,18 +121,8 @@ const filterSearchSchema = (crudSchema: VxeCrudSchema): VxeFormItemProps[] => { if (schemaItem?.isSearch || schemaItem.search?.show) { let itemRenderName = schemaItem?.search?.itemRender?.name || '$input' const options: any[] = [] - let itemRender: FormItemRenderOptions - if (schemaItem.search?.itemRender) { - itemRender = schemaItem.search.itemRender - } else { - itemRender = { - name: itemRenderName, - props: - itemRenderName == '$input' - ? { placeholder: t('common.inputText') } - : { placeholder: t('common.selectText') } - } - } + let itemRender: FormItemRenderOptions = {} + if (schemaItem.dictType) { const allOptions = { label: '全部', value: '' } options.push(allOptions) @@ -146,8 +136,19 @@ const filterSearchSchema = (crudSchema: VxeCrudSchema): VxeFormItemProps[] => { options: options, props: { placeholder: t('common.selectText') } } + } else { + if (schemaItem.search?.itemRender) { + itemRender = schemaItem.search.itemRender + } else { + itemRender = { + name: itemRenderName, + props: + itemRenderName == '$input' + ? { placeholder: t('common.inputText') } + : { placeholder: t('common.selectText') } + } + } } - const searchSchemaItem = { // 默认为 input folding: searchSchema.length > spanLength - 1, @@ -156,7 +157,6 @@ const filterSearchSchema = (crudSchema: VxeCrudSchema): VxeFormItemProps[] => { title: schemaItem.search?.title || schemaItem.title, span: span } - searchSchema.push(searchSchemaItem) } }) diff --git a/yudao-ui-admin-vue3/src/views/pay/app/app.data.ts b/yudao-ui-admin-vue3/src/views/pay/app/app.data.ts index 62c8a7a3f..c26b46131 100644 --- a/yudao-ui-admin-vue3/src/views/pay/app/app.data.ts +++ b/yudao-ui-admin-vue3/src/views/pay/app/app.data.ts @@ -1,8 +1,8 @@ import { reactive } from 'vue' import { useI18n } from '@/hooks/web/useI18n' import { required } from '@/utils/formRules' -import { CrudSchema, useCrudSchemas } from '@/hooks/web/useCrudSchemas' import { DICT_TYPE } from '@/utils/dict' +import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas' const { t } = useI18n() // 国际化 // 表单校验 @@ -15,67 +15,61 @@ export const rules = reactive({ }) // CrudSchema -const crudSchemas = reactive([ - { - label: t('common.index'), - field: 'id', - type: 'index', - form: { - show: false +const crudSchemas = reactive({ + primaryKey: 'id', + primaryType: 'seq', + primaryTitle: '编号', + action: true, + columns: [ + { + title: '应用名', + field: 'name', + isSearch: true }, - detail: { - show: false - } - }, - { - label: '应用名', - field: 'name', - search: { - show: true - } - }, - { - label: '商户名称', - field: 'payMerchant', - search: { - show: true - } - }, - { - label: t('common.status'), - field: 'status', - dictType: DICT_TYPE.COMMON_STATUS, - dictClass: 'number', - search: { - show: true - } - }, - { - label: t('common.createTime'), - field: 'createTime', - form: { - show: false + { + title: '商户名称', + field: 'payMerchant', + isSearch: true }, - search: { - show: true, - component: 'DatePicker', - componentProps: { - type: 'datetimerange', - valueFormat: 'YYYY-MM-DD HH:mm:ss', - defaultTime: [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59)] + { + title: t('common.status'), + field: 'status', + dictType: DICT_TYPE.COMMON_STATUS, + dictClass: 'number', + isSearch: true + }, + { + title: '支付结果的回调地址', + field: 'payNotifyUrl', + isSearch: true + }, + { + title: '退款结果的回调地址', + field: 'refundNotifyUrl', + isSearch: true + }, + { + title: '商户名称', + field: 'merchantName', + isSearch: true + }, + { + title: '备注', + field: 'remark', + isTable: false, + isSearch: true + }, + { + title: t('common.createTime'), + field: 'createTime', + isForm: false, + search: { + show: true, + itemRender: { + name: 'XDataTimePicker' + } } } - }, - { - label: t('table.action'), - field: 'action', - width: '240px', - form: { - show: false - }, - detail: { - show: false - } - } -]) -export const { allSchemas } = useCrudSchemas(crudSchemas) + ] +}) +export const { allSchemas } = useVxeCrudSchemas(crudSchemas) diff --git a/yudao-ui-admin-vue3/src/views/pay/app/index.vue b/yudao-ui-admin-vue3/src/views/pay/app/index.vue index 7f7025bec..10f5286ec 100644 --- a/yudao-ui-admin-vue3/src/views/pay/app/index.vue +++ b/yudao-ui-admin-vue3/src/views/pay/app/index.vue @@ -1,158 +1,49 @@ - -