vben
2021-08-24 56a966cfbf8db5b29a42185f0f25a0e800c30dbb
chore: format code
148个文件已修改
509 ■■■■ 已修改文件
.vscode/launch.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
README.zh-CN.md 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
build/generate/icon/index.ts 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
build/script/buildConf.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
build/vite/plugin/compress.ts 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
build/vite/plugin/index.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
mock/_util.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
mock/sys/user.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
prettier.config.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/App.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/sys/upload.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/sys/user.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Application/src/AppDarkModeToggle.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Application/src/search/AppSearchModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Basic/src/BasicHelp.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Button/src/PopConfirmButton.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/CodeEditor/src/codemirror/CodeMirror.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Cropper/src/CropperAvatar.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Description/src/typing.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Drawer/src/BasicDrawer.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/FlowChart/src/FlowChart.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/src/BasicForm.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/src/components/ApiSelect.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/src/components/ApiTreeSelect.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/src/components/FormAction.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/src/components/FormItem.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/src/helper.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/src/hooks/useAdvanced.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/src/hooks/useForm.ts 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/src/hooks/useFormEvents.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/src/types/form.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Icon/src/IconPicker.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Loading/src/useLoading.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Markdown/src/Markdown.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Menu/src/BasicMenu.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Menu/src/useOpenKeys.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Modal/src/BasicModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Modal/src/components/ModalWrapper.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Page/src/PageWrapper.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Qrcode/src/Qrcode.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Qrcode/src/drawCanvas.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Scrollbar/src/bar.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/SimpleMenu/src/SimpleMenu.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/SimpleMenu/src/components/Menu.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/SimpleMenu/src/components/MenuItem.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/SimpleMenu/src/components/SubMenuItem.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/SimpleMenu/src/useOpenKeys.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/StrengthMeter/src/StrengthMeter.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/src/BasicTable.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/src/components/editable/CellComponent.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/src/components/editable/EditableCell.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/src/components/settings/ColumnSetting.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/src/hooks/useColumns.ts 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/src/hooks/useCustomRow.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/src/hooks/useDataSource.ts 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/src/hooks/useLoading.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/src/hooks/useRowSelection.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/src/hooks/useTable.ts 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/src/hooks/useTableExpand.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/src/hooks/useTableFooter.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/src/hooks/useTableForm.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/src/hooks/useTableHeader.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/src/hooks/useTableScroll.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Time/src/Time.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Tinymce/src/Editor.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Transition/index.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Transition/src/CreateTransition.tsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Tree/src/Tree.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Tree/src/TreeHeader.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Tree/src/useTree.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Upload/src/BasicUpload.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Upload/src/FileList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Upload/src/UploadModal.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Upload/src/UploadPreviewModal.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Verify/src/DragVerify.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Verify/src/ImgRotate.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/directives/loading.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/component/useFormItem.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/core/useContext.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/core/useLockFn.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/core/useTimeout.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/event/useEventListener.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/event/useScroll.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/setting/index.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/setting/useMenuSetting.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/setting/useRootSetting.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/web/useContentHeight.ts 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/web/useCopyToClipboard.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/web/useECharts.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/web/usePermission.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/web/useTitle.ts 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/web/useWatermark.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layouts/default/content/useContentViewHeight.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layouts/default/header/components/notify/NoticeList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layouts/default/menu/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layouts/default/menu/useLayoutMenu.ts 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layouts/default/setting/components/SettingFooter.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layouts/default/tabs/components/FoldButton.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layouts/default/tabs/components/TabContent.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/logics/error-handle/index.ts 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/logics/mitt/routeChange.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.ts 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/helper/routeHelper.ts 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/user.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/cache/memory.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/color.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/dateUtil.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/domUtils.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/env.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/helper/treeHelper.ts 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/http/axios/axiosTransform.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/http/axios/checkStatus.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/http/axios/helper.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/http/axios/index.ts 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/index.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/analysis/components/SalesProductPie.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/analysis/components/VisitRadar.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/analysis/components/VisitSource.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/workbench/components/ProjectCard.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/workbench/components/SaleRadar.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/charts/SaleRadar.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/comp/drawer/Drawer3.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/comp/drawer/Drawer5.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/comp/modal/Modal1.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/comp/modal/Modal3.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/comp/qrcode/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/feat/breadcrumb/ChildrenListDetail.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/feat/breadcrumb/FlatListDetail.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/feat/download/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/feat/ripple/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/form/AppendForm.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/form/DynamicForm.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/main-out/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/page/account/setting/AccountBind.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/page/account/setting/BaseSetting.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/page/account/setting/MsgNotify.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/page/account/setting/SecureSetting.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/page/desc/high/index.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/page/result/fail/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/page/result/success/index.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/permission/back/Btn.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/permission/back/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/permission/front/AuthPageA.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/demo/permission/front/AuthPageB.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sys/error-log/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sys/lock/LockPage.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sys/login/LoginForm.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
tests/server/index.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vscode/launch.json
@@ -8,6 +8,6 @@
      "url": "http://localhost:3100",
      "webRoot": "${workspaceFolder}/src",
      "sourceMaps": true
    },
    }
  ]
}
README.zh-CN.md
@@ -150,7 +150,7 @@
## 后台整合示例
- [lamp-cloud](https://github.com/zuihou/lamp-cloud) - 基于 SpringCloud Alibaba 的微服务中后台快速开发平台
- [matecloud](https://github.com/matevip/matecloud) - MateCloud微服务脚手架,基于Spring Cloud 2020.0.3、SpringBoot 2.5.3的全开源平台
- [matecloud](https://github.com/matevip/matecloud) - MateCloud 微服务脚手架,基于 Spring Cloud 2020.0.3、SpringBoot 2.5.3 的全开源平台
## 维护者
build/generate/icon/index.ts
@@ -52,19 +52,19 @@
          const { prefix } = data;
          const isLocal = useType === 'local';
          const icons = Object.keys(data.icons).map(
            (item) => `${isLocal ? prefix + ':' : ''}${item}`
            (item) => `${isLocal ? prefix + ':' : ''}${item}`,
          );
          await fs.writeFileSync(
            path.join(output, `icons.data.ts`),
            `export default ${isLocal ? JSON.stringify(icons) : JSON.stringify({ prefix, icons })}`
            `export default ${isLocal ? JSON.stringify(icons) : JSON.stringify({ prefix, icons })}`,
          );
          prefixSet.push(prefix);
        }
      }
      fs.emptyDir(path.join(process.cwd(), 'node_modules/.vite'));
      console.log(
        `✨ ${chalk.cyan(`[${pkg.name}]`)}` + ' - Icon generated successfully:' + `[${prefixSet}]`
        `✨ ${chalk.cyan(`[${pkg.name}]`)}` + ' - Icon generated successfully:' + `[${prefixSet}]`,
      );
    });
}
build/script/buildConf.ts
@@ -15,7 +15,7 @@
    configName,
    config,
    configFileName = GLOB_CONFIG_FILE_NAME,
  }: { configName: string; config: any; configFileName?: string } = { configName: '', config: {} }
  }: { configName: string; config: any; configFileName?: string } = { configName: '', config: {} },
) {
  try {
    const windowConf = `window.${configName}`;
build/vite/plugin/compress.ts
@@ -7,7 +7,7 @@
export function configCompressPlugin(
  compress: 'gzip' | 'brotli' | 'none',
  deleteOriginFile = false
  deleteOriginFile = false,
): Plugin | Plugin[] {
  const compressList = compress.split(',');
@@ -18,7 +18,7 @@
      compressPlugin({
        ext: '.gz',
        deleteOriginFile,
      })
      }),
    );
  }
@@ -28,7 +28,7 @@
        ext: '.br',
        algorithm: 'brotliCompress',
        deleteOriginFile,
      })
      }),
    );
  }
  return plugins;
build/vite/plugin/index.ts
@@ -68,7 +68,7 @@
    // rollup-plugin-gzip
    vitePlugins.push(
      configCompressPlugin(VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE)
      configCompressPlugin(VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE),
    );
    // vite-plugin-pwa
mock/_util.ts
@@ -13,7 +13,7 @@
  page: number,
  pageSize: number,
  list: T[],
  { message = 'ok' } = {}
  { message = 'ok' } = {},
) {
  const pageData = pagination(page, pageSize, list);
mock/sys/user.ts
@@ -52,7 +52,7 @@
    response: ({ body }) => {
      const { username, password } = body;
      const checkUser = createFakeUserList().find(
        (item) => item.username === username && password === item.password
        (item) => item.username === username && password === item.password,
      );
      if (!checkUser) {
        return resultError('Incorrect account or password!');
prettier.config.js
@@ -7,7 +7,7 @@
  singleQuote: true,
  quoteProps: 'as-needed',
  bracketSpacing: true,
  trailingComma: 'es5',
  trailingComma: 'all',
  jsxBracketSameLine: false,
  jsxSingleQuote: false,
  arrowParens: 'always',
@@ -16,5 +16,4 @@
  proseWrap: 'never',
  htmlWhitespaceSensitivity: 'strict',
  endOfLine: 'auto',
  rangeStart: 0,
};
src/App.vue
@@ -15,5 +15,6 @@
  // support Multi-language
  const { getAntdLocale } = useLocale();
  // Listening to page changes and dynamically changing site titles
  useTitle();
</script>
src/api/sys/upload.ts
@@ -10,13 +10,13 @@
 */
export function uploadApi(
  params: UploadFileParams,
  onUploadProgress: (progressEvent: ProgressEvent) => void
  onUploadProgress: (progressEvent: ProgressEvent) => void,
) {
  return defHttp.uploadFile<UploadApiResult>(
    {
      url: uploadUrl,
      onUploadProgress,
    },
    params
    params,
  );
}
src/api/sys/user.ts
@@ -21,7 +21,7 @@
    },
    {
      errorMessageMode: mode,
    }
    },
  );
}
src/components/Application/src/AppDarkModeToggle.vue
@@ -1,6 +1,6 @@
<template>
  <div v-if="getShowDarkModeToggle" :class="getClass" @click="toggleDarkMode">
    <div :class="`${prefixCls}-inner`"> </div>
    <div :class="`${prefixCls}-inner`"></div>
    <SvgIcon size="14" name="sun" />
    <SvgIcon size="14" name="moon" />
  </div>
