feat: 添加 defineOptions

This commit is contained in:
vben
2023-04-06 00:08:17 +08:00
parent 8e5a6b7ce5
commit 5e8ef2f64f
25 changed files with 346 additions and 159 deletions

View File

@@ -37,6 +37,8 @@
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-simple-import-sort": "^10.0.0",
"eslint-plugin-unused-imports": "^2.0.0",
"eslint-plugin-vue": "^9.10.0",
"vue-eslint-parser": "^9.1.1"
}

View File

@@ -17,7 +17,14 @@ export default {
createDefaultProgram: false,
extraFileExtensions: ['.vue'],
},
plugins: ['vue', '@typescript-eslint', 'import'],
plugins: [
'vue',
'@typescript-eslint',
'import',
// TODO: 改造完成后开启
// 'unused-imports',
// 'simple-import-sort',
],
extends: [
'eslint:recommended',
'plugin:vue/vue3-recommended',
@@ -30,10 +37,26 @@ export default {
'no-use-before-define': 'off',
'space-before-function-paren': 'off',
// TODO: 改造完成后开启
// 'simple-import-sort/imports': 'error',
// 'simple-import-sort/exports': 'error',
'import/first': 'error',
'import/newline-after-import': 'error',
'import/no-duplicates': 'error',
// 'unused-imports/no-unused-imports': 'error',
// 'unused-imports/no-unused-vars': [
// 'warn',
// { vars: 'all', varsIgnorePattern: '^_', args: 'after-used', argsIgnorePattern: '^_' },
// ],
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
},
],
'@typescript-eslint/ban-ts-ignore': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/no-explicit-any': 'off',
@@ -44,13 +67,7 @@ export default {
'@typescript-eslint/ban-types': 'off',
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
},
],
'@typescript-eslint/no-unused-vars': 'off',
'vue/script-setup-uses-vars': 'error',
'vue/no-reserved-component-names': 'off',
'vue/custom-event-name-casing': 'off',
@@ -87,4 +104,5 @@ export default {
// },
// ],
},
globals: { defineOptions: 'readonly' },
};

View File

@@ -19,6 +19,8 @@
"node-server.json"
],
"dependencies": {
"@types/node": "^18.15.11"
"@types/node": "^18.15.11",
"unplugin-vue-define-options": "^1.3.3",
"vite": "^4.3.0-beta.2"
}
}

View File

@@ -1,10 +1,11 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"display": "Vue Library",
"display": "Vue Application",
"extends": "./base.json",
"compilerOptions": {
"jsx": "preserve",
"lib": ["ESNext", "DOM"],
"noImplicitAny": false
}
}

View File

@@ -32,11 +32,13 @@
},
"dependencies": {
"@ant-design/colors": "^7.0.0",
"vite": "^4.3.0-beta.1"
"vite": "^4.3.0-beta.2"
},
"devDependencies": {
"@types/fs-extra": "^11.0.1",
"ant-design-vue": "^3.2.16",
"@vitejs/plugin-vue": "^4.1.0",
"@vitejs/plugin-vue-jsx": "^3.0.1",
"ant-design-vue": "^3.2.17",
"dayjs": "^1.11.7",
"dotenv": "^16.0.3",
"fs-extra": "^11.1.1",
@@ -46,6 +48,7 @@
"rollup-plugin-visualizer": "^5.9.0",
"sass": "^1.60.0",
"unocss": "^0.50.6",
"unplugin-vue-define-options": "^1.3.3",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-dts": "^2.2.0",
"vite-plugin-html": "^3.2.0",

View File

@@ -8,6 +8,8 @@ import { createAppConfigPlugin } from './appConfig';
import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
import purgeIcons from 'vite-plugin-purge-icons';
// @ts-ignore
import DefineOptions from 'unplugin-vue-define-options/vite';
interface Options {
isBuild: boolean;
@@ -18,7 +20,7 @@ interface Options {
}
async function createPlugins({ isBuild, root, enableMock, compress, enableAnalyze }: Options) {
const vitePlugins: (PluginOption | PluginOption[])[] = [vue(), vueJsx()];
const vitePlugins: (PluginOption | PluginOption[])[] = [vue(), vueJsx(), DefineOptions()];
const appConfigPlugin = await createAppConfigPlugin({ root, isBuild });
vitePlugins.push(appConfigPlugin);

View File

@@ -110,7 +110,7 @@
"devDependencies": {
"@commitlint/cli": "^17.5.1",
"@commitlint/config-conventional": "^17.4.4",
"@iconify/json": "^2.2.45",
"@iconify/json": "^2.2.46",
"@purge-icons/generated": "^0.9.0",
"@types/codemirror": "^5.60.7",
"@types/crypto-js": "^4.1.1",
@@ -126,8 +126,6 @@
"@vben/stylelint-config": "workspace:*",
"@vben/ts-config": "workspace:*",
"@vben/vite-config": "workspace:*",
"@vitejs/plugin-vue": "^4.1.0",
"@vitejs/plugin-vue-jsx": "^3.0.1",
"@vue/compiler-sfc": "^3.2.47",
"@vue/test-utils": "^2.3.2",
"cross-env": "^7.0.3",
@@ -141,7 +139,8 @@
"turbo": "^1.8.8",
"typescript": "^5.0.3",
"unbuild": "^1.2.0",
"vite": "^4.3.0-beta.1",
"unplugin-vue-define-options": "^1.3.3",
"vite": "^4.3.0-beta.2",
"vite-plugin-mock": "^2.9.6",
"vue-tsc": "^1.2.0"
},

View File

@@ -1,2 +1,2 @@
// life-cycle
export * from './lifecycle/onMountedOrActivated';
export * from './onMountedOrActivated';
export * from './useAttrs';

View File

@@ -1,7 +1,7 @@
import { getCurrentInstance, reactive, shallowRef, watchEffect } from 'vue';
import type { Ref } from 'vue';
import { type Recordable } from '@vben/types';
interface Params {
interface Options {
excludeListeners?: boolean;
excludeKeys?: string[];
excludeDefaultKeys?: boolean;
@@ -10,15 +10,15 @@ interface Params {
const DEFAULT_EXCLUDE_KEYS = ['class', 'style'];
const LISTENER_PREFIX = /^on[A-Z]/;
export function entries<T>(obj: Recordable<T>): [string, T][] {
function entries<T>(obj: Recordable<T>): [string, T][] {
return Object.keys(obj).map((key: string) => [key, obj[key]]);
}
export function useAttrs(params: Params = {}): Ref<Recordable> | {} {
function useAttrs(options: Options = {}): Recordable<any> {
const instance = getCurrentInstance();
if (!instance) return {};
const { excludeListeners = false, excludeKeys = [], excludeDefaultKeys = true } = params;
const { excludeListeners = false, excludeKeys = [], excludeDefaultKeys = true } = options;
const attrs = shallowRef({});
const allExcludeKeys = excludeKeys.concat(excludeDefaultKeys ? DEFAULT_EXCLUDE_KEYS : []);
@@ -32,10 +32,12 @@ export function useAttrs(params: Params = {}): Ref<Recordable> | {} {
}
return acm;
}, {} as Recordable);
}, {} as Recordable<any>);
attrs.value = res;
});
return attrs;
}
export { useAttrs };

View File

@@ -1,5 +1,5 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "@vben/ts-config/vue.json",
"extends": "@vben/ts-config/vue-app.json",
"include": ["src"]
}

View File

@@ -13,4 +13,34 @@ type AnyPromiseFunction = (...arg: any) => PromiseLike<any>;
*/
type AnyNormalFunction = (...arg: any) => any;
export { type AnyFunction, type AnyPromiseFunction, type AnyNormalFunction };
/**
* T | null 包装
*/
type Nullable<T> = T | null;
/**
* T | Not null 包装
*/
type NonNullable<T> = T extends null | undefined ? never : T;
/**
* 字符串类型对象
*/
type Recordable<T> = Record<string, T>;
/**
* 字符串类型对象(只读)
*/
type ReadonlyRecordable<T = any> = {
readonly [key: string]: T;
};
export {
type AnyFunction,
type AnyPromiseFunction,
type AnyNormalFunction,
type Nullable,
type NonNullable,
type Recordable,
type ReadonlyRecordable,
};

View File

@@ -1,5 +1,5 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "@vben/ts-config/vue.json",
"extends": "@vben/ts-config/vue-app.json",
"include": ["src"]
}

