解决合并出现的问题
							parent
							
								
									4a0e850f42
								
							
						
					
					
						commit
						ec76b555a3
					
				|  | @ -86,31 +86,31 @@ export interface PayRefundExportReqVO { | |||
| } | ||||
| 
 | ||||
| // 查询列表退款订单
 | ||||
| export const getRefundPageApi = (params: RefundPageReqVO) => { | ||||
| export const getRefundPage = (params: RefundPageReqVO) => { | ||||
|   return request.get({ url: '/pay/refund/page', params }) | ||||
| } | ||||
| 
 | ||||
| // 查询详情退款订单
 | ||||
| export const getRefundApi = (id: number) => { | ||||
| export const getRefund = (id: number) => { | ||||
|   return request.get({ url: '/pay/refund/get?id=' + id }) | ||||
| } | ||||
| 
 | ||||
| // 新增退款订单
 | ||||
| export const createRefundApi = (data: RefundVO) => { | ||||
| export const createRefund = (data: RefundVO) => { | ||||
|   return request.post({ url: '/pay/refund/create', data }) | ||||
| } | ||||
| 
 | ||||
| // 修改退款订单
 | ||||
| export const updateRefundApi = (data: RefundVO) => { | ||||
| export const updateRefund = (data: RefundVO) => { | ||||
|   return request.put({ url: '/pay/refund/update', data }) | ||||
| } | ||||
| 
 | ||||
| // 删除退款订单
 | ||||
| export const deleteRefundApi = (id: number) => { | ||||
| export const deleteRefund = (id: number) => { | ||||
|   return request.delete({ url: '/pay/refund/delete?id=' + id }) | ||||
| } | ||||
| 
 | ||||
| // 导出退款订单
 | ||||
| export const exportRefundApi = (params: PayRefundExportReqVO) => { | ||||
| export const exportRefund = (params: PayRefundExportReqVO) => { | ||||
|   return request.download({ url: '/pay/refund/export-excel', params }) | ||||
| } | ||||
|  |  | |||
|  | @ -132,7 +132,7 @@ const tableHeight = document.documentElement.scrollHeight - 350 + 'px' | |||
| /** 查询字典下拉列表 */ | ||||
| const dictOptions = ref<DictDataApi.DictTypeVO[]>() | ||||
| const getDictOptions = async () => { | ||||
|   dictOptions.value = await DictDataApi.getSimpleDictTypeList() | ||||
|   dictOptions.value = await DictDataApi.listSimpleDictTypeApi() | ||||
| } | ||||
| 
 | ||||
| watch( | ||||
|  |  | |||
|  | @ -58,29 +58,6 @@ | |||
|         </el-card> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row class="mt-3"> | ||||
|       <el-col :span="24" class="card-box" shadow="hover"> | ||||
|         <el-card> | ||||
|           <el-table | ||||
|             v-loading="keyListLoad" | ||||
|             :data="keyList" | ||||
|             row-key="id" | ||||
|             @row-click="openKeyTemplate" | ||||
|           > | ||||
|             <el-table-column prop="keyTemplate" label="Key 模板" width="200" /> | ||||
|             <el-table-column prop="keyType" label="Key 类型" width="100" /> | ||||
|             <el-table-column prop="valueType" label="Value 类型" /> | ||||
|             <el-table-column prop="timeoutType" label="超时时间" width="200"> | ||||
|               <template #default="{ row }"> | ||||
|                 <DictTag :type="DICT_TYPE.INFRA_REDIS_TIMEOUT_TYPE" :value="row?.timeoutType" /> | ||||
|                 <span v-if="row?.timeout > 0">({{ row?.timeout / 1000 }} 秒)</span> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column prop="memo" label="备注" /> | ||||
|           </el-table> | ||||
|         </el-card> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|   </el-scrollbar> | ||||
|   <XModal v-model="dialogVisible" :title="keyTemplate + ' 模板'"> | ||||
|     <el-row> | ||||
|  | @ -133,28 +110,14 @@ import { RedisKeyInfo, RedisMonitorInfoVO } from '@/api/infra/redis/types' | |||
| import { DICT_TYPE } from '@/utils/dict' | ||||
| const { t } = useI18n() // 国际化 | ||||
| const message = useMessage() // 消息弹窗 | ||||
| const keyListLoad = ref(true) | ||||
| const keyList = ref<RedisKeyInfo[]>([]) | ||||
| const cache = ref<RedisMonitorInfoVO>() | ||||
| // 基本信息 | ||||
| const readRedisInfo = async () => { | ||||
|   const data = await RedisApi.getCacheApi() | ||||
|   cache.value = data | ||||
|   // loadEchartOptions(data.commandStats) | ||||
|   const redisKeysInfo = await RedisApi.getKeyDefineListApi() | ||||
|   keyList.value = redisKeysInfo | ||||
|   keyListLoad.value = false //加载完成 | ||||
| } | ||||
| const dialogVisible = ref(false) | ||||
| const keyTemplate = ref('') | ||||
| const cacheKeys = ref() | ||||
| const cacheForm = ref<{ | ||||
|   key: string | ||||
|   value: string | ||||
| }>({ | ||||
|   key: '', | ||||
|   value: '' | ||||
| }) | ||||
| // 内存使用情况 | ||||
| const usedmemoryEchartChika = reactive<any>({ | ||||
|   title: { | ||||
|  | @ -347,23 +310,6 @@ onMounted(() => { | |||
|   // 加载数据 | ||||
|   getSummary() | ||||
| }) | ||||
| const openKeyTemplate = async (row: RedisKeyInfo) => { | ||||
|   keyTemplate.value = row.keyTemplate | ||||
|   cacheKeys.value = await RedisApi.getKeyListApi(row.keyTemplate) | ||||
|   dialogVisible.value = true | ||||
| } | ||||
| const handleDeleteKey = async (row) => { | ||||
|   RedisApi.deleteKeyApi(row) | ||||
|   message.success(t('common.delSuccess')) | ||||
| } | ||||
| const handleDeleteKeys = async (row) => { | ||||
|   RedisApi.deleteKeysApi(row) | ||||
|   message.success(t('common.delSuccess')) | ||||
| } | ||||
| const handleKeyValue = async (row) => { | ||||
|   const res = await RedisApi.getKeyValueApi(row) | ||||
|   cacheForm.value = res | ||||
| } | ||||
| onBeforeMount(() => { | ||||
|   readRedisInfo() | ||||
| }) | ||||
|  |  | |||
|  | @ -1,71 +0,0 @@ | |||
| import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' | ||||
| const { t } = useI18n() // 国际化
 | ||||
| 
 | ||||
| // 表单校验
 | ||||
| export const rules = reactive({ | ||||
|   name: [required], | ||||
|   status: [required], | ||||
|   payNotifyUrl: [required], | ||||
|   refundNotifyUrl: [required], | ||||
|   merchantId: [required] | ||||
| }) | ||||
| 
 | ||||
| // CrudSchema
 | ||||
| const crudSchemas = reactive<VxeCrudSchema>({ | ||||
|   primaryKey: 'id', | ||||
|   primaryType: 'seq', | ||||
|   primaryTitle: '编号', | ||||
|   action: true, | ||||
|   columns: [ | ||||
|     { | ||||
|       title: '应用名', | ||||
|       field: 'name', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '商户名称', | ||||
|       field: 'payMerchant', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       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' | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   ] | ||||
| }) | ||||
| export const { allSchemas } = useVxeCrudSchemas(crudSchemas) | ||||
|  | @ -1,70 +0,0 @@ | |||
| import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' | ||||
| const { t } = useI18n() // 国际化
 | ||||
| 
 | ||||
| // 表单校验
 | ||||
| export const rules = reactive({ | ||||
|   no: [required], | ||||
|   name: [required], | ||||
|   shortName: [required], | ||||
|   status: [required] | ||||
| }) | ||||
| 
 | ||||
| // CrudSchema
 | ||||
| const crudSchemas = reactive<VxeCrudSchema>({ | ||||
|   primaryKey: 'id', | ||||
|   primaryType: 'seq', | ||||
|   primaryTitle: '商户编号', | ||||
|   action: true, | ||||
|   columns: [ | ||||
|     { | ||||
|       title: '商户号', | ||||
|       field: 'no', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '商户全称', | ||||
|       field: 'code', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '商户简称', | ||||
|       field: 'shortName', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: t('common.status'), | ||||
|       field: 'status', | ||||
|       dictType: DICT_TYPE.COMMON_STATUS, | ||||
|       dictClass: 'number', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: t('form.remark'), | ||||
|       field: 'remark', | ||||
|       isTable: false, | ||||
|       form: { | ||||
|         component: 'Input', | ||||
|         componentProps: { | ||||
|           type: 'textarea', | ||||
|           rows: 4 | ||||
|         }, | ||||
|         colProps: { | ||||
|           span: 24 | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       title: t('common.createTime'), | ||||
|       field: 'createTime', | ||||
|       formatter: 'formatDate', | ||||
|       isForm: false, | ||||
|       search: { | ||||
|         show: true, | ||||
|         itemRender: { | ||||
|           name: 'XDataTimePicker' | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   ] | ||||
| }) | ||||
| export const { allSchemas } = useVxeCrudSchemas(crudSchemas) | ||||
|  | @ -1,164 +0,0 @@ | |||
| import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' | ||||
| const { t } = useI18n() // 国际化
 | ||||
| 
 | ||||
| // 表单校验
 | ||||
| export const rules = reactive({ | ||||
|   merchantId: [required], | ||||
|   appId: [required], | ||||
|   merchantOrderId: [required], | ||||
|   subject: [required], | ||||
|   body: [required], | ||||
|   notifyUrl: [required], | ||||
|   notifyStatus: [required], | ||||
|   amount: [required], | ||||
|   status: [required], | ||||
|   userIp: [required], | ||||
|   expireTime: [required], | ||||
|   refundStatus: [required], | ||||
|   refundTimes: [required], | ||||
|   refundAmount: [required] | ||||
| }) | ||||
| // CrudSchema
 | ||||
| const crudSchemas = reactive<VxeCrudSchema>({ | ||||
|   primaryKey: 'id', | ||||
|   primaryType: 'seq', | ||||
|   primaryTitle: '岗位编号', | ||||
|   action: true, | ||||
|   columns: [ | ||||
|     { | ||||
|       title: '商户编号', | ||||
|       field: 'merchantId', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '应用编号', | ||||
|       field: 'appId', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '渠道编号', | ||||
|       field: 'channelId' | ||||
|     }, | ||||
|     { | ||||
|       title: '渠道编码', | ||||
|       field: 'channelCode', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '渠道订单号', | ||||
|       field: 'merchantOrderId', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '商品标题', | ||||
|       field: 'subject' | ||||
|     }, | ||||
|     { | ||||
|       title: '商品描述', | ||||
|       field: 'body' | ||||
|     }, | ||||
|     { | ||||
|       title: '异步通知地址', | ||||
|       field: 'notifyUrl' | ||||
|     }, | ||||
|     { | ||||
|       title: '回调状态', | ||||
|       field: 'notifyStatus', | ||||
|       dictType: DICT_TYPE.PAY_ORDER_NOTIFY_STATUS, | ||||
|       dictClass: 'number' | ||||
|     }, | ||||
|     { | ||||
|       title: '支付金额', | ||||
|       field: 'amount', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '渠道手续费', | ||||
|       field: 'channelFeeRate', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '渠道手续金额', | ||||
|       field: 'channelFeeAmount', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '支付状态', | ||||
|       field: 'status', | ||||
|       dictType: DICT_TYPE.PAY_ORDER_STATUS, | ||||
|       dictClass: 'number', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '用户 IP', | ||||
|       field: 'userIp' | ||||
|     }, | ||||
|     { | ||||
|       title: '订单失效时间', | ||||
|       field: 'expireTime', | ||||
|       formatter: 'formatDate', | ||||
|       form: { | ||||
|         component: 'DatePicker' | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       title: '支付时间', | ||||
|       field: 'successTime', | ||||
|       formatter: 'formatDate', | ||||
|       form: { | ||||
|         component: 'DatePicker' | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       title: '支付通知时间', | ||||
|       field: 'notifyTime', | ||||
|       formatter: 'formatDate', | ||||
|       form: { | ||||
|         component: 'DatePicker' | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       title: '拓展编号', | ||||
|       field: 'successExtensionId' | ||||
|     }, | ||||
|     { | ||||
|       title: '退款状态', | ||||
|       field: 'refundStatus', | ||||
|       dictType: DICT_TYPE.PAY_ORDER_REFUND_STATUS, | ||||
|       dictClass: 'number', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '退款次数', | ||||
|       field: 'refundTimes' | ||||
|     }, | ||||
|     { | ||||
|       title: '退款总金额', | ||||
|       field: 'refundAmount' | ||||
|     }, | ||||
|     { | ||||
|       title: '渠道用户编号', | ||||
|       field: 'channelUserId' | ||||
|     }, | ||||
|     { | ||||
|       title: '渠道订单号', | ||||
|       field: 'channelOrderNo' | ||||
|     }, | ||||
|     { | ||||
|       title: t('common.createTime'), | ||||
|       field: 'createTime', | ||||
|       formatter: 'formatDate', | ||||
|       isForm: false, | ||||
|       form: { | ||||
|         component: 'DatePicker' | ||||
|       }, | ||||
|       search: { | ||||
|         show: true, | ||||
|         itemRender: { | ||||
|           name: 'XDataTimePicker' | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   ] | ||||
| }) | ||||
| export const { allSchemas } = useVxeCrudSchemas(crudSchemas) | ||||
|  | @ -1,173 +0,0 @@ | |||
| import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' | ||||
| const { t } = useI18n() // 国际化
 | ||||
| 
 | ||||
| // CrudSchema
 | ||||
| const crudSchemas = reactive<VxeCrudSchema>({ | ||||
|   primaryKey: 'id', | ||||
|   primaryType: 'seq', | ||||
|   primaryTitle: '序号', | ||||
|   action: true, | ||||
|   columns: [ | ||||
|     { | ||||
|       title: '商户编号', | ||||
|       field: 'merchantId', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '应用编号', | ||||
|       field: 'appId', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '渠道编号', | ||||
|       field: 'channelId', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '渠道编码', | ||||
|       field: 'channelCode', | ||||
|       dictType: DICT_TYPE.PAY_CHANNEL_CODE_TYPE, | ||||
|       dictClass: 'number', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '支付订单编号', | ||||
|       field: 'orderId', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '交易订单号', | ||||
|       field: 'tradeNo', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '商户订单号', | ||||
|       field: 'merchantOrderId', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '商户退款单号', | ||||
|       field: 'merchantRefundNo', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '回调地址', | ||||
|       field: 'notifyUrl', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '回调状态', | ||||
|       field: 'notifyStatus', | ||||
|       dictType: DICT_TYPE.PAY_ORDER_NOTIFY_STATUS, | ||||
|       dictClass: 'number', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '退款类型', | ||||
|       field: 'type', | ||||
|       dictType: DICT_TYPE.PAY_REFUND_ORDER_TYPE, | ||||
|       dictClass: 'number', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: t('common.status'), | ||||
|       field: 'status', | ||||
|       dictType: DICT_TYPE.PAY_REFUND_ORDER_STATUS, | ||||
|       dictClass: 'number', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '支付金额', | ||||
|       field: 'payAmount', | ||||
|       formatter: 'formatAmount', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '退款金额', | ||||
|       field: 'refundAmount', | ||||
|       formatter: 'formatAmount', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '退款原因', | ||||
|       field: 'reason', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '用户IP', | ||||
|       field: 'userIp', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '渠道订单号', | ||||
|       field: 'channelOrderNo', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '渠道退款单号', | ||||
|       field: 'channelRefundNo', | ||||
|       isSearch: true | ||||
|     }, | ||||
|     { | ||||
|       title: '渠道调用报错时', | ||||
|       field: 'channelErrorCode' | ||||
|     }, | ||||
|     { | ||||
|       title: '渠道调用报错时', | ||||
|       field: 'channelErrorMsg' | ||||
|     }, | ||||
|     { | ||||
|       title: '支付渠道的额外参数', | ||||
|       field: 'channelExtras' | ||||
|     }, | ||||
|     { | ||||
|       title: '退款失效时间', | ||||
|       field: 'expireTime', | ||||
|       formatter: 'formatDate', | ||||
|       isForm: false, | ||||
|       search: { | ||||
|         show: true, | ||||
|         itemRender: { | ||||
|           name: 'XDataTimePicker' | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       title: '退款成功时间', | ||||
|       field: 'successTime', | ||||
|       formatter: 'formatDate', | ||||
|       isForm: false, | ||||
|       search: { | ||||
|         show: true, | ||||
|         itemRender: { | ||||
|           name: 'XDataTimePicker' | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       title: '退款通知时间', | ||||
|       field: 'notifyTime', | ||||
|       formatter: 'formatDate', | ||||
|       isForm: false, | ||||
|       search: { | ||||
|         show: true, | ||||
|         itemRender: { | ||||
|           name: 'XDataTimePicker' | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       title: t('common.createTime'), | ||||
|       field: 'createTime', | ||||
|       formatter: 'formatDate', | ||||
|       isForm: false, | ||||
|       search: { | ||||
|         show: true, | ||||
|         itemRender: { | ||||
|           name: 'XDataTimePicker' | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   ] | ||||
| }) | ||||
| export const { allSchemas } = useVxeCrudSchemas(crudSchemas) | ||||
|  | @ -147,7 +147,7 @@ | |||
|             v-for="item in postOptions" | ||||
|             :key="item.id" | ||||
|             :label="item.name" | ||||
|             :value="(item.id as unknown as number)" | ||||
|             :value="item.id as unknown as number" | ||||
|           /> | ||||
|         </el-select> | ||||
|       </template> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 shizhong
						shizhong