diff --git a/CHANGELOG.md b/CHANGELOG.md index e565ebc632f9c471ae312edea080ac48a86d15fe..d27f27d905272c0136e12555622fad9cba9ccbc4 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 08d0879accafbc5aa7f32cc59ecb1769b44bf31c..f2178e85a1d4e243aa195feee821099b782d36d8 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 1b9b858ce06543cb755d594d6f727567bcfac435..0e0880482f1356cde799a23cc32db01dad2f995d 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 26d53ce8f7346736671756a18ab4ec122c91949f..b55b1ed3106f869082db4003acff3d81d6ce9698 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 e0ab4e68b34c4295ea6f2e6b59b9a3d1f163d490..5646f716d947b58c05b5ef3777709af821e1273c 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}