Procházet zdrojové kódy

style: update back-top style

vben před 4 roky
rodič
revize
8f9eff78aa

+ 4 - 0
CHANGELOG.zh_CN.md

@@ -4,6 +4,10 @@
 
 - 移除左侧菜单搜索,新增顶部菜单搜索功能
 
+### 🎫 Chores
+
+- 返回顶部样式调整,避免遮住其他元素
+
 ## 2.0.0-rc.13 (2020-12-10)
 
 ## (破坏性更新) Breaking changes

+ 3 - 3
src/components/ClickOutSide/index.ts

@@ -1,6 +1,6 @@
-import ClickOutSide from './src/index.vue';
 import { withInstall } from '../util';
+import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
 
-withInstall(ClickOutSide);
+export const ClickOutSide = createAsyncComponent(() => import('./src/index.vue'));
 
-export { ClickOutSide };
+withInstall(ClickOutSide);

+ 5 - 0
src/design/ant/index.less

@@ -7,6 +7,11 @@
   width: 100%;
 }
 
+.ant-back-top {
+  right: 20px;
+  bottom: 20px;
+}
+
 .collapse-container__body {
   > .ant-descriptions {
     margin-left: 6px;

+ 1 - 1
src/router/index.ts

@@ -6,7 +6,7 @@ import { createRouter, createWebHashHistory } from 'vue-router';
 import { createGuard } from './guard/';
 
 import { basicRoutes } from './routes/';
-import { scrollBehavior } from './scrollBehaviour';
+import { scrollBehavior } from './scrollBehavior';
 
 export const hashRouter = createWebHashHistory();
 

+ 0 - 0
src/router/scrollBehaviour.ts → src/router/scrollBehavior.ts


+ 26 - 15
src/utils/factory/createAsyncComponent.tsx

@@ -1,16 +1,25 @@
 import { defineAsyncComponent } from 'vue';
 import { Spin } from 'ant-design-vue';
+import { noop } from '/@/utils/index';
+interface Options {
+  size?: 'default' | 'small' | 'large';
+  delay?: number;
+  timeout?: number;
+  loading?: boolean;
+  retry?: boolean;
+}
 
-export function createAsyncComponent(loader: any) {
+export function createAsyncComponent(loader: Fn, options: Options = {}) {
+  const { size = 'small', delay = 100, timeout = 3000, loading = true, retry = true } = options;
   return defineAsyncComponent({
-    loader: loader,
-    loadingComponent: <Spin spinning={true} />,
+    loader,
+    loadingComponent: loading ? <Spin spinning={true} size={size} /> : undefined,
     // The error component will be displayed if a timeout is
     // provided and exceeded. Default: Infinity.
-    timeout: 3000,
+    timeout,
     // Defining if component is suspensible. Default: true.
     // suspensible: false,
-    delay: 100,
+    delay,
     /**
      *
      * @param {*} error Error message object
@@ -18,15 +27,17 @@ export function createAsyncComponent(loader: any) {
      * @param {*} fail  End of failure
      * @param {*} attempts Maximum allowed retries number
      */
-    onError(error, retry, fail, attempts) {
-      if (error.message.match(/fetch/) && attempts <= 3) {
-        // retry on fetch errors, 3 max attempts
-        retry();
-      } else {
-        // Note that retry/fail are like resolve/reject of a promise:
-        // one of them must be called for the error handling to continue.
-        fail();
-      }
-    },
+    onError: !retry
+      ? noop
+      : (error, retry, fail, attempts) => {
+          if (error.message.match(/fetch/) && attempts <= 3) {
+            // retry on fetch errors, 3 max attempts
+            retry();
+          } else {
+            // Note that retry/fail are like resolve/reject of a promise:
+            // one of them must be called for the error handling to continue.
+            fail();
+          }
+        },
   });
 }