Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev-v5
commit
4753f52101
|
@ -62,7 +62,7 @@ body:
|
||||||
description: Before submitting the issue, please make sure you do the following
|
description: Before submitting the issue, please make sure you do the following
|
||||||
# description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com).
|
# description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com).
|
||||||
options:
|
options:
|
||||||
- label: Read the [docs](https://anncwb.github.io/vue-vben-admin-doc/)
|
- label: Read the [docs](https://doc.vben.pro/)
|
||||||
required: true
|
required: true
|
||||||
- label: Ensure the code is up to date. (Some issues have been fixed in the latest version)
|
- label: Ensure the code is up to date. (Some issues have been fixed in the latest version)
|
||||||
required: true
|
required: true
|
||||||
|
|
|
@ -62,7 +62,7 @@ body:
|
||||||
label: Validations
|
label: Validations
|
||||||
description: Before submitting the issue, please make sure you do the following
|
description: Before submitting the issue, please make sure you do the following
|
||||||
options:
|
options:
|
||||||
- label: Read the [docs](https://anncwb.github.io/vue-vben-admin-doc/)
|
- label: Read the [docs](https://doc.vben.pro/)
|
||||||
required: true
|
required: true
|
||||||
- label: Ensure the code is up to date. (Some issues have been fixed in the latest version)
|
- label: Ensure the code is up to date. (Some issues have been fixed in the latest version)
|
||||||
required: true
|
required: true
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
import { ref } from 'vue';
|
||||||
|
|
||||||
import { Page } from '@vben/common-ui';
|
import { Page } from '@vben/common-ui';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
@ -6,6 +8,7 @@ import {
|
||||||
ElCard,
|
ElCard,
|
||||||
ElMessage,
|
ElMessage,
|
||||||
ElNotification,
|
ElNotification,
|
||||||
|
ElSegmented,
|
||||||
ElSpace,
|
ElSpace,
|
||||||
ElTable,
|
ElTable,
|
||||||
} from 'element-plus';
|
} from 'element-plus';
|
||||||
|
@ -47,6 +50,10 @@ const tableData = [
|
||||||
{ prop1: '5', prop2: 'E' },
|
{ prop1: '5', prop2: 'E' },
|
||||||
{ prop1: '6', prop2: 'F' },
|
{ prop1: '6', prop2: 'F' },
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const segmentedValue = ref('Mon');
|
||||||
|
|
||||||
|
const segmentedOptions = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -84,6 +91,14 @@ const tableData = [
|
||||||
<ElButton type="success" @click="notify('success')"> 成功 </ElButton>
|
<ElButton type="success" @click="notify('success')"> 成功 </ElButton>
|
||||||
</ElSpace>
|
</ElSpace>
|
||||||
</ElCard>
|
</ElCard>
|
||||||
|
<ElCard class="mb-5">
|
||||||
|
<template #header> Segmented </template>
|
||||||
|
<ElSegmented
|
||||||
|
v-model="segmentedValue"
|
||||||
|
:options="segmentedOptions"
|
||||||
|
size="large"
|
||||||
|
/>
|
||||||
|
</ElCard>
|
||||||
<ElCard class="mb-5">
|
<ElCard class="mb-5">
|
||||||
<ElTable :data="tableData" stripe>
|
<ElTable :data="tableData" stripe>
|
||||||
<ElTable.TableColumn label="测试列1" prop="prop1" />
|
<ElTable.TableColumn label="测试列1" prop="prop1" />
|
||||||
|
|
|
@ -419,7 +419,7 @@ export interface FormSchema<
|
||||||
help?: string;
|
help?: string;
|
||||||
/** 表单项 */
|
/** 表单项 */
|
||||||
label?: string;
|
label?: string;
|
||||||
// 自定义组件内部渲染
|
/** 自定义组件内部渲染 */
|
||||||
renderComponentContent?: RenderComponentContentType;
|
renderComponentContent?: RenderComponentContentType;
|
||||||
/** 字段规则 */
|
/** 字段规则 */
|
||||||
rules?: FormSchemaRuleType;
|
rules?: FormSchemaRuleType;
|
||||||
|
@ -500,3 +500,20 @@ import { z } from '#/adapter/form';
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Slots
|
||||||
|
|
||||||
|
可以使用以下插槽在表单中插入自定义的内容
|
||||||
|
|
||||||
|
| 插槽名 | 描述 |
|
||||||
|
| ------------- | ------------------ |
|
||||||
|
| reset-before | 重置按钮之前的位置 |
|
||||||
|
| submit-before | 提交按钮之前的位置 |
|
||||||
|
| expand-before | 展开按钮之前的位置 |
|
||||||
|
| expand-after | 展开按钮之后的位置 |
|
||||||
|
|
||||||
|
::: tip 字段插槽
|
||||||
|
|
||||||
|
除了以上内置插槽之外,`schema`属性中每个字段的`fieldName`都可以作为插槽名称,这些字段插槽的优先级高于`component`定义的组件。也就是说,当提供了与`fieldName`同名的插槽时,这些插槽的内容将会作为这些字段的组件,此时`component`的值将会被忽略。
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
|
@ -99,7 +99,7 @@
|
||||||
"node": ">=20.10.0",
|
"node": ">=20.10.0",
|
||||||
"pnpm": ">=9.12.0"
|
"pnpm": ">=9.12.0"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@9.14.2",
|
"packageManager": "pnpm@9.14.4",
|
||||||
"pnpm": {
|
"pnpm": {
|
||||||
"peerDependencyRules": {
|
"peerDependencyRules": {
|
||||||
"allowedVersions": {
|
"allowedVersions": {
|
||||||
|
|
|
@ -58,6 +58,8 @@
|
||||||
|
|
||||||
/* Used for accents such as hover effects on <DropdownMenuItem>, <SelectItem>...etc */
|
/* Used for accents such as hover effects on <DropdownMenuItem>, <SelectItem>...etc */
|
||||||
--accent: 216 5% 19%;
|
--accent: 216 5% 19%;
|
||||||
|
--accent-dark: 240 0% 22%;
|
||||||
|
--accent-darker: 240 0% 26%;
|
||||||
--accent-lighter: 216 5% 12%;
|
--accent-lighter: 216 5% 12%;
|
||||||
--accent-hover: 216 5% 24%;
|
--accent-hover: 216 5% 24%;
|
||||||
--accent-foreground: 0 0% 98%;
|
--accent-foreground: 0 0% 98%;
|
||||||
|
|
|
@ -58,6 +58,8 @@
|
||||||
|
|
||||||
/* Used for accents such as hover effects on <DropdownMenuItem>, <SelectItem>...etc */
|
/* Used for accents such as hover effects on <DropdownMenuItem>, <SelectItem>...etc */
|
||||||
--accent: 240 5% 96%;
|
--accent: 240 5% 96%;
|
||||||
|
--accent-dark: 216 14% 93%;
|
||||||
|
--accent-darker: 216 11% 91%;
|
||||||
--accent-lighter: 240 0% 98%;
|
--accent-lighter: 240 0% 98%;
|
||||||
--accent-hover: 200deg 10% 90%;
|
--accent-hover: 200deg 10% 90%;
|
||||||
--accent-foreground: 240 6% 10%;
|
--accent-foreground: 240 6% 10%;
|
||||||
|
|
|
@ -86,12 +86,14 @@
|
||||||
"dayjs": "catalog:",
|
"dayjs": "catalog:",
|
||||||
"defu": "catalog:",
|
"defu": "catalog:",
|
||||||
"lodash.clonedeep": "catalog:",
|
"lodash.clonedeep": "catalog:",
|
||||||
|
"lodash.set": "catalog:",
|
||||||
"nprogress": "catalog:",
|
"nprogress": "catalog:",
|
||||||
"tailwind-merge": "catalog:",
|
"tailwind-merge": "catalog:",
|
||||||
"theme-colors": "catalog:"
|
"theme-colors": "catalog:"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/lodash.clonedeep": "catalog:",
|
"@types/lodash.clonedeep": "catalog:",
|
||||||
|
"@types/lodash.set": "catalog:",
|
||||||
"@types/nprogress": "catalog:"
|
"@types/nprogress": "catalog:"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,3 +15,4 @@ export * from './update-css-variables';
|
||||||
export * from './util';
|
export * from './util';
|
||||||
export * from './window';
|
export * from './window';
|
||||||
export { default as cloneDeep } from 'lodash.clonedeep';
|
export { default as cloneDeep } from 'lodash.clonedeep';
|
||||||
|
export { default as set } from 'lodash.set';
|
||||||
|
|
|
@ -185,7 +185,7 @@ export class FormApi {
|
||||||
const fieldSet = new Set(fields);
|
const fieldSet = new Set(fields);
|
||||||
const schema = this.state?.schema ?? [];
|
const schema = this.state?.schema ?? [];
|
||||||
|
|
||||||
const filterSchema = schema.filter((item) => fieldSet.has(item.fieldName));
|
const filterSchema = schema.filter((item) => !fieldSet.has(item.fieldName));
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
schema: filterSchema,
|
schema: filterSchema,
|
||||||
|
|
|
@ -3,7 +3,7 @@ import type { FormActions, VbenFormProps } from './types';
|
||||||
import { computed, type ComputedRef, unref, useSlots } from 'vue';
|
import { computed, type ComputedRef, unref, useSlots } from 'vue';
|
||||||
|
|
||||||
import { createContext } from '@vben-core/shadcn-ui';
|
import { createContext } from '@vben-core/shadcn-ui';
|
||||||
import { isString } from '@vben-core/shared/utils';
|
import { isString, set } from '@vben-core/shared/utils';
|
||||||
|
|
||||||
import { useForm } from 'vee-validate';
|
import { useForm } from 'vee-validate';
|
||||||
import { object, type ZodRawShape } from 'zod';
|
import { object, type ZodRawShape } from 'zod';
|
||||||
|
@ -41,9 +41,9 @@ export function useFormInitial(
|
||||||
const zodObject: ZodRawShape = {};
|
const zodObject: ZodRawShape = {};
|
||||||
(unref(props).schema || []).forEach((item) => {
|
(unref(props).schema || []).forEach((item) => {
|
||||||
if (Reflect.has(item, 'defaultValue')) {
|
if (Reflect.has(item, 'defaultValue')) {
|
||||||
initialValues[item.fieldName] = item.defaultValue;
|
set(initialValues, item.fieldName, item.defaultValue);
|
||||||
} else if (item.rules && !isString(item.rules)) {
|
} else if (item.rules && !isString(item.rules)) {
|
||||||
zodObject[item.fieldName] = item.rules;
|
set(zodObject, item.fieldName, item.defaultValue);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -191,7 +191,10 @@ watchEffect(() => {
|
||||||
function calcMenuWidthStyle(isHiddenDom: boolean): CSSProperties {
|
function calcMenuWidthStyle(isHiddenDom: boolean): CSSProperties {
|
||||||
const { extraWidth, fixedExtra, isSidebarMixed, show, width } = props;
|
const { extraWidth, fixedExtra, isSidebarMixed, show, width } = props;
|
||||||
|
|
||||||
let widthValue = `${width + (isSidebarMixed && fixedExtra && extraVisible.value ? extraWidth : 0)}px`;
|
let widthValue =
|
||||||
|
width === 0
|
||||||
|
? '0px'
|
||||||
|
: `${width + (isSidebarMixed && fixedExtra && extraVisible.value ? extraWidth : 0)}px`;
|
||||||
|
|
||||||
const { collapseWidth } = props;
|
const { collapseWidth } = props;
|
||||||
|
|
||||||
|
|
|
@ -192,7 +192,7 @@ const headerFixed = computed(() => {
|
||||||
});
|
});
|
||||||
|
|
||||||
const showSidebar = computed(() => {
|
const showSidebar = computed(() => {
|
||||||
return isSideMode.value && sidebarEnable.value;
|
return isSideMode.value && sidebarEnable.value && !props.sidebarHidden;
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -236,7 +236,7 @@ function handleFocusOutside(e: Event) {
|
||||||
ref="wrapperRef"
|
ref="wrapperRef"
|
||||||
:class="
|
:class="
|
||||||
cn('relative min-h-40 flex-1 overflow-y-auto p-3', contentClass, {
|
cn('relative min-h-40 flex-1 overflow-y-auto p-3', contentClass, {
|
||||||
'overflow-hidden': showLoading,
|
'pointer-events-none overflow-hidden': showLoading,
|
||||||
})
|
})
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
|
|
|
@ -260,6 +260,9 @@ export function useElementPlusDesignTokens() {
|
||||||
'--el-fill-color-light': getCssVariableValue('--accent'),
|
'--el-fill-color-light': getCssVariableValue('--accent'),
|
||||||
'--el-fill-color-lighter': getCssVariableValue('--accent-lighter'),
|
'--el-fill-color-lighter': getCssVariableValue('--accent-lighter'),
|
||||||
|
|
||||||
|
'--el-fill-color-dark': getCssVariableValue('--accent-dark'),
|
||||||
|
'--el-fill-color-darker': getCssVariableValue('--accent-darker'),
|
||||||
|
|
||||||
// 解决ElLoading背景色问题
|
// 解决ElLoading背景色问题
|
||||||
'--el-mask-color': isDark.value
|
'--el-mask-color': isDark.value
|
||||||
? 'rgba(0,0,0,.8)'
|
? 'rgba(0,0,0,.8)'
|
||||||
|
|
|
@ -43,7 +43,11 @@ function extendProxyOption(
|
||||||
const data = await configFn(
|
const data = await configFn(
|
||||||
params,
|
params,
|
||||||
{
|
{
|
||||||
...customValues,
|
/**
|
||||||
|
* 开启toolbarConfig.refresh功能
|
||||||
|
* 点击刷新按钮 这里的值为PointerEvent 会携带错误参数
|
||||||
|
*/
|
||||||
|
...(customValues instanceof PointerEvent ? {} : customValues),
|
||||||
...formValues,
|
...formValues,
|
||||||
},
|
},
|
||||||
...args,
|
...args,
|
||||||
|
|
|
@ -60,6 +60,17 @@ import IconPicker from './icon-picker.vue';
|
||||||
</div>
|
</div>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
|
<Card class="mb-5" title="Tailwind CSS">
|
||||||
|
<div class="flex items-center gap-5 text-3xl">
|
||||||
|
<span class="icon-[ant-design--alipay-circle-outlined]"></span>
|
||||||
|
<span class="icon-[ant-design--account-book-filled]"></span>
|
||||||
|
<span class="icon-[ant-design--container-outlined]"></span>
|
||||||
|
<span class="icon-[svg-spinners--wind-toy]"></span>
|
||||||
|
<span class="icon-[svg-spinners--blocks-wave]"></span>
|
||||||
|
<span class="icon-[line-md--compass-filled-loop]"></span>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
|
||||||
<Card class="mb-5" title="图标选择器(Iconify)">
|
<Card class="mb-5" title="图标选择器(Iconify)">
|
||||||
<div class="flex items-center gap-5">
|
<div class="flex items-center gap-5">
|
||||||
<IconPicker width="300px" />
|
<IconPicker width="300px" />
|
||||||
|
|
|
@ -291,6 +291,12 @@ const [CustomLayoutForm] = useVbenForm({
|
||||||
formItemClass: 'col-start-1',
|
formItemClass: 'col-start-1',
|
||||||
label: '字符串',
|
label: '字符串',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
component: 'Input',
|
||||||
|
defaultValue: 'field4.path',
|
||||||
|
fieldName: 'field4.path',
|
||||||
|
label: 'field4.path',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
// 一共三列
|
// 一共三列
|
||||||
wrapperClass: 'grid-cols-3',
|
wrapperClass: 'grid-cols-3',
|
||||||
|
|
1230
pnpm-lock.yaml
1230
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
|
@ -21,22 +21,22 @@ catalog:
|
||||||
'@commitlint/cli': ^19.6.0
|
'@commitlint/cli': ^19.6.0
|
||||||
'@commitlint/config-conventional': ^19.6.0
|
'@commitlint/config-conventional': ^19.6.0
|
||||||
'@ctrl/tinycolor': ^4.1.0
|
'@ctrl/tinycolor': ^4.1.0
|
||||||
'@eslint/js': ^9.15.0
|
'@eslint/js': ^9.16.0
|
||||||
'@faker-js/faker': ^9.2.0
|
'@faker-js/faker': ^9.2.0
|
||||||
'@iconify/json': ^2.2.276
|
'@iconify/json': ^2.2.278
|
||||||
'@iconify/tailwind': ^1.1.3
|
'@iconify/tailwind': ^1.1.3
|
||||||
'@iconify/vue': ^4.1.2
|
'@iconify/vue': ^4.1.2
|
||||||
'@intlify/core-base': ^10.0.4
|
'@intlify/core-base': ^10.0.5
|
||||||
'@intlify/unplugin-vue-i18n': ^6.0.0
|
'@intlify/unplugin-vue-i18n': ^6.0.0
|
||||||
'@jspm/generator': ^2.4.1
|
'@jspm/generator': ^2.4.1
|
||||||
'@manypkg/get-packages': ^2.2.2
|
'@manypkg/get-packages': ^2.2.2
|
||||||
'@nolebase/vitepress-plugin-git-changelog': ^2.10.0
|
'@nolebase/vitepress-plugin-git-changelog': ^2.11.1
|
||||||
'@playwright/test': ^1.49.0
|
'@playwright/test': ^1.49.0
|
||||||
'@pnpm/workspace.read-manifest': ^2.2.1
|
'@pnpm/workspace.read-manifest': ^1000.0.0
|
||||||
'@stylistic/stylelint-plugin': ^3.1.1
|
'@stylistic/stylelint-plugin': ^3.1.1
|
||||||
'@tailwindcss/nesting': 0.0.0-insiders.565cd3e
|
'@tailwindcss/nesting': 0.0.0-insiders.565cd3e
|
||||||
'@tailwindcss/typography': ^0.5.15
|
'@tailwindcss/typography': ^0.5.15
|
||||||
'@tanstack/vue-query': ^5.61.4
|
'@tanstack/vue-query': ^5.62.0
|
||||||
'@tanstack/vue-store': ^0.6.0
|
'@tanstack/vue-store': ^0.6.0
|
||||||
'@types/archiver': ^6.0.3
|
'@types/archiver': ^6.0.3
|
||||||
'@types/crypto-js': ^4.2.2
|
'@types/crypto-js': ^4.2.2
|
||||||
|
@ -44,7 +44,8 @@ catalog:
|
||||||
'@types/html-minifier-terser': ^7.0.2
|
'@types/html-minifier-terser': ^7.0.2
|
||||||
'@types/jsonwebtoken': ^9.0.7
|
'@types/jsonwebtoken': ^9.0.7
|
||||||
'@types/lodash.clonedeep': ^4.5.9
|
'@types/lodash.clonedeep': ^4.5.9
|
||||||
'@types/node': ^22.10.0
|
'@types/node': ^22.10.1
|
||||||
|
'@types/lodash.set': ^4.3.9
|
||||||
'@types/nprogress': ^0.2.3
|
'@types/nprogress': ^0.2.3
|
||||||
'@types/postcss-import': ^14.0.3
|
'@types/postcss-import': ^14.0.3
|
||||||
'@types/qrcode': ^1.5.5
|
'@types/qrcode': ^1.5.5
|
||||||
|
@ -59,8 +60,8 @@ catalog:
|
||||||
'@vue/reactivity': ^3.5.13
|
'@vue/reactivity': ^3.5.13
|
||||||
'@vue/shared': ^3.5.13
|
'@vue/shared': ^3.5.13
|
||||||
'@vue/test-utils': ^2.4.6
|
'@vue/test-utils': ^2.4.6
|
||||||
'@vueuse/core': ^11.3.0
|
'@vueuse/core': ^12.0.0
|
||||||
'@vueuse/integrations': ^11.3.0
|
'@vueuse/integrations': ^12.0.0
|
||||||
ant-design-vue: ^4.2.6
|
ant-design-vue: ^4.2.6
|
||||||
archiver: ^7.0.1
|
archiver: ^7.0.1
|
||||||
autoprefixer: ^10.4.20
|
autoprefixer: ^10.4.20
|
||||||
|
@ -85,8 +86,8 @@ catalog:
|
||||||
depcheck: ^1.4.7
|
depcheck: ^1.4.7
|
||||||
dotenv: ^16.4.5
|
dotenv: ^16.4.5
|
||||||
echarts: ^5.5.1
|
echarts: ^5.5.1
|
||||||
element-plus: ^2.8.8
|
element-plus: ^2.9.0
|
||||||
eslint: ^9.15.0
|
eslint: ^9.16.0
|
||||||
eslint-config-turbo: ^2.3.3
|
eslint-config-turbo: ^2.3.3
|
||||||
eslint-plugin-command: ^0.2.6
|
eslint-plugin-command: ^0.2.6
|
||||||
eslint-plugin-eslint-comments: ^3.2.0
|
eslint-plugin-eslint-comments: ^3.2.0
|
||||||
|
@ -101,7 +102,7 @@ catalog:
|
||||||
eslint-plugin-unicorn: ^56.0.1
|
eslint-plugin-unicorn: ^56.0.1
|
||||||
eslint-plugin-unused-imports: ^4.1.4
|
eslint-plugin-unused-imports: ^4.1.4
|
||||||
eslint-plugin-vitest: ^0.5.4
|
eslint-plugin-vitest: ^0.5.4
|
||||||
eslint-plugin-vue: ^9.31.0
|
eslint-plugin-vue: ^9.32.0
|
||||||
execa: ^9.5.1
|
execa: ^9.5.1
|
||||||
find-up: ^7.0.0
|
find-up: ^7.0.0
|
||||||
get-port: ^7.1.0
|
get-port: ^7.1.0
|
||||||
|
@ -116,7 +117,8 @@ catalog:
|
||||||
jsonwebtoken: ^9.0.2
|
jsonwebtoken: ^9.0.2
|
||||||
lint-staged: ^15.2.10
|
lint-staged: ^15.2.10
|
||||||
lodash.clonedeep: ^4.5.0
|
lodash.clonedeep: ^4.5.0
|
||||||
lucide-vue-next: ^0.461.0
|
lucide-vue-next: ^0.462.0
|
||||||
|
lodash.set: ^4.3.2
|
||||||
medium-zoom: ^1.1.0
|
medium-zoom: ^1.1.0
|
||||||
naive-ui: ^2.40.2
|
naive-ui: ^2.40.2
|
||||||
nitropack: ^2.10.4
|
nitropack: ^2.10.4
|
||||||
|
@ -140,11 +142,11 @@ catalog:
|
||||||
radix-vue: ^1.9.10
|
radix-vue: ^1.9.10
|
||||||
resolve.exports: ^2.0.2
|
resolve.exports: ^2.0.2
|
||||||
rimraf: ^6.0.1
|
rimraf: ^6.0.1
|
||||||
rollup: ^4.27.4
|
rollup: ^4.28.0
|
||||||
rollup-plugin-visualizer: ^5.12.0
|
rollup-plugin-visualizer: ^5.12.0
|
||||||
sass: 1.80.6
|
sass: 1.80.6
|
||||||
sortablejs: ^1.15.4
|
sortablejs: ^1.15.6
|
||||||
stylelint: ^16.10.0
|
stylelint: ^16.11.0
|
||||||
stylelint-config-recess-order: ^5.1.1
|
stylelint-config-recess-order: ^5.1.1
|
||||||
stylelint-config-recommended: ^14.0.1
|
stylelint-config-recommended: ^14.0.1
|
||||||
stylelint-config-recommended-scss: ^14.1.0
|
stylelint-config-recommended-scss: ^14.1.0
|
||||||
|
@ -167,19 +169,19 @@ catalog:
|
||||||
vite-plugin-dts: 4.2.1
|
vite-plugin-dts: 4.2.1
|
||||||
vite-plugin-html: ^3.2.2
|
vite-plugin-html: ^3.2.2
|
||||||
vite-plugin-lazy-import: ^1.0.7
|
vite-plugin-lazy-import: ^1.0.7
|
||||||
vite-plugin-pwa: ^0.21.0
|
vite-plugin-pwa: ^0.21.1
|
||||||
vite-plugin-vue-devtools: ^7.6.4
|
vite-plugin-vue-devtools: ^7.6.7
|
||||||
vitepress: ^1.5.0
|
vitepress: ^1.5.0
|
||||||
vitepress-plugin-group-icons: ^1.3.0
|
vitepress-plugin-group-icons: ^1.3.0
|
||||||
vitest: ^2.1.6
|
vitest: ^2.1.6
|
||||||
vue: ^3.5.13
|
vue: ^3.5.13
|
||||||
vue-dompurify-html: ^5.2.0
|
vue-dompurify-html: ^5.2.0
|
||||||
vue-eslint-parser: ^9.4.3
|
vue-eslint-parser: ^9.4.3
|
||||||
vue-i18n: ^10.0.4
|
vue-i18n: ^10.0.5
|
||||||
vue-router: ^4.5.0
|
vue-router: ^4.5.0
|
||||||
vue-tsc: ^2.1.10
|
vue-tsc: ^2.1.10
|
||||||
vxe-pc-ui: ^4.3.6
|
vxe-pc-ui: ^4.3.10
|
||||||
vxe-table: ^4.9.8
|
vxe-table: ^4.9.10
|
||||||
watermark-js-plus: ^1.5.7
|
watermark-js-plus: ^1.5.7
|
||||||
zod: ^3.23.8
|
zod: ^3.23.8
|
||||||
zod-defaults: ^0.1.3
|
zod-defaults: ^0.1.3
|
||||||
|
|
Loading…
Reference in New Issue