!88 feat: 添加渠道配置和应用管理功能,更新相关表单和数据结构

Merge pull request !88 from 痴货/pay-master
This commit is contained in:
xingyu
2025-05-26 02:24:11 +00:00
committed by Gitee
24 changed files with 2229 additions and 46 deletions

View File

@@ -155,7 +155,11 @@ const computedSchema = computed(
:rules="cSchema.rules"
>
<template #default="slotProps">
<slot v-bind="slotProps" :name="cSchema.fieldName"> </slot>
<slot
v-bind="slotProps"
:name="cSchema.slotName || cSchema.fieldName"
>
</slot>
</template>
</FormField>
</template>

View File

@@ -263,6 +263,8 @@ export interface FormSchema<
renderComponentContent?: RenderComponentContentType;
/** 字段规则 */
rules?: FormSchemaRuleType;
/** 自定义插槽名如果不指定则使用fieldName */
slotName?: string;
/** 后缀 */
suffix?: CustomRenderType;
}

View File

@@ -124,6 +124,14 @@ export class ModalApi {
return this.setState({ submitting: isLocked });
}
modalLoading(loading: boolean) {
this.store.setState((prev) => ({
...prev,
confirmLoading: loading,
loading,
}));
}
/**
* 取消操作
*/

View File

@@ -20,7 +20,8 @@
"detail": "详情{0}",
"view": "查看{0}",
"import": "导入",
"export": "导出"
"export": "导出",
"detail": "详情"
},
"actionMessage": {
"deleteConfirm": "确定删除 {0} 吗?",

View File

@@ -8,3 +8,31 @@ export function getPopupContainer(node?: HTMLElement): HTMLElement {
node?.closest('form') ?? (node?.parentNode as HTMLElement) ?? document.body
);
}
/**
* VxeTable专用弹窗层
* 解决问题: https://gitee.com/dapppp/ruoyi-plus-vben5/issues/IB1DM3
* 单表格用法跟上面getPopupContainer一样
* 一个页面(body下)有多个表格元素 必须先指定ID & ID参数传入该函数
* <BasicTable id="xxx" />
* getVxePopupContainer="(node) => getVxePopupContainer(node, 'xxx')"
* @param _node 触发的元素
* @param id 表格唯一id 当页面(该窗口)有>=两个表格 必须提供ID
* @returns 挂载节点
*/
export function getVxePopupContainer(
_node?: HTMLElement,
id?: string,
): HTMLElement {
let selector = 'div.vxe-table--body-wrapper.body--wrapper';
if (id) {
selector = `div#${id} ${selector}`;
}
// 挂载到vxe-table的滚动区域
const vxeTableContainerNode = document.querySelector(selector);
if (!vxeTableContainerNode) {
console.warn('无法找到vxe-table元素, 将会挂载到body.');
return document.body;
}
return vxeTableContainerNode as HTMLElement;
}