mirror of
https://github.com/vbenjs/gf-vben-admin.git
synced 2025-02-03 03:32:59 +08:00
feat: add dept management page
This commit is contained in:
parent
37669d067c
commit
3b8ca420c7
@ -1,7 +1,7 @@
|
|||||||
import { MockMethod } from 'vite-plugin-mock';
|
import { MockMethod } from 'vite-plugin-mock';
|
||||||
import { resultPageSuccess } from '../_util';
|
import { resultPageSuccess, resultSuccess } from '../_util';
|
||||||
|
|
||||||
const list = (() => {
|
const accountList = (() => {
|
||||||
const result: any[] = [];
|
const result: any[] = [];
|
||||||
for (let index = 0; index < 20; index++) {
|
for (let index = 0; index < 20; index++) {
|
||||||
result.push({
|
result.push({
|
||||||
@ -10,8 +10,40 @@ const list = (() => {
|
|||||||
email: '@email',
|
email: '@email',
|
||||||
nickname: '@cname()',
|
nickname: '@cname()',
|
||||||
role: '@first',
|
role: '@first',
|
||||||
updateTime: '@datetime',
|
createTime: '@datetime',
|
||||||
remark: '@cword(0,20)',
|
remark: '@cword(10,20)',
|
||||||
|
'status|1': ['0', '1'],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
})();
|
||||||
|
|
||||||
|
const deptList = (() => {
|
||||||
|
const result: any[] = [];
|
||||||
|
for (let index = 0; index < 3; index++) {
|
||||||
|
result.push({
|
||||||
|
id: `${index}`,
|
||||||
|
deptName: ['华东分部', '华南分部', '西北分部'][index],
|
||||||
|
orderNo: index + 1,
|
||||||
|
createTime: '@datetime',
|
||||||
|
remark: '@cword(10,20)',
|
||||||
|
'status|1': ['0', '0', '1'],
|
||||||
|
children: (() => {
|
||||||
|
const children: any[] = [];
|
||||||
|
for (let j = 0; j < 4; j++) {
|
||||||
|
children.push({
|
||||||
|
id: `${index}-${j}`,
|
||||||
|
deptName: ['研发部', '市场部', '商务部', '财务部'][j],
|
||||||
|
orderNo: j + 1,
|
||||||
|
createTime: '@datetime',
|
||||||
|
remark: '@cword(10,20)',
|
||||||
|
'status|1': ['0', '1'],
|
||||||
|
parentDept: `${index}`,
|
||||||
|
children: undefined,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return children;
|
||||||
|
})(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@ -24,7 +56,15 @@ export default [
|
|||||||
method: 'get',
|
method: 'get',
|
||||||
response: ({ query }) => {
|
response: ({ query }) => {
|
||||||
const { page = 1, pageSize = 20 } = query;
|
const { page = 1, pageSize = 20 } = query;
|
||||||
return resultPageSuccess(page, pageSize, list);
|
return resultPageSuccess(page, pageSize, accountList);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: '/api/system/getDeptList',
|
||||||
|
timeout: 100,
|
||||||
|
method: 'get',
|
||||||
|
response: () => {
|
||||||
|
return resultSuccess(deptList);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
] as MockMethod[];
|
] as MockMethod[];
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iconify/iconify": "^2.0.0-rc.6",
|
"@iconify/iconify": "^2.0.0-rc.6",
|
||||||
"@vueuse/core": "^4.3.0",
|
"@vueuse/core": "^4.3.1",
|
||||||
"@zxcvbn-ts/core": "^0.2.0",
|
"@zxcvbn-ts/core": "^0.2.0",
|
||||||
"ant-design-vue": "2.0.1",
|
"ant-design-vue": "2.0.1",
|
||||||
"apexcharts": "^3.25.0",
|
"apexcharts": "^3.25.0",
|
||||||
@ -80,10 +80,10 @@
|
|||||||
"eslint-config-prettier": "^8.1.0",
|
"eslint-config-prettier": "^8.1.0",
|
||||||
"eslint-plugin-prettier": "^3.3.1",
|
"eslint-plugin-prettier": "^3.3.1",
|
||||||
"eslint-plugin-vue": "^7.6.0",
|
"eslint-plugin-vue": "^7.6.0",
|
||||||
"esno": "^0.4.4",
|
"esno": "^0.4.5",
|
||||||
"fs-extra": "^9.1.0",
|
"fs-extra": "^9.1.0",
|
||||||
"http-server": "^0.12.3",
|
"http-server": "^0.12.3",
|
||||||
"husky": "^5.1.1",
|
"husky": "^5.1.2",
|
||||||
"is-ci": "^3.0.0",
|
"is-ci": "^3.0.0",
|
||||||
"less": "^4.1.1",
|
"less": "^4.1.1",
|
||||||
"lint-staged": "^10.5.4",
|
"lint-staged": "^10.5.4",
|
||||||
@ -103,7 +103,7 @@
|
|||||||
"vite-plugin-imagemin": "^0.2.8",
|
"vite-plugin-imagemin": "^0.2.8",
|
||||||
"vite-plugin-mock": "^2.1.5",
|
"vite-plugin-mock": "^2.1.5",
|
||||||
"vite-plugin-purge-icons": "^0.7.0",
|
"vite-plugin-purge-icons": "^0.7.0",
|
||||||
"vite-plugin-pwa": "^0.5.5",
|
"vite-plugin-pwa": "^0.5.6",
|
||||||
"vite-plugin-style-import": "^0.7.5",
|
"vite-plugin-style-import": "^0.7.5",
|
||||||
"vite-plugin-theme": "^0.4.8",
|
"vite-plugin-theme": "^0.4.8",
|
||||||
"vite-plugin-windicss": "0.6.2",
|
"vite-plugin-windicss": "0.6.2",
|
||||||
|
@ -1,21 +1,37 @@
|
|||||||
import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel';
|
import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel';
|
||||||
|
|
||||||
export type Params = BasicPageParams & {
|
export type AccountParams = BasicPageParams & {
|
||||||
account?: string;
|
account?: string;
|
||||||
nickname?: string;
|
nickname?: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface DemoListItem {
|
export type DeptParams = {
|
||||||
|
deptName?: string;
|
||||||
|
status?: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export interface AccountListItem {
|
||||||
id: string;
|
id: string;
|
||||||
account: string;
|
account: string;
|
||||||
email: string;
|
email: string;
|
||||||
nickname: string;
|
nickname: string;
|
||||||
role: number;
|
role: number;
|
||||||
updateTime: string;
|
createTime: string;
|
||||||
remark: string;
|
remark: string;
|
||||||
|
status: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DeptListItem {
|
||||||
|
id: string;
|
||||||
|
orderNo: string;
|
||||||
|
createTime: string;
|
||||||
|
remark: string;
|
||||||
|
status: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: Request list return value
|
* @description: Request list return value
|
||||||
*/
|
*/
|
||||||
export type DemoListGetResultModel = BasicFetchResult<DemoListItem>;
|
export type AccountListGetResultModel = BasicFetchResult<AccountListItem>;
|
||||||
|
|
||||||
|
export type DeptListGetResultModel = BasicFetchResult<DeptListItem>;
|
||||||
|
@ -1,10 +1,19 @@
|
|||||||
import { Params, DemoListGetResultModel } from './model/systemModel';
|
import {
|
||||||
|
AccountParams,
|
||||||
|
DeptListItem,
|
||||||
|
DeptListGetResultModel,
|
||||||
|
AccountListGetResultModel,
|
||||||
|
} from './model/systemModel';
|
||||||
import { defHttp } from '/@/utils/http/axios';
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
|
|
||||||
enum Api {
|
enum Api {
|
||||||
// The address does not exist
|
// The address does not exist
|
||||||
AccountList = '/system/getAccountList',
|
AccountList = '/system/getAccountList',
|
||||||
|
DeptList = '/system/getDeptList',
|
||||||
}
|
}
|
||||||
|
|
||||||
export const getAccountList = (params: Params) =>
|
export const getAccountList = (params: AccountParams) =>
|
||||||
defHttp.get<DemoListGetResultModel>({ url: Api.AccountList, params });
|
defHttp.get<AccountListGetResultModel>({ url: Api.AccountList, params });
|
||||||
|
|
||||||
|
export const getDeptList = (params?: DeptListItem) =>
|
||||||
|
defHttp.get<DeptListGetResultModel>({ url: Api.DeptList, params });
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<span :class="getClass">
|
<span :class="getClass">
|
||||||
<RightOutlined />
|
<Icon icon="ion:chevron-forward" :style="$attrs.iconStyle" />
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
@ -15,9 +15,11 @@
|
|||||||
|
|
||||||
import { propTypes } from '/@/utils/propTypes';
|
import { propTypes } from '/@/utils/propTypes';
|
||||||
|
|
||||||
|
import { Icon } from '/@/components/Icon';
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'BasicArrow',
|
name: 'BasicArrow',
|
||||||
components: { RightOutlined },
|
components: { RightOutlined, Icon },
|
||||||
props: {
|
props: {
|
||||||
// Expand contract, expand by default
|
// Expand contract, expand by default
|
||||||
expand: propTypes.bool,
|
expand: propTypes.bool,
|
||||||
|
@ -21,6 +21,7 @@ import {
|
|||||||
import RadioButtonGroup from './components/RadioButtonGroup.vue';
|
import RadioButtonGroup from './components/RadioButtonGroup.vue';
|
||||||
import ApiSelect from './components/ApiSelect.vue';
|
import ApiSelect from './components/ApiSelect.vue';
|
||||||
import { BasicUpload } from '/@/components/Upload';
|
import { BasicUpload } from '/@/components/Upload';
|
||||||
|
import { StrengthMeter } from '/@/components/StrengthMeter';
|
||||||
|
|
||||||
const componentMap = new Map<ComponentType, Component>();
|
const componentMap = new Map<ComponentType, Component>();
|
||||||
|
|
||||||
@ -51,6 +52,7 @@ componentMap.set('MonthPicker', DatePicker.MonthPicker);
|
|||||||
componentMap.set('RangePicker', DatePicker.RangePicker);
|
componentMap.set('RangePicker', DatePicker.RangePicker);
|
||||||
componentMap.set('WeekPicker', DatePicker.WeekPicker);
|
componentMap.set('WeekPicker', DatePicker.WeekPicker);
|
||||||
componentMap.set('TimePicker', TimePicker);
|
componentMap.set('TimePicker', TimePicker);
|
||||||
|
componentMap.set('StrengthMeter', StrengthMeter);
|
||||||
|
|
||||||
componentMap.set('Upload', BasicUpload);
|
componentMap.set('Upload', BasicUpload);
|
||||||
|
|
||||||
|
@ -91,7 +91,6 @@ export type ComponentType =
|
|||||||
| 'Select'
|
| 'Select'
|
||||||
| 'ApiSelect'
|
| 'ApiSelect'
|
||||||
| 'SelectOptGroup'
|
| 'SelectOptGroup'
|
||||||
| 'SelectOption'
|
|
||||||
| 'TreeSelect'
|
| 'TreeSelect'
|
||||||
| 'Transfer'
|
| 'Transfer'
|
||||||
| 'RadioButtonGroup'
|
| 'RadioButtonGroup'
|
||||||
|
@ -65,6 +65,7 @@
|
|||||||
import { useDesign } from '/@/hooks/web/useDesign';
|
import { useDesign } from '/@/hooks/web/useDesign';
|
||||||
|
|
||||||
import { basicProps } from './props';
|
import { basicProps } from './props';
|
||||||
|
import expandIcon from './components/ExpandIcon';
|
||||||
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
|
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
|
||||||
|
|
||||||
import './style/index.less';
|
import './style/index.less';
|
||||||
@ -193,6 +194,7 @@
|
|||||||
size: 'middle',
|
size: 'middle',
|
||||||
...attrs,
|
...attrs,
|
||||||
customRow,
|
customRow,
|
||||||
|
expandIcon: expandIcon(),
|
||||||
...unref(getProps),
|
...unref(getProps),
|
||||||
...unref(getHeaderProps),
|
...unref(getHeaderProps),
|
||||||
scroll: unref(getScrollRef),
|
scroll: unref(getScrollRef),
|
||||||
|
19
src/components/Table/src/components/ExpandIcon.tsx
Normal file
19
src/components/Table/src/components/ExpandIcon.tsx
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import { BasicArrow } from '/@/components/Basic';
|
||||||
|
|
||||||
|
export default () => {
|
||||||
|
return (props: Recordable) => {
|
||||||
|
if (!props.expandable) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<BasicArrow
|
||||||
|
class="mr-1"
|
||||||
|
iconStyle="margin-top: -2px;"
|
||||||
|
onClick={(e: Event) => {
|
||||||
|
props.onExpand(props.record, e);
|
||||||
|
}}
|
||||||
|
expand={props.expanded}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
};
|
@ -8,7 +8,7 @@
|
|||||||
padding: 16px;
|
padding: 16px;
|
||||||
|
|
||||||
.ant-form {
|
.ant-form {
|
||||||
padding: 20px 20px 4px 12px;
|
padding: 16px 16px 6px 12px;
|
||||||
margin-bottom: 18px;
|
margin-bottom: 18px;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
@ -2,4 +2,8 @@ export default {
|
|||||||
moduleName: 'System management',
|
moduleName: 'System management',
|
||||||
|
|
||||||
account: 'Account management',
|
account: 'Account management',
|
||||||
|
|
||||||
|
password: 'Change password',
|
||||||
|
|
||||||
|
dept: 'Department management',
|
||||||
};
|
};
|
||||||
|
@ -2,4 +2,8 @@ export default {
|
|||||||
moduleName: '系统管理',
|
moduleName: '系统管理',
|
||||||
|
|
||||||
account: '账号管理',
|
account: '账号管理',
|
||||||
|
|
||||||
|
password: '修改密码',
|
||||||
|
|
||||||
|
dept: '部门管理',
|
||||||
};
|
};
|
||||||
|
@ -11,6 +11,16 @@ const menu: MenuModule = {
|
|||||||
path: 'account',
|
path: 'account',
|
||||||
name: t('routes.demo.system.account'),
|
name: t('routes.demo.system.account'),
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
path: 'dept',
|
||||||
|
name: t('routes.demo.system.dept'),
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
path: 'changePassword',
|
||||||
|
name: t('routes.demo.system.password'),
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -15,12 +15,31 @@ const system: AppRouteModule = {
|
|||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: 'account',
|
path: 'account',
|
||||||
name: 'Account',
|
name: 'AccountManagement',
|
||||||
meta: {
|
meta: {
|
||||||
title: t('routes.demo.system.account'),
|
title: t('routes.demo.system.account'),
|
||||||
|
ignoreKeepAlive: true,
|
||||||
},
|
},
|
||||||
component: () => import('/@/views/demo/system/account/index.vue'),
|
component: () => import('/@/views/demo/system/account/index.vue'),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'dept',
|
||||||
|
name: 'DeptManagement',
|
||||||
|
meta: {
|
||||||
|
title: t('routes.demo.system.dept'),
|
||||||
|
ignoreKeepAlive: true,
|
||||||
|
},
|
||||||
|
component: () => import('/@/views/demo/system/dept/index.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'changePassword',
|
||||||
|
name: 'ChangePassword',
|
||||||
|
meta: {
|
||||||
|
title: t('routes.demo.system.password'),
|
||||||
|
ignoreKeepAlive: true,
|
||||||
|
},
|
||||||
|
component: () => import('/@/views/demo/system/password/index.vue'),
|
||||||
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -83,9 +83,15 @@ export class VAxios {
|
|||||||
this.axiosInstance.interceptors.request.use((config: AxiosRequestConfig) => {
|
this.axiosInstance.interceptors.request.use((config: AxiosRequestConfig) => {
|
||||||
// If cancel repeat request is turned on, then cancel repeat request is prohibited
|
// If cancel repeat request is turned on, then cancel repeat request is prohibited
|
||||||
const {
|
const {
|
||||||
headers: { ignoreCancelToken = false },
|
headers: { ignoreCancelToken },
|
||||||
} = config;
|
} = config;
|
||||||
!ignoreCancelToken && axiosCanceler.addPending(config);
|
|
||||||
|
const ignoreCancel =
|
||||||
|
ignoreCancelToken !== undefined
|
||||||
|
? ignoreCancelToken
|
||||||
|
: this.options.requestOptions?.ignoreCancelToken;
|
||||||
|
|
||||||
|
!ignoreCancel && axiosCanceler.addPending(config);
|
||||||
if (requestInterceptors && isFunction(requestInterceptors)) {
|
if (requestInterceptors && isFunction(requestInterceptors)) {
|
||||||
config = requestInterceptors(config);
|
config = requestInterceptors(config);
|
||||||
}
|
}
|
||||||
|
@ -202,6 +202,8 @@ function createAxios(opt?: Partial<CreateAxiosOptions>) {
|
|||||||
apiUrl: globSetting.apiUrl,
|
apiUrl: globSetting.apiUrl,
|
||||||
// 是否加入时间戳
|
// 是否加入时间戳
|
||||||
joinTime: true,
|
joinTime: true,
|
||||||
|
// 忽略重复请求
|
||||||
|
ignoreCancelToken: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
opt || {}
|
opt || {}
|
||||||
|
@ -17,6 +17,7 @@ export interface RequestOptions {
|
|||||||
errorMessageMode?: ErrorMessageMode;
|
errorMessageMode?: ErrorMessageMode;
|
||||||
// Whether to add a timestamp
|
// Whether to add a timestamp
|
||||||
joinTime?: boolean;
|
joinTime?: boolean;
|
||||||
|
ignoreCancelToken?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface CreateAxiosOptions extends AxiosRequestConfig {
|
export interface CreateAxiosOptions extends AxiosRequestConfig {
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
const [registerModal, { setModalProps }] = useModalInner((data) => {
|
const [registerModal, { setModalProps }] = useModalInner((data) => {
|
||||||
|
setModalProps({ confirmLoading: false });
|
||||||
isUpdate.value = !!data?.isUpdate;
|
isUpdate.value = !!data?.isUpdate;
|
||||||
|
|
||||||
if (unref(isUpdate)) {
|
if (unref(isUpdate)) {
|
||||||
@ -42,7 +43,7 @@
|
|||||||
// TODO custom api
|
// TODO custom api
|
||||||
console.log(values);
|
console.log(values);
|
||||||
} finally {
|
} finally {
|
||||||
setModalProps({ confirmLoading: true });
|
setModalProps({ confirmLoading: false });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,11 +2,6 @@ import { BasicColumn } from '/@/components/Table';
|
|||||||
import { FormSchema } from '/@/components/Table';
|
import { FormSchema } from '/@/components/Table';
|
||||||
|
|
||||||
export const columns: BasicColumn[] = [
|
export const columns: BasicColumn[] = [
|
||||||
{
|
|
||||||
title: 'ID',
|
|
||||||
dataIndex: 'id',
|
|
||||||
width: 80,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: '用户名',
|
title: '用户名',
|
||||||
dataIndex: 'account',
|
dataIndex: 'account',
|
||||||
@ -23,8 +18,8 @@ export const columns: BasicColumn[] = [
|
|||||||
width: 200,
|
width: 200,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '更新时间',
|
title: '创建时间',
|
||||||
dataIndex: 'updateTime',
|
dataIndex: 'createTime',
|
||||||
width: 180,
|
width: 180,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -35,7 +30,6 @@ export const columns: BasicColumn[] = [
|
|||||||
{
|
{
|
||||||
title: '备注',
|
title: '备注',
|
||||||
dataIndex: 'remark',
|
dataIndex: 'remark',
|
||||||
width: 200,
|
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -8,11 +8,11 @@
|
|||||||
<TableAction
|
<TableAction
|
||||||
:actions="[
|
:actions="[
|
||||||
{
|
{
|
||||||
label: '编辑',
|
icon: 'clarity:note-edit-line',
|
||||||
onClick: handleEdit.bind(null, record),
|
onClick: handleEdit.bind(null, record),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '删除',
|
icon: 'ant-design:delete-outlined',
|
||||||
color: 'error',
|
color: 'error',
|
||||||
popConfirm: {
|
popConfirm: {
|
||||||
title: '是否确认删除',
|
title: '是否确认删除',
|
||||||
@ -55,8 +55,9 @@
|
|||||||
},
|
},
|
||||||
useSearchForm: true,
|
useSearchForm: true,
|
||||||
showTableSetting: true,
|
showTableSetting: true,
|
||||||
|
bordered: true,
|
||||||
actionColumn: {
|
actionColumn: {
|
||||||
width: 160,
|
width: 80,
|
||||||
title: '操作',
|
title: '操作',
|
||||||
dataIndex: 'action',
|
dataIndex: 'action',
|
||||||
slots: { customRender: 'action' },
|
slots: { customRender: 'action' },
|
||||||
|
64
src/views/demo/system/dept/DeptModal.vue
Normal file
64
src/views/demo/system/dept/DeptModal.vue
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
<template>
|
||||||
|
<BasicModal v-bind="$attrs" @register="registerModal" :title="getTitle" @ok="handleSubmit">
|
||||||
|
<BasicForm @register="registerForm" />
|
||||||
|
</BasicModal>
|
||||||
|
</template>
|
||||||
|
<script lang="ts">
|
||||||
|
import { defineComponent, ref, computed, unref } from 'vue';
|
||||||
|
import { BasicModal, useModalInner } from '/@/components/Modal';
|
||||||
|
import { BasicForm, useForm } from '/@/components/Form/index';
|
||||||
|
import { formSchema } from './dept.data';
|
||||||
|
|
||||||
|
import { getDeptList } from '/@/api/demo/system';
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'DeptModal',
|
||||||
|
components: { BasicModal, BasicForm },
|
||||||
|
emits: ['success', 'register'],
|
||||||
|
setup(_, { emit }) {
|
||||||
|
const isUpdate = ref(true);
|
||||||
|
|
||||||
|
const [registerForm, { resetFields, setFieldsValue, updateSchema, validate }] = useForm({
|
||||||
|
labelWidth: 100,
|
||||||
|
schemas: formSchema,
|
||||||
|
showActionButtonGroup: false,
|
||||||
|
actionColOptions: {
|
||||||
|
span: 23,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
|
||||||
|
resetFields();
|
||||||
|
setModalProps({ confirmLoading: false });
|
||||||
|
isUpdate.value = !!data?.isUpdate;
|
||||||
|
|
||||||
|
if (unref(isUpdate)) {
|
||||||
|
setFieldsValue({
|
||||||
|
...data.record,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const treeData = await getDeptList();
|
||||||
|
updateSchema({
|
||||||
|
field: 'parentDept',
|
||||||
|
componentProps: { treeData },
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
const getTitle = computed(() => (!unref(isUpdate) ? '新增部门' : '编辑部门'));
|
||||||
|
|
||||||
|
async function handleSubmit() {
|
||||||
|
try {
|
||||||
|
const values = await validate();
|
||||||
|
setModalProps({ confirmLoading: true });
|
||||||
|
// TODO custom api
|
||||||
|
console.log(values);
|
||||||
|
closeModal();
|
||||||
|
emit('success');
|
||||||
|
} finally {
|
||||||
|
setModalProps({ confirmLoading: false });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return { registerModal, registerForm, getTitle, handleSubmit };
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
105
src/views/demo/system/dept/dept.data.ts
Normal file
105
src/views/demo/system/dept/dept.data.ts
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
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: 'deptName',
|
||||||
|
width: 300,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '排序',
|
||||||
|
dataIndex: 'orderNo',
|
||||||
|
width: 80,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '状态',
|
||||||
|
dataIndex: 'status',
|
||||||
|
width: 120,
|
||||||
|
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: 'deptName',
|
||||||
|
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: 'deptName',
|
||||||
|
label: '部门名称',
|
||||||
|
component: 'Input',
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'parentDept',
|
||||||
|
label: '上级部门',
|
||||||
|
component: 'TreeSelect',
|
||||||
|
componentProps: {
|
||||||
|
replaceFields: {
|
||||||
|
title: 'deptName',
|
||||||
|
key: 'id',
|
||||||
|
value: 'id',
|
||||||
|
},
|
||||||
|
getPopupContainer: () => document.body,
|
||||||
|
},
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'orderNo',
|
||||||
|
label: '排序',
|
||||||
|
component: 'InputNumber',
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'status',
|
||||||
|
label: '状态',
|
||||||
|
component: 'RadioButtonGroup',
|
||||||
|
componentProps: {
|
||||||
|
options: [
|
||||||
|
{ label: '正常', value: '0' },
|
||||||
|
{ label: '禁用', value: '1' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '备注',
|
||||||
|
field: 'remark',
|
||||||
|
component: 'InputTextArea',
|
||||||
|
},
|
||||||
|
];
|
100
src/views/demo/system/dept/index.vue
Normal file
100
src/views/demo/system/dept/index.vue
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<BasicTable @register="registerTable">
|
||||||
|
<template #toolbar>
|
||||||
|
<a-button type="primary" @click="handleCreate"> 新增部门 </a-button>
|
||||||
|
</template>
|
||||||
|
<template #action="{ record }">
|
||||||
|
<TableAction
|
||||||
|
:actions="[
|
||||||
|
{
|
||||||
|
icon: 'clarity:note-edit-line',
|
||||||
|
onClick: handleEdit.bind(null, record),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'ant-design:delete-outlined',
|
||||||
|
color: 'error',
|
||||||
|
popConfirm: {
|
||||||
|
title: '是否确认删除',
|
||||||
|
confirm: handleDelete.bind(null, record),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</BasicTable>
|
||||||
|
<DeptModal @register="registerModal" @success="handleSuccess" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts">
|
||||||
|
import { defineComponent } from 'vue';
|
||||||
|
|
||||||
|
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
||||||
|
import { getDeptList } from '/@/api/demo/system';
|
||||||
|
|
||||||
|
import { useModal } from '/@/components/Modal';
|
||||||
|
import DeptModal from './DeptModal.vue';
|
||||||
|
|
||||||
|
import { columns, searchFormSchema } from './dept.data';
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'DeptManagement',
|
||||||
|
components: { BasicTable, DeptModal, TableAction },
|
||||||
|
setup() {
|
||||||
|
const [registerModal, { openModal }] = useModal();
|
||||||
|
const [registerTable, { reload }] = useTable({
|
||||||
|
title: '部门列表',
|
||||||
|
api: getDeptList,
|
||||||
|
columns,
|
||||||
|
formConfig: {
|
||||||
|
labelWidth: 120,
|
||||||
|
schemas: searchFormSchema,
|
||||||
|
},
|
||||||
|
pagination: false,
|
||||||
|
striped: false,
|
||||||
|
useSearchForm: true,
|
||||||
|
showTableSetting: true,
|
||||||
|
bordered: true,
|
||||||
|
showIndexColumn: false,
|
||||||
|
indentSize: 20,
|
||||||
|
actionColumn: {
|
||||||
|
width: 80,
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'action',
|
||||||
|
slots: { customRender: 'action' },
|
||||||
|
fixed: undefined,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
function handleCreate() {
|
||||||
|
openModal(true, {
|
||||||
|
isUpdate: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleEdit(record: Recordable) {
|
||||||
|
openModal(true, {
|
||||||
|
record,
|
||||||
|
isUpdate: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleDelete(record: Recordable) {
|
||||||
|
console.log(record);
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleSuccess() {
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
registerTable,
|
||||||
|
registerModal,
|
||||||
|
handleCreate,
|
||||||
|
handleEdit,
|
||||||
|
handleDelete,
|
||||||
|
handleSuccess,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
43
src/views/demo/system/password/index.vue
Normal file
43
src/views/demo/system/password/index.vue
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<template>
|
||||||
|
<div class="p-4 flex flex-col justify-center items-center">
|
||||||
|
<BasicForm @register="register" />
|
||||||
|
|
||||||
|
<div class="flex justify-center">
|
||||||
|
<a-button @click="resetFields"> 重置 </a-button>
|
||||||
|
<a-button class="ml-4" type="primary" @click="handleSubmit"> 确认 </a-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts">
|
||||||
|
import { defineComponent } from 'vue';
|
||||||
|
|
||||||
|
import { BasicForm, useForm } from '/@/components/Form';
|
||||||
|
|
||||||
|
import { formSchema } from './pwd.data';
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'ChangePassword',
|
||||||
|
components: { BasicForm },
|
||||||
|
setup() {
|
||||||
|
const [register, { validate, resetFields }] = useForm({
|
||||||
|
size: 'large',
|
||||||
|
labelWidth: 100,
|
||||||
|
showActionButtonGroup: false,
|
||||||
|
schemas: formSchema,
|
||||||
|
});
|
||||||
|
|
||||||
|
async function handleSubmit() {
|
||||||
|
try {
|
||||||
|
const values = await validate();
|
||||||
|
const { passwordOld, passwordNew } = values;
|
||||||
|
|
||||||
|
// TODO custom api
|
||||||
|
console.log(passwordOld, passwordNew);
|
||||||
|
// const { router } = useRouter();
|
||||||
|
// router.push(pageEnum.BASE_LOGIN);
|
||||||
|
} catch (error) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
return { register, resetFields, handleSubmit };
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
46
src/views/demo/system/password/pwd.data.ts
Normal file
46
src/views/demo/system/password/pwd.data.ts
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
import { FormSchema } from '/@/components/Form';
|
||||||
|
|
||||||
|
export const formSchema: FormSchema[] = [
|
||||||
|
{
|
||||||
|
field: 'passwordOld',
|
||||||
|
label: '当前密码',
|
||||||
|
component: 'InputPassword',
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'passwordNew',
|
||||||
|
label: '新密码',
|
||||||
|
component: 'StrengthMeter',
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '新密码',
|
||||||
|
},
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入新密码',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'confirmPassword',
|
||||||
|
label: '确认密码',
|
||||||
|
component: 'InputPassword',
|
||||||
|
|
||||||
|
dynamicRules: ({ values }) => {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
validator: (_, value) => {
|
||||||
|
if (!value) {
|
||||||
|
return Promise.reject('不能为空');
|
||||||
|
}
|
||||||
|
if (value !== values.passwordNew) {
|
||||||
|
return Promise.reject('两次输入的密码不一致!');
|
||||||
|
}
|
||||||
|
return Promise.resolve();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
271
yarn.lock
271
yarn.lock
@ -1702,18 +1702,18 @@
|
|||||||
resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.5.tgz#c131d88bd6713cc4d93b3bb1372edb1983225ff0"
|
resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.5.tgz#c131d88bd6713cc4d93b3bb1372edb1983225ff0"
|
||||||
integrity sha512-gYsNoGkWejBxNO6SNRjOh/xKeZ0H0V+TFzaPzODfBjkAIb0aQgBuixC1brandC/CDJy1wYPwSoYrXpvul7m6yw==
|
integrity sha512-gYsNoGkWejBxNO6SNRjOh/xKeZ0H0V+TFzaPzODfBjkAIb0aQgBuixC1brandC/CDJy1wYPwSoYrXpvul7m6yw==
|
||||||
|
|
||||||
"@vueuse/core@^4.3.0":
|
"@vueuse/core@^4.3.1":
|
||||||
version "4.3.0"
|
version "4.3.1"
|
||||||
resolved "https://registry.npmjs.org/@vueuse/core/-/core-4.3.0.tgz#409d1c8fc0b7fffcf5b5388dfc487762bb936b0c"
|
resolved "https://registry.npmjs.org/@vueuse/core/-/core-4.3.1.tgz#f6fdb2afef6acbe59abb9832d0a7cfa01e65ce36"
|
||||||
integrity sha512-PQ3r6wZDCN3pY+UBB5NLQdRfwiasd8MmWppuzpvNE2Sr8T48gmWXDWw3GG4EHMXnuz5EBfQG+U+1TjSaGaK6/w==
|
integrity sha512-/UkL83zSkE1qb1aqidSjUxADB9ggRnchXe5CliqAb5Ak7Rt9IfdUC4zfvvAtwlIgNvT1Fo9YCtgRma4H2TVLEQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vueuse/shared" "4.3.0"
|
"@vueuse/shared" "4.3.1"
|
||||||
vue-demi latest
|
vue-demi latest
|
||||||
|
|
||||||
"@vueuse/shared@4.3.0":
|
"@vueuse/shared@4.3.1":
|
||||||
version "4.3.0"
|
version "4.3.1"
|
||||||
resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-4.3.0.tgz#82e05dc2941642814ac6fcbb5f9076c38c052968"
|
resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-4.3.1.tgz#6f0f6c82f096ca329d9541d6f37f29a2d19dd107"
|
||||||
integrity sha512-udc1ADIYwizTK/iSfjZQj6+QDFM099oHuX0Sj/yv0NgE9eSODcesV4zO7PtvmJanzw43hCdvtdGBz8miyRkHCQ==
|
integrity sha512-K2F+z16BqcOtEp/pJEK7cPvOMsgBChGGfx0UAatXt8Awk+b4Vi6L6//KclAV1N7w+e9u2kJlC1Ld8GqdY5ZxRg==
|
||||||
dependencies:
|
dependencies:
|
||||||
vue-demi latest
|
vue-demi latest
|
||||||
|
|
||||||
@ -3600,11 +3600,6 @@ esbuild-register@^2.0.0:
|
|||||||
source-map-support "^0.5.19"
|
source-map-support "^0.5.19"
|
||||||
strip-json-comments "^3.1.1"
|
strip-json-comments "^3.1.1"
|
||||||
|
|
||||||
esbuild@^0.8.48:
|
|
||||||
version "0.8.48"
|
|
||||||
resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.48.tgz#a57e4dde84ec56da1c6ecaefee97e9da6c5b00b5"
|
|
||||||
integrity sha512-lrH8lA8wWQ6Lpe1z6C7ZZaFSmRsUlcQAqe16nf7ITySQ7MV4+vI7qAqQlT/u+c3+9AL3VXmT4MXTxV2e63pO4A==
|
|
||||||
|
|
||||||
esbuild@^0.8.50:
|
esbuild@^0.8.50:
|
||||||
version "0.8.50"
|
version "0.8.50"
|
||||||
resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.50.tgz#ebf24fde0cdad1a369789dd6fd7a820b0a01e46c"
|
resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.50.tgz#ebf24fde0cdad1a369789dd6fd7a820b0a01e46c"
|
||||||
@ -3615,6 +3610,11 @@ esbuild@^0.8.52:
|
|||||||
resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.52.tgz#6dabf11c517af449a96d66da20dfc204ee7b5294"
|
resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.52.tgz#6dabf11c517af449a96d66da20dfc204ee7b5294"
|
||||||
integrity sha512-b5KzFweLLXoXQwdC/e2+Z80c8uo2M5MgP7yQEEebkFw6In4T9CvYcNoM2ElvJt8ByO04zAZUV0fZkXmXoi2s9A==
|
integrity sha512-b5KzFweLLXoXQwdC/e2+Z80c8uo2M5MgP7yQEEebkFw6In4T9CvYcNoM2ElvJt8ByO04zAZUV0fZkXmXoi2s9A==
|
||||||
|
|
||||||
|
esbuild@^0.8.53:
|
||||||
|
version "0.8.53"
|
||||||
|
resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.53.tgz#b408bb0ca1b29dab13d8bbf7d59f59afe6776e86"
|
||||||
|
integrity sha512-GIaYGdMukH58hu+lf07XWAeESBYFAsz8fXnrylHDCbBXKOSNtFmoYA8PhSeSF+3/qzeJ0VjzV9AkLURo5yfu3g==
|
||||||
|
|
||||||
escalade@^3.1.1:
|
escalade@^3.1.1:
|
||||||
version "3.1.1"
|
version "3.1.1"
|
||||||
resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
|
resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
|
||||||
@ -3720,12 +3720,12 @@ eslint@^7.21.0:
|
|||||||
text-table "^0.2.0"
|
text-table "^0.2.0"
|
||||||
v8-compile-cache "^2.0.3"
|
v8-compile-cache "^2.0.3"
|
||||||
|
|
||||||
esno@^0.4.4:
|
esno@^0.4.5:
|
||||||
version "0.4.4"
|
version "0.4.5"
|
||||||
resolved "https://registry.npmjs.org/esno/-/esno-0.4.4.tgz#88b20add264401321a6545de00c9437edd81ca24"
|
resolved "https://registry.npmjs.org/esno/-/esno-0.4.5.tgz#befd93a0b9021b8879aef359d2938d38be960c5a"
|
||||||
integrity sha512-YthG7d+wodPWKkJTdQPMrKZCbJgtyWsel6UBekjZw8AahUTtkqvtLXcMnRXeZ5YIcjviLXw3Cmq7hVlvB7dFyw==
|
integrity sha512-QzQZPVlpII0RJCDecsi28gjJFa6DXb/kAn3IHE+XHTw382wAA89jF40DcP/t+Yn/usrHyDlmseBppvr5Jxy7qw==
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild "^0.8.48"
|
esbuild "^0.8.53"
|
||||||
esbuild-register "^2.0.0"
|
esbuild-register "^2.0.0"
|
||||||
|
|
||||||
espree@^6.2.1:
|
espree@^6.2.1:
|
||||||
@ -4811,10 +4811,10 @@ human-signals@^1.1.1:
|
|||||||
resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
|
resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
|
||||||
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
|
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
|
||||||
|
|
||||||
husky@^5.1.1:
|
husky@^5.1.2:
|
||||||
version "5.1.1"
|
version "5.1.2"
|
||||||
resolved "https://registry.npmjs.org/husky/-/husky-5.1.1.tgz#8678953fd8deb86f387cbf1ad50bb2f7f96e83f2"
|
resolved "https://registry.npmjs.org/husky/-/husky-5.1.2.tgz#dc6a1f68640455d8d98c28875e073087f86c5081"
|
||||||
integrity sha512-80LZ736V0Nr4/st0c2COYaMbEQhHNmAbLMN8J/kLk7/mo0QdUkUGNDjv/7jVkhug377Wh8wfbWyaVXEJ/h2B/Q==
|
integrity sha512-lilaRYeDXcAOj8DuRnN9IxUyEMVbYg9rK7yVNkPB5V4hCvxIUxpMeiv9K2h77CE0HzjCnk1Br0oWe1IghXngDQ==
|
||||||
|
|
||||||
iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
|
iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
|
||||||
version "0.4.24"
|
version "0.4.24"
|
||||||
@ -7020,11 +7020,16 @@ prettier@^2.2.1:
|
|||||||
resolved "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"
|
resolved "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"
|
||||||
integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
|
integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
|
||||||
|
|
||||||
pretty-bytes@^5.3.0, pretty-bytes@^5.5.0:
|
pretty-bytes@^5.3.0:
|
||||||
version "5.5.0"
|
version "5.5.0"
|
||||||
resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.5.0.tgz#0cecda50a74a941589498011cf23275aa82b339e"
|
resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.5.0.tgz#0cecda50a74a941589498011cf23275aa82b339e"
|
||||||
integrity sha512-p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA==
|
integrity sha512-p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA==
|
||||||
|
|
||||||
|
pretty-bytes@^5.6.0:
|
||||||
|
version "5.6.0"
|
||||||
|
resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb"
|
||||||
|
integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
|
||||||
|
|
||||||
pretty-quick@^3.1.0:
|
pretty-quick@^3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.1.0.tgz#cb172e9086deb57455dea7c7e8f136cd0a4aef6c"
|
resolved "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.1.0.tgz#cb172e9086deb57455dea7c7e8f136cd0a4aef6c"
|
||||||
@ -8941,15 +8946,15 @@ vite-plugin-purge-icons@^0.7.0:
|
|||||||
"@purge-icons/generated" "^0.7.0"
|
"@purge-icons/generated" "^0.7.0"
|
||||||
rollup-plugin-purge-icons "^0.7.0"
|
rollup-plugin-purge-icons "^0.7.0"
|
||||||
|
|
||||||
vite-plugin-pwa@^0.5.5:
|
vite-plugin-pwa@^0.5.6:
|
||||||
version "0.5.5"
|
version "0.5.6"
|
||||||
resolved "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.5.5.tgz#f6bcaf6f6f1af0882fff7a9334aec685b798cceb"
|
resolved "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.5.6.tgz#483267e83ff3a6f5a0adc97a7e06f841a353cf30"
|
||||||
integrity sha512-gwPg+pDm87iMOLORz/fOZiNNWNXhHFrMPW34XpX3F9JLl6ytcNZ6cJMYJ1FRKQPtVADqkbZjk3g3AOi1oI6HKQ==
|
integrity sha512-CQjfKdSm0YMRRdMkfdI1RqJyrCjOFUl61+puGfMNAUMM5tex9rjF9gHxqDV5pN/2jFMQoTKkLLQ7HOYM0VbF2w==
|
||||||
dependencies:
|
dependencies:
|
||||||
debug "^4.3.2"
|
debug "^4.3.2"
|
||||||
fast-glob "^3.2.5"
|
fast-glob "^3.2.5"
|
||||||
pretty-bytes "^5.5.0"
|
pretty-bytes "^5.6.0"
|
||||||
workbox-build "^6.1.0"
|
workbox-build "^6.1.1"
|
||||||
|
|
||||||
vite-plugin-style-import@^0.7.5:
|
vite-plugin-style-import@^0.7.5:
|
||||||
version "0.7.5"
|
version "0.7.5"
|
||||||
@ -9123,24 +9128,24 @@ wordwrap@^1.0.0:
|
|||||||
resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
|
resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
|
||||||
integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
|
integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
|
||||||
|
|
||||||
workbox-background-sync@^6.1.0:
|
workbox-background-sync@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.1.0.tgz#817de1ac1546fb6035759f151b0b4c5f0d3d9506"
|
resolved "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.1.1.tgz#db51214299b4be7a8aa274d8037f22d917241101"
|
||||||
integrity sha512-A7YWWmAqzLkWYqqxzxoX4mciVjdSHpfX+JMADXoJ9SoLb6l/QReNJE+CNPew+gGPH6JLKNjZeecDmUpXFhzFPA==
|
integrity sha512-w1b3j7snz4pQ8xp0i5Nci40qlglqdk70pbORBtMfl9uikI1qGjYfKq6oYeResCXYxb5mUYS245HsUclb6RFVJA==
|
||||||
dependencies:
|
dependencies:
|
||||||
workbox-core "^6.1.0"
|
workbox-core "^6.1.1"
|
||||||
|
|
||||||
workbox-broadcast-update@^6.1.0:
|
workbox-broadcast-update@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.1.0.tgz#63c1dc2d519aa6a7b9ce1db2f8da3e1db45b3422"
|
resolved "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.1.1.tgz#5815749c9ad22ba4ef5184064a62fbdae3b04bf0"
|
||||||
integrity sha512-70G821I1Lb4Ex+rcjfKCbuFJ4WL4RSQsqvcByt/bLpPTTLoE6+VvLX3+1QtSK8P2+NmOsKkAqx9qiQkUdGbaYw==
|
integrity sha512-8fBNOQt8ojWWtz3FbkDnKo8CpN6l8UjD2HpQr8tue7HJVfk0X1gfnzZLIDg7HCXhqF7ld3iQbGQqGPf1ihTY6A==
|
||||||
dependencies:
|
dependencies:
|
||||||
workbox-core "^6.1.0"
|
workbox-core "^6.1.1"
|
||||||
|
|
||||||
workbox-build@^6.1.0:
|
workbox-build@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-build/-/workbox-build-6.1.0.tgz#e0ba4a0004da1079e934c7452c72c92ef7b52cba"
|
resolved "https://registry.npmjs.org/workbox-build/-/workbox-build-6.1.1.tgz#8333626fad45734d842293e6c2c1b725f4e15752"
|
||||||
integrity sha512-xJPqTEf+Pg9KAoTrNeVWpMjqi4cJIRn14i02bZjjbHsLNN38qrqc8xwAW48TwoPCYLjp104ST164/3RDgrc7yw==
|
integrity sha512-mAI3dS4VnXri6BFg02arK1403SqHy2sOlzC4NVAk6Rl2+Ddxs+PmJO4cMTyHw0KEhQFcwk6V8cJeGiXJXYzinA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/core" "^7.11.1"
|
"@babel/core" "^7.11.1"
|
||||||
"@babel/preset-env" "^7.11.0"
|
"@babel/preset-env" "^7.11.0"
|
||||||
@ -9164,119 +9169,119 @@ workbox-build@^6.1.0:
|
|||||||
strip-comments "^2.0.1"
|
strip-comments "^2.0.1"
|
||||||
tempy "^0.6.0"
|
tempy "^0.6.0"
|
||||||
upath "^1.2.0"
|
upath "^1.2.0"
|
||||||
workbox-background-sync "^6.1.0"
|
workbox-background-sync "^6.1.1"
|
||||||
workbox-broadcast-update "^6.1.0"
|
workbox-broadcast-update "^6.1.1"
|
||||||
workbox-cacheable-response "^6.1.0"
|
workbox-cacheable-response "^6.1.1"
|
||||||
workbox-core "^6.1.0"
|
workbox-core "^6.1.1"
|
||||||
workbox-expiration "^6.1.0"
|
workbox-expiration "^6.1.1"
|
||||||
workbox-google-analytics "^6.1.0"
|
workbox-google-analytics "^6.1.1"
|
||||||
workbox-navigation-preload "^6.1.0"
|
workbox-navigation-preload "^6.1.1"
|
||||||
workbox-precaching "^6.1.0"
|
workbox-precaching "^6.1.1"
|
||||||
workbox-range-requests "^6.1.0"
|
workbox-range-requests "^6.1.1"
|
||||||
workbox-recipes "^6.1.0"
|
workbox-recipes "^6.1.1"
|
||||||
workbox-routing "^6.1.0"
|
workbox-routing "^6.1.1"
|
||||||
workbox-strategies "^6.1.0"
|
workbox-strategies "^6.1.1"
|
||||||
workbox-streams "^6.1.0"
|
workbox-streams "^6.1.1"
|
||||||
workbox-sw "^6.1.0"
|
workbox-sw "^6.1.1"
|
||||||
workbox-window "^6.1.0"
|
workbox-window "^6.1.1"
|
||||||
|
|
||||||
workbox-cacheable-response@^6.1.0:
|
workbox-cacheable-response@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.1.0.tgz#a99fdfe1507848486579df7b204c30e4cd0a74f2"
|
resolved "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.1.1.tgz#1dc71393cbce83559ad05a8ccb6c6fafa4cccc70"
|
||||||
integrity sha512-oDAi0vXHGaE5p9NOo4N180UTcEKm6t2JMgmlrq0PkEW2PZEu9YR/atSnCwzMW7xpDqpKWaQr/LGP4+eixS8gcA==
|
integrity sha512-jasNxelRrqCbzIAIMjHk7Ej9BOViBTQlvRJzv3Y0nYuWvxK0CDPQJSraGmTbu3LGiTBbrWEmxe1hVqvLyFKR9A==
|
||||||
dependencies:
|
dependencies:
|
||||||
workbox-core "^6.1.0"
|
workbox-core "^6.1.1"
|
||||||
|
|
||||||
workbox-core@^6.1.0:
|
workbox-core@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-core/-/workbox-core-6.1.0.tgz#2671b64f76550e83a4c2202676b67ce372e10881"
|
resolved "https://registry.npmjs.org/workbox-core/-/workbox-core-6.1.1.tgz#c8a9b424031b0cf7dacf9d7b8e023d126c9d0167"
|
||||||
integrity sha512-s3KqTJfBreO4xCZpR2LB5p/EknAx8eg0QumKiIgxM4hRO0RtwS2pJvTieNEM23X3RqxRhqweriLD8To19KUvjg==
|
integrity sha512-xsc/72AQxFtt2BHmwU8QtnVV+W5ln4nnYGuz9Q5sPWYGqW4cH0P+FpZDoGM59bmNEyNf+W9bEmidW//e5GsbwQ==
|
||||||
|
|
||||||
workbox-expiration@^6.1.0:
|
workbox-expiration@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.1.0.tgz#cf6bb384e49d0c92b79233c46671d9c6d82478a2"
|
resolved "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.1.1.tgz#4468c3cdfe76b5888f4ae7e3aad63797a7bc24b1"
|
||||||
integrity sha512-jp2xGk+LC4AhCoOxO/bC06GQkq/oVp0ZIf1zXLQh6OD2fWZPkXNjLLSuDnjXoGGPibYrq7gEE/xjAdYGjNWl1A==
|
integrity sha512-WbEv8NG1ZUiWI+jv3v7Jqed/PyCMoTpLcf3Nw7tKq0nGy6DFQtmSizO37uJ73oc8vttck97UBPQRiwyP1bZnAg==
|
||||||
dependencies:
|
dependencies:
|
||||||
workbox-core "^6.1.0"
|
workbox-core "^6.1.1"
|
||||||
|
|
||||||
workbox-google-analytics@^6.1.0:
|
workbox-google-analytics@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.1.0.tgz#cd34100536250abc54070bcc23603213eb8e47e4"
|
resolved "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.1.1.tgz#c31876954779d65e1334c2dc3232e46d6a5f925a"
|
||||||
integrity sha512-BuUAJ747bMPC6IOKaQBXfotGybOfeHDRIC8ElF65ouB4O9kUJ3zh4EFxXmmJLgzTnji6265gXqNWcfuGiidk6A==
|
integrity sha512-79PyeE4TyabGXqlDcRG2LKejs8yZ8OoU0/El0BwP8RGrZgp5GMDGuJkat4xggpRTVaOk8rb0aoSbVAYBWpa0pg==
|
||||||
dependencies:
|
dependencies:
|
||||||
workbox-background-sync "^6.1.0"
|
workbox-background-sync "^6.1.1"
|
||||||
workbox-core "^6.1.0"
|
workbox-core "^6.1.1"
|
||||||
workbox-routing "^6.1.0"
|
workbox-routing "^6.1.1"
|
||||||
workbox-strategies "^6.1.0"
|
workbox-strategies "^6.1.1"
|
||||||
|
|
||||||
workbox-navigation-preload@^6.1.0:
|
workbox-navigation-preload@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.1.0.tgz#e36d19f0d49ab5277e6c4e13b92f40da8955d62f"
|
resolved "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.1.1.tgz#3c7d39d5f102f4a76f24b48f97701b16ae56bd40"
|
||||||
integrity sha512-N0c5Kmzu7lPKvirukbeZ3lN8KEAZU9xA4b1wmpV0VXUfRXVEk2ayXXqwHwMGFVi6FNCHiDLOcC8a2zW5kFLAeg==
|
integrity sha512-vX5qJDk1Z663nuSSSHkcBFQQJwEe4UHynd5uoX3oC0IlecPclAbyT3QetVh0wYdXv6G6XD/LBd3iNZmlSbTosw==
|
||||||
dependencies:
|
dependencies:
|
||||||
workbox-core "^6.1.0"
|
workbox-core "^6.1.1"
|
||||||
|
|
||||||
workbox-precaching@^6.1.0:
|
workbox-precaching@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.1.0.tgz#9ee3d28f27cd78daa62f5bd6a0d33f5682ac97a7"
|
resolved "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.1.1.tgz#f387ccdf60aab30228a4c7ed20a1cd8dee6aaaa4"
|
||||||
integrity sha512-zjye8MVzieBVJ3sS0hFcbKLp7pTHMfJM17YqxCxB0KykXWnxLOpYnStQ9M+bjWJsKJOQvbkPqvq5u9+mtA923g==
|
integrity sha512-x8OKwtjd5ewe/x3VlKcXri1P3Tm0uV+uChdMYg/QryrCR9K8x9xwhAw8PZPkwrY0bLLsJMUoX9/lBu8DmjVqTA==
|
||||||
dependencies:
|
dependencies:
|
||||||
workbox-core "^6.1.0"
|
workbox-core "^6.1.1"
|
||||||
workbox-routing "^6.1.0"
|
workbox-routing "^6.1.1"
|
||||||
workbox-strategies "^6.1.0"
|
workbox-strategies "^6.1.1"
|
||||||
|
|
||||||
workbox-range-requests@^6.1.0:
|
workbox-range-requests@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.1.0.tgz#5fbe9edfbcdb97153ed5260575a54e53b0f85a2d"
|
resolved "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.1.1.tgz#4e6d30e91cfc3855ff16cfa3df458e0487da2b4d"
|
||||||
integrity sha512-BO025BdAvc6vTBXJfkfibcikMFLmLRECt0FrVrTiiQafdO3jWH9qX9zTdrjYf6GkiIjvejvvmSYegwU1mL6N3Q==
|
integrity sha512-ikZ0ZwbFAVMzJ08rM/spn9zC2tohGllFVii9R1q0+xMKvoGDsyzoQnoKrXgyUvcjRPn6ByFncAJ5lUKKG4TGkA==
|
||||||
dependencies:
|
dependencies:
|
||||||
workbox-core "^6.1.0"
|
workbox-core "^6.1.1"
|
||||||
|
|
||||||
workbox-recipes@^6.1.0:
|
workbox-recipes@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.1.0.tgz#b925f2727ace05ce8762a1b6da6c0d749fd687ee"
|
resolved "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.1.1.tgz#0cd1bd3b2ba223db563428ec5d17e960081f70d4"
|
||||||
integrity sha512-r8YLtMtQnvfkK1htnfrrX1CxKHglZJiVlqnct9rYIU17n2LCalHdI0zQrPqzYdLLHZxTX25UpBsdib0cAATy0A==
|
integrity sha512-GuzJXBQM+YaFxQwFvcRarAScUoRDoaWXKxxkLWHnCJf0H//MQ8zR9Ay1mv21N6iRoSH11S0u/4yxSeembG/fLA==
|
||||||
dependencies:
|
dependencies:
|
||||||
workbox-cacheable-response "^6.1.0"
|
workbox-cacheable-response "^6.1.1"
|
||||||
workbox-core "^6.1.0"
|
workbox-core "^6.1.1"
|
||||||
workbox-expiration "^6.1.0"
|
workbox-expiration "^6.1.1"
|
||||||
workbox-precaching "^6.1.0"
|
workbox-precaching "^6.1.1"
|
||||||
workbox-routing "^6.1.0"
|
workbox-routing "^6.1.1"
|
||||||
workbox-strategies "^6.1.0"
|
workbox-strategies "^6.1.1"
|
||||||
|
|
||||||
workbox-routing@^6.1.0:
|
workbox-routing@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.1.0.tgz#f885cb7801e2c9c5678f197656cf27a2b649c1d5"
|
resolved "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.1.1.tgz#833ef6439905757241f9e4d56d8e282c20199c02"
|
||||||
integrity sha512-FXQ5cwb6Mk90fC0rfQLX0pN+r/N4eBafwkh/QanJUq0e6jMPdDFLrlsikZL/0LcXEx+yAkWLytoiS+d2HOEBOw==
|
integrity sha512-Az3Gt3cHNK+W0gTfSb4eKGfwEap9Slak16Krr5SiLhE1gXUY2C2O123HucVCedXgIoqTLOXMtNj71Cm6SwYDEg==
|
||||||
dependencies:
|
dependencies:
|
||||||
workbox-core "^6.1.0"
|
workbox-core "^6.1.1"
|
||||||
|
|
||||||
workbox-strategies@^6.1.0:
|
workbox-strategies@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.1.0.tgz#9ddcee44408d2fb403f22a7989803b5c58560590"
|
resolved "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.1.1.tgz#6e0adda84bcda17d3d0c48baec2eab9b988b9ca6"
|
||||||
integrity sha512-HvUknzJdZWeV3x7Eq33a7TGAv9/r1TEiQK6kQ1QNzN+IKiqhIjnhKFHmMxb5hK1Gw9/aDSJTLNPDaLPfIJRQFQ==
|
integrity sha512-7qYA9Eiq6hnP2dyenlD7ZtWI1ArBMT8yhTvHVlaOl9kYY7W+Iv3lAfRCjj/nucOKeVXATx4iVJEuFPn5J+8lzw==
|
||||||
dependencies:
|
dependencies:
|
||||||
workbox-core "^6.1.0"
|
workbox-core "^6.1.1"
|
||||||
|
|
||||||
workbox-streams@^6.1.0:
|
workbox-streams@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.1.0.tgz#2dbc78ddc863b47aa4fe399d9385d3ed8567e881"
|
resolved "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.1.1.tgz#0f204f070861eb1afccddeca4a5a8ba069596bd1"
|
||||||
integrity sha512-V80OIfoIXaDkjWIGFSae5sBJuaG2r4bXk6HKpntBYaVQ72LD1CgkXRmZKmLJQ9ltHCx9Vmq/7+q1OF5mTKb8Qw==
|
integrity sha512-EMhY+Y2O7+XVy8MFRmiDwKezAXLzbgjQOJDbxWaGKtwNPbwOF6gGZjCvmnNAU1K+MAvvUNsAFR6AAUKMSfOyaw==
|
||||||
dependencies:
|
dependencies:
|
||||||
workbox-core "^6.1.0"
|
workbox-core "^6.1.1"
|
||||||
workbox-routing "^6.1.0"
|
workbox-routing "^6.1.1"
|
||||||
|
|
||||||
workbox-sw@^6.1.0:
|
workbox-sw@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.1.0.tgz#dfaca1029264af71f13a90fdfb16cf8d64ed0537"
|
resolved "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.1.1.tgz#203ce4611309df1bf9c142d1e3b3a214b1b62944"
|
||||||
integrity sha512-e2jnIWSmNrpO9Psy4D6euDdRUW8FTXAdMxOj5O02gxa01fri1kfTSM9irDnTGKUiSGc+hlycsvzGdr8bnvzDiA==
|
integrity sha512-t6LLSx/rOS8d6w4+fsJOHDqGrjO89iBF0F8nBQgBleEPjvs9Be5j4B11y34Fw7s0CggeA3Kciutr4CqnQtPQUg==
|
||||||
|
|
||||||
workbox-window@^6.1.0:
|
workbox-window@^6.1.1:
|
||||||
version "6.1.0"
|
version "6.1.1"
|
||||||
resolved "https://registry.npmjs.org/workbox-window/-/workbox-window-6.1.0.tgz#5856127f183bcccfd93655b0e3cba5f2432b9156"
|
resolved "https://registry.npmjs.org/workbox-window/-/workbox-window-6.1.1.tgz#c1d60f6a56b49235e36edc73c593fa470ffffc72"
|
||||||
integrity sha512-sjnE+nTSnrBvYx5KmpESvsTC82P3yy8h5l4Ae4Q8uLqdH29UQ3bMd8puGVVhX1JZFCmV40cvrbZ1fUj+3/TQ9g==
|
integrity sha512-ZT1enHgi6gYfm+HgRWq8nkqLFEtjOjkq3yGV/qhMmKvI39/sIdO4g2LcjqhnUjbhweedX+9KOOu3U4xasQpGcQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
workbox-core "^6.1.0"
|
workbox-core "^6.1.1"
|
||||||
|
|
||||||
wrap-ansi@^5.1.0:
|
wrap-ansi@^5.1.0:
|
||||||
version "5.1.0"
|
version "5.1.0"
|
||||||
|
Loading…
Reference in New Issue
Block a user