src/components/Application/src/search/AppSearchModal.vue
@@ -105,7 +105,7 @@
        nextTick(() => {
          unref(inputRef)?.focus();
        });
    }
    },
  );
  function handleClose() {
src/components/Basic/src/BasicHelp.vue
@@ -47,7 +47,7 @@
      const { prefixCls } = useDesign('basic-help');
      const getTooltipStyle = computed(
        (): CSSProperties => ({ color: props.color, fontSize: props.fontSize })
        (): CSSProperties => ({ color: props.color, fontSize: props.fontSize }),
      );
      const getOverlayStyle = computed((): CSSProperties => ({ maxWidth: props.maxWidth }));
src/components/Button/src/PopConfirmButton.vue
@@ -33,7 +33,7 @@
            okText: t('common.okText'),
            cancelText: t('common.cancelText'),
          },
          { ...props, ...unref(attrs) }
          { ...props, ...unref(attrs) },
        );
      });
src/components/CodeEditor/src/codemirror/CodeMirror.vue
@@ -1,5 +1,5 @@
<template>
  <div class="relative !h-full w-full overflow-hidden" ref="el"> </div>
  <div class="relative !h-full w-full overflow-hidden" ref="el"></div>
</template>
<script lang="ts" setup>
@@ -40,7 +40,7 @@
        editor?.setValue(value ? value : '');
      }
    },
    { flush: 'post' }
    { flush: 'post' },
  );
  watchEffect(() => {
@@ -54,13 +54,13 @@
    },
    {
      immediate: true,
    }
    },
  );
  function setTheme() {
    unref(editor)?.setOption(
      'theme',
      appStore.getDarkMode === 'light' ? 'idea' : 'material-palenight'
      appStore.getDarkMode === 'light' ? 'idea' : 'material-palenight',
    );
  }
src/components/Cropper/src/CropperAvatar.vue
@@ -77,7 +77,7 @@
      const getStyle = computed((): CSSProperties => ({ width: unref(getWidth) }));
      const getImageWrapperStyle = computed(
        (): CSSProperties => ({ width: unref(getWidth), height: unref(getWidth) })
        (): CSSProperties => ({ width: unref(getWidth), height: unref(getWidth) }),
      );
      watchEffect(() => {
@@ -88,7 +88,7 @@
        () => sourceValue.value,
        (v: string) => {
          emit('update:value', v);
        }
        },
      );
      function handleUploadSuccess({ source }) {
src/components/Description/src/typing.ts
@@ -14,7 +14,7 @@
  // render
  render?: (
    val: any,
    data: Recordable
    data: Recordable,
  ) => VNode | undefined | JSX.Element | Element | string | number;
}
src/components/Drawer/src/BasicDrawer.vue
@@ -139,7 +139,7 @@
        (newVal, oldVal) => {
          if (newVal !== oldVal) visibleRef.value = newVal;
        },
        { deep: true }
        { deep: true },
      );
      watch(
@@ -149,7 +149,7 @@
            emit('visible-change', visible);
            instance && drawerInstance.emitVisible?.(visible, instance.uid);
          });
        }
        },
      );
      // Cancel event
src/components/FlowChart/src/FlowChart.vue
@@ -79,7 +79,7 @@
        () => props.data,
        () => {
          onRender();
        }
        },
      );
      // TODO
@@ -94,7 +94,7 @@
        () => unref(getFlowOptions),
        (options) => {
          unref(lfInstance)?.updateEditConfig(options);
        }
        },
      );
      // init logicFlow
src/components/Form/src/BasicForm.vue
@@ -110,7 +110,7 @@
      });
      const getBindValue = computed(
        () => ({ ...attrs, ...props, ...unref(getProps) } as Recordable)
        () => ({ ...attrs, ...props, ...unref(getProps) } as Recordable),
      );
      const getSchema = computed((): FormSchema[] => {
@@ -198,14 +198,14 @@
        },
        {
          immediate: true,
        }
        },
      );
      watch(
        () => unref(getProps).schemas,
        (schemas) => {
          resetSchema(schemas ?? []);
        }
        },
      );
      watch(
@@ -222,7 +222,7 @@
            initDefault();
            isInitedDefaultRef.value = true;
          }
        }
        },
      );
      async function setProps(formProps: Partial<FormProps>): Promise<void> {
@@ -284,7 +284,7 @@
        setFormModel,
        getFormClass,
        getFormActionBindProps: computed(
          (): Recordable => ({ ...getProps.value, ...advanceState })
          (): Recordable => ({ ...getProps.value, ...advanceState }),
        ),
        ...formActionType,
      };
src/components/Form/src/components/ApiSelect.vue
@@ -100,7 +100,7 @@
        () => {
          !unref(isFirstLoad) && fetch();
        },
        { deep: true }
        { deep: true },
      );
      async function fetch() {
src/components/Form/src/components/ApiTreeSelect.vue
@@ -46,14 +46,14 @@
        () => {
          isFirstLoaded.value && fetch();
        },
        { deep: true }
        { deep: true },
      );
      watch(
        () => props.immediate,
        (v) => {
          v && !isFirstLoaded.value && fetch();
        }
        },
      );
      onMounted(() => {
src/components/Form/src/components/FormAction.vue
@@ -105,7 +105,7 @@
          {
            text: t('common.resetText'),
          },
          props.resetButtonOptions
          props.resetButtonOptions,
        );
      });
@@ -114,7 +114,7 @@
          {
            text: t('common.queryText'),
          },
          props.submitButtonOptions
          props.submitButtonOptions,
        );
      });
src/components/Form/src/components/FormItem.vue
@@ -183,7 +183,7 @@
        }
        const requiredRuleIndex: number = rules.findIndex(
          (rule) => Reflect.has(rule, 'required') && !Reflect.has(rule, 'validator')
          (rule) => Reflect.has(rule, 'required') && !Reflect.has(rule, 'validator'),
        );
        if (requiredRuleIndex !== -1) {
src/components/Form/src/helper.ts
@@ -38,7 +38,7 @@
export function setComponentRuleType(
  rule: ValidationRule,
  component: ComponentType,
  valueFormat: string
  valueFormat: string,
) {
  if (['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker'].includes(component)) {
    rule.type = valueFormat ? 'string' : 'object';
src/components/Form/src/hooks/useAdvanced.ts
@@ -58,7 +58,7 @@
        debounceUpdateAdvanced();
      }
    },
    { immediate: true }
    { immediate: true },
  );
  function getAdvanced(itemCol: Partial<ColEx>, itemColSum = 0, isLastAction = false) {
@@ -139,7 +139,7 @@
      if (isShow && (colProps || baseColProps)) {
        const { itemColSum: sum, isAdvanced } = getAdvanced(
          { ...baseColProps, ...colProps },
          itemColSum
          itemColSum,
        );
        itemColSum = sum || 0;
src/components/Form/src/hooks/useForm.ts
@@ -18,7 +18,7 @@
    const form = unref(formRef);
    if (!form) {
      error(
        'The form instance has not been obtained, please make sure that the form has been rendered when performing the form operation!'
        'The form instance has not been obtained, please make sure that the form has been rendered when performing the form operation!',
      );
    }
    await nextTick();
@@ -44,7 +44,7 @@
      {
        immediate: true,
        deep: true,
      }
      },
    );
  }
@@ -96,7 +96,7 @@
    appendSchemaByField: async (
      schema: FormSchema,
      prefixField: string | undefined,
      first: boolean
      first: boolean,
    ) => {
      const form = await getForm();
      form.appendSchemaByField(schema, prefixField, first);
src/components/Form/src/hooks/useFormEvents.ts
@@ -150,12 +150,12 @@
    }
    const hasField = updateData.every(
      (item) => item.component === 'Divider' || (Reflect.has(item, 'field') && item.field)
      (item) => item.component === 'Divider' || (Reflect.has(item, 'field') && item.field),
    );
    if (!hasField) {
      error(
        'All children of the form Schema array that need to be updated must contain the `field` field'
        'All children of the form Schema array that need to be updated must contain the `field` field',
      );
      return;
    }
@@ -172,12 +172,12 @@
    }
    const hasField = updateData.every(
      (item) => item.component === 'Divider' || (Reflect.has(item, 'field') && item.field)
      (item) => item.component === 'Divider' || (Reflect.has(item, 'field') && item.field),
    );
    if (!hasField) {
      error(
        'All children of the form Schema array that need to be updated must contain the `field` field'
        'All children of the form Schema array that need to be updated must contain the `field` field',
      );
      return;
    }
src/components/Form/src/types/form.ts
@@ -37,7 +37,7 @@
  appendSchemaByField: (
    schema: FormSchema,
    prefixField: string | undefined,
    first?: boolean | undefined
    first?: boolean | undefined,
  ) => Promise<void>;
  validateFields: (nameList?: NamePath[]) => Promise<any>;
  validate: (nameList?: NamePath[]) => Promise<any>;
src/components/Icon/src/IconPicker.vue
@@ -63,7 +63,7 @@
            </div>
          </div>
          <template v-else
            ><div class="p-5"> <Empty /></div>
            ><div class="p-5"><Empty /></div>
          </template>
        </template>
@@ -139,7 +139,7 @@
      const { getPaginationList, getTotal, setCurrentPage } = usePagination(
        currentList,
        props.pageSize
        props.pageSize,
      );
      watchEffect(() => {
@@ -151,7 +151,7 @@
        (v) => {
          emit('update:value', v);
          return emit('change', v);
        }
        },
      );
      function handlePageChange(page: number) {
src/components/Loading/src/useLoading.ts
@@ -16,7 +16,7 @@
export function useLoading(opt: Partial<UseLoadingOptions>): [Fn, Fn, (string) => void];
export function useLoading(
  opt: Partial<LoadingProps> | Partial<UseLoadingOptions>
  opt: Partial<LoadingProps> | Partial<UseLoadingOptions>,
): [Fn, Fn, (string) => void] {
  let props: Partial<LoadingProps>;
  let target: HTMLElement | Ref<ElRef> = document.body;
src/components/Markdown/src/Markdown.vue
@@ -52,7 +52,7 @@
        {
          immediate: true,
          flush: 'post',
        }
        },
      );
      watch(
@@ -62,7 +62,7 @@
            instance.getVditor()?.setValue(v);
          }
          valueRef.value = v;
        }
        },
      );
      const getCurrentLang = computed((): 'zh_CN' | 'en_US' | 'ja_JP' | 'ko_KR' => {
src/components/Menu/src/BasicMenu.vue
@@ -64,7 +64,7 @@
        menuState,
        items,
        mode as any,
        accordion
        accordion,
      );
      const getIsTopMenu = computed(() => {
@@ -114,7 +114,7 @@
          () => props.items,
          () => {
            handleMenuChange();
          }
          },
        );
      async function handleMenuClick({ key }: { key: string; keyPath: string[] }) {
src/components/Menu/src/useOpenKeys.ts
@@ -14,7 +14,7 @@
  menuState: MenuState,
  menus: Ref<MenuType[]>,
  mode: Ref<MenuModeEnum>,
  accordion: Ref<boolean>
  accordion: Ref<boolean>,
) {
  const { getCollapsed, getIsMixSidebar } = useMenuSetting();
@@ -37,7 +37,7 @@
        }
      },
      16,
      !native
      !native,
    );
  }
src/components/Modal/src/BasicModal.vue
@@ -169,7 +169,7 @@
        },
        {
          immediate: false,
        }
        },
      );
      // 取消事件
src/components/Modal/src/components/ModalWrapper.vue
@@ -62,7 +62,7 @@
        {
          attributes: true,
          subtree: true,
        }
        },
      );
      createModalContext({
@@ -89,7 +89,7 @@
          } else {
            minRealHeightRef.value = realHeightRef.value;
          }
        }
        },
      );
      onMounted(() => {
src/components/Page/src/PageWrapper.vue
@@ -71,7 +71,7 @@
      provide(
        PageWrapperFixedHeightKey,
        computed(() => props.fixedHeight)
        computed(() => props.fixedHeight),
      );
      const getIsContentFullHeight = computed(() => {
@@ -82,7 +82,7 @@
        getIsContentFullHeight,
        wrapperRef,
        [headerRef, footerRef],
        [contentRef]
        [contentRef],
      );
      setCompensation({ useLayoutFooter: true, elements: [footerRef] });
@@ -135,7 +135,7 @@
        {
          flush: 'post',
          immediate: true,
        }
        },
      );
      return {
src/components/Qrcode/src/Qrcode.vue
@@ -103,7 +103,7 @@
        },
        {
          deep: true,
        }
        },
      );
      return { wrapRef, download };
src/components/Qrcode/src/drawCanvas.ts
@@ -7,9 +7,9 @@
  canvas,
  content,
  width = 0,
  options: params = {}
  options: params = {},
}: RenderQrCodeParams) => {
  const options = cloneDeep(params)
  const options = cloneDeep(params);
  // 容错率,默认对内容少的二维码采用高容错率,内容多的二维码采用低容错率
  options.errorCorrectionLevel = options.errorCorrectionLevel || getErrorCorrectionLevel(content);
src/components/Scrollbar/src/bar.ts
@@ -44,7 +44,7 @@
    const clickTrackHandler = (e: any) => {
      const offset = Math.abs(
        e.target.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]
        e.target.getBoundingClientRect()[bar.value.direction] - e[bar.value.client],
      );
      const thumbHalf = thumb.value[bar.value.offset] / 2;
      const thumbPositionPercentage =
@@ -104,7 +104,7 @@
            move: props.move,
            bar: bar.value,
          }),
        })
        }),
      );
  },
});
src/components/SimpleMenu/src/SimpleMenu.vue
@@ -75,7 +75,7 @@
        items,
        accordion,
        mixSider,
        collapse
        collapse,
      );
      const getBindValues = computed(() => ({ ...attrs, ...props }));
@@ -89,7 +89,7 @@
            setOpenKeys(currentRoute.value.path);
          }
        },
        { immediate: true }
        { immediate: true },
      );
      watch(
@@ -100,7 +100,7 @@
          }
          setOpenKeys(currentRoute.value.path);
        },
        { flush: 'post' }
        { flush: 'post' },
      );
      listenerRouteChange((route) => {
src/components/SimpleMenu/src/components/Menu.vue
@@ -87,7 +87,7 @@
          nextTick(() => {
            updateOpened();
          });
        }
        },
      );
      function updateOpened() {
src/components/SimpleMenu/src/components/MenuItem.vue
@@ -98,7 +98,7 @@
            active.value = false;
          }
        },
        { immediate: true }
        { immediate: true },
      );
      return { getClass, prefixCls, getItemStyle, getCollapse, handleClickItem, showTooptip };
src/components/SimpleMenu/src/components/SubMenuItem.vue
@@ -286,7 +286,7 @@
            if (props.name && Array.isArray(data)) {
              state.opened = (data as (string | number)[]).includes(props.name);
            }
          }
          },
        );
        rootMenuEmitter.on('on-update-active-name:submenu', (data: number[]) => {
src/components/SimpleMenu/src/useOpenKeys.ts
@@ -15,7 +15,7 @@
  menus: Ref<MenuType[]>,
  accordion: Ref<boolean>,
  mixSider: Ref<boolean>,
  collapse: Ref<boolean>
  collapse: Ref<boolean>,
) {
  const debounceSetOpenKeys = useDebounceFn(setOpenKeys, 50);
  async function setOpenKeys(path: string) {
@@ -38,7 +38,7 @@
        menuState.activeSubMenuNames = menuState.openNames;
      },
      30,
      native
      native,
    );
  }
src/components/StrengthMeter/src/StrengthMeter.vue
@@ -59,7 +59,7 @@
        () => unref(innerValueRef),
        (val) => {
          emit('change', val);
        }
        },
      );
      return {
src/components/Table/src/BasicTable.vue
@@ -111,7 +111,7 @@
        unref(isFixedHeightPage) &&
          props.canResize &&
          warn(
            "'canResize' of BasicTable may not work in PageWrapper with 'fixedHeight' (especially in hot updates)"
            "'canResize' of BasicTable may not work in PageWrapper with 'fixedHeight' (especially in hot updates)",
          );
      });
@@ -157,7 +157,7 @@
          getFieldsValue: formActions.getFieldsValue,
          clearSelectedRowKeys,
        },
        emit
        emit,
      );
      function handleTableChange(...args) {
@@ -182,7 +182,7 @@
        tableElRef,
        getColumnsRef,
        getRowSelectionRef,
        getDataSourceRef
        getDataSourceRef,
      );
      const { customRow } = useCustomRow(getProps, {
@@ -211,7 +211,7 @@
        getProps,
        getScrollRef,
        tableElRef,
        getDataSourceRef
        getDataSourceRef,
      );
      const { getFormProps, replaceFormSlotKey, getFormSlotKeys, handleSearchInfoChange } =
src/components/Table/src/components/editable/CellComponent.ts
@@ -21,7 +21,7 @@
    popoverVisible,
    getPopupContainer,
  }: ComponentProps,
  { attrs }
  { attrs },
) => {
  const Comp = componentMap.get(component) as typeof defineComponent;
@@ -39,6 +39,6 @@
    {
      default: () => DefaultComp,
      content: () => ruleMessage,
    }
    },
  );
};
src/components/Table/src/components/editable/EditableCell.vue
@@ -5,9 +5,9 @@
      :class="{ [`${prefixCls}__normal`]: true, 'ellipsis-cell': column.ellipsis }"
      @click="handleEdit"
    >
      <div class="cell-content" :title="column.ellipsis ? getValues ?? '' : ''">{{
        getValues ? getValues : '&nbsp;'
      }}</div>
      <div class="cell-content" :title="column.ellipsis ? getValues ?? '' : ''">
        {{ getValues ? getValues : '&nbsp;' }}
      </div>
      <FormOutlined :class="`${prefixCls}__normal-icon`" v-if="!column.editRow" />
    </div>
