mirror of
https://github.com/vbenjs/vben-admin-thin-next.git
synced 2025-01-23 09:40:22 +08:00
perf: improve login logic
This commit is contained in:
parent
be3a3ed699
commit
a09a0eedd2
15
package.json
15
package.json
@ -13,7 +13,6 @@
|
||||
"log": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
|
||||
"clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite",
|
||||
"clean:lib": "npx rimraf node_modules",
|
||||
"typecheck": "vuedx-typecheck .",
|
||||
"lint:eslint": "eslint \"{src,mock}/**/*.{vue,ts,tsx}\" --fix",
|
||||
"lint:prettier": "prettier --write --loglevel warn \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"",
|
||||
"lint:stylelint": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/",
|
||||
@ -27,7 +26,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@iconify/iconify": "^2.0.0-rc.6",
|
||||
"@vueuse/core": "^4.1.1",
|
||||
"@vueuse/core": "^4.2.1",
|
||||
"@zxcvbn-ts/core": "^0.2.0",
|
||||
"ant-design-vue": "2.0.0",
|
||||
"apexcharts": "^3.25.0",
|
||||
@ -52,7 +51,7 @@
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "^11.0.0",
|
||||
"@commitlint/config-conventional": "^11.0.0",
|
||||
"@iconify/json": "^1.1.306",
|
||||
"@iconify/json": "^1.1.307",
|
||||
"@ls-lint/ls-lint": "^1.9.2",
|
||||
"@purge-icons/generated": "^0.7.0",
|
||||
"@types/fs-extra": "^9.0.7",
|
||||
@ -70,8 +69,6 @@
|
||||
"@vitejs/plugin-vue": "^1.1.4",
|
||||
"@vitejs/plugin-vue-jsx": "^1.1.0",
|
||||
"@vue/compiler-sfc": "^3.0.5",
|
||||
"@vuedx/typecheck": "^0.6.3",
|
||||
"@vuedx/typescript-plugin-vue": "^0.6.3",
|
||||
"autoprefixer": "^10.2.4",
|
||||
"commitizen": "^4.2.3",
|
||||
"conventional-changelog-cli": "^2.1.1",
|
||||
@ -84,7 +81,7 @@
|
||||
"esno": "^0.4.4",
|
||||
"fs-extra": "^9.1.0",
|
||||
"http-server": "^0.12.3",
|
||||
"husky": "^5.0.9",
|
||||
"husky": "^5.1.0",
|
||||
"is-ci": "^3.0.0",
|
||||
"less": "^4.1.1",
|
||||
"lint-staged": "^10.5.4",
|
||||
@ -100,14 +97,14 @@
|
||||
"typescript": "^4.1.5",
|
||||
"vite": "2.0.1",
|
||||
"vite-plugin-compression": "^0.2.1",
|
||||
"vite-plugin-html": "^2.0.0",
|
||||
"vite-plugin-html": "^2.0.1",
|
||||
"vite-plugin-imagemin": "^0.2.7",
|
||||
"vite-plugin-mock": "^2.1.4",
|
||||
"vite-plugin-purge-icons": "^0.7.0",
|
||||
"vite-plugin-pwa": "^0.5.2",
|
||||
"vite-plugin-pwa": "^0.5.3",
|
||||
"vite-plugin-style-import": "^0.7.3",
|
||||
"vite-plugin-theme": "^0.4.3",
|
||||
"vite-plugin-windicss": "0.4.3",
|
||||
"vite-plugin-windicss": "0.4.4",
|
||||
"vue-eslint-parser": "^7.5.0",
|
||||
"yargs": "^16.2.0"
|
||||
},
|
||||
|
@ -1,11 +1,9 @@
|
||||
<template>
|
||||
<div :class="prefixCls">
|
||||
<AInput v-bind="$attrs" :size="size" v-model:value="state">
|
||||
<template #addonAfter>
|
||||
<CountButton :size="size" :count="count" :beforeStartFunc="sendCodeApi" />
|
||||
</template>
|
||||
</AInput>
|
||||
</div>
|
||||
<AInput v-bind="$attrs" :class="prefixCls" :size="size">
|
||||
<template #addonAfter>
|
||||
<CountButton :size="size" :count="count" :beforeStartFunc="sendCodeApi" />
|
||||
</template>
|
||||
</AInput>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { defineComponent, PropType } from 'vue';
|
||||
@ -32,7 +30,6 @@
|
||||
},
|
||||
setup(props) {
|
||||
const { prefixCls } = useDesign('countdown-input');
|
||||
|
||||
const [state] = useRuleFormItem(props);
|
||||
return { prefixCls, state };
|
||||
},
|
||||
|
@ -2,17 +2,32 @@
|
||||
// ==============屏幕断点============
|
||||
// =================================
|
||||
|
||||
// Extra small screen / phone
|
||||
@screen-xs: 480px;
|
||||
@screen-xs-min: @screen-xs;
|
||||
|
||||
// Small screen / tablet
|
||||
@screen-sm: 640px;
|
||||
@screen-sm: 576px;
|
||||
@screen-sm-min: @screen-sm;
|
||||
|
||||
// Medium screen / desktop
|
||||
@screen-md: 768px;
|
||||
@screen-md-min: @screen-md;
|
||||
|
||||
// Large screen / wide desktop
|
||||
@screen-lg: 1024px;
|
||||
@screen-lg: 992px;
|
||||
@screen-lg-min: @screen-lg;
|
||||
|
||||
// Extra large screen / full hd
|
||||
@screen-xl: 1280px;
|
||||
@screen-xl: 1200px;
|
||||
@screen-xl-min: @screen-xl;
|
||||
|
||||
// Extra extra large screen / large desktop
|
||||
@screen-2xl: 1536px;
|
||||
@screen-2xl: 1600px;
|
||||
@screen-2xl-min: @screen-2xl;
|
||||
|
||||
@screen-xs-max: (@screen-sm-min - 1px);
|
||||
@screen-sm-max: (@screen-md-min - 1px);
|
||||
@screen-md-max: (@screen-lg-min - 1px);
|
||||
@screen-lg-max: (@screen-xl-min - 1px);
|
||||
@screen-xl-max: (@screen-2xl-min - 1px);
|
||||
|
@ -17,7 +17,7 @@ export function useRuleFormItem<T extends Indexable>(
|
||||
|
||||
const defaultState = readonly(innerState);
|
||||
|
||||
const setState = (val: UnwrapRef<T[keyof T]>) => {
|
||||
const setState = (val: UnwrapRef<T[keyof T]>): void => {
|
||||
innerState.value = val as T[keyof T];
|
||||
};
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { useTimeoutFn } from '/@/hooks/core/useTimeout';
|
||||
import { tryOnUnmounted } from '/@/utils/helper/vueHelper';
|
||||
import { unref, Ref, nextTick } from 'vue';
|
||||
import type { EChartsType, EChartsOption } from 'echarts';
|
||||
import type { EChartsOption } from 'echarts';
|
||||
import { useDebounce } from '/@/hooks/core/useDebounce';
|
||||
import { useEventListener } from '/@/hooks/event/useEventListener';
|
||||
import { useBreakpoint } from '/@/hooks/event/useBreakpoint';
|
||||
@ -12,7 +12,7 @@ export function useECharts(
|
||||
elRef: Ref<HTMLDivElement>,
|
||||
theme: 'light' | 'dark' | 'default' = 'light'
|
||||
) {
|
||||
let chartInstance: Nullable<EChartsType> = null;
|
||||
let chartInstance: echarts.ECharts | null = null;
|
||||
let resizeFn: Fn = resize;
|
||||
let removeResizeFn: Fn = () => {};
|
||||
|
||||
|
@ -1,13 +0,0 @@
|
||||
import { Ref, ref, onMounted, nextTick } from 'vue';
|
||||
import { useRect } from '/@/hooks/web/useRect';
|
||||
export const useHeight = (element: Element | Ref<Element>) => {
|
||||
const height = ref();
|
||||
|
||||
onMounted(() => {
|
||||
nextTick(() => {
|
||||
height.value = useRect(element).height;
|
||||
});
|
||||
});
|
||||
|
||||
return height;
|
||||
};
|
@ -11,23 +11,24 @@ type I18nGlobalTranslation = {
|
||||
|
||||
type I18nTranslationRestParameters = [string, any];
|
||||
|
||||
function getKey(namespace: string | undefined, key: string) {
|
||||
if (!namespace) {
|
||||
return key;
|
||||
}
|
||||
if (key.startsWith(namespace)) {
|
||||
return key;
|
||||
}
|
||||
return `${namespace}.${key}`;
|
||||
}
|
||||
|
||||
export function useI18n(
|
||||
namespace?: string
|
||||
): {
|
||||
t: I18nGlobalTranslation;
|
||||
} {
|
||||
function getKey(key: string) {
|
||||
if (!namespace) {
|
||||
return key;
|
||||
}
|
||||
if (key.startsWith(namespace)) {
|
||||
return key;
|
||||
}
|
||||
return `${namespace}.${key}`;
|
||||
}
|
||||
const normalFn = {
|
||||
t: (key: string) => {
|
||||
return getKey(key);
|
||||
return getKey(namespace, key);
|
||||
},
|
||||
};
|
||||
|
||||
@ -39,7 +40,7 @@ export function useI18n(
|
||||
|
||||
const tFn: I18nGlobalTranslation = (key: string, ...arg: any[]) => {
|
||||
if (!key) return '';
|
||||
return t(getKey(key), ...(arg as I18nTranslationRestParameters));
|
||||
return t(getKey(namespace, key), ...(arg as I18nTranslationRestParameters));
|
||||
};
|
||||
return {
|
||||
...methods,
|
||||
|
@ -1,33 +0,0 @@
|
||||
import { Ref, unref } from 'vue';
|
||||
import { isWindow } from '/@/utils/is';
|
||||
|
||||
export const useRect = (elementRef: (Element | Window) | Ref<Element | Window | undefined>) => {
|
||||
const element = unref(elementRef);
|
||||
|
||||
if (isWindow(element)) {
|
||||
const width = element.innerWidth;
|
||||
const height = element.innerHeight;
|
||||
|
||||
return {
|
||||
top: 0,
|
||||
left: 0,
|
||||
right: width,
|
||||
bottom: height,
|
||||
width,
|
||||
height,
|
||||
};
|
||||
}
|
||||
|
||||
if (element && element.getBoundingClientRect) {
|
||||
return element.getBoundingClientRect();
|
||||
}
|
||||
|
||||
return {
|
||||
top: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
width: 0,
|
||||
height: 0,
|
||||
};
|
||||
};
|
@ -1,9 +1,11 @@
|
||||
<template>
|
||||
<Dropdown placement="bottomLeft" :overlayClassName="`${prefixCls}-dropdown-overlay`">
|
||||
<span :class="[prefixCls, `${prefixCls}--${theme}`]">
|
||||
<span :class="[prefixCls, `${prefixCls}--${theme}`]" class="flex">
|
||||
<img :class="`${prefixCls}__header`" :src="headerImg" />
|
||||
<span :class="`${prefixCls}__info`">
|
||||
<span :class="`${prefixCls}__name`" class="truncate">{{ getUserInfo.realName }}</span>
|
||||
<span :class="`${prefixCls}__info hidden md:block`">
|
||||
<span :class="`${prefixCls}__name `" class="truncate">
|
||||
{{ getUserInfo.realName }}
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
@ -121,9 +123,7 @@
|
||||
@prefix-cls: ~'@{namespace}-header-user-dropdown';
|
||||
|
||||
.@{prefix-cls} {
|
||||
display: flex;
|
||||
height: @header-height;
|
||||
min-width: 100px;
|
||||
padding: 0 0 0 10px;
|
||||
padding-right: 10px;
|
||||
overflow: hidden;
|
||||
|
@ -16,6 +16,7 @@ import { isDevMode } from '/@/utils/env';
|
||||
|
||||
const app = createApp(App);
|
||||
|
||||
// Register global components
|
||||
registerGlobComp(app);
|
||||
|
||||
// Multilingual configuration
|
||||
|
@ -2,7 +2,9 @@ import type { AppRouteRecordRaw } from '/@/router/types';
|
||||
import ParentLayout from '/@/layouts/page/ParentView.vue';
|
||||
import { t } from '/@/hooks/web/useI18n';
|
||||
|
||||
const EXCEPTION_COMPONENT = () => import('../views/sys/exception/Exception.vue');
|
||||
export const REDIRECT_NAME = 'Redirect';
|
||||
|
||||
export const EXCEPTION_COMPONENT = () => import('../views/sys/exception/Exception.vue');
|
||||
|
||||
/**
|
||||
* @description: default layout
|
||||
@ -44,8 +46,6 @@ export const PAGE_NOT_FOUND_ROUTE: AppRouteRecordRaw = {
|
||||
],
|
||||
};
|
||||
|
||||
export const REDIRECT_NAME = 'Redirect';
|
||||
|
||||
export const REDIRECT_ROUTE: AppRouteRecordRaw = {
|
||||
path: '/redirect',
|
||||
name: REDIRECT_NAME,
|
||||
|
@ -2,6 +2,10 @@ import type { Router } from 'vue-router';
|
||||
import { useProjectSetting } from '/@/hooks/setting';
|
||||
import { AxiosCanceler } from '/@/utils/http/axios/axiosCancel';
|
||||
|
||||
/**
|
||||
* The interface used to close the current page to complete the request when the route is switched
|
||||
* @param router
|
||||
*/
|
||||
export function createHttpGuard(router: Router) {
|
||||
const { removeAllHttpPending } = useProjectSetting();
|
||||
let axiosCanceler: Nullable<AxiosCanceler>;
|
||||
|
@ -4,6 +4,10 @@ import { Modal, notification } from 'ant-design-vue';
|
||||
|
||||
import { warn } from '/@/utils/log';
|
||||
|
||||
/**
|
||||
* Used to close the message instance when the route is switched
|
||||
* @param router
|
||||
*/
|
||||
export function createMessageGuard(router: Router) {
|
||||
const { closeMessageOnSwitch } = useProjectSetting();
|
||||
|
||||
|
@ -6,7 +6,6 @@ import { createRouter, createWebHashHistory } from 'vue-router';
|
||||
import { createGuard } from './guard/';
|
||||
|
||||
import { basicRoutes } from './routes/';
|
||||
import { scrollBehavior } from './scrollBehavior';
|
||||
import { REDIRECT_NAME } from './constant';
|
||||
|
||||
// app router
|
||||
@ -14,7 +13,7 @@ const router = createRouter({
|
||||
history: createWebHashHistory(),
|
||||
routes: (basicRoutes as unknown) as RouteRecordRaw[],
|
||||
strict: true,
|
||||
scrollBehavior: scrollBehavior,
|
||||
scrollBehavior: () => ({ left: 0, top: 0 }),
|
||||
});
|
||||
|
||||
// reset router
|
||||
|
@ -1,57 +0,0 @@
|
||||
// see https://github.com/vuejs/vue-router-next/blob/master/playground/scrollWaiter.ts
|
||||
import type { RouteLocationNormalized } from 'vue-router';
|
||||
// class ScrollQueue {
|
||||
// private resolve: (() => void) | null = null;
|
||||
// private promise: Promise<any> | null = null;
|
||||
|
||||
// add() {
|
||||
// this.promise = new Promise((resolve) => {
|
||||
// this.resolve = resolve as () => void;
|
||||
// });
|
||||
// }
|
||||
|
||||
// flush() {
|
||||
// this.resolve && this.resolve();
|
||||
// this.resolve = null;
|
||||
// this.promise = null;
|
||||
// }
|
||||
|
||||
// async wait() {
|
||||
// await this.promise;
|
||||
// }
|
||||
// }
|
||||
// const scrollWaiter = new ScrollQueue();
|
||||
|
||||
/**
|
||||
* Handles the scroll behavior on route navigation
|
||||
*
|
||||
* @param {object} to Route object of next page
|
||||
* @param {object} from Route object of previous page
|
||||
* @param {object} savedPosition Used by popstate navigations
|
||||
* @returns {(object|boolean)} Scroll position or `false`
|
||||
*/
|
||||
// @ts-ignore
|
||||
export async function scrollBehavior(to, from, savedPosition) {
|
||||
// await scrollWaiter.wait();
|
||||
// Use predefined scroll behavior if defined, defaults to no scroll behavior
|
||||
const behavior = 'smooth';
|
||||
// Returning the `savedPosition` (if available) will result in a native-like
|
||||
// behavior when navigating with back/forward buttons
|
||||
if (savedPosition) {
|
||||
return { ...savedPosition, behavior };
|
||||
}
|
||||
|
||||
// Scroll to anchor by returning the selector
|
||||
if (to.hash) {
|
||||
return { el: decodeURI(to.hash), behavior };
|
||||
}
|
||||
|
||||
// Check if any matched route config has meta that discourages scrolling to top
|
||||
if (to.matched.some((m: RouteLocationNormalized) => m.meta.scrollToTop === false)) {
|
||||
// Leave scroll as it is
|
||||
return false;
|
||||
}
|
||||
|
||||
// Always scroll to top
|
||||
return { left: 0, top: 0, behavior };
|
||||
}
|
@ -89,12 +89,5 @@ export interface MenuModule {
|
||||
menu: Menu;
|
||||
}
|
||||
|
||||
// interface RouteModule {
|
||||
// layout: AppRouteRecordRaw;
|
||||
// routes: AppRouteRecordRaw[];
|
||||
// children?: AppRouteRecordRaw[];
|
||||
// component?: Component;
|
||||
// }
|
||||
|
||||
// export type AppRouteModule = RouteModule | AppRouteRecordRaw;
|
||||
export type AppRouteModule = AppRouteRecordRaw;
|
||||
|
@ -1,19 +1,12 @@
|
||||
import type { App } from 'vue';
|
||||
import {
|
||||
createStore,
|
||||
// createLogger, Plugin
|
||||
} from 'vuex';
|
||||
import { createStore } from 'vuex';
|
||||
import { config } from 'vuex-module-decorators';
|
||||
import { isDevMode } from '/@/utils/env';
|
||||
|
||||
config.rawError = true;
|
||||
const isDev = isDevMode();
|
||||
// const plugins: Plugin<any>[] = isDev ? [createLogger()] : [];
|
||||
|
||||
const store = createStore({
|
||||
// modules: {},
|
||||
strict: isDev,
|
||||
// plugins,
|
||||
strict: isDevMode(),
|
||||
});
|
||||
|
||||
export function setupStore(app: App<Element>) {
|
||||
|
@ -1,8 +1,10 @@
|
||||
import CryptoES from 'crypto-es';
|
||||
|
||||
export interface EncryptionParams {
|
||||
key: string;
|
||||
iv: string;
|
||||
}
|
||||
|
||||
export class Encryption {
|
||||
private key;
|
||||
|
||||
@ -16,7 +18,7 @@ export class Encryption {
|
||||
|
||||
get getOptions(): CryptoES.lib.CipherCfg {
|
||||
return {
|
||||
mode: CryptoES.mode.CBC as any,
|
||||
mode: CryptoES.mode.CBC,
|
||||
padding: CryptoES.pad.Pkcs7,
|
||||
iv: this.iv,
|
||||
};
|
||||
|
@ -1,45 +1,46 @@
|
||||
<template>
|
||||
<Form class="p-4" :model="formData" :rules="getFormRules" ref="formRef">
|
||||
<FormItem name="account" class="enter-x">
|
||||
<Input size="large" v-model:value="formData.account" :placeholder="t('sys.login.userName')" />
|
||||
</FormItem>
|
||||
<template v-if="getShow">
|
||||
<LoginFormTitle class="enter-x" />
|
||||
<Form class="p-4 enter-x" :model="formData" :rules="getFormRules" ref="formRef">
|
||||
<FormItem name="account" class="enter-x">
|
||||
<Input
|
||||
size="large"
|
||||
v-model:value="formData.account"
|
||||
:placeholder="t('sys.login.userName')"
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem name="mobile" class="enter-x">
|
||||
<Input size="large" v-model:value="formData.mobile" :placeholder="t('sys.login.mobile')" />
|
||||
</FormItem>
|
||||
<FormItem name="sms" class="enter-x">
|
||||
<CountdownInput
|
||||
size="large"
|
||||
v-model:value="formData.sms"
|
||||
:placeholder="t('sys.login.smsCode')"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem name="mobile" class="enter-x">
|
||||
<Input size="large" v-model:value="formData.mobile" :placeholder="t('sys.login.mobile')" />
|
||||
</FormItem>
|
||||
<FormItem name="sms" class="enter-x">
|
||||
<CountdownInput
|
||||
size="large"
|
||||
v-model:value="formData.sms"
|
||||
:placeholder="t('sys.login.smsCode')"
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem class="enter-x">
|
||||
<Button
|
||||
type="primary"
|
||||
size="large"
|
||||
block
|
||||
@click="handleReset"
|
||||
:loading="loading"
|
||||
class="enter-x"
|
||||
>
|
||||
{{ t('common.resetText') }}
|
||||
</Button>
|
||||
<Button size="large" block class="mt-4 enter-x" @click="handleBackLogin">
|
||||
{{ t('sys.login.backSignIn') }}
|
||||
</Button>
|
||||
</FormItem>
|
||||
</Form>
|
||||
<FormItem class="enter-x">
|
||||
<Button type="primary" size="large" block @click="handleReset" :loading="loading">
|
||||
{{ t('common.resetText') }}
|
||||
</Button>
|
||||
<Button size="large" block class="mt-4" @click="handleBackLogin">
|
||||
{{ t('sys.login.backSignIn') }}
|
||||
</Button>
|
||||
</FormItem>
|
||||
</Form>
|
||||
</template>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { defineComponent, reactive, ref } from 'vue';
|
||||
import { defineComponent, reactive, ref, computed, unref } from 'vue';
|
||||
|
||||
import LoginFormTitle from './LoginFormTitle.vue';
|
||||
import { Form, Input, Button } from 'ant-design-vue';
|
||||
import { CountdownInput } from '/@/components/CountDown';
|
||||
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
import { LoginStateEnum, useLoginState, useFormRules, useFormValid } from './useLogin';
|
||||
import { useLoginState, useFormRules, useFormValid, LoginStateEnum } from './useLogin';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'ForgetPasswordForm',
|
||||
@ -49,10 +50,11 @@
|
||||
FormItem: Form.Item,
|
||||
Input,
|
||||
CountdownInput,
|
||||
LoginFormTitle,
|
||||
},
|
||||
setup() {
|
||||
const { t } = useI18n();
|
||||
const { setLoginState } = useLoginState();
|
||||
const { handleBackLogin, getLoginState } = useLoginState();
|
||||
const { getFormRules } = useFormRules();
|
||||
|
||||
const formRef = ref<any>(null);
|
||||
@ -66,16 +68,14 @@
|
||||
|
||||
const { validForm } = useFormValid(formRef);
|
||||
|
||||
const getShow = computed(() => unref(getLoginState) === LoginStateEnum.RESET_PASSWORD);
|
||||
|
||||
async function handleReset() {
|
||||
const data = await validForm();
|
||||
if (!data) return;
|
||||
console.log(data);
|
||||
}
|
||||
|
||||
function handleBackLogin() {
|
||||
setLoginState(LoginStateEnum.LOGIN);
|
||||
}
|
||||
|
||||
return {
|
||||
t,
|
||||
formRef,
|
||||
@ -84,6 +84,7 @@
|
||||
handleReset,
|
||||
loading,
|
||||
handleBackLogin,
|
||||
getShow,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
@ -9,7 +9,7 @@
|
||||
<AppLogo :alwaysShowTitle="true" />
|
||||
</span>
|
||||
|
||||
<div class="container relative h-full py-2 mx-auto sm:px-10">
|
||||
<div class="container relative h-full py-2 mx-auto sm:px-10 -enter-x">
|
||||
<div class="flex h-full">
|
||||
<div class="hidden xl:flex xl:flex-col xl:w-6/12 min-h-full mr-4 pl-4">
|
||||
<AppLogo class="-enter-x" />
|
||||
@ -31,14 +31,11 @@
|
||||
<div
|
||||
class="my-auto mx-auto xl:ml-20 bg-white xl:bg-transparent px-5 py-8 sm:px-8 xl:p-0 rounded-md shadow-md xl:shadow-none w-full sm:w-3/4 lg:w-2/4 xl:w-auto enter-x relative"
|
||||
>
|
||||
<h2 class="font-bold text-2xl xl:text-3xl enter-x text-center xl:text-left mb-6">
|
||||
{{ getFormTitle }}
|
||||
</h2>
|
||||
<LoginForm v-show="getShowLogin" />
|
||||
<ForgetPasswordForm v-if="getShowResetPassword" />
|
||||
<RegisterForm v-if="getShowRegister" />
|
||||
<MobileForm v-if="getShowMobile" />
|
||||
<QrCodeForm v-if="getShowQrCode" />
|
||||
<LoginForm />
|
||||
<ForgetPasswordForm />
|
||||
<RegisterForm />
|
||||
<MobileForm />
|
||||
<QrCodeForm />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -59,7 +56,6 @@
|
||||
import { useGlobSetting, useProjectSetting } from '/@/hooks/setting';
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
import { useDesign } from '/@/hooks/web/useDesign';
|
||||
import { useShowLoginForm, useFormTitle } from './useLogin';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Login',
|
||||
@ -74,7 +70,6 @@
|
||||
},
|
||||
setup() {
|
||||
const globSetting = useGlobSetting();
|
||||
const { getFormTitle } = useFormTitle();
|
||||
const { prefixCls } = useDesign('login');
|
||||
const { locale } = useProjectSetting();
|
||||
const { t } = useI18n();
|
||||
@ -84,8 +79,6 @@
|
||||
prefixCls,
|
||||
title: computed(() => globSetting?.title ?? ''),
|
||||
showLocale: computed(() => locale.show),
|
||||
getFormTitle,
|
||||
...useShowLoginForm(),
|
||||
};
|
||||
},
|
||||
});
|
||||
|
@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<Form class="p-4" :model="formData" :rules="getFormRules" ref="formRef">
|
||||
<LoginFormTitle v-show="getShow" class="enter-x" />
|
||||
<Form class="p-4 enter-x" :model="formData" :rules="getFormRules" ref="formRef" v-show="getShow">
|
||||
<FormItem name="account" class="enter-x">
|
||||
<Input size="large" v-model:value="formData.account" :placeholder="t('sys.login.userName')" />
|
||||
</FormItem>
|
||||
@ -32,14 +33,7 @@
|
||||
</ARow>
|
||||
|
||||
<FormItem class="enter-x">
|
||||
<Button
|
||||
type="primary"
|
||||
size="large"
|
||||
block
|
||||
@click="handleLogin"
|
||||
:loading="loading"
|
||||
class="enter-x"
|
||||
>
|
||||
<Button type="primary" size="large" block @click="handleLogin" :loading="loading">
|
||||
{{ t('sys.login.loginButton') }}
|
||||
</Button>
|
||||
<!-- <Button size="large" class="mt-4 enter-x" block @click="handleRegister">
|
||||
@ -64,7 +58,7 @@
|
||||
</ACol>
|
||||
</ARow>
|
||||
|
||||
<Divider>{{ t('sys.login.otherSignIn') }}</Divider>
|
||||
<Divider class="enter-x">{{ t('sys.login.otherSignIn') }}</Divider>
|
||||
|
||||
<div class="flex justify-evenly enter-x" :class="`${prefixCls}-sign-in-way`">
|
||||
<GithubFilled />
|
||||
@ -76,7 +70,7 @@
|
||||
</Form>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { defineComponent, reactive, ref, toRaw } from 'vue';
|
||||
import { defineComponent, reactive, ref, toRaw, unref, computed } from 'vue';
|
||||
|
||||
import { Checkbox, Form, Input, Row, Col, Button, Divider } from 'ant-design-vue';
|
||||
import {
|
||||
@ -86,6 +80,7 @@
|
||||
GoogleCircleFilled,
|
||||
TwitterCircleFilled,
|
||||
} from '@ant-design/icons-vue';
|
||||
import LoginFormTitle from './LoginFormTitle.vue';
|
||||
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
@ -97,15 +92,16 @@
|
||||
export default defineComponent({
|
||||
name: 'LoginForm',
|
||||
components: {
|
||||
[Col.name]: Col,
|
||||
[Row.name]: Row,
|
||||
Checkbox,
|
||||
Button,
|
||||
Form,
|
||||
FormItem: Form.Item,
|
||||
Input,
|
||||
Divider,
|
||||
LoginFormTitle,
|
||||
InputPassword: Input.Password,
|
||||
[Col.name]: Col,
|
||||
[Row.name]: Row,
|
||||
GithubFilled,
|
||||
WechatFilled,
|
||||
AlipayCircleFilled,
|
||||
@ -117,7 +113,7 @@
|
||||
const { notification } = useMessage();
|
||||
const { prefixCls } = useDesign('login');
|
||||
|
||||
const { setLoginState } = useLoginState();
|
||||
const { setLoginState, getLoginState } = useLoginState();
|
||||
const { getFormRules } = useFormRules();
|
||||
|
||||
const formRef = ref<any>(null);
|
||||
@ -131,6 +127,8 @@
|
||||
|
||||
const { validForm } = useFormValid(formRef);
|
||||
|
||||
const getShow = computed(() => unref(getLoginState) === LoginStateEnum.LOGIN);
|
||||
|
||||
async function handleLogin() {
|
||||
const data = await validForm();
|
||||
if (!data) return;
|
||||
@ -165,6 +163,7 @@
|
||||
loading,
|
||||
setLoginState,
|
||||
LoginStateEnum,
|
||||
getShow,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
35
src/views/sys/login/LoginFormTitle.vue
Normal file
35
src/views/sys/login/LoginFormTitle.vue
Normal file
@ -0,0 +1,35 @@
|
||||
<template>
|
||||
<h2 class="font-bold text-2xl xl:text-3xl enter-x text-center xl:text-left mb-6">
|
||||
{{ getFormTitle }}
|
||||
</h2>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { defineComponent, computed, unref } from 'vue';
|
||||
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
import { LoginStateEnum, useLoginState } from './useLogin';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'LoginFormTitle',
|
||||
setup() {
|
||||
const { t } = useI18n();
|
||||
|
||||
const { getLoginState } = useLoginState();
|
||||
|
||||
const getFormTitle = computed(() => {
|
||||
const titleObj = {
|
||||
[LoginStateEnum.RESET_PASSWORD]: t('sys.login.forgetFormTitle'),
|
||||
[LoginStateEnum.LOGIN]: t('sys.login.signInFormTitle'),
|
||||
[LoginStateEnum.REGISTER]: t('sys.login.signUpFormTitle'),
|
||||
[LoginStateEnum.MOBILE]: t('sys.login.mobileSignInFormTitle'),
|
||||
[LoginStateEnum.QR_CODE]: t('sys.login.qrSignInFormTitle'),
|
||||
};
|
||||
return titleObj[unref(getLoginState)];
|
||||
});
|
||||
|
||||
return {
|
||||
getFormTitle,
|
||||
};
|
||||
},
|
||||
});
|
||||
</script>
|
@ -1,41 +1,38 @@
|
||||
<template>
|
||||
<Form class="p-4" :model="formData" :rules="getFormRules" ref="formRef">
|
||||
<FormItem name="mobile" class="enter-x">
|
||||
<Input size="large" v-model:value="formData.mobile" :placeholder="t('sys.login.mobile')" />
|
||||
</FormItem>
|
||||
<FormItem name="sms" class="enter-x">
|
||||
<CountdownInput
|
||||
size="large"
|
||||
v-model:value="formData.sms"
|
||||
:placeholder="t('sys.login.smsCode')"
|
||||
/>
|
||||
</FormItem>
|
||||
<template v-if="getShow">
|
||||
<LoginFormTitle class="enter-x" />
|
||||
<Form class="p-4 enter-x" :model="formData" :rules="getFormRules" ref="formRef">
|
||||
<FormItem name="mobile" class="enter-x">
|
||||
<Input size="large" v-model:value="formData.mobile" :placeholder="t('sys.login.mobile')" />
|
||||
</FormItem>
|
||||
<FormItem name="sms" class="enter-x">
|
||||
<CountdownInput
|
||||
size="large"
|
||||
v-model:value="formData.sms"
|
||||
:placeholder="t('sys.login.smsCode')"
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem class="enter-x">
|
||||
<Button
|
||||
type="primary"
|
||||
size="large"
|
||||
block
|
||||
@click="handleLogin"
|
||||
:loading="loading"
|
||||
class="enter-x"
|
||||
>
|
||||
{{ t('sys.login.loginButton') }}
|
||||
</Button>
|
||||
<Button size="large" block class="mt-4 enter-x" @click="handleBackLogin">
|
||||
{{ t('sys.login.backSignIn') }}
|
||||
</Button>
|
||||
</FormItem>
|
||||
</Form>
|
||||
<FormItem class="enter-x">
|
||||
<Button type="primary" size="large" block @click="handleLogin" :loading="loading">
|
||||
{{ t('sys.login.loginButton') }}
|
||||
</Button>
|
||||
<Button size="large" block class="mt-4" @click="handleBackLogin">
|
||||
{{ t('sys.login.backSignIn') }}
|
||||
</Button>
|
||||
</FormItem>
|
||||
</Form>
|
||||
</template>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { defineComponent, reactive, ref } from 'vue';
|
||||
import { defineComponent, reactive, ref, computed, unref } from 'vue';
|
||||
|
||||
import { Form, Input, Button } from 'ant-design-vue';
|
||||
import { CountdownInput } from '/@/components/CountDown';
|
||||
import LoginFormTitle from './LoginFormTitle.vue';
|
||||
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
import { LoginStateEnum, useLoginState, useFormRules, useFormValid } from './useLogin';
|
||||
import { useLoginState, useFormRules, useFormValid, LoginStateEnum } from './useLogin';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'MobileForm',
|
||||
@ -45,10 +42,11 @@
|
||||
FormItem: Form.Item,
|
||||
Input,
|
||||
CountdownInput,
|
||||
LoginFormTitle,
|
||||
},
|
||||
setup() {
|
||||
const { t } = useI18n();
|
||||
const { setLoginState } = useLoginState();
|
||||
const { handleBackLogin, getLoginState } = useLoginState();
|
||||
const { getFormRules } = useFormRules();
|
||||
|
||||
const formRef = ref<any>(null);
|
||||
@ -61,16 +59,14 @@
|
||||
|
||||
const { validForm } = useFormValid(formRef);
|
||||
|
||||
const getShow = computed(() => unref(getLoginState) === LoginStateEnum.MOBILE);
|
||||
|
||||
async function handleLogin() {
|
||||
const data = await validForm();
|
||||
if (!data) return;
|
||||
console.log(data);
|
||||
}
|
||||
|
||||
function handleBackLogin() {
|
||||
setLoginState(LoginStateEnum.LOGIN);
|
||||
}
|
||||
|
||||
return {
|
||||
t,
|
||||
formRef,
|
||||
@ -79,6 +75,7 @@
|
||||
handleLogin,
|
||||
loading,
|
||||
handleBackLogin,
|
||||
getShow,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
@ -1,20 +1,29 @@
|
||||
<template>
|
||||
<div class="enter-x min-w-64 min-h-64">
|
||||
<QrCode :value="qrCodeUrl" class="enter-x flex justify-center xl:justify-start" :width="280" />
|
||||
<Divider>{{ t('sys.login.scanSign') }}</Divider>
|
||||
<Button size="large" block class="mt-4 enter-x" @click="handleBackLogin">
|
||||
{{ t('sys.login.backSignIn') }}
|
||||
</Button>
|
||||
</div>
|
||||
<template v-if="getShow">
|
||||
<LoginFormTitle class="enter-x" />
|
||||
<div class="enter-x min-w-64 min-h-64">
|
||||
<QrCode
|
||||
:value="qrCodeUrl"
|
||||
class="enter-x flex justify-center xl:justify-start"
|
||||
:width="280"
|
||||
/>
|
||||
<Divider class="enter-x">{{ t('sys.login.scanSign') }}</Divider>
|
||||
<Button size="large" block class="mt-4 enter-x" @click="handleBackLogin">
|
||||
{{ t('sys.login.backSignIn') }}
|
||||
</Button>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue';
|
||||
import { defineComponent, computed, unref } from 'vue';
|
||||
|
||||
import LoginFormTitle from './LoginFormTitle.vue';
|
||||
import { Button, Divider } from 'ant-design-vue';
|
||||
import { QrCode } from '/@/components/Qrcode/index';
|
||||
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
import { LoginStateEnum, useLoginState } from './useLogin';
|
||||
import { QrCode } from '/@/components/Qrcode/index';
|
||||
import { useLoginState, LoginStateEnum } from './useLogin';
|
||||
|
||||
const qrCodeUrl = 'https://vvbin.cn/next/login';
|
||||
export default defineComponent({
|
||||
name: 'QrCodeForm',
|
||||
@ -22,18 +31,19 @@
|
||||
Button,
|
||||
QrCode,
|
||||
Divider,
|
||||
LoginFormTitle,
|
||||
},
|
||||
setup() {
|
||||
const { t } = useI18n();
|
||||
const { setLoginState } = useLoginState();
|
||||
const { handleBackLogin, getLoginState } = useLoginState();
|
||||
|
||||
const getShow = computed(() => unref(getLoginState) === LoginStateEnum.QR_CODE);
|
||||
|
||||
function handleBackLogin() {
|
||||
setLoginState(LoginStateEnum.LOGIN);
|
||||
}
|
||||
return {
|
||||
t,
|
||||
handleBackLogin,
|
||||
qrCodeUrl,
|
||||
getShow,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
@ -1,65 +1,73 @@
|
||||
<template>
|
||||
<Form class="p-4" :model="formData" :rules="getFormRules" ref="formRef">
|
||||
<FormItem name="account" class="enter-x">
|
||||
<Input size="large" v-model:value="formData.account" :placeholder="t('sys.login.userName')" />
|
||||
</FormItem>
|
||||
<FormItem name="mobile" class="enter-x">
|
||||
<Input size="large" v-model:value="formData.mobile" :placeholder="t('sys.login.mobile')" />
|
||||
</FormItem>
|
||||
<FormItem name="sms" class="enter-x">
|
||||
<CountdownInput
|
||||
size="large"
|
||||
v-model:value="formData.sms"
|
||||
:placeholder="t('sys.login.smsCode')"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem name="password" class="enter-x">
|
||||
<StrengthMeter
|
||||
size="large"
|
||||
v-model:value="formData.password"
|
||||
:placeholder="t('sys.login.password')"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem name="confirmPassword" class="enter-x">
|
||||
<InputPassword
|
||||
size="large"
|
||||
visibilityToggle
|
||||
v-model:value="formData.confirmPassword"
|
||||
:placeholder="t('sys.login.confirmPassword')"
|
||||
/>
|
||||
</FormItem>
|
||||
<template v-if="getShow">
|
||||
<LoginFormTitle class="enter-x" />
|
||||
<Form class="p-4 enter-x" :model="formData" :rules="getFormRules" ref="formRef">
|
||||
<FormItem name="account" class="enter-x">
|
||||
<Input
|
||||
size="large"
|
||||
v-model:value="formData.account"
|
||||
:placeholder="t('sys.login.userName')"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem name="mobile" class="enter-x">
|
||||
<Input size="large" v-model:value="formData.mobile" :placeholder="t('sys.login.mobile')" />
|
||||
</FormItem>
|
||||
<FormItem name="sms" class="enter-x">
|
||||
<CountdownInput
|
||||
size="large"
|
||||
v-model:value="formData.sms"
|
||||
:placeholder="t('sys.login.smsCode')"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem name="password" class="enter-x">
|
||||
<StrengthMeter
|
||||
size="large"
|
||||
v-model:value="formData.password"
|
||||
:placeholder="t('sys.login.password')"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem name="confirmPassword" class="enter-x">
|
||||
<InputPassword
|
||||
size="large"
|
||||
visibilityToggle
|
||||
v-model:value="formData.confirmPassword"
|
||||
:placeholder="t('sys.login.confirmPassword')"
|
||||
/>
|
||||
</FormItem>
|
||||
|
||||
<FormItem class="enter-x" name="policy">
|
||||
<!-- No logic, you need to deal with it yourself -->
|
||||
<Checkbox v-model:checked="formData.policy" size="small">
|
||||
{{ t('sys.login.policy') }}
|
||||
</Checkbox>
|
||||
</FormItem>
|
||||
<FormItem class="enter-x" name="policy">
|
||||
<!-- No logic, you need to deal with it yourself -->
|
||||
<Checkbox v-model:checked="formData.policy" size="small">
|
||||
{{ t('sys.login.policy') }}
|
||||
</Checkbox>
|
||||
</FormItem>
|
||||
|
||||
<Button
|
||||
type="primary"
|
||||
size="large"
|
||||
block
|
||||
@click="handleReset"
|
||||
:loading="loading"
|
||||
class="enter-x"
|
||||
>
|
||||
{{ t('sys.login.registerButton') }}
|
||||
</Button>
|
||||
<Button size="large" block class="mt-4 enter-x" @click="handleBackLogin">
|
||||
{{ t('sys.login.backSignIn') }}
|
||||
</Button>
|
||||
</Form>
|
||||
<Button
|
||||
type="primary"
|
||||
class="enter-x"
|
||||
size="large"
|
||||
block
|
||||
@click="handleReset"
|
||||
:loading="loading"
|
||||
>
|
||||
{{ t('sys.login.registerButton') }}
|
||||
</Button>
|
||||
<Button size="large" block class="enter-x mt-4" @click="handleBackLogin">
|
||||
{{ t('sys.login.backSignIn') }}
|
||||
</Button>
|
||||
</Form>
|
||||
</template>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { defineComponent, reactive, ref } from 'vue';
|
||||
import { defineComponent, reactive, ref, unref, computed } from 'vue';
|
||||
|
||||
import LoginFormTitle from './LoginFormTitle.vue';
|
||||
import { Form, Input, Button, Checkbox } from 'ant-design-vue';
|
||||
import { StrengthMeter } from '/@/components/StrengthMeter';
|
||||
import { CountdownInput } from '/@/components/CountDown';
|
||||
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
import { LoginStateEnum, useLoginState, useFormRules, useFormValid } from './useLogin';
|
||||
import { useLoginState, useFormRules, useFormValid, LoginStateEnum } from './useLogin';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'RegisterPasswordForm',
|
||||
@ -72,10 +80,11 @@
|
||||
Checkbox,
|
||||
StrengthMeter,
|
||||
CountdownInput,
|
||||
LoginFormTitle,
|
||||
},
|
||||
setup() {
|
||||
const { t } = useI18n();
|
||||
const { setLoginState } = useLoginState();
|
||||
const { handleBackLogin, getLoginState } = useLoginState();
|
||||
|
||||
const formRef = ref<any>(null);
|
||||
const loading = ref(false);
|
||||
@ -92,16 +101,14 @@
|
||||
const { getFormRules } = useFormRules(formData);
|
||||
const { validForm } = useFormValid(formRef);
|
||||
|
||||
const getShow = computed(() => unref(getLoginState) === LoginStateEnum.REGISTER);
|
||||
|
||||
async function handleReset() {
|
||||
const data = await validForm();
|
||||
if (!data) return;
|
||||
console.log(data);
|
||||
}
|
||||
|
||||
function handleBackLogin() {
|
||||
setLoginState(LoginStateEnum.LOGIN);
|
||||
}
|
||||
|
||||
return {
|
||||
t,
|
||||
formRef,
|
||||
@ -110,6 +117,7 @@
|
||||
handleReset,
|
||||
loading,
|
||||
handleBackLogin,
|
||||
getShow,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
@ -12,22 +12,6 @@ export enum LoginStateEnum {
|
||||
|
||||
const currentState = ref(LoginStateEnum.LOGIN);
|
||||
|
||||
export function useFormTitle() {
|
||||
const { t } = useI18n();
|
||||
|
||||
const getFormTitle = computed(() => {
|
||||
const titleObj = {
|
||||
[LoginStateEnum.RESET_PASSWORD]: t('sys.login.forgetFormTitle'),
|
||||
[LoginStateEnum.LOGIN]: t('sys.login.signInFormTitle'),
|
||||
[LoginStateEnum.REGISTER]: t('sys.login.signUpFormTitle'),
|
||||
[LoginStateEnum.MOBILE]: t('sys.login.mobileSignInFormTitle'),
|
||||
[LoginStateEnum.QR_CODE]: t('sys.login.qrSignInFormTitle'),
|
||||
};
|
||||
return titleObj[unref(currentState)];
|
||||
});
|
||||
return { getFormTitle };
|
||||
}
|
||||
|
||||
export function useLoginState() {
|
||||
function setLoginState(state: LoginStateEnum) {
|
||||
currentState.value = state;
|
||||
@ -35,19 +19,11 @@ export function useLoginState() {
|
||||
|
||||
const getLoginState = computed(() => currentState.value);
|
||||
|
||||
return { setLoginState, getLoginState };
|
||||
}
|
||||
function handleBackLogin() {
|
||||
setLoginState(LoginStateEnum.LOGIN);
|
||||
}
|
||||
|
||||
export function useShowLoginForm() {
|
||||
const getShowLogin = computed(() => unref(currentState) === LoginStateEnum.LOGIN);
|
||||
const getShowResetPassword = computed(
|
||||
() => unref(currentState) === LoginStateEnum.RESET_PASSWORD
|
||||
);
|
||||
const getShowRegister = computed(() => unref(currentState) === LoginStateEnum.REGISTER);
|
||||
const getShowMobile = computed(() => unref(currentState) === LoginStateEnum.MOBILE);
|
||||
const getShowQrCode = computed(() => unref(currentState) === LoginStateEnum.QR_CODE);
|
||||
|
||||
return { getShowLogin, getShowResetPassword, getShowRegister, getShowMobile, getShowQrCode };
|
||||
return { setLoginState, getLoginState, handleBackLogin };
|
||||
}
|
||||
|
||||
export function useFormValid<T extends Object = any>(formRef: Ref<any>) {
|
||||
@ -96,6 +72,7 @@ export function useFormRules(formData?: Recordable) {
|
||||
mobile: mobileFormRule,
|
||||
};
|
||||
switch (unref(currentState)) {
|
||||
// register form rules
|
||||
case LoginStateEnum.REGISTER:
|
||||
return {
|
||||
account: accountFormRule,
|
||||
@ -106,13 +83,19 @@ export function useFormRules(formData?: Recordable) {
|
||||
policy: [{ validator: validatePolicy, trigger: 'change' }],
|
||||
...mobileRule,
|
||||
};
|
||||
|
||||
// reset password form rules
|
||||
case LoginStateEnum.RESET_PASSWORD:
|
||||
return {
|
||||
account: accountFormRule,
|
||||
...mobileRule,
|
||||
};
|
||||
|
||||
// mobile form rules
|
||||
case LoginStateEnum.MOBILE:
|
||||
return mobileRule;
|
||||
|
||||
// login form rules
|
||||
default:
|
||||
return {
|
||||
account: accountFormRule,
|
||||
|
@ -25,11 +25,6 @@
|
||||
"/@/*": ["src/*"]
|
||||
}
|
||||
},
|
||||
"plugins": [
|
||||
{
|
||||
"name": "@vuedx/typescript-plugin-vue"
|
||||
}
|
||||
],
|
||||
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
|
||||
"exclude": ["node_modules", "dist", "**/*.js"]
|
||||
}
|
||||
|
@ -10,14 +10,13 @@ export default defineConfig({
|
||||
extend: {
|
||||
colors,
|
||||
},
|
||||
|
||||
// screen: {
|
||||
// sm: '576px',
|
||||
// md: '768px',
|
||||
// lg: '992px',
|
||||
// xl: '1200px',
|
||||
// '2xl': '1600px',
|
||||
// },
|
||||
screens: {
|
||||
sm: '576px',
|
||||
md: '768px',
|
||||
lg: '992px',
|
||||
xl: '1200px',
|
||||
'2xl': '1600px',
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
|
502
yarn.lock
502
yarn.lock
@ -67,7 +67,7 @@
|
||||
semver "^5.4.1"
|
||||
source-map "^0.5.0"
|
||||
|
||||
"@babel/generator@^7.12.1", "@babel/generator@^7.12.10", "@babel/generator@^7.12.11":
|
||||
"@babel/generator@^7.12.10", "@babel/generator@^7.12.11":
|
||||
version "7.12.11"
|
||||
resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af"
|
||||
integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==
|
||||
@ -278,12 +278,7 @@
|
||||
chalk "^2.0.0"
|
||||
js-tokens "^4.0.0"
|
||||
|
||||
"@babel/parser@7.12.3":
|
||||
version "7.12.3"
|
||||
resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz#a305415ebe7a6c7023b40b5122a0662d928334cd"
|
||||
integrity sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==
|
||||
|
||||
"@babel/parser@^7.12.0", "@babel/parser@^7.12.1", "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.3", "@babel/parser@^7.12.7":
|
||||
"@babel/parser@^7.12.0", "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7":
|
||||
version "7.12.11"
|
||||
resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79"
|
||||
integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==
|
||||
@ -862,21 +857,6 @@
|
||||
"@babel/parser" "^7.12.7"
|
||||
"@babel/types" "^7.12.7"
|
||||
|
||||
"@babel/traverse@7.12.1":
|
||||
version "7.12.1"
|
||||
resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz#941395e0c5cc86d5d3e75caa095d3924526f0c1e"
|
||||
integrity sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.10.4"
|
||||
"@babel/generator" "^7.12.1"
|
||||
"@babel/helper-function-name" "^7.10.4"
|
||||
"@babel/helper-split-export-declaration" "^7.11.0"
|
||||
"@babel/parser" "^7.12.1"
|
||||
"@babel/types" "^7.12.1"
|
||||
debug "^4.1.0"
|
||||
globals "^11.1.0"
|
||||
lodash "^4.17.19"
|
||||
|
||||
"@babel/traverse@^7.0.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5":
|
||||
version "7.12.12"
|
||||
resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376"
|
||||
@ -892,15 +872,6 @@
|
||||
globals "^11.1.0"
|
||||
lodash "^4.17.19"
|
||||
|
||||
"@babel/types@7.12.1":
|
||||
version "7.12.1"
|
||||
resolved "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz#e109d9ab99a8de735be287ee3d6a9947a190c4ae"
|
||||
integrity sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==
|
||||
dependencies:
|
||||
"@babel/helper-validator-identifier" "^7.10.4"
|
||||
lodash "^4.17.19"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.12.0", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.4":
|
||||
version "7.12.12"
|
||||
resolved "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299"
|
||||
@ -1112,20 +1083,10 @@
|
||||
dependencies:
|
||||
cross-fetch "^3.0.6"
|
||||
|
||||
"@iconify/json@^1.1.306":
|
||||
version "1.1.306"
|
||||
resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.306.tgz#cad12ad858a61689009c12d3d2df0fde6a202bb9"
|
||||
integrity sha512-OT1H/non+J8i9BBery8VhXn2JJeUMr8iKA166wsW74UWgez2HsPnkNNdtQmZxIuAyL6FuHQ+WvDi18uD9eAo0Q==
|
||||
|
||||
"@intlify/core-base@9.0.0-beta.16":
|
||||
version "9.0.0-beta.16"
|
||||
resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.0.0-beta.16.tgz#ab35802b982f52db20d4758d020c2dcd1724e7f9"
|
||||
integrity sha512-PJLDVYy3x8Mf9+XtWljEfk4Lo6mudopYlRvB89NQR3TkR+Tqkbcsegj09XdXpTKBYiq+yQrlZKZ0KEHb7l5Zuw==
|
||||
dependencies:
|
||||
"@intlify/message-compiler" "9.0.0-beta.16"
|
||||
"@intlify/message-resolver" "9.0.0-beta.16"
|
||||
"@intlify/runtime" "9.0.0-beta.16"
|
||||
"@intlify/shared" "9.0.0-beta.16"
|
||||
"@iconify/json@^1.1.307":
|
||||
version "1.1.307"
|
||||
resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.307.tgz#db97e8faba1183e0411471dafe210deba0cc1fe2"
|
||||
integrity sha512-2hyKd4DKGWNtQ9CNC4s7tRzMHyDai3GnARC26nGZo7f4/r86FTspvjCEbqpbuM5spJ1fn5jx00Iv4Qee89ooRA==
|
||||
|
||||
"@intlify/core-base@9.0.0-rc.2":
|
||||
version "9.0.0-rc.2"
|
||||
@ -1137,22 +1098,6 @@
|
||||
"@intlify/runtime" "9.0.0-rc.2"
|
||||
"@intlify/shared" "9.0.0-rc.2"
|
||||
|
||||
"@intlify/core@^9.0.0-beta.15":
|
||||
version "9.0.0-beta.16"
|
||||
resolved "https://registry.npmjs.org/@intlify/core/-/core-9.0.0-beta.16.tgz#d74d4678868b37b641bdf999552b237d84dacb88"
|
||||
integrity sha512-tPXf9rr+ZzG1zXgdLo8rCO2jws6eIXzJSaTvgnanZpfyyMKE+T8Ra5vVu3f/Sm0J7flT+z/Q3kLfnbpOMQ1UiQ==
|
||||
dependencies:
|
||||
"@intlify/core-base" "9.0.0-beta.16"
|
||||
|
||||
"@intlify/message-compiler@9.0.0-beta.16":
|
||||
version "9.0.0-beta.16"
|
||||
resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.0.0-beta.16.tgz#359993251a303f148b3a325eca055cdbaf0cd95f"
|
||||
integrity sha512-dE4UZsbVl5TKogYdfrJ6nQKdin1R4XMKVBVa9dE1A8HVvVHBSLy6iQiYpcw8TwcEHIa+rFjuuHuh+IdN3eCw+g==
|
||||
dependencies:
|
||||
"@intlify/message-resolver" "9.0.0-beta.16"
|
||||
"@intlify/shared" "9.0.0-beta.16"
|
||||
source-map "0.6.1"
|
||||
|
||||
"@intlify/message-compiler@9.0.0-rc.2":
|
||||
version "9.0.0-rc.2"
|
||||
resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.0.0-rc.2.tgz#b2ea4852af26f62e850c36157c4b8c03e7a072f4"
|
||||
@ -1162,25 +1107,11 @@
|
||||
"@intlify/shared" "9.0.0-rc.2"
|
||||
source-map "0.6.1"
|
||||
|
||||
"@intlify/message-resolver@9.0.0-beta.16":
|
||||
version "9.0.0-beta.16"
|
||||
resolved "https://registry.npmjs.org/@intlify/message-resolver/-/message-resolver-9.0.0-beta.16.tgz#f8960344201050d17560f8d01f63e3cd0b9bf59c"
|
||||
integrity sha512-xwjsFuDDYEv7g1KE5QZRbrPgfsrNsDhYLtNYR7Tn4inzbmB6ipak2UlDzDcQGLieSFbe1WwAoNL0IXy4sUKboQ==
|
||||
|
||||
"@intlify/message-resolver@9.0.0-rc.2":
|
||||
version "9.0.0-rc.2"
|
||||
resolved "https://registry.npmjs.org/@intlify/message-resolver/-/message-resolver-9.0.0-rc.2.tgz#d6f5eac6dc594ebb1c5e2f68a94fd9e5429c4a15"
|
||||
integrity sha512-CNRrIflQmq3aZWsyGu3mfR9d+xA7W0t5HZQeSh+YR9IBHxNg+2uWbYhGDab87yzovIGOnUSO9yxUdD8gBBmR9Q==
|
||||
|
||||
"@intlify/runtime@9.0.0-beta.16":
|
||||
version "9.0.0-beta.16"
|
||||
resolved "https://registry.npmjs.org/@intlify/runtime/-/runtime-9.0.0-beta.16.tgz#6a210a5b0984f9e295025e3dde5262108e0e69d9"
|
||||
integrity sha512-py+stHrbkBoEB2OsBB+rySevR+54uhybF54LToGjErr740R/AVuOVTJEKRS/LF9VvinGZZTu/WVOXcPpMfqt8Q==
|
||||
dependencies:
|
||||
"@intlify/message-compiler" "9.0.0-beta.16"
|
||||
"@intlify/message-resolver" "9.0.0-beta.16"
|
||||
"@intlify/shared" "9.0.0-beta.16"
|
||||
|
||||
"@intlify/runtime@9.0.0-rc.2":
|
||||
version "9.0.0-rc.2"
|
||||
resolved "https://registry.npmjs.org/@intlify/runtime/-/runtime-9.0.0-rc.2.tgz#20f83a2f57a7789a9588e42a2cf5163f6f13255b"
|
||||
@ -1190,11 +1121,6 @@
|
||||
"@intlify/message-resolver" "9.0.0-rc.2"
|
||||
"@intlify/shared" "9.0.0-rc.2"
|
||||
|
||||
"@intlify/shared@9.0.0-beta.16":
|
||||
version "9.0.0-beta.16"
|
||||
resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.0.0-beta.16.tgz#51a80ca4705c93cb14c8f06398dfc550df09d67d"
|
||||
integrity sha512-A7GSOovcZn/NMoAmDc8FG9uRcFv6iygriK8+C6HFeOnMQ9X+T9f5A9bPtXhCOCiRpQm9SUtGqXedxO5Y8rz9/A==
|
||||
|
||||
"@intlify/shared@9.0.0-rc.2":
|
||||
version "9.0.0-rc.2"
|
||||
resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.0.0-rc.2.tgz#31f53616fe515e8629f39c179f217ca562d06256"
|
||||
@ -1301,74 +1227,6 @@
|
||||
estree-walker "^2.0.1"
|
||||
picomatch "^2.2.2"
|
||||
|
||||
"@sentry/core@5.30.0":
|
||||
version "5.30.0"
|
||||
resolved "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3"
|
||||
integrity sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==
|
||||
dependencies:
|
||||
"@sentry/hub" "5.30.0"
|
||||
"@sentry/minimal" "5.30.0"
|
||||
"@sentry/types" "5.30.0"
|
||||
"@sentry/utils" "5.30.0"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/hub@5.30.0":
|
||||
version "5.30.0"
|
||||
resolved "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100"
|
||||
integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==
|
||||
dependencies:
|
||||
"@sentry/types" "5.30.0"
|
||||
"@sentry/utils" "5.30.0"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/minimal@5.30.0":
|
||||
version "5.30.0"
|
||||
resolved "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz#ce3d3a6a273428e0084adcb800bc12e72d34637b"
|
||||
integrity sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==
|
||||
dependencies:
|
||||
"@sentry/hub" "5.30.0"
|
||||
"@sentry/types" "5.30.0"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/node@^5.30.0":
|
||||
version "5.30.0"
|
||||
resolved "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz#4ca479e799b1021285d7fe12ac0858951c11cd48"
|
||||
integrity sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==
|
||||
dependencies:
|
||||
"@sentry/core" "5.30.0"
|
||||
"@sentry/hub" "5.30.0"
|
||||
"@sentry/tracing" "5.30.0"
|
||||
"@sentry/types" "5.30.0"
|
||||
"@sentry/utils" "5.30.0"
|
||||
cookie "^0.4.1"
|
||||
https-proxy-agent "^5.0.0"
|
||||
lru_map "^0.3.3"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/tracing@5.30.0":
|
||||
version "5.30.0"
|
||||
resolved "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz#501d21f00c3f3be7f7635d8710da70d9419d4e1f"
|
||||
integrity sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==
|
||||
dependencies:
|
||||
"@sentry/hub" "5.30.0"
|
||||
"@sentry/minimal" "5.30.0"
|
||||
"@sentry/types" "5.30.0"
|
||||
"@sentry/utils" "5.30.0"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@sentry/types@5.30.0":
|
||||
version "5.30.0"
|
||||
resolved "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402"
|
||||
integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==
|
||||
|
||||
"@sentry/utils@5.30.0":
|
||||
version "5.30.0"
|
||||
resolved "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980"
|
||||
integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==
|
||||
dependencies:
|
||||
"@sentry/types" "5.30.0"
|
||||
tslib "^1.9.3"
|
||||
|
||||
"@simonwep/pickr@~1.8.0":
|
||||
version "1.8.0"
|
||||
resolved "https://registry.npmjs.org/@simonwep/pickr/-/pickr-1.8.0.tgz#adbff9a4f7f0e59dec9946508c5e481b7abae0f8"
|
||||
@ -1405,11 +1263,6 @@
|
||||
ejs "^2.6.1"
|
||||
magic-string "^0.25.0"
|
||||
|
||||
"@types/braces@*":
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmjs.org/@types/braces/-/braces-3.0.0.tgz#7da1c0d44ff1c7eb660a36ec078ea61ba7eb42cb"
|
||||
integrity sha512-TbH79tcyi9FHwbyboOKeRachRq63mSuWYXOflsNO9ZyE5ClQ/JaozNKl+aWUq87qPNsXasXxi2AbgfwIJ+8GQw==
|
||||
|
||||
"@types/estree@0.0.39":
|
||||
version "0.0.39"
|
||||
resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
|
||||
@ -1511,13 +1364,6 @@
|
||||
dependencies:
|
||||
"@types/unist" "*"
|
||||
|
||||
"@types/micromatch@^4.0.1":
|
||||
version "4.0.1"
|
||||
resolved "https://registry.npmjs.org/@types/micromatch/-/micromatch-4.0.1.tgz#9381449dd659fc3823fd2a4190ceacc985083bc7"
|
||||
integrity sha512-my6fLBvpY70KattTNzYOK6KU1oR1+UCz9ug/JbcF5UrEmeCt9P7DV2t7L8+t18mMPINqGQCE4O8PLOPbI84gxw==
|
||||
dependencies:
|
||||
"@types/braces" "*"
|
||||
|
||||
"@types/minimatch@*", "@types/minimatch@^3.0.3":
|
||||
version "3.0.3"
|
||||
resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
|
||||
@ -1729,7 +1575,7 @@
|
||||
html-tags "^3.1.0"
|
||||
svg-tags "^1.0.0"
|
||||
|
||||
"@vue/compiler-core@3.0.5", "@vue/compiler-core@^3.0.0", "@vue/compiler-core@^3.0.1", "@vue/compiler-core@^3.0.2":
|
||||
"@vue/compiler-core@3.0.5":
|
||||
version "3.0.5"
|
||||
resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.5.tgz#a6e54cabe9536e74c6513acd2649f311af1d43ac"
|
||||
integrity sha512-iFXwk2gmU/GGwN4hpBwDWWMLvpkIejf/AybcFtlQ5V1ur+5jwfBaV0Y1RXoR6ePfBPJixtKZ3PmN+M+HgMAtfQ==
|
||||
@ -1812,134 +1658,25 @@
|
||||
resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.5.tgz#c131d88bd6713cc4d93b3bb1372edb1983225ff0"
|
||||
integrity sha512-gYsNoGkWejBxNO6SNRjOh/xKeZ0H0V+TFzaPzODfBjkAIb0aQgBuixC1brandC/CDJy1wYPwSoYrXpvul7m6yw==
|
||||
|
||||
"@vuedx/analyze@0.6.3":
|
||||
version "0.6.3"
|
||||
resolved "https://registry.npmjs.org/@vuedx/analyze/-/analyze-0.6.3.tgz#f7f367ea1a1b10e22212a4f2f89d5781f17f3c84"
|
||||
integrity sha512-LiQ7Ppw4nEr5qjth+gg1m48yXD7usOcAygUU10lLwfRRlDZevxAdZRcNuC0vBOXUG3xbl6CSDXnAMeWFdlUiyw==
|
||||
"@vueuse/core@^4.2.1":
|
||||
version "4.2.1"
|
||||
resolved "https://registry.npmjs.org/@vueuse/core/-/core-4.2.1.tgz#ac72801c67f26315723d4d244e843c28047f7bc4"
|
||||
integrity sha512-V8KohPwbIN9t5ZWfqB+TJhzM2iwrugq78t6I1QwoGdaw9fdbQfHJiiaf83MGxgYO2B9IwVtuYc4Vjd9X/0Kppg==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.10.4"
|
||||
"@babel/generator" "^7.12.1"
|
||||
"@babel/parser" "^7.12.3"
|
||||
"@babel/template" "^7.12.7"
|
||||
"@babel/traverse" "7.12.1"
|
||||
"@babel/types" "7.12.1"
|
||||
"@types/micromatch" "^4.0.1"
|
||||
"@vuedx/compiler-sfc" "0.6.2"
|
||||
"@vuedx/compiler-tsx" "0.6.3"
|
||||
"@vuedx/projectconfig" "0.6.2"
|
||||
"@vuedx/shared" "0.6.2"
|
||||
"@vuedx/template-ast-types" "0.6.2"
|
||||
cli-highlight "^2.1.4"
|
||||
commander "^6.1.0"
|
||||
fast-glob "^3.2.4"
|
||||
hash-sum "^2.0.0"
|
||||
micromatch "^4.0.2"
|
||||
|
||||
"@vuedx/compiler-sfc@0.6.2":
|
||||
version "0.6.2"
|
||||
resolved "https://registry.npmjs.org/@vuedx/compiler-sfc/-/compiler-sfc-0.6.2.tgz#f9a0d66eb48be839d363364ed4cd96967929f3cb"
|
||||
integrity sha512-mJehCyO6BJiHCLPfVQQZb7RliuwBh7voGkrF27SkA3yhv44VSDaMbDIX2VRm3utl1CacFEVdNFqB9QYviZByfg==
|
||||
dependencies:
|
||||
"@vue/compiler-core" "^3.0.2"
|
||||
lru-cache "^6.0.0"
|
||||
source-map "^0.6.1"
|
||||
|
||||
"@vuedx/compiler-tsx@0.6.3":
|
||||
version "0.6.3"
|
||||
resolved "https://registry.npmjs.org/@vuedx/compiler-tsx/-/compiler-tsx-0.6.3.tgz#d5ed641ee5c90baf3a04962f47e8c9d31d318b9a"
|
||||
integrity sha512-H1SSgUHQXWoTnrIxvl9uXGMUqKlWjNddp8xc+EAg7BRQ4F7kFzHTzOsafG5xzrqnmZujj8cLUknG123rWgsxIg==
|
||||
dependencies:
|
||||
"@babel/parser" "7.12.3"
|
||||
"@babel/types" "7.12.1"
|
||||
"@vue/compiler-core" "^3.0.1"
|
||||
"@vuedx/shared" "0.6.2"
|
||||
"@vuedx/template-ast-types" "0.6.2"
|
||||
|
||||
"@vuedx/projectconfig@0.6.2":
|
||||
version "0.6.2"
|
||||
resolved "https://registry.npmjs.org/@vuedx/projectconfig/-/projectconfig-0.6.2.tgz#4c7c32fc76a5a0cb2a8a8b4c4530183d7b70decc"
|
||||
integrity sha512-qoekczmYpg4bOHMUduGgwGEWYq2CZL9HfztNzSPaJnErTBc4VNFnCBLsAtFPLkILASh6vzE2m/EpIzSpMW5mJQ==
|
||||
|
||||
"@vuedx/shared@0.6.2":
|
||||
version "0.6.2"
|
||||
resolved "https://registry.npmjs.org/@vuedx/shared/-/shared-0.6.2.tgz#ada493a0af75306e37ac19fe8e836f1ce07c8745"
|
||||
integrity sha512-xCXK+X5iDXkNfLglxFGFeEtqSWlopU8Cj6dGgMABWlee7HVDl47A4sj5oQpKuTjwRJHyE+BYtgGxtf1eLee5Yg==
|
||||
dependencies:
|
||||
"@sentry/node" "^5.30.0"
|
||||
node-unique-machine-id "^1.1.0"
|
||||
uuid "^8.3.2"
|
||||
|
||||
"@vuedx/template-ast-types@0.6.2":
|
||||
version "0.6.2"
|
||||
resolved "https://registry.npmjs.org/@vuedx/template-ast-types/-/template-ast-types-0.6.2.tgz#8932b665abfed4593a0bdbfa91ed788056876770"
|
||||
integrity sha512-TY3IesmF6/XbZnlLnImE30MXVJeXpMh8F5ZKZeeVDIvDWmPDZ6fC8DbDj1GycZtx77C85yZRnJJqq5v0AED4aw==
|
||||
dependencies:
|
||||
"@vue/compiler-core" "^3.0.0"
|
||||
|
||||
"@vuedx/typecheck@^0.6.3":
|
||||
version "0.6.3"
|
||||
resolved "https://registry.npmjs.org/@vuedx/typecheck/-/typecheck-0.6.3.tgz#d66b8dcfa8d7d37ccfa196d019c8a5cc8bc7fc4d"
|
||||
integrity sha512-1WfUI+bqg1O8Vklz24EZdsUE6ak4QCxtV6gWrUw+VUbep7ANhZM4RkaMsDFWVdeb2dip9ROrO8ESBrsIViPT8Q==
|
||||
dependencies:
|
||||
"@vuedx/shared" "0.6.2"
|
||||
"@vuedx/typescript-plugin-vue" "0.6.3"
|
||||
"@vuedx/vue-virtual-textdocument" "0.6.3"
|
||||
chalk "^4.1.0"
|
||||
fast-glob "^3.2.4"
|
||||
minimist "^1.2.5"
|
||||
resolve-from "^5.0.0"
|
||||
typescript "^4.0.3"
|
||||
|
||||
"@vuedx/typescript-plugin-vue@0.6.3", "@vuedx/typescript-plugin-vue@^0.6.3":
|
||||
version "0.6.3"
|
||||
resolved "https://registry.npmjs.org/@vuedx/typescript-plugin-vue/-/typescript-plugin-vue-0.6.3.tgz#cc2d99bdc0abbde9bb5909341c47715af00539a3"
|
||||
integrity sha512-zAhXM9LDVYvjAMnTiqf6yZcJXXh1rQrH3JhcmQNmlxk26sRysfa/VWNC8qkfq9vcOKRf1eQusH4g+Vov6qPGig==
|
||||
dependencies:
|
||||
"@intlify/core" "^9.0.0-beta.15"
|
||||
"@vuedx/analyze" "0.6.3"
|
||||
"@vuedx/compiler-sfc" "0.6.2"
|
||||
"@vuedx/projectconfig" "0.6.2"
|
||||
"@vuedx/shared" "0.6.2"
|
||||
"@vuedx/template-ast-types" "0.6.2"
|
||||
"@vuedx/vue-virtual-textdocument" "0.6.3"
|
||||
de-indent "^1.0.2"
|
||||
json5 "^2.1.3"
|
||||
quick-lru "^5.1.1"
|
||||
vscode-uri "^2.1.2"
|
||||
vscode-web-custom-data "^0.3.2"
|
||||
|
||||
"@vuedx/vue-virtual-textdocument@0.6.3":
|
||||
version "0.6.3"
|
||||
resolved "https://registry.npmjs.org/@vuedx/vue-virtual-textdocument/-/vue-virtual-textdocument-0.6.3.tgz#750484d93378b47ead5f6e319e32d33160ed5658"
|
||||
integrity sha512-FN5h4GsIcYAIfFbal0+1ryddDgpxMx/gxGE5QYinbwj5PwILZzyAUt//drQfppIHzCL+TJuZSml7fAod5tYvQA==
|
||||
dependencies:
|
||||
"@vuedx/analyze" "0.6.3"
|
||||
"@vuedx/compiler-sfc" "0.6.2"
|
||||
"@vuedx/compiler-tsx" "0.6.3"
|
||||
"@vuedx/shared" "0.6.2"
|
||||
source-map "^0.6.1"
|
||||
vscode-languageserver-textdocument "^1.0.1"
|
||||
vscode-uri "^2.1.2"
|
||||
|
||||
"@vueuse/core@^4.1.1":
|
||||
version "4.1.1"
|
||||
resolved "https://registry.npmjs.org/@vueuse/core/-/core-4.1.1.tgz#9136952bc435dfc42263959bea8dac35965bac43"
|
||||
integrity sha512-a+fu7FUHDzLpgcOGwbgyNZXLbm85NHEf4jkPkyqTtqHEHqU4aVbdyM0Vzl90PpFEDe92pJjoYJnZEQQgq9nEHw==
|
||||
dependencies:
|
||||
"@vueuse/shared" "4.1.1"
|
||||
"@vueuse/shared" "4.2.1"
|
||||
vue-demi latest
|
||||
|
||||
"@vueuse/shared@4.1.1":
|
||||
version "4.1.1"
|
||||
resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-4.1.1.tgz#58e4333d5ab45927e25578fad83bc81cecfea475"
|
||||
integrity sha512-M1bNwOaJZypu/AUYKrOU87pQLRp8VgMYHQyL1hVc6V3hi3ZcUBSjZuyFVaUdxGk0OeA0NPzHoYbByTMrpxElug==
|
||||
"@vueuse/shared@4.2.1":
|
||||
version "4.2.1"
|
||||
resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-4.2.1.tgz#67e3229e7df68e2c4225d0086537e3a972fe89eb"
|
||||
integrity sha512-lSrzRHRzdqf4LTczeTrVmRd4cmJ6D1u77fJ2E9gksfKHZs+zwSZku7EiAqVj/g1nqZglTu5Z4y6aE6dp3YLYWw==
|
||||
dependencies:
|
||||
vue-demi latest
|
||||
|
||||
"@windicss/plugin-utils@0.4.3":
|
||||
version "0.4.3"
|
||||
resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-0.4.3.tgz#84e85fd3cd6eaf54ca72cae276f9cf0610f45e56"
|
||||
integrity sha512-ilddLED+sZQIA9rOwE5eYwdBEBWKREvAVkkiAOOTNf7oDcP/a1cxT3f/nE4tgfhz+MC/FKcy7NkfrqfXRdEQaQ==
|
||||
"@windicss/plugin-utils@0.4.4":
|
||||
version "0.4.4"
|
||||
resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-0.4.4.tgz#fd18565a23df7896d8a4550bcecad631311db538"
|
||||
integrity sha512-qQHtNPt0eI2K2lsFHBN5y/rbC3ndXgR+PZuKdj2oirQLKMXFyU70+GdeMShi3OkZXAwGqN08MvdoiTsC2jGEMQ==
|
||||
dependencies:
|
||||
esbuild "^0.8.49"
|
||||
esbuild-register "^2.0.0"
|
||||
@ -1983,13 +1720,6 @@ adler-32@~1.2.0:
|
||||
exit-on-epipe "~1.0.1"
|
||||
printj "~1.1.0"
|
||||
|
||||
agent-base@6:
|
||||
version "6.0.2"
|
||||
resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
|
||||
integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
|
||||
dependencies:
|
||||
debug "4"
|
||||
|
||||
aggregate-error@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
|
||||
@ -2097,11 +1827,6 @@ ant-design-vue@2.0.0:
|
||||
vue-types "^3.0.0"
|
||||
warning "^4.0.0"
|
||||
|
||||
any-promise@^1.0.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
|
||||
integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
|
||||
|
||||
anymatch@~3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
|
||||
@ -2755,18 +2480,6 @@ cli-cursor@^3.1.0:
|
||||
dependencies:
|
||||
restore-cursor "^3.1.0"
|
||||
|
||||
cli-highlight@^2.1.4:
|
||||
version "2.1.10"
|
||||
resolved "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.10.tgz#26a087da9209dce4fcb8cf5427dc97cd96ac173a"
|
||||
integrity sha512-CcPFD3JwdQ2oSzy+AMG6j3LRTkNjM82kzcSKzoVw6cLanDCJNlsLjeqVTOTfOfucnWv5F0rmBemVf1m9JiIasw==
|
||||
dependencies:
|
||||
chalk "^4.0.0"
|
||||
highlight.js "^10.0.0"
|
||||
mz "^2.4.0"
|
||||
parse5 "^5.1.1"
|
||||
parse5-htmlparser2-tree-adapter "^6.0.0"
|
||||
yargs "^16.0.0"
|
||||
|
||||
cli-truncate@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
|
||||
@ -2895,7 +2608,7 @@ commander@^4.1.1:
|
||||
resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
|
||||
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
|
||||
|
||||
commander@^6.1.0, commander@^6.2.0:
|
||||
commander@^6.2.0:
|
||||
version "6.2.1"
|
||||
resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
|
||||
integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
|
||||
@ -3179,11 +2892,6 @@ convert-source-map@^1.7.0:
|
||||
dependencies:
|
||||
safe-buffer "~5.1.1"
|
||||
|
||||
cookie@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1"
|
||||
integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==
|
||||
|
||||
copy-anything@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.1.tgz#2afbce6da684bdfcbec93752fa762819cb480d9a"
|
||||
@ -3394,11 +3102,6 @@ dayjs@^1.10.4:
|
||||
resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz#8e544a9b8683f61783f570980a8a80eaf54ab1e2"
|
||||
integrity sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw==
|
||||
|
||||
de-indent@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
|
||||
integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
|
||||
|
||||
debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
|
||||
version "2.6.9"
|
||||
resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
||||
@ -3406,13 +3109,6 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1:
|
||||
version "4.3.1"
|
||||
resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
|
||||
integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
|
||||
dependencies:
|
||||
ms "2.1.2"
|
||||
|
||||
debug@^3.1.1, debug@^3.2.6:
|
||||
version "3.2.7"
|
||||
resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
|
||||
@ -3420,6 +3116,13 @@ debug@^3.1.1, debug@^3.2.6:
|
||||
dependencies:
|
||||
ms "^2.1.1"
|
||||
|
||||
debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1:
|
||||
version "4.3.1"
|
||||
resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
|
||||
integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
|
||||
dependencies:
|
||||
ms "2.1.2"
|
||||
|
||||
debug@^4.3.2:
|
||||
version "4.3.2"
|
||||
resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
|
||||
@ -3726,10 +3429,10 @@ ejs@^2.6.1:
|
||||
resolved "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
|
||||
integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
|
||||
|
||||
ejs@^3.1.5:
|
||||
version "3.1.5"
|
||||
resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b"
|
||||
integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==
|
||||
ejs@^3.1.6:
|
||||
version "3.1.6"
|
||||
resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a"
|
||||
integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==
|
||||
dependencies:
|
||||
jake "^10.6.1"
|
||||
|
||||
@ -4216,7 +3919,7 @@ fast-diff@^1.1.2:
|
||||
resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
|
||||
integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
|
||||
|
||||
fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.4, fast-glob@^3.2.5:
|
||||
fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.5:
|
||||
version "3.2.5"
|
||||
resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661"
|
||||
integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==
|
||||
@ -4966,11 +4669,6 @@ header-case@^2.0.4:
|
||||
capital-case "^1.0.4"
|
||||
tslib "^2.0.3"
|
||||
|
||||
highlight.js@^10.0.0:
|
||||
version "10.5.0"
|
||||
resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.5.0.tgz#3f09fede6a865757378f2d9ebdcbc15ba268f98f"
|
||||
integrity sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw==
|
||||
|
||||
homedir-polyfill@^1.0.1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
|
||||
@ -5066,23 +4764,15 @@ http-server@^0.12.3:
|
||||
secure-compare "3.0.1"
|
||||
union "~0.5.0"
|
||||
|
||||
https-proxy-agent@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
|
||||
integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
|
||||
dependencies:
|
||||
agent-base "6"
|
||||
debug "4"
|
||||
|
||||
human-signals@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
|
||||
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
|
||||
|
||||
husky@^5.0.9:
|
||||
version "5.0.9"
|
||||
resolved "https://registry.npmjs.org/husky/-/husky-5.0.9.tgz#6d38706643d66ed395bcd4ee952d02e3f15eb3a3"
|
||||
integrity sha512-0SjcaY21a+IRdx7p7r/X33Vc09UR2m8SbP8yfkhUX2/jAmwcz+GR7i9jXkp2pP3GfX23JhMkVP6SWwXB18uXtg==
|
||||
husky@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.npmjs.org/husky/-/husky-5.1.0.tgz#68b1148523acc838af0655ead71bf4671adb9f93"
|
||||
integrity sha512-Os0EY2haOO+59YZSwMiUDsHY43RFwBVIRStHcnnT8/kvA+sFfaA/YS4uLFRiymXYgQl6E6TQTt3y4v/Z2ctEtw==
|
||||
|
||||
iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
|
||||
version "0.4.24"
|
||||
@ -5738,7 +5428,7 @@ json5@^1.0.1:
|
||||
dependencies:
|
||||
minimist "^1.2.0"
|
||||
|
||||
json5@^2.1.2, json5@^2.1.3:
|
||||
json5@^2.1.2:
|
||||
version "2.1.3"
|
||||
resolved "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
|
||||
integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==
|
||||
@ -6092,11 +5782,6 @@ lru-cache@^6.0.0:
|
||||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
lru_map@^0.3.3:
|
||||
version "0.3.3"
|
||||
resolved "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd"
|
||||
integrity sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=
|
||||
|
||||
magic-string@^0.25.0, magic-string@^0.25.7:
|
||||
version "0.25.7"
|
||||
resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
|
||||
@ -6449,15 +6134,6 @@ mute-stream@0.0.7:
|
||||
resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
|
||||
integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
|
||||
|
||||
mz@^2.4.0:
|
||||
version "2.7.0"
|
||||
resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
|
||||
integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
|
||||
dependencies:
|
||||
any-promise "^1.0.0"
|
||||
object-assign "^4.0.1"
|
||||
thenify-all "^1.0.0"
|
||||
|
||||
nanoid@^3.0.1, nanoid@^3.1.20:
|
||||
version "3.1.20"
|
||||
resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788"
|
||||
@ -6532,13 +6208,6 @@ node-releases@^1.1.69:
|
||||
resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08"
|
||||
integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==
|
||||
|
||||
node-unique-machine-id@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmjs.org/node-unique-machine-id/-/node-unique-machine-id-1.1.0.tgz#dbd9351da927cfc0e85a663a55e8644da384b746"
|
||||
integrity sha512-uJtdcFelVD08XdvxYWYzMYprSTPYl9CYiQbyGYbjXZcMZtLRlEqNUs+C/va/81DNgExsMHL5g0YDYQFS0pENRQ==
|
||||
dependencies:
|
||||
uuid "^3.3.3"
|
||||
|
||||
normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
|
||||
@ -6973,23 +6642,6 @@ parse-passwd@^1.0.0:
|
||||
resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
|
||||
integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
|
||||
|
||||
parse5-htmlparser2-tree-adapter@^6.0.0:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6"
|
||||
integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==
|
||||
dependencies:
|
||||
parse5 "^6.0.1"
|
||||
|
||||
parse5@^5.1.1:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
|
||||
integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
|
||||
|
||||
parse5@^6.0.1:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
|
||||
integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
|
||||
|
||||
parseurl@~1.3.3:
|
||||
version "1.3.3"
|
||||
resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
|
||||
@ -7428,11 +7080,6 @@ quick-lru@^4.0.1:
|
||||
resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
|
||||
integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
|
||||
|
||||
quick-lru@^5.1.1:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
|
||||
integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
|
||||
|
||||
randombytes@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
|
||||
@ -8724,20 +8371,6 @@ text-table@^0.2.0:
|
||||
resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
||||
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
|
||||
|
||||
thenify-all@^1.0.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
|
||||
integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=
|
||||
dependencies:
|
||||
thenify ">= 3.1.0 < 4"
|
||||
|
||||
"thenify@>= 3.1.0 < 4":
|
||||
version "3.3.1"
|
||||
resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f"
|
||||
integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==
|
||||
dependencies:
|
||||
any-promise "^1.0.0"
|
||||
|
||||
through2@^2.0.0, through2@^2.0.2:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
|
||||
@ -8873,7 +8506,7 @@ tslib@2.0.3:
|
||||
resolved "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c"
|
||||
integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==
|
||||
|
||||
tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
|
||||
tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0:
|
||||
version "1.14.1"
|
||||
resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||
@ -8944,11 +8577,6 @@ typedarray-to-buffer@^3.1.5:
|
||||
dependencies:
|
||||
is-typedarray "^1.0.0"
|
||||
|
||||
typescript@^4.0.3:
|
||||
version "4.1.3"
|
||||
resolved "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7"
|
||||
integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==
|
||||
|
||||
typescript@^4.1.5:
|
||||
version "4.1.5"
|
||||
resolved "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz#123a3b214aaff3be32926f0d8f1f6e704eb89a72"
|
||||
@ -9158,16 +8786,11 @@ utils-merge@1.0.1:
|
||||
resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
|
||||
integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
|
||||
|
||||
uuid@^3.0.1, uuid@^3.3.2, uuid@^3.3.3:
|
||||
uuid@^3.0.1, uuid@^3.3.2:
|
||||
version "3.4.0"
|
||||
resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
|
||||
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
|
||||
|
||||
uuid@^8.3.2:
|
||||
version "8.3.2"
|
||||
resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
|
||||
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
|
||||
|
||||
v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"
|
||||
@ -9215,12 +8838,12 @@ vite-plugin-compression@^0.2.1:
|
||||
debug "^4.3.2"
|
||||
fs-extra "^9.1.0"
|
||||
|
||||
vite-plugin-html@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-2.0.0.tgz#de39b99ce7df4d0e1234bfae5c23215647d71a28"
|
||||
integrity sha512-6nfzAcMp345FRI5WTHOq11O585nlJ2ELwFarhZEi/yvrR1FauhDcFOGGL67/IKiTruYZaatZ3xnFg5BIxK6/7w==
|
||||
vite-plugin-html@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-2.0.1.tgz#6a8fa9a705024aa47e03b9b990c650773e2bd29b"
|
||||
integrity sha512-qmoPTTkajxCuctxoAreIF9JW6HjrUr6hKJWLHnwRPoBd9SNzcyDwI6cW4gd4DQy2zHcQA7dD8LzgmT1Qz0vvgw==
|
||||
dependencies:
|
||||
ejs "^3.1.5"
|
||||
ejs "^3.1.6"
|
||||
fs-extra "^9.1.0"
|
||||
html-minifier-terser "^5.1.1"
|
||||
|
||||
@ -9274,10 +8897,10 @@ vite-plugin-purge-icons@^0.7.0:
|
||||
"@purge-icons/generated" "^0.7.0"
|
||||
rollup-plugin-purge-icons "^0.7.0"
|
||||
|
||||
vite-plugin-pwa@^0.5.2:
|
||||
version "0.5.2"
|
||||
resolved "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.5.2.tgz#48131ebadc0c98c34a543dbf1bb1c86aeef532e0"
|
||||
integrity sha512-4SHKxYhd5sCF/ebbgxGYlN91UHlylzh7C32a5+Y2c2vbrWzw5x62ZxsYzolQzBosdOim4Ez+e/dX4hmP3BCmow==
|
||||
vite-plugin-pwa@^0.5.3:
|
||||
version "0.5.3"
|
||||
resolved "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.5.3.tgz#60d97d62335846144c8e6b6a911704d6c0f75171"
|
||||
integrity sha512-xGh0gIgzczvYNj8ED5HhpJ2iT5kMiieim2qI8kT/3+rfo83hTyuzhEICkljIbhausvOaGxtzLKWE8RS6cUg0Fw==
|
||||
dependencies:
|
||||
debug "^4.3.2"
|
||||
fast-glob "^3.2.5"
|
||||
@ -9307,12 +8930,12 @@ vite-plugin-theme@^0.4.3:
|
||||
es-module-lexer "^0.3.26"
|
||||
tinycolor2 "^1.4.2"
|
||||
|
||||
vite-plugin-windicss@0.4.3:
|
||||
version "0.4.3"
|
||||
resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-0.4.3.tgz#f86e5a3b78882caa3cdd50cba2b08770e2d627c8"
|
||||
integrity sha512-Lnv6OhcYzcJvecTs4LIpMSfo54rSewkHrW85IVwy8hacR0krY319jXr5nwiDpSTp6HM3QJhoJ4zxHF+t5Q+Nwg==
|
||||
vite-plugin-windicss@0.4.4:
|
||||
version "0.4.4"
|
||||
resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-0.4.4.tgz#fd13fba5b55211f34768f5acfadfd743f95c24a6"
|
||||
integrity sha512-VDQn4cO+cq7sEV2yD1n+Mg6sN4TiFZwdeuteN7uDk6gintbUAMNHyoFyZUF0Z0/vYN4Ca62HvXlXdTgheE4QYg==
|
||||
dependencies:
|
||||
"@windicss/plugin-utils" "0.4.3"
|
||||
"@windicss/plugin-utils" "0.4.4"
|
||||
windicss "^2.1.15"
|
||||
|
||||
vite@2.0.1:
|
||||
@ -9327,21 +8950,6 @@ vite@2.0.1:
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.1"
|
||||
|
||||
vscode-languageserver-textdocument@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz#178168e87efad6171b372add1dea34f53e5d330f"
|
||||
integrity sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==
|
||||
|
||||
vscode-uri@^2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c"
|
||||
integrity sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==
|
||||
|
||||
vscode-web-custom-data@^0.3.2:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.npmjs.org/vscode-web-custom-data/-/vscode-web-custom-data-0.3.2.tgz#62a5a924397d8056c5524ff0ff8f14eb815b7066"
|
||||
integrity sha512-GGZ99dJbARyh6rv03dXZImGlP5WvNG382A3nIt0yX1uyqBa558L/klHWcgEJzcVkG4t16OQWwPedMR3JkeD2Qg==
|
||||
|
||||
vue-demi@latest:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.6.0.tgz#e314282f704cb449119b9fd002cbbc0e39f591fe"
|
||||
@ -9773,7 +9381,7 @@ yargs@^15.1.0:
|
||||
y18n "^4.0.0"
|
||||
yargs-parser "^18.1.2"
|
||||
|
||||
yargs@^16.0.0, yargs@^16.0.3, yargs@^16.2.0:
|
||||
yargs@^16.0.3, yargs@^16.2.0:
|
||||
version "16.2.0"
|
||||
resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
|
||||
integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
|
||||
|
Loading…
Reference in New Issue
Block a user