-
Notifications
You must be signed in to change notification settings - Fork 7.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(batch-add-formitem):fix the form not working when setFieldsValue through form-groups and add a demo with form groups #3765
fix(batch-add-formitem):fix the form not working when setFieldsValue through form-groups and add a demo with form groups #3765
Conversation
这个有相关issue吗? |
issue区中没有看到相关的issue,这是我在实际开发中发现的问题。可以通过pr demo中的 setFieldsValue 来进行测试,在这个pr之前,对这个demo代码使用 setFieldsValue对于表单组是不生效的 |
好的,我晚点测试测试 |
好嘞,麻烦你拉,我clone了一个main分支下的vben admin ,可以直观看到修改前bug的复现(url: #/comp/form/appendForm) 在点击 上方链接的 |
@electroluxcode 你提供的codesandbox链接我无法打开
Screenity.video.-.Apr.20.2024.mp4我测试下 没有复现你的问题,是哪个步骤出差错了吗? |
你的这个demo其是复现的是表单项的增删,这个地方没有问题。而批量增删表单组,例如设置一个数组的默认值是有问题的。示例如下 <template>
<PageWrapper title="表单增删示例">
<CollapseContainer title="表单组增删" class="my-3">
<a-button @click="setGroup">设置初始值</a-button>
<a-button class="m-2" @click="addGroup"> 批量添加表单 </a-button>
<a-button @click="delGroup">批量减少表单</a-button>
<BasicForm @register="registerGroup" @submit="handleSubmitGroup">
</BasicForm>
</CollapseContainer>
</PageWrapper>
</template>
<script lang="ts" setup>
import { ref } from "vue";
import { BasicForm, useForm } from "@/components/Form";
import { CollapseContainer } from "@/components/Container";
import { PageWrapper } from "@/components/Page";
import { useMessage } from "@/hooks/web/useMessage";
const { createMessage } = useMessage();
const count = ref(0);
const [
registerGroup,
{
appendSchemaByField: appendSchemaByFieldGroup,
removeSchemaByField: removeSchemaByFieldGroup,
getFieldsValue: getFieldsValueGroup,
setFieldsValue,
},
] = useForm({
schemas: [
{
field: `field[${count.value}].a`,
component: "Input",
label: "字段a",
colProps: { span: 9 },
},
{
field: `field[${count.value}].b`,
colProps: { span: 9 },
component: "Input",
label: "字段b",
},
],
labelWidth: 100,
actionColOptions: { span: 24 },
baseColProps: { span: 8 },
});
function addGroup() {
count.value++;
appendSchemaByFieldGroup(
[
{
field: `field[${count.value}].a`,
component: "Input",
colProps: { span: 9 },
label: "字段a",
},
{
field: `field[${count.value}].b`,
component: "Input",
colProps: { span: 9 },
label: "字段b",
},
],
""
);
}
function delGroup() {
removeSchemaByFieldGroup([
`field[${count.value}].a`,
`field[${count.value}].b`,
]);
count.value--;
}
function setGroup() {
setFieldsValue({
field: [
{
a: "默认a",
b: "默认b",
},
],
});
}
function handleSubmitGroup() {
createMessage.success("请前往控制台查看输出");
console.log(getFieldsValueGroup());
}
</script>
|
@electroluxcode LGTM! 下次可以先开个issue, pr链接到issue上 |
… add a demo with form groups (#3765) * fix(util): 修复form表单批量添加的时候用setFieldsValue和model设置不生效的问题 * feat(demo): 为表单组增删添加表单组增删的demo与给出表单组赋值修复后setFieldsValue的示例
General
[ x] Pull request template structure not broken
1.修复不能通过form组件的 setFieldsValue和modal 进行表单组赋值的问题
2.添加增删表单组的示例,可以一组组添加并且增删与赋值(之前
表单增删示例
的demo重命名成表单项了,因为从源码看这里本质是一项项添加的)