src/components/Table/src/components/settings/ColumnSetting.vue
@@ -351,7 +351,7 @@
          const visible =
            columns.findIndex(
              (c: BasicColumn | string) =>
                c === col.value || (typeof c !== 'string' && c.dataIndex === col.value)
                c === col.value || (typeof c !== 'string' && c.dataIndex === col.value),
            ) !== -1;
          return { dataIndex: col.value, fixed: col.fixed, visible };
        });
src/components/Table/src/hooks/useColumns.ts
@@ -40,7 +40,7 @@
function handleIndexColumn(
  propsRef: ComputedRef<BasicTableProps>,
  getPaginationRef: ComputedRef<boolean | PaginationProps>,
  columns: BasicColumn[]
  columns: BasicColumn[],
) {
  const { t } = useI18n();
@@ -102,7 +102,7 @@
export function useColumns(
  propsRef: ComputedRef<BasicTableProps>,
  getPaginationRef: ComputedRef<boolean | PaginationProps>
  getPaginationRef: ComputedRef<boolean | PaginationProps>,
) {
  const columnsRef = ref(unref(propsRef).columns) as unknown as Ref<BasicColumn[]>;
  let cacheColumns = unref(propsRef).columns;
@@ -122,7 +122,7 @@
      handleItem(
        item,
        Reflect.has(item, 'ellipsis') ? !!item.ellipsis : !!ellipsis && !customRender && !slots
        Reflect.has(item, 'ellipsis') ? !!item.ellipsis : !!ellipsis && !customRender && !slots,
      );
    });
    return columns;
@@ -179,7 +179,7 @@
    (columns) => {
      columnsRef.value = columns;
      cacheColumns = columns?.filter((item) => !item.flag) ?? [];
    }
    },
  );
  function setCacheColumnsByField(dataIndex: string | undefined, value: Partial<BasicColumn>) {
@@ -288,7 +288,7 @@
    defColumns.push(column);
  }
  return [...fixedLeftColumns, ...defColumns, ...fixedRightColumns].filter(
    (item) => !item.defaultHidden
    (item) => !item.defaultHidden,
  );
}
src/components/Table/src/hooks/useCustomRow.ts
@@ -15,7 +15,7 @@
function getKey(
  record: Recordable,
  rowKey: string | ((record: Record<string, any>) => string) | undefined,
  autoCreateKey?: boolean
  autoCreateKey?: boolean,
) {
  if (!rowKey || autoCreateKey) {
    return record[ROW_KEY];
@@ -31,7 +31,7 @@
export function useCustomRow(
  propsRef: ComputedRef<BasicTableProps>,
  { setSelectedRowKeys, getSelectRowKeys, getAutoCreateKey, clearSelectedRowKeys, emit }: Options
  { setSelectedRowKeys, getSelectRowKeys, getAutoCreateKey, clearSelectedRowKeys, emit }: Options,
) {
  const customRow = (record: Recordable, index: number) => {
    return {
src/components/Table/src/hooks/useDataSource.ts
@@ -40,7 +40,7 @@
    clearSelectedRowKeys,
    tableData,
  }: ActionType,
  emit: EmitType
  emit: EmitType,
) {
  const searchState = reactive<SearchState>({
    sortInfo: {},
@@ -61,13 +61,13 @@
    },
    {
      immediate: true,
    }
    },
  );
  function handleTableChange(
    pagination: PaginationProps,
    filters: Partial<Recordable<string[]>>,
    sorter: SorterResult
    sorter: SorterResult,
  ) {
    const { clearSelectOnPageChange, sortFn, filterFn } = unref(propsRef);
    if (clearSelectOnPageChange) {
@@ -148,7 +148,7 @@
  function updateTableDataRecord(
    rowKey: string | number,
    record: Recordable
    record: Recordable,
  ): Recordable | undefined {
    const row = findTableDataRecord(rowKey);
@@ -206,7 +206,7 @@
      const { pageField, sizeField, listField, totalField } = Object.assign(
        {},
        FETCH_SETTING,
        fetchSetting
        fetchSetting,
      );
      let pageParams: Recordable = {};
src/components/Table/src/hooks/useLoading.ts
@@ -8,7 +8,7 @@
    () => unref(props).loading,
    (loading) => {
      loadingRef.value = loading;
    }
    },
  );
  const getLoading = computed(() => unref(loadingRef));
src/components/Table/src/hooks/useRowSelection.ts
@@ -8,7 +8,7 @@
export function useRowSelection(
  propsRef: ComputedRef<BasicTableProps>,
  tableData: Ref<Recordable[]>,
  emit: EmitType
  emit: EmitType,
) {
  const selectedRowKeysRef = ref<string[]>([]);
  const selectedRowRef = ref<Recordable[]>([]);
@@ -35,7 +35,7 @@
    () => unref(propsRef).rowSelection?.selectedRowKeys,
    (v: string[]) => {
      setSelectedRowKeys(v);
    }
    },
  );
  watch(
@@ -53,7 +53,7 @@
        });
      });
    },
    { deep: true }
    { deep: true },
  );
  const getAutoCreateKey = computed(() => {
@@ -72,7 +72,7 @@
      (item) => rowKeys.includes(item[unref(getRowKey) as string]),
      {
        children: propsRef.value.childrenColumnName ?? 'children',
      }
      },
    );
    const trueSelectedRows: any[] = [];
    rowKeys.forEach((key: string) => {
src/components/Table/src/hooks/useTable.ts
@@ -18,7 +18,7 @@
  (instance: TableActionType, formInstance: UseTableMethod) => void,
  TableActionType & {
    getForm: () => FormActionType;
  }
  },
] {
  const tableRef = ref<Nullable<TableActionType>>(null);
  const loadedRef = ref<Nullable<boolean>>(false);
@@ -50,7 +50,7 @@
      {
        immediate: true,
        deep: true,
      }
      },
    );
  }
@@ -58,7 +58,7 @@
    const table = unref(tableRef);
    if (!table) {
      error(
        'The table instance has not been obtained yet, please make sure the table is presented when performing the table operation!'
        'The table instance has not been obtained yet, please make sure the table is presented when performing the table operation!',
      );
    }
    return table as TableActionType;
src/components/Table/src/hooks/useTableExpand.ts
@@ -6,7 +6,7 @@
export function useTableExpand(
  propsRef: ComputedRef<BasicTableProps>,
  tableData: Ref<Recordable[]>,
  emit: EmitType
  emit: EmitType,
) {
  const expandedRowKeys = ref<string[]>([]);
src/components/Table/src/hooks/useTableFooter.ts
@@ -12,7 +12,7 @@
    scrollToFirstRowOnChange: boolean;
  }>,
  tableElRef: Ref<ComponentRef>,
  getDataSourceRef: ComputedRef<Recordable>
  getDataSourceRef: ComputedRef<Recordable>,
) {
  const getIsEmptyData = computed(() => {
    return (unref(getDataSourceRef) || []).length === 0;
@@ -43,7 +43,7 @@
        name: 'scroll',
        listener: () => {
          const footerBodyDom = tableEl.$el.querySelector(
            '.ant-table-footer .ant-table-body'
            '.ant-table-footer .ant-table-body',
          ) as HTMLDivElement;
          if (!footerBodyDom || !bodyDom) return;
          footerBodyDom.scrollLeft = bodyDom.scrollLeft;
src/components/Table/src/hooks/useTableForm.ts
@@ -8,7 +8,7 @@
  propsRef: ComputedRef<BasicTableProps>,
  slots: Slots,
  fetch: (opt?: FetchParams | undefined) => Promise<void>,
  getLoading: ComputedRef<boolean | undefined>
  getLoading: ComputedRef<boolean | undefined>,
) {
  const getFormProps = computed((): Partial<FormProps> => {
    const { formConfig } = unref(propsRef);
src/components/Table/src/hooks/useTableHeader.ts
@@ -8,7 +8,7 @@
export function useTableHeader(
  propsRef: ComputedRef<BasicTableProps>,
  slots: Slots,
  handlers: InnerHandlers
  handlers: InnerHandlers,
) {
  const getHeaderProps = computed((): Recordable => {
    const { title, showTableSetting, titleHelpMessage, tableSetting } = unref(propsRef);
@@ -46,7 +46,7 @@
                      headerTop: () => getSlot(slots, 'headerTop'),
                    }
                  : {}),
              }
              },
            ),
    };
  });
src/components/Table/src/hooks/useTableScroll.ts
@@ -13,7 +13,7 @@
  tableElRef: Ref<ComponentRef>,
  columnsRef: ComputedRef<BasicColumn[]>,
  rowSelectionRef: ComputedRef<TableRowSelection<any> | null>,
  getDataSourceRef: ComputedRef<Recordable[]>
  getDataSourceRef: ComputedRef<Recordable[]>,
) {
  const tableHeightRef: Ref<Nullable<number>> = ref(null);
@@ -34,7 +34,7 @@
    },
    {
      flush: 'post',
    }
    },
  );
  function redoHeight() {
src/components/Time/src/Time.vue
@@ -34,7 +34,7 @@
        () => {
          setTime();
        },
        { immediate: true }
        { immediate: true },
      );
      function getTime() {
src/components/Tinymce/src/Editor.vue
@@ -190,7 +190,7 @@
            return;
          }
          editor.setMode(attrs.disabled ? 'readonly' : 'design');
        }
        },
      );
      onMountedOrActivated(() => {
@@ -264,7 +264,7 @@
          () => props.modelValue,
          (val: string, prevVal: string) => {
            setValue(editor, val, prevVal);
          }
          },
        );
        watch(
@@ -274,7 +274,7 @@
          },
          {
            immediate: true,
          }
          },
        );
        editor.on(normalizedEvents ? normalizedEvents : 'change keyup undo redo', () => {
src/components/Transition/index.ts
@@ -18,10 +18,10 @@
export const ExpandXTransition = createJavascriptTransition(
  'expand-x-transition',
  ExpandTransitionGenerator('', true)
  ExpandTransitionGenerator('', true),
);
export const ExpandTransition = createJavascriptTransition(
  'expand-transition',
  ExpandTransitionGenerator('')
  ExpandTransitionGenerator(''),
);
src/components/Transition/src/CreateTransition.tsx
@@ -41,7 +41,7 @@
export function createJavascriptTransition(
  name: string,
  functions: Recordable,
  mode: Mode = 'in-out'
  mode: Mode = 'in-out',
) {
  return defineComponent({
    name,
src/components/Tree/src/Tree.vue
@@ -119,7 +119,7 @@
      });
      const getTreeData = computed((): TreeItem[] =>
        searchState.startSearch ? searchState.searchData : unref(treeDataRef)
        searchState.startSearch ? searchState.searchData : unref(treeDataRef),
      );
      const getNotFound = computed((): boolean => {
@@ -219,7 +219,7 @@
          (node) => {
            return node[titleField]?.includes(searchValue) ?? false;
          },
          unref(getReplaceFields)
          unref(getReplaceFields),
        );
      }
@@ -266,7 +266,7 @@
        () => props.value,
        () => {
          state.checkedKeys = toRaw(props.value || []);
        }
        },
      );
      watch(
@@ -275,7 +275,7 @@
          const v = toRaw(state.checkedKeys);
          emit('update:value', v);
          emit('change', v);
        }
        },
      );
      // watchEffect(() => {
