From 8a3b4a11a58e9a251eaf8f9a8571fe0d3a6a48d8 Mon Sep 17 00:00:00 2001 From: "jlj05024111@163.com" Date: Tue, 26 Aug 2025 21:21:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=20=E8=A1=A8=E5=8D=95=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=9C=A8=E7=AE=80=E5=8D=95=E6=A8=A1=E5=BC=8F=E4=B8=8B=E4=B8=8E?= =?UTF-8?q?=E5=A4=9A=E6=95=B0=E6=8D=AE=E9=83=A8=E4=BB=B6=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E4=B8=8B=E8=AE=B0=E5=BD=95=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E7=9A=84=E6=95=B0=E6=8D=AE=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + src/control/form/edit-form/edit-form.tsx | 16 ++++++++++++++++ .../form-mdctrl-form/form-mdctrl-form.tsx | 4 +++- .../repeater-multi-form/repeater-multi-form.tsx | 1 + .../repeater-single-form.tsx | 4 ++++ 5 files changed, 25 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e565ebc6..d27f27d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ### Added +- 表单新增在简单模式下与多数据部件表单模式下记录当前表单的数据索引 - 更新密码框支持明文,暗文切换功能 - 应用菜单(列表样式)识别分组配置 - 新增mobShowViewHeader全局参数,控制移动端视图头是否显示,默认显示 diff --git a/src/control/form/edit-form/edit-form.tsx b/src/control/form/edit-form/edit-form.tsx index 08d0879a..f2178e85 100644 --- a/src/control/form/edit-form/edit-form.tsx +++ b/src/control/form/edit-form/edit-form.tsx @@ -43,6 +43,15 @@ export const EditFormControl: ReturnType = * @default true */ loadDefault: { type: Boolean, default: true }, + /** + * @description 简单模式下传入的数据索引 + * @default false + */ + simpleDataIndex: { type: Number, required: false }, + /** + * @description 多数据部件表单模式下传入的数据索引 + */ + mdCtrlFormIndex: { type: Number, required: false }, }, setup(props) { const c = useControlController( @@ -55,6 +64,9 @@ export const EditFormControl: ReturnType = const filter = ref(undefined); if (props.isSimple) { + if (props.simpleDataIndex || props.simpleDataIndex === 0) { + c.setSimpleDataIndex(props.simpleDataIndex); + } c.evt.on('onMounted', () => { // 第一次data直接赋值,后面默认加载会走load c.setSimpleData(props.data || {}); @@ -76,6 +88,10 @@ export const EditFormControl: ReturnType = ); } + // 多数据部件表单模式下传入的数据索引直接设置到state中 + if (props.mdCtrlFormIndex || props.mdCtrlFormIndex === 0) { + c.setMdCtrlFormIndex(props.mdCtrlFormIndex); + } c.evt.on('onCreated', () => { // 表单成员state响应式 const keys = Object.keys(c.details); diff --git a/src/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.tsx b/src/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.tsx index 1b9b858c..0e088048 100644 --- a/src/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.tsx +++ b/src/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.tsx @@ -57,7 +57,7 @@ export const FormMDCtrlForm = defineComponent({ onRemoveClick={(item: IData) => this.controller.remove(item.id)} > {{ - item: ({ data }: { data: IData }) => { + item: ({ data, index }: { data: IData; index: number }) => { if (!formProvider) { return (
@@ -69,7 +69,9 @@ export const FormMDCtrlForm = defineComponent({ class: this.ns.be('item', 'form'), modelData: model.contentControl!, context: data.context, + key: data.id, params: data.params, + mdCtrlFormIndex: index, onCreated: (event: EventBase) => { this.onCreated(data.id, event); }, diff --git a/src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.tsx b/src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.tsx index 26d53ce8..b55b1ed3 100644 --- a/src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.tsx +++ b/src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.tsx @@ -54,6 +54,7 @@ export const RepeaterMultiForm = defineComponent({ { this.onValueChange(value, index); diff --git a/src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.tsx b/src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.tsx index e0ab4e68..5646f716 100644 --- a/src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.tsx +++ b/src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.tsx @@ -19,6 +19,9 @@ export const RepeaterSingleForm = defineComponent({ type: FormMDCtrlRepeaterController, required: true, }, + simpleDataIndex: { + type: Number, + }, }, emits: { change: (_value: IData) => true, @@ -58,6 +61,7 @@ export const RepeaterSingleForm = defineComponent({ context={this.controller.context} params={this.controller.params} modelData={this.controller.repeatedForm} + simpleDataIndex={this.simpleDataIndex} isSimple={true} data={this.data} onFormDataChange={this.onFormDataChange} -- Gitee