Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
T
TrainSys
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
苏州培训方案
TrainSys
提交
90a10cf9
提交
90a10cf9
编写于
11月 02, 2022
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chitanda 发布系统代码 [TrainSys,网页端]
上级
5207173f
变更
49
隐藏空白字符变更
内嵌
并排
正在显示
49 个修改的文件
包含
3709 行增加
和
958 行删除
+3709
-958
package.json
app_Web/package.json
+16
-14
pnpm-lock.yaml
app_Web/pnpm-lock.yaml
+524
-689
app-register.ts
app_Web/src/app-register.ts
+33
-30
app-select-tree.tsx
...src/components/common/app-select-tree/app-select-tree.tsx
+87
-0
index.ts
app_Web/src/components/common/index.ts
+1
-0
ibiz-checkbox.tsx
...nts/editor/check-box-list/ibiz-checkbox/ibiz-checkbox.tsx
+154
-0
ibiz-grid-checkbox.tsx
.../check-box-list/ibiz-grid-checkbox/ibiz-grid-checkbox.tsx
+49
-0
index.ts
app_Web/src/components/editor/check-box-list/index.ts
+2
-0
ibiz-mpicker.tsx
...mponents/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx
+288
-0
ibiz-picker-dropdown.tsx
...data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.tsx
+218
-0
ibiz-picker-link.tsx
.../editor/data-picker/ibiz-picker-link/ibiz-picker-link.tsx
+66
-0
ibiz-picker.tsx
...components/editor/data-picker/ibiz-picker/ibiz-picker.tsx
+227
-0
index.ts
app_Web/src/components/editor/data-picker/index.ts
+4
-0
ibiz-date-picker.tsx
.../editor/date-picker/ibiz-date-picker/ibiz-date-picker.tsx
+123
-0
index.ts
app_Web/src/components/editor/date-picker/index.ts
+1
-0
ibiz-dropdown-list.tsx
...r/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.tsx
+101
-0
index.ts
app_Web/src/components/editor/dropdown-list/index.ts
+1
-0
index.ts
app_Web/src/components/editor/index.ts
+9
-0
not-supported-editor.tsx
...ents/editor/not-supported-editor/not-supported-editor.tsx
+2
-1
ibiz-radio.tsx
...onents/editor/radio-button-list/ibiz-radio/ibiz-radio.tsx
+79
-0
index.ts
app_Web/src/components/editor/radio-button-list/index.ts
+1
-0
ibiz-span.tsx
app_Web/src/components/editor/span/ibiz-span/ibiz-span.tsx
+58
-0
index.ts
app_Web/src/components/editor/span/index.ts
+1
-0
ibiz-grid-input.tsx
...nents/editor/text-box/ibiz-grid-input/ibiz-grid-input.tsx
+48
-0
ibiz-input-number.tsx
...s/editor/text-box/ibiz-input-number/ibiz-input-number.tsx
+63
-0
ibiz-input.tsx
.../src/components/editor/text-box/ibiz-input/ibiz-input.tsx
+94
-0
index.ts
app_Web/src/components/editor/text-box/index.ts
+3
-0
ibiz-file-upload.tsx
...nents/editor/upload/ibiz-file-upload/ibiz-file-upload.tsx
+338
-0
ibiz-grid-file-upload.tsx
...or/upload/ibiz-grid-file-upload/ibiz-grid-file-upload.tsx
+425
-0
ibiz-image-upload.tsx
...nts/editor/upload/ibiz-image-upload/ibiz-image-upload.tsx
+391
-0
index.ts
app_Web/src/components/editor/upload/index.ts
+3
-0
form-item.tsx
...c/components/widgets/form-control/form-item/form-item.tsx
+1
-1
grid-column.tsx
...mponents/widgets/grid-control/grid-column/grid-column.tsx
+5
-9
grid-edit-item.tsx
...ts/widgets/grid-control/grid-edit-item/grid-edit-item.tsx
+16
-10
grid-field-column.tsx
...gets/grid-control/grid-field-column/grid-field-column.tsx
+3
-3
main.ts
app_Web/src/main.ts
+2
-0
index.ts
app_Web/src/plugin/index.ts
+0
-1
plugin-factory.ts
app_Web/src/plugin/plugin-factory/plugin-factory.ts
+92
-49
check-box-list-provider.ts
app_Web/src/provider/editor/check-box-list-provider.ts
+2
-2
data-picker-provider.ts
app_Web/src/provider/editor/data-picker-provider.ts
+3
-3
date-picker-provider.ts
app_Web/src/provider/editor/date-picker-provider.ts
+1
-1
drop-down-list-provider.ts
app_Web/src/provider/editor/drop-down-list-provider.ts
+1
-1
file-uploader-provider.ts
app_Web/src/provider/editor/file-uploader-provider.ts
+4
-4
radio-button-list-provider.ts
app_Web/src/provider/editor/radio-button-list-provider.ts
+2
-2
span-provider.ts
app_Web/src/provider/editor/span-provider.ts
+1
-1
text-box-provider.ts
app_Web/src/provider/editor/text-box-provider.ts
+4
-4
login-view.tsx
app_Web/src/views/login-view/login-view.tsx
+11
-1
vite.config.ts
app_Web/vite.config.ts
+4
-1
yarn.lock
app_Web/yarn.lock
+147
-131
未找到文件。
app_Web/package.json
浏览文件 @
90a10cf9
...
...
@@ -12,16 +12,17 @@
},
"dependencies"
:
{
"@ibiz-template/command"
:
"^0.0.1-alpha.37"
,
"@ibiz-template/controller"
:
"^0.0.1-alpha.
38
"
,
"@ibiz-template/core"
:
"^0.0.1-alpha.
38
"
,
"@ibiz-template/model"
:
"^0.0.1-alpha.3
7
"
,
"@ibiz-template/runtime"
:
"^0.0.1-alpha.
38
"
,
"@ibiz-template/service"
:
"^0.0.1-alpha.
38
"
,
"@ibiz-template/theme"
:
"^0.0.1-alpha.
37
"
,
"@ibiz-template/vue-util"
:
"^0.0.1-alpha.
38
"
,
"@ibiz-template/controller"
:
"^0.0.1-alpha.
40
"
,
"@ibiz-template/core"
:
"^0.0.1-alpha.
40
"
,
"@ibiz-template/model"
:
"^0.0.1-alpha.3
9
"
,
"@ibiz-template/runtime"
:
"^0.0.1-alpha.
40
"
,
"@ibiz-template/service"
:
"^0.0.1-alpha.
40
"
,
"@ibiz-template/theme"
:
"^0.0.1-alpha.
40
"
,
"@ibiz-template/vue-util"
:
"^0.0.1-alpha.
40
"
,
"@ibiz/dynamic-model-api"
:
"^2.1.5"
,
"dayjs"
:
"^1.11.6"
,
"lodash-es"
:
"^4.17.21"
,
"path-browserify"
:
"^1.0.1"
,
"pinia"
:
"^2.0.23"
,
"qs"
:
"^6.11.0"
,
"qx-util"
:
"^0.4.4"
,
...
...
@@ -31,15 +32,16 @@
"vue-router"
:
"^3.6.5"
},
"devDependencies"
:
{
"@commitlint/cli"
:
"^17.
1.2
"
,
"@commitlint/config-conventional"
:
"^17.
1
.0"
,
"@commitlint/cli"
:
"^17.
2.0
"
,
"@commitlint/config-conventional"
:
"^17.
2
.0"
,
"@types/lodash-es"
:
"^4.17.6"
,
"@types/node"
:
"^18.11.8"
,
"@types/node"
:
"^18.11.9"
,
"@types/path-browserify"
:
"^1.0.0"
,
"@types/qs"
:
"^6.9.7"
,
"@types/ramda"
:
"^0.28.18"
,
"@types/systemjs"
:
"^6.1.1"
,
"@typescript-eslint/eslint-plugin"
:
"^5.4
1
.0"
,
"@typescript-eslint/parser"
:
"^5.4
1
.0"
,
"@typescript-eslint/eslint-plugin"
:
"^5.4
2
.0"
,
"@typescript-eslint/parser"
:
"^5.4
2
.0"
,
"@vitejs/plugin-legacy"
:
"^2.3.0"
,
"@vitejs/plugin-vue2"
:
"^2.0.0"
,
"@vitejs/plugin-vue2-jsx"
:
"^1.0.3"
,
...
...
@@ -49,7 +51,7 @@
"eslint-config-prettier"
:
"^8.5.0"
,
"eslint-plugin-import"
:
"^2.26.0"
,
"eslint-plugin-prettier"
:
"^4.2.1"
,
"eslint-plugin-vue"
:
"^9.
6
.0"
,
"eslint-plugin-vue"
:
"^9.
7
.0"
,
"husky"
:
"^8.0.1"
,
"lint-staged"
:
"^13.0.3"
,
"postcss"
:
"^8.4.18"
,
...
...
@@ -65,7 +67,7 @@
"stylelint-scss"
:
"^4.3.0"
,
"terser"
:
"^5.15.1"
,
"typescript"
:
"^4.8.4"
,
"vite"
:
"^3.2.
1
"
,
"vite"
:
"^3.2.
2
"
,
"vite-plugin-eslint"
:
"^1.8.1"
,
"vue-eslint-parser"
:
"^9.1.0"
,
"vue-tsc"
:
"^1.0.9"
...
...
app_Web/pnpm-lock.yaml
浏览文件 @
90a10cf9
lockfileVersion
:
5.4
specifiers
:
'
@commitlint/cli'
:
^17.
1.2
'
@commitlint/config-conventional'
:
^17.
1
.0
'
@commitlint/cli'
:
^17.
2.0
'
@commitlint/config-conventional'
:
^17.
2
.0
'
@ibiz-template/command'
:
^0.0.1-alpha.37
'
@ibiz-template/controller'
:
^0.0.1-alpha.
38
'
@ibiz-template/core'
:
^0.0.1-alpha.
38
'
@ibiz-template/model'
:
^0.0.1-alpha.3
7
'
@ibiz-template/runtime'
:
^0.0.1-alpha.
38
'
@ibiz-template/service'
:
^0.0.1-alpha.
38
'
@ibiz-template/theme'
:
^0.0.1-alpha.
37
'
@ibiz-template/vue-util'
:
^0.0.1-alpha.
38
'
@ibiz-template/controller'
:
^0.0.1-alpha.
40
'
@ibiz-template/core'
:
^0.0.1-alpha.
40
'
@ibiz-template/model'
:
^0.0.1-alpha.3
9
'
@ibiz-template/runtime'
:
^0.0.1-alpha.
40
'
@ibiz-template/service'
:
^0.0.1-alpha.
40
'
@ibiz-template/theme'
:
^0.0.1-alpha.
40
'
@ibiz-template/vue-util'
:
^0.0.1-alpha.
40
'
@ibiz/dynamic-model-api'
:
^2.1.5
'
@types/lodash-es'
:
^4.17.6
'
@types/node'
:
^18.11.8
'
@types/node'
:
^18.11.9
'
@types/path-browserify'
:
^1.0.0
'
@types/qs'
:
^6.9.7
'
@types/ramda'
:
^0.28.18
'
@types/systemjs'
:
^6.1.1
'
@typescript-eslint/eslint-plugin'
:
^5.4
1
.0
'
@typescript-eslint/parser'
:
^5.4
1
.0
'
@typescript-eslint/eslint-plugin'
:
^5.4
2
.0
'
@typescript-eslint/parser'
:
^5.4
2
.0
'
@vitejs/plugin-legacy'
:
^2.3.0
'
@vitejs/plugin-vue2'
:
^2.0.0
'
@vitejs/plugin-vue2-jsx'
:
^1.0.3
...
...
@@ -29,10 +30,11 @@ specifiers:
eslint-config-prettier
:
^8.5.0
eslint-plugin-import
:
^2.26.0
eslint-plugin-prettier
:
^4.2.1
eslint-plugin-vue
:
^9.
6
.0
eslint-plugin-vue
:
^9.
7
.0
husky
:
^8.0.1
lint-staged
:
^13.0.3
lodash-es
:
^4.17.21
path-browserify
:
^1.0.1
pinia
:
^2.0.23
postcss
:
^8.4.18
postcss-scss
:
^4.0.5
...
...
@@ -51,7 +53,7 @@ specifiers:
terser
:
^5.15.1
typescript
:
^4.8.4
view-design
:
^4.7.0
vite
:
^3.2.
1
vite
:
^3.2.
2
vite-plugin-eslint
:
^1.8.1
vue
:
^2.7.13
vue-eslint-parser
:
^9.1.0
...
...
@@ -60,16 +62,17 @@ specifiers:
dependencies
:
'
@ibiz-template/command'
:
0.0.1-alpha.37
'
@ibiz-template/controller'
:
registry.npmmirror.com/@ibiz-template/controller/0.0.1-alpha.38_yqoflx6tyrgc3xn2pq7rnnu37y
'
@ibiz-template/core'
:
registry.npmmirror.com/@ibiz-template/core/0.0.1-alpha.38
_qzytosuu5eg3bvoa74ldx6evva
'
@ibiz-template/model'
:
0.0.1-alpha.3
7
_yslesr4iih24kokbsmhl36awki
'
@ibiz-template/runtime'
:
registry.npmmirror.com/@ibiz-template/runtime/0.0.1-alpha.38_5ooxsv6w6zvwkcvqaz3yejcoce
'
@ibiz-template/service'
:
registry.npmmirror.com/@ibiz-template/service/0.0.1-alpha.38_dy5ruincxm3jghhrylh5xzurr4
'
@ibiz-template/theme'
:
0.0.1-alpha.
37
'
@ibiz-template/vue-util'
:
registry.npmmirror.com/@ibiz-template/vue-util/0.0.1-alpha.38_xulrwzb6nqtsdm2k5bvzegenbu
'
@ibiz-template/controller'
:
0.0.1-alpha.40_ih5ecz32a4ibmstgfcjyi3tpam
'
@ibiz-template/core'
:
0.0.1-alpha.40
_qzytosuu5eg3bvoa74ldx6evva
'
@ibiz-template/model'
:
0.0.1-alpha.3
9
_yslesr4iih24kokbsmhl36awki
'
@ibiz-template/runtime'
:
0.0.1-alpha.40_5kdc272ska6i73jbiqdmud7zjq
'
@ibiz-template/service'
:
0.0.1-alpha.40_q2gs43s4muf6wdt2kzef2bkl5u
'
@ibiz-template/theme'
:
0.0.1-alpha.
40
'
@ibiz-template/vue-util'
:
0.0.1-alpha.40_ugp54vtapc454oxcr74b5b6rda
'
@ibiz/dynamic-model-api'
:
2.1.5_qx-util@0.4.4
dayjs
:
1.11.6
lodash-es
:
4.17.21
path-browserify
:
1.0.1
pinia
:
2.0.23_xjcbg5znturqejtkpd33hx726m
qs
:
6.11.0
qx-util
:
0.4.4
...
...
@@ -79,25 +82,26 @@ dependencies:
vue-router
:
3.6.5_vue@2.7.13
devDependencies
:
'
@commitlint/cli'
:
17.
1.2
'
@commitlint/config-conventional'
:
17.
1
.0
'
@commitlint/cli'
:
17.
2.0
'
@commitlint/config-conventional'
:
17.
2
.0
'
@types/lodash-es'
:
4.17.6
'
@types/node'
:
18.11.8
'
@types/node'
:
18.11.9
'
@types/path-browserify'
:
1.0.0
'
@types/qs'
:
6.9.7
'
@types/ramda'
:
0.28.18
'
@types/systemjs'
:
6.1.1
'
@typescript-eslint/eslint-plugin'
:
5.4
1.0_huremdigmcnkianavgfk3x6io
u
'
@typescript-eslint/parser'
:
5.4
1
.0_wyqvi574yv7oiwfeinomdzmc3m
'
@vitejs/plugin-legacy'
:
2.3.0_terser@5.15.1+vite@3.2.
1
'
@vitejs/plugin-vue2'
:
2.0.0_vite@3.2.
1
+vue@2.7.13
'
@vitejs/plugin-vue2-jsx'
:
1.0.3_vite@3.2.
1
+vue@2.7.13
'
@typescript-eslint/eslint-plugin'
:
5.4
2.0_6xw5wg2354iw4zujk2f3vyfrz
u
'
@typescript-eslint/parser'
:
5.4
2
.0_wyqvi574yv7oiwfeinomdzmc3m
'
@vitejs/plugin-legacy'
:
2.3.0_terser@5.15.1+vite@3.2.
2
'
@vitejs/plugin-vue2'
:
2.0.0_vite@3.2.
2
+vue@2.7.13
'
@vitejs/plugin-vue2-jsx'
:
1.0.3_vite@3.2.
2
+vue@2.7.13
'
@vue/babel-helper-vue-jsx-merge-props'
:
1.4.0
eslint
:
8.26.0
eslint-config-airbnb-base
:
15.0.0_mynvxvmq5qtyojffiqgev4x7mm
eslint-config-prettier
:
8.5.0_eslint@8.26.0
eslint-plugin-import
:
2.26.0_
c2flhriocdzler6lrwbyxxyoca
eslint-plugin-import
:
2.26.0_
5aea5dp4n23mfv4y2mmjxole3e
eslint-plugin-prettier
:
4.2.1_aniwkeyvlpmwkidetuytnokvcm
eslint-plugin-vue
:
9.
6
.0_eslint@8.26.0
eslint-plugin-vue
:
9.
7
.0_eslint@8.26.0
husky
:
8.0.1
lint-staged
:
13.0.3
postcss
:
8.4.18
...
...
@@ -113,8 +117,8 @@ devDependencies:
stylelint-scss
:
4.3.0_stylelint@14.14.0
terser
:
5.15.1
typescript
:
4.8.4
vite
:
3.2.
1
_sass@1.55.0+terser@5.15.1
vite-plugin-eslint
:
1.8.1_eslint@8.26.0+vite@3.2.
1
vite
:
3.2.
2
_sass@1.55.0+terser@5.15.1
vite-plugin-eslint
:
1.8.1_eslint@8.26.0+vite@3.2.
2
vue-eslint-parser
:
9.1.0_eslint@8.26.0
vue-tsc
:
1.0.9_typescript@4.8.4
...
...
@@ -422,15 +426,15 @@ packages:
'
@babel/helper-validator-identifier'
:
7.18.6
to-fast-properties
:
2.0.0
/@commitlint/cli/17.
1.2
:
resolution
:
{
integrity
:
sha512-
h/4Hlka3bvCLbnxf0Er2ri5A44VMlbMSkdTRp8Adv2tRiklSTRIoPGs7OEXDv3EoDs2AAzILiPookgM4Gi7LOw
==
}
/@commitlint/cli/17.
2.0
:
resolution
:
{
integrity
:
sha512-
kd1zykcrjIKyDRftWW1E1TJqkgzeosEkv1BiYPCdzkb/g/3BrfgwZUHR1vg+HO3qKUb/0dN+jNXArhGGAHpmaQ
==
}
engines
:
{
node
:
'
>=v14'
}
hasBin
:
true
dependencies
:
'
@commitlint/format'
:
17.0.0
'
@commitlint/lint'
:
17.
1
.0
'
@commitlint/load'
:
17.
1.2
'
@commitlint/read'
:
17.
1
.0
'
@commitlint/lint'
:
17.
2
.0
'
@commitlint/load'
:
17.
2.0
'
@commitlint/read'
:
17.
2
.0
'
@commitlint/types'
:
17.0.0
execa
:
5.1.1
lodash
:
4.17.21
...
...
@@ -442,8 +446,8 @@ packages:
-
'
@swc/wasm'
dev
:
true
/@commitlint/config-conventional/17.
1
.0
:
resolution
:
{
integrity
:
sha512-
WU2p0c9/jLi8k2q2YrDV96Y8XVswQOceIQ/wyJvQxawJSCasLdRB3kUIYdNjOCJsxkpoUlV/b90ZPxp1MYZDiA
==
}
/@commitlint/config-conventional/17.
2
.0
:
resolution
:
{
integrity
:
sha512-
g5hQqRa80f++SYS233dbDSg16YdyounMTAhVcmqtInNeY/GF3aA4st9SVtJxpeGrGmueMrU4L+BBb+6Vs5wrcg
==
}
engines
:
{
node
:
'
>=v14'
}
dependencies
:
conventional-changelog-conventionalcommits
:
5.0.0
...
...
@@ -478,26 +482,26 @@ packages:
chalk
:
4.1.2
dev
:
true
/@commitlint/is-ignored/17.
1
.0
:
resolution
:
{
integrity
:
sha512-
JITWKDMHhIh8IpdIbcbuH9rEQJty1ZWelgjleTFrVRAcEwN/sPzk1aVUXRIZNXMJWbZj8vtXRJnFihrml8uECQ
==
}
/@commitlint/is-ignored/17.
2
.0
:
resolution
:
{
integrity
:
sha512-
rgUPUQraHxoMLxiE8GK430HA7/R2vXyLcOT4fQooNrZq9ERutNrP6dw3gdKLkq22Nede3+gEHQYUzL4Wu75ndg
==
}
engines
:
{
node
:
'
>=v14'
}
dependencies
:
'
@commitlint/types'
:
17.0.0
semver
:
7.3.7
dev
:
true
/@commitlint/lint/17.
1
.0
:
resolution
:
{
integrity
:
sha512-
ltpqM2ogt/+SDhUaScFo0MdscncEF96lvQTPMM/VTTWlw7sTGLLWkOOppsee2MN/uLNNWjQ7kqkd4h6JqoM9AQ
==
}
/@commitlint/lint/17.
2
.0
:
resolution
:
{
integrity
:
sha512-
N2oLn4Dj672wKH5qJ4LGO+73UkYXGHO+NTVUusGw83SjEv7GjpqPGKU6KALW2kFQ/GsDefSvOjpSi3CzWHQBDg
==
}
engines
:
{
node
:
'
>=v14'
}
dependencies
:
'
@commitlint/is-ignored'
:
17.
1
.0
'
@commitlint/parse'
:
17.
0
.0
'
@commitlint/rules'
:
17.
0
.0
'
@commitlint/is-ignored'
:
17.
2
.0
'
@commitlint/parse'
:
17.
2
.0
'
@commitlint/rules'
:
17.
2
.0
'
@commitlint/types'
:
17.0.0
dev
:
true
/@commitlint/load/17.
1.2
:
resolution
:
{
integrity
:
sha512-
sk2p/jFYAWLChIfOIp/MGSIn/WzZ0vkc3afw+l4X8hGEYkvDe4gQUUAVxjl/6xMRn0HgnSLMZ04xXh5pkTsmg
g==
}
/@commitlint/load/17.
2.0
:
resolution
:
{
integrity
:
sha512-
HDD57qSqNrk399R4TIjw31AWBG8dBjNj1MrDKZKmC/wvimtnIFlqzcu1+sxfXIOHj/+M6tcMWDtvknGUd7SU+
g==
}
engines
:
{
node
:
'
>=v14'
}
dependencies
:
'
@commitlint/config-validator'
:
17.1.0
...
...
@@ -517,13 +521,13 @@ packages:
-
'
@swc/wasm'
dev
:
true
/@commitlint/message/17.
0
.0
:
resolution
:
{
integrity
:
sha512-
LpcwYtN+lBlfZijHUdVr8aNFTVpHjuHI52BnfoV01TF7iSLnia0jttzpLkrLmI8HNQz6Vhr9UrxDWtKZiMGsBw
==
}
/@commitlint/message/17.
2
.0
:
resolution
:
{
integrity
:
sha512-
/4l2KFKxBOuoEn1YAuuNNlAU05Zt7sNsC9H0mPdPm3chOrT4rcX0pOqrQcLtdMrMkJz0gC7b3SF80q2+LtdL9Q
==
}
engines
:
{
node
:
'
>=v14'
}
dev
:
true
/@commitlint/parse/17.
0
.0
:
resolution
:
{
integrity
:
sha512-
cKcpfTIQYDG1ywTIr5AG0RAiLBr1gudqEsmAGCTtj8ffDChbBRxm6xXs2nv7GvmJN7msOt7vOKleLvcMmRa1+A
==
}
/@commitlint/parse/17.
2
.0
:
resolution
:
{
integrity
:
sha512-
vLzLznK9Y21zQ6F9hf8D6kcIJRb2haAK5T/Vt1uW2CbHYOIfNsR/hJs0XnF/J9ctM20Tfsqv4zBitbYvVw7F6Q
==
}
engines
:
{
node
:
'
>=v14'
}
dependencies
:
'
@commitlint/types'
:
17.0.0
...
...
@@ -531,8 +535,8 @@ packages:
conventional-commits-parser
:
3.2.4
dev
:
true
/@commitlint/read/17.
1
.0
:
resolution
:
{
integrity
:
sha512-
73BoFNBA/3Ozo2JQvGsE0J8SdrJAWGfZQRSHqvKaqgmY042Su4gXQLqvAzgr55S9DI1l9TiU/5WDuh8IE86d/g
==
}
/@commitlint/read/17.
2
.0
:
resolution
:
{
integrity
:
sha512-
bbblBhrHkjxra3ptJNm0abxu7yeAaxumQ8ZtD6GIVqzURCETCP7Dm0tlVvGRDyXBuqX6lIJxh3W7oyKqllDsHQ
==
}
engines
:
{
node
:
'
>=v14'
}
dependencies
:
'
@commitlint/top-level'
:
17.0.0
...
...
@@ -554,12 +558,12 @@ packages:
resolve-global
:
1.0.0
dev
:
true
/@commitlint/rules/17.
0
.0
:
resolution
:
{
integrity
:
sha512-
45nIy3dERKXWpnwX9HeBzK5SepHwlDxdGBfmedXhL30fmFCkJOdxHyOJsh0+B0RaVsLGT01NELpfzJUmtpDwd
Q==
}
/@commitlint/rules/17.
2
.0
:
resolution
:
{
integrity
:
sha512-
1YynwD4Eh7HXZNpqG8mtUlL2pSX2jBy61EejYJv4ooZPcg50Ak7LPOyD3a9UZnsE76AXWFBz+yo9Hv4MIpAa0
Q==
}
engines
:
{
node
:
'
>=v14'
}
dependencies
:
'
@commitlint/ensure'
:
17.0.0
'
@commitlint/message'
:
17.
0
.0
'
@commitlint/message'
:
17.
2
.0
'
@commitlint/to-lines'
:
17.0.0
'
@commitlint/types'
:
17.0.0
execa
:
5.1.1
...
...
@@ -602,6 +606,24 @@ packages:
postcss-selector-parser
:
6.0.10
dev
:
true
/@esbuild/android-arm/0.15.10
:
resolution
:
{
integrity
:
sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
arm
]
os
:
[
android
]
requiresBuild
:
true
dev
:
true
optional
:
true
/@esbuild/linux-loong64/0.15.10
:
resolution
:
{
integrity
:
sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
loong64
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
/@eslint/eslintrc/1.3.3
:
resolution
:
{
integrity
:
sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==
}
engines
:
{
node
:
^12.22.0 || ^14.17.0 || >=16.0.0
}
...
...
@@ -645,8 +667,44 @@ packages:
qx-util
:
0.4.4
dev
:
false
/@ibiz-template/model/0.0.1-alpha.37_yslesr4iih24kokbsmhl36awki
:
resolution
:
{
integrity
:
sha512-zWYTSd3/cHricqgYkrIz9HhlJgpFGNsr9alKvaEtxPx8dnIhevAf16VpbMtUZjJ/t6XclmXHF7e+5ri3i8d8aw==
}
/@ibiz-template/controller/0.0.1-alpha.40_ih5ecz32a4ibmstgfcjyi3tpam
:
resolution
:
{
integrity
:
sha512-s9xXqRStODQBPvam7UVKx/U7oqj1yM/qHhZH+K0RMMLVEn/IoCp3ir1asjbgPSqBWxwJ4JM5ZIfvWm4dyyJxkg==
}
peerDependencies
:
'
@ibiz-template/core'
:
^0.0.1-alpha.2
'
@ibiz-template/model'
:
^0.0.1-alpha.2
'
@ibiz-template/runtime'
:
^0.0.1-alpha.2
'
@ibiz-template/service'
:
^0.0.1-alpha.2
lodash-es
:
^4.17.21
qx-util
:
^0.4.4
dependencies
:
'
@ibiz-template/core'
:
0.0.1-alpha.40_qzytosuu5eg3bvoa74ldx6evva
'
@ibiz-template/model'
:
0.0.1-alpha.39_yslesr4iih24kokbsmhl36awki
'
@ibiz-template/runtime'
:
0.0.1-alpha.40_5kdc272ska6i73jbiqdmud7zjq
'
@ibiz-template/service'
:
0.0.1-alpha.40_q2gs43s4muf6wdt2kzef2bkl5u
async-validator
:
4.2.5
dayjs
:
1.11.6
lodash-es
:
4.17.21
qx-util
:
0.4.4
dev
:
false
/@ibiz-template/core/0.0.1-alpha.40_qzytosuu5eg3bvoa74ldx6evva
:
resolution
:
{
integrity
:
sha512-8O411O3StgmbohRkOhh1GkdSln3xH4CEIqBqc/sVtPw/1YuTP/LaLr8g/qfCiuq8KriVOk1IDkKMZrPrVqG7Qg==
}
peerDependencies
:
lodash-es
:
^4.17.21
qx-util
:
^0.4.4
dependencies
:
axios
:
1.1.3
lodash-es
:
4.17.21
loglevel
:
1.8.0
pluralize
:
8.0.0
qs
:
6.11.0
qx-util
:
0.4.4
transitivePeerDependencies
:
-
debug
dev
:
false
/@ibiz-template/model/0.0.1-alpha.39_yslesr4iih24kokbsmhl36awki
:
resolution
:
{
integrity
:
sha512-HPpCR8W6enEjWxGdYdDKJJdirO4Qx5dIpYNfZVrmhHX7dd+Ov9OnpunnIXeTLk8RFzFfQEf9ZuOTziU7QX5dfg==
}
peerDependencies
:
'
@ibiz/dynamic-model-api'
:
^2.1.5
lodash-es
:
^4.17.21
...
...
@@ -658,8 +716,59 @@ packages:
qx-util
:
0.4.4
dev
:
false
/@ibiz-template/theme/0.0.1-alpha.37
:
resolution
:
{
integrity
:
sha512-pEYPg1SRsVpJUeg9yf8Lwq8VlpcCzCGbeO8yorBF64HwYk3KrkW5XpQOsboSsN6MFL5/buHeSq05diKqgZNpWw==
}
/@ibiz-template/runtime/0.0.1-alpha.40_5kdc272ska6i73jbiqdmud7zjq
:
resolution
:
{
integrity
:
sha512-QnGZ9A32caNbPUyhHP3+rNJBM6HdxKxJh4FgNvtlpuiNga9Cw8vG0OHmM9LkMZFs4u6Gu79fationwJIBducqA==
}
peerDependencies
:
'
@ibiz-template/core'
:
^0.0.1-alpha.2
'
@ibiz-template/model'
:
^0.0.1-alpha.2
'
@ibiz-template/service'
:
^0.0.1-alpha.2
qx-util
:
^0.4.4
dependencies
:
'
@ibiz-template/command'
:
0.0.1-alpha.37
'
@ibiz-template/core'
:
0.0.1-alpha.40_qzytosuu5eg3bvoa74ldx6evva
'
@ibiz-template/model'
:
0.0.1-alpha.39_yslesr4iih24kokbsmhl36awki
'
@ibiz-template/service'
:
0.0.1-alpha.40_q2gs43s4muf6wdt2kzef2bkl5u
qx-util
:
0.4.4
dev
:
false
/@ibiz-template/service/0.0.1-alpha.40_q2gs43s4muf6wdt2kzef2bkl5u
:
resolution
:
{
integrity
:
sha512-DAcha7xUwxmpdC0fuL4InGlDAy2L9sABmoP3n5er8SXMzfGRKxlCt6cOtwwC5+P/4igCb/Uqv80Is8XWuqNDbg==
}
peerDependencies
:
'
@ibiz-template/core'
:
^0.0.1-alpha.2
'
@ibiz-template/model'
:
^0.0.1-alpha.2
qx-util
:
^0.4.4
ramda
:
^0.28.0
dependencies
:
'
@ibiz-template/core'
:
0.0.1-alpha.40_qzytosuu5eg3bvoa74ldx6evva
'
@ibiz-template/model'
:
0.0.1-alpha.39_yslesr4iih24kokbsmhl36awki
qx-util
:
0.4.4
ramda
:
0.28.0
dev
:
false
/@ibiz-template/theme/0.0.1-alpha.40
:
resolution
:
{
integrity
:
sha512-e3R5XAhG23QgwZheW92vzZGf+CklnvE18UG+NJ2XsIORWVJfwxA3ix89/oFmA0sXUVX7+iI4SuhubhvbWu787A==
}
dev
:
false
/@ibiz-template/vue-util/0.0.1-alpha.40_ugp54vtapc454oxcr74b5b6rda
:
resolution
:
{
integrity
:
sha512-dSLVzVA0b3bHe2Y4eOvcCCauCawYE0L2PTimgeYieVK36KGSk5wbA75JLaDJJyXhNYU3tbtK3TV9fS0EvU9upw==
}
peerDependencies
:
'
@ibiz-template/controller'
:
'
>=0.0.1-alpha.2'
'
@ibiz-template/core'
:
'
>=0.0.1-alpha.2'
'
@ibiz-template/model'
:
'
>=0.0.1-alpha.2'
qs
:
^6.11.0
qx-util
:
^0.4.4
ramda
:
^0.28.0
vue
:
^2.7.13
vue-router
:
^3.6.5
dependencies
:
'
@ibiz-template/controller'
:
0.0.1-alpha.40_ih5ecz32a4ibmstgfcjyi3tpam
'
@ibiz-template/core'
:
0.0.1-alpha.40_qzytosuu5eg3bvoa74ldx6evva
'
@ibiz-template/model'
:
0.0.1-alpha.39_yslesr4iih24kokbsmhl36awki
qs
:
6.11.0
qx-util
:
0.4.4
ramda
:
0.28.0
vue
:
2.7.13
vue-router
:
3.6.5_vue@2.7.13
dev
:
false
/@ibiz/dynamic-model-api/2.1.5_qx-util@0.4.4
:
...
...
@@ -804,8 +913,8 @@ packages:
resolution
:
{
integrity
:
sha512-DcTUcwT9xEcf4rp2UHyGAcmlqG4Mhe7acozl5vY2xzSrwP1z19ZVyjzQ6DsNUrvIadpiyZoQCTHFt4t2omYIZQ==
}
dev
:
true
/@types/node/18.11.
8
:
resolution
:
{
integrity
:
sha512-
uGwPWlE0Hj972KkHtCDVwZ8O39GmyjfMane1Z3GUBGGnkZ2USDq7SxLpVIiIHpweY9DS0QTDH0Nw7RNBsAAZ5A
==
}
/@types/node/18.11.
9
:
resolution
:
{
integrity
:
sha512-
CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg
==
}
dev
:
true
/@types/normalize-package-data/2.4.1
:
...
...
@@ -816,6 +925,10 @@ packages:
resolution
:
{
integrity
:
sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
}
dev
:
true
/@types/path-browserify/1.0.0
:
resolution
:
{
integrity
:
sha512-XMCcyhSvxcch8b7rZAtFAaierBYdeHXVvg2iYnxOV0MCQHmPuRRmGZPFDRzPayxcGiiSL1Te9UIO+f3cuj0tfw==
}
dev
:
true
/@types/qs/6.9.7
:
resolution
:
{
integrity
:
sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==
}
dev
:
true
...
...
@@ -834,8 +947,8 @@ packages:
resolution
:
{
integrity
:
sha512-d1M6eDKBGWx7RbYy295VEFoOF9YDJkPI959QYnmzcmeaV+SP4D0xV7dEh3sN5XF3GvO3PhGzm+17Z598nvHQuQ==
}
dev
:
true
/@typescript-eslint/eslint-plugin/5.4
1.0_huremdigmcnkianavgfk3x6io
u
:
resolution
:
{
integrity
:
sha512-
DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA
==
}
/@typescript-eslint/eslint-plugin/5.4
2.0_6xw5wg2354iw4zujk2f3vyfrz
u
:
resolution
:
{
integrity
:
sha512-
5TJh2AgL6+wpL8H/GTSjNb4WrjKoR2rqvFxR/DDTqYNk6uXn8BJMEcncLSpMbf/XV1aS0jAjYwn98uvVCiAywQ
==
}
engines
:
{
node
:
^12.22.0 || ^14.17.0 || >=16.0.0
}
peerDependencies
:
'
@typescript-eslint/parser'
:
^5.0.0
...
...
@@ -845,13 +958,14 @@ packages:
typescript
:
optional
:
true
dependencies
:
'
@typescript-eslint/parser'
:
5.4
1
.0_wyqvi574yv7oiwfeinomdzmc3m
'
@typescript-eslint/scope-manager'
:
5.4
1
.0
'
@typescript-eslint/type-utils'
:
5.4
1
.0_wyqvi574yv7oiwfeinomdzmc3m
'
@typescript-eslint/utils'
:
5.4
1
.0_wyqvi574yv7oiwfeinomdzmc3m
'
@typescript-eslint/parser'
:
5.4
2
.0_wyqvi574yv7oiwfeinomdzmc3m
'
@typescript-eslint/scope-manager'
:
5.4
2
.0
'
@typescript-eslint/type-utils'
:
5.4
2
.0_wyqvi574yv7oiwfeinomdzmc3m
'
@typescript-eslint/utils'
:
5.4
2
.0_wyqvi574yv7oiwfeinomdzmc3m
debug
:
4.3.4
eslint
:
8.26.0
ignore
:
5.2.0
natural-compare-lite
:
1.4.0
regexpp
:
3.2.0
semver
:
7.3.7
tsutils
:
3.21.0_typescript@4.8.4
...
...
@@ -860,8 +974,8 @@ packages:
-
supports-color
dev
:
true
/@typescript-eslint/parser/5.4
1
.0_wyqvi574yv7oiwfeinomdzmc3m
:
resolution
:
{
integrity
:
sha512-
HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZ
A==
}
/@typescript-eslint/parser/5.4
2
.0_wyqvi574yv7oiwfeinomdzmc3m
:
resolution
:
{
integrity
:
sha512-
Ixh9qrOTDRctFg3yIwrLkgf33AHyEIn6lhyf5cCfwwiGtkWhNpVKlEZApi3inGQR/barWnY7qY8FbGKBO7p3J
A==
}
engines
:
{
node
:
^12.22.0 || ^14.17.0 || >=16.0.0
}
peerDependencies
:
eslint
:
^6.0.0 || ^7.0.0 || ^8.0.0
...
...
@@ -870,9 +984,9 @@ packages:
typescript
:
optional
:
true
dependencies
:
'
@typescript-eslint/scope-manager'
:
5.4
1
.0
'
@typescript-eslint/types'
:
5.4
1
.0
'
@typescript-eslint/typescript-estree'
:
5.4
1
.0_typescript@4.8.4
'
@typescript-eslint/scope-manager'
:
5.4
2
.0
'
@typescript-eslint/types'
:
5.4
2
.0
'
@typescript-eslint/typescript-estree'
:
5.4
2
.0_typescript@4.8.4
debug
:
4.3.4
eslint
:
8.26.0
typescript
:
4.8.4
...
...
@@ -880,16 +994,16 @@ packages:
-
supports-color
dev
:
true
/@typescript-eslint/scope-manager/5.4
1
.0
:
resolution
:
{
integrity
:
sha512-
xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ
==
}
/@typescript-eslint/scope-manager/5.4
2
.0
:
resolution
:
{
integrity
:
sha512-
l5/3IBHLH0Bv04y+H+zlcLiEMEMjWGaCX6WyHE5Uk2YkSGAMlgdUPsT/ywTSKgu9D1dmmKMYgYZijObfA39Wow
==
}
engines
:
{
node
:
^12.22.0 || ^14.17.0 || >=16.0.0
}
dependencies
:
'
@typescript-eslint/types'
:
5.4
1
.0
'
@typescript-eslint/visitor-keys'
:
5.4
1
.0
'
@typescript-eslint/types'
:
5.4
2
.0
'
@typescript-eslint/visitor-keys'
:
5.4
2
.0
dev
:
true
/@typescript-eslint/type-utils/5.4
1
.0_wyqvi574yv7oiwfeinomdzmc3m
:
resolution
:
{
integrity
:
sha512-
L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA
==
}
/@typescript-eslint/type-utils/5.4
2
.0_wyqvi574yv7oiwfeinomdzmc3m
:
resolution
:
{
integrity
:
sha512-
HW14TXC45dFVZxnVW8rnUGnvYyRC0E/vxXShFCthcC9VhVTmjqOmtqj6H5rm9Zxv+ORxKA/1aLGD7vmlLsdlOg
==
}
engines
:
{
node
:
^12.22.0 || ^14.17.0 || >=16.0.0
}
peerDependencies
:
eslint
:
'
*'
...
...
@@ -898,8 +1012,8 @@ packages:
typescript
:
optional
:
true
dependencies
:
'
@typescript-eslint/typescript-estree'
:
5.4
1
.0_typescript@4.8.4
'
@typescript-eslint/utils'
:
5.4
1
.0_wyqvi574yv7oiwfeinomdzmc3m
'
@typescript-eslint/typescript-estree'
:
5.4
2
.0_typescript@4.8.4
'
@typescript-eslint/utils'
:
5.4
2
.0_wyqvi574yv7oiwfeinomdzmc3m
debug
:
4.3.4
eslint
:
8.26.0
tsutils
:
3.21.0_typescript@4.8.4
...
...
@@ -908,13 +1022,13 @@ packages:
-
supports-color
dev
:
true
/@typescript-eslint/types/5.4
1
.0
:
resolution
:
{
integrity
:
sha512-
5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA
==
}
/@typescript-eslint/types/5.4
2
.0
:
resolution
:
{
integrity
:
sha512-
t4lzO9ZOAUcHY6bXQYRuu+3SSYdD9TS8ooApZft4WARt4/f2Cj/YpvbTe8A4GuhT4bNW72goDMOy7SW71mZwGw
==
}
engines
:
{
node
:
^12.22.0 || ^14.17.0 || >=16.0.0
}
dev
:
true
/@typescript-eslint/typescript-estree/5.4
1
.0_typescript@4.8.4
:
resolution
:
{
integrity
:
sha512-
SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXW
g==
}
/@typescript-eslint/typescript-estree/5.4
2
.0_typescript@4.8.4
:
resolution
:
{
integrity
:
sha512-
2O3vSq794x3kZGtV7i4SCWZWCwjEtkWfVqX4m5fbUBomOsEOyd6OAD1qU2lbvV5S8tgy/luJnOYluNyYVeOTT
g==
}
engines
:
{
node
:
^12.22.0 || ^14.17.0 || >=16.0.0
}
peerDependencies
:
typescript
:
'
*'
...
...
@@ -922,8 +1036,8 @@ packages:
typescript
:
optional
:
true
dependencies
:
'
@typescript-eslint/types'
:
5.4
1
.0
'
@typescript-eslint/visitor-keys'
:
5.4
1
.0
'
@typescript-eslint/types'
:
5.4
2
.0
'
@typescript-eslint/visitor-keys'
:
5.4
2
.0
debug
:
4.3.4
globby
:
11.1.0
is-glob
:
4.0.3
...
...
@@ -934,17 +1048,17 @@ packages:
-
supports-color
dev
:
true
/@typescript-eslint/utils/5.4
1
.0_wyqvi574yv7oiwfeinomdzmc3m
:
resolution
:
{
integrity
:
sha512-
QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KL
Q==
}
/@typescript-eslint/utils/5.4
2
.0_wyqvi574yv7oiwfeinomdzmc3m
:
resolution
:
{
integrity
:
sha512-
JZ++3+h1vbeG1NUECXQZE3hg0kias9kOtcQr3+JVQ3whnjvKuMyktJAAIj6743OeNPnGBmjj7KEmiDL7qsdnC
Q==
}
engines
:
{
node
:
^12.22.0 || ^14.17.0 || >=16.0.0
}
peerDependencies
:
eslint
:
^6.0.0 || ^7.0.0 || ^8.0.0
dependencies
:
'
@types/json-schema'
:
7.0.11
'
@types/semver'
:
7.3.12
'
@typescript-eslint/scope-manager'
:
5.4
1
.0
'
@typescript-eslint/types'
:
5.4
1
.0
'
@typescript-eslint/typescript-estree'
:
5.4
1
.0_typescript@4.8.4
'
@typescript-eslint/scope-manager'
:
5.4
2
.0
'
@typescript-eslint/types'
:
5.4
2
.0
'
@typescript-eslint/typescript-estree'
:
5.4
2
.0_typescript@4.8.4
eslint
:
8.26.0
eslint-scope
:
5.1.1
eslint-utils
:
3.0.0_eslint@8.26.0
...
...
@@ -954,15 +1068,15 @@ packages:
-
typescript
dev
:
true
/@typescript-eslint/visitor-keys/5.4
1
.0
:
resolution
:
{
integrity
:
sha512-
vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw
==
}
/@typescript-eslint/visitor-keys/5.4
2
.0
:
resolution
:
{
integrity
:
sha512-
QHbu5Hf/2lOEOwy+IUw0GoSCuAzByTAWWrOTKzTzsotiUnWFpuKnXcAhC9YztAf2EElQ0VvIK+pHJUPkM0q7jg
==
}
engines
:
{
node
:
^12.22.0 || ^14.17.0 || >=16.0.0
}
dependencies
:
'
@typescript-eslint/types'
:
5.4
1
.0
'
@typescript-eslint/types'
:
5.4
2
.0
eslint-visitor-keys
:
3.3.0
dev
:
true
/@vitejs/plugin-legacy/2.3.0_terser@5.15.1+vite@3.2.
1
:
/@vitejs/plugin-legacy/2.3.0_terser@5.15.1+vite@3.2.
2
:
resolution
:
{
integrity
:
sha512-Bh62i0gzQvvT8AeAAb78nOnqSYXypkRmQmOTImdPZ39meHR9e2une3AIFmVo4s1SDmcmJ6qj18Sa/lRc/14KaA==
}
engines
:
{
node
:
^14.18.0 || >=16.0.0
}
peerDependencies
:
...
...
@@ -975,10 +1089,10 @@ packages:
regenerator-runtime
:
0.13.10
systemjs
:
6.13.0
terser
:
5.15.1
vite
:
3.2.
1
_sass@1.55.0+terser@5.15.1
vite
:
3.2.
2
_sass@1.55.0+terser@5.15.1
dev
:
true
/@vitejs/plugin-vue2-jsx/1.0.3_vite@3.2.
1
+vue@2.7.13
:
/@vitejs/plugin-vue2-jsx/1.0.3_vite@3.2.
2
+vue@2.7.13
:
resolution
:
{
integrity
:
sha512-JdcmeuTCRfYkQ6wPIbg0IG43l/2SuAFAK0asWOmrNQ098CfFb86gfOfHLTr5s01qduMCdfl7JOoSgxOckQxvBg==
}
engines
:
{
node
:
'
>=14.18.0'
}
peerDependencies
:
...
...
@@ -990,20 +1104,20 @@ packages:
'
@babel/plugin-transform-typescript'
:
7.18.12_@babel+core@7.18.10
'
@rollup/pluginutils'
:
4.2.1
'
@vue/babel-preset-jsx'
:
1.3.1_romgntqxla5e5td6u4nrnhdgey
vite
:
3.2.
1
_sass@1.55.0+terser@5.15.1
vite
:
3.2.
2
_sass@1.55.0+terser@5.15.1
vue
:
2.7.13
transitivePeerDependencies
:
-
supports-color
dev
:
true
/@vitejs/plugin-vue2/2.0.0_vite@3.2.
1
+vue@2.7.13
:
/@vitejs/plugin-vue2/2.0.0_vite@3.2.
2
+vue@2.7.13
:
resolution
:
{
integrity
:
sha512-VJOCDtBNcRv7kYLQRbbERDP0OqW0EKgMQp6wwbqZRpU3kg38OP891avx6Xl3szntGkf9mK4i8k3TjsAlmkzWFg==
}
engines
:
{
node
:
^14.18.0 || >= 16.0.0
}
peerDependencies
:
vite
:
^3.0.0
vue
:
^2.7.0-0
dependencies
:
vite
:
3.2.
1
_sass@1.55.0+terser@5.15.1
vite
:
3.2.
2
_sass@1.55.0+terser@5.15.1
vue
:
2.7.13
dev
:
true
...
...
@@ -1365,6 +1479,24 @@ packages:
resolution
:
{
integrity
:
sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ==
}
dev
:
false
/async-validator/4.2.5
:
resolution
:
{
integrity
:
sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==
}
dev
:
false
/asynckit/0.4.0
:
resolution
:
{
integrity
:
sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
}
dev
:
false
/axios/1.1.3
:
resolution
:
{
integrity
:
sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==
}
dependencies
:
follow-redirects
:
1.15.2
form-data
:
4.0.0
proxy-from-env
:
1.1.0
transitivePeerDependencies
:
-
debug
dev
:
false
/balanced-match/1.0.2
:
resolution
:
{
integrity
:
sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
}
dev
:
true
...
...
@@ -1479,7 +1611,7 @@ packages:
normalize-path
:
3.0.0
readdirp
:
3.6.0
optionalDependencies
:
fsevents
:
registry.npmmirror.com/fsevents/
2.3.2
fsevents
:
2.3.2
dev
:
true
/clean-stack/2.2.0
:
...
...
@@ -1547,6 +1679,13 @@ packages:
resolution
:
{
integrity
:
sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==
}
dev
:
true
/combined-stream/1.0.8
:
resolution
:
{
integrity
:
sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
}
engines
:
{
node
:
'
>=
0.8'
}
dependencies
:
delayed-stream
:
1.0.0
dev
:
false
/commander/2.20.3
:
resolution
:
{
integrity
:
sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
}
dev
:
true
...
...
@@ -1747,6 +1886,11 @@ packages:
object-keys
:
1.1.1
dev
:
true
/delayed-stream/1.0.0
:
resolution
:
{
integrity
:
sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
}
engines
:
{
node
:
'
>=0.4.0'
}
dev
:
false
/diff/4.0.2
:
resolution
:
{
integrity
:
sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
}
engines
:
{
node
:
'
>=0.3.1'
}
...
...
@@ -1852,34 +1996,214 @@ packages:
is-symbol
:
1.0.4
dev
:
true
/esbuild-android-64/0.15.10
:
resolution
:
{
integrity
:
sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
android
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-android-arm64/0.15.10
:
resolution
:
{
integrity
:
sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
arm64
]
os
:
[
android
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-darwin-64/0.15.10
:
resolution
:
{
integrity
:
sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
darwin
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-darwin-arm64/0.15.10
:
resolution
:
{
integrity
:
sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
arm64
]
os
:
[
darwin
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-freebsd-64/0.15.10
:
resolution
:
{
integrity
:
sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
freebsd
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-freebsd-arm64/0.15.10
:
resolution
:
{
integrity
:
sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
arm64
]
os
:
[
freebsd
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-linux-32/0.15.10
:
resolution
:
{
integrity
:
sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
ia32
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-linux-64/0.15.10
:
resolution
:
{
integrity
:
sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-linux-arm/0.15.10
:
resolution
:
{
integrity
:
sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
arm
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-linux-arm64/0.15.10
:
resolution
:
{
integrity
:
sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
arm64
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-linux-mips64le/0.15.10
:
resolution
:
{
integrity
:
sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
mips64el
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-linux-ppc64le/0.15.10
:
resolution
:
{
integrity
:
sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
ppc64
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-linux-riscv64/0.15.10
:
resolution
:
{
integrity
:
sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
riscv64
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-linux-s390x/0.15.10
:
resolution
:
{
integrity
:
sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
s390x
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-netbsd-64/0.15.10
:
resolution
:
{
integrity
:
sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
netbsd
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-openbsd-64/0.15.10
:
resolution
:
{
integrity
:
sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
openbsd
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-sunos-64/0.15.10
:
resolution
:
{
integrity
:
sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
sunos
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-windows-32/0.15.10
:
resolution
:
{
integrity
:
sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
ia32
]
os
:
[
win32
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-windows-64/0.15.10
:
resolution
:
{
integrity
:
sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
win32
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild-windows-arm64/0.15.10
:
resolution
:
{
integrity
:
sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==
}
engines
:
{
node
:
'
>=12'
}
cpu
:
[
arm64
]
os
:
[
win32
]
requiresBuild
:
true
dev
:
true
optional
:
true
/esbuild/0.15.10
:
resolution
:
{
integrity
:
sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==
}
engines
:
{
node
:
'
>=12'
}
hasBin
:
true
requiresBuild
:
true
optionalDependencies
:
'
@esbuild/android-arm'
:
registry.npmmirror.com/@esbuild/android-arm/
0.15.10
'
@esbuild/linux-loong64'
:
registry.npmmirror.com/@esbuild/linux-loong64/
0.15.10
esbuild-android-64
:
registry.npmmirror.com/esbuild-android-64/
0.15.10
esbuild-android-arm64
:
registry.npmmirror.com/esbuild-android-arm64/
0.15.10
esbuild-darwin-64
:
registry.npmmirror.com/esbuild-darwin-64/
0.15.10
esbuild-darwin-arm64
:
registry.npmmirror.com/esbuild-darwin-arm64/
0.15.10
esbuild-freebsd-64
:
registry.npmmirror.com/esbuild-freebsd-64/
0.15.10
esbuild-freebsd-arm64
:
registry.npmmirror.com/esbuild-freebsd-arm64/
0.15.10
esbuild-linux-32
:
registry.npmmirror.com/esbuild-linux-32/
0.15.10
esbuild-linux-64
:
registry.npmmirror.com/esbuild-linux-64/
0.15.10
esbuild-linux-arm
:
registry.npmmirror.com/esbuild-linux-arm/
0.15.10
esbuild-linux-arm64
:
registry.npmmirror.com/esbuild-linux-arm64/
0.15.10
esbuild-linux-mips64le
:
registry.npmmirror.com/esbuild-linux-mips64le/
0.15.10
esbuild-linux-ppc64le
:
registry.npmmirror.com/esbuild-linux-ppc64le/
0.15.10
esbuild-linux-riscv64
:
registry.npmmirror.com/esbuild-linux-riscv64/
0.15.10
esbuild-linux-s390x
:
registry.npmmirror.com/esbuild-linux-s390x/
0.15.10
esbuild-netbsd-64
:
registry.npmmirror.com/esbuild-netbsd-64/
0.15.10
esbuild-openbsd-64
:
registry.npmmirror.com/esbuild-openbsd-64/
0.15.10
esbuild-sunos-64
:
registry.npmmirror.com/esbuild-sunos-64/
0.15.10
esbuild-windows-32
:
registry.npmmirror.com/esbuild-windows-32/
0.15.10
esbuild-windows-64
:
registry.npmmirror.com/esbuild-windows-64/
0.15.10
esbuild-windows-arm64
:
registry.npmmirror.com/esbuild-windows-arm64/
0.15.10
'
@esbuild/android-arm'
:
0.15.10
'
@esbuild/linux-loong64'
:
0.15.10
esbuild-android-64
:
0.15.10
esbuild-android-arm64
:
0.15.10
esbuild-darwin-64
:
0.15.10
esbuild-darwin-arm64
:
0.15.10
esbuild-freebsd-64
:
0.15.10
esbuild-freebsd-arm64
:
0.15.10
esbuild-linux-32
:
0.15.10
esbuild-linux-64
:
0.15.10
esbuild-linux-arm
:
0.15.10
esbuild-linux-arm64
:
0.15.10
esbuild-linux-mips64le
:
0.15.10
esbuild-linux-ppc64le
:
0.15.10
esbuild-linux-riscv64
:
0.15.10
esbuild-linux-s390x
:
0.15.10
esbuild-netbsd-64
:
0.15.10
esbuild-openbsd-64
:
0.15.10
esbuild-sunos-64
:
0.15.10
esbuild-windows-32
:
0.15.10
esbuild-windows-64
:
0.15.10
esbuild-windows-arm64
:
0.15.10
dev
:
true
/escalade/3.1.1
:
...
...
@@ -1906,7 +2230,7 @@ packages:
dependencies
:
confusing-browser-globals
:
1.0.11
eslint
:
8.26.0
eslint-plugin-import
:
2.26.0_
c2flhriocdzler6lrwbyxxyoca
eslint-plugin-import
:
2.26.0_
5aea5dp4n23mfv4y2mmjxole3e
object.assign
:
4.1.3
object.entries
:
1.1.5
semver
:
6.3.0
...
...
@@ -1930,7 +2254,7 @@ packages:
-
supports-color
dev
:
true
/eslint-module-utils/2.7.4_
pz3cez6sklduddwkjesjihuniu
:
/eslint-module-utils/2.7.4_
yytd4qhylm3dyr3j4r4rwmq2vy
:
resolution
:
{
integrity
:
sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==
}
engines
:
{
node
:
'
>=4'
}
peerDependencies
:
...
...
@@ -1951,7 +2275,7 @@ packages:
eslint-import-resolver-webpack
:
optional
:
true
dependencies
:
'
@typescript-eslint/parser'
:
5.4
1
.0_wyqvi574yv7oiwfeinomdzmc3m
'
@typescript-eslint/parser'
:
5.4
2
.0_wyqvi574yv7oiwfeinomdzmc3m
debug
:
3.2.7
eslint
:
8.26.0
eslint-import-resolver-node
:
0.3.6
...
...
@@ -1959,7 +2283,7 @@ packages:
-
supports-color
dev
:
true
/eslint-plugin-import/2.26.0_
c2flhriocdzler6lrwbyxxyoca
:
/eslint-plugin-import/2.26.0_
5aea5dp4n23mfv4y2mmjxole3e
:
resolution
:
{
integrity
:
sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==
}
engines
:
{
node
:
'
>=4'
}
peerDependencies
:
...
...
@@ -1969,14 +2293,14 @@ packages:
'
@typescript-eslint/parser'
:
optional
:
true
dependencies
:
'
@typescript-eslint/parser'
:
5.4
1
.0_wyqvi574yv7oiwfeinomdzmc3m
'
@typescript-eslint/parser'
:
5.4
2
.0_wyqvi574yv7oiwfeinomdzmc3m
array-includes
:
3.1.5
array.prototype.flat
:
1.3.0
debug
:
2.6.9
doctrine
:
2.1.0
eslint
:
8.26.0
eslint-import-resolver-node
:
0.3.6
eslint-module-utils
:
2.7.4_
pz3cez6sklduddwkjesjihuniu
eslint-module-utils
:
2.7.4_
yytd4qhylm3dyr3j4r4rwmq2vy
has
:
1.0.3
is-core-module
:
2.10.0
is-glob
:
4.0.3
...
...
@@ -2007,8 +2331,8 @@ packages:
prettier-linter-helpers
:
1.0.0
dev
:
true
/eslint-plugin-vue/9.
6
.0_eslint@8.26.0
:
resolution
:
{
integrity
:
sha512-
zzySkJgVbFCylnG2+9MDF7N+2Rjze2y0bF8GyUNpFOnT8mCMfqqtLDJkHBuYu9N/psW1A6DVbQhPkP92E+qakA
==
}
/eslint-plugin-vue/9.
7
.0_eslint@8.26.0
:
resolution
:
{
integrity
:
sha512-
DrOO3WZCZEwcLsnd3ohFwqCoipGRSTKTBTnLwdhqAbYZtzWl0o7D+D8ZhlmiZvABKTEl8AFsqH1GHGdybyoQmw
==
}
engines
:
{
node
:
^14.17.0 || >=16.0.0
}
peerDependencies
:
eslint
:
^6.2.0 || ^7.0.0 || ^8.0.0
...
...
@@ -2261,6 +2585,25 @@ packages:
resolution
:
{
integrity
:
sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==
}
dev
:
true
/follow-redirects/1.15.2
:
resolution
:
{
integrity
:
sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
}
engines
:
{
node
:
'
>=4.0'
}
peerDependencies
:
debug
:
'
*'
peerDependenciesMeta
:
debug
:
optional
:
true
dev
:
false
/form-data/4.0.0
:
resolution
:
{
integrity
:
sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
}
engines
:
{
node
:
'
>=
6'
}
dependencies
:
asynckit
:
0.4.0
combined-stream
:
1.0.8
mime-types
:
2.1.35
dev
:
false
/fs-extra/10.1.0
:
resolution
:
{
integrity
:
sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==
}
engines
:
{
node
:
'
>=12'
}
...
...
@@ -2274,6 +2617,14 @@ packages:
resolution
:
{
integrity
:
sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
}
dev
:
true
/fsevents/2.3.2
:
resolution
:
{
integrity
:
sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
}
engines
:
{
node
:
^8.16.0 || ^10.6.0 || >=11.0.0
}
os
:
[
darwin
]
requiresBuild
:
true
dev
:
true
optional
:
true
/function-bind/1.1.1
:
resolution
:
{
integrity
:
sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
}
...
...
@@ -2786,7 +3137,7 @@ packages:
dependencies
:
universalify
:
2.0.0
optionalDependencies
:
graceful-fs
:
registry.npmmirror.com/graceful-fs/
4.2.10
graceful-fs
:
4.2.10
dev
:
true
/jsonparse/1.3.1
:
...
...
@@ -2910,6 +3261,11 @@ packages:
wrap-ansi
:
6.2.0
dev
:
true
/loglevel/1.8.0
:
resolution
:
{
integrity
:
sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==
}
engines
:
{
node
:
'
>=
0.6.0'
}
dev
:
false
/lru-cache/6.0.0
:
resolution
:
{
integrity
:
sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
}
engines
:
{
node
:
'
>=10'
}
...
...
@@ -3000,8 +3356,20 @@ packages:
picomatch
:
2.3.1
dev
:
true
/mimic-fn/2.1.0
:
resolution
:
{
integrity
:
sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
}
/mime-db/1.52.0
:
resolution
:
{
integrity
:
sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
}
engines
:
{
node
:
'
>=
0.6'
}
dev
:
false
/mime-types/2.1.35
:
resolution
:
{
integrity
:
sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
}
engines
:
{
node
:
'
>=
0.6'
}
dependencies
:
mime-db
:
1.52.0
dev
:
false
/mimic-fn/2.1.0
:
resolution
:
{
integrity
:
sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
}
engines
:
{
node
:
'
>=6'
}
dev
:
true
...
...
@@ -3062,6 +3430,10 @@ packages:
engines
:
{
node
:
^10 || ^12 || ^13.7 || ^14 || >=15.0.1
}
hasBin
:
true
/natural-compare-lite/1.4.0
:
resolution
:
{
integrity
:
sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==
}
dev
:
true
/natural-compare/1.4.0
:
resolution
:
{
integrity
:
sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
}
dev
:
true
...
...
@@ -3248,6 +3620,10 @@ packages:
lines-and-columns
:
1.2.4
dev
:
true
/path-browserify/1.0.1
:
resolution
:
{
integrity
:
sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
}
dev
:
false
/path-exists/4.0.0
:
resolution
:
{
integrity
:
sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
}
engines
:
{
node
:
'
>=8'
}
...
...
@@ -3391,6 +3767,10 @@ packages:
hasBin
:
true
dev
:
true
/proxy-from-env/1.1.0
:
resolution
:
{
integrity
:
sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
}
dev
:
false
/punycode/2.1.1
:
resolution
:
{
integrity
:
sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
}
engines
:
{
node
:
'
>=6'
}
...
...
@@ -3566,7 +3946,7 @@ packages:
engines
:
{
node
:
'
>=10.0.0'
}
hasBin
:
true
optionalDependencies
:
fsevents
:
registry.npmmirror.com/fsevents/
2.3.2
fsevents
:
2.3.2
dev
:
true
/rollup/2.79.1
:
...
...
@@ -3574,7 +3954,7 @@ packages:
engines
:
{
node
:
'
>=10.0.0'
}
hasBin
:
true
optionalDependencies
:
fsevents
:
registry.npmmirror.com/fsevents/
2.3.2
fsevents
:
2.3.2
dev
:
true
/run-parallel/1.2.0
:
...
...
@@ -4222,7 +4602,7 @@ packages:
vue
:
2.7.13
dev
:
false
/vite-plugin-eslint/1.8.1_eslint@8.26.0+vite@3.2.
1
:
/vite-plugin-eslint/1.8.1_eslint@8.26.0+vite@3.2.
2
:
resolution
:
{
integrity
:
sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==
}
peerDependencies
:
eslint
:
'
>=7'
...
...
@@ -4232,11 +4612,11 @@ packages:
'
@types/eslint'
:
8.4.5
eslint
:
8.26.0
rollup
:
2.78.1
vite
:
3.2.
1
_sass@1.55.0+terser@5.15.1
vite
:
3.2.
2
_sass@1.55.0+terser@5.15.1
dev
:
true
/vite/3.2.
1
_sass@1.55.0+terser@5.15.1
:
resolution
:
{
integrity
:
sha512-
ADtMkfHuWq4tskJsri2n2FZkORO8ZyhI+zIz7zTrDAgDEtct1jdxOg3YsZBfHhKjmMoWLOSCr+64qrEDGo/DbQ
==
}
/vite/3.2.
2
_sass@1.55.0+terser@5.15.1
:
resolution
:
{
integrity
:
sha512-
pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw
==
}
engines
:
{
node
:
^14.18.0 || >=16.0.0
}
hasBin
:
true
peerDependencies
:
...
...
@@ -4264,7 +4644,7 @@ packages:
sass
:
1.55.0
terser
:
5.15.1
optionalDependencies
:
fsevents
:
registry.npmmirror.com/fsevents/
2.3.2
fsevents
:
2.3.2
dev
:
true
/vue-demi/0.13.8_vue@2.7.13
:
...
...
@@ -4448,548 +4828,3 @@ packages:
resolution
:
{
integrity
:
sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
}
engines
:
{
node
:
'
>=10'
}
dev
:
true
registry.npmmirror.com/@esbuild/android-arm/0.15.10
:
resolution
:
{
integrity
:
sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.15.10.tgz
}
name
:
'
@esbuild/android-arm'
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
arm
]
os
:
[
android
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/@esbuild/linux-loong64/0.15.10
:
resolution
:
{
integrity
:
sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.15.10.tgz
}
name
:
'
@esbuild/linux-loong64'
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
loong64
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/@ibiz-template/command/0.0.1-alpha.37
:
resolution
:
{
integrity
:
sha512-7KPS16osgsOHgPekTC8W2SKMtVIF4lsY6XP5IPttkQiZU6nhBDLs4MoRyRvhHPA30aKHzgxmYT/Whl186apoqg==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/@ibiz-template/command/-/command-0.0.1-alpha.37.tgz
}
name
:
'
@ibiz-template/command'
version
:
0.0.1-alpha.37
dependencies
:
qx-util
:
registry.npmmirror.com/qx-util/0.4.4
dev
:
false
registry.npmmirror.com/@ibiz-template/controller/0.0.1-alpha.38_yqoflx6tyrgc3xn2pq7rnnu37y
:
resolution
:
{
integrity
:
sha512-liZ/GgNy8NdpwVwilLA3HTjgvcIUJVkCuoHkBDo2LLV4TJOBCfcLQ5ongYcEpdditQsbOsmT546n4WqbZ4u7RA==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/@ibiz-template/controller/-/controller-0.0.1-alpha.38.tgz
}
id
:
registry.npmmirror.com/@ibiz-template/controller/0.0.1-alpha.38
name
:
'
@ibiz-template/controller'
version
:
0.0.1-alpha.38
peerDependencies
:
'
@ibiz-template/core'
:
^0.0.1-alpha.2
'
@ibiz-template/model'
:
^0.0.1-alpha.2
'
@ibiz-template/runtime'
:
^0.0.1-alpha.2
'
@ibiz-template/service'
:
^0.0.1-alpha.2
lodash-es
:
^4.17.21
qx-util
:
^0.4.4
dependencies
:
'
@ibiz-template/core'
:
registry.npmmirror.com/@ibiz-template/core/0.0.1-alpha.38_qzytosuu5eg3bvoa74ldx6evva
'
@ibiz-template/model'
:
0.0.1-alpha.37_yslesr4iih24kokbsmhl36awki
'
@ibiz-template/runtime'
:
registry.npmmirror.com/@ibiz-template/runtime/0.0.1-alpha.38_5ooxsv6w6zvwkcvqaz3yejcoce
'
@ibiz-template/service'
:
registry.npmmirror.com/@ibiz-template/service/0.0.1-alpha.38_dy5ruincxm3jghhrylh5xzurr4
async-validator
:
registry.npmmirror.com/async-validator/4.2.5
dayjs
:
registry.npmmirror.com/dayjs/1.11.6
lodash-es
:
4.17.21
qx-util
:
0.4.4
dev
:
false
registry.npmmirror.com/@ibiz-template/core/0.0.1-alpha.38_qzytosuu5eg3bvoa74ldx6evva
:
resolution
:
{
integrity
:
sha512-zLUXmu+iZvtm1uBroX0eVbaRebJsGZaGhaf1ZJ3fqfm1MF5H0pHpQMKf9V+gqtbUL0z6OyyQKKdQgUdCAL7kEg==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/@ibiz-template/core/-/core-0.0.1-alpha.38.tgz
}
id
:
registry.npmmirror.com/@ibiz-template/core/0.0.1-alpha.38
name
:
'
@ibiz-template/core'
version
:
0.0.1-alpha.38
peerDependencies
:
lodash-es
:
^4.17.21
qx-util
:
^0.4.4
dependencies
:
axios
:
registry.npmmirror.com/axios/1.1.3
lodash-es
:
4.17.21
loglevel
:
registry.npmmirror.com/loglevel/1.8.0
pluralize
:
registry.npmmirror.com/pluralize/8.0.0
qs
:
registry.npmmirror.com/qs/6.11.0
qx-util
:
0.4.4
transitivePeerDependencies
:
-
debug
dev
:
false
registry.npmmirror.com/@ibiz-template/runtime/0.0.1-alpha.38_5ooxsv6w6zvwkcvqaz3yejcoce
:
resolution
:
{
integrity
:
sha512-TyNzpyDiQ8Gmyv3jrGcMXbkqbQpR021Wmqur2FYcUrh9wbiaYvMKf5ccLF9BaXRA5Jxmxklz10OHtw0ZVAgbGQ==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/@ibiz-template/runtime/-/runtime-0.0.1-alpha.38.tgz
}
id
:
registry.npmmirror.com/@ibiz-template/runtime/0.0.1-alpha.38
name
:
'
@ibiz-template/runtime'
version
:
0.0.1-alpha.38
peerDependencies
:
'
@ibiz-template/core'
:
^0.0.1-alpha.2
'
@ibiz-template/model'
:
^0.0.1-alpha.2
'
@ibiz-template/service'
:
^0.0.1-alpha.2
qx-util
:
^0.4.4
dependencies
:
'
@ibiz-template/command'
:
registry.npmmirror.com/@ibiz-template/command/0.0.1-alpha.37
'
@ibiz-template/core'
:
registry.npmmirror.com/@ibiz-template/core/0.0.1-alpha.38_qzytosuu5eg3bvoa74ldx6evva
'
@ibiz-template/model'
:
0.0.1-alpha.37_yslesr4iih24kokbsmhl36awki
'
@ibiz-template/service'
:
registry.npmmirror.com/@ibiz-template/service/0.0.1-alpha.38_dy5ruincxm3jghhrylh5xzurr4
qx-util
:
0.4.4
dev
:
false
registry.npmmirror.com/@ibiz-template/service/0.0.1-alpha.38_dy5ruincxm3jghhrylh5xzurr4
:
resolution
:
{
integrity
:
sha512-IXGuuDywAtXtTCY8uF4H0jyTxZvEvwXTeGX/5kiR9Bo3rChz1WVTYi9nQRSokav5C9fdLrE1OwPON1SU/kaUHg==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/@ibiz-template/service/-/service-0.0.1-alpha.38.tgz
}
id
:
registry.npmmirror.com/@ibiz-template/service/0.0.1-alpha.38
name
:
'
@ibiz-template/service'
version
:
0.0.1-alpha.38
peerDependencies
:
'
@ibiz-template/core'
:
^0.0.1-alpha.2
'
@ibiz-template/model'
:
^0.0.1-alpha.2
qx-util
:
^0.4.4
ramda
:
^0.28.0
dependencies
:
'
@ibiz-template/core'
:
registry.npmmirror.com/@ibiz-template/core/0.0.1-alpha.38_qzytosuu5eg3bvoa74ldx6evva
'
@ibiz-template/model'
:
0.0.1-alpha.37_yslesr4iih24kokbsmhl36awki
qx-util
:
0.4.4
ramda
:
0.28.0
dev
:
false
registry.npmmirror.com/@ibiz-template/vue-util/0.0.1-alpha.38_xulrwzb6nqtsdm2k5bvzegenbu
:
resolution
:
{
integrity
:
sha512-Ukch5xUSBaqQySncfWwXbK/xmRyhfB66vDs4Fpch+YLABwU44Az/IHUYCUuAtUWD3I6nCrvyb8hef+9M3GKLBg==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/@ibiz-template/vue-util/-/vue-util-0.0.1-alpha.38.tgz
}
id
:
registry.npmmirror.com/@ibiz-template/vue-util/0.0.1-alpha.38
name
:
'
@ibiz-template/vue-util'
version
:
0.0.1-alpha.38
peerDependencies
:
'
@ibiz-template/controller'
:
'
>=0.0.1-alpha.2'
'
@ibiz-template/core'
:
'
>=0.0.1-alpha.2'
'
@ibiz-template/model'
:
'
>=0.0.1-alpha.2'
qs
:
^6.11.0
qx-util
:
^0.4.4
vue
:
^2.7.13
vue-router
:
^3.6.5
dependencies
:
'
@ibiz-template/controller'
:
registry.npmmirror.com/@ibiz-template/controller/0.0.1-alpha.38_yqoflx6tyrgc3xn2pq7rnnu37y
'
@ibiz-template/core'
:
registry.npmmirror.com/@ibiz-template/core/0.0.1-alpha.38_qzytosuu5eg3bvoa74ldx6evva
'
@ibiz-template/model'
:
0.0.1-alpha.37_yslesr4iih24kokbsmhl36awki
qs
:
6.11.0
qx-util
:
0.4.4
vue
:
2.7.13
vue-router
:
3.6.5_vue@2.7.13
dev
:
false
registry.npmmirror.com/async-validator/4.2.5
:
resolution
:
{
integrity
:
sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz
}
name
:
async-validator
version
:
4.2.5
dev
:
false
registry.npmmirror.com/asynckit/0.4.0
:
resolution
:
{
integrity
:
sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz
}
name
:
asynckit
version
:
0.4.0
dev
:
false
registry.npmmirror.com/axios/1.1.3
:
resolution
:
{
integrity
:
sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/axios/-/axios-1.1.3.tgz
}
name
:
axios
version
:
1.1.3
dependencies
:
follow-redirects
:
registry.npmmirror.com/follow-redirects/1.15.2
form-data
:
registry.npmmirror.com/form-data/4.0.0
proxy-from-env
:
registry.npmmirror.com/proxy-from-env/1.1.0
transitivePeerDependencies
:
-
debug
dev
:
false
registry.npmmirror.com/call-bind/1.0.2
:
resolution
:
{
integrity
:
sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz
}
name
:
call-bind
version
:
1.0.2
dependencies
:
function-bind
:
registry.npmmirror.com/function-bind/1.1.1
get-intrinsic
:
registry.npmmirror.com/get-intrinsic/1.1.2
dev
:
false
registry.npmmirror.com/combined-stream/1.0.8
:
resolution
:
{
integrity
:
sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz
}
name
:
combined-stream
version
:
1.0.8
engines
:
{
node
:
'
>=
0.8'
}
dependencies
:
delayed-stream
:
registry.npmmirror.com/delayed-stream/1.0.0
dev
:
false
registry.npmmirror.com/dayjs/1.11.6
:
resolution
:
{
integrity
:
sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/dayjs/-/dayjs-1.11.6.tgz
}
name
:
dayjs
version
:
1.11.6
dev
:
false
registry.npmmirror.com/delayed-stream/1.0.0
:
resolution
:
{
integrity
:
sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz
}
name
:
delayed-stream
version
:
1.0.0
engines
:
{
node
:
'
>=0.4.0'
}
dev
:
false
registry.npmmirror.com/esbuild-android-64/0.15.10
:
resolution
:
{
integrity
:
sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.15.10.tgz
}
name
:
esbuild-android-64
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
android
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-android-arm64/0.15.10
:
resolution
:
{
integrity
:
sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.10.tgz
}
name
:
esbuild-android-arm64
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
arm64
]
os
:
[
android
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-darwin-64/0.15.10
:
resolution
:
{
integrity
:
sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.10.tgz
}
name
:
esbuild-darwin-64
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
darwin
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-darwin-arm64/0.15.10
:
resolution
:
{
integrity
:
sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.10.tgz
}
name
:
esbuild-darwin-arm64
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
arm64
]
os
:
[
darwin
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-freebsd-64/0.15.10
:
resolution
:
{
integrity
:
sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.10.tgz
}
name
:
esbuild-freebsd-64
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
freebsd
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-freebsd-arm64/0.15.10
:
resolution
:
{
integrity
:
sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.10.tgz
}
name
:
esbuild-freebsd-arm64
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
arm64
]
os
:
[
freebsd
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-linux-32/0.15.10
:
resolution
:
{
integrity
:
sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.15.10.tgz
}
name
:
esbuild-linux-32
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
ia32
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-linux-64/0.15.10
:
resolution
:
{
integrity
:
sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.15.10.tgz
}
name
:
esbuild-linux-64
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-linux-arm/0.15.10
:
resolution
:
{
integrity
:
sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.10.tgz
}
name
:
esbuild-linux-arm
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
arm
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-linux-arm64/0.15.10
:
resolution
:
{
integrity
:
sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.10.tgz
}
name
:
esbuild-linux-arm64
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
arm64
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-linux-mips64le/0.15.10
:
resolution
:
{
integrity
:
sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.10.tgz
}
name
:
esbuild-linux-mips64le
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
mips64el
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-linux-ppc64le/0.15.10
:
resolution
:
{
integrity
:
sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.10.tgz
}
name
:
esbuild-linux-ppc64le
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
ppc64
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-linux-riscv64/0.15.10
:
resolution
:
{
integrity
:
sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.10.tgz
}
name
:
esbuild-linux-riscv64
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
riscv64
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-linux-s390x/0.15.10
:
resolution
:
{
integrity
:
sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.10.tgz
}
name
:
esbuild-linux-s390x
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
s390x
]
os
:
[
linux
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-netbsd-64/0.15.10
:
resolution
:
{
integrity
:
sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.10.tgz
}
name
:
esbuild-netbsd-64
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
netbsd
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-openbsd-64/0.15.10
:
resolution
:
{
integrity
:
sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.10.tgz
}
name
:
esbuild-openbsd-64
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
openbsd
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-sunos-64/0.15.10
:
resolution
:
{
integrity
:
sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.10.tgz
}
name
:
esbuild-sunos-64
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
sunos
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-windows-32/0.15.10
:
resolution
:
{
integrity
:
sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.15.10.tgz
}
name
:
esbuild-windows-32
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
ia32
]
os
:
[
win32
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-windows-64/0.15.10
:
resolution
:
{
integrity
:
sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.15.10.tgz
}
name
:
esbuild-windows-64
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
x64
]
os
:
[
win32
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/esbuild-windows-arm64/0.15.10
:
resolution
:
{
integrity
:
sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.10.tgz
}
name
:
esbuild-windows-arm64
version
:
0.15.10
engines
:
{
node
:
'
>=12'
}
cpu
:
[
arm64
]
os
:
[
win32
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/follow-redirects/1.15.2
:
resolution
:
{
integrity
:
sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz
}
name
:
follow-redirects
version
:
1.15.2
engines
:
{
node
:
'
>=4.0'
}
peerDependencies
:
debug
:
'
*'
peerDependenciesMeta
:
debug
:
optional
:
true
dev
:
false
registry.npmmirror.com/form-data/4.0.0
:
resolution
:
{
integrity
:
sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz
}
name
:
form-data
version
:
4.0.0
engines
:
{
node
:
'
>=
6'
}
dependencies
:
asynckit
:
registry.npmmirror.com/asynckit/0.4.0
combined-stream
:
registry.npmmirror.com/combined-stream/1.0.8
mime-types
:
registry.npmmirror.com/mime-types/2.1.35
dev
:
false
registry.npmmirror.com/fsevents/2.3.2
:
resolution
:
{
integrity
:
sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz
}
name
:
fsevents
version
:
2.3.2
engines
:
{
node
:
^8.16.0 || ^10.6.0 || >=11.0.0
}
os
:
[
darwin
]
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/function-bind/1.1.1
:
resolution
:
{
integrity
:
sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz
}
name
:
function-bind
version
:
1.1.1
dev
:
false
registry.npmmirror.com/get-intrinsic/1.1.2
:
resolution
:
{
integrity
:
sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz
}
name
:
get-intrinsic
version
:
1.1.2
dependencies
:
function-bind
:
registry.npmmirror.com/function-bind/1.1.1
has
:
registry.npmmirror.com/has/1.0.3
has-symbols
:
registry.npmmirror.com/has-symbols/1.0.3
dev
:
false
registry.npmmirror.com/graceful-fs/4.2.10
:
resolution
:
{
integrity
:
sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz
}
name
:
graceful-fs
version
:
4.2.10
requiresBuild
:
true
dev
:
true
optional
:
true
registry.npmmirror.com/has-symbols/1.0.3
:
resolution
:
{
integrity
:
sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz
}
name
:
has-symbols
version
:
1.0.3
engines
:
{
node
:
'
>=
0.4'
}
dev
:
false
registry.npmmirror.com/has/1.0.3
:
resolution
:
{
integrity
:
sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/has/-/has-1.0.3.tgz
}
name
:
has
version
:
1.0.3
engines
:
{
node
:
'
>=
0.4.0'
}
dependencies
:
function-bind
:
registry.npmmirror.com/function-bind/1.1.1
dev
:
false
registry.npmmirror.com/loglevel/1.8.0
:
resolution
:
{
integrity
:
sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/loglevel/-/loglevel-1.8.0.tgz
}
name
:
loglevel
version
:
1.8.0
engines
:
{
node
:
'
>=
0.6.0'
}
dev
:
false
registry.npmmirror.com/mime-db/1.52.0
:
resolution
:
{
integrity
:
sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz
}
name
:
mime-db
version
:
1.52.0
engines
:
{
node
:
'
>=
0.6'
}
dev
:
false
registry.npmmirror.com/mime-types/2.1.35
:
resolution
:
{
integrity
:
sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz
}
name
:
mime-types
version
:
2.1.35
engines
:
{
node
:
'
>=
0.6'
}
dependencies
:
mime-db
:
registry.npmmirror.com/mime-db/1.52.0
dev
:
false
registry.npmmirror.com/object-inspect/1.12.2
:
resolution
:
{
integrity
:
sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/object-inspect/-/object-inspect-1.12.2.tgz
}
name
:
object-inspect
version
:
1.12.2
dev
:
false
registry.npmmirror.com/pluralize/8.0.0
:
resolution
:
{
integrity
:
sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/pluralize/-/pluralize-8.0.0.tgz
}
name
:
pluralize
version
:
8.0.0
engines
:
{
node
:
'
>=4'
}
dev
:
false
registry.npmmirror.com/proxy-from-env/1.1.0
:
resolution
:
{
integrity
:
sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz
}
name
:
proxy-from-env
version
:
1.1.0
dev
:
false
registry.npmmirror.com/qs/6.11.0
:
resolution
:
{
integrity
:
sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/qs/-/qs-6.11.0.tgz
}
name
:
qs
version
:
6.11.0
engines
:
{
node
:
'
>=0.6'
}
dependencies
:
side-channel
:
registry.npmmirror.com/side-channel/1.0.4
dev
:
false
registry.npmmirror.com/qx-util/0.4.4
:
resolution
:
{
integrity
:
sha512-0jKxKmPvJz7MFVi10bEqmaX3+WPjdV38UzhqWkuWMEElIwkWvD5fdtSHyCeNiOWla7CYE9pGCe+s1SAZDpvqNw==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/qx-util/-/qx-util-0.4.4.tgz
}
name
:
qx-util
version
:
0.4.4
dev
:
false
registry.npmmirror.com/side-channel/1.0.4
:
resolution
:
{
integrity
:
sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
,
registry
:
http
:
//registry.npm.taobao.org/
,
tarball
:
https
:
//registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz
}
name
:
side-channel
version
:
1.0.4
dependencies
:
call-bind
:
registry.npmmirror.com/call-bind/1.0.2
get-intrinsic
:
registry.npmmirror.com/get-intrinsic/1.1.2
object-inspect
:
registry.npmmirror.com/object-inspect/1.12.2
dev
:
false
app_Web/src/app-register.ts
浏览文件 @
90a10cf9
...
...
@@ -5,7 +5,6 @@ import { install as installService } from '@ibiz-template/service';
import
{
install
as
installRuntime
}
from
'@ibiz-template/runtime'
;
import
{
install
as
installController
}
from
'@ibiz-template/controller'
;
import
{
IViewRegister
}
from
'./i-view-register'
;
import
UserRegister
from
'./user-register'
;
import
{
AppLayout
,
ControlLayout
,
...
...
@@ -57,6 +56,8 @@ import {
}
from
'./components/views'
;
import
{
IndexView
}
from
'./views'
;
import
AppKeepAlive
from
'./components/common/app-keep-alive/app-keep-alive.vue'
;
import
{
presetAllProviders
}
from
'./provider'
;
import
{
ViewShell
}
from
'./components/view-shell/view-shell'
;
import
{
AppIcon
,
ViewToolbar
,
...
...
@@ -72,27 +73,28 @@ import {
WfVersionSelect
,
ExtendActionTimeLine
,
ExtendActionGrid
,
AppSelectTree
,
}
from
'./components/common'
;
// 编辑器组件
import
IBizSpan
from
'./components/editor/ibiz-span/ibiz-span'
;
import
IBizInputBox
from
'./components/editor/ibiz-input-box/ibiz-input-box'
;
import
AppInputNumber
from
'./components/editor/app-input-number/app-input-number'
;
import
IBizCheckBoxList
from
'./components/editor/ibiz-check-box-list/ibiz-check-box-list'
;
import
IBizRadioButtonList
from
'./components/editor/ibiz-radio-button-list/ibiz-radio-button-list'
;
import
IBizDatePicker
from
'./components/editor/ibiz-date-picker/ibiz-date-picker'
;
import
IBizDropDownList
from
'./components/editor/ibiz-dropdown-list/ibiz-dropdown-list'
;
import
IBizPicker
from
'./components/editor/ibiz-picker/ibiz-picker'
;
import
AppSelectTree
from
'./components/editor/app-select-tree/app-select-tree'
;
import
IBizPickerDropDown
from
'./components/editor/ibiz-picker-dropdown/ibiz-picker-dropdown'
;
import
AppPickerLinkOnly
from
'./components/editor/app-picker-linkonly/app-picker-linkonly'
;
import
IBizMPicker
from
'./components/editor/ibiz-mpicker/ibiz-mpicker'
;
import
IBizFileUpload
from
'./components/editor/ibiz-file-upload/ibiz-file-upload'
;
import
AppFileUploadRowPreview
from
'./components/editor/app-file-upload-row-preview/app-file-upload-row-preview'
;
import
AppImageUpload
from
'./components/editor/app-image-upload/app-image-upload'
;
import
NotSupportedEditor
from
'./components/editor/not-supported-editor/not-supported-editor'
;
import
{
presetAllProviders
}
from
'./provider'
;
import
{
ViewShell
}
from
'./components/view-shell/view-shell'
;
import
{
IBizGridFileUpload
,
IBizImageUpload
,
IBizInputNumber
,
IBizPickerLink
,
IBizCheckbox
,
IBizDatePicker
,
IBizDropDownList
,
IBizFileUpload
,
IBizInput
,
IBizMPicker
,
IBizPicker
,
IBizPickerDropDown
,
IBizRadio
,
IBizSpan
,
NotSupportedEditor
,
IBizGridInput
,
IBizGridCheckbox
,
}
from
'./components/editor'
;
export
const
AppRegister
=
{
install
(
v
:
VueConstructor
)
{
...
...
@@ -166,25 +168,26 @@ export const AppRegister = {
v
.
component
(
'WfVersionSelect'
,
WfVersionSelect
);
v
.
component
(
'ExtendActionTimeLine'
,
ExtendActionTimeLine
);
v
.
component
(
'ExtendActionGrid'
,
ExtendActionGrid
);
v
.
component
(
'AppSelectTree'
,
AppSelectTree
);
// 注册编辑器组件
v
.
component
(
'IBizSpan'
,
IBizSpan
);
v
.
component
(
'IBizInput
Box'
,
IBizInputBox
);
v
.
component
(
'
AppInputNumber'
,
App
InputNumber
);
v
.
component
(
'IBizCheck
BoxList'
,
IBizCheckBoxList
);
v
.
component
(
'IBizRadio
ButtonList'
,
IBizRadioButtonList
);
v
.
component
(
'IBizInput
'
,
IBizInput
);
v
.
component
(
'
IBizInputNumber'
,
IBiz
InputNumber
);
v
.
component
(
'IBizCheck
box'
,
IBizCheckbox
);
v
.
component
(
'IBizRadio
'
,
IBizRadio
);
v
.
component
(
'IBizDatePicker'
,
IBizDatePicker
);
v
.
component
(
'IBizDropDownList'
,
IBizDropDownList
);
v
.
component
(
'IBizPicker'
,
IBizPicker
);
v
.
component
(
'IBizPickerDropDown'
,
IBizPickerDropDown
);
v
.
component
(
'
AppPickerLinkOnly'
,
AppPickerLinkOnly
);
v
.
component
(
'
IBizPickerLink'
,
IBizPickerLink
);
v
.
component
(
'IBizMPicker'
,
IBizMPicker
);
v
.
component
(
'IBizFileUpload'
,
IBizFileUpload
);
v
.
component
(
'AppFileUploadRowPreview'
,
AppFileUploadRowPreview
);
v
.
component
(
'AppImageUpload'
,
AppImageUpload
);
v
.
component
(
'AppSelectTree'
,
AppSelectTree
);
v
.
component
(
'IBizGridFileUpload'
,
IBizGridFileUpload
);
v
.
component
(
'IBizImageUpload'
,
IBizImageUpload
);
v
.
component
(
'QuickSearch'
,
QuickSearch
);
v
.
component
(
'NotSupportedEditor'
,
NotSupportedEditor
);
// 扩展注册
v
.
use
(
UserRegister
);
// 注册表格编辑器
v
.
component
(
'IBizGridInput'
,
IBizGridInput
);
v
.
component
(
'IBizGridCheckbox'
,
IBizGridCheckbox
);
},
};
app_Web/src/components/common/app-select-tree/app-select-tree.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
Ref
,
ref
,
watch
,
defineComponent
,
PropType
}
from
'vue'
;
import
{
useNamespace
}
from
'@ibiz-template/vue-util'
;
export
const
AppSelectTree
=
defineComponent
({
name
:
'AppSelectTree'
,
props
:
{
value
:
{
type
:
String
as
PropType
<
Array
<
string
>
|
string
>
,
},
multiple
:
{
type
:
Boolean
,
},
nodesData
:
{
type
:
Array
as
PropType
<
IData
[]
>
,
},
},
setup
(
props
)
{
const
ns
=
useNamespace
(
'app-select-tree'
);
const
visible
=
ref
(
false
);
const
treeNodes
:
Ref
<
IData
[]
>
=
ref
([]);
const
handletreeNodes
=
(
nodes
:
readonly
IData
[])
=>
{
if
(
nodes
.
length
===
0
)
{
return
[];
}
const
list
:
IData
[]
=
[];
nodes
.
forEach
((
codeItem
:
IData
)
=>
{
const
tempObj
:
IData
=
{
title
:
codeItem
.
text
,
value
:
codeItem
.
value
,
children
:
[],
};
if
(
codeItem
.
children
&&
codeItem
.
children
.
length
>
0
)
{
tempObj
.
children
=
handletreeNodes
(
codeItem
.
children
);
}
list
.
push
(
tempObj
);
});
return
list
;
};
watch
(
()
=>
props
.
nodesData
,
(
newVal
,
oldVal
)
=>
{
if
(
newVal
!==
oldVal
)
{
treeNodes
.
value
=
handletreeNodes
(
newVal
!
);
}
},
{
immediate
:
true
},
);
const
triggerMenu
=
(
_visible
:
boolean
)
=>
{
if
(
!
_visible
)
{
visible
.
value
=
!
visible
.
value
;
}
else
{
visible
.
value
=
_visible
;
}
};
return
{
ns
,
visible
,
treeNodes
,
triggerMenu
};
},
render
()
{
return
(
<
div
class=
{
this
.
ns
.
b
()
}
>
<
i
-
dropdown
visible=
{
this
.
visible
}
trigger=
'custom'
transfer
-
class
-
name=
{
this
.
ns
.
e
(
'dropdown'
)
}
transfer
on
-
on
-
clickoutside=
{
()
=>
{
this
.
triggerMenu
(
false
);
}
}
>
<
div
on
-
click=
{
()
=>
{
this
.
triggerMenu
(
true
);
}
}
>
打开下拉树
</
div
>
<
i
-
dropdownMenu
slot=
'list'
>
<
i
-
tree
data=
{
this
.
treeNodes
}
show
-
checkbox
></
i
-
tree
>
</
i
-
dropdownMenu
>
</
i
-
dropdown
>
</
div
>
);
},
});
app_Web/src/components/common/index.ts
浏览文件 @
90a10cf9
...
...
@@ -13,6 +13,7 @@ import { WfVersionSelect } from './wf-version-select/wf-version-select';
import
{
ExtendActionTimeLine
}
from
'./extend-action-timeline/extend-action-timeline'
;
import
{
ExtendActionGrid
}
from
'./extend-action-grid/extend-action-grid'
;
export
{
AppSelectTree
}
from
'../common/app-select-tree/app-select-tree'
;
export
{
AppIcon
,
ViewToolbar
,
...
...
app_Web/src/components/editor/check-box-list/ibiz-checkbox/ibiz-checkbox.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
computed
,
defineComponent
,
ref
,
watch
}
from
'vue'
;
import
{
getCheckboxProps
,
getEditorEmits
,
useNamespace
,
}
from
'@ibiz-template/vue-util'
;
import
{
isNil
}
from
'ramda'
;
import
'@ibiz-template/theme/style/components/editor/ibiz-checkbox/ibiz-checkbox.scss'
;
export
const
IBizCheckbox
=
defineComponent
({
name
:
'IBizCheckbox'
,
props
:
getCheckboxProps
(),
emits
:
getEditorEmits
(),
setup
(
props
,
{
emit
})
{
const
ns
=
useNamespace
(
'checkbox'
);
const
c
=
props
.
controller
;
const
editorModel
=
c
.
model
;
const
codeList
=
editorModel
.
codeList
;
// 代码表数据
const
items
=
ref
<
readonly
IData
[]
>
([]);
watch
(
()
=>
props
.
data
,
newVal
=>
{
c
.
loadCodeList
(
newVal
).
then
(
_codeList
=>
{
items
.
value
=
_codeList
;
});
},
{
immediate
:
true
,
deep
:
true
,
},
);
// 当前模式
const
currentMode
=
computed
(()
=>
{
if
(
codeList
&&
codeList
.
orMode
)
{
return
codeList
.
orMode
.
toLowerCase
();
}
return
'str'
;
});
// 值分隔符
let
valueSeparator
=
','
;
if
(
codeList
&&
codeList
.
valueSeparator
)
{
valueSeparator
=
codeList
.
valueSeparator
;
}
// 选中数组
const
selectArray
=
computed
({
get
()
{
if
(
!
isNil
(
props
.
value
))
{
if
(
Object
.
is
(
currentMode
.
value
,
'num'
)
&&
items
)
{
const
selectsArray
:
Array
<
string
|
number
>
=
[];
const
num
:
number
=
typeof
props
.
value
===
'string'
?
parseInt
(
props
.
value
,
10
)
:
props
.
value
;
items
.
value
.
forEach
((
item
:
IData
)
=>
{
// eslint-disable-next-line no-bitwise
if
((
num
&
item
.
value
)
===
item
.
value
)
{
selectsArray
.
push
(
item
.
value
);
}
});
return
selectsArray
;
}
if
(
Object
.
is
(
currentMode
.
value
,
'str'
))
{
const
strVal
=
props
.
value
!
as
String
;
if
(
strVal
!==
''
)
{
if
(
codeList
)
{
const
selects
:
Array
<
string
|
number
>
=
strVal
.
split
(
valueSeparator
);
if
(
codeList
.
codeItemValueNumber
)
{
for
(
let
i
=
0
,
len
=
selects
.
length
;
i
<
len
;
i
++
)
{
selects
[
i
]
=
Number
(
selects
[
i
]);
}
}
return
selects
;
}
return
strVal
.
split
(
','
);
}
}
}
return
[];
},
set
(
val
:
Array
<
string
|
number
>
)
{
let
value
:
null
|
string
|
number
|
string
[]
=
null
;
if
(
Object
.
is
(
currentMode
.
value
,
'num'
))
{
let
temp
:
number
=
0
;
val
.
forEach
(
item
=>
{
const
numVal
:
number
=
typeof
item
===
'string'
?
parseInt
(
item
,
10
)
:
item
;
// eslint-disable-next-line no-bitwise
temp
|=
numVal
;
});
value
=
temp
;
}
else
if
(
Object
.
is
(
currentMode
.
value
,
'str'
))
{
const
_datas
:
string
[]
=
[];
if
(
items
.
value
.
length
>
0
)
{
items
.
value
.
forEach
((
_item
:
IData
)
=>
{
const
index
=
val
.
findIndex
((
_key
:
unknown
)
=>
Object
.
is
(
_item
.
value
,
_key
),
);
if
(
index
===
-
1
)
{
return
;
}
_datas
.
push
(
_item
.
value
);
});
value
=
_datas
.
join
(
valueSeparator
);
}
}
emit
(
'change'
,
value
);
},
});
const
onSelectArrayChange
=
(
value
:
Array
<
string
|
number
>
)
=>
{
selectArray
.
value
=
value
;
};
return
{
ns
,
items
,
selectArray
,
onSelectArrayChange
,
};
},
render
()
{
return
(
<
div
class=
{
this
.
ns
.
b
()
}
>
{
this
.
infoMode
?
(
this
.
value
)
:
(
<
i
-
checkbox
-
group
value=
{
this
.
selectArray
}
on
-
on
-
change=
{
this
.
onSelectArrayChange
}
>
{
this
.
items
.
map
((
_item
,
index
:
number
)
=>
(
<
i
-
checkbox
key=
{
index
}
label=
{
_item
.
value
}
readonly=
{
this
.
controller
.
model
.
readOnly
}
>
<
span
class=
{
this
.
ns
.
e
(
'text'
)
}
>
{
_item
.
text
}
</
span
>
</
i
-
checkbox
>
))
}
</
i
-
checkbox
-
group
>
)
}
</
div
>
);
},
});
app_Web/src/components/editor/check-box-list/ibiz-grid-checkbox/ibiz-grid-checkbox.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
defineComponent
}
from
'vue'
;
import
{
getGridInputProps
,
useGridCellEditor
,
useNamespace
,
}
from
'@ibiz-template/vue-util'
;
import
'@ibiz-template/theme/style/components/editor/ibiz-input/ibiz-input.scss'
;
export
const
IBizGridCheckbox
=
defineComponent
({
name
:
'IBizGridCheckbox'
,
props
:
getGridInputProps
(),
setup
(
props
)
{
const
ns
=
useNamespace
(
'grid-checkbox'
);
const
{
isInfoMode
,
componentRef
,
onOperateChange
,
onChange
}
=
useGridCellEditor
(
props
.
rowDataChange
,
{
isCacheValue
:
true
,
});
return
{
ns
,
isInfoMode
,
componentRef
,
onOperateChange
,
onChange
,
};
},
render
(
h
)
{
return
(
<
div
ref=
'componentRef'
class=
{
`${this.ns.b()} ibiz-grid-editor`
}
onDblclick=
{
evt
=>
evt
.
stopPropagation
()
}
onClick=
{
evt
=>
evt
.
stopPropagation
()
}
>
{
h
(
'IBizCheckbox'
,
{
props
:
{
...
this
.
$props
,
infoMode
:
this
.
isInfoMode
,
},
on
:
{
change
:
this
.
onChange
,
operate
:
this
.
onOperateChange
,
},
})
}
</
div
>
);
},
});
app_Web/src/components/editor/check-box-list/index.ts
0 → 100644
浏览文件 @
90a10cf9
export
{
IBizCheckbox
}
from
'./ibiz-checkbox/ibiz-checkbox'
;
export
{
IBizGridCheckbox
}
from
'./ibiz-grid-checkbox/ibiz-grid-checkbox'
;
app_Web/src/components/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
PickerEditorController
}
from
'@ibiz-template/controller'
;
import
{
ref
,
watch
,
Ref
,
defineComponent
,
PropType
}
from
'vue'
;
import
{
useNamespace
}
from
'@ibiz-template/vue-util'
;
import
'@ibiz-template/theme/style/components/editor/ibiz-mpicker/ibiz-mpicker.scss'
;
export
const
IBizMPicker
=
defineComponent
({
name
:
'IBizMPicker'
,
props
:
{
value
:
{
type
:
String
,
},
controller
:
{
type
:
PickerEditorController
,
},
data
:
{
type
:
Object
as
PropType
<
IData
>
,
},
disabled
:
{
type
:
Boolean
,
},
},
emits
:
{
change
:
(
_value
:
Array
<
string
>
|
string
|
null
,
_tag
?:
string
)
=>
true
,
},
setup
(
props
,
{
emit
})
{
const
ns
=
useNamespace
(
'mpicker'
);
const
c
=
props
.
controller
!
;
// 当前表单项绑定值key的集合
const
curValue
:
Ref
<
Array
<
string
>>
=
ref
([]);
// 实体数据集
const
items
:
Ref
<
IData
[]
>
=
ref
([]);
// 选中项key-value键值对
const
selectItems
:
Ref
<
IData
[]
>
=
ref
([]);
// 下拉是否打开
const
open
=
ref
(
false
);
// 加载中
const
loading
:
Ref
<
boolean
>
=
ref
(
false
);
// 格式化值,把实体属性名格式化成srfkey和srfmajortext
const
formatValue
=
(
value
:
IData
[])
=>
{
let
result
:
IData
[]
=
[];
if
(
c
.
keyName
!==
'srfkey'
||
c
.
textName
!==
'srfmajortext'
)
{
value
.
forEach
((
item
:
IData
)
=>
{
result
.
push
({
srfmajortext
:
item
[
c
.
textName
]
||
item
.
srfmajortext
,
srfkey
:
item
[
c
.
keyName
],
});
});
}
else
{
result
=
value
;
}
return
result
;
};
// 解析值,把srfkey和srfmajortext解析成实体属性名
const
parseValue
=
(
value
:
IData
[])
=>
{
let
result
:
IData
[]
=
[];
if
(
c
.
keyName
!==
'srfkey'
||
c
.
textName
!==
'srfmajortext'
)
{
value
.
forEach
((
item
:
IData
)
=>
{
result
.
push
({
[
c
.
textName
]:
item
.
srfmajortext
,
[
c
.
keyName
]:
item
.
srfkey
,
});
});
}
else
{
result
=
value
;
}
return
result
;
};
// 监听传入值
watch
(
()
=>
props
.
value
,
newVal
=>
{
curValue
.
value
=
[];
selectItems
.
value
=
[];
if
(
newVal
)
{
try
{
selectItems
.
value
=
parseValue
(
JSON
.
parse
(
newVal
));
selectItems
.
value
.
forEach
((
item
:
IData
)
=>
{
curValue
.
value
.
push
(
item
[
c
.
keyName
]);
const
index
=
items
.
value
.
findIndex
(
i
=>
Object
.
is
(
i
[
c
.
keyName
],
item
[
c
.
keyName
]),
);
if
(
index
<
0
)
{
items
.
value
.
push
({
[
c
.
keyName
]:
item
[
c
.
keyName
],
[
c
.
textName
]:
item
[
c
.
textName
]
||
item
.
srfmajortext
,
});
}
});
}
catch
(
error
)
{
if
((
error
as
IData
).
name
===
'SyntaxError'
)
{
const
srfkeys
:
string
[]
=
newVal
.
split
(
','
);
let
srfmajortexts
:
string
[]
=
[];
if
(
c
.
valueItem
&&
props
.
data
!
[
c
.
valueItem
])
{
srfmajortexts
=
props
.
data
!
[
c
.
valueItem
].
split
(
','
);
}
if
(
srfkeys
&&
srfkeys
.
length
>
0
&&
srfmajortexts
&&
srfmajortexts
.
length
>
0
&&
srfkeys
.
length
===
srfmajortexts
.
length
)
{
srfkeys
.
forEach
((
id
:
string
,
index
:
number
)
=>
{
curValue
.
value
.
push
(
id
);
selectItems
.
value
.
push
({
[
c
.
keyName
]:
id
,
[
c
.
textName
]:
srfmajortexts
[
index
],
});
const
_index
=
items
.
value
.
findIndex
(
i
=>
Object
.
is
(
i
[
c
.
keyName
],
id
),
);
if
(
_index
<
0
)
{
items
.
value
.
push
({
[
c
.
keyName
]:
id
,
[
c
.
textName
]:
srfmajortexts
[
index
],
});
}
});
}
}
}
}
},
{
immediate
:
true
,
deep
:
true
},
);
// 处理视图关闭,往外抛值
const
handleOpenViewClose
=
(
result
:
IData
[])
=>
{
const
selects
:
IData
[]
=
[];
if
(
result
&&
Array
.
isArray
(
result
))
{
result
.
forEach
((
select
:
IData
)
=>
{
selects
.
push
({
[
c
.
keyName
]:
select
[
c
.
keyName
]
||
select
.
srfkey
,
[
c
.
textName
]:
select
[
c
.
textName
]
||
select
.
srfmajortext
,
});
const
index
=
items
.
value
.
findIndex
(
item
=>
Object
.
is
(
item
[
c
.
keyName
],
select
[
c
.
keyName
]),
);
if
(
index
<
0
)
{
items
.
value
.
push
({
[
c
.
textName
]:
select
[
c
.
textName
]
||
select
.
srfmajortext
,
[
c
.
keyName
]:
select
[
c
.
keyName
],
});
}
});
}
if
(
props
.
data
)
{
const
value
=
selects
.
length
>
0
?
JSON
.
stringify
(
formatValue
(
selects
))
:
''
;
emit
(
'change'
,
value
);
}
};
// 打开数据选择视图
const
openPickUpView
=
async
()
=>
{
// TODO 后续参数
// const _selectItems: IData[] = JSON.parse(JSON.stringify(selectItems.value));
// if (!Object.is(c.keyName, 'srfkey')) {
// _selectItems.forEach((item: IData, index: number) => {
// _selectItems[index].srfkey = item[c.keyName];
// });
// }
// if (!Object.is(c.textName, 'srfmajortext')) {
// _selectItems.forEach((item: IData, index: number) => {
// _selectItems[index].srfmajortext = item[c.textName] || item.srfmajortext;
// });
// }
// Object.assign(c.context, {
// srfparentdata: { srfparentkey: props.data[c.keyName] },
// });
// Object.assign(c.params, { selectedData: [..._selectItems] });
const
res
=
await
c
.
openPickUpView
(
props
.
data
!
);
if
(
res
)
{
handleOpenViewClose
(
res
);
}
};
// 下拉选中回调
const
onSelect
=
(
selects
:
string
[])
=>
{
const
val
:
Array
<
IData
>
=
[];
if
(
selects
.
length
>
0
)
{
selects
.
forEach
((
select
:
string
)
=>
{
let
index
=
items
.
value
.
findIndex
(
item
=>
Object
.
is
(
item
[
c
.
keyName
],
select
),
);
if
(
index
>=
0
)
{
const
item
=
items
.
value
[
index
];
val
.
push
({
[
c
.
keyName
]:
item
[
c
.
keyName
],
[
c
.
textName
]:
item
[
c
.
textName
]
||
item
.
srfmajortext
,
});
}
else
{
index
=
selectItems
.
value
.
findIndex
((
item
:
IData
)
=>
Object
.
is
(
item
[
c
.
keyName
],
select
),
);
if
(
index
>=
0
)
{
const
item
=
selectItems
.
value
[
index
];
val
.
push
(
item
);
}
}
});
const
value
=
val
.
length
>
0
?
JSON
.
stringify
(
formatValue
(
val
))
:
''
;
emit
(
'change'
,
value
);
}
else
{
emit
(
'change'
,
''
);
}
};
// 搜索
const
onSearch
=
async
(
query
:
string
)
=>
{
if
(
c
.
model
.
appDataEntity
)
{
loading
.
value
=
true
;
try
{
const
res
=
await
c
.
getServiceData
(
query
,
props
.
data
!
);
loading
.
value
=
false
;
if
(
res
)
{
items
.
value
=
res
.
data
as
IData
[];
}
}
catch
(
error
)
{
loading
.
value
=
false
;
}
}
};
// 下拉打开
const
onSelectOpen
=
(
flag
:
boolean
)
=>
{
open
.
value
=
flag
;
if
(
open
.
value
)
{
items
.
value
=
[];
onSearch
(
''
);
}
};
return
{
ns
,
c
,
curValue
,
loading
,
items
,
onSearch
,
onSelectOpen
,
onSelect
,
openPickUpView
,
};
},
render
()
{
return
(
<
div
class=
{
this
.
ns
.
b
()
}
>
<
i
-
select
value=
{
this
.
curValue
}
filterable
multiple
loading=
{
this
.
loading
}
placeholder=
{
this
.
c
.
placeHolder
}
remote
-
method=
{
this
.
onSearch
}
on
-
on
-
open
-
change=
{
this
.
onSelectOpen
}
on
-
on
-
change=
{
this
.
onSelect
}
disabled=
{
this
.
disabled
}
>
{
this
.
items
.
map
((
item
,
index
)
=>
{
return
(
<
i
-
option
key=
{
index
}
value=
{
item
[
this
.
c
.
keyName
]
}
>
{
item
[
this
.
c
.
textName
]
}
</
i
-
option
>
);
})
}
</
i
-
select
>
<
div
class=
{
this
.
ns
.
e
(
'btns'
)
}
>
{
this
.
c
.
pickupView
?
(
<
i
-
button
icon=
'ios-search'
on
-
click=
{
this
.
openPickUpView
}
type=
{
'text'
}
></
i
-
button
>
)
:
null
}
</
div
>
</
div
>
);
},
});
app_Web/src/components/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
PickerEditorController
}
from
'@ibiz-template/controller'
;
import
{
ref
,
Ref
,
watch
,
defineComponent
,
PropType
}
from
'vue'
;
import
{
useNamespace
}
from
'@ibiz-template/vue-util'
;
import
{
debounce
}
from
'lodash-es'
;
import
{
isNil
}
from
'ramda'
;
import
'@ibiz-template/theme/style/components/editor/ibiz-picker-dropdown/ibiz-picker-dropdown.scss'
;
export
const
IBizPickerDropDown
=
defineComponent
({
name
:
'IBizPickerDropDown'
,
props
:
{
value
:
{
type
:
String
,
},
controller
:
{
type
:
PickerEditorController
,
},
data
:
{
type
:
Object
as
PropType
<
IData
>
,
required
:
true
,
},
disabled
:
{
type
:
Boolean
,
},
},
emits
:
{
change
:
(
_value
?:
string
|
Array
<
string
>
|
IData
|
null
,
_tag
?:
string
)
=>
true
,
},
setup
(
props
,
{
emit
})
{
const
ns
=
useNamespace
(
'picker-dropdown'
);
const
c
=
props
.
controller
as
PickerEditorController
;
// 允许搜索
const
allowSearch
=
ref
(
true
);
// 当前值
const
curValue
:
Ref
<
Array
<
string
>
|
string
|
null
>
=
ref
(
''
);
// 实体数据集
const
items
:
Ref
<
IData
[]
>
=
ref
([]);
// 是否显示所有数据
const
isShowAll
=
ref
(
true
);
watch
(
()
=>
props
.
value
,
newVal
=>
{
if
(
newVal
||
newVal
===
null
)
{
curValue
.
value
=
newVal
;
const
value
=
props
.
data
[
c
.
valueItem
];
const
index
=
items
.
value
.
findIndex
((
item
:
IData
)
=>
Object
.
is
(
item
[
c
.
keyName
],
value
),
);
if
(
index
!==
-
1
)
{
return
;
}
// items里匹配不到当前值项值时,生成自身的选项
items
.
value
=
[];
if
(
!
isNil
(
newVal
)
&&
!
isNil
(
value
))
{
items
.
value
.
push
({
[
c
.
textName
]:
newVal
,
[
c
.
keyName
]:
value
});
}
}
},
{
immediate
:
true
},
);
// 获取关联数据项值
const
refValue
=
ref
(
''
);
watch
(
()
=>
props
.
data
[
c
.
valueItem
],
(
newVal
,
oldVal
)
=>
{
if
(
newVal
!==
oldVal
)
{
refValue
.
value
=
newVal
;
}
},
{
immediate
:
true
,
deep
:
true
},
);
// 下拉是否打开
const
open
=
ref
(
false
);
// 加载中
const
loading
:
Ref
<
boolean
>
=
ref
(
false
);
// 往外抛值
const
onACSelect
=
async
(
item
:
IData
)
=>
{
// 处理回填数据
const
dataItems
=
await
c
.
calcFillDataItems
(
item
);
if
(
dataItems
.
length
)
{
dataItems
.
forEach
(
dataItem
=>
{
emit
(
'change'
,
dataItem
.
value
,
dataItem
.
name
);
});
}
// 处理值项和本身的值
if
(
c
.
valueItem
)
{
emit
(
'change'
,
item
[
c
.
keyName
],
c
.
valueItem
);
}
emit
(
'change'
,
item
[
c
.
textName
]);
isShowAll
.
value
=
true
;
};
// 值变更
const
onSelect
=
(
select
:
string
|
Array
<
string
>
)
=>
{
const
index
=
items
.
value
.
findIndex
(
item
=>
Object
.
is
(
item
[
c
.
keyName
],
select
),
);
if
(
index
>=
0
)
{
onACSelect
(
items
.
value
[
index
]);
}
};
// 在搜索中时,再次触发搜索记录搜索值,等待上次搜索触发完成后再次搜索
let
waitQuery
:
string
|
null
=
null
;
// 搜索
const
onSearch
=
async
(
query
:
string
)
=>
{
if
(
c
.
model
.
appDataEntity
&&
loading
.
value
===
false
)
{
loading
.
value
=
true
;
try
{
const
res
=
await
c
.
getServiceData
(
query
,
props
.
data
!
);
if
(
res
)
{
items
.
value
=
res
.
data
as
IData
[];
}
}
finally
{
loading
.
value
=
false
;
if
(
waitQuery
!=
null
)
{
const
selfQuery
=
waitQuery
;
waitQuery
=
null
;
await
onSearch
(
selfQuery
);
}
}
}
else
{
waitQuery
=
query
;
}
};
// 搜索词改变时触发
const
queryChange
=
debounce
((
query
:
string
)
=>
{
if
(
(
query
!==
curValue
.
value
||
curValue
.
value
===
null
)
&&
allowSearch
.
value
)
{
isShowAll
.
value
=
false
;
onSearch
(
query
);
}
},
1000
);
// 下拉打开
const
onSelectOpen
=
(
flag
:
boolean
)
=>
{
open
.
value
=
flag
;
if
(
open
.
value
)
{
allowSearch
.
value
=
true
;
items
.
value
=
[];
const
query
=
isShowAll
.
value
?
''
:
curValue
.
value
;
onSearch
(
query
as
string
);
}
};
// 清除
const
onClear
=
()
=>
{
// 清空回填数据
const
dataItems
=
c
.
model
.
deACMode
?.
dataItems
;
if
(
dataItems
?.
length
)
{
dataItems
.
forEach
(
dataItem
=>
{
emit
(
'change'
,
null
,
dataItem
.
name
);
});
}
if
(
c
.
valueItem
)
{
emit
(
'change'
,
null
,
c
.
valueItem
);
}
emit
(
'change'
,
null
);
};
return
{
ns
,
c
,
refValue
,
loading
,
items
,
isShowAll
,
allowSearch
,
onSearch
,
queryChange
,
onSelectOpen
,
onClear
,
onSelect
,
};
},
render
()
{
return
(
<
div
class=
{
this
.
ns
.
b
()
}
>
<
i
-
select
value=
{
this
.
refValue
}
filterable
allow
-
clear
clearable
remote
-
method=
{
this
.
queryChange
}
loading=
{
this
.
loading
}
placeholder=
{
this
.
c
.
placeHolder
}
on
-
on
-
open
-
change=
{
this
.
onSelectOpen
}
on
-
on
-
change=
{
this
.
onSelect
}
on
-
on
-
clear=
{
this
.
onClear
}
disabled=
{
this
.
disabled
}
>
{
this
.
items
.
map
((
item
,
index
)
=>
{
return
(
<
i
-
option
value=
{
item
[
this
.
c
.
keyName
]
}
key=
{
index
}
>
{
item
[
this
.
c
.
textName
]
}
</
i
-
option
>
);
})
}
</
i
-
select
>
</
div
>
);
},
});
app_Web/src/components/editor/data-picker/ibiz-picker-link/ibiz-picker-link.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
PickerEditorController
}
from
'@ibiz-template/controller'
;
import
{
defineComponent
,
PropType
,
ref
,
Ref
,
watch
}
from
'vue'
;
import
{
useNamespace
}
from
'@ibiz-template/vue-util'
;
export
const
IBizPickerLink
=
defineComponent
({
name
:
'IBizPickerLink'
,
props
:
{
value
:
{
type
:
String
,
},
controller
:
{
type
:
PickerEditorController
,
},
data
:
{
type
:
Object
as
PropType
<
IData
>
,
},
},
emits
:
{
change
:
(
_value
:
Array
<
string
|
number
>
|
string
,
_tag
?:
string
)
=>
true
,
},
setup
(
props
,
{
emit
})
{
const
ns
=
useNamespace
(
'picker-link'
);
const
c
=
props
.
controller
!
;
const
curValue
:
Ref
<
string
>
=
ref
(
''
);
watch
(
()
=>
props
.
value
,
(
newVal
,
oldVal
)
=>
{
if
(
newVal
&&
newVal
!==
oldVal
)
{
curValue
.
value
=
`
${
newVal
}
`
;
}
},
{
immediate
:
true
},
);
// 处理视图关闭,往外抛值
const
handleOpenViewClose
=
(
result
:
IData
[])
=>
{
const
item
:
IData
=
{};
if
(
result
&&
Array
.
isArray
(
result
))
{
Object
.
assign
(
item
,
result
[
0
]);
}
if
(
c
.
valueItem
)
{
emit
(
'change'
,
item
[
c
.
keyName
],
c
.
valueItem
);
}
emit
(
'change'
,
item
[
c
.
textName
]);
};
// 打开数据链接视图
const
openLinkView
=
async
()
=>
{
const
res
=
await
c
.
openLinkView
(
props
.
data
!
);
if
(
res
)
{
handleOpenViewClose
(
res
);
}
};
return
{
ns
,
openLinkView
,
curValue
};
},
render
()
{
return
(
<
div
class=
{
this
.
ns
.
b
()
}
>
<
a
on
-
click=
{
this
.
openLinkView
}
>
{
this
.
curValue
}
</
a
>
</
div
>
);
},
});
app_Web/src/components/editor/data-picker/ibiz-picker/ibiz-picker.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
PickerEditorController
}
from
'@ibiz-template/controller'
;
import
{
ref
,
watch
,
Ref
,
defineComponent
,
PropType
}
from
'vue'
;
import
{
useNamespace
}
from
'@ibiz-template/vue-util'
;
import
{
isEmpty
}
from
'ramda'
;
import
'@ibiz-template/theme/style/components/editor/ibiz-picker/ibiz-picker.scss'
;
export
const
IBizPicker
=
defineComponent
({
name
:
'IBizPicker'
,
props
:
{
value
:
{
type
:
String
,
},
controller
:
{
type
:
PickerEditorController
,
},
data
:
{
type
:
Object
as
PropType
<
IData
>
,
required
:
true
,
},
disabled
:
{
type
:
Boolean
,
},
},
setup
(
props
,
{
emit
})
{
const
ns
=
useNamespace
(
'picker'
);
const
c
=
props
.
controller
!
;
// 当前值
const
curValue
:
Ref
<
Array
<
string
>
|
string
|
null
>
=
ref
(
''
);
// 实体数据集
const
items
:
Ref
<
IData
[]
>
=
ref
([]);
// 是否显示所有数据
const
isShowAll
=
ref
(
true
);
watch
(
()
=>
props
.
value
,
newVal
=>
{
if
(
newVal
||
newVal
===
null
)
{
curValue
.
value
=
newVal
;
if
(
newVal
===
null
)
{
curValue
.
value
=
''
;
}
const
value
=
props
.
data
[
c
.
valueItem
];
const
index
=
items
.
value
.
findIndex
((
item
:
IData
)
=>
Object
.
is
(
item
[
c
.
keyName
],
value
),
);
if
(
index
!==
-
1
)
{
return
;
}
// items里匹配不到当前值项值时,生成自身的选项
items
.
value
=
[];
if
(
!
isEmpty
(
newVal
)
&&
!
isEmpty
(
value
))
{
items
.
value
.
push
({
[
c
.
textName
]:
newVal
,
[
c
.
keyName
]:
value
});
}
}
},
{
immediate
:
true
},
);
// 处理选中数据后的处理逻辑
const
handleDataSelect
=
async
(
data
:
IData
)
=>
{
// 处理回填数据
const
dataItems
=
await
c
.
calcFillDataItems
(
data
);
if
(
dataItems
.
length
)
{
dataItems
.
forEach
(
dataItem
=>
{
emit
(
'change'
,
dataItem
.
value
,
dataItem
.
name
);
});
}
// 处理值项和本身的值
if
(
c
.
valueItem
)
{
emit
(
'change'
,
data
[
c
.
keyName
],
c
.
valueItem
);
}
emit
(
'change'
,
data
[
c
.
textName
]);
};
// 打开数据选择视图
const
openPickUpView
=
async
()
=>
{
const
res
=
await
c
.
openPickUpView
(
props
.
data
);
if
(
res
&&
res
[
0
])
{
await
handleDataSelect
(
res
[
0
]);
}
};
// 打开数据链接视图
const
openLinkView
=
async
()
=>
{
await
c
.
openLinkView
(
props
.
data
);
};
// 往外抛值
const
onACSelect
=
async
(
item
:
IData
)
=>
{
await
handleDataSelect
(
item
);
isShowAll
.
value
=
true
;
};
// 搜索
const
onSearch
=
async
(
query
:
string
)
=>
{
if
(
c
.
model
.
appDataEntity
)
{
const
res
=
await
c
.
getServiceData
(
query
,
props
.
data
);
if
(
res
)
{
items
.
value
=
res
.
data
as
IData
[];
}
}
};
// 清除
const
onClear
=
()
=>
{
// 清空回填数据
const
dataItems
=
c
.
model
.
deACMode
?.
dataItems
;
if
(
dataItems
?.
length
)
{
dataItems
.
forEach
(
dataItem
=>
{
emit
(
'change'
,
null
,
dataItem
.
name
);
});
}
if
(
c
.
valueItem
)
{
emit
(
'change'
,
null
,
c
.
valueItem
);
}
emit
(
'change'
,
null
);
};
// 聚焦
const
onFocus
=
(
e
:
IData
)
=>
{
const
query
=
isShowAll
.
value
?
''
:
e
.
target
.
value
;
onSearch
(
query
);
};
const
closeCircle
=
(
c
.
linkView
?
1
:
0
)
+
(
c
.
pickupView
?
1
:
0
);
return
{
ns
,
c
,
curValue
,
items
,
openPickUpView
,
openLinkView
,
onACSelect
,
onSearch
,
onClear
,
onFocus
,
closeCircle
,
};
},
render
()
{
return
(
<
div
class=
{
this
.
ns
.
b
()
}
>
{
this
.
c
.
noAC
?
(
<
i
-
input
value=
{
this
.
curValue
}
clearable
placeholder=
{
this
.
c
.
placeHolder
}
on
-
on
-
clear=
{
this
.
onClear
}
disabled=
{
this
.
disabled
}
>
{
this
.
$slots
.
append
}
{
!
this
.
$slots
.
append
&&
this
.
c
.
pickupView
?
(
<
i
-
button
key=
'ios-search'
icon=
'ios-search'
on
-
click=
{
this
.
openPickUpView
}
></
i
-
button
>
)
:
null
}
{
!
this
.
$slots
.
append
&&
this
.
c
.
linkView
?
(
<
i
-
button
key=
'ios-search-outline'
icon=
'ios-search-outline'
on
-
click=
'openLinkView'
></
i
-
button
>
)
:
null
}
</
i
-
input
>
)
:
(
<
div
class=
{
[
this
.
ns
.
e
(
'autocomplete'
),
this
.
ns
.
m
(
this
.
closeCircle
.
toString
()),
]
}
>
<
i
-
auto
-
complete
value=
{
this
.
curValue
}
placeholder=
{
this
.
c
.
placeHolder
}
placement=
'bottom'
clearable
transfer
-
class
-
name=
{
this
.
ns
.
e
(
'transfer'
)
}
on
-
on
-
focus=
{
this
.
onFocus
}
on
-
on
-
search=
{
this
.
onSearch
}
on
-
on
-
clear=
{
this
.
onClear
}
disabled=
{
this
.
disabled
}
>
{
this
.
items
.
map
(
item
=>
{
return
(
<
div
class=
{
this
.
ns
.
e
(
'transfer-item'
)
}
on
-
click=
{
()
=>
{
this
.
onACSelect
(
item
);
}
}
>
{
item
[
this
.
c
.
textName
]
}
</
div
>
);
})
}
</
i
-
auto
-
complete
>
<
div
class=
{
this
.
ns
.
e
(
'btns'
)
}
>
{
this
.
c
.
pickupView
?
(
<
i
-
button
icon=
'ios-search'
on
-
click=
{
this
.
openPickUpView
}
type=
{
'text'
}
></
i
-
button
>
)
:
null
}
{
this
.
c
.
linkView
?
(
<
i
-
button
on
-
click=
{
this
.
openLinkView
}
type=
{
'text'
}
class=
{
this
.
ns
.
e
(
'link'
)
}
>
<
ion
-
icon
src=
{
'./assets/img/link.svg'
}
></
ion
-
icon
>
</
i
-
button
>
)
:
null
}
</
div
>
</
div
>
)
}
</
div
>
);
},
});
app_Web/src/components/editor/data-picker/index.ts
0 → 100644
浏览文件 @
90a10cf9
export
{
IBizPicker
}
from
'./ibiz-picker/ibiz-picker'
;
export
{
IBizPickerDropDown
}
from
'./ibiz-picker-dropdown/ibiz-picker-dropdown'
;
export
{
IBizMPicker
}
from
'./ibiz-mpicker/ibiz-mpicker'
;
export
{
IBizPickerLink
}
from
'./ibiz-picker-link/ibiz-picker-link'
;
app_Web/src/components/editor/date-picker/ibiz-date-picker/ibiz-date-picker.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
DatePickerEditorController
}
from
'@ibiz-template/controller'
;
import
{
ref
,
watch
,
defineComponent
,
PropType
}
from
'vue'
;
import
{
useNamespace
}
from
'@ibiz-template/vue-util'
;
import
'@ibiz-template/theme/style/components/editor/ibiz-date-picker/ibiz-date-picker.scss'
;
export
const
IBizDatePicker
=
defineComponent
({
name
:
'IBizDatePicker'
,
props
:
{
value
:
{
type
:
String
,
},
controller
:
{
type
:
DatePickerEditorController
,
required
:
true
,
},
data
:
{
type
:
Object
as
PropType
<
IData
>
,
},
disabled
:
{
type
:
Boolean
,
},
},
emits
:
{
change
:
(
_value
:
string
)
=>
true
,
},
setup
(
props
,
{
emit
})
{
const
ns
=
useNamespace
(
'date-picker'
);
const
c
=
props
.
controller
;
const
editorModel
=
c
!
.
model
;
const
type
=
ref
(
'date'
);
const
format
=
ref
(
'yyyy-MM-dd'
);
switch
(
editorModel
.
editorType
)
{
// 时间选择器
case
'DATEPICKER'
:
type
.
value
=
'datetime'
;
format
.
value
=
'yyyy-MM-dd HH:mm:ss'
;
break
;
// 时间选择控件
case
'DATEPICKEREX'
:
type
.
value
=
'date'
;
format
.
value
=
'yyyy-MM-dd HH:mm:ss'
;
break
;
// 时间选择控件_无小时
case
'DATEPICKEREX_NOTIME'
:
type
.
value
=
'date'
;
format
.
value
=
'yyyy-MM-dd'
;
break
;
// 时间选择控件_小时
case
'DATEPICKEREX_HOUR'
:
type
.
value
=
'datetime'
;
format
.
value
=
'yyyy-MM-dd HH'
;
break
;
// 时间选择控件_分钟
case
'DATEPICKEREX_MINUTE'
:
type
.
value
=
'datetime'
;
format
.
value
=
'yyyy-MM-dd HH:mm'
;
break
;
// 时间选择控件_秒钟
case
'DATEPICKEREX_SECOND'
:
type
.
value
=
'datetime'
;
format
.
value
=
'yyyy-MM-dd HH:mm:ss'
;
break
;
// 时间选择控件_无日期
case
'DATEPICKEREX_NODAY'
:
type
.
value
=
'datetime'
;
format
.
value
=
'HH:mm:ss'
;
break
;
// 时间选择控件_无日期无秒钟
case
'DATEPICKEREX_NODAY_NOSECOND'
:
type
.
value
=
'datetime'
;
format
.
value
=
'HH:mm'
;
break
;
// 时间选择控件_无秒钟
case
'DATEPICKEREX_NOSECOND'
:
type
.
value
=
'datetime'
;
format
.
value
=
'yyyy-MM-dd HH:mm'
;
break
;
default
:
break
;
}
// 值格式化
const
valueFormat
=
c
!
.
valueFormat
;
if
(
valueFormat
)
{
const
tempFormat
:
string
=
valueFormat
.
replace
(
'YYYY'
,
'yyyy'
)
.
replace
(
'DD'
,
'dd'
);
format
.
value
=
tempFormat
;
}
const
currentVal
=
ref
();
watch
(
()
=>
props
.
value
,
(
newVal
,
oldVal
)
=>
{
if
(
newVal
!==
oldVal
)
{
currentVal
.
value
=
newVal
||
null
;
}
},
{
immediate
:
true
},
);
// 处理值变更
const
handleChange
=
(
date
:
string
,
_dateType
:
IData
)
=>
{
emit
(
'change'
,
date
);
};
return
{
ns
,
c
,
editorModel
,
type
,
format
,
currentVal
,
handleChange
};
},
render
()
{
return
(
<
div
class=
{
this
.
ns
.
b
()
}
>
<
i
-
CalendarPicker
type=
{
this
.
type
}
format=
{
this
.
format
}
placeholder=
{
this
.
c
!
.
placeHolder
}
value=
{
this
.
currentVal
}
readonly=
{
this
.
c
!
.
model
.
readOnly
}
on
-
on
-
change=
{
this
.
handleChange
}
disabled=
{
this
.
disabled
}
></
i
-
CalendarPicker
>
</
div
>
);
},
});
app_Web/src/components/editor/date-picker/index.ts
0 → 100644
浏览文件 @
90a10cf9
export
{
IBizDatePicker
}
from
'./ibiz-date-picker/ibiz-date-picker'
;
app_Web/src/components/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
DropDownListEditorController
}
from
'@ibiz-template/controller'
;
import
{
ref
,
Ref
,
defineComponent
,
PropType
,
computed
}
from
'vue'
;
import
{
useNamespace
}
from
'@ibiz-template/vue-util'
;
import
'@ibiz-template/theme/style/components/editor/ibiz-dropdown-list/ibiz-dropdown-list.scss'
;
export
const
IBizDropDownList
=
defineComponent
({
name
:
'IBizDropDownList'
,
props
:
{
value
:
{
type
:
String
,
},
controller
:
{
type
:
DropDownListEditorController
,
},
data
:
{
type
:
Object
as
PropType
<
IData
>
,
},
disabled
:
{
type
:
Boolean
,
},
},
emits
:
{
change
:
(
_value
:
string
|
Array
<
string
>
|
null
)
=>
true
,
},
setup
(
props
,
{
emit
})
{
const
ns
=
useNamespace
(
'dropdown-list'
);
const
c
=
props
.
controller
;
// 是否是树形
const
hasChildren
=
ref
(
false
);
// 代码表
const
items
:
Ref
<
readonly
IData
[]
>
=
ref
([]);
c
!
.
loadCodeList
(
props
.
data
!
).
then
((
codeList
:
readonly
IData
[])
=>
{
items
.
value
=
codeList
;
for
(
let
i
=
0
;
i
<
codeList
.
length
;
i
++
)
{
const
_item
=
codeList
[
i
];
if
(
_item
.
children
)
{
hasChildren
.
value
=
true
;
break
;
}
}
});
// 当前值
const
curValue
:
Ref
<
Array
<
string
>
|
string
|
undefined
>
=
computed
({
get
()
{
if
(
props
.
value
)
{
return
c
!
.
multiple
?
props
.
value
?.
split
(
','
)
:
props
.
value
;
}
return
''
;
},
set
(
select
:
string
|
Array
<
string
>
)
{
const
value
=
Object
.
prototype
.
toString
.
call
(
select
)
===
'[object Array]'
?
(
select
as
Array
<
string
>
).
join
(
','
)
:
select
;
if
(
value
)
{
emit
(
'change'
,
value
);
}
else
{
emit
(
'change'
,
null
);
}
},
});
return
{
ns
,
c
,
curValue
,
items
,
hasChildren
};
},
render
()
{
return
(
<
div
class=
{
this
.
ns
.
b
()
}
>
{
this
.
hasChildren
?
(
<
div
class=
{
this
.
ns
.
e
(
'tree-select'
)
}
>
<
app
-
select
-
tree
value=
{
this
.
curValue
}
nodes
-
data=
{
this
.
items
}
multiple=
{
this
.
c
!
.
multiple
}
></
app
-
select
-
tree
>
</
div
>
)
:
(
<
div
class=
{
this
.
ns
.
e
(
'select'
)
}
>
<
i
-
select
v
-
model=
{
this
.
curValue
}
allow
-
clear
clearable
class=
{
this
.
ns
.
e
(
'dropdown-list'
)
}
multiple=
{
this
.
c
!
.
multiple
}
placeholder=
{
this
.
c
!
.
placeHolder
}
disabled=
{
this
.
disabled
}
>
{
this
.
items
.
map
(
item
=>
{
return
<
i
-
option
value=
{
item
.
value
}
>
{
item
.
text
}
</
i
-
option
>;
})
}
</
i
-
select
>
</
div
>
)
}
</
div
>
);
},
});
app_Web/src/components/editor/dropdown-list/index.ts
0 → 100644
浏览文件 @
90a10cf9
export
{
IBizDropDownList
}
from
'./ibiz-dropdown-list/ibiz-dropdown-list'
;
app_Web/src/components/editor/index.ts
0 → 100644
浏览文件 @
90a10cf9
export
*
from
'./span'
;
export
*
from
'./text-box'
;
export
*
from
'./check-box-list'
;
export
*
from
'./radio-button-list'
;
export
*
from
'./date-picker'
;
export
*
from
'./dropdown-list'
;
export
*
from
'./data-picker'
;
export
*
from
'./upload'
;
export
{
NotSupportedEditor
}
from
'./not-supported-editor/not-supported-editor'
;
app_Web/src/components/editor/not-supported-editor/not-supported-editor.tsx
浏览文件 @
90a10cf9
...
...
@@ -3,7 +3,8 @@ import { useNamespace } from '@ibiz-template/vue-util';
import
{
defineComponent
}
from
'vue'
;
import
'@ibiz-template/theme/style/components/editor/not-supported-editor/not-supported-editor.scss'
;
export
default
defineComponent
({
export
const
NotSupportedEditor
=
defineComponent
({
name
:
'NotSupportedEditor'
,
props
:
{
modelData
:
{
type
:
EditorModel
,
...
...
app_Web/src/components/editor/radio-button-list/ibiz-radio/ibiz-radio.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
RadioButtonListEditorController
}
from
'@ibiz-template/controller'
;
import
{
computed
,
defineComponent
,
ref
}
from
'vue'
;
import
type
{
PropType
}
from
'vue'
;
import
{
useNamespace
}
from
'@ibiz-template/vue-util'
;
import
'@ibiz-template/theme/style/components/editor/ibiz-radio/ibiz-radio.scss'
;
export
const
IBizRadio
=
defineComponent
({
name
:
'IBizRadio'
,
props
:
{
value
:
[
String
,
Number
],
controller
:
{
type
:
RadioButtonListEditorController
,
required
:
true
,
},
data
:
{
type
:
Object
as
PropType
<
IData
>
,
required
:
true
,
},
},
emits
:
{
change
:
(
_value
:
string
|
number
)
=>
true
,
},
setup
(
props
,
{
emit
})
{
const
ns
=
useNamespace
(
'radio'
);
const
c
=
props
.
controller
;
const
editorModel
=
c
.
model
;
const
selectValue
=
computed
({
get
()
{
return
props
.
value
||
''
;
},
set
(
newValue
:
string
|
number
)
{
emit
(
'change'
,
newValue
);
},
});
const
onSelectValueChange
=
(
value
:
string
|
number
)
=>
{
selectValue
.
value
=
value
;
};
// 代码表
const
items
=
ref
<
readonly
IData
[]
>
([]);
props
.
controller
.
loadCodeList
(
props
.
data
).
then
(
codeList
=>
{
items
.
value
=
codeList
;
});
return
{
ns
,
editorModel
,
selectValue
,
items
,
onSelectValueChange
,
};
},
render
()
{
return
(
<
div
class=
{
this
.
ns
.
b
()
}
>
<
i
-
radio
-
group
class=
{
this
.
ns
.
b
(
'group'
)
}
value=
{
this
.
selectValue
}
on
-
on
-
change=
{
this
.
onSelectValueChange
}
>
{
this
.
items
.
map
((
_item
,
index
:
number
)
=>
(
<
i
-
radio
key=
{
index
}
label=
{
_item
.
value
}
readonly=
{
this
.
editorModel
.
readOnly
}
>
<
span
class=
{
this
.
ns
.
be
(
'group'
,
'text'
)
}
>
{
_item
.
text
}
</
span
>
</
i
-
radio
>
))
}
</
i
-
radio
-
group
>
</
div
>
);
},
});
app_Web/src/components/editor/radio-button-list/index.ts
0 → 100644
浏览文件 @
90a10cf9
export
{
IBizRadio
}
from
'./ibiz-radio/ibiz-radio'
;
app_Web/src/components/editor/span/ibiz-span/ibiz-span.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
ref
,
defineComponent
,
Ref
,
watch
}
from
'vue'
;
import
type
{
PropType
}
from
'vue'
;
import
{
SpanEditorController
}
from
'@ibiz-template/controller'
;
import
{
useNamespace
}
from
'@ibiz-template/vue-util'
;
import
dayjs
from
'dayjs'
;
import
'@ibiz-template/theme/style/components/editor/ibiz-span/ibiz-span.scss'
;
export
const
IBizSpan
=
defineComponent
({
name
:
'IBizSpan'
,
props
:
{
value
:
String
,
controller
:
{
type
:
SpanEditorController
,
required
:
true
,
},
data
:
{
type
:
Object
as
PropType
<
IData
>
,
required
:
true
,
},
},
setup
(
props
)
{
const
ns
=
useNamespace
(
'span'
);
const
c
=
props
.
controller
;
const
text
:
Ref
<
string
>
=
ref
(
''
);
watch
(
()
=>
props
.
value
,
(
newVal
,
oldVal
)
=>
{
if
(
newVal
!==
oldVal
)
{
if
(
!
newVal
)
{
text
.
value
=
''
;
return
;
}
if
(
c
.
valueFormat
)
{
text
.
value
=
dayjs
(
newVal
).
format
(
c
.
valueFormat
);
}
else
{
text
.
value
=
newVal
||
''
;
}
if
(
c
.
unitName
)
{
text
.
value
+=
c
.
unitName
;
}
}
},
{
immediate
:
true
,
},
);
return
{
ns
,
text
,
};
},
render
()
{
return
<
span
class=
{
this
.
ns
.
b
()
}
>
{
this
.
text
}
</
span
>;
},
});
app_Web/src/components/editor/span/index.ts
0 → 100644
浏览文件 @
90a10cf9
export
{
IBizSpan
}
from
'./ibiz-span/ibiz-span'
;
app_Web/src/components/editor/text-box/ibiz-grid-input/ibiz-grid-input.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
defineComponent
}
from
'vue'
;
import
{
getGridInputProps
,
useGridCellEditor
,
useNamespace
,
}
from
'@ibiz-template/vue-util'
;
import
'@ibiz-template/theme/style/components/editor/ibiz-input/ibiz-input.scss'
;
export
const
IBizGridInput
=
defineComponent
({
name
:
'IBizGridInput'
,
props
:
getGridInputProps
(),
setup
(
props
)
{
const
ns
=
useNamespace
(
'grid-input'
);
const
{
isInfoMode
,
componentRef
,
onOperateChange
,
onChange
}
=
useGridCellEditor
(
props
.
rowDataChange
,
{
isCacheValue
:
true
,
});
return
{
ns
,
isInfoMode
,
componentRef
,
onOperateChange
,
onChange
,
};
},
render
(
h
)
{
return
(
<
div
ref=
'componentRef'
class=
{
`${this.ns.b()} ibiz-grid-editor`
}
onDblclick=
{
evt
=>
evt
.
stopPropagation
()
}
onClick=
{
evt
=>
evt
.
stopPropagation
()
}
>
{
h
(
'IBizInput'
,
{
props
:
{
...
this
.
$props
,
infoMode
:
this
.
isInfoMode
,
},
on
:
{
change
:
this
.
onChange
,
operate
:
this
.
onOperateChange
,
},
})
}
</
div
>
);
},
});
app_Web/src/components/editor/text-box/ibiz-input-number/ibiz-input-number.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
defineComponent
,
ref
,
watch
}
from
'vue'
;
import
type
{
PropType
}
from
'vue'
;
import
{
TextBoxEditorController
}
from
'@ibiz-template/controller'
;
import
{
useNamespace
}
from
'@ibiz-template/vue-util'
;
export
const
IBizInputNumber
=
defineComponent
({
name
:
'IBizInputNumber'
,
props
:
{
value
:
Number
,
controller
:
{
type
:
TextBoxEditorController
,
required
:
true
,
},
data
:
{
type
:
Object
as
PropType
<
IData
>
,
required
:
true
,
},
},
emits
:
{
change
:
(
_value
:
number
|
null
)
=>
true
,
},
setup
(
props
,
{
emit
})
{
const
ns
=
useNamespace
(
'input-number'
);
const
c
=
props
.
controller
;
const
currentVal
=
ref
<
number
|
null
>
(
null
);
watch
(
()
=>
props
.
value
,
(
newVal
,
oldVal
)
=>
{
if
(
newVal
!==
oldVal
)
{
currentVal
.
value
=
newVal
!
;
}
},
{
immediate
:
true
},
);
const
handleChange
=
(
e
:
number
|
null
)
=>
{
emit
(
'change'
,
e
);
};
return
{
ns
,
c
,
currentVal
,
handleChange
,
};
},
render
()
{
return
(
<
div
class=
{
this
.
ns
.
b
()
}
>
<
i
-
input
-
number
value=
{
this
.
currentVal
}
placeholder=
{
this
.
c
.
placeHolder
}
readonly=
{
this
.
c
.
model
.
readOnly
}
precision=
{
this
.
c
.
model
.
precision
}
on
-
on
-
change=
{
this
.
handleChange
}
></
i
-
input
-
number
>
</
div
>
);
},
});
app_Web/src/components/editor/text-box/ibiz-input/ibiz-input.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
computed
,
defineComponent
,
ref
,
watch
}
from
'vue'
;
import
{
debounce
}
from
'lodash-es'
;
import
{
getEditorEmits
,
getInputProps
,
useNamespace
,
}
from
'@ibiz-template/vue-util'
;
import
'@ibiz-template/theme/style/components/editor/ibiz-input/ibiz-input.scss'
;
export
const
IBizInput
=
defineComponent
({
name
:
'IBizInput'
,
props
:
getInputProps
(),
emits
:
getEditorEmits
(),
setup
(
props
,
{
emit
})
{
const
ns
=
useNamespace
(
'input'
);
const
c
=
props
.
controller
;
const
editorModel
=
c
.
model
;
// 文本域默认行数,仅在 textarea 类型下有效
const
rows
=
ref
(
2
);
if
(
editorModel
.
editorType
===
'TEXTAREA_10'
)
{
rows
.
value
=
10
;
}
// 类型
const
type
=
computed
(()
=>
{
switch
(
editorModel
.
editorType
)
{
case
'TEXTBOX'
:
return
'text'
;
case
'PASSWORD'
:
return
'password'
;
case
'TEXTAREA'
:
case
'TEXTAREA_10'
:
return
'textarea'
;
default
:
return
'string'
;
}
});
const
currentVal
=
ref
<
string
|
number
>
(
''
);
watch
(
()
=>
props
.
value
,
(
newVal
,
oldVal
)
=>
{
if
(
newVal
!==
oldVal
)
{
if
(
newVal
===
null
)
{
currentVal
.
value
=
''
;
}
else
{
currentVal
.
value
=
newVal
as
string
|
number
;
}
}
},
{
immediate
:
true
},
);
// 值变更
const
handleChange
=
debounce
((
e
:
IData
)
=>
{
emit
(
'change'
,
e
.
target
.
value
);
},
500
);
return
{
ns
,
rows
,
type
,
currentVal
,
handleChange
,
};
},
render
()
{
return
(
<
div
class=
{
`${this.ns.b()} ${this.ns.is(
'textarea',
Object.is(this.type, 'textarea'),
)}`
}
>
{
this
.
infoMode
?
(
this
.
currentVal
)
:
(
<
i
-
input
value=
{
this
.
currentVal
}
placeholder=
{
this
.
controller
.
placeHolder
}
readonly=
{
this
.
controller
.
model
.
readOnly
}
type=
{
this
.
type
}
rows=
{
this
.
rows
}
on
-
on
-
change=
{
this
.
handleChange
}
class=
{
this
.
ns
.
b
(
'input'
)
}
disabled=
{
this
.
disabled
}
></
i
-
input
>
)
}
</
div
>
);
},
});
app_Web/src/components/editor/text-box/index.ts
0 → 100644
浏览文件 @
90a10cf9
export
{
IBizInput
}
from
'./ibiz-input/ibiz-input'
;
export
{
IBizGridInput
}
from
'./ibiz-grid-input/ibiz-grid-input'
;
export
{
IBizInputNumber
}
from
'./ibiz-input-number/ibiz-input-number'
;
app_Web/src/components/editor/upload/ibiz-file-upload/ibiz-file-upload.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
UploadEditorController
}
from
'@ibiz-template/controller'
;
import
{
getCookie
}
from
'qx-util'
;
import
{
onMounted
,
ref
,
Ref
,
watch
,
defineComponent
,
PropType
}
from
'vue'
;
import
{
useNamespace
}
from
'@ibiz-template/vue-util'
;
import
{
RuntimeError
}
from
'@ibiz-template/core'
;
import
'@ibiz-template/theme/style/components/editor/ibiz-file-upload/ibiz-file-upload.scss'
;
export
const
IBizFileUpload
=
defineComponent
({
name
:
'IBizFileUpload'
,
props
:
{
value
:
{
type
:
String
,
},
controller
:
{
type
:
UploadEditorController
,
require
:
true
,
},
data
:
{
type
:
Object
as
PropType
<
IData
>
,
},
},
emits
:
{
change
:
(
_value
:
string
|
null
)
=>
true
,
},
setup
(
props
,
{
emit
})
{
const
ns
=
useNamespace
(
'file-upload'
);
const
c
=
props
.
controller
as
UploadEditorController
;
// 文件列表
const
files
:
Ref
<
IData
[]
>
=
ref
([]);
// 请求头
const
headers
:
Ref
<
IData
>
=
ref
({});
// 上传文件路径
const
uploadUrl
:
Ref
<
string
>
=
ref
(
ibiz
.
env
.
baseUrl
+
ibiz
.
env
.
UploadFile
);
// 下载文件路径
const
downloadUrl
:
Ref
<
string
>
=
ref
(
ibiz
.
env
.
ExportFile
);
// 设置files
const
setFiles
=
(
value
:
string
|
null
|
undefined
)
=>
{
if
(
value
===
null
)
{
files
.
value
=
[];
}
if
(
!
value
)
{
return
;
}
const
_files
=
JSON
.
parse
(
value
);
if
(
value
&&
Object
.
prototype
.
toString
.
call
(
_files
)
===
'[object Array]'
)
{
files
.
value
=
_files
;
}
else
{
files
.
value
=
[];
}
};
// 文件上传缓存对象
const
uploadCache
:
IData
=
{
count
:
0
,
cacheFiles
:
[],
};
// 处理参数
const
dataProcess
=
()
=>
{
let
_url
=
ibiz
.
env
.
baseUrl
+
ibiz
.
env
.
UploadFile
;
if
(
c
.
upload_params
.
length
>
0
)
{
_url
+=
'?'
;
c
.
upload_params
.
forEach
((
item
:
IData
,
i
:
number
)
=>
{
_url
+=
`
${
Object
.
keys
(
item
)[
0
]}
=
${
Object
.
values
(
item
)[
0
]}
`
;
if
(
i
<
c
.
upload_params
.
length
-
1
)
{
_url
+=
'&'
;
}
});
}
uploadUrl
.
value
=
_url
;
files
.
value
.
forEach
((
file
:
IData
)
=>
{
let
url
=
`
${
downloadUrl
.
value
}
/
${
file
.
id
}
`
;
if
(
c
.
export_params
.
length
>
0
)
{
url
+=
'?'
;
c
.
export_params
.
forEach
((
item
:
IData
,
i
:
number
)
=>
{
url
+=
`
${
Object
.
keys
(
item
)[
0
]}
=
${
Object
.
values
(
item
)[
0
]}
`
;
if
(
i
<
c
.
export_params
.
length
-
1
)
{
url
+=
'&'
;
}
});
}
// eslint-disable-next-line no-param-reassign
file
.
url
=
url
;
});
};
// 设置头
const
setHeaders
=
()
=>
{
if
(
getCookie
(
'access_token'
))
{
headers
.
value
.
Authorization
=
`Bearer
${
getCookie
(
'access_token'
)}
`
;
}
};
setHeaders
();
watch
(
()
=>
props
.
value
,
newVal
=>
{
setFiles
(
newVal
);
dataProcess
();
},
{
immediate
:
true
},
);
watch
(
()
=>
props
.
data
,
newVal
=>
{
c
.
getParams
(
newVal
!
);
},
{
immediate
:
true
,
deep
:
true
},
);
onMounted
(()
=>
{
c
.
getParams
(
props
.
data
!
);
setFiles
(
props
.
value
);
dataProcess
();
});
// 上传前回调
const
beforeUpload
=
()
=>
{
uploadCache
.
count
+=
1
;
};
// 上传成功回调
const
onSuccess
=
(
response
:
IData
)
=>
{
if
(
!
response
)
{
return
;
}
// 处理回调数据,并缓存
const
arr
:
IData
[]
=
[];
if
(
response
?.
length
>
0
)
{
for
(
let
index
=
0
;
index
<
response
.
length
;
index
++
)
{
const
file
=
response
[
index
];
arr
.
push
({
name
:
file
.
filename
,
id
:
file
.
fileid
});
}
}
else
{
arr
.
push
({
name
:
response
.
filename
,
id
:
response
.
fileid
});
}
uploadCache
.
cacheFiles
.
push
(
arr
);
uploadCache
.
count
-=
1
;
// 回调都结束后的处理
if
(
uploadCache
.
count
===
0
)
{
const
result
:
IData
[]
=
[];
// 添加已有的文件数据
files
.
value
.
forEach
((
_file
:
IData
)
=>
{
result
.
push
({
name
:
_file
.
name
,
id
:
_file
.
id
});
});
// 添加缓存的文件数据
uploadCache
.
cacheFiles
.
forEach
((
item
:
IData
[])
=>
{
result
.
push
(...
item
);
});
// 抛出值变更事件
const
value
:
string
|
null
=
result
.
length
>
0
?
JSON
.
stringify
(
result
)
:
null
;
emit
(
'change'
,
value
);
// 清空缓存的文件数据
uploadCache
.
cacheFiles
=
[];
}
};
// 上传失败回调
const
onError
=
(
error
:
IData
)
=>
{
uploadCache
.
count
-=
1
;
throw
error
;
};
// 删除回调
const
onRemove
=
(
file
:
IData
,
fileList
:
IData
[])
=>
{
const
arr
:
Array
<
IData
>
=
[];
fileList
.
forEach
((
f
:
IData
)
=>
{
if
(
f
.
id
!==
file
.
id
)
{
arr
.
push
({
name
:
f
.
name
,
id
:
f
.
id
});
}
});
const
value
:
string
|
null
=
arr
.
length
>
0
?
JSON
.
stringify
(
arr
)
:
null
;
emit
(
'change'
,
value
);
};
// 计算文件mime类型
const
calcFilemime
=
(
filetype
:
string
)
=>
{
let
mime
=
'image/png'
;
switch
(
filetype
)
{
case
'.wps'
:
mime
=
'application/kswps'
;
break
;
case
'.doc'
:
mime
=
'application/msword'
;
break
;
case
'.docx'
:
mime
=
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
;
break
;
case
'.txt'
:
mime
=
'text/plain'
;
break
;
case
'.zip'
:
mime
=
'application/zip'
;
break
;
case
'.png'
:
mime
=
'image/png'
;
break
;
case
'.gif'
:
mime
=
'image/gif'
;
break
;
case
'.jpeg'
:
mime
=
'image/jpeg'
;
break
;
case
'.jpg'
:
mime
=
'image/jpeg'
;
break
;
case
'.rtf'
:
mime
=
'application/rtf'
;
break
;
case
'.avi'
:
mime
=
'video/x-msvideo'
;
break
;
case
'.gz'
:
mime
=
'application/x-gzip'
;
break
;
case
'.tar'
:
mime
=
'application/x-tar'
;
break
;
default
:
mime
=
'image/png'
;
}
return
mime
;
};
/**
* 下载文件
*/
const
DownloadFile
=
(
url
:
string
,
file
:
IData
)
=>
{
// 发送get请求
ibiz
.
net
.
get
(
url
,
{},
{},
{
responseType
:
'blob'
,
},
)
.
then
((
response
:
IData
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
throw
new
RuntimeError
(
'下载文件失败'
);
}
// 请求成功,后台返回的是一个文件流
if
(
response
.
data
)
{
// 获取文件名
const
filename
=
file
.
name
;
const
ext
=
`.
${
filename
.
split
(
'.'
).
pop
()}
`
;
const
filetype
=
calcFilemime
(
ext
);
// 用blob对象获取文件流
const
blob
=
new
Blob
([
response
.
data
],
{
type
:
filetype
});
// 通过文件流创建下载链接
const
href
=
URL
.
createObjectURL
(
blob
);
// 创建一个a元素并设置相关属性
const
a
=
document
.
createElement
(
'a'
);
a
.
href
=
href
;
a
.
download
=
filename
;
// 添加a元素到当前网页
document
.
body
.
appendChild
(
a
);
// 触发a元素的点击事件,实现下载
a
.
click
();
// 从当前网页移除a元素
document
.
body
.
removeChild
(
a
);
// 释放blob对象
URL
.
revokeObjectURL
(
href
);
}
else
{
throw
new
RuntimeError
(
'文件流数据不存在'
);
}
});
};
// 下载文件
const
onDownload
=
(
file
:
IData
)
=>
{
const
url
=
`
${
downloadUrl
.
value
}
/
${
file
.
id
}
`
;
DownloadFile
(
url
,
file
);
};
return
{
ns
,
c
,
uploadUrl
,
headers
,
files
,
onDownload
,
onError
,
onRemove
,
onSuccess
,
beforeUpload
,
};
},
render
(
h
)
{
return
(
<
div
class=
{
this
.
ns
.
b
()
}
>
{
h
(
'IUpload'
,
{
ref
:
'fileUpload'
,
props
:
{
action
:
this
.
uploadUrl
,
headers
:
this
.
headers
,
'default-file-list'
:
this
.
files
,
multiple
:
this
.
c
.
multiple
,
type
:
this
.
c
.
isDrag
?
'drag'
:
'select'
,
accept
:
this
.
c
.
accept
,
'before-upload'
:
this
.
beforeUpload
,
'on-success'
:
this
.
onSuccess
,
'on-error'
:
this
.
onError
,
'on-remove'
:
this
.
onRemove
,
'on-preview'
:
this
.
onDownload
,
},
},
[
<
i
-
button
icon=
'ios-cloud-upload-outline'
class=
{
this
.
ns
.
b
(
'button'
)
}
>
上传文件
</
i
-
button
>,
],
)
}
</
div
>
);
},
});
app_Web/src/components/editor/upload/ibiz-grid-file-upload/ibiz-grid-file-upload.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
UploadEditorController
}
from
'@ibiz-template/controller'
;
import
{
defineComponent
,
onMounted
,
ref
,
watch
}
from
'vue'
;
import
type
{
PropType
}
from
'vue'
;
import
{
useNamespace
}
from
'@ibiz-template/vue-util'
;
import
{
getCookie
}
from
'qx-util'
;
import
{
RuntimeError
}
from
'@ibiz-template/core'
;
export
const
IBizGridFileUpload
=
defineComponent
({
name
:
'IBizGridFileUpload'
,
props
:
{
value
:
String
,
controller
:
{
type
:
UploadEditorController
,
required
:
true
,
},
data
:
{
type
:
Object
as
PropType
<
IData
>
,
required
:
true
,
},
},
emits
:
{
change
:
(
_value
:
string
|
null
)
=>
true
,
},
setup
(
props
,
{
emit
})
{
const
ns
=
useNamespace
(
'grid-file-upload'
);
const
c
=
props
.
controller
;
// 文件列表
const
files
=
ref
<
IData
[]
>
([]);
// 请求头
const
headers
=
ref
<
IData
>
({});
// 上传文件路径
const
uploadUrl
=
ref
<
string
>
(
ibiz
.
env
.
baseUrl
+
ibiz
.
env
.
UploadFile
);
// 下载文件路径
const
downloadUrl
=
ref
<
string
>
(
ibiz
.
env
.
baseUrl
+
ibiz
.
env
.
ExportFile
);
// 模态框是否显示
const
dialogVisible
=
ref
<
boolean
>
(
false
);
// 行为是否显示
const
showActions
=
ref
<
boolean
>
(
false
);
const
onDialogVisibleChange
=
(
value
:
boolean
)
=>
{
dialogVisible
.
value
=
value
;
};
// 设置files
const
setFiles
=
(
value
:
string
|
null
|
undefined
)
=>
{
if
(
value
===
null
)
{
files
.
value
=
[];
}
if
(
!
value
)
{
return
;
}
const
_files
=
JSON
.
parse
(
value
);
if
(
value
&&
Object
.
prototype
.
toString
.
call
(
_files
)
===
'[object Array]'
)
{
files
.
value
=
_files
;
}
else
{
files
.
value
=
[];
}
};
// 文件上传缓存对象
const
uploadCache
:
IData
=
{
count
:
0
,
cacheFiles
:
[],
};
// 处理参数
const
dataProcess
=
()
=>
{
let
_url
=
ibiz
.
env
.
baseUrl
+
ibiz
.
env
.
UploadFile
;
if
(
c
.
upload_params
.
length
>
0
)
{
_url
+=
'?'
;
c
.
upload_params
.
forEach
((
item
:
IData
,
i
:
number
)
=>
{
_url
+=
`
${
Object
.
keys
(
item
)[
0
]}
=
${
Object
.
values
(
item
)[
0
]}
`
;
if
(
i
<
c
.
upload_params
.
length
-
1
)
{
_url
+=
'&'
;
}
});
}
uploadUrl
.
value
=
_url
;
files
.
value
.
forEach
((
file
:
IData
)
=>
{
let
url
=
`
${
downloadUrl
.
value
}
/
${
file
.
id
}
`
;
if
(
c
.
export_params
.
length
>
0
)
{
url
+=
'?'
;
c
.
export_params
.
forEach
((
item
:
IData
,
i
:
number
)
=>
{
url
+=
`
${
Object
.
keys
(
item
)[
0
]}
=
${
Object
.
values
(
item
)[
0
]}
`
;
if
(
i
<
c
.
export_params
.
length
-
1
)
{
url
+=
'&'
;
}
});
}
// eslint-disable-next-line no-param-reassign
file
.
url
=
url
;
});
};
// 设置头
const
setHeaders
=
()
=>
{
if
(
getCookie
(
'access_token'
))
{
headers
.
value
.
Authorization
=
`Bearer
${
getCookie
(
'access_token'
)}
`
;
}
};
setHeaders
();
watch
(
()
=>
props
.
value
,
newVal
=>
{
setFiles
(
newVal
);
dataProcess
();
},
{
immediate
:
true
},
);
watch
(
()
=>
props
.
data
,
newVal
=>
{
c
.
getParams
(
newVal
);
},
{
immediate
:
true
,
deep
:
true
},
);
onMounted
(()
=>
{
c
.
getParams
(
props
.
data
);
setFiles
(
props
.
value
);
dataProcess
();
});
// 上传前回调
const
beforeUpload
=
()
=>
{
uploadCache
.
count
+=
1
;
};
// 上传成功回调
const
onSuccess
=
(
response
:
IData
)
=>
{
if
(
!
response
)
{
return
;
}
// 处理回调数据,并缓存
const
arr
:
IData
[]
=
[];
if
(
response
?.
length
>
0
)
{
for
(
let
index
=
0
;
index
<
response
.
length
;
index
++
)
{
const
file
=
response
[
index
];
arr
.
push
({
name
:
file
.
filename
,
id
:
file
.
fileid
});
}
}
else
{
arr
.
push
({
name
:
response
.
filename
,
id
:
response
.
fileid
});
}
uploadCache
.
cacheFiles
.
push
(
arr
);
uploadCache
.
count
-=
1
;
// 回调都结束后的处理
if
(
uploadCache
.
count
===
0
)
{
const
result
:
IData
[]
=
[];
// 添加已有的文件数据
files
.
value
.
forEach
((
_file
:
IData
)
=>
{
result
.
push
({
name
:
_file
.
name
,
id
:
_file
.
id
});
});
// 添加缓存的文件数据
uploadCache
.
cacheFiles
.
forEach
((
item
:
IData
[])
=>
{
result
.
push
(...
item
);
});
// 抛出值变更事件
const
value
:
string
|
null
=
result
.
length
>
0
?
JSON
.
stringify
(
result
)
:
null
;
emit
(
'change'
,
value
);
// 清空缓存的文件数据
uploadCache
.
cacheFiles
=
[];
}
};
// 上传失败回调
const
onError
=
(
error
:
IData
)
=>
{
uploadCache
.
count
-=
1
;
throw
error
;
};
// 删除回调
const
onRemove
=
(
file
:
IData
,
fileList
:
IData
[])
=>
{
const
arr
:
Array
<
IData
>
=
[];
fileList
.
forEach
((
f
:
IData
)
=>
{
if
(
f
.
id
!==
file
.
id
)
{
arr
.
push
({
name
:
f
.
name
,
id
:
f
.
id
});
}
});
const
value
:
string
|
null
=
arr
.
length
>
0
?
JSON
.
stringify
(
arr
)
:
null
;
emit
(
'change'
,
value
);
};
// 计算文件mime类型
const
calcFilemime
=
(
filetype
:
string
)
=>
{
let
mime
=
'image/png'
;
switch
(
filetype
)
{
case
'.wps'
:
mime
=
'application/kswps'
;
break
;
case
'.doc'
:
mime
=
'application/msword'
;
break
;
case
'.docx'
:
mime
=
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
;
break
;
case
'.txt'
:
mime
=
'text/plain'
;
break
;
case
'.zip'
:
mime
=
'application/zip'
;
break
;
case
'.png'
:
mime
=
'image/png'
;
break
;
case
'.gif'
:
mime
=
'image/gif'
;
break
;
case
'.jpeg'
:
mime
=
'image/jpeg'
;
break
;
case
'.jpg'
:
mime
=
'image/jpeg'
;
break
;
case
'.rtf'
:
mime
=
'application/rtf'
;
break
;
case
'.avi'
:
mime
=
'video/x-msvideo'
;
break
;
case
'.gz'
:
mime
=
'application/x-gzip'
;
break
;
case
'.tar'
:
mime
=
'application/x-tar'
;
break
;
default
:
mime
=
'image/png'
;
}
return
mime
;
};
/**
* 下载文件
*/
const
DownloadFile
=
(
url
:
string
,
file
:
IData
)
=>
{
let
tempDownloadUrl
:
string
=
url
;
const
BaseUrl
=
ibiz
.
env
.
baseUrl
;
if
(
url
.
startsWith
(
BaseUrl
))
{
tempDownloadUrl
=
url
.
replace
(
BaseUrl
,
''
);
}
// 发送get请求
ibiz
.
net
.
get
(
tempDownloadUrl
,
{},
{},
{
responseType
:
'blob'
,
},
)
.
then
((
response
:
IData
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
throw
new
RuntimeError
(
'下载文件失败'
);
}
// 请求成功,后台返回的是一个文件流
if
(
response
.
data
)
{
// 获取文件名
const
filename
=
file
.
name
;
const
ext
=
`.
${
filename
.
split
(
'.'
).
pop
()}
`
;
const
filetype
=
calcFilemime
(
ext
);
// 用blob对象获取文件流
const
blob
=
new
Blob
([
response
.
data
],
{
type
:
filetype
});
// 通过文件流创建下载链接
const
href
=
URL
.
createObjectURL
(
blob
);
// 创建一个a元素并设置相关属性
const
a
=
document
.
createElement
(
'a'
);
a
.
href
=
href
;
a
.
download
=
filename
;
// 添加a元素到当前网页
document
.
body
.
appendChild
(
a
);
// 触发a元素的点击事件,实现下载
a
.
click
();
// 从当前网页移除a元素
document
.
body
.
removeChild
(
a
);
// 释放blob对象
URL
.
revokeObjectURL
(
href
);
}
else
{
throw
new
RuntimeError
(
'文件流数据不存在'
);
}
});
};
// 下载文件
const
onDownload
=
(
file
:
IData
)
=>
{
const
url
=
`
${
downloadUrl
.
value
}
/
${
file
.
id
}
`
;
DownloadFile
(
url
,
file
);
};
return
{
ns
,
c
,
files
,
headers
,
uploadUrl
,
dialogVisible
,
showActions
,
onDialogVisibleChange
,
beforeUpload
,
onSuccess
,
onError
,
onRemove
,
onDownload
,
};
},
render
(
h
)
{
return
(
<
div
class=
{
this
.
ns
.
b
()
}
>
<
i
-
row
>
{
this
.
files
.
length
>
0
?
(
<
i
-
col
span=
{
12
}
>
<
i
-
button
on
-
click=
{
()
=>
{
this
.
dialogVisible
=
true
;
}
}
>
查看
<
badge
count=
{
this
.
files
.
length
}
></
badge
>
</
i
-
button
>
</
i
-
col
>
)
:
null
}
<
i
-
col
span=
{
this
.
files
.
length
>
0
?
12
:
24
}
>
{
h
(
'IUpload'
,
{
ref
:
'fileUploadRowPreview'
,
props
:
{
action
:
this
.
uploadUrl
,
headers
:
this
.
headers
,
'default-file-list'
:
this
.
files
,
multiple
:
this
.
c
.
multiple
,
type
:
this
.
c
.
isDrag
?
'drag'
:
'select'
,
accept
:
this
.
c
.
accept
,
'show-upload-list'
:
false
,
'before-upload'
:
this
.
beforeUpload
,
'on-success'
:
this
.
onSuccess
,
'on-error'
:
this
.
onError
,
'on-remove'
:
this
.
onRemove
,
'on-preview'
:
this
.
onDownload
,
},
},
[<
i
-
button
icon=
'ios-cloud-upload-outline'
>
上传文件
</
i
-
button
>],
)
}
</
i
-
col
>
</
i
-
row
>
<
i
-
modal
class
-
name=
{
this
.
ns
.
b
(
'upload-preview-modal'
)
}
width=
'80%'
footer
-
hide=
{
true
}
value=
{
this
.
dialogVisible
}
on
-
on
-
visible
-
change=
{
this
.
onDialogVisibleChange
}
>
<
ul
class=
{
this
.
ns
.
be
(
'upload-preview-modal'
,
'ul'
)
}
>
{
this
.
files
.
map
((
file
,
index
)
=>
(
<
li
key=
{
index
}
class=
{
this
.
ns
.
be
(
'upload-preview-modal'
,
'li'
)
}
>
<
div
class=
{
this
.
ns
.
be
(
'upload-preview-modal'
,
'box'
)
}
>
<
img
class=
{
this
.
ns
.
be
(
'upload-preview-modal'
,
'img'
)
}
src=
{
file
.
url
}
/>
<
div
class=
{
this
.
ns
.
be
(
'upload-preview-modal'
,
'actions'
)
}
on
-
mouseenter=
{
()
=>
{
this
.
showActions
=
true
;
}
}
on
-
mouseleave=
{
()
=>
{
this
.
showActions
=
false
;
}
}
>
{
this
.
showActions
?
(
<
span
class=
{
this
.
ns
.
be
(
'upload-preview-modal'
,
'download'
)
}
>
<
i
-
icon
type=
'ios-download-outline'
on
-
click=
{
()
=>
{
this
.
onDownload
(
file
);
}
}
></
i
-
icon
>
</
span
>
)
:
null
}
{
this
.
showActions
?
(
<
span
class=
{
this
.
ns
.
be
(
'upload-preview-modal'
,
'delete'
)
}
>
<
i
-
icon
type=
'ios-trash-outline'
on
-
click=
{
()
=>
{
this
.
onRemove
(
file
,
this
.
files
);
}
}
></
i
-
icon
>
</
span
>
)
:
null
}
</
div
>
</
div
>
<
div
class=
{
this
.
ns
.
be
(
'upload-preview-modal'
,
'filename'
)
}
>
{
file
.
name
}
</
div
>
</
li
>
))
}
</
ul
>
</
i
-
modal
>
</
div
>
);
},
});
app_Web/src/components/editor/upload/ibiz-image-upload/ibiz-image-upload.tsx
0 → 100644
浏览文件 @
90a10cf9
import
{
UploadEditorController
}
from
'@ibiz-template/controller'
;
import
{
defineComponent
,
onMounted
,
ref
,
watch
}
from
'vue'
;
import
type
{
PropType
}
from
'vue'
;
import
{
useNamespace
}
from
'@ibiz-template/vue-util'
;
import
{
getCookie
}
from
'qx-util'
;
import
{
RuntimeError
}
from
'@ibiz-template/core'
;
import
'@ibiz-template/theme/style/components/editor/ibiz-image-upload/ibiz-image-upload.scss'
;
export
const
IBizImageUpload
=
defineComponent
({
name
:
'IBizImageUpload'
,
props
:
{
value
:
String
,
controller
:
{
type
:
UploadEditorController
,
required
:
true
,
},
data
:
{
type
:
Object
as
PropType
<
IData
>
,
required
:
true
,
},
},
emits
:
{
change
:
(
_value
:
string
|
null
)
=>
true
,
},
setup
(
props
,
{
emit
})
{
const
ns
=
useNamespace
(
'image-upload'
);
const
c
=
props
.
controller
;
// 文件列表
const
files
=
ref
<
IData
[]
>
([]);
// 请求头
const
headers
=
ref
<
IData
>
({});
// 上传文件路径
const
uploadUrl
=
ref
<
string
>
(
ibiz
.
env
.
baseUrl
+
ibiz
.
env
.
UploadFile
);
// 下载文件路径
const
downloadUrl
=
ref
<
string
>
(
ibiz
.
env
.
baseUrl
+
ibiz
.
env
.
ExportFile
);
// 设置files
const
setFiles
=
(
value
:
string
|
null
|
undefined
)
=>
{
if
(
value
===
null
)
{
files
.
value
=
[];
}
if
(
!
value
)
{
return
;
}
const
_files
=
JSON
.
parse
(
value
);
if
(
value
&&
Object
.
prototype
.
toString
.
call
(
_files
)
===
'[object Array]'
)
{
files
.
value
=
_files
;
}
else
{
files
.
value
=
[];
}
};
// 文件上传缓存对象
const
uploadCache
:
IData
=
{
count
:
0
,
cacheFiles
:
[],
};
// 处理参数
const
dataProcess
=
()
=>
{
let
_url
=
ibiz
.
env
.
baseUrl
+
ibiz
.
env
.
UploadFile
;
if
(
c
.
upload_params
.
length
>
0
)
{
_url
+=
'?'
;
c
.
upload_params
.
forEach
((
item
:
IData
,
i
:
number
)
=>
{
_url
+=
`
${
Object
.
keys
(
item
)[
0
]}
=
${
Object
.
values
(
item
)[
0
]}
`
;
if
(
i
<
c
.
upload_params
.
length
-
1
)
{
_url
+=
'&'
;
}
});
}
uploadUrl
.
value
=
_url
;
files
.
value
.
forEach
((
file
:
IData
)
=>
{
let
url
=
`
${
downloadUrl
.
value
}
/
${
file
.
id
}
`
;
if
(
c
.
export_params
.
length
>
0
)
{
url
+=
'?'
;
c
.
export_params
.
forEach
((
item
:
IData
,
i
:
number
)
=>
{
url
+=
`
${
Object
.
keys
(
item
)[
0
]}
=
${
Object
.
values
(
item
)[
0
]}
`
;
if
(
i
<
c
.
export_params
.
length
-
1
)
{
url
+=
'&'
;
}
});
}
// eslint-disable-next-line no-param-reassign
file
.
url
=
url
;
});
};
// 设置头
const
setHeaders
=
()
=>
{
if
(
getCookie
(
'access_token'
))
{
headers
.
value
.
Authorization
=
`Bearer
${
getCookie
(
'access_token'
)}
`
;
}
};
setHeaders
();
watch
(
()
=>
props
.
value
,
newVal
=>
{
setFiles
(
newVal
);
dataProcess
();
},
{
immediate
:
true
},
);
watch
(
()
=>
props
.
data
,
newVal
=>
{
c
.
getParams
(
newVal
);
},
{
immediate
:
true
,
deep
:
true
},
);
onMounted
(()
=>
{
c
.
getParams
(
props
.
data
);
setFiles
(
props
.
value
);
dataProcess
();
});
// 上传前回调
const
beforeUpload
=
()
=>
{
uploadCache
.
count
+=
1
;
};
// 上传成功回调
const
onSuccess
=
(
response
:
IData
)
=>
{
if
(
!
response
)
{
return
;
}
// 处理回调数据,并缓存
const
arr
:
IData
[]
=
[];
if
(
response
?.
length
>
0
)
{
for
(
let
index
=
0
;
index
<
response
.
length
;
index
++
)
{
const
file
=
response
[
index
];
arr
.
push
({
name
:
file
.
filename
,
id
:
file
.
fileid
});
}
}
else
{
arr
.
push
({
name
:
response
.
filename
,
id
:
response
.
fileid
});
}
uploadCache
.
cacheFiles
.
push
(
arr
);
uploadCache
.
count
-=
1
;
// 回调都结束后的处理
if
(
uploadCache
.
count
===
0
)
{
const
result
:
IData
[]
=
[];
// 添加已有的文件数据
files
.
value
.
forEach
((
_file
:
IData
)
=>
{
result
.
push
({
name
:
_file
.
name
,
id
:
_file
.
id
});
});
// 添加缓存的文件数据
uploadCache
.
cacheFiles
.
forEach
((
item
:
IData
[])
=>
{
result
.
push
(...
item
);
});
// 抛出值变更事件
const
value
:
string
|
null
=
result
.
length
>
0
?
JSON
.
stringify
(
result
)
:
null
;
emit
(
'change'
,
value
);
// 清空缓存的文件数据
uploadCache
.
cacheFiles
=
[];
}
};
// 上传失败回调
const
onError
=
(
error
:
IData
)
=>
{
uploadCache
.
count
-=
1
;
throw
error
;
};
// 删除回调
const
onRemove
=
(
file
:
IData
,
fileList
:
IData
[])
=>
{
const
arr
:
Array
<
IData
>
=
[];
fileList
.
forEach
((
f
:
IData
)
=>
{
if
(
f
.
id
!==
file
.
id
)
{
arr
.
push
({
name
:
f
.
name
,
id
:
f
.
id
});
}
});
const
value
:
string
|
null
=
arr
.
length
>
0
?
JSON
.
stringify
(
arr
)
:
null
;
emit
(
'change'
,
value
);
};
// 计算文件mime类型
const
calcFilemime
=
(
filetype
:
string
)
=>
{
let
mime
=
'image/png'
;
switch
(
filetype
)
{
case
'.wps'
:
mime
=
'application/kswps'
;
break
;
case
'.doc'
:
mime
=
'application/msword'
;
break
;
case
'.docx'
:
mime
=
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
;
break
;
case
'.txt'
:
mime
=
'text/plain'
;
break
;
case
'.zip'
:
mime
=
'application/zip'
;
break
;
case
'.png'
:
mime
=
'image/png'
;
break
;
case
'.gif'
:
mime
=
'image/gif'
;
break
;
case
'.jpeg'
:
mime
=
'image/jpeg'
;
break
;
case
'.jpg'
:
mime
=
'image/jpeg'
;
break
;
case
'.rtf'
:
mime
=
'application/rtf'
;
break
;
case
'.avi'
:
mime
=
'video/x-msvideo'
;
break
;
case
'.gz'
:
mime
=
'application/x-gzip'
;
break
;
case
'.tar'
:
mime
=
'application/x-tar'
;
break
;
default
:
mime
=
'image/png'
;
}
return
mime
;
};
/**
* 下载文件
*/
const
DownloadFile
=
(
url
:
string
,
file
:
IData
)
=>
{
let
tempDownloadUrl
:
string
=
url
;
const
BaseUrl
=
ibiz
.
env
.
baseUrl
;
if
(
url
.
startsWith
(
BaseUrl
))
{
tempDownloadUrl
=
url
.
replace
(
BaseUrl
,
''
);
}
// 发送get请求
ibiz
.
net
.
get
(
tempDownloadUrl
,
{},
{},
{
responseType
:
'blob'
,
},
)
.
then
((
response
:
IData
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
throw
new
RuntimeError
(
'下载文件失败'
);
}
// 请求成功,后台返回的是一个文件流
if
(
response
.
data
)
{
// 获取文件名
const
filename
=
file
.
name
;
const
ext
=
`.
${
filename
.
split
(
'.'
).
pop
()}
`
;
const
filetype
=
calcFilemime
(
ext
);
// 用blob对象获取文件流
const
blob
=
new
Blob
([
response
.
data
],
{
type
:
filetype
});
// 通过文件流创建下载链接
const
href
=
URL
.
createObjectURL
(
blob
);
// 创建一个a元素并设置相关属性
const
a
=
document
.
createElement
(
'a'
);
a
.
href
=
href
;
a
.
download
=
filename
;
// 添加a元素到当前网页
document
.
body
.
appendChild
(
a
);
// 触发a元素的点击事件,实现下载
a
.
click
();
// 从当前网页移除a元素
document
.
body
.
removeChild
(
a
);
// 释放blob对象
URL
.
revokeObjectURL
(
href
);
}
else
{
throw
new
RuntimeError
(
'文件流数据不存在'
);
}
});
};
// 下载文件
const
onDownload
=
(
file
:
IData
)
=>
{
const
url
=
file
.
url
;
DownloadFile
(
url
,
file
);
};
const
dialogImageUrl
=
ref
<
string
>
(
''
);
const
dialogVisible
=
ref
<
boolean
>
(
false
);
const
onDialogVisibleChange
=
(
value
:
boolean
)
=>
{
dialogVisible
.
value
=
value
;
};
// 预览
const
onPreview
=
(
file
:
IData
)
=>
{
dialogImageUrl
.
value
=
file
.
url
;
dialogVisible
.
value
=
true
;
};
return
{
ns
,
c
,
files
,
headers
,
uploadUrl
,
dialogImageUrl
,
dialogVisible
,
beforeUpload
,
onSuccess
,
onError
,
onRemove
,
onDownload
,
onDialogVisibleChange
,
onPreview
,
};
},
render
(
h
)
{
return
(
<
div
class=
{
this
.
ns
.
b
()
}
>
<
div
class=
{
this
.
ns
.
e
(
'image-upload-list'
)
}
>
{
this
.
files
.
map
(
item
=>
(
<
div
key=
{
item
.
id
}
class=
{
this
.
ns
.
e
(
'list-item'
)
}
>
<
img
src=
{
item
.
url
}
/>
<
div
class=
{
this
.
ns
.
e
(
'list-item-cover'
)
}
>
<
i
-
icon
type=
'ios-eye-outline'
on
-
click=
{
()
=>
this
.
onPreview
(
item
)
}
></
i
-
icon
>
<
i
-
icon
type=
'ios-download-outline'
on
-
click=
{
()
=>
this
.
onDownload
(
item
)
}
></
i
-
icon
>
<
i
-
icon
type=
'ios-trash-outline'
on
-
click=
{
()
=>
this
.
onRemove
(
item
,
this
.
files
)
}
></
i
-
icon
>
</
div
>
</
div
>
))
}
</
div
>
{
h
(
'IUpload'
,
{
ref
:
'imageUpload'
,
props
:
{
action
:
this
.
uploadUrl
,
headers
:
this
.
headers
,
'default-file-list'
:
this
.
files
,
multiple
:
this
.
c
.
multiple
,
type
:
'drag'
,
accept
:
this
.
c
.
accept
,
'show-upload-list'
:
false
,
'before-upload'
:
this
.
beforeUpload
,
'on-success'
:
this
.
onSuccess
,
'on-error'
:
this
.
onError
,
'on-remove'
:
this
.
onRemove
,
'on-preview'
:
this
.
onDownload
,
},
},
[
<
div
class=
{
this
.
ns
.
e
(
'btn'
)
}
>
<
i
-
icon
type=
'ios-add'
size=
'30'
></
i
-
icon
>
</
div
>,
],
)
}
<
i
-
modal
class
-
name=
{
this
.
ns
.
b
(
'modal'
)
}
footer
-
hide=
{
true
}
value=
{
this
.
dialogVisible
}
on
-
on
-
visible
-
change=
{
this
.
onDialogVisibleChange
}
>
<
img
class=
{
this
.
ns
.
be
(
'modal'
,
'img'
)
}
src=
{
this
.
dialogImageUrl
}
/>
</
i
-
modal
>
</
div
>
);
},
});
app_Web/src/components/editor/upload/index.ts
0 → 100644
浏览文件 @
90a10cf9
export
{
IBizFileUpload
}
from
'./ibiz-file-upload/ibiz-file-upload'
;
export
{
IBizGridFileUpload
}
from
'./ibiz-grid-file-upload/ibiz-grid-file-upload'
;
export
{
IBizImageUpload
}
from
'./ibiz-image-upload/ibiz-image-upload'
;
app_Web/src/components/widgets/form-control/form-item/form-item.tsx
浏览文件 @
90a10cf9
...
...
@@ -40,7 +40,7 @@ export const FormItem = defineComponent({
value
:
this
.
value
,
data
,
controller
:
this
.
controller
.
editor
,
disable
:
this
.
controller
.
disabled
,
disable
d
:
this
.
controller
.
disabled
,
},
on
:
{
change
:
this
.
onValueChange
,
...
...
app_Web/src/components/widgets/grid-control/grid-column/grid-column.tsx
浏览文件 @
90a10cf9
...
...
@@ -21,18 +21,14 @@ export const GridColumn = defineComponent({
},
},
setup
(
props
)
{
/** 先看列是否启用行编辑,然后是否有配置编辑项,最后才看rowController控的状态 */
const
showRowEdit
=
computed
(()
=>
{
return
(
props
.
fieldColumn
.
enableRowEdit
&&
props
.
editItem
&&
props
.
row
.
showRowEdit
);
/** 先看列是否启用行编辑,然后是否有配置编辑项 */
const
renderRowEdit
=
computed
(()
=>
{
return
props
.
fieldColumn
.
enableRowEdit
&&
props
.
editItem
;
});
return
{
show
RowEdit
};
return
{
render
RowEdit
};
},
render
()
{
if
(
this
.
showRowEdit
&&
this
.
editItem
)
{
if
(
this
.
renderRowEdit
)
{
return
(
<
grid
-
edit
-
item
controller=
{
this
.
editItem
}
...
...
app_Web/src/components/widgets/grid-control/grid-edit-item/grid-edit-item.tsx
浏览文件 @
90a10cf9
...
...
@@ -3,6 +3,8 @@ import {
GridRowController
,
}
from
'@ibiz-template/controller'
;
import
{
defineComponent
}
from
'vue'
;
import
'@ibiz-template/theme/style/components/widgets/grid/grid-edit-item.scss'
;
import
{
useNamespace
}
from
'@ibiz-template/vue-util'
;
export
const
GridEditItem
=
defineComponent
({
name
:
'GridEditItem'
,
...
...
@@ -17,16 +19,24 @@ export const GridEditItem = defineComponent({
},
},
setup
(
props
)
{
const
ns
=
useNamespace
(
'grid-edit-item'
);
// 编辑器值变更事件
const
onValueChange
=
(
val
:
unknown
,
name
?:
string
)
=>
{
props
.
controller
.
setRowValue
(
props
.
row
,
val
,
name
);
const
rowDataChange
=
async
(
val
:
unknown
,
name
?:
string
)
=>
{
const
_name
=
name
||
props
.
controller
.
model
.
codeName
;
// 值不变则无后续,也不保存
if
(
props
.
row
.
data
[
_name
]
===
val
)
{
return
;
}
await
props
.
controller
.
setRowValue
(
props
.
row
,
val
,
name
);
// 保存时机由界面控制
await
props
.
controller
.
grid
.
save
(
props
.
row
.
data
);
};
const
onStopPropagation
=
(
e
:
MouseEvent
)
=>
{
e
.
stopPropagation
();
};
return
{
onValue
Change
,
onStopPropagation
};
return
{
ns
,
rowData
Change
,
onStopPropagation
};
},
render
(
h
)
{
const
codeName
=
this
.
controller
.
model
.
codeName
;
...
...
@@ -38,17 +48,13 @@ export const GridEditItem = defineComponent({
nativeonClick=
{
this
.
onStopPropagation
}
>
{
this
.
controller
.
editorProvider
&&
h
(
this
.
controller
.
editorProvider
.
row
Editor
,
{
h
(
this
.
controller
.
editorProvider
.
grid
Editor
,
{
props
:
{
value
:
this
.
row
.
data
[
codeName
],
data
:
this
.
row
.
data
,
controller
:
this
.
controller
.
editor
,
disable
:
this
.
row
.
columnState
[
codeName
]
!
.
disabled
,
},
on
:
{
change
:
(
val
:
unknown
,
name
?:
string
)
=>
{
this
.
onValueChange
(
val
,
name
);
},
disabled
:
this
.
row
.
columnState
[
codeName
]
!
.
disabled
,
rowDataChange
:
this
.
rowDataChange
.
bind
(
this
),
},
})
}
</
appGridEditItem
>
...
...
app_Web/src/components/widgets/grid-control/grid-field-column/grid-field-column.tsx
浏览文件 @
90a10cf9
...
...
@@ -50,12 +50,12 @@ export const GridFieldColumn = defineComponent({
const
c
=
this
.
controller
;
const
value
=
this
.
row
.
data
[
c
.
model
.
codeName
];
return
(
<
span
<
div
class=
{
[
this
.
ns
.
b
(),
c
.
isLinkColumn
&&
this
.
ns
.
m
(
'link-column'
)]
}
onClick=
{
this
.
onCellClick
}
>
{
this
.
codeListText
||
value
}
</
span
>
<
span
class=
{
this
.
ns
.
e
(
'text'
)
}
>
{
this
.
codeListText
||
value
}
</
span
>
</
div
>
);
},
});
...
...
app_Web/src/main.ts
浏览文件 @
90a10cf9
...
...
@@ -5,6 +5,7 @@ import { PiniaVuePlugin } from 'pinia';
import
router
from
'./router'
;
import
App
from
'./App'
;
import
{
AppRegister
}
from
'./app-register'
;
import
UserRegister
from
'./user-register'
;
import
{
MessageUtil
,
OpenViewUtil
,
...
...
@@ -59,6 +60,7 @@ async function createApp(): Promise<void> {
ibiz
.
notification
=
new
NotificationUtil
();
ibiz
.
loading
=
new
LoadingUtil
();
ibiz
.
plugin
=
new
PluginFactory
();
Vue
.
use
(
UserRegister
);
},
router
,
pinia
:
piniaInstance
,
...
...
app_Web/src/plugin/index.ts
浏览文件 @
90a10cf9
export
{
PluginFactory
}
from
'./plugin-factory/plugin-factory'
;
export
{
RemotePluginItem
}
from
'./remote-plugin-item/remote-plugin-item'
;
app_Web/src/plugin/plugin-factory/plugin-factory.ts
浏览文件 @
90a10cf9
import
Vue
from
'vue'
;
import
{
RuntimeError
}
from
'@ibiz-template/core'
;
import
{
DefectModelError
}
from
'@ibiz-template/model'
;
import
{
IPluginFactory
}
from
'@ibiz-template/runtime'
;
import
{
IPSAppPFPluginRef
,
IPSSysPFPlugin
}
from
'@ibiz/dynamic-model-api'
;
import
{
IPluginFactory
,
RemotePluginConfig
,
RemotePluginItem
,
}
from
'../remote-plugin-item/remote-plugin-item'
;
}
from
'@ibiz-template/runtime'
;
import
{
IPSAppPFPluginRef
,
IPSSysPFPlugin
}
from
'@ibiz/dynamic-model-api'
;
import
{
basename
,
dirname
,
join
}
from
'path-browserify'
;
/**
* 插件工具类
...
...
@@ -27,6 +28,15 @@ export class PluginFactory implements IPluginFactory {
*/
protected
cache
:
Map
<
string
,
boolean
>
=
new
Map
();
/**
* 本地开发测试包,只在本地开发生效
*
* @author chitanda
* @date 2022-11-02 21:11:41
* @protected
*/
protected
devPackages
:
Map
<
string
,
()
=>
Promise
<
unknown
>>
=
new
Map
();
/**
* 插件缓存
*
...
...
@@ -37,6 +47,18 @@ export class PluginFactory implements IPluginFactory {
*/
protected
pluginCache
:
Map
<
string
,
RemotePluginItem
>
=
new
Map
();
/**
* 设置开发插件,用于本地调试
*
* @author chitanda
* @date 2022-11-02 21:11:56
* @param {string} name
* @param {() => Promise<unknown>} fn
*/
setDevPlugin
(
name
:
string
,
fn
:
()
=>
Promise
<
unknown
>
):
void
{
this
.
devPackages
.
set
(
name
,
fn
);
}
/**
* 加载插件
*
...
...
@@ -64,12 +86,6 @@ export class PluginFactory implements IPluginFactory {
* @return {*} {Promise<boolean>}
*/
async
loadPluginRef
(
pluginRef
:
IPSAppPFPluginRef
):
Promise
<
boolean
>
{
if
(
ibiz
.
env
.
dev
)
{
ibiz
.
log
.
warn
(
`开发模式,远程插件[
${
pluginRef
.
name
}
]不加载。开发测试请在本地引入!`
,
);
return
true
;
}
if
(
this
.
pluginCache
.
has
(
pluginRef
.
rTObjectName
))
{
return
true
;
}
...
...
@@ -87,14 +103,13 @@ export class PluginFactory implements IPluginFactory {
config
as
unknown
as
RemotePluginConfig
,
);
if
(
remotePlugin
)
{
await
this
.
loadScript
(
remotePlugin
.
script
);
if
(
remotePlugin
.
styles
instanceof
Array
)
{
await
this
.
loadStyles
(
remotePlugin
.
styles
);
}
else
{
await
this
.
loadStyles
([
remotePlugin
.
styles
]);
try
{
await
this
.
loadScript
(
remotePlugin
);
this
.
pluginCache
.
set
(
pluginRef
.
rTObjectName
,
remotePlugin
);
return
true
;
}
catch
(
error
)
{
ibiz
.
log
.
error
(
error
);
}
this
.
pluginCache
.
set
(
pluginRef
.
rTObjectName
,
remotePlugin
);
return
true
;
}
return
false
;
}
...
...
@@ -103,29 +118,48 @@ export class PluginFactory implements IPluginFactory {
* 加载插件
*
* @author chitanda
* @date 2022-1
0-31 14:10:10
* @date 2022-1
1-02 14:11:31
* @protected
* @param {
string} scriptUrl
* @param {
RemotePluginItem} remotePlugin
* @return {*} {Promise<void>}
*/
protected
async
loadScript
(
scriptUrl
:
string
):
Promise
<
void
>
{
protected
async
loadScript
(
remotePlugin
:
RemotePluginItem
):
Promise
<
void
>
{
const
{
baseUrl
,
name
,
version
,
system
,
module
}
=
remotePlugin
.
config
;
const
scriptUrl
=
this
.
devPackages
.
has
(
name
)
?
join
(
baseUrl
,
`
${
name
}
@
${
version
}
`
,
module
)
:
join
(
baseUrl
,
`
${
name
}
@
${
version
}
`
,
system
);
if
(
scriptUrl
)
{
if
(
this
.
cache
.
has
(
scriptUrl
))
{
return
;
}
let
data
:
IParams
|
null
=
null
;
const
url
=
this
.
parseUrl
(
scriptUrl
);
const
module
=
await
System
.
import
(
url
);
if
(
module
)
{
if
(
module
.
default
)
{
Vue
.
use
(
module
.
default
);
}
else
{
throw
new
RuntimeError
(
`远程插件加载失败, 远程插件未找到[default]默认导出`
,
);
}
if
(
this
.
devPackages
.
has
(
name
))
{
const
fn
=
this
.
devPackages
.
get
(
name
)
!
;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const
pluginModule
=
(
await
fn
())
as
any
;
Vue
.
use
(
pluginModule
.
default
,
remotePlugin
);
this
.
cache
.
set
(
scriptUrl
,
true
);
const
mateUrl
:
string
=
pluginModule
.
default
.
mateUrl
||
''
;
await
this
.
loadStyles
(
remotePlugin
,
mateUrl
.
split
(
'/'
).
splice
(
3
).
join
(
'/'
),
);
}
else
{
throw
new
RuntimeError
(
`远程插件加载失败, 未找到文件`
);
data
=
await
System
.
import
(
url
);
if
(
data
)
{
if
(
data
.
default
)
{
Vue
.
use
(
data
.
default
,
remotePlugin
);
}
else
{
throw
new
RuntimeError
(
`远程插件加载失败, 远程插件未找到[default]默认导出`
,
);
}
this
.
cache
.
set
(
scriptUrl
,
true
);
await
this
.
loadStyles
(
remotePlugin
,
url
);
}
else
{
throw
new
RuntimeError
(
`远程插件加载失败, 未找到文件`
);
}
}
}
}
...
...
@@ -134,29 +168,38 @@ export class PluginFactory implements IPluginFactory {
* 加载插件样式文件
*
* @author chitanda
* @date 2022-1
0-31 12:10:23
* @date 2022-1
1-02 21:11:51
* @protected
* @param {(string[])} styles
* @param {RemotePluginItem} remotePlugin
* @param {string} [rootJsPath] 入口 js 文件全路径,用于计算拼接 css 文件所在路径
* @return {*} {Promise<void>}
*/
protected
async
loadStyles
(
styles
:
string
[]):
Promise
<
void
>
{
if
(
styles
&&
styles
.
length
>
0
)
{
const
all
=
styles
.
map
(
styleUrl
=>
{
if
(
this
.
cache
.
has
(
styleUrl
))
{
return
false
;
}
return
new
Promise
((
resolve
,
reject
)
=>
{
const
url
=
this
.
parseUrl
(
styleUrl
);
const
linkDom
=
document
.
createElement
(
'link'
);
linkDom
.
setAttribute
(
'type'
,
'text/css'
);
linkDom
.
setAttribute
(
'rel'
,
'stylesheet'
);
linkDom
.
setAttribute
(
'href'
,
url
);
linkDom
.
onload
=
resolve
;
linkDom
.
onerror
=
reject
;
document
.
head
.
appendChild
(
linkDom
);
protected
async
loadStyles
(
remotePlugin
:
RemotePluginItem
,
rootJsPath
:
string
,
):
Promise
<
void
>
{
const
{
styles
}
=
remotePlugin
.
config
;
if
(
styles
)
{
const
arr
=
styles
instanceof
Array
?
styles
:
[
styles
];
if
(
arr
&&
arr
.
length
>
0
)
{
const
folder
=
dirname
(
rootJsPath
);
const
all
=
arr
.
map
(
styleUrl
=>
{
const
url
=
`
${
join
(
folder
,
basename
(
styleUrl
))}
`
;
if
(
this
.
cache
.
has
(
url
))
{
return
false
;
}
return
new
Promise
((
resolve
,
reject
)
=>
{
const
linkDom
=
document
.
createElement
(
'link'
);
linkDom
.
setAttribute
(
'type'
,
'text/css'
);
linkDom
.
setAttribute
(
'rel'
,
'stylesheet'
);
linkDom
.
setAttribute
(
'href'
,
url
);
linkDom
.
onload
=
resolve
;
linkDom
.
onerror
=
reject
;
document
.
head
.
appendChild
(
linkDom
);
});
});
}
);
await
Promise
.
all
(
all
);
await
Promise
.
all
(
all
);
}
}
}
...
...
@@ -173,6 +216,6 @@ export class PluginFactory implements IPluginFactory {
if
(
script
.
startsWith
(
'http://'
)
||
script
.
startsWith
(
'https://'
))
{
return
script
;
}
return
`
${
ibiz
.
env
.
pluginBaseUrl
}${
script
}
`
;
return
`
./
${
join
(
ibiz
.
env
.
pluginBaseUrl
,
script
)
}
`
;
}
}
app_Web/src/provider/editor/check-box-list-provider.ts
浏览文件 @
90a10cf9
...
...
@@ -15,9 +15,9 @@ import {
* @implements {EditorProvider}
*/
export
class
CheckBoxListEditorProvider
implements
IEditorProvider
{
formEditor
:
string
=
'IBizCheck
BoxList
'
;
formEditor
:
string
=
'IBizCheck
box
'
;
rowEditor
:
string
=
'IBizCheckBoxList
'
;
gridEditor
:
string
=
'IBizGridCheckbox
'
;
async
createController
(
editorModel
:
CheckBoxListModel
,
...
...
app_Web/src/provider/editor/data-picker-provider.ts
浏览文件 @
90a10cf9
...
...
@@ -17,7 +17,7 @@ import {
export
class
DataPickerEditorProvider
implements
IEditorProvider
{
formEditor
:
string
;
row
Editor
:
string
;
grid
Editor
:
string
;
constructor
(
editorType
:
string
)
{
let
componentName
=
'IBizPicker'
;
...
...
@@ -26,7 +26,7 @@ export class DataPickerEditorProvider implements IEditorProvider {
componentName
=
'IBizPickerDropDown'
;
break
;
case
'PICKEREX_LINK'
:
componentName
=
'
AppPickerLinkOnly
'
;
componentName
=
'
IBizPickerLink
'
;
break
;
case
'ADDRESSPICKUP'
:
componentName
=
'IBizMPicker'
;
...
...
@@ -34,7 +34,7 @@ export class DataPickerEditorProvider implements IEditorProvider {
default
:
}
this
.
formEditor
=
componentName
;
this
.
row
Editor
=
componentName
;
this
.
grid
Editor
=
componentName
;
}
async
createController
(
...
...
app_Web/src/provider/editor/date-picker-provider.ts
浏览文件 @
90a10cf9
...
...
@@ -18,7 +18,7 @@ import {
export
class
DatePickerEditorProvider
implements
IEditorProvider
{
formEditor
:
string
=
'IBizDatePicker'
;
row
Editor
:
string
=
'IBizDatePicker'
;
grid
Editor
:
string
=
'IBizDatePicker'
;
async
createController
(
editorModel
:
DatePickerEditorModel
,
...
...
app_Web/src/provider/editor/drop-down-list-provider.ts
浏览文件 @
90a10cf9
...
...
@@ -17,7 +17,7 @@ import {
export
class
DropDownListEditorProvider
implements
IEditorProvider
{
formEditor
:
string
=
'IBizDropDownList'
;
row
Editor
:
string
=
'IBizDropDownList'
;
grid
Editor
:
string
=
'IBizDropDownList'
;
async
createController
(
editorModel
:
DropDownListModel
,
...
...
app_Web/src/provider/editor/file-uploader-provider.ts
浏览文件 @
90a10cf9
...
...
@@ -17,15 +17,15 @@ import {
export
class
FileUploaderEditorProvider
implements
IEditorProvider
{
formEditor
:
string
=
'IBizFileUpload'
;
row
Editor
:
string
=
'IBizFileUpload'
;
grid
Editor
:
string
=
'IBizFileUpload'
;
constructor
(
editorType
:
string
)
{
if
(
editorType
===
'PICTURE'
)
{
this
.
formEditor
=
'
App
ImageUpload'
;
this
.
rowEditor
=
'App
ImageUpload'
;
this
.
formEditor
=
'
IBiz
ImageUpload'
;
this
.
gridEditor
=
'IBiz
ImageUpload'
;
}
else
if
(
editorType
===
'FILEUPLOADER'
)
{
this
.
formEditor
=
'IBizFileUpload'
;
this
.
rowEditor
=
'AppFileUploadRowPreview
'
;
this
.
gridEditor
=
'IBizGridFileUpload
'
;
}
}
...
...
app_Web/src/provider/editor/radio-button-list-provider.ts
浏览文件 @
90a10cf9
...
...
@@ -15,9 +15,9 @@ import {
* @implements {EditorProvider}
*/
export
class
RadioButtonListEditorProvider
implements
IEditorProvider
{
formEditor
:
string
=
'IBizRadio
ButtonList
'
;
formEditor
:
string
=
'IBizRadio'
;
rowEditor
:
string
=
'IBizRadioButtonList
'
;
gridEditor
:
string
=
'IBizRadio
'
;
async
createController
(
editorModel
:
RadioButtonListModel
,
...
...
app_Web/src/provider/editor/span-provider.ts
浏览文件 @
90a10cf9
...
...
@@ -17,7 +17,7 @@ import {
export
class
SpanEditorProvider
implements
IEditorProvider
{
formEditor
:
string
=
'IBizSpan'
;
row
Editor
:
string
=
'IBizSpan'
;
grid
Editor
:
string
=
'IBizSpan'
;
async
createController
(
editorModel
:
SpanEditorModel
,
...
...
app_Web/src/provider/editor/text-box-provider.ts
浏览文件 @
90a10cf9
...
...
@@ -15,14 +15,14 @@ import {
* @implements {EditorProvider}
*/
export
class
TextBoxEditorProvider
implements
IEditorProvider
{
formEditor
:
string
=
'IBizInput
Box
'
;
formEditor
:
string
=
'IBizInput'
;
rowEditor
:
string
=
'IBizInputBox
'
;
gridEditor
:
string
=
'IBizGridInput
'
;
constructor
(
editorType
?:
string
)
{
if
(
editorType
===
'NUMBER'
)
{
this
.
formEditor
=
'
App
InputNumber'
;
this
.
rowEditor
=
'App
InputNumber'
;
this
.
formEditor
=
'
IBiz
InputNumber'
;
this
.
gridEditor
=
'IBiz
InputNumber'
;
}
}
...
...
app_Web/src/views/login-view/login-view.tsx
浏览文件 @
90a10cf9
...
...
@@ -63,10 +63,13 @@ export default defineComponent({
},
300
);
});
const
loading
=
ref
(
false
);
const
onClick
=
()
=>
{
formRef
.
value
!
.
validate
(
async
(
valid
:
boolean
)
=>
{
if
(
valid
)
{
try
{
loading
.
value
=
true
;
const
res
=
await
ibiz
.
auth
.
v7login
(
loginData
.
username
,
loginData
.
password
,
...
...
@@ -82,10 +85,12 @@ export default defineComponent({
ibiz
.
notification
.
error
({
title
:
res
.
data
?.
message
||
'登录失败'
,
});
loading
.
value
=
false
;
}
catch
(
error
)
{
ibiz
.
notification
.
error
({
title
:
(
error
as
IData
).
response
?.
data
?.
message
||
'登录失败'
,
});
loading
.
value
=
false
;
}
}
});
...
...
@@ -136,7 +141,12 @@ export default defineComponent({
</
i
-
input
>
</
i
-
form
-
item
>
<
i
-
form
-
item
>
<
i
-
button
shape=
'circle'
long
on
-
click=
{
onClick
}
>
<
i
-
button
shape=
'circle'
loading=
{
loading
.
value
}
long
on
-
click=
{
onClick
}
>
登录
</
i
-
button
>
</
i
-
form
-
item
>
...
...
app_Web/vite.config.ts
浏览文件 @
90a10cf9
...
...
@@ -56,6 +56,9 @@ export default defineConfig({
},
},
cors
:
true
,
fs
:
{
strict
:
false
}
},
css
:
{
preprocessorOptions
:
{
...
...
@@ -70,8 +73,8 @@ export default defineConfig({
}),
vue
(),
vueJsx
(),
// visualizer(),
legacy
({
targets
:
[
'ie >= 11'
],
externalSystemJS
:
true
}),
IBizVitePlugin
(),
// visualizer(),
],
});
app_Web/yarn.lock
浏览文件 @
90a10cf9
...
...
@@ -274,15 +274,15 @@
"@babel/helper-validator-identifier" "^7.18.6"
to-fast-properties "^2.0.0"
"@commitlint/cli@^17.
1.2
":
version "17.
1.2
"
resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.
1.2.tgz#38240f84936df5216f749f06f838dc50cc85a43d
"
integrity sha512-
h/4Hlka3bvCLbnxf0Er2ri5A44VMlbMSkdTRp8Adv2tRiklSTRIoPGs7OEXDv3EoDs2AAzILiPookgM4Gi7LOw
==
"@commitlint/cli@^17.
2.0
":
version "17.
2.0
"
resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.
2.0.tgz#75cb39181cea98ccc3c9ec122c367af4252d0b5a
"
integrity sha512-
kd1zykcrjIKyDRftWW1E1TJqkgzeosEkv1BiYPCdzkb/g/3BrfgwZUHR1vg+HO3qKUb/0dN+jNXArhGGAHpmaQ
==
dependencies:
"@commitlint/format" "^17.0.0"
"@commitlint/lint" "^17.
1
.0"
"@commitlint/load" "^17.
1.2
"
"@commitlint/read" "^17.
1
.0"
"@commitlint/lint" "^17.
2
.0"
"@commitlint/load" "^17.
2.0
"
"@commitlint/read" "^17.
2
.0"
"@commitlint/types" "^17.0.0"
execa "^5.0.0"
lodash "^4.17.19"
...
...
@@ -290,10 +290,10 @@
resolve-global "1.0.0"
yargs "^17.0.0"
"@commitlint/config-conventional@^17.
1
.0":
version "17.
1
.0"
resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.
1.0.tgz#9bd852766e08842bfe0fe4deb40e152eb718ec1b
"
integrity sha512-
WU2p0c9/jLi8k2q2YrDV96Y8XVswQOceIQ/wyJvQxawJSCasLdRB3kUIYdNjOCJsxkpoUlV/b90ZPxp1MYZDiA
==
"@commitlint/config-conventional@^17.
2
.0":
version "17.
2
.0"
resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.
2.0.tgz#245086582cb02901eb4beaa52bc87d138238178f
"
integrity sha512-
g5hQqRa80f++SYS233dbDSg16YdyounMTAhVcmqtInNeY/GF3aA4st9SVtJxpeGrGmueMrU4L+BBb+6Vs5wrcg
==
dependencies:
conventional-changelog-conventionalcommits "^5.0.0"
...
...
@@ -326,28 +326,28 @@
"@commitlint/types" "^17.0.0"
chalk "^4.1.0"
"@commitlint/is-ignored@^17.
1
.0":
version "17.
1
.0"
resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.
1.0.tgz#c9d5ca22679fdc657fff33a8aa23e0c0152ebbd1
"
integrity sha512-
JITWKDMHhIh8IpdIbcbuH9rEQJty1ZWelgjleTFrVRAcEwN/sPzk1aVUXRIZNXMJWbZj8vtXRJnFihrml8uECQ
==
"@commitlint/is-ignored@^17.
2
.0":
version "17.
2
.0"
resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.
2.0.tgz#07c329396e2457fd37e8707f990c3a49731a168d
"
integrity sha512-
rgUPUQraHxoMLxiE8GK430HA7/R2vXyLcOT4fQooNrZq9ERutNrP6dw3gdKLkq22Nede3+gEHQYUzL4Wu75ndg
==
dependencies:
"@commitlint/types" "^17.0.0"
semver "7.3.7"
"@commitlint/lint@^17.
1
.0":
version "17.
1
.0"
resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.
1.0.tgz#de2d3baa2b20d9ec3d5fd2f2421f6025c8439630
"
integrity sha512-
ltpqM2ogt/+SDhUaScFo0MdscncEF96lvQTPMM/VTTWlw7sTGLLWkOOppsee2MN/uLNNWjQ7kqkd4h6JqoM9AQ
==
"@commitlint/lint@^17.
2
.0":
version "17.
2
.0"
resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.
2.0.tgz#a793579d56c3e73416c750d76f09510bc8a6479f
"
integrity sha512-
N2oLn4Dj672wKH5qJ4LGO+73UkYXGHO+NTVUusGw83SjEv7GjpqPGKU6KALW2kFQ/GsDefSvOjpSi3CzWHQBDg
==
dependencies:
"@commitlint/is-ignored" "^17.
1
.0"
"@commitlint/parse" "^17.
0
.0"
"@commitlint/rules" "^17.
0
.0"
"@commitlint/is-ignored" "^17.
2
.0"
"@commitlint/parse" "^17.
2
.0"
"@commitlint/rules" "^17.
2
.0"
"@commitlint/types" "^17.0.0"
"@commitlint/load@^17.
1.2
":
version "17.
1.2
"
resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.
1.2.tgz#19c88be570d8666bbd32f9b3d81925a08328bc13
"
integrity sha512-
sk2p/jFYAWLChIfOIp/MGSIn/WzZ0vkc3afw+l4X8hGEYkvDe4gQUUAVxjl/6xMRn0HgnSLMZ04xXh5pkTsmg
g==
"@commitlint/load@^17.
2.0
":
version "17.
2.0
"
resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.
2.0.tgz#11c9fb23a967ff1507a28931c91aae7f978ea4ae
"
integrity sha512-
HDD57qSqNrk399R4TIjw31AWBG8dBjNj1MrDKZKmC/wvimtnIFlqzcu1+sxfXIOHj/+M6tcMWDtvknGUd7SU+
g==
dependencies:
"@commitlint/config-validator" "^17.1.0"
"@commitlint/execute-rule" "^17.0.0"
...
...
@@ -362,24 +362,24 @@
ts-node "^10.8.1"
typescript "^4.6.4"
"@commitlint/message@^17.
0
.0":
version "17.
0
.0"
resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.
0.0.tgz#ae0f8ec6a3e5c8d369792a2c391952c7596cca73
"
integrity sha512-
LpcwYtN+lBlfZijHUdVr8aNFTVpHjuHI52BnfoV01TF7iSLnia0jttzpLkrLmI8HNQz6Vhr9UrxDWtKZiMGsBw
==
"@commitlint/message@^17.
2
.0":
version "17.
2
.0"
resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.
2.0.tgz#c546b7a441b9f69493257f9fe0c3c8fc37933b27
"
integrity sha512-
/4l2KFKxBOuoEn1YAuuNNlAU05Zt7sNsC9H0mPdPm3chOrT4rcX0pOqrQcLtdMrMkJz0gC7b3SF80q2+LtdL9Q
==
"@commitlint/parse@^17.
0
.0":
version "17.
0
.0"
resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.
0.0.tgz#6d508a1e2aec76f348a447994f26e9b749c0209
1"
integrity sha512-
cKcpfTIQYDG1ywTIr5AG0RAiLBr1gudqEsmAGCTtj8ffDChbBRxm6xXs2nv7GvmJN7msOt7vOKleLvcMmRa1+A
==
"@commitlint/parse@^17.
2
.0":
version "17.
2
.0"
resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.
2.0.tgz#d87b09436ec741c2267b76a41972b34e53459a8
1"
integrity sha512-
vLzLznK9Y21zQ6F9hf8D6kcIJRb2haAK5T/Vt1uW2CbHYOIfNsR/hJs0XnF/J9ctM20Tfsqv4zBitbYvVw7F6Q
==
dependencies:
"@commitlint/types" "^17.0.0"
conventional-changelog-angular "^5.0.11"
conventional-commits-parser "^3.2.2"
"@commitlint/read@^17.
1
.0":
version "17.
1
.0"
resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.
1.0.tgz#cf6bab410180f32f70891c97b15467c0b92ac14f
"
integrity sha512-
73BoFNBA/3Ozo2JQvGsE0J8SdrJAWGfZQRSHqvKaqgmY042Su4gXQLqvAzgr55S9DI1l9TiU/5WDuh8IE86d/g
==
"@commitlint/read@^17.
2
.0":
version "17.
2
.0"
resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.
2.0.tgz#7a67b7b611d978a344c2430cba030252c2170723
"
integrity sha512-
bbblBhrHkjxra3ptJNm0abxu7yeAaxumQ8ZtD6GIVqzURCETCP7Dm0tlVvGRDyXBuqX6lIJxh3W7oyKqllDsHQ
==
dependencies:
"@commitlint/top-level" "^17.0.0"
"@commitlint/types" "^17.0.0"
...
...
@@ -399,13 +399,13 @@
resolve-from "^5.0.0"
resolve-global "^1.0.0"
"@commitlint/rules@^17.
0
.0":
version "17.
0
.0"
resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.
0.0.tgz#4eecc5d28cabbc5f3f73838fb02592b551f9bf62
"
integrity sha512-
45nIy3dERKXWpnwX9HeBzK5SepHwlDxdGBfmedXhL30fmFCkJOdxHyOJsh0+B0RaVsLGT01NELpfzJUmtpDwd
Q==
"@commitlint/rules@^17.
2
.0":
version "17.
2
.0"
resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.
2.0.tgz#b49d5ee3b5f599d7c21aab453bb055ecdc6c2e7c
"
integrity sha512-
1YynwD4Eh7HXZNpqG8mtUlL2pSX2jBy61EejYJv4ooZPcg50Ak7LPOyD3a9UZnsE76AXWFBz+yo9Hv4MIpAa0
Q==
dependencies:
"@commitlint/ensure" "^17.0.0"
"@commitlint/message" "^17.
0
.0"
"@commitlint/message" "^17.
2
.0"
"@commitlint/to-lines" "^17.0.0"
"@commitlint/types" "^17.0.0"
execa "^5.0.0"
...
...
@@ -492,53 +492,53 @@
dependencies:
qx-util "^0.4.4"
"@ibiz-template/controller@^0.0.1-alpha.
38
":
version "0.0.1-alpha.
38
"
resolved "https://registry.
npmmirror.com/@ibiz-template/controller/-/controller-0.0.1-alpha.38.tgz#ff5e8919c89137f5dcc87f742126b270999023b2
"
integrity sha512-
liZ/GgNy8NdpwVwilLA3HTjgvcIUJVkCuoHkBDo2LLV4TJOBCfcLQ5ongYcEpdditQsbOsmT546n4WqbZ4u7RA
==
"@ibiz-template/controller@^0.0.1-alpha.
40
":
version "0.0.1-alpha.
40
"
resolved "https://registry.
yarnpkg.com/@ibiz-template/controller/-/controller-0.0.1-alpha.40.tgz#f59f42c28b7633ccaccb37fd63ad1b64a0c5fd0f
"
integrity sha512-
s9xXqRStODQBPvam7UVKx/U7oqj1yM/qHhZH+K0RMMLVEn/IoCp3ir1asjbgPSqBWxwJ4JM5ZIfvWm4dyyJxkg
==
dependencies:
async-validator "^4.2.5"
dayjs "^1.11.5"
"@ibiz-template/core@^0.0.1-alpha.
38
":
version "0.0.1-alpha.
38
"
resolved "https://registry.
npmmirror.com/@ibiz-template/core/-/core-0.0.1-alpha.38.tgz#a52d26fb591fdbe0ef570ea04d45ab660463e2c2
"
integrity sha512-
zLUXmu+iZvtm1uBroX0eVbaRebJsGZaGhaf1ZJ3fqfm1MF5H0pHpQMKf9V+gqtbUL0z6OyyQKKdQgUdCAL7kE
g==
"@ibiz-template/core@^0.0.1-alpha.
40
":
version "0.0.1-alpha.
40
"
resolved "https://registry.
yarnpkg.com/@ibiz-template/core/-/core-0.0.1-alpha.40.tgz#83773519c2befa453e5944516941f2553de67d7a
"
integrity sha512-
8O411O3StgmbohRkOhh1GkdSln3xH4CEIqBqc/sVtPw/1YuTP/LaLr8g/qfCiuq8KriVOk1IDkKMZrPrVqG7Q
g==
dependencies:
axios "^1.1.3"
loglevel "^1.8.0"
pluralize "^8.0.0"
qs "^6.11.0"
"@ibiz-template/model@^0.0.1-alpha.3
7
":
version "0.0.1-alpha.3
7
"
resolved "https://registry.
npmmirror.com/@ibiz-template/model/-/model-0.0.1-alpha.37.tgz#813054b0b5f399b69c6d2e0045a658b5acd7c7bb
"
integrity sha512-
zWYTSd3/cHricqgYkrIz9HhlJgpFGNsr9alKvaEtxPx8dnIhevAf16VpbMtUZjJ/t6XclmXHF7e+5ri3i8d8aw
==
"@ibiz-template/model@^0.0.1-alpha.3
9
":
version "0.0.1-alpha.3
9
"
resolved "https://registry.
yarnpkg.com/@ibiz-template/model/-/model-0.0.1-alpha.39.tgz#75dae9cb4486758eb7ac3f0b085f109313cbe3de
"
integrity sha512-
HPpCR8W6enEjWxGdYdDKJJdirO4Qx5dIpYNfZVrmhHX7dd+Ov9OnpunnIXeTLk8RFzFfQEf9ZuOTziU7QX5dfg
==
dependencies:
"@ibiz/dynamic-model-api" "^2.1.5"
pluralize "^8.0.0"
"@ibiz-template/runtime@^0.0.1-alpha.
38
":
version "0.0.1-alpha.
38
"
resolved "https://registry.
npmmirror.com/@ibiz-template/runtime/-/runtime-0.0.1-alpha.38.tgz#f3f168315c9aaaccf54aa66b233b5cfe444bd4d6
"
integrity sha512-
TyNzpyDiQ8Gmyv3jrGcMXbkqbQpR021Wmqur2FYcUrh9wbiaYvMKf5ccLF9BaXRA5Jxmxklz10OHtw0ZVAgbGQ
==
"@ibiz-template/runtime@^0.0.1-alpha.
40
":
version "0.0.1-alpha.
40
"
resolved "https://registry.
yarnpkg.com/@ibiz-template/runtime/-/runtime-0.0.1-alpha.40.tgz#3b60fb3d777d744037f2bc0c8492088e69d497e9
"
integrity sha512-
QnGZ9A32caNbPUyhHP3+rNJBM6HdxKxJh4FgNvtlpuiNga9Cw8vG0OHmM9LkMZFs4u6Gu79fationwJIBducqA
==
dependencies:
"@ibiz-template/command" "^0.0.1-alpha.37"
"@ibiz-template/service@^0.0.1-alpha.
38
":
version "0.0.1-alpha.
38
"
resolved "https://registry.
npmmirror.com/@ibiz-template/service/-/service-0.0.1-alpha.38.tgz#9cfa5160802e4c9232268f77ccdd224341975395
"
integrity sha512-
IXGuuDywAtXtTCY8uF4H0jyTxZvEvwXTeGX/5kiR9Bo3rChz1WVTYi9nQRSokav5C9fdLrE1OwPON1SU/kaUH
g==
"@ibiz-template/service@^0.0.1-alpha.
40
":
version "0.0.1-alpha.
40
"
resolved "https://registry.
yarnpkg.com/@ibiz-template/service/-/service-0.0.1-alpha.40.tgz#94bb0df2619e195e340a33a5db1fe058918e3bbb
"
integrity sha512-
DAcha7xUwxmpdC0fuL4InGlDAy2L9sABmoP3n5er8SXMzfGRKxlCt6cOtwwC5+P/4igCb/Uqv80Is8XWuqNDb
g==
"@ibiz-template/theme@^0.0.1-alpha.
37
":
version "0.0.1-alpha.
37
"
resolved "https://registry.yarnpkg.com/@ibiz-template/theme/-/theme-0.0.1-alpha.
37.tgz#c5c868e4532562edd782a7ee0d0e4396d7bf39fe
"
integrity sha512-
pEYPg1SRsVpJUeg9yf8Lwq8VlpcCzCGbeO8yorBF64HwYk3KrkW5XpQOsboSsN6MFL5/buHeSq05diKqgZNpWw
==
"@ibiz-template/theme@^0.0.1-alpha.
40
":
version "0.0.1-alpha.
40
"
resolved "https://registry.yarnpkg.com/@ibiz-template/theme/-/theme-0.0.1-alpha.
40.tgz#fc0c891f651d4ce25d780c2152654b31521570e9
"
integrity sha512-
e3R5XAhG23QgwZheW92vzZGf+CklnvE18UG+NJ2XsIORWVJfwxA3ix89/oFmA0sXUVX7+iI4SuhubhvbWu787A
==
"@ibiz-template/vue-util@^0.0.1-alpha.
38
":
version "0.0.1-alpha.
38
"
resolved "https://registry.
npmmirror.com/@ibiz-template/vue-util/-/vue-util-0.0.1-alpha.38.tgz#1321ef3dca46afb015e722dc5f5fd880ecb8d44b
"
integrity sha512-
Ukch5xUSBaqQySncfWwXbK/xmRyhfB66vDs4Fpch+YLABwU44Az/IHUYCUuAtUWD3I6nCrvyb8hef+9M3GKLBg
==
"@ibiz-template/vue-util@^0.0.1-alpha.
40
":
version "0.0.1-alpha.
40
"
resolved "https://registry.
yarnpkg.com/@ibiz-template/vue-util/-/vue-util-0.0.1-alpha.40.tgz#0080298397aff172a0f0ae5c4dcc853912f91236
"
integrity sha512-
dSLVzVA0b3bHe2Y4eOvcCCauCawYE0L2PTimgeYieVK36KGSk5wbA75JLaDJJyXhNYU3tbtK3TV9fS0EvU9upw
==
"@ibiz/dynamic-model-api@^2.1.5":
version "2.1.5"
...
...
@@ -695,10 +695,10 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.29.tgz#a0c58d67a42f8953c13d32f0acda47ed26dfce40"
integrity sha512-LhF+9fbIX4iPzhsRLpK5H7iPdvW8L4IwGciXQIOEcuF62+9nw/VQVsOViAOOGxY3OlOKGLFv0sWwJXdwQeTn6A==
"@types/node@^18.11.
8
":
version "18.11.
8
"
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.
8.tgz#16d222a58d4363a2a359656dd20b28414de5d265
"
integrity sha512-
uGwPWlE0Hj972KkHtCDVwZ8O39GmyjfMane1Z3GUBGGnkZ2USDq7SxLpVIiIHpweY9DS0QTDH0Nw7RNBsAAZ5A
==
"@types/node@^18.11.
9
":
version "18.11.
9
"
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.
9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4
"
integrity sha512-
CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg
==
"@types/normalize-package-data@^2.4.0":
version "2.4.1"
...
...
@@ -710,6 +710,11 @@
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
"@types/path-browserify@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@types/path-browserify/-/path-browserify-1.0.0.tgz#294ec6e88b6b0d340a3897b7120e5b393f16690e"
integrity sha512-XMCcyhSvxcch8b7rZAtFAaierBYdeHXVvg2iYnxOV0MCQHmPuRRmGZPFDRzPayxcGiiSL1Te9UIO+f3cuj0tfw==
"@types/qs@^6.9.7":
version "6.9.7"
resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb"
...
...
@@ -732,86 +737,87 @@
resolved "https://registry.yarnpkg.com/@types/systemjs/-/systemjs-6.1.1.tgz#eae17f2a080e867d01a2dd614f524ab227cf5a41"
integrity sha512-d1M6eDKBGWx7RbYy295VEFoOF9YDJkPI959QYnmzcmeaV+SP4D0xV7dEh3sN5XF3GvO3PhGzm+17Z598nvHQuQ==
"@typescript-eslint/eslint-plugin@^5.4
1
.0":
version "5.4
1
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.4
1.0.tgz#f8eeb1c6bb2549f795f3ba71aec3b38d1ab6b1e1
"
integrity sha512-
DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA
==
"@typescript-eslint/eslint-plugin@^5.4
2
.0":
version "5.4
2
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.4
2.0.tgz#36a8c0c379870127059889a9cc7e05c260d2aaa5
"
integrity sha512-
5TJh2AgL6+wpL8H/GTSjNb4WrjKoR2rqvFxR/DDTqYNk6uXn8BJMEcncLSpMbf/XV1aS0jAjYwn98uvVCiAywQ
==
dependencies:
"@typescript-eslint/scope-manager" "5.4
1
.0"
"@typescript-eslint/type-utils" "5.4
1
.0"
"@typescript-eslint/utils" "5.4
1
.0"
"@typescript-eslint/scope-manager" "5.4
2
.0"
"@typescript-eslint/type-utils" "5.4
2
.0"
"@typescript-eslint/utils" "5.4
2
.0"
debug "^4.3.4"
ignore "^5.2.0"
natural-compare-lite "^1.4.0"
regexpp "^3.2.0"
semver "^7.3.7"
tsutils "^3.21.0"
"@typescript-eslint/parser@^5.4
1
.0":
version "5.4
1
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.4
1.0.tgz#0414a6405007e463dc527b459af1f19430382d67
"
integrity sha512-
HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZ
A==
"@typescript-eslint/parser@^5.4
2
.0":
version "5.4
2
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.4
2.0.tgz#be0ffbe279e1320e3d15e2ef0ad19262f59e9240
"
integrity sha512-
Ixh9qrOTDRctFg3yIwrLkgf33AHyEIn6lhyf5cCfwwiGtkWhNpVKlEZApi3inGQR/barWnY7qY8FbGKBO7p3J
A==
dependencies:
"@typescript-eslint/scope-manager" "5.4
1
.0"
"@typescript-eslint/types" "5.4
1
.0"
"@typescript-eslint/typescript-estree" "5.4
1
.0"
"@typescript-eslint/scope-manager" "5.4
2
.0"
"@typescript-eslint/types" "5.4
2
.0"
"@typescript-eslint/typescript-estree" "5.4
2
.0"
debug "^4.3.4"
"@typescript-eslint/scope-manager@5.4
1
.0":
version "5.4
1
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.4
1.0.tgz#28e3a41d626288d0628be14cf9de8d49fc30fad
f"
integrity sha512-
xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ
==
"@typescript-eslint/scope-manager@5.4
2
.0":
version "5.4
2
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.4
2.0.tgz#e1f2bb26d3b2a508421ee2e3ceea5396b192f5e
f"
integrity sha512-
l5/3IBHLH0Bv04y+H+zlcLiEMEMjWGaCX6WyHE5Uk2YkSGAMlgdUPsT/ywTSKgu9D1dmmKMYgYZijObfA39Wow
==
dependencies:
"@typescript-eslint/types" "5.4
1
.0"
"@typescript-eslint/visitor-keys" "5.4
1
.0"
"@typescript-eslint/types" "5.4
2
.0"
"@typescript-eslint/visitor-keys" "5.4
2
.0"
"@typescript-eslint/type-utils@5.4
1
.0":
version "5.4
1
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.4
1.0.tgz#2371601171e9f26a4e6da918a7913f7266890cdf
"
integrity sha512-
L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA
==
"@typescript-eslint/type-utils@5.4
2
.0":
version "5.4
2
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.4
2.0.tgz#4206d7192d4fe903ddf99d09b41d4ac31b0b7dca
"
integrity sha512-
HW14TXC45dFVZxnVW8rnUGnvYyRC0E/vxXShFCthcC9VhVTmjqOmtqj6H5rm9Zxv+ORxKA/1aLGD7vmlLsdlOg
==
dependencies:
"@typescript-eslint/typescript-estree" "5.4
1
.0"
"@typescript-eslint/utils" "5.4
1
.0"
"@typescript-eslint/typescript-estree" "5.4
2
.0"
"@typescript-eslint/utils" "5.4
2
.0"
debug "^4.3.4"
tsutils "^3.21.0"
"@typescript-eslint/types@5.4
1
.0":
version "5.4
1
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.4
1.0.tgz#6800abebc4e6abaf24cdf220fb4ce28f4ab09a85
"
integrity sha512-
5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA
==
"@typescript-eslint/types@5.4
2
.0":
version "5.4
2
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.4
2.0.tgz#5aeff9b5eced48f27d5b8139339bf1ef805bad7a
"
integrity sha512-
t4lzO9ZOAUcHY6bXQYRuu+3SSYdD9TS8ooApZft4WARt4/f2Cj/YpvbTe8A4GuhT4bNW72goDMOy7SW71mZwGw
==
"@typescript-eslint/typescript-estree@5.4
1
.0":
version "5.4
1
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.4
1.0.tgz#bf5c6b3138adbdc73ba4871d060ae12c59366c61
"
integrity sha512-
SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXW
g==
"@typescript-eslint/typescript-estree@5.4
2
.0":
version "5.4
2
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.4
2.0.tgz#2592d24bb5f89bf54a63384ff3494870f95b3fd8
"
integrity sha512-
2O3vSq794x3kZGtV7i4SCWZWCwjEtkWfVqX4m5fbUBomOsEOyd6OAD1qU2lbvV5S8tgy/luJnOYluNyYVeOTT
g==
dependencies:
"@typescript-eslint/types" "5.4
1
.0"
"@typescript-eslint/visitor-keys" "5.4
1
.0"
"@typescript-eslint/types" "5.4
2
.0"
"@typescript-eslint/visitor-keys" "5.4
2
.0"
debug "^4.3.4"
globby "^11.1.0"
is-glob "^4.0.3"
semver "^7.3.7"
tsutils "^3.21.0"
"@typescript-eslint/utils@5.4
1
.0":
version "5.4
1
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.4
1.0.tgz#f41ae5883994a249d00b2ce69f4188f3a23fa0f9
"
integrity sha512-
QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KL
Q==
"@typescript-eslint/utils@5.4
2
.0":
version "5.4
2
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.4
2.0.tgz#f06bd43b9a9a06ed8f29600273240e84a53f2f15
"
integrity sha512-
JZ++3+h1vbeG1NUECXQZE3hg0kias9kOtcQr3+JVQ3whnjvKuMyktJAAIj6743OeNPnGBmjj7KEmiDL7qsdnC
Q==
dependencies:
"@types/json-schema" "^7.0.9"
"@types/semver" "^7.3.12"
"@typescript-eslint/scope-manager" "5.4
1
.0"
"@typescript-eslint/types" "5.4
1
.0"
"@typescript-eslint/typescript-estree" "5.4
1
.0"
"@typescript-eslint/scope-manager" "5.4
2
.0"
"@typescript-eslint/types" "5.4
2
.0"
"@typescript-eslint/typescript-estree" "5.4
2
.0"
eslint-scope "^5.1.1"
eslint-utils "^3.0.0"
semver "^7.3.7"
"@typescript-eslint/visitor-keys@5.4
1
.0":
version "5.4
1
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.4
1.0.tgz#d3510712bc07d5540160ed3c0f8f213b73e3bcd9
"
integrity sha512-
vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw
==
"@typescript-eslint/visitor-keys@5.4
2
.0":
version "5.4
2
.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.4
2.0.tgz#ee8d62d486f41cfe646632fab790fbf0c1db5bb0
"
integrity sha512-
QHbu5Hf/2lOEOwy+IUw0GoSCuAzByTAWWrOTKzTzsotiUnWFpuKnXcAhC9YztAf2EElQ0VvIK+pHJUPkM0q7jg
==
dependencies:
"@typescript-eslint/types" "5.4
1
.0"
"@typescript-eslint/types" "5.4
2
.0"
eslint-visitor-keys "^3.3.0"
"@vitejs/plugin-legacy@^2.3.0":
...
...
@@ -1927,10 +1933,10 @@ eslint-plugin-prettier@^4.2.1:
dependencies:
prettier-linter-helpers "^1.0.0"
eslint-plugin-vue@^9.
6
.0:
version "9.
6
.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.
6.0.tgz#5d1825b93d54595b1ba97106843e1d28cf3bb291
"
integrity sha512-
zzySkJgVbFCylnG2+9MDF7N+2Rjze2y0bF8GyUNpFOnT8mCMfqqtLDJkHBuYu9N/psW1A6DVbQhPkP92E+qakA
==
eslint-plugin-vue@^9.
7
.0:
version "9.
7
.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.
7.0.tgz#d391b9864f128ea2d1ee4dabeafb5f7c0cea981f
"
integrity sha512-
DrOO3WZCZEwcLsnd3ohFwqCoipGRSTKTBTnLwdhqAbYZtzWl0o7D+D8ZhlmiZvABKTEl8AFsqH1GHGdybyoQmw
==
dependencies:
eslint-utils "^3.0.0"
natural-compare "^1.4.0"
...
...
@@ -3051,6 +3057,11 @@ nanoid@^3.3.4:
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
natural-compare-lite@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4"
integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
...
...
@@ -3244,6 +3255,11 @@ parse-json@^5.0.0:
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"
path-browserify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
path-exists@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
...
...
@@ -4221,10 +4237,10 @@ vite-plugin-eslint@^1.8.1:
"@types/eslint" "^8.4.5"
rollup "^2.77.2"
vite@^3.2.
1
:
version "3.2.
1
"
resolved "https://registry.yarnpkg.com/vite/-/vite-3.2.
1.tgz#dc1f54568300a7acdd89c8611e2719c21f1334f4
"
integrity sha512-
ADtMkfHuWq4tskJsri2n2FZkORO8ZyhI+zIz7zTrDAgDEtct1jdxOg3YsZBfHhKjmMoWLOSCr+64qrEDGo/DbQ
==
vite@^3.2.
2
:
version "3.2.
2
"
resolved "https://registry.yarnpkg.com/vite/-/vite-3.2.
2.tgz#280762bfaf47bcea1d12698427331c0009ac7c1f
"
integrity sha512-
pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw
==
dependencies:
esbuild "^0.15.9"
postcss "^8.4.18"
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录