src/components/Tree/src/TreeHeader.vue
@@ -143,7 +143,7 @@
        () => searchValue.value,
        (v) => {
          debounceEmitChange(v);
        }
        },
      );
      watch(
        () => props.searchText,
@@ -151,7 +151,7 @@
          if (v !== searchValue.value) {
            searchValue.value = v;
          }
        }
        },
      );
      // function handleSearch(e: ChangeEvent): void {
      //   debounceEmitChange(e.target.value);
src/components/Tree/src/useTree.ts
@@ -8,7 +8,7 @@
export function useTree(
  treeDataRef: Ref<TreeDataItem[]>,
  getReplaceFields: ComputedRef<ReplaceFields>
  getReplaceFields: ComputedRef<ReplaceFields>,
) {
  function getAllKeys(list?: TreeDataItem[]) {
    const keys: string[] = [];
src/components/Upload/src/BasicUpload.vue
@@ -80,7 +80,7 @@
        (value = []) => {
          fileList.value = isArray(value) ? value : [];
        },
        { immediate: true }
        { immediate: true },
      );
      // 上传modal保存操作
src/components/Upload/src/FileList.vue
@@ -15,7 +15,7 @@
          nextTick(() => {
            modalFn?.redoModalHeight?.();
          });
        }
        },
      );
      return () => {
        const { columns, actionColumn, dataSource } = props;
src/components/Upload/src/UploadModal.vue
@@ -102,7 +102,7 @@
      const getOkButtonProps = computed(() => {
        const someSuccess = fileListRef.value.some(
          (item) => item.status === UploadResultStatus.SUCCESS
          (item) => item.status === UploadResultStatus.SUCCESS,
        );
        return {
          disabled: isUploadingRef.value || fileListRef.value.length === 0 || !someSuccess,
@@ -111,7 +111,7 @@
      const getUploadBtnText = computed(() => {
        const someError = fileListRef.value.some(
          (item) => item.status === UploadResultStatus.ERROR
          (item) => item.status === UploadResultStatus.ERROR,
        );
        return isUploadingRef.value
          ? t('component.upload.uploading')
@@ -193,7 +193,7 @@
            function onUploadProgress(progressEvent: ProgressEvent) {
              const complete = ((progressEvent.loaded / progressEvent.total) * 100) | 0;
              item.percent = complete;
            }
            },
          );
          item.status = UploadResultStatus.SUCCESS;
          item.responseData = data;
@@ -225,7 +225,7 @@
          const data = await Promise.all(
            uploadFileList.map((item) => {
              return uploadApiByItem(item);
            })
            }),
          );
          isUploadingRef.value = false;
          // 生产环境:抛出错误
src/components/Upload/src/UploadPreviewModal.vue
@@ -45,7 +45,7 @@
              };
            });
        },
        { immediate: true }
        { immediate: true },
      );
      // 删除
@@ -56,7 +56,7 @@
          emit('delete', removed[0].url);
          emit(
            'list-change',
            fileListRef.value.map((item) => item.url)
            fileListRef.value.map((item) => item.url),
          );
        }
      }
src/components/Verify/src/DragVerify.vue
@@ -92,7 +92,7 @@
            emit('update:value', isPassing);
            emit('change', isPassing);
          }
        }
        },
      );
      watchEffect(() => {
src/components/Verify/src/ImgRotate.vue
@@ -37,7 +37,7 @@
            emit('change', isPassing);
            emit('update:value', isPassing);
          }
        }
        },
      );
      const getImgWrapStyleRef = computed(() => {
@@ -65,7 +65,7 @@
        const { imgWidth, height, maxDegree } = props;
        const { moveX } = data;
        const currentRotate = Math.ceil(
          (moveX / (imgWidth! - parseInt(height as string))) * maxDegree! * unref(getFactorRef)
          (moveX / (imgWidth! - parseInt(height as string))) * maxDegree! * unref(getFactorRef),
        );
        state.currentRotate = currentRotate;
        state.imgStyle = hackCss('transform', `rotateZ(${state.randomRotate - currentRotate}deg)`);
src/directives/loading.ts
@@ -15,7 +15,7 @@
        loading: !!binding.value,
        absolute: !fullscreen,
      },
      fullscreen ? document.body : el
      fullscreen ? document.body : el,
    );
    el.instance = instance;
  },
src/hooks/component/useFormItem.ts
@@ -16,7 +16,7 @@
  props: T,
  key: keyof T = 'value',
  changeEvent = 'change',
  emitData?: Ref<any[]>
  emitData?: Ref<any[]>,
) {
  const instance = getCurrentInstance();
  const emit = instance?.emit;
src/hooks/core/useContext.ts
@@ -21,7 +21,7 @@
export function createContext<T>(
  context: any,
  key: InjectionKey<T> = Symbol(),
  options: CreateContextOptions = {}
  options: CreateContextOptions = {},
) {
  const { readonly = true, createProvider = false, native = false } = options;
@@ -39,7 +39,7 @@
export function useContext<T>(
  key: InjectionKey<T> = Symbol(),
  defaultValue?: any
  defaultValue?: any,
): ShallowUnwrap<T> {
  return inject(key, defaultValue || {});
}
src/hooks/core/useLockFn.ts
@@ -1,7 +1,7 @@
import { ref, unref } from 'vue';
export function useLockFn<P extends any[] = any[], V extends any = any>(
  fn: (...args: P) => Promise<V>
  fn: (...args: P) => Promise<V>,
) {
  const lockRef = ref(false);
  return async function (...args: P) {
src/hooks/core/useTimeout.ts
@@ -16,7 +16,7 @@
      (maturity) => {
        maturity && handle();
      },
      { immediate: false }
      { immediate: false },
    );
  }
  return { readyRef, stop, start };
src/hooks/event/useEventListener.ts
@@ -46,7 +46,7 @@
          });
        }
      },
      { immediate: true }
      { immediate: true },
    );
    remove = () => {
src/hooks/event/useScroll.ts
@@ -10,7 +10,7 @@
    wait?: number;
    leading?: boolean;
    trailing?: boolean;
  }
  },
) {
  const refX = ref(0);
  const refY = ref(0);
@@ -49,7 +49,7 @@
          el && el.removeEventListener('scroll', handler);
        });
      },
      { immediate: true }
      { immediate: true },
    );
  });
src/hooks/setting/index.ts
@@ -14,7 +14,7 @@
  if (!/[a-zA-Z\_]*/.test(VITE_GLOB_APP_SHORT_NAME)) {
    warn(
      `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.`
      `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.`,
    );
  }
src/hooks/setting/useMenuSetting.ts
@@ -54,7 +54,7 @@
  const getTopMenuAlign = computed(() => appStore.getMenuSetting.topMenuAlign);
  const getCloseMixSidebarOnChange = computed(
    () => appStore.getMenuSetting.closeMixSidebarOnChange
    () => appStore.getMenuSetting.closeMixSidebarOnChange,
  );
  const getIsSidebarType = computed(() => unref(getMenuType) === MenuTypeEnum.SIDEBAR);
