vben
2020-10-23 c7cfeb54560972db3e4e30bb27997d3f9343e5ff
chore: form reset logic modification
5个文件已修改
65 ■■■■■ 已修改文件
CHANGELOG.zh_CN.md 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/src/BasicForm.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/src/FormItem.tsx 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layouts/default/multitabs/index.tsx 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/table/tableData.tsx 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CHANGELOG.zh_CN.md
@@ -8,6 +8,7 @@
### 🎫 Chores
- 删除代码内的可选链语法
- 表单重置逻辑修改
### 🐛 Bug Fixes
src/components/Form/src/BasicForm.vue
@@ -194,7 +194,7 @@
              model: formModel,
              field: schema.field,
              values: {
                ...unerf(defaultValueRef),
                ...unref(defaultValueRef),
                ...formModel,
              },
            });
@@ -271,11 +271,11 @@
        const formEl = unref(formElRef);
        if (!formEl) return;
        Object.keys(formModel).forEach((key) => {
          (formModel as any)[key] = undefined;
          (formModel as any)[key] = defaultValueRef.value[key];
        });
        const values = formEl.resetFields();
        // const values = formEl.resetFields();
        emit('reset', toRaw(formModel));
        return values;
        // return values;
      }
      /**
src/components/Form/src/FormItem.tsx
@@ -139,6 +139,7 @@
      }
      return rules;
    }
    function renderComponent() {
      const {
        componentProps,
@@ -163,7 +164,6 @@
          }
        },
      };
      const Comp = componentMap.get(component);
      const { autoSetPlaceHolder, size } = props.formProps;
@@ -189,9 +189,22 @@
      const bindValue = {
        [isCheck ? 'checked' : 'value']: (props.formModel as any)[field],
      };
      // TODO先兼容antd的警告,后面官方修复后删除
      if (component === 'Select') {
        if (Reflect.has(propsData, 'options')) {
          propsData.options = propsData.options.map((item: any) => {
            return {
              key: item.value,
              ...item,
            };
          });
        }
      }
      if (!renderComponentContent) {
        return <Comp {...propsData} {...on} {...bindValue} />;
      }
      return (
        <Comp {...propsData} {...on} {...bindValue}>
          {{
src/layouts/default/multitabs/index.tsx
@@ -8,7 +8,7 @@
  computed,
  // ref,
  unref,
  onMounted,
  // onMounted,
  toRaw,
} from 'vue';
import { Tabs } from 'ant-design-vue';
@@ -24,7 +24,7 @@
import { closeTab } from './useTabDropdown';
import router from '/@/router';
import { useTabs } from '/@/hooks/web/useTabs';
import { PageEnum } from '/@/enums/pageEnum';
// import { PageEnum } from '/@/enums/pageEnum';
import './index.less';
export default defineComponent({
@@ -33,14 +33,17 @@
    let isAddAffix = false;
    const go = useGo();
    const { currentRoute } = useRouter();
    const { addTab, activeKeyRef } = useTabs();
    onMounted(() => {
      const route = unref(currentRoute);
      addTab(unref(currentRoute).path as PageEnum, false, {
        query: route.query,
        params: route.params,
      });
    });
    const {
      // addTab,
      activeKeyRef,
    } = useTabs();
    // onMounted(() => {
    // const route = unref(currentRoute);
    // addTab(unref(currentRoute).path as PageEnum, false, {
    //   query: route.query,
    //   params: route.params,
    // });
    // });
    // 当前激活tab
    // const activeKeyRef = ref<string>('');
@@ -64,14 +67,14 @@
        // 监听路由的话虽然可以,但是路由切换的时间会造成卡顿现象?
        // 使用useTab的addTab的话,当用户手动调转,需要自行调用addTab
        // tabStore.commitAddTab((unref(currentRoute) as unknown) as AppRouteRecordRaw);
        // const { affix } = currentRoute.value.meta || {};
        // if (affix) return;
        // const hasInTab = tabStore.getTabsState.some(
        //   (item) => item.fullPath === currentRoute.value.fullPath
        // );
        // if (!hasInTab) {
        //   tabStore.commitAddTab((unref(currentRoute) as unknown) as AppRouteRecordRaw);
        // }
        const { affix } = currentRoute.value.meta || {};
        if (affix) return;
        const hasInTab = tabStore.getTabsState.some(
          (item) => item.fullPath === currentRoute.value.fullPath
        );
        if (!hasInTab) {
          tabStore.commitAddTab((unref(currentRoute) as unknown) as AppRouteRecordRaw);
        }
      },
      {
        immediate: true,
src/views/demo/table/tableData.tsx
@@ -239,12 +239,10 @@
            {
              label: '选项1',
              value: '1',
              key: '1',
            },
            {
              label: '选项2',
              value: '2',
              key: '2',
            },
          ],
        },