281
pnpm-lock.yaml generated
View File

@@ -132,8 +132,8 @@ importers:
specifier: ^17.4.4
version: 17.4.4
'@iconify/json':
specifier: ^2.2.45
version: 2.2.45
specifier: ^2.2.46
version: 2.2.46
'@purge-icons/generated':
specifier: ^0.9.0
version: 0.9.0
@@ -179,12 +179,6 @@ importers:
'@vben/vite-config':
specifier: workspace:*
version: link:internal/vite-config
'@vitejs/plugin-vue':
specifier: ^4.1.0
version: 4.1.0(vite@4.3.0-beta.1)(vue@3.2.47)
'@vitejs/plugin-vue-jsx':
specifier: ^3.0.1
version: 3.0.1(vite@4.3.0-beta.1)(vue@3.2.47)
'@vue/compiler-sfc':
specifier: ^3.2.47
version: 3.2.47
@@ -224,12 +218,15 @@ importers:
unbuild:
specifier: ^1.2.0
version: 1.2.0
unplugin-vue-define-options:
specifier: ^1.3.3
version: 1.3.3(rollup@2.79.1)(vue@3.2.47)
vite:
specifier: ^4.3.0-beta.1
version: 4.3.0-beta.1(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
specifier: ^4.3.0-beta.2
version: 4.3.0-beta.2(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
vite-plugin-mock:
specifier: ^2.9.6
version: 2.9.6(mockjs@1.1.0)(rollup@2.79.1)(vite@4.3.0-beta.1)
version: 2.9.6(mockjs@1.1.0)(rollup@2.79.1)(vite@4.3.0-beta.2)
vue-tsc:
specifier: ^1.2.0
version: 1.2.0(typescript@5.0.3)
@@ -318,6 +315,12 @@ importers:
eslint-plugin-prettier:
specifier: ^4.2.1
version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.37.0)(prettier@2.8.7)
eslint-plugin-simple-import-sort:
specifier: ^10.0.0
version: 10.0.0(eslint@8.37.0)
eslint-plugin-unused-imports:
specifier: ^2.0.0
version: 2.0.0(@typescript-eslint/eslint-plugin@5.57.1)(eslint@8.37.0)
eslint-plugin-vue:
specifier: ^9.10.0
version: 9.10.0(eslint@8.37.0)
@@ -375,6 +378,12 @@ importers:
'@types/node':
specifier: ^18.15.11
version: 18.15.11
unplugin-vue-define-options:
specifier: ^1.3.3
version: 1.3.3(rollup@2.79.1)(vue@3.2.47)
vite:
specifier: ^4.3.0-beta.2
version: 4.3.0-beta.2(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
internal/vite-config:
dependencies:
@@ -382,15 +391,21 @@ importers:
specifier: ^7.0.0
version: 7.0.0
vite:
specifier: ^4.3.0-beta.1
version: 4.3.0-beta.1(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
specifier: ^4.3.0-beta.2
version: 4.3.0-beta.2(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
devDependencies:
'@types/fs-extra':
specifier: ^11.0.1
version: 11.0.1
'@vitejs/plugin-vue':
specifier: ^4.1.0
version: 4.1.0(vite@4.3.0-beta.2)(vue@3.2.47)
'@vitejs/plugin-vue-jsx':
specifier: ^3.0.1
version: 3.0.1(vite@4.3.0-beta.2)(vue@3.2.47)
ant-design-vue:
specifier: ^3.2.16
version: 3.2.16(vue@3.2.47)
specifier: ^3.2.17
version: 3.2.17(vue@3.2.47)
dayjs:
specifier: ^1.11.7
version: 1.11.7
@@ -417,25 +432,28 @@ importers:
version: 1.60.0
unocss:
specifier: ^0.50.6
version: 0.50.6(postcss@8.4.21)(rollup@2.79.1)(vite@4.3.0-beta.1)
version: 0.50.6(postcss@8.4.21)(rollup@2.79.1)(vite@4.3.0-beta.2)
unplugin-vue-define-options:
specifier: ^1.3.3
version: 1.3.3(rollup@2.79.1)(vue@3.2.47)
vite-plugin-compression:
specifier: ^0.5.1
version: 0.5.1(vite@4.3.0-beta.1)
version: 0.5.1(vite@4.3.0-beta.2)
vite-plugin-dts:
specifier: ^2.2.0
version: 2.2.0(@types/node@18.15.11)(rollup@2.79.1)(vite@4.3.0-beta.1)
version: 2.2.0(@types/node@18.15.11)(rollup@2.79.1)(vite@4.3.0-beta.2)
vite-plugin-html:
specifier: ^3.2.0
version: 3.2.0(vite@4.3.0-beta.1)
version: 3.2.0(vite@4.3.0-beta.2)
vite-plugin-mock:
specifier: ^2.9.6
version: 2.9.6(mockjs@1.1.0)(rollup@2.79.1)(vite@4.3.0-beta.1)
version: 2.9.6(mockjs@1.1.0)(rollup@2.79.1)(vite@4.3.0-beta.2)
vite-plugin-purge-icons:
specifier: ^0.9.2
version: 0.9.2(vite@4.3.0-beta.1)
version: 0.9.2(vite@4.3.0-beta.2)
vite-plugin-svg-icons:
specifier: ^2.0.1
version: 2.0.1(vite@4.3.0-beta.1)
version: 2.0.1(vite@4.3.0-beta.2)
packages/hooks:
dependencies:
@@ -1285,8 +1303,8 @@ packages:
dependencies:
'@iconify/types': 2.0.0
/@iconify/json@2.2.45:
resolution: {integrity: sha512-gSCDDAHnjCMN/n3BUStVS30Z375o/I++kQBLJy4n93FoL0Xv+UjQYcRo8+Vfjz0/Zw/bm8UdLIQbbxvblHafeA==}
/@iconify/json@2.2.46:
resolution: {integrity: sha512-pWXAKAlvIIKHv/pO79GzKZup4CYBFSdN+F0ERv6lEP2977MJaAVazf1qThPfpnMDqX6mFPZFBPWl+aiqfGVxpQ==}
dependencies:
'@iconify/types': 2.0.0
pathe: 1.1.0
@@ -1382,7 +1400,6 @@ packages:
/@jridgewell/sourcemap-codec@1.4.14:
resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
dev: true
/@jridgewell/trace-mapping@0.3.17:
resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==}
@@ -1731,7 +1748,6 @@ packages:
estree-walker: 2.0.2
picomatch: 2.3.1
rollup: 2.79.1
dev: true
/@rollup/pluginutils@5.0.2(rollup@3.20.2):
resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==}
@@ -1877,7 +1893,6 @@ packages:
/@types/estree@1.0.0:
resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
dev: true
/@types/express-serve-static-core@4.17.33:
resolution: {integrity: sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==}
@@ -2189,12 +2204,12 @@ packages:
eslint-visitor-keys: 3.4.0
dev: true
/@unocss/astro@0.50.6(rollup@2.79.1)(vite@4.3.0-beta.1):
/@unocss/astro@0.50.6(rollup@2.79.1)(vite@4.3.0-beta.2):
resolution: {integrity: sha512-gSGQIh+hBCor7KbAylu4wBQaMZp3AkT8dW9E6jrecpluVxzGGdar93a79Wqs76OlWiu7hr8zOyRbSDgfkwDung==}
dependencies:
'@unocss/core': 0.50.6
'@unocss/reset': 0.50.6
'@unocss/vite': 0.50.6(rollup@2.79.1)(vite@4.3.0-beta.1)
'@unocss/vite': 0.50.6(rollup@2.79.1)(vite@4.3.0-beta.2)
transitivePeerDependencies:
- rollup
- vite
@@ -2345,7 +2360,7 @@ packages:
'@unocss/core': 0.50.6
dev: true
/@unocss/vite@0.50.6(rollup@2.79.1)(vite@4.3.0-beta.1):
/@unocss/vite@0.50.6(rollup@2.79.1)(vite@4.3.0-beta.2):
resolution: {integrity: sha512-BBfNHWRTD69ToNX4NlYdORFG6uH51HCjX+vZ8HAVgYHpSeVWziG3srnGYOk5IS0pKPzQGoLBlz8rstMsGhrAjA==}
peerDependencies:
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0
@@ -2360,12 +2375,12 @@ packages:
chokidar: 3.5.3
fast-glob: 3.2.12
magic-string: 0.30.0
vite: 4.3.0-beta.1(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
vite: 4.3.0-beta.2(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
transitivePeerDependencies:
- rollup
dev: true
/@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.0-beta.1)(vue@3.2.47):
/@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.0-beta.2)(vue@3.2.47):
resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
@@ -2375,20 +2390,20 @@ packages:
'@babel/core': 7.21.4
'@babel/plugin-transform-typescript': 7.21.3(@babel/core@7.21.4)
'@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.4)
vite: 4.3.0-beta.1(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
vite: 4.3.0-beta.2(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
vue: 3.2.47
transitivePeerDependencies:
- supports-color
dev: true
/@vitejs/plugin-vue@4.1.0(vite@4.3.0-beta.1)(vue@3.2.47):
/@vitejs/plugin-vue@4.1.0(vite@4.3.0-beta.2)(vue@3.2.47):
resolution: {integrity: sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^4.0.0
vue: ^3.2.25
dependencies:
vite: 4.3.0-beta.1(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
vite: 4.3.0-beta.2(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
vue: 3.2.47
dev: true
@@ -2431,6 +2446,24 @@ packages:
'@volar/vue-language-core': 1.2.0
dev: true
/@vue-macros/common@1.2.0(rollup@2.79.1)(vue@3.2.47):
resolution: {integrity: sha512-lQglnRn+8wkdAhmGQbrI0mo4SzRuY5KBjst0qi8LBDYllFKtI2brapbewUME1AXnXbVett0SRDnB2EdZXyzCmw==}
engines: {node: '>=14.19.0'}
peerDependencies:
vue: ^2.7.0 || ^3.2.25
peerDependenciesMeta:
vue:
optional: true
dependencies:
'@babel/types': 7.21.4
'@rollup/pluginutils': 5.0.2(rollup@2.79.1)
'@vue/compiler-sfc': 3.3.0-alpha.8
local-pkg: 0.4.3
magic-string-ast: 0.1.2
vue: 3.2.47
transitivePeerDependencies:
- rollup
/@vue/babel-helper-vue-transform-on@1.0.2:
resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==}
dev: true
@@ -2460,12 +2493,26 @@ packages:
estree-walker: 2.0.2
source-map: 0.6.1
/@vue/compiler-core@3.3.0-alpha.8:
resolution: {integrity: sha512-PXzKxwGdAu6iN62fwmbzbFXLJNTt6E0vYc2CXKf3qAzRIY1ECcocyx6GjDACVcl7/ClJhQ43YKSSoaGuZ8i5UQ==}
dependencies:
'@babel/parser': 7.21.4
'@vue/shared': 3.3.0-alpha.8
estree-walker: 2.0.2
source-map: 0.6.1
/@vue/compiler-dom@3.2.47:
resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==}
dependencies:
'@vue/compiler-core': 3.2.47
'@vue/shared': 3.2.47
/@vue/compiler-dom@3.3.0-alpha.8:
resolution: {integrity: sha512-88nWCX6aD9ud6RN1zHq5RyOfSWDLqg49TrnbA6U5Qc9KwBtf1KO1vARdqi1xM4/Ep1oWFod5UVYsHLFED30daQ==}
dependencies:
'@vue/compiler-core': 3.3.0-alpha.8
'@vue/shared': 3.3.0-alpha.8
/@vue/compiler-sfc@3.2.47:
resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==}
dependencies:
@@ -2480,12 +2527,32 @@ packages:
postcss: 8.4.21
source-map: 0.6.1
/@vue/compiler-sfc@3.3.0-alpha.8:
resolution: {integrity: sha512-Hru3kTyT2vVWtYmeSHYX1T6RaQbzwJa6rIq7LiucmG5/myWbngutZ5JWLWNgt7aV6YOzu6Z6yXjXLJ05c4y6cQ==}
dependencies:
'@babel/parser': 7.21.4
'@vue/compiler-core': 3.3.0-alpha.8
'@vue/compiler-dom': 3.3.0-alpha.8
'@vue/compiler-ssr': 3.3.0-alpha.8
'@vue/reactivity-transform': 3.3.0-alpha.8
'@vue/shared': 3.3.0-alpha.8
estree-walker: 2.0.2
magic-string: 0.30.0
postcss: 8.4.21
source-map: 0.6.1
/@vue/compiler-ssr@3.2.47:
resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==}
dependencies:
'@vue/compiler-dom': 3.2.47
'@vue/shared': 3.2.47
/@vue/compiler-ssr@3.3.0-alpha.8:
resolution: {integrity: sha512-cshqRLjfm9IxS7MFoYLXP1srr80Ozxdw04PlgDo/RmKEzHO15vGqPy4eSVeSerZ9/Io6qBiqBP8uKdxy66gyRA==}
dependencies:
'@vue/compiler-dom': 3.3.0-alpha.8
'@vue/shared': 3.3.0-alpha.8
/@vue/devtools-api@6.5.0:
resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==}
dev: false
@@ -2499,6 +2566,15 @@ packages:
estree-walker: 2.0.2
magic-string: 0.25.9
/@vue/reactivity-transform@3.3.0-alpha.8:
resolution: {integrity: sha512-miMpRSF6rkgS5X4mkTWy3f0y/rvnQjxOBQAtUmyQ6aotDrv9P2sHhH3zBkiMtrsQ1E99O9KxsRPJLTp+d7h0FQ==}
dependencies:
'@babel/parser': 7.21.4
'@vue/compiler-core': 3.3.0-alpha.8
'@vue/shared': 3.3.0-alpha.8
estree-walker: 2.0.2
magic-string: 0.30.0
/@vue/reactivity@3.2.47:
resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==}
dependencies:
@@ -2529,6 +2605,9 @@ packages:
/@vue/shared@3.2.47:
resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==}
/@vue/shared@3.3.0-alpha.8:
resolution: {integrity: sha512-NIASpbxrk3QjO/Lu75ueIji2GJ+3W8nJKgL9FmfIa85TNm+N+wbp3+n9AwibWcgZ9MnlwpGy3Iu6efH69jg+Ig==}
/@vue/test-utils@2.3.2(vue@3.2.47):
resolution: {integrity: sha512-hJnVaYhbrIm0yBS0+e1Y0Sj85cMyAi+PAbK4JHqMRUZ6S622Goa+G7QzkRSyvCteG8wop7tipuEbHoZo26wsSA==}
peerDependencies:
@@ -2609,7 +2688,6 @@ packages:
resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
engines: {node: '>=0.4.0'}
hasBin: true
dev: true
/adler-32@1.3.1:
resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==}
@@ -2710,32 +2788,6 @@ packages:
engines: {node: '>=12'}
dev: true
/ant-design-vue@3.2.16(vue@3.2.47):
resolution: {integrity: sha512-kBGxk4csoEi2iaWO62DpNECTnBLIf/CNYW8RdNjLPWo6TBWLQNqLchxRcg8KatOkDRpdWRaqdqeD5P+F6MDC3Q==}
engines: {node: '>=12.22.0'}
peerDependencies:
vue: '>=3.2.0'
dependencies:
'@ant-design/colors': 6.0.0
'@ant-design/icons-vue': 6.1.0(vue@3.2.47)
'@babel/runtime': 7.21.0
'@ctrl/tinycolor': 3.6.0
'@simonwep/pickr': 1.8.2
array-tree-filter: 2.1.0
async-validator: 4.2.5
dayjs: 1.11.7
dom-align: 1.12.4
dom-scroll-into-view: 2.0.1
lodash: 4.17.21
lodash-es: 4.17.21
resize-observer-polyfill: 1.5.1
scroll-into-view-if-needed: 2.2.31
shallow-equal: 1.2.1
vue: 3.2.47
vue-types: 3.0.2(vue@3.2.47)
warning: 4.0.3
dev: true
/ant-design-vue@3.2.17(vue@3.2.47):
resolution: {integrity: sha512-fUHC1PRF3/UTDu7WjaKq2awyqET2mGfEytNOjfbUrvq5Q4AzNghzJlCWh1saCuA+VjnRRBCYu34StZ44cDmbFg==}
engines: {node: '>=12.22.0'}
@@ -2760,7 +2812,6 @@ packages:
vue: 3.2.47
vue-types: 3.0.2(vue@3.2.47)
warning: 4.0.3
dev: false
/any-promise@1.3.0:
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
@@ -2907,6 +2958,13 @@ packages:
tslib: 2.5.0
dev: true
/ast-walker-scope@0.4.1:
resolution: {integrity: sha512-Ro3nmapMxi/remlJdzFH0tiA7A59KDbxVoLlKWaLDrPELiftb9b8w+CCyWRM+sXZH5KHRAgv8feedW6mihvCHA==}
engines: {node: '>=14.19.0'}
dependencies:
'@babel/parser': 7.21.4
'@babel/types': 7.21.4
/astral-regex@2.0.0:
resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
engines: {node: '>=8'}
@@ -4414,6 +4472,29 @@ packages:
prettier-linter-helpers: 1.0.0
dev: true
/eslint-plugin-simple-import-sort@10.0.0(eslint@8.37.0):
resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==}
peerDependencies:
eslint: '>=5.0.0'
dependencies:
eslint: 8.37.0
dev: true
/eslint-plugin-unused-imports@2.0.0(@typescript-eslint/eslint-plugin@5.57.1)(eslint@8.37.0):
resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
'@typescript-eslint/eslint-plugin': ^5.0.0
eslint: ^8.0.0
peerDependenciesMeta:
'@typescript-eslint/eslint-plugin':
optional: true
dependencies:
'@typescript-eslint/eslint-plugin': 5.57.1(@typescript-eslint/parser@5.57.1)(eslint@8.37.0)(typescript@5.0.3)
eslint: 8.37.0
eslint-rule-composer: 0.3.0
dev: true
/eslint-plugin-vue@9.10.0(eslint@8.37.0):
resolution: {integrity: sha512-2MgP31OBf8YilUvtakdVMc8xVbcMp7z7/iQj8LHVpXrSXHPXSJRUIGSPFI6b6pyCx/buKaFJ45ycqfHvQRiW2g==}
engines: {node: ^14.17.0 || >=16.0.0}
@@ -4432,6 +4513,11 @@ packages:
- supports-color
dev: true
/eslint-rule-composer@0.3.0:
resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
engines: {node: '>=4.0.0'}
dev: true
/eslint-scope@5.1.1:
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
engines: {node: '>=8.0.0'}
@@ -6238,7 +6324,6 @@ packages:
/local-pkg@0.4.3:
resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
engines: {node: '>=14'}
dev: true
/locate-path@5.0.0:
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
@@ -6399,6 +6484,12 @@ packages:
engines: {node: '>=12'}
dev: true
/magic-string-ast@0.1.2:
resolution: {integrity: sha512-P53AZrzq7hclCU6HWj88xNZHmP15DKjMmK/vBytO1qnpYP3ul4IEZlyCE0aU3JRnmgWmZPmoTKj4Bls7v0pMyA==}
engines: {node: '>=14.19.0'}
dependencies:
magic-string: 0.30.0
/magic-string@0.25.9:
resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
dependencies:
@@ -6423,7 +6514,6 @@ packages:
engines: {node: '>=12'}
dependencies:
'@jridgewell/sourcemap-codec': 1.4.14
dev: true
/make-dir@2.1.0:
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
@@ -7968,7 +8058,6 @@ packages:
hasBin: true
optionalDependencies:
fsevents: 2.3.2
dev: true
/rollup@3.20.2:
resolution: {integrity: sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==}
@@ -9307,7 +9396,7 @@ packages:
resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
engines: {node: '>= 10.0.0'}
/unocss@0.50.6(postcss@8.4.21)(rollup@2.79.1)(vite@4.3.0-beta.1):
/unocss@0.50.6(postcss@8.4.21)(rollup@2.79.1)(vite@4.3.0-beta.2):
resolution: {integrity: sha512-7cKiIB/ssAPvCDUcFMs0jm0FzIyQKfgIjUzBYZ5dVFthOvN5dcFh7bCZE9dIM862n7oW8FjbkTxwdTbRqqJQVQ==}
engines: {node: '>=14'}
peerDependencies:
@@ -9316,7 +9405,7 @@ packages:
'@unocss/webpack':
optional: true
dependencies:
'@unocss/astro': 0.50.6(rollup@2.79.1)(vite@4.3.0-beta.1)
'@unocss/astro': 0.50.6(rollup@2.79.1)(vite@4.3.0-beta.2)
'@unocss/cli': 0.50.6(rollup@2.79.1)
'@unocss/core': 0.50.6
'@unocss/postcss': 0.50.6(postcss@8.4.21)
@@ -9333,7 +9422,7 @@ packages:
'@unocss/transformer-compile-class': 0.50.6
'@unocss/transformer-directives': 0.50.6
'@unocss/transformer-variant-group': 0.50.6
'@unocss/vite': 0.50.6(rollup@2.79.1)(vite@4.3.0-beta.1)
'@unocss/vite': 0.50.6(rollup@2.79.1)(vite@4.3.0-beta.2)
transitivePeerDependencies:
- postcss
- rollup
@@ -9345,6 +9434,25 @@ packages:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
engines: {node: '>= 0.8'}
/unplugin-vue-define-options@1.3.3(rollup@2.79.1)(vue@3.2.47):
resolution: {integrity: sha512-gSBR84QJZUYhiLlQzJ8dQ9BCUAnnfWf+sTqhxXpzoL/nWH3sQqlGWznQtUPKTqQZdupQr1DCIVvLYMQD1/4X6g==}
engines: {node: '>=14.19.0'}
dependencies:
'@vue-macros/common': 1.2.0(rollup@2.79.1)(vue@3.2.47)
ast-walker-scope: 0.4.1
unplugin: 1.3.1
transitivePeerDependencies:
- rollup
- vue
/unplugin@1.3.1:
resolution: {integrity: sha512-h4uUTIvFBQRxUKS2Wjys6ivoeofGhxzTe2sRWlooyjHXVttcVfV/JiavNd3d4+jty0SVV0dxGw9AkY9MwiaCEw==}
dependencies:
acorn: 8.8.2
chokidar: 3.5.3
webpack-sources: 3.2.3
webpack-virtual-modules: 0.5.0
/unset-value@1.0.0:
resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
engines: {node: '>=0.10.0'}
@@ -9459,7 +9567,7 @@ packages:
diff-match-patch: 1.0.5
dev: false
/vite-plugin-compression@0.5.1(vite@4.3.0-beta.1):
/vite-plugin-compression@0.5.1(vite@4.3.0-beta.2):
resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==}
peerDependencies:
vite: '>=2.0.0'
@@ -9467,12 +9575,12 @@ packages:
chalk: 4.1.2
debug: 4.3.4
fs-extra: 10.1.0
vite: 4.3.0-beta.1(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
vite: 4.3.0-beta.2(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
transitivePeerDependencies:
- supports-color
dev: true
/vite-plugin-dts@2.2.0(@types/node@18.15.11)(rollup@2.79.1)(vite@4.3.0-beta.1):
/vite-plugin-dts@2.2.0(@types/node@18.15.11)(rollup@2.79.1)(vite@4.3.0-beta.2):
resolution: {integrity: sha512-XmZtv02I7eGWm3DrZbLo1AdJK5gCisk9GqJBpY4N63pDYR6AVUnlyjFP5FCBvSBUfgE0Ppl90bKgtJU9k3AzFw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
@@ -9488,14 +9596,14 @@ packages:
kolorist: 1.7.0
magic-string: 0.29.0
ts-morph: 17.0.1
vite: 4.3.0-beta.1(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
vite: 4.3.0-beta.2(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
transitivePeerDependencies:
- '@types/node'
- rollup
- supports-color
dev: true
/vite-plugin-html@3.2.0(vite@4.3.0-beta.1):
/vite-plugin-html@3.2.0(vite@4.3.0-beta.2):
resolution: {integrity: sha512-2VLCeDiHmV/BqqNn5h2V+4280KRgQzCFN47cst3WiNK848klESPQnzuC3okH5XHtgwHH/6s1Ho/YV6yIO0pgoQ==}
peerDependencies:
vite: '>=2.0.0'
@@ -9512,10 +9620,10 @@ packages:
html-minifier-terser: 6.1.0
node-html-parser: 5.4.2
pathe: 0.2.0
vite: 4.3.0-beta.1(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
vite: 4.3.0-beta.2(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
dev: true
/vite-plugin-mock@2.9.6(mockjs@1.1.0)(rollup@2.79.1)(vite@4.3.0-beta.1):
/vite-plugin-mock@2.9.6(mockjs@1.1.0)(rollup@2.79.1)(vite@4.3.0-beta.2):
resolution: {integrity: sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -9532,13 +9640,13 @@ packages:
fast-glob: 3.2.12
mockjs: 1.1.0
path-to-regexp: 6.2.1
vite: 4.3.0-beta.1(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
vite: 4.3.0-beta.2(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
transitivePeerDependencies:
- rollup
- supports-color
dev: true
/vite-plugin-purge-icons@0.9.2(vite@4.3.0-beta.1):
/vite-plugin-purge-icons@0.9.2(vite@4.3.0-beta.2):
resolution: {integrity: sha512-vxJEMyNyckqLr/4HPsW9P6BMLUvOVMvjjFz3jLl4Wke1KWE8ITJUxIUwodxaOmEp9L2lxVk5an3TYeycZCfqFw==}
engines: {node: '>= 12'}
peerDependencies:
@@ -9547,13 +9655,13 @@ packages:
'@purge-icons/core': 0.9.1
'@purge-icons/generated': 0.9.0
rollup-plugin-purge-icons: 0.9.1
vite: 4.3.0-beta.1(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
vite: 4.3.0-beta.2(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
transitivePeerDependencies:
- encoding
- supports-color
dev: true
/vite-plugin-svg-icons@2.0.1(vite@4.3.0-beta.1):
/vite-plugin-svg-icons@2.0.1(vite@4.3.0-beta.2):
resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==}
peerDependencies:
vite: '>=2.0.0'
@@ -9566,13 +9674,13 @@ packages:
pathe: 0.2.0
svg-baker: 1.7.0
svgo: 2.8.0
vite: 4.3.0-beta.1(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
vite: 4.3.0-beta.2(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0)
transitivePeerDependencies:
- supports-color
dev: true
/vite@4.3.0-beta.1(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0):
resolution: {integrity: sha512-D4j9bail/S/OopyozlmQv7zPxf0xwe0zgZTkOAT61yD0lCUF29GgarhU6Z2hPEXelQyKGYyPFwUmuUX4tze9sA==}
/vite@4.3.0-beta.2(@types/node@18.15.11)(less@4.1.3)(sass@1.60.0):
resolution: {integrity: sha512-RRghM7RiRnwknCG3hS+NE8C+N3CNX4yKfVhFxO3NqrtYErN6htac//De9IwIHWqgV8DdKoNPeK8Yb/FOlZvjoQ==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
@@ -9778,6 +9886,13 @@ packages:
resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
dev: true
/webpack-sources@3.2.3:
resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
engines: {node: '>=10.13.0'}
/webpack-virtual-modules@0.5.0:
resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==}
/whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
dependencies:

View File

@@ -8,11 +8,11 @@
<script lang="ts" setup>
import { ConfigProvider } from 'ant-design-vue';
import { AppProvider } from '/@/components/Application';
import { useTitle } from '/@/hooks/web/useTitle';
import { useLocale } from '/@/locales/useLocale';
import { AppProvider } from '@/components/Application';
import { useTitle } from '@/hooks/web/useTitle';
import { useLocale } from '@/locales/useLocale';
import 'dayjs/locale/zh-cn';
// support Multi-language
const { getAntdLocale } = useLocale();

View File

@@ -8,20 +8,18 @@
</Button>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
<script lang="ts" setup>
import { Button } from 'ant-design-vue';
export default defineComponent({
import { computed, unref } from 'vue';
import Icon from '/@/components/Icon/src/Icon.vue';
import { buttonProps } from './props';
import { useAttrs } from '@vben/hooks';
defineOptions({
name: 'AButton',
extends: Button,
inheritAttrs: false,
});
</script>
<script lang="ts" setup>
import { computed, unref } from 'vue';
import Icon from '/@/components/Icon/src/Icon.vue';
import { buttonProps } from './props';
import { useAttrs } from '/@/hooks/core/useAttrs';
const props = defineProps(buttonProps);
// get component class

View File

@@ -4,7 +4,7 @@
import { Popconfirm } from 'ant-design-vue';
import { extendSlots } from '/@/utils/helper/tsxHelper';
import { omit } from 'lodash-es';
import { useAttrs } from '/@/hooks/core/useAttrs';
import { useAttrs } from '@vben/hooks';
import { useI18n } from '/@/hooks/web/useI18n';
const props = {
@@ -39,7 +39,7 @@
return () => {
const bindValues = omit(unref(getBindValues), 'icon');
const btnBind = omit(bindValues, 'title') as Recordable;
const btnBind = omit(bindValues, 'title') as any;
if (btnBind.disabled) btnBind.color = '';
const Button = h(BasicButton, btnBind, extendSlots(slots));

View File

@@ -1,16 +1,23 @@
<script lang="tsx">
import type { DescriptionProps, DescInstance, DescItem } from './typing';
import type { DescriptionsProps } from 'ant-design-vue/es/descriptions/index';
import type { CSSProperties } from 'vue';
import type { CollapseContainerOptions } from '/@/components/Container/index';
import { defineComponent, computed, ref, unref, toRefs } from 'vue';
import {
type CSSProperties,
type PropType,
defineComponent,
computed,
ref,
unref,
toRefs,
} from 'vue';
import { get } from 'lodash-es';
import { Descriptions } from 'ant-design-vue';
import { CollapseContainer } from '/@/components/Container/index';
import { useDesign } from '/@/hooks/web/useDesign';
import { isFunction } from '/@/utils/is';
import { getSlot } from '/@/utils/helper/tsxHelper';
import { useAttrs } from '/@/hooks/core/useAttrs';
import { useAttrs } from '@vben/hooks';
const props = {
useCollapse: { type: Boolean, default: true },
@@ -22,7 +29,7 @@
},
bordered: { type: Boolean, default: true },
column: {
type: [Number, Object] as PropType<number | Recordable>,
type: [Number, Object],
default: () => {
return { xxl: 4, xl: 3, lg: 3, md: 3, sm: 2, xs: 1 };
},
@@ -52,7 +59,7 @@
const getMergeProps = computed(() => {
return {
...props,
...(unref(propsRef) as Recordable),
...(unref(propsRef) as any),
} as DescriptionProps;
});
@@ -89,7 +96,10 @@
*/
function setDescProps(descProps: Partial<DescriptionProps>): void {
// Keep the last setDrawerProps
propsRef.value = { ...(unref(propsRef) as Recordable), ...descProps } as Recordable;
propsRef.value = {
...(unref(propsRef) as Record<string, any>),
...descProps,
} as Record<string, any>;
}
// Prevent line breaks
@@ -121,6 +131,7 @@
return null;
}
const getField = get(_data, field);
// eslint-disable-next-line
if (getField && !toRefs(_data).hasOwnProperty(field)) {
return isFunction(render) ? render('', _data) : '';
}

View File

@@ -52,7 +52,7 @@
import { ScrollContainer } from '/@/components/Container';
import { basicProps } from './props';
import { useDesign } from '/@/hooks/web/useDesign';
import { useAttrs } from '/@/hooks/core/useAttrs';
import { useAttrs } from '@vben/hooks';
export default defineComponent({
components: { Drawer, ScrollContainer, DrawerFooter, DrawerHeader },
@@ -68,7 +68,7 @@
const { prefixVar, prefixCls } = useDesign('basic-drawer');
const drawerInstance: DrawerInstance = {
setDrawerProps: setDrawerProps,
setDrawerProps: setDrawerProps as any,
emitVisible: undefined,
};

View File

@@ -19,14 +19,15 @@
</RadioGroup>
</template>
<script lang="ts">
import { defineComponent, PropType, ref, watchEffect, computed, unref, watch } from 'vue';
import { defineComponent, type PropType, ref, watchEffect, computed, unref, watch } from 'vue';
import { Radio } from 'ant-design-vue';
import { isFunction } from '/@/utils/is';
import { useRuleFormItem } from '/@/hooks/component/useFormItem';
import { useAttrs } from '/@/hooks/core/useAttrs';
import { useAttrs } from '@vben/hooks';
import { propTypes } from '/@/utils/propTypes';
import { get, omit } from 'lodash-es';
import { useI18n } from '/@/hooks/web/useI18n';
type OptionsItem = { label: string; value: string | number | boolean; disabled?: boolean };
export default defineComponent({
@@ -38,11 +39,11 @@
},
props: {
api: {
type: Function as PropType<(arg?: Recordable | string) => Promise<OptionsItem[]>>,
type: Function as PropType<(arg?: any | string) => Promise<OptionsItem[]>>,
default: null,
},
params: {
type: [Object, String] as PropType<Recordable | string>,
type: [Object, String] as PropType<any | string>,
default: () => ({}),
},
value: {
@@ -73,7 +74,7 @@
const getOptions = computed(() => {
const { labelField, valueField, numberToString } = props;
return unref(options).reduce((prev, next: Recordable) => {
return unref(options).reduce((prev, next: any) => {
if (next) {
const value = next[valueField];
prev.push({

View File

@@ -25,7 +25,7 @@
import { Select } from 'ant-design-vue';
import { isFunction } from '/@/utils/is';
import { useRuleFormItem } from '/@/hooks/component/useFormItem';
import { useAttrs } from '/@/hooks/core/useAttrs';
import { useAttrs } from '@vben/hooks';
import { get, omit } from 'lodash-es';
import { LoadingOutlined } from '@ant-design/icons-vue';
import { useI18n } from '/@/hooks/web/useI18n';
@@ -44,7 +44,7 @@
value: [Array, Object, String, Number],
numberToString: propTypes.bool,
api: {
type: Function as PropType<(arg?: Recordable) => Promise<OptionsItem[]>>,
type: Function as PropType<(arg?: any) => Promise<OptionsItem[]>>,
default: null,
},
// api params
@@ -71,7 +71,7 @@
const getOptions = computed(() => {
const { labelField, valueField, numberToString } = props;
return unref(options).reduce((prev, next: Recordable) => {
return unref(options).reduce((prev, next: any) => {
if (next) {
const value = get(next, valueField);
prev.push({

View File

@@ -15,7 +15,7 @@
import { Radio } from 'ant-design-vue';
import { isString } from '/@/utils/is';
import { useRuleFormItem } from '/@/hooks/component/useFormItem';
import { useAttrs } from '/@/hooks/core/useAttrs';
import { useAttrs } from '@vben/hooks';
type OptionsItem = { label: string; value: string | number | boolean; disabled?: boolean };
type RadioItem = string | OptionsItem;

View File

@@ -2,13 +2,13 @@ import { Modal } from 'ant-design-vue';
import { defineComponent, toRefs, unref } from 'vue';
import { basicProps } from '../props';
import { useModalDragMove } from '../hooks/useModalDrag';
import { useAttrs } from '/@/hooks/core/useAttrs';
import { useAttrs } from '@vben/hooks';
import { extendSlots } from '/@/utils/helper/tsxHelper';
export default defineComponent({
name: 'Modal',
inheritAttrs: false,
props: basicProps,
props: basicProps as any,
emits: ['cancel'],
setup(props, { slots, emit }) {
const { visible, draggable, destroyOnClose } = toRefs(props);

View File

@@ -1,19 +1,22 @@
import 'uno.css';
import '/@/design/index.less';
import '/@/components/VxeTable/src/css/index.scss';
import '@/design/index.less';
import '@/components/VxeTable/src/css/index.scss';
import 'ant-design-vue/dist/antd.css';
// Register icon sprite
import 'virtual:svg-icons-register';
import App from './App.vue';
import { createApp } from 'vue';
import { initAppConfigStore } from '/@/logics/initAppConfig';
import { setupErrorHandle } from '/@/logics/error-handle';
import { router, setupRouter } from '/@/router';
import { setupRouterGuard } from '/@/router/guard';
import { setupStore } from '/@/store';
import { setupGlobDirectives } from '/@/directives';
import { setupI18n } from '/@/locales/setupI18n';
import { registerGlobComp } from '/@/components/registerGlobComp';
import { registerGlobComp } from '@/components/registerGlobComp';
import { setupGlobDirectives } from '@/directives';
import { setupI18n } from '@/locales/setupI18n';
import { setupErrorHandle } from '@/logics/error-handle';
import { initAppConfigStore } from '@/logics/initAppConfig';
import { router, setupRouter } from '@/router';
import { setupRouterGuard } from '@/router/guard';
import { setupStore } from '@/store';
import App from './App.vue';
async function bootstrap() {
const app = createApp(App);

View File

@@ -1,9 +1,9 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "@vben/ts-config/vue.json",
"extends": "@vben/ts-config/vue-app.json",
"compilerOptions": {
"baseUrl": "./",
"types": ["vite/client"],
"baseUrl": ".",
"types": ["vite/client", "unplugin-vue-define-options/macros-global"],
"paths": {
"/@/*": ["src/*"],
"/#/*": ["types/*"],