src/hooks/setting/useRootSetting.ts
@@ -56,7 +56,7 @@
  const getLayoutContentMode = computed(() =>
    appStore.getProjectConfig.contentMode === ContentEnum.FULL
      ? ContentEnum.FULL
      : ContentEnum.FIXED
      : ContentEnum.FIXED,
  );
  function setRootSetting(setting: Partial<RootSetting>) {
src/hooks/web/useContentHeight.ts
@@ -27,7 +27,7 @@
  anchorRef: Ref,
  subtractHeightRefs: Ref[],
  substractSpaceRefs: Ref[],
  offsetHeightRef: Ref<number> = ref(0)
  offsetHeightRef: Ref<number> = ref(0),
) {
  const contentHeight: Ref<Nullable<number>> = ref(null);
  const { footerHeightRef: layoutFooterHeightRef } = useLayoutHeight();
@@ -130,7 +130,7 @@
      calcContentHeight();
    },
    50,
    { immediate: true }
    { immediate: true },
  );
  watch(
    () => [layoutFooterHeightRef.value],
@@ -140,7 +140,7 @@
    {
      flush: 'post',
      immediate: true,
    }
    },
  );
  return { redoHeight, setCompensation, contentHeight };
src/hooks/web/useCopyToClipboard.ts
@@ -17,7 +17,7 @@
        isSuccessRef.value = copyTextToClipboard(str);
      }
    },
    { immediate: !!initial, flush: 'sync' }
    { immediate: !!initial, flush: 'sync' },
  );
  return { clipboardRef, isSuccessRef, copiedRef };
src/hooks/web/useECharts.ts
@@ -11,7 +11,7 @@
export function useECharts(
  elRef: Ref<HTMLDivElement>,
  theme: 'light' | 'dark' | 'default' = 'default'
  theme: 'light' | 'dark' | 'default' = 'default',
) {
  const { getDarkMode: getSysDarkMode } = useRootSetting();
@@ -90,7 +90,7 @@
        initCharts(theme as 'default');
        setOptions(cacheOptions.value);
      }
    }
    },
  );
  tryOnUnmounted(() => {
src/hooks/web/usePermission.ts
@@ -88,7 +88,7 @@
  async function changeRole(roles: RoleEnum | RoleEnum[]): Promise<void> {
    if (projectSetting.permissionMode !== PermissionModeEnum.ROUTE_MAPPING) {
      throw new Error(
        'Please switch PermissionModeEnum to ROUTE_MAPPING mode in the configuration to operate!'
        'Please switch PermissionModeEnum to ROUTE_MAPPING mode in the configuration to operate!',
      );
    }
src/hooks/web/useTitle.ts
@@ -6,6 +6,9 @@
import { REDIRECT_NAME } from '/@/router/constant';
/**
 * Listening to page changes and dynamically changing site titles
 */
export function useTitle() {
  const { title } = useGlobSetting();
  const { t } = useI18n();
@@ -17,6 +20,7 @@
    () => currentRoute.value.path,
    () => {
      const route = unref(currentRoute);
      if (route.name === REDIRECT_NAME) {
        return;
      }
@@ -24,6 +28,6 @@
      const tTitle = t(route?.meta?.title as string);
      pageTitle.value = tTitle ? ` ${tTitle} - ${title} ` : `${title}`;
    },
    { immediate: true }
    { immediate: true },
  );
}
src/hooks/web/useWatermark.ts
@@ -6,7 +6,7 @@
const domSymbol = Symbol('watermark-dom');
export function useWatermark(
  appendEl: Ref<HTMLElement | null> = ref(document.body) as Ref<HTMLElement>
  appendEl: Ref<HTMLElement | null> = ref(document.body) as Ref<HTMLElement>,
) {
  const func = useRafThrottle(function () {
    const el = unref(appendEl);
@@ -49,7 +49,7 @@
      width?: number;
      height?: number;
      str?: string;
    } = {}
    } = {},
  ) {
    const el = unref(watermarkEl);
    if (!el) return;
src/layouts/default/content/useContentViewHeight.ts
@@ -27,7 +27,7 @@
      contentHeight.value = window.innerHeight;
    },
    100,
    { immediate: true }
    { immediate: true },
  );
  async function setPageHeight(height: number) {
src/layouts/default/header/components/notify/NoticeList.vue
@@ -107,7 +107,7 @@
        () => props.currentPage,
        (v) => {
          current.value = v;
        }
        },
      );
      const isTitleClickable = computed(() => !!props.onTitleClick);
      const getPagination = computed(() => {
src/layouts/default/menu/index.vue
@@ -60,7 +60,7 @@
      const { getIsMobile } = useAppInject();
      const getComputedMenuMode = computed(() =>
        unref(getIsMobile) ? MenuModeEnum.INLINE : props.menuMode || unref(getMenuMode)
        unref(getIsMobile) ? MenuModeEnum.INLINE : props.menuMode || unref(getMenuMode),
      );
      const getComputedMenuTheme = computed(() => props.theme || unref(getMenuTheme));
src/layouts/default/menu/useLayoutMenu.ts
@@ -20,11 +20,11 @@
  const throttleHandleSplitLeftMenu = useThrottleFn(handleSplitLeftMenu, 50);
  const splitNotLeft = computed(
    () => unref(splitType) !== MenuSplitTyeEnum.LEFT && !unref(getIsHorizontal)
    () => unref(splitType) !== MenuSplitTyeEnum.LEFT && !unref(getIsHorizontal),
  );
  const getSplitLeft = computed(
    () => !unref(getSplit) || unref(splitType) !== MenuSplitTyeEnum.LEFT
    () => !unref(getSplit) || unref(splitType) !== MenuSplitTyeEnum.LEFT,
  );
  const getSpiltTop = computed(() => unref(splitType) === MenuSplitTyeEnum.TOP);
@@ -48,7 +48,7 @@
    },
    {
      immediate: true,
    }
    },
  );
  // Menu changes
@@ -59,7 +59,7 @@
    },
    {
      immediate: true,
    }
    },
  );
  // split Menu changes
@@ -68,7 +68,7 @@
    () => {
      if (unref(splitNotLeft)) return;
      genMenus();
    }
    },
  );
  // Handle left menu split
