Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
najiu-admin-template
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
najiu-frontend
najiu-admin-template
Commits
3b8ca420
Commit
3b8ca420
authored
Mar 01, 2021
by
Vben
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: add dept management page
parent
37669d06
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
686 additions
and
192 deletions
+686
-192
system.ts
mock/demo/system.ts
+45
-5
package.json
package.json
+4
-4
systemModel.ts
src/api/demo/model/systemModel.ts
+20
-4
system.ts
src/api/demo/system.ts
+12
-3
BasicArrow.vue
src/components/Basic/src/BasicArrow.vue
+4
-2
componentMap.ts
src/components/Form/src/componentMap.ts
+2
-0
index.ts
src/components/Form/src/types/index.ts
+0
-1
BasicTable.vue
src/components/Table/src/BasicTable.vue
+2
-0
ExpandIcon.tsx
src/components/Table/src/components/ExpandIcon.tsx
+19
-0
index.less
src/components/Table/src/style/index.less
+1
-1
system.ts
src/locales/lang/en/routes/demo/system.ts
+4
-0
system.ts
src/locales/lang/zh_CN/routes/demo/system.ts
+4
-0
system.ts
src/router/menus/modules/demo/system.ts
+10
-0
system.ts
src/router/routes/modules/demo/system.ts
+20
-1
Axios.ts
src/utils/http/axios/Axios.ts
+8
-2
index.ts
src/utils/http/axios/index.ts
+2
-0
types.ts
src/utils/http/axios/types.ts
+1
-0
AccountModal.vue
src/views/demo/system/account/AccountModal.vue
+2
-1
account.data.ts
src/views/demo/system/account/account.data.ts
+2
-8
index.vue
src/views/demo/system/account/index.vue
+4
-3
DeptModal.vue
src/views/demo/system/dept/DeptModal.vue
+64
-0
dept.data.ts
src/views/demo/system/dept/dept.data.ts
+105
-0
index.vue
src/views/demo/system/dept/index.vue
+100
-0
index.vue
src/views/demo/system/password/index.vue
+43
-0
pwd.data.ts
src/views/demo/system/password/pwd.data.ts
+46
-0
yarn.lock
yarn.lock
+162
-157
No files found.
mock/demo/system.ts
View file @
3b8ca420
import
{
MockMethod
}
from
'
vite-plugin-mock
'
;
import
{
MockMethod
}
from
'
vite-plugin-mock
'
;
import
{
resultPageSuccess
}
from
'
../_util
'
;
import
{
resultPageSuccess
,
resultSuccess
}
from
'
../_util
'
;
const
l
ist
=
(()
=>
{
const
accountL
ist
=
(()
=>
{
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 = (() => {
...
@@ -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 [
...
@@ -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
[];
package.json
View file @
3b8ca420
...
@@ -26,7 +26,7 @@
...
@@ -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 @@
...
@@ -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 @@
...
@@ -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
"
,
...
...
src/api/demo/model/systemModel.ts
View file @
3b8ca420
import
{
BasicPageParams
,
BasicFetchResult
}
from
'
/@/api/model/baseModel
'
;
import
{
BasicPageParams
,
BasicFetchResult
}
from
'
/@/api/model/baseModel
'
;
export
type
Params
=
BasicPageParams
&
{
export
type
Account
Params
=
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
;
upd
ateTime
:
string
;
cre
ateTime
:
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
>
;
src/api/demo/system.ts
View file @
3b8ca420
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
});
src/components/Basic/src/BasicArrow.vue
View file @
3b8ca420
...
@@ -4,7 +4,7 @@
...
@@ -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 @@
...
@@ -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
,
...
...
src/components/Form/src/componentMap.ts
View file @
3b8ca420
...
@@ -21,6 +21,7 @@ import {
...
@@ -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);
...
@@ -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
);
...
...
src/components/Form/src/types/index.ts
View file @
3b8ca420
...
@@ -91,7 +91,6 @@ export type ComponentType =
...
@@ -91,7 +91,6 @@ export type ComponentType =
|
'
Select
'
|
'
Select
'
|
'
ApiSelect
'
|
'
ApiSelect
'
|
'
SelectOptGroup
'
|
'
SelectOptGroup
'
|
'
SelectOption
'
|
'
TreeSelect
'
|
'
TreeSelect
'
|
'
Transfer
'
|
'
Transfer
'
|
'
RadioButtonGroup
'
|
'
RadioButtonGroup
'
...
...
src/components/Table/src/BasicTable.vue
View file @
3b8ca420
...
@@ -65,6 +65,7 @@
...
@@ -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 @@
...
@@ -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
),
...
...
src/components/Table/src/components/ExpandIcon.tsx
0 → 100644
View file @
3b8ca420
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
}
/>
);
};
};
src/components/Table/src/style/index.less
View file @
3b8ca420
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
padding: 16px;
padding: 16px;
.ant-form {
.ant-form {
padding:
20px 20px 4
px 12px;
padding:
16px 16px 6
px 12px;
margin-bottom: 18px;
margin-bottom: 18px;
background: #fff;
background: #fff;
border-radius: 4px;
border-radius: 4px;
...
...
src/locales/lang/en/routes/demo/system.ts
View file @
3b8ca420
...
@@ -2,4 +2,8 @@ export default {
...
@@ -2,4 +2,8 @@ export default {
moduleName
:
'
System management
'
,
moduleName
:
'
System management
'
,
account
:
'
Account management
'
,
account
:
'
Account management
'
,
password
:
'
Change password
'
,
dept
:
'
Department management
'
,
};
};
src/locales/lang/zh_CN/routes/demo/system.ts
View file @
3b8ca420
...
@@ -2,4 +2,8 @@ export default {
...
@@ -2,4 +2,8 @@ export default {
moduleName
:
'
系统管理
'
,
moduleName
:
'
系统管理
'
,
account
:
'
账号管理
'
,
account
:
'
账号管理
'
,
password
:
'
修改密码
'
,
dept
:
'
部门管理
'
,
};
};
src/router/menus/modules/demo/system.ts
View file @
3b8ca420
...
@@ -11,6 +11,16 @@ const menu: MenuModule = {
...
@@ -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
'
),
},
],
],
},
},
};
};
...
...
src/router/routes/modules/demo/system.ts
View file @
3b8ca420
...
@@ -15,12 +15,31 @@ const system: AppRouteModule = {
...
@@ -15,12 +15,31 @@ const system: AppRouteModule = {
children
:
[
children
:
[
{
{
path
:
'
account
'
,
path
:
'
account
'
,
name
:
'
Account
'
,
name
:
'
Account
Management
'
,
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
'
),
},
],
],
};
};
...
...
src/utils/http/axios/Axios.ts
View file @
3b8ca420
...
@@ -83,9 +83,15 @@ export class VAxios {
...
@@ -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
);
}
}
...
...
src/utils/http/axios/index.ts
View file @
3b8ca420
...
@@ -202,6 +202,8 @@ function createAxios(opt?: Partial<CreateAxiosOptions>) {
...
@@ -202,6 +202,8 @@ function createAxios(opt?: Partial<CreateAxiosOptions>) {
apiUrl
:
globSetting
.
apiUrl
,
apiUrl
:
globSetting
.
apiUrl
,
// 是否加入时间戳
// 是否加入时间戳
joinTime
:
true
,
joinTime
:
true
,
// 忽略重复请求
ignoreCancelToken
:
true
,
},
},
},
},
opt
||
{}
opt
||
{}
...
...
src/utils/http/axios/types.ts
View file @
3b8ca420
...
@@ -17,6 +17,7 @@ export interface RequestOptions {
...
@@ -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
{
...
...
src/views/demo/system/account/AccountModal.vue
View file @
3b8ca420
...
@@ -24,6 +24,7 @@
...
@@ -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 @@
...
@@ -42,7 +43,7 @@
// TODO custom api
// TODO custom api
console
.
log
(
values
);
console
.
log
(
values
);
}
finally
{
}
finally
{
setModalProps
({
confirmLoading
:
tru
e
});
setModalProps
({
confirmLoading
:
fals
e
});
}
}
}
}
...
...
src/views/demo/system/account/account.data.ts
View file @
3b8ca420
...
@@ -2,11 +2,6 @@ import { BasicColumn } from '/@/components/Table';
...
@@ -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[] = [
...
@@ -23,8 +18,8 @@ export const columns: BasicColumn[] = [
width
:
200
,
width
:
200
,
},
},
{
{
title
:
'
更新
时间
'
,
title
:
'
创建
时间
'
,
dataIndex
:
'
upd
ateTime
'
,
dataIndex
:
'
cre
ateTime
'
,
width
:
180
,
width
:
180
,
},
},
{
{
...
@@ -35,7 +30,6 @@ export const columns: BasicColumn[] = [
...
@@ -35,7 +30,6 @@ export const columns: BasicColumn[] = [
{
{
title
:
'
备注
'
,
title
:
'
备注
'
,
dataIndex
:
'
remark
'
,
dataIndex
:
'
remark
'
,
width
:
200
,
},
},
];
];
...
...
src/views/demo/system/account/index.vue
View file @
3b8ca420
...
@@ -8,11 +8,11 @@
...
@@ -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 @@
...
@@ -55,8 +55,9 @@
},
},
useSearchForm
:
true
,
useSearchForm
:
true
,
showTableSetting
:
true
,
showTableSetting
:
true
,
bordered
:
true
,
actionColumn
:
{
actionColumn
:
{
width
:
16
0
,
width
:
8
0
,
title
:
'
操作
'
,
title
:
'
操作
'
,
dataIndex
:
'
action
'
,
dataIndex
:
'
action
'
,
slots
:
{
customRender
:
'
action
'
},
slots
:
{
customRender
:
'
action
'
},
...
...
src/views/demo/system/dept/DeptModal.vue
0 → 100644
View file @
3b8ca420
<
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
>
src/views/demo/system/dept/dept.data.ts
0 → 100644
View file @
3b8ca420
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
'
,
},
];
src/views/demo/system/dept/index.vue
0 → 100644
View file @
3b8ca420
<
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
>
src/views/demo/system/password/index.vue
0 → 100644
View file @
3b8ca420
<
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
>
src/views/demo/system/password/pwd.data.ts
0 → 100644
View file @
3b8ca420
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
();
},
},
];
},
},
];
yarn.lock
View file @
3b8ca420
...
@@ -1702,18 +1702,18 @@
...
@@ -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:
...
@@ -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:
...
@@ -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:
...
@@ -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+wodPWKkJTdQPMrKZCbJgtyWsel6UBekjZw8AahUTtkqvtLXcMnRXeZ5YIcjviLXw3Cmq7hVlvB7dFy
w==
integrity sha512-
QzQZPVlpII0RJCDecsi28gjJFa6DXb/kAn3IHE+XHTw382wAA89jF40DcP/t+Yn/usrHyDlmseBppvr5Jxy7q
w==
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:
...
@@ -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-
lilaRYeDXcAOj8DuRnN9IxUyEMVbYg9rK7yVNkPB5V4hCvxIUxpMeiv9K2h77CE0HzjCnk1Br0oWe1IghXngD
Q==
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:
...
@@ -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:
...
@@ -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:
...
@@ -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+gGPH6JLKNjZeecDmUpXFhzFP
A==
integrity sha512-
w1b3j7snz4pQ8xp0i5Nci40qlglqdk70pbORBtMfl9uikI1qGjYfKq6oYeResCXYxb5mUYS245HsUclb6RFVJ
A==
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:
...
@@ -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+eixS8gc
A==
integrity sha512-
jasNxelRrqCbzIAIMjHk7Ej9BOViBTQlvRJzv3Y0nYuWvxK0CDPQJSraGmTbu3LGiTBbrWEmxe1hVqvLyFKR9
A==
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#5fbe9edfbcdb97153ed5260575a54e53b0f85a2
d"
resolved "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.1.
1.tgz#4e6d30e91cfc3855ff16cfa3df458e0487da2b4
d"
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-
r8YLtMtQnvfkK1htnfrrX1CxKHglZJiVlqnct9rYIU17n2LCalHdI0zQrPqzYdLLHZxTX25UpBsdib0cAATy0
A==
integrity sha512-
GuzJXBQM+YaFxQwFvcRarAScUoRDoaWXKxxkLWHnCJf0H//MQ8zR9Ay1mv21N6iRoSH11S0u/4yxSeembG/fL
A==
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#2dbc78ddc863b47aa4fe399d9385d3ed8567e88
1"
resolved "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.1.
1.tgz#0f204f070861eb1afccddeca4a5a8ba069596bd
1"
integrity sha512-
V80OIfoIXaDkjWIGFSae5sBJuaG2r4bXk6HKpntBYaVQ72LD1CgkXRmZKmLJQ9ltHCx9Vmq/7+q1OF5mTKb8Q
w==
integrity sha512-
EMhY+Y2O7+XVy8MFRmiDwKezAXLzbgjQOJDbxWaGKtwNPbwOF6gGZjCvmnNAU1K+MAvvUNsAFR6AAUKMSfOya
w==
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"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment