From 9a1ba74920045a7d65f4dd802d244510aff5b3a9 Mon Sep 17 00:00:00 2001 From: Vben Date: Wed, 3 Mar 2021 22:52:25 +0800 Subject: [PATCH] wip: system management sample page --- CHANGELOG.zh_CN.md | 1 + mock/demo/system.ts | 73 +++++++ package.json | 4 +- src/api/demo/model/systemModel.ts | 32 +++ src/api/demo/system.ts | 13 +- src/components/Form/src/componentMap.ts | 2 + src/components/Form/src/types/index.ts | 1 + src/components/Icon/src/IconPicker.vue | 3 +- src/components/Page/index.ts | 4 +- src/components/Qrcode/index.ts | 3 +- src/components/StrengthMeter/index.ts | 4 +- .../Table/src/components/ExpandIcon.tsx | 2 +- .../src/components/settings/ColumnSetting.vue | 2 +- src/components/Table/src/props.ts | 2 + src/design/ant/input.less | 8 + src/locales/lang/en/routes/demo/system.ts | 3 + src/locales/lang/zh_CN/routes/demo/system.ts | 3 + src/locales/useLocale.ts | 7 +- src/router/menus/modules/demo/system.ts | 15 +- src/router/routes/modules/demo/system.ts | 19 ++ src/views/demo/system/dept/DeptModal.vue | 3 - src/views/demo/system/dept/dept.data.ts | 15 +- src/views/demo/system/dept/index.vue | 2 +- src/views/demo/system/menu/MenuDrawer.vue | 70 ++++++ src/views/demo/system/menu/index.vue | 100 +++++++++ src/views/demo/system/menu/menu.data.ts | 202 ++++++++++++++++++ src/views/demo/system/role/RoleDrawer.vue | 69 ++++++ src/views/demo/system/role/index.vue | 97 +++++++++ src/views/demo/system/role/role.data.ts | 102 +++++++++ vite.config.ts | 3 +- yarn.lock | 40 ++-- 31 files changed, 852 insertions(+), 52 deletions(-) create mode 100644 src/views/demo/system/menu/MenuDrawer.vue create mode 100644 src/views/demo/system/menu/index.vue create mode 100644 src/views/demo/system/menu/menu.data.ts create mode 100644 src/views/demo/system/role/RoleDrawer.vue create mode 100644 src/views/demo/system/role/index.vue create mode 100644 src/views/demo/system/role/role.data.ts diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index cb9c924d..0cb4941d 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -28,6 +28,7 @@ - 修复表格不能正确的获取选中行 - 修复全屏状态下 modal 高度计算错误 - 修复部分表格样式问题 +- 修复树形表格 `indentSize`设置失效 ## 2.0.1 (2021-02-21) diff --git a/mock/demo/system.ts b/mock/demo/system.ts index 8ca35d54..7a930e7e 100644 --- a/mock/demo/system.ts +++ b/mock/demo/system.ts @@ -18,6 +18,22 @@ const accountList = (() => { return result; })(); +const roleList = (() => { + const result: any[] = []; + for (let index = 0; index < 4; index++) { + result.push({ + id: `${index}`, + orderNo: `${index + 1}`, + roleName: ['超级管理员', '管理员', '文章管理员', '普通用户'][index], + roleValue: '@first', + createTime: '@datetime', + remark: '@cword(10,20)', + 'status|1': ['0', '1'], + }); + } + return result; +})(); + const deptList = (() => { const result: any[] = []; for (let index = 0; index < 3; index++) { @@ -49,6 +65,46 @@ const deptList = (() => { return result; })(); +const menuList = (() => { + const result: any[] = []; + for (let index = 0; index < 3; index++) { + result.push({ + id: `${index}`, + icon: ['ion:layers-outline', 'ion:git-compare-outline', 'ion:tv-outline'][index], + component: 'LAYOUT', + menuName: ['Dashboard', '权限管理', '功能'][index], + permission: '', + orderNo: index + 1, + createTime: '@datetime', + 'status|1': ['0', '0', '1'], + children: (() => { + const children: any[] = []; + for (let j = 0; j < 4; j++) { + children.push({ + id: `${index}-${j}`, + menuName: ['菜单1', '菜单2', '菜单3', '菜单4'][j], + icon: 'ion:document', + permission: ['menu1:view', 'menu2:add', 'menu3:update', 'menu4:del'][index], + component: [ + '/dashboard/welcome/index', + '/dashboard/analysis/index', + '/dashboard/workbench/index', + '/dashboard/test/index', + ][j], + orderNo: j + 1, + createTime: '@datetime', + 'status|1': ['0', '1'], + parentMenu: `${index}`, + children: undefined, + }); + } + return children; + })(), + }); + } + return result; +})(); + export default [ { url: '/api/system/getAccountList', @@ -59,6 +115,15 @@ export default [ return resultPageSuccess(page, pageSize, accountList); }, }, + { + url: '/api/system/getRoleList', + timeout: 100, + method: 'get', + response: ({ query }) => { + const { page = 1, pageSize = 20 } = query; + return resultPageSuccess(page, pageSize, roleList); + }, + }, { url: '/api/system/getDeptList', timeout: 100, @@ -67,4 +132,12 @@ export default [ return resultSuccess(deptList); }, }, + { + url: '/api/system/getMenuList', + timeout: 100, + method: 'get', + response: () => { + return resultSuccess(menuList); + }, + }, ] as MockMethod[]; diff --git a/package.json b/package.json index fba0994e..eea2a248 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "devDependencies": { "@commitlint/cli": "^12.0.1", "@commitlint/config-conventional": "^12.0.1", - "@iconify/json": "^1.1.310", + "@iconify/json": "^1.1.311", "@ls-lint/ls-lint": "^1.9.2", "@purge-icons/generated": "^0.7.0", "@types/crypto-js": "^4.0.1", @@ -110,7 +110,7 @@ "vite-plugin-pwa": "^0.5.6", "vite-plugin-style-import": "^0.7.6", "vite-plugin-theme": "^0.4.8", - "vite-plugin-windicss": "0.6.2", + "vite-plugin-windicss": "0.6.4", "vue-eslint-parser": "^7.6.0", "yargs": "^16.2.0" }, diff --git a/src/api/demo/model/systemModel.ts b/src/api/demo/model/systemModel.ts index ba3a2de8..4cd5c1ca 100644 --- a/src/api/demo/model/systemModel.ts +++ b/src/api/demo/model/systemModel.ts @@ -4,12 +4,21 @@ export type AccountParams = BasicPageParams & { account?: string; nickname?: string; }; +export type RoleParams = BasicPageParams & { + roleName?: string; + status?: string; +}; export type DeptParams = { deptName?: string; status?: string; }; +export type MenuParams = { + menuName?: string; + status?: string; +}; + export interface AccountListItem { id: string; account: string; @@ -29,9 +38,32 @@ export interface DeptListItem { status: number; } +export interface MenuListItem { + id: string; + orderNo: string; + createTime: string; + status: number; + icon: string; + component: string; + permission: string; +} + +export interface RoleListItem { + id: string; + roleName: string; + roleValue: string; + status: number; + orderNo: string; + createTime: string; +} + /** * @description: Request list return value */ export type AccountListGetResultModel = BasicFetchResult; export type DeptListGetResultModel = BasicFetchResult; + +export type MenuListGetResultModel = BasicFetchResult; + +export type RoleListGetResultModel = BasicFetchResult; diff --git a/src/api/demo/system.ts b/src/api/demo/system.ts index 36c288af..133ea7b1 100644 --- a/src/api/demo/system.ts +++ b/src/api/demo/system.ts @@ -1,15 +1,20 @@ import { AccountParams, DeptListItem, + MenuParams, + RoleParams, + MenuListGetResultModel, DeptListGetResultModel, AccountListGetResultModel, + RoleListGetResultModel, } from './model/systemModel'; import { defHttp } from '/@/utils/http/axios'; enum Api { - // The address does not exist AccountList = '/system/getAccountList', DeptList = '/system/getDeptList', + MenuList = '/system/getMenuList', + RoleList = '/system/getRoleList', } export const getAccountList = (params: AccountParams) => @@ -17,3 +22,9 @@ export const getAccountList = (params: AccountParams) => export const getDeptList = (params?: DeptListItem) => defHttp.get({ url: Api.DeptList, params }); + +export const getMenuList = (params?: MenuParams) => + defHttp.get({ url: Api.MenuList, params }); + +export const getRoleList = (params?: RoleParams) => + defHttp.get({ url: Api.RoleList, params }); diff --git a/src/components/Form/src/componentMap.ts b/src/components/Form/src/componentMap.ts index 7799ef11..bcbfb7b5 100644 --- a/src/components/Form/src/componentMap.ts +++ b/src/components/Form/src/componentMap.ts @@ -22,6 +22,7 @@ import RadioButtonGroup from './components/RadioButtonGroup.vue'; import ApiSelect from './components/ApiSelect.vue'; import { BasicUpload } from '/@/components/Upload'; import { StrengthMeter } from '/@/components/StrengthMeter'; +import { IconPicker } from '/@/components/Icon'; const componentMap = new Map(); @@ -53,6 +54,7 @@ componentMap.set('RangePicker', DatePicker.RangePicker); componentMap.set('WeekPicker', DatePicker.WeekPicker); componentMap.set('TimePicker', TimePicker); componentMap.set('StrengthMeter', StrengthMeter); +componentMap.set('IconPicker', IconPicker); componentMap.set('Upload', BasicUpload); diff --git a/src/components/Form/src/types/index.ts b/src/components/Form/src/types/index.ts index 07c31c9f..b150a880 100644 --- a/src/components/Form/src/types/index.ts +++ b/src/components/Form/src/types/index.ts @@ -107,4 +107,5 @@ export type ComponentType = | 'Switch' | 'StrengthMeter' | 'Upload' + | 'IconPicker' | 'Render'; diff --git a/src/components/Icon/src/IconPicker.vue b/src/components/Icon/src/IconPicker.vue index 1c42226b..181a3fc8 100644 --- a/src/components/Icon/src/IconPicker.vue +++ b/src/components/Icon/src/IconPicker.vue @@ -3,8 +3,8 @@ disabled :style="{ width }" :placeholder="t('component.icon.placeholder')" - v-model:value="currentSelect" :class="prefixCls" + v-model:value="currentSelect" > + Promise>, diff --git a/src/design/ant/input.less b/src/design/ant/input.less index e70c5151..57f85e57 100644 --- a/src/design/ant/input.less +++ b/src/design/ant/input.less @@ -14,3 +14,11 @@ .ant-input-clear-icon { margin-right: 5px; } + +.ant-input-affix-wrapper-textarea-with-clear-btn { + padding: 0 !important; + + textarea.ant-input { + padding: 4px; + } +} diff --git a/src/locales/lang/en/routes/demo/system.ts b/src/locales/lang/en/routes/demo/system.ts index b1a8f777..fba0c78e 100644 --- a/src/locales/lang/en/routes/demo/system.ts +++ b/src/locales/lang/en/routes/demo/system.ts @@ -6,4 +6,7 @@ export default { password: 'Change password', dept: 'Department management', + + menu: 'Menu management', + role: 'Role management', }; diff --git a/src/locales/lang/zh_CN/routes/demo/system.ts b/src/locales/lang/zh_CN/routes/demo/system.ts index 29ab5df9..16deff58 100644 --- a/src/locales/lang/zh_CN/routes/demo/system.ts +++ b/src/locales/lang/zh_CN/routes/demo/system.ts @@ -6,4 +6,7 @@ export default { password: '修改密码', dept: '部门管理', + + menu: '菜单管理', + role: '角色管理', }; diff --git a/src/locales/useLocale.ts b/src/locales/useLocale.ts index 7c865c33..a6f5ca9b 100644 --- a/src/locales/useLocale.ts +++ b/src/locales/useLocale.ts @@ -3,13 +3,11 @@ */ import type { LocaleType } from '/#/config'; -import { ref } from 'vue'; import moment from 'moment'; -import { computed } from 'vue'; import { i18n } from './setupI18n'; import { localeStore } from '/@/store/modules/locale'; -import { unref } from 'vue'; +import { unref, computed } from 'vue'; interface LangModule { message: Recordable; @@ -17,8 +15,6 @@ interface LangModule { momentLocaleName: string; } -const antConfigLocale = ref>(null); - const loadLocalePool: LocaleType[] = []; function setI18nLanguage(locale: LocaleType) { @@ -67,7 +63,6 @@ export function useLocale() { getLocale, getShowLocalePicker, changeLocale, - antConfigLocale, getAntdLocale, }; } diff --git a/src/router/menus/modules/demo/system.ts b/src/router/menus/modules/demo/system.ts index a847785f..74237923 100644 --- a/src/router/menus/modules/demo/system.ts +++ b/src/router/menus/modules/demo/system.ts @@ -18,7 +18,20 @@ const menu: MenuModule = { type: 'warn', }, }, - + { + path: 'role', + name: t('routes.demo.system.role'), + tag: { + content: 'new', + }, + }, + { + path: 'menu', + name: t('routes.demo.system.menu'), + tag: { + content: 'new', + }, + }, { path: 'dept', name: t('routes.demo.system.dept'), diff --git a/src/router/routes/modules/demo/system.ts b/src/router/routes/modules/demo/system.ts index 6a412e4b..96cc8ba9 100644 --- a/src/router/routes/modules/demo/system.ts +++ b/src/router/routes/modules/demo/system.ts @@ -22,6 +22,25 @@ const system: AppRouteModule = { }, component: () => import('/@/views/demo/system/account/index.vue'), }, + { + path: 'role', + name: 'RoleManagement', + meta: { + title: t('routes.demo.system.role'), + ignoreKeepAlive: true, + }, + component: () => import('/@/views/demo/system/role/index.vue'), + }, + + { + path: 'menu', + name: 'MenuManagement', + meta: { + title: t('routes.demo.system.menu'), + ignoreKeepAlive: true, + }, + component: () => import('/@/views/demo/system/menu/index.vue'), + }, { path: 'dept', name: 'DeptManagement', diff --git a/src/views/demo/system/dept/DeptModal.vue b/src/views/demo/system/dept/DeptModal.vue index 26b12219..005148de 100644 --- a/src/views/demo/system/dept/DeptModal.vue +++ b/src/views/demo/system/dept/DeptModal.vue @@ -21,9 +21,6 @@ labelWidth: 100, schemas: formSchema, showActionButtonGroup: false, - actionColOptions: { - span: 23, - }, }); const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => { diff --git a/src/views/demo/system/dept/dept.data.ts b/src/views/demo/system/dept/dept.data.ts index d5abf3eb..6bdd1cae 100644 --- a/src/views/demo/system/dept/dept.data.ts +++ b/src/views/demo/system/dept/dept.data.ts @@ -7,22 +7,23 @@ export const columns: BasicColumn[] = [ { title: '部门名称', dataIndex: 'deptName', - width: 300, + width: 160, + align: 'left', }, { title: '排序', dataIndex: 'orderNo', - width: 80, + width: 50, }, { title: '状态', dataIndex: 'status', - width: 120, + width: 80, customRender: ({ record }) => { const status = record.status; const enable = ~~status === 0; const color = enable ? 'green' : 'red'; - const text = enable ? '正常' : '停用'; + const text = enable ? '启用' : '停用'; return h(Tag, { color: color }, () => text); }, }, @@ -69,6 +70,7 @@ export const formSchema: FormSchema[] = [ field: 'parentDept', label: '上级部门', component: 'TreeSelect', + componentProps: { replaceFields: { title: 'deptName', @@ -89,10 +91,11 @@ export const formSchema: FormSchema[] = [ field: 'status', label: '状态', component: 'RadioButtonGroup', + defaultValue: '0', componentProps: { options: [ - { label: '正常', value: '0' }, - { label: '禁用', value: '1' }, + { label: '启用', value: '0' }, + { label: '停用', value: '1' }, ], }, required: true, diff --git a/src/views/demo/system/dept/index.vue b/src/views/demo/system/dept/index.vue index 19cb8a2f..9b7d1ca2 100644 --- a/src/views/demo/system/dept/index.vue +++ b/src/views/demo/system/dept/index.vue @@ -56,7 +56,7 @@ showTableSetting: true, bordered: true, showIndexColumn: false, - indentSize: 20, + canResize: false, actionColumn: { width: 80, title: '操作', diff --git a/src/views/demo/system/menu/MenuDrawer.vue b/src/views/demo/system/menu/MenuDrawer.vue new file mode 100644 index 00000000..04025102 --- /dev/null +++ b/src/views/demo/system/menu/MenuDrawer.vue @@ -0,0 +1,70 @@ + + diff --git a/src/views/demo/system/menu/index.vue b/src/views/demo/system/menu/index.vue new file mode 100644 index 00000000..9f5d9d2d --- /dev/null +++ b/src/views/demo/system/menu/index.vue @@ -0,0 +1,100 @@ + + diff --git a/src/views/demo/system/menu/menu.data.ts b/src/views/demo/system/menu/menu.data.ts new file mode 100644 index 00000000..d424bc03 --- /dev/null +++ b/src/views/demo/system/menu/menu.data.ts @@ -0,0 +1,202 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; +import { h } from 'vue'; +import { Tag } from 'ant-design-vue'; +import { Icon } from '/@/components/Icon'; + +export const columns: BasicColumn[] = [ + { + title: '菜单名称', + dataIndex: 'menuName', + width: 200, + align: 'left', + }, + { + title: '图标', + dataIndex: 'icon', + width: 50, + customRender: ({ record }) => { + return h(Icon, { icon: record.icon }); + }, + }, + { + title: '权限标识', + dataIndex: 'permission', + width: 180, + }, + { + title: '组件', + dataIndex: 'component', + }, + { + title: '排序', + dataIndex: 'orderNo', + width: 50, + }, + { + title: '状态', + dataIndex: 'status', + width: 80, + customRender: ({ record }) => { + const status = record.status; + const enable = ~~status === 0; + const color = enable ? 'green' : 'red'; + const text = enable ? '启用' : '停用'; + return h(Tag, { color: color }, () => text); + }, + }, + { + title: '创建时间', + dataIndex: 'createTime', + width: 180, + }, +]; + +const isDir = (type: string) => type === '0'; +const isMenu = (type: string) => type === '1'; +const isButton = (type: string) => type === '2'; + +export const searchFormSchema: FormSchema[] = [ + { + field: 'menuName', + label: '菜单名称', + component: 'Input', + colProps: { span: 8 }, + }, + { + field: 'status', + label: '状态', + component: 'Select', + componentProps: { + options: [ + { label: '启用', value: '0' }, + { label: '停用', value: '1' }, + ], + }, + colProps: { span: 8 }, + }, +]; + +export const formSchema: FormSchema[] = [ + { + field: 'type', + label: '菜单类型', + component: 'RadioButtonGroup', + defaultValue: '0', + componentProps: { + options: [ + { label: '目录', value: '0' }, + { label: '菜单', value: '1' }, + { label: '按钮', value: '2' }, + ], + }, + colProps: { lg: 24, md: 24 }, + }, + { + field: 'menuName', + label: '菜单名称', + component: 'Input', + required: true, + }, + + { + field: 'parentMenu', + label: '上级菜单', + component: 'TreeSelect', + componentProps: { + replaceFields: { + title: 'menuName', + key: 'id', + value: 'id', + }, + getPopupContainer: () => document.body, + }, + }, + + { + field: 'orderNo', + label: '排序', + component: 'InputNumber', + required: true, + }, + { + field: 'icon', + label: '图标', + component: 'IconPicker', + required: true, + show: ({ values }) => !isButton(values.type), + }, + + { + field: 'routePath', + label: '路由地址', + component: 'Input', + required: true, + show: ({ values }) => !isButton(values.type), + }, + { + field: 'component', + label: '组件路径', + component: 'Input', + show: ({ values }) => isMenu(values.type), + }, + { + field: 'permission', + label: '权限标识', + component: 'Input', + show: ({ values }) => !isDir(values.type), + }, + { + field: 'status', + label: '状态', + component: 'RadioButtonGroup', + defaultValue: '0', + componentProps: { + options: [ + { label: '启用', value: '0' }, + { label: '禁用', value: '1' }, + ], + }, + }, + { + field: 'isExt', + label: '是否外链', + component: 'RadioButtonGroup', + defaultValue: '0', + componentProps: { + options: [ + { label: '否', value: '0' }, + { label: '是', value: '1' }, + ], + }, + show: ({ values }) => !isButton(values.type), + }, + + { + field: 'keepalive', + label: '是否缓存', + component: 'RadioButtonGroup', + defaultValue: '0', + componentProps: { + options: [ + { label: '否', value: '0' }, + { label: '是', value: '1' }, + ], + }, + show: ({ values }) => isMenu(values.type), + }, + + { + field: 'show', + label: '是否显示', + component: 'RadioButtonGroup', + defaultValue: '0', + componentProps: { + options: [ + { label: '是', value: '0' }, + { label: '否', value: '1' }, + ], + }, + show: ({ values }) => !isButton(values.type), + }, +]; diff --git a/src/views/demo/system/role/RoleDrawer.vue b/src/views/demo/system/role/RoleDrawer.vue new file mode 100644 index 00000000..1aaf828d --- /dev/null +++ b/src/views/demo/system/role/RoleDrawer.vue @@ -0,0 +1,69 @@ + + diff --git a/src/views/demo/system/role/index.vue b/src/views/demo/system/role/index.vue new file mode 100644 index 00000000..4d8b601a --- /dev/null +++ b/src/views/demo/system/role/index.vue @@ -0,0 +1,97 @@ + + diff --git a/src/views/demo/system/role/role.data.ts b/src/views/demo/system/role/role.data.ts new file mode 100644 index 00000000..f31a4dff --- /dev/null +++ b/src/views/demo/system/role/role.data.ts @@ -0,0 +1,102 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; +import { h } from 'vue'; +import { Tag } from 'ant-design-vue'; + +export const columns: BasicColumn[] = [ + { + title: '角色名称', + dataIndex: 'roleName', + width: 200, + }, + { + title: '角色值', + dataIndex: 'roleValue', + width: 180, + }, + { + title: '排序', + dataIndex: 'orderNo', + width: 50, + }, + { + title: '状态', + dataIndex: 'status', + width: 80, + customRender: ({ record }) => { + const status = record.status; + const enable = ~~status === 0; + const color = enable ? 'green' : 'red'; + const text = enable ? '启用' : '停用'; + return h(Tag, { color: color }, () => text); + }, + }, + { + title: '创建时间', + dataIndex: 'createTime', + width: 180, + }, + { + title: '备注', + dataIndex: 'remark', + }, +]; + +export const searchFormSchema: FormSchema[] = [ + { + field: 'roleNme', + label: '角色名称', + component: 'Input', + colProps: { span: 8 }, + }, + { + field: 'status', + label: '状态', + component: 'Select', + componentProps: { + options: [ + { label: '启用', value: '0' }, + { label: '停用', value: '1' }, + ], + }, + colProps: { span: 8 }, + }, +]; + +export const formSchema: FormSchema[] = [ + { + field: 'roleName', + label: '角色名称', + required: true, + component: 'Input', + }, + { + field: 'roleValue', + label: '角色值', + required: true, + component: 'Input', + }, + { + field: 'status', + label: '状态', + component: 'RadioButtonGroup', + defaultValue: '0', + componentProps: { + options: [ + { label: '启用', value: '0' }, + { label: '停用', value: '1' }, + ], + }, + }, + { + label: '备注', + field: 'remark', + component: 'InputTextArea', + }, + { + label: '菜单分配', + field: 'menu', + slot: 'menu', + component: 'Render', + }, +]; diff --git a/vite.config.ts b/vite.config.ts index e020a3f6..c05e9dbf 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -36,7 +36,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { replacement: pathResolve('src') + '/', }, { - // /@/xxxx => src/xxx + // /#/xxxx => types/xxx find: /^\/#\//, replacement: pathResolve('types') + '/', }, @@ -52,6 +52,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { }, build: { + cssCodeSplit: false, // minify: 'esbuild', outDir: OUTPUT_DIR, polyfillDynamicImport: VITE_LEGACY, diff --git a/yarn.lock b/yarn.lock index 95c98243..ab3cfc00 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1117,10 +1117,10 @@ dependencies: cross-fetch "^3.0.6" -"@iconify/json@^1.1.310": - version "1.1.310" - resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.310.tgz#4180cfdafbf4e218b8f78abae3434089bcb6ccf6" - integrity sha512-gLCuqulJPC2ly3upqPILOA1nV2fYfb99Dx64hLvneUb0r22opL+TfMfl352AjSZTFMGKV6ve8pNSAOS5gvY3vg== +"@iconify/json@^1.1.311": + version "1.1.311" + resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.311.tgz#cafa09c427fdacce8198e787f87c194eaa7e3e38" + integrity sha512-ghm5JynA3aft0goTlEt6w2aYZCTaOO4IE59Cf99ip81NDs0qw4OJ/JSoR09jIrcVDSVZJdp3jf0Tni1iRV1j+w== "@intlify/core-base@9.0.0": version "9.0.0" @@ -1780,16 +1780,16 @@ dependencies: vue-demi latest -"@windicss/plugin-utils@0.6.2": - version "0.6.2" - resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-0.6.2.tgz#8fc76d9f2a1e3de123ffd54fdd9d1583801bb087" - integrity sha512-qR2h/vDn3LZtL0cC3id9nxPwhYqCtkcwASs63sHTUOzLhxz+zkG4xR+odndbR6PTjrlTgBC7n5hLjpq0lxRksg== +"@windicss/plugin-utils@0.6.4": + version "0.6.4" + resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-0.6.4.tgz#854f411b156fea61b2e6724799e91f0f9407a637" + integrity sha512-5RZQ71snmoKmZEXHyCByOohUM/SsWIX856+geMwOfbMOGL0guv/1TVg2PalFrZh3k/HfqQnO2ft5YSWKtrW32A== dependencies: - esbuild "^0.8.52" + esbuild "^0.8.54" esbuild-register "^2.0.0" fast-glob "^3.2.5" micromatch "^4.0.2" - windicss "^2.2.0" + windicss "^2.2.3" "@zxcvbn-ts/core@^0.2.0": version "0.2.0" @@ -8957,13 +8957,13 @@ vite-plugin-theme@^0.4.8: es-module-lexer "^0.3.26" tinycolor2 "^1.4.2" -vite-plugin-windicss@0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-0.6.2.tgz#2b406c65768ce7df22451dc7b47c0026abd4bb24" - integrity sha512-V4WnjkxvriJSVQjswY+SrDKogOLNq1eG6dQw1wWcJRV+0QUz9pAGrMolSwed4d4MwSSbJrCA7If8xa+EFLUigw== +vite-plugin-windicss@0.6.4: + version "0.6.4" + resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-0.6.4.tgz#2d2bc7831dddff129d597959efaff616c6408a01" + integrity sha512-4BuUglBXeNIrIDfSKyg7rvqKEmxvyja2aKJxgHdOCICV8jIz2MvrZaRS9a74gUihz+OohBYqLnkOlfD+sCIQBg== dependencies: - "@windicss/plugin-utils" "0.6.2" - windicss "^2.2.0" + "@windicss/plugin-utils" "0.6.4" + windicss "^2.2.3" vite@^2.0.5: version "2.0.5" @@ -9090,10 +9090,10 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -windicss@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/windicss/-/windicss-2.2.0.tgz#42fe83b9bff6d4fc9caf85272fb6c6ddb990fbc1" - integrity sha512-UuPhwe/NMgGOmUMnaTR+64eMeoiRCYb/zKJfo4pm9XUb4BRFlaFMm1x0KF1RF8EtK/8jKvDlXMc/J6UPBj8/OA== +windicss@^2.2.3: + version "2.2.3" + resolved "https://registry.npmjs.org/windicss/-/windicss-2.2.3.tgz#5d25cab4b397d64f74660cac9b947b29cda240e9" + integrity sha512-rDaHpCgF3nq6tt21KC3691vhNZcbDHo0DJN+fgY5OmNCqd8muvZ9N4Zp9eqjWaJetg+ulz++MBM/pG9D70sj2w== wmf@~1.0.1: version "1.0.2" -- GitLab