src/layouts/default/setting/components/SettingFooter.vue
@@ -49,7 +49,7 @@
      function handleCopy() {
        const { isSuccessRef } = useCopyToClipboard(
          JSON.stringify(unref(appStore.getProjectConfig), null, 2)
          JSON.stringify(unref(appStore.getProjectConfig), null, 2),
        );
        unref(isSuccessRef) &&
          createSuccessModal({
src/layouts/default/tabs/components/FoldButton.vue
@@ -23,7 +23,7 @@
      const getIsUnFold = computed(() => !unref(getShowMenu) && !unref(getShowHeader));
      const getIcon = computed(() =>
        unref(getIsUnFold) ? 'codicon:screen-normal' : 'codicon:screen-full'
        unref(getIsUnFold) ? 'codicon:screen-normal' : 'codicon:screen-full',
      );
      function handleFold() {
src/layouts/default/tabs/components/TabContent.vue
@@ -44,12 +44,12 @@
      const getIsTabs = computed(() => !props.isExtra);
      const getTrigger = computed((): ('contextmenu' | 'click' | 'hover')[] =>
        unref(getIsTabs) ? ['contextmenu'] : ['click']
        unref(getIsTabs) ? ['contextmenu'] : ['click'],
      );
      const { getDropMenuList, handleMenuEvent, handleContextMenu } = useTabDropdown(
        props as TabContentProps,
        getIsTabs
        getIsTabs,
      );
      function handleContext(e) {
src/logics/error-handle/index.ts
@@ -85,7 +85,7 @@
  source?: string,
  lineno?: number,
  colno?: number,
  error?: Error
  error?: Error,
) {
  if (event === 'Script error.' && !source) {
    return false;
@@ -129,7 +129,7 @@
        message: event.reason,
      });
    },
    true
    true,
  );
}
@@ -157,7 +157,7 @@
        message: (e.target || ({} as any)).localName + ' is load error',
      });
    },
    true
    true,
  );
}
src/logics/mitt/routeChange.ts
@@ -20,7 +20,7 @@
export function listenerRouteChange(
  callback: (route: RouteLocationNormalized) => void,
  immediate = true
  immediate = true,
) {
  emitter.on(key, callback);
  immediate && lastChangeTab && callback(lastChangeTab);
src/main.ts
@@ -2,7 +2,6 @@
import 'virtual:windi-base.css';
import 'virtual:windi-components.css';
import 'virtual:windi-utilities.css';
import 'virtual:windi-devtools';
// Register icon sprite
import 'virtual:svg-icons-register';
import App from './App.vue';
@@ -54,7 +53,7 @@
  // https://next.router.vuejs.org/api/#isready
  // await router.isReady();
  app.mount('#app', true);
  app.mount('#app');
}
bootstrap();
src/router/helper/routeHelper.ts
@@ -42,7 +42,7 @@
function dynamicImport(
  dynamicViewsModules: Record<string, () => Promise<Recordable>>,
  component: string
  component: string,
) {
  const keys = Object.keys(dynamicViewsModules);
  const matchKeys = keys.filter((key) => {
@@ -57,7 +57,7 @@
  }
  if (matchKeys?.length > 1) {
    warn(
      'Please do not create `.vue` and `.TSX` files with the same file name in the same hierarchical directory under the views folder. This will cause dynamic introduction failure'
      'Please do not create `.vue` and `.TSX` files with the same file name in the same hierarchical directory under the views folder. This will cause dynamic introduction failure',
    );
    return;
  }
@@ -120,7 +120,7 @@
function addToChildren(
  routes: RouteRecordNormalized[],
  children: AppRouteRecordRaw[],
  routeModule: AppRouteModule
  routeModule: AppRouteModule,
) {
  for (let index = 0; index < children.length; index++) {
    const child = children[index];
src/store/modules/user.ts
@@ -84,7 +84,7 @@
      params: LoginParams & {
        goHome?: boolean;
        mode?: ErrorMessageMode;
      }
      },
    ): Promise<GetUserInfoModel | null> {
      try {
        const { goHome = true, mode, ...loginParams } = params;
src/utils/cache/memory.ts
@@ -63,7 +63,7 @@
      () => {
        this.remove(key);
      },
      expires > now ? expires - now : expires
      expires > now ? expires - now : expires,
    );
    return value;
src/utils/color.ts
@@ -69,7 +69,7 @@
  amount = Math.trunc((255 * amount) / 100);
  return `#${subtractLight(color.substring(0, 2), amount)}${subtractLight(
    color.substring(2, 4),
    amount
    amount,
  )}${subtractLight(color.substring(4, 6), amount)}`;
}
@@ -84,7 +84,7 @@
  amount = Math.trunc((255 * amount) / 100);
  return `#${addLight(color.substring(0, 2), amount)}${addLight(
    color.substring(2, 4),
    amount
    amount,
  )}${addLight(color.substring(4, 6), amount)}`;
}
src/utils/dateUtil.ts
@@ -8,7 +8,7 @@
export function formatToDateTime(
  date: moment.MomentInput = undefined,
  format = DATE_TIME_FORMAT
  format = DATE_TIME_FORMAT,
): string {
  return moment(date).format(format);
}
src/utils/domUtils.ts
@@ -136,7 +136,7 @@
export function on(
  element: Element | HTMLElement | Document | Window,
  event: string,
  handler: EventListenerOrEventListenerObject
  handler: EventListenerOrEventListenerObject,
): void {
  if (element && event && handler) {
    element.addEventListener(event, handler, false);
@@ -147,7 +147,7 @@
export function off(
  element: Element | HTMLElement | Document | Window,
  event: string,
  handler: Fn
  handler: Fn,
): void {
  if (element && event && handler) {
    element.removeEventListener(event, handler, false);
src/utils/env.ts
@@ -32,7 +32,7 @@
  if (!/^[a-zA-Z\_]*$/.test(VITE_GLOB_APP_SHORT_NAME)) {
    warn(
      `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.`
      `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.`,
    );
  }
src/utils/helper/treeHelper.ts
@@ -43,7 +43,7 @@
export function findNode<T = any>(
  tree: any,
  func: Fn,
  config: Partial<TreeHelperConfig> = {}
  config: Partial<TreeHelperConfig> = {},
): T | null {
  config = getConfig(config);
  const { children } = config;
@@ -58,7 +58,7 @@
export function findNodeAll<T = any>(
  tree: any,
  func: Fn,
  config: Partial<TreeHelperConfig> = {}
  config: Partial<TreeHelperConfig> = {},
): T[] {
  config = getConfig(config);
  const { children } = config;
@@ -74,7 +74,7 @@
export function findPath<T = any>(
  tree: any,
  func: Fn,
  config: Partial<TreeHelperConfig> = {}
  config: Partial<TreeHelperConfig> = {},
): T | T[] | null {
  config = getConfig(config);
  const path: T[] = [];
@@ -123,7 +123,7 @@
export function filter<T = any>(
  tree: T[],
  func: (n: T) => boolean,
  config: Partial<TreeHelperConfig> = {}
  config: Partial<TreeHelperConfig> = {},
): T[] {
  config = getConfig(config);
  const children = config.children as string;
@@ -141,7 +141,7 @@
export function forEach<T = any>(
  tree: T[],
  func: (n: T) => any,
  config: Partial<TreeHelperConfig> = {}
  config: Partial<TreeHelperConfig> = {},
): void {
  config = getConfig(config);
  const list: any[] = [...tree];
@@ -167,7 +167,7 @@
 */
export function treeMapEach(
  data: any,
  { children = 'children', conversion }: { children?: string; conversion: Fn }
  { children = 'children', conversion }: { children?: string; conversion: Fn },
) {
  const haveChildren = Array.isArray(data[children]) && data[children].length > 0;
  const conversionData = conversion(data) || {};
@@ -178,7 +178,7 @@
        treeMapEach(i, {
          children,
          conversion,
        })
        }),
      ),
    };
  } else {
src/utils/http/axios/axiosTransform.ts
@@ -33,7 +33,7 @@
   */
  requestInterceptors?: (
    config: AxiosRequestConfig,
    options: CreateAxiosOptions
    options: CreateAxiosOptions,
  ) => AxiosRequestConfig;
  /**
src/utils/http/axios/checkStatus.ts
@@ -14,7 +14,7 @@
export function checkStatus(
  status: number,
  msg: string,
  errorMessageMode: ErrorMessageMode = 'message'
  errorMessageMode: ErrorMessageMode = 'message',
): void {
  const { t } = useI18n();
  const userStore = useUserStoreWithOut();
src/utils/http/axios/helper.ts
@@ -4,7 +4,7 @@
export function joinTimestamp<T extends boolean>(
  join: boolean,
  restful: T
  restful: T,
): T extends true ? string : object;
export function joinTimestamp(join: boolean, restful = false): string | object {
src/utils/http/axios/index.ts
@@ -116,7 +116,7 @@
        if (joinParamsToUrl) {
          config.url = setObjToUrlParams(
            config.url as string,
            Object.assign({}, config.params, config.data)
            Object.assign({}, config.params, config.data),
          );
        }
      } else {
@@ -230,8 +230,8 @@
          withToken: true,
        },
      },
      opt || {}
    )
      opt || {},
    ),
  );
}
export const defHttp = createAxios();
src/utils/index.ts
@@ -42,7 +42,7 @@
export function openWindow(
  url: string,
  opt?: { target?: TargetContext | string; noopener?: boolean; noreferrer?: boolean }
  opt?: { target?: TargetContext | string; noopener?: boolean; noreferrer?: boolean },
) {
  const { target = '__blank', noopener = true, noreferrer = true } = opt || {};
  const feature: string[] = [];
src/views/dashboard/analysis/components/SalesProductPie.vue
@@ -58,6 +58,6 @@
        ],
      });
    },
    { immediate: true }
    { immediate: true },
  );
</script>
src/views/dashboard/analysis/components/VisitRadar.vue
@@ -95,6 +95,6 @@
        ],
      });
    },
    { immediate: true }
    { immediate: true },
  );
</script>
src/views/dashboard/analysis/components/VisitSource.vue
@@ -75,6 +75,6 @@
        ],
      });
    },
    { immediate: true }
    { immediate: true },
  );
</script>
src/views/dashboard/workbench/components/ProjectCard.vue
@@ -10,7 +10,7 @@
          <Icon :icon="item.icon" :color="item.color" size="30" />
          <span class="text-lg ml-4">{{ item.title }}</span>
        </span>
        <div class="flex mt-2 h-10 text-secondary"> {{ item.desc }} </div>
        <div class="flex mt-2 h-10 text-secondary">{{ item.desc }}</div>
        <div class="flex justify-between text-secondary">
          <span>{{ item.group }}</span>
          <span>{{ item.date }}</span>
src/views/dashboard/workbench/components/SaleRadar.vue
@@ -95,6 +95,6 @@
        ],
      });
    },
    { immediate: true }
    { immediate: true },
  );
</script>
src/views/demo/charts/SaleRadar.vue
@@ -98,7 +98,7 @@
            ],
          });
        },
        { immediate: true }
        { immediate: true },
      );
      return { chartRef };
    },
src/views/demo/comp/drawer/Drawer3.vue
@@ -1,6 +1,6 @@
<template>
  <BasicDrawer v-bind="$attrs" title="Modal Title" width="50%" showFooter @ok="handleOk">
    <p class="h-20" v-for="index in 40" :key="index"> 根据屏幕高度自适应 </p>
    <p class="h-20" v-for="index in 40" :key="index">根据屏幕高度自适应</p>
    <template #insertFooter>
      <a-button> btn</a-button>
    </template>
src/views/demo/comp/drawer/Drawer5.vue
@@ -1,6 +1,6 @@
<template>
  <BasicDrawer v-bind="$attrs" :isDetail="true" title="Drawer Title5">
    <p class="h-20"> Content Message </p>
    <p class="h-20">Content Message</p>
    <template #titleToolbar> toolbar </template>
  </BasicDrawer>
</template>
src/views/demo/comp/modal/Modal1.vue
@@ -11,7 +11,7 @@
      <a-button type="primary" danger @click="setLines" :disabled="loading">点我更新内容</a-button>
    </template>
    <template v-if="loading">
      <div class="empty-tips"> 加载中,稍等3秒…… </div>
      <div class="empty-tips">加载中,稍等3秒……</div>
    </template>
    <template v-if="!loading">
      <ul>
@@ -34,7 +34,7 @@
        () => lines.value,
        () => {
          redoModalHeight();
        }
        },
      );
      function handleShow(visible: boolean) {
src/views/demo/comp/modal/Modal3.vue
@@ -1,6 +1,6 @@
<template>
  <BasicModal v-bind="$attrs" title="Modal Title" :helpMessage="['提示1', '提示2']" width="700px">
    <p class="h-20" v-for="index in 20" :key="index"> 根据屏幕高度自适应 </p>
    <p class="h-20" v-for="index in 20" :key="index">根据屏幕高度自适应</p>
  </BasicModal>
</template>
<script lang="ts">
src/views/demo/comp/qrcode/index.vue
@@ -52,7 +52,7 @@
      <CollapseContainer title="下载示例" class="text-center qrcode-demo-item">
        <QrCode :value="qrCodeUrl" ref="qrRef" :logo="LogoImg" />
        <a-button class="mb-2" type="primary" @click="download"> 下载 </a-button>
        <div class="msg"> (在线logo会导致图片跨域,需要下载图片需要自行解决跨域问题) </div>
        <div class="msg">(在线logo会导致图片跨域,需要下载图片需要自行解决跨域问题)</div>
      </CollapseContainer>
      <CollapseContainer title="配置大小示例" class="text-center qrcode-demo-item">
@@ -69,7 +69,7 @@
          @done="onQrcodeDone"
        />
        <a-button class="mb-2" type="primary" @click="downloadDiy"> 下载 </a-button>
        <div class="msg"> 要进行扩展绘制则不能将tag设为img </div>
        <div class="msg">要进行扩展绘制则不能将tag设为img</div>
      </CollapseContainer>
    </div>
  </PageWrapper>
src/views/demo/feat/breadcrumb/ChildrenListDetail.vue
@@ -1,6 +1,6 @@
<template>
  <PageWrapper title="子级详情页">
    <div> 子级详情页内容在此 </div>
    <div>子级详情页内容在此</div>
  </PageWrapper>
</template>
<script lang="ts">
src/views/demo/feat/breadcrumb/FlatListDetail.vue
@@ -1,5 +1,5 @@
<template>
  <div> 平级详情页 </div>
  <div>平级详情页</div>
</template>
<script lang="ts">
  import { defineComponent } from 'vue';
src/views/demo/feat/download/index.vue
@@ -52,7 +52,7 @@
      function handleDownloadByOnlineUrl() {
        downloadByOnlineUrl(
          'https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5944817f47b8408e9f1442ece49d68ca~tplv-k3u1fbpfcp-watermark.image',
          'logo.png'
          'logo.png',
        );
      }
      return {
src/views/demo/feat/ripple/index.vue
@@ -1,6 +1,6 @@
<template>
  <PageWrapper title="Ripple示例">
    <div class="demo-box" v-ripple> content </div>
    <div class="demo-box" v-ripple>content</div>
  </PageWrapper>
</template>
<script lang="ts">
src/views/demo/form/AppendForm.vue
@@ -77,7 +77,7 @@
            },
            required: true,
          },
          ''
          '',
        );
        appendSchemaByField(
          {
@@ -89,7 +89,7 @@
            },
            required: true,
          },
          ''
          '',
        );
        appendSchemaByField(
@@ -102,7 +102,7 @@
            },
            slot: 'add',
          },
          ''
          '',
        );
        n.value++;
      }
src/views/demo/form/DynamicForm.vue
@@ -225,7 +225,7 @@
              span: 8,
            },
          },
          'field3'
          'field3',
        );
      }
      function deleteField() {
src/views/demo/main-out/index.vue
@@ -1,6 +1,6 @@
<template>
  <div class="fixed h-full w-full flex flex-col justify-center items-center text-4xl">
    <div class=""> 位于主框架外的页面 </div>
    <div class="">位于主框架外的页面</div>
    <a-button @click="$router.go(-1)" class="mt-10" type="primary">Back</a-button>
  </div>
</template>
src/views/demo/page/account/setting/AccountBind.vue
@@ -14,7 +14,7 @@
              </a-button>
            </template>
            <template #description>
              <div>{{ item.description }} </div>
              <div>{{ item.description }}</div>
            </template>
          </ListItemMeta>
        </ListItem>
src/views/demo/page/account/setting/BaseSetting.vue
@@ -6,7 +6,7 @@
      </a-col>
      <a-col :span="10">
        <div class="change-avatar">
          <div class="mb-2"> 头像 </div>
          <div class="mb-2">头像</div>
          <CropperAvatar
            :uploadApi="uploadApi"
            :value="avatar"
src/views/demo/page/account/setting/MsgNotify.vue
@@ -14,7 +14,7 @@
              />
            </template>
            <template #description>
              <div>{{ item.description }} </div>
              <div>{{ item.description }}</div>
            </template>
          </ListItemMeta>
        </ListItem>
src/views/demo/page/account/setting/SecureSetting.vue
@@ -11,7 +11,7 @@
              </div>
            </template>
            <template #description>
              <div>{{ item.description }} </div>
              <div>{{ item.description }}</div>
            </template>
          </ListItemMeta>
        </ListItem>
src/views/demo/page/desc/high/index.vue
@@ -27,7 +27,10 @@
      <a-card title="流程进度" :bordered="false">
        <a-steps :current="1" progress-dot size="small">
          <a-step title="创建项目">
            <template #description> <div>Vben</div> <p>2016-12-12 12:32</p> </template>
            <template #description>
              <div>Vben</div>
              <p>2016-12-12 12:32</p>
            </template>
          </a-step>
          <a-step title="部门初审">
            <template #description>
src/views/demo/page/result/fail/index.vue
@@ -6,7 +6,7 @@
      </template>
    </Result>
    <div class="result-error__content">
      <div class="result-error__content-title"> 您提交的内容有如下错误: </div>
      <div class="result-error__content-title">您提交的内容有如下错误:</div>
      <div class="mb-4">
        <CloseCircleOutlined class="mr-2 result-error__content-icon" />
        您的账户已被冻结
src/views/demo/page/result/success/index.vue
@@ -19,7 +19,10 @@
      </Descriptions>
      <Steps :current="1" progress-dot size="small">
        <Step title="创建项目">
          <template #description> <div>Vben</div> <p>2016-12-12 12:32</p> </template>
          <template #description>
            <div>Vben</div>
            <p>2016-12-12 12:32</p>
          </template>
        </Step>
        <Step title="部门初审">
          <template #description>
src/views/demo/permission/back/Btn.vue
@@ -78,7 +78,7 @@
      const userStore = useUserStore();
      const isBackPremissionMode = computed(
        () => appStore.getProjectConfig.permissionMode === PermissionModeEnum.BACK
        () => appStore.getProjectConfig.permissionMode === PermissionModeEnum.BACK,
      );
      async function switchToken(userId: number) {
src/views/demo/permission/back/index.vue
@@ -40,7 +40,7 @@
      const appStore = useAppStore();
      const isBackPremissionMode = computed(
        () => appStore.getProjectConfig.permissionMode === PermissionModeEnum.BACK
        () => appStore.getProjectConfig.permissionMode === PermissionModeEnum.BACK,
      );
      async function switchToken(userId: number) {
src/views/demo/permission/front/AuthPageA.vue
@@ -1,5 +1,5 @@
<template>
  <div class="m-10 auth-page"> Super 角色可见 </div>
  <div class="m-10 auth-page">Super 角色可见</div>
</template>
<script lang="ts">
  import { defineComponent } from 'vue';
src/views/demo/permission/front/AuthPageB.vue
@@ -1,5 +1,5 @@
<template>
  <div class="m-10 auth-page"> Test 角色可见 </div>
  <div class="m-10 auth-page">Test 角色可见</div>
</template>
<script lang="ts">
  import { defineComponent } from 'vue';
src/views/sys/error-log/index.vue
@@ -66,7 +66,7 @@
    },
    {
      immediate: true,
    }
    },
  );
  const { createMessage } = useMessage();
  if (import.meta.env.DEV) {
src/views/sys/lock/LockPage.vue
@@ -88,7 +88,7 @@
      <div class="text-5xl mb-4 enter-x" v-show="!showDate">
        {{ hour }}:{{ minute }} <span class="text-3xl">{{ meridiem }}</span>
      </div>
      <div class="text-2xl"> {{ year }}/{{ month }}/{{ day }} {{ week }} </div>
      <div class="text-2xl">{{ year }}/{{ month }}/{{ day }} {{ week }}</div>
    </div>
  </div>
</template>
src/views/sys/login/LoginForm.vue
@@ -139,7 +139,7 @@
          password: data.password,
          username: data.account,
          mode: 'none', //不要默认的错误提示
        })
        }),
      );
      if (userInfo) {
        notification.success({
tests/server/index.ts
@@ -34,7 +34,7 @@
      }
      console.log(message);
    });
  })
  }),
);
const router = new Router();
@@ -52,7 +52,7 @@
      keepExtensions: true,
      maxFieldsSize: 20 * 1024 * 1024,
    },
  })
  }),
);
app.use(router.routes());
app.use(router.allowedMethods());