cabloy 5.1.98 → 5.1.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cabloy-version +1 -1
- package/.claude/hooks/contract-loop-gate.ts +151 -44
- package/CHANGELOG.md +28 -0
- package/CLAUDE.md +2 -0
- package/cabloy-docs/.vitepress/config.mjs +4 -0
- package/cabloy-docs/backend/controller-aop-guide.md +0 -1
- package/cabloy-docs/frontend/a-openapi-under-the-hood.md +1 -1
- package/cabloy-docs/frontend/generated-contract-consumption-entry-branch.md +1 -1
- package/cabloy-docs/frontend/generated-contract-consumption-list-branch.md +1 -1
- package/cabloy-docs/frontend/generated-contract-consumption-verify-playbook.md +1 -1
- package/cabloy-docs/frontend/model-resource-owner-pattern.md +1 -1
- package/cabloy-docs/frontend/model-state-guide.md +3 -1
- package/cabloy-docs/frontend/resource-entry-page-deep-dive.md +2 -2
- package/cabloy-docs/frontend/resource-list-page-deep-dive.md +1 -1
- package/cabloy-docs/frontend/rest-resource-source-reading-map.md +2 -2
- package/cabloy-docs/frontend/rest-resource-under-the-hood.md +4 -4
- package/cabloy-docs/frontend/use-state-data-best-practices.md +384 -0
- package/package.json +1 -1
- package/scripts/upgrade.ts +2 -0
- package/vona/packages-cli/cli/package.json +1 -1
- package/vona/packages-cli/cli-set-api/package.json +1 -1
- package/vona/packages-vona/vona/package.json +1 -1
- package/vona/packages-vona/vona-core/package.json +1 -1
- package/vona/packages-vona/vona-core/src/lib/bean/beanBase.ts +9 -9
- package/vona/packages-vona/vona-mock/package.json +1 -1
- package/vona/pnpm-lock.yaml +56 -56
- package/vona/pnpm-workspace.yaml +1 -1
- package/vona/src/suite/a-training/modules/training-record/src/bean/fileScene.dossierFile.ts +22 -0
- package/vona/src/suite/a-training/modules/training-record/src/bean/meta.version.ts +1 -0
- package/vona/src/suite/a-training/modules/training-record/src/config/locale/en-us.ts +1 -0
- package/vona/src/suite/a-training/modules/training-record/src/config/locale/zh-cn.ts +1 -0
- package/vona/src/suite/a-training/modules/training-record/src/dto/recordDossierFileView.ts +47 -0
- package/vona/src/suite/a-training/modules/training-record/src/dto/recordSelectResItem.tsx +13 -0
- package/vona/src/suite/a-training/modules/training-record/src/dto/recordView.tsx +13 -0
- package/vona/src/suite/a-training/modules/training-record/src/entity/record.tsx +16 -5
- package/vona/src/suite/a-training/modules/training-record/src/index.ts +2 -0
- package/vona/src/suite/a-training/modules/training-record/src/lib/index.ts +1 -0
- package/vona/src/suite/a-training/modules/training-record/src/lib/resolveDossierFiles.ts +34 -0
- package/vona/src/suite/a-training/modules/training-record/test/record.test.ts +209 -123
- package/vona/src/suite/a-training/modules/training-student/src/config/locale/en-us.ts +1 -0
- package/vona/src/suite/a-training/modules/training-student/src/config/locale/zh-cn.ts +1 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordBase.tsx +18 -1
- package/vona/src/suite/a-training/modules/training-student/src/entity/student.tsx +0 -2
- package/vona/src/suite/a-training/modules/training-student/src/model/student.ts +1 -0
- package/vona/src/suite-vendor/a-file/modules/a-file/package.json +5 -3
- package/vona/src/suite-vendor/a-file/modules/a-file/src/bean/bean.fileUploadPolicy.ts +28 -0
- package/vona/src/suite-vendor/a-file/modules/a-file/src/controller/file.ts +8 -0
- package/vona/src/suite-vendor/a-file/modules/a-file/src/dto/fileUploadPolicyRequest.ts +15 -0
- package/vona/src/suite-vendor/a-file/modules/a-file/src/dto/fileUploadPolicyResponse.ts +30 -0
- package/vona/src/suite-vendor/a-file/package.json +2 -2
- package/vona/src/suite-vendor/a-image/modules/a-image/package.json +1 -1
- package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/bean.imageUploadPolicy.ts +27 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/controller/image.ts +8 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageUploadPolicyRequest.ts +15 -0
- package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageUploadPolicyResponse.ts +27 -0
- package/vona/src/suite-vendor/a-image/modules/image-native/package.json +1 -1
- package/vona/src/suite-vendor/a-image/modules/image-native/src/controller/image.ts +1 -1
- package/vona/src/suite-vendor/a-image/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-core/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-permission/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-permission/src/.metadata/index.ts +24 -9
- package/vona/src/suite-vendor/a-vona/modules/a-permission/src/bean/bean.permission.ts +87 -73
- package/vona/src/suite-vendor/a-vona/modules/a-permission/src/bean/summerCache.permissionActionByRoles.ts +27 -0
- package/vona/src/suite-vendor/a-vona/modules/a-permission/src/bean/summerCache.permissionUser.ts +20 -0
- package/vona/src/suite-vendor/a-vona/modules/a-startup/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-startup/src/service/startup.ts +4 -3
- package/vona/src/suite-vendor/a-vona/modules/a-upload/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-upload/src/bean/interceptor.upload.ts +5 -1
- package/vona/src/suite-vendor/a-vona/modules/a-user/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-user/src/.metadata/index.ts +0 -13
- package/vona/src/suite-vendor/a-vona/modules/a-user/src/lib/passport.ts +0 -7
- package/vona/src/suite-vendor/a-vona/modules/a-version/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-version/src/bean/meta.version.ts +2 -24
- package/vona/src/suite-vendor/a-vona/package.json +1 -1
- package/zova/packages-utils/zova-jsx/package.json +2 -2
- package/zova/packages-zova/zova/package.json +3 -3
- package/zova/packages-zova/zova-core/package.json +1 -1
- package/zova/packages-zova/zova-core/src/bean/beanBase.ts +9 -13
- package/zova/pnpm-lock.yaml +24 -9
- package/zova/src/suite/a-demo/modules/demo-basic/src/page/toolOne/controller.tsx +2 -2
- package/zova/src/suite/a-demo/modules/demo-todo/src/page/todo/controller.tsx +2 -2
- package/zova/src/suite/a-home/modules/home-layoutadmin/src/component/layoutAdmin/controller.tsx +2 -2
- package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/controller.tsx +2 -2
- package/zova/src/suite/a-home/modules/home-login/src/page/login/controller.tsx +2 -2
- package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/blockDetails/controller.tsx +5 -1
- package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/blockTable/controller.tsx +20 -15
- package/zova/src/suite/cabloy-basic/modules/basic-details/src/service/detail.tsx +6 -1
- package/zova/src/suite/cabloy-basic/modules/basic-file/cli/openapi.config.ts +9 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/package.json +58 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/.metadata/component/formFieldFile.ts +31 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/.metadata/index.ts +222 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/.metadata/locales.ts +7 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/.metadata/this.ts +2 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/api/file.ts +121 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/api/openapi/baseURL.ts +5 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/api/openapi/index.ts +3 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/api/openapi/schemas.ts +306 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/api/openapi/types.ts +5718 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/apiSchema/file.ts +40 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/bean/tableCell.file.tsx +187 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/component/formFieldFile/controller.tsx +534 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/config/locale/en-us.ts +15 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/config/locale/zh-cn.ts +15 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/index.ts +4 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/lib/file.ts +74 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/lib/index.ts +1 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/model/file.ts +23 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/types/file.ts +12 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/src/types/index.ts +1 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/tsconfig.build.json +13 -0
- package/zova/src/suite/cabloy-basic/modules/basic-file/tsconfig.json +5 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/.metadata/index.ts +61 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/image.ts +38 -1
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/imageNativeImage.ts +31 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/schemas.ts +52 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/types.ts +614 -1
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/apiSchema/image.ts +10 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/apiSchema/imageNativeImage.ts +13 -0
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/component/formFieldImage/controller.tsx +126 -53
- package/zova/src/suite/cabloy-basic/modules/basic-image/src/model/image.ts +23 -0
- package/zova/src/suite/cabloy-basic/modules/basic-page/src/component/blockPage/controller.tsx +44 -4
- package/zova/src/suite/cabloy-basic/modules/basic-page/src/component/blockTable/controller.tsx +17 -12
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/component/blockPageEntry/controller.tsx +2 -2
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/component/formFieldResourcePicker/controller.tsx +2 -2
- package/zova/src/suite/cabloy-basic/modules/basic-table/src/component/table/controller.tsx +7 -2
- package/zova/src/suite/cabloy-basic/modules/basic-table/src/component/table/render.tsx +34 -33
- package/zova/src/suite/cabloy-basic/package.json +1 -0
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/package.json +1 -1
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/model/resource.ts +5 -3
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/page/entry/controller.tsx +2 -2
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/src/page/resource/controller.tsx +2 -2
- package/zova/src/suite-vendor/a-cabloy/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-model/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/lib/utils.ts +17 -17
- package/zova/src/suite-vendor/a-zova/modules/a-openapi/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/model/sdk.ts +8 -3
- package/zova/src/suite-vendor/a-zova/modules/a-zova/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/package.json +4 -4
- package/vona/src/suite-vendor/a-vona/modules/a-permission/src/bean/summerCache.permission.ts +0 -17
- package/vona/src/suite-vendor/a-vona/modules/a-user/src/bean/guard.userName.ts +0 -35
- /package/vona/patches/{zova-core@5.1.76.patch → zova-core@5.1.77.patch} +0 -0
package/vona/pnpm-lock.yaml
CHANGED
|
@@ -16,7 +16,7 @@ overrides:
|
|
|
16
16
|
zod: npm:@cabloy/zod@4.3.8
|
|
17
17
|
|
|
18
18
|
patchedDependencies:
|
|
19
|
-
zova-core@5.1.
|
|
19
|
+
zova-core@5.1.77: 0f4164c4d2bbb16d671beb5c26759dff37769be0709df941bc7b90b94261ac54
|
|
20
20
|
|
|
21
21
|
importers:
|
|
22
22
|
|
|
@@ -501,11 +501,11 @@ importers:
|
|
|
501
501
|
specifier: npm:@cabloy/zod@4.3.8
|
|
502
502
|
version: '@cabloy/zod@4.3.8'
|
|
503
503
|
zova:
|
|
504
|
-
specifier: ^5.1.
|
|
505
|
-
version: 5.1.
|
|
504
|
+
specifier: ^5.1.132
|
|
505
|
+
version: 5.1.132(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
|
|
506
506
|
zova-jsx:
|
|
507
|
-
specifier: ^1.1.
|
|
508
|
-
version: 1.1.
|
|
507
|
+
specifier: ^1.1.77
|
|
508
|
+
version: 1.1.77(typescript@5.9.3)
|
|
509
509
|
zova-module-a-api:
|
|
510
510
|
specifier: ^5.1.21
|
|
511
511
|
version: 5.1.21
|
|
@@ -528,11 +528,11 @@ importers:
|
|
|
528
528
|
specifier: ^5.1.29
|
|
529
529
|
version: 5.1.29
|
|
530
530
|
zova-module-a-model:
|
|
531
|
-
specifier: ^5.1.
|
|
532
|
-
version: 5.1.
|
|
531
|
+
specifier: ^5.1.31
|
|
532
|
+
version: 5.1.31(vue@3.5.39(typescript@5.9.3))
|
|
533
533
|
zova-module-a-openapi:
|
|
534
|
-
specifier: ^5.1.
|
|
535
|
-
version: 5.1.
|
|
534
|
+
specifier: ^5.1.43
|
|
535
|
+
version: 5.1.43
|
|
536
536
|
zova-module-a-router:
|
|
537
537
|
specifier: ^5.1.29
|
|
538
538
|
version: 5.1.29
|
|
@@ -549,8 +549,8 @@ importers:
|
|
|
549
549
|
specifier: ^5.1.37
|
|
550
550
|
version: 5.1.37(vue@3.5.39(typescript@5.9.3))
|
|
551
551
|
zova-module-rest-resource:
|
|
552
|
-
specifier: ^5.1.
|
|
553
|
-
version: 5.1.
|
|
552
|
+
specifier: ^5.1.41
|
|
553
|
+
version: 5.1.41
|
|
554
554
|
|
|
555
555
|
.zova-rest/cabloy-basic-web:
|
|
556
556
|
dependencies:
|
|
@@ -573,11 +573,11 @@ importers:
|
|
|
573
573
|
specifier: npm:@cabloy/zod@4.3.8
|
|
574
574
|
version: '@cabloy/zod@4.3.8'
|
|
575
575
|
zova:
|
|
576
|
-
specifier: ^5.1.
|
|
577
|
-
version: 5.1.
|
|
576
|
+
specifier: ^5.1.132
|
|
577
|
+
version: 5.1.132(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
|
|
578
578
|
zova-jsx:
|
|
579
|
-
specifier: ^1.1.
|
|
580
|
-
version: 1.1.
|
|
579
|
+
specifier: ^1.1.77
|
|
580
|
+
version: 1.1.77(typescript@5.9.3)
|
|
581
581
|
zova-module-a-api:
|
|
582
582
|
specifier: ^5.1.21
|
|
583
583
|
version: 5.1.21
|
|
@@ -600,11 +600,11 @@ importers:
|
|
|
600
600
|
specifier: ^5.1.29
|
|
601
601
|
version: 5.1.29
|
|
602
602
|
zova-module-a-model:
|
|
603
|
-
specifier: ^5.1.
|
|
604
|
-
version: 5.1.
|
|
603
|
+
specifier: ^5.1.31
|
|
604
|
+
version: 5.1.31(vue@3.5.39(typescript@5.9.3))
|
|
605
605
|
zova-module-a-openapi:
|
|
606
|
-
specifier: ^5.1.
|
|
607
|
-
version: 5.1.
|
|
606
|
+
specifier: ^5.1.43
|
|
607
|
+
version: 5.1.43
|
|
608
608
|
zova-module-a-router:
|
|
609
609
|
specifier: ^5.1.29
|
|
610
610
|
version: 5.1.29
|
|
@@ -621,8 +621,8 @@ importers:
|
|
|
621
621
|
specifier: ^5.1.37
|
|
622
622
|
version: 5.1.37(vue@3.5.39(typescript@5.9.3))
|
|
623
623
|
zova-module-rest-resource:
|
|
624
|
-
specifier: ^5.1.
|
|
625
|
-
version: 5.1.
|
|
624
|
+
specifier: ^5.1.41
|
|
625
|
+
version: 5.1.41
|
|
626
626
|
|
|
627
627
|
packages-cli/cabloy-cli:
|
|
628
628
|
dependencies:
|
|
@@ -1517,13 +1517,13 @@ importers:
|
|
|
1517
1517
|
src/suite-vendor/a-file:
|
|
1518
1518
|
dependencies:
|
|
1519
1519
|
vona-module-a-file:
|
|
1520
|
-
specifier: ^5.0.
|
|
1520
|
+
specifier: ^5.0.4
|
|
1521
1521
|
version: link:modules/a-file
|
|
1522
1522
|
vona-module-file-cloudflare:
|
|
1523
|
-
specifier: ^5.0.
|
|
1523
|
+
specifier: ^5.0.3
|
|
1524
1524
|
version: link:modules/file-cloudflare
|
|
1525
1525
|
vona-module-file-native:
|
|
1526
|
-
specifier: ^5.0.
|
|
1526
|
+
specifier: ^5.0.3
|
|
1527
1527
|
version: link:modules/file-native
|
|
1528
1528
|
|
|
1529
1529
|
src/suite-vendor/a-file/modules/a-file:
|
|
@@ -1625,7 +1625,7 @@ importers:
|
|
|
1625
1625
|
src/suite-vendor/a-test:
|
|
1626
1626
|
dependencies:
|
|
1627
1627
|
vona-module-test-file:
|
|
1628
|
-
specifier: ^5.0.
|
|
1628
|
+
specifier: ^5.0.4
|
|
1629
1629
|
version: link:modules/test-file
|
|
1630
1630
|
|
|
1631
1631
|
src/suite-vendor/a-test/modules/test-auth:
|
|
@@ -7948,11 +7948,11 @@ packages:
|
|
|
7948
7948
|
peerDependencies:
|
|
7949
7949
|
zod: ^3.25.28 || ^4
|
|
7950
7950
|
|
|
7951
|
-
zova-core@5.1.
|
|
7952
|
-
resolution: {integrity: sha512
|
|
7951
|
+
zova-core@5.1.77:
|
|
7952
|
+
resolution: {integrity: sha512-PfB5yaHVZ8U8Fjeyju3m9OGe1PjXH26HTjkA9jvl+KK9l3t/lzdEVP4s03/4zEggvPz7pkwek1heLuMaQRmX/Q==}
|
|
7953
7953
|
|
|
7954
|
-
zova-jsx@1.1.
|
|
7955
|
-
resolution: {integrity: sha512-
|
|
7954
|
+
zova-jsx@1.1.77:
|
|
7955
|
+
resolution: {integrity: sha512-TnjesMVt7wSvwjP4XDOg9m2MacbL5xgMrdLtU9XhhPHm3gYuNV/hzr2vQ788k/z+WWQdHsqRvTy6Ngr/GDr6zg==}
|
|
7956
7956
|
|
|
7957
7957
|
zova-module-a-api@5.1.21:
|
|
7958
7958
|
resolution: {integrity: sha512-qjm/hfjC4/+7Ap/uzJfBzV0PwRlp2idEmEKwCZYxquaXq6QtJBbTWTznw1iukT4lkJZip2KFkjOvXTzdvZA2UA==}
|
|
@@ -7993,11 +7993,11 @@ packages:
|
|
|
7993
7993
|
zova-module-a-meta@5.1.21:
|
|
7994
7994
|
resolution: {integrity: sha512-7vsLOMw1UQEZ+8qbBaiz9t4n3N7AU1jxpaiSIIky7hBvKO9nuHq+e7FONpj9poa8WeHkYoflBg/8imKBy/IlNw==}
|
|
7995
7995
|
|
|
7996
|
-
zova-module-a-model@5.1.
|
|
7997
|
-
resolution: {integrity: sha512
|
|
7996
|
+
zova-module-a-model@5.1.31:
|
|
7997
|
+
resolution: {integrity: sha512-/6MV5xSklEkain5t0vsZ37ImyIihutCu7ymytq5RFG0QbeKtbSAI/IB6TS2mfkjLkiy97SmDJbuiLGso7Cg/Gw==}
|
|
7998
7998
|
|
|
7999
|
-
zova-module-a-openapi@5.1.
|
|
8000
|
-
resolution: {integrity: sha512-
|
|
7999
|
+
zova-module-a-openapi@5.1.43:
|
|
8000
|
+
resolution: {integrity: sha512-xJKvSPl1AZnH7EpgEd9a3u3IEpJfnou19DKre/7TL1KdiTdfNThLrmmkdP1UNYlUHUgCczcGUwZDdMiE9gdxwA==}
|
|
8001
8001
|
|
|
8002
8002
|
zova-module-a-router@5.1.29:
|
|
8003
8003
|
resolution: {integrity: sha512-7vIXOf0aPUXvZAFC9hM1JQyNwmQAG+EtSbQ1et8+iP6roff8yUhhq50Dw8PFU5eb7hjk1TTxpUFhCTvev5JZqQ==}
|
|
@@ -8026,17 +8026,17 @@ packages:
|
|
|
8026
8026
|
zova-module-a-zod@5.1.36:
|
|
8027
8027
|
resolution: {integrity: sha512-4gEjxJBelVOA84aP2XWSNSmzQr+AYh14Ha5QCj9yZIpSnEajSgYLoyLw4dwiVcscuEw7xAAOOnWbZS9uXSpJzg==}
|
|
8028
8028
|
|
|
8029
|
-
zova-module-a-zova@5.1.
|
|
8030
|
-
resolution: {integrity: sha512-
|
|
8029
|
+
zova-module-a-zova@5.1.92:
|
|
8030
|
+
resolution: {integrity: sha512-RxHSKnBDMuBKwx0cJoPOIvq/DV6Xhji2yZ/lBgJTMrWOYVsHux/PbDc+vlAU+Aie2K0RiZ2ytR3mPBpMxpmexg==}
|
|
8031
8031
|
|
|
8032
|
-
zova-module-rest-resource@5.1.
|
|
8033
|
-
resolution: {integrity: sha512-
|
|
8032
|
+
zova-module-rest-resource@5.1.41:
|
|
8033
|
+
resolution: {integrity: sha512-7Y8rLmHdw0pynlWqsyHPWuCWFLwr/0HsNvfef64cPw91LRujf/7OlulVWqH8ZoFNioZZUpfumB+t/+mICoYfFg==}
|
|
8034
8034
|
|
|
8035
|
-
zova-suite-a-zova@5.1.
|
|
8036
|
-
resolution: {integrity: sha512-
|
|
8035
|
+
zova-suite-a-zova@5.1.131:
|
|
8036
|
+
resolution: {integrity: sha512-NRPt3ahLwHg+rLuA2VXRbEmrg/bTdgwdQmU9C8nj9R0+E1f0ehbbsUWJFQFN6hJNco5+rDDSDfBlvejf4z6L1w==}
|
|
8037
8037
|
|
|
8038
|
-
zova@5.1.
|
|
8039
|
-
resolution: {integrity: sha512-
|
|
8038
|
+
zova@5.1.132:
|
|
8039
|
+
resolution: {integrity: sha512-lQK1VRnwthDx0qayS7kdElyfAmvPEhlt6sk/2jK5mTbqojsjuDNkrEa9Ck2Q78fag800U6pDwV83o6CRbSUTeA==}
|
|
8040
8040
|
|
|
8041
8041
|
zwitch@1.0.5:
|
|
8042
8042
|
resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==}
|
|
@@ -13855,7 +13855,7 @@ snapshots:
|
|
|
13855
13855
|
dependencies:
|
|
13856
13856
|
zod: '@cabloy/zod@4.3.8'
|
|
13857
13857
|
|
|
13858
|
-
zova-core@5.1.
|
|
13858
|
+
zova-core@5.1.77(patch_hash=0f4164c4d2bbb16d671beb5c26759dff37769be0709df941bc7b90b94261ac54)(typescript@5.9.3):
|
|
13859
13859
|
dependencies:
|
|
13860
13860
|
'@cabloy/compose': link:packages-utils/compose
|
|
13861
13861
|
'@cabloy/extend': link:packages-utils/extend
|
|
@@ -13884,14 +13884,14 @@ snapshots:
|
|
|
13884
13884
|
transitivePeerDependencies:
|
|
13885
13885
|
- typescript
|
|
13886
13886
|
|
|
13887
|
-
zova-jsx@1.1.
|
|
13887
|
+
zova-jsx@1.1.77(typescript@5.9.3):
|
|
13888
13888
|
dependencies:
|
|
13889
13889
|
'@cabloy/compose': link:packages-utils/compose
|
|
13890
13890
|
'@cabloy/utils': link:packages-utils/utils
|
|
13891
13891
|
'@cabloy/word-utils': 2.1.14
|
|
13892
13892
|
typestyle: 2.4.0
|
|
13893
13893
|
vue: 3.5.39(typescript@5.9.3)
|
|
13894
|
-
zova-core: 5.1.
|
|
13894
|
+
zova-core: 5.1.77(patch_hash=0f4164c4d2bbb16d671beb5c26759dff37769be0709df941bc7b90b94261ac54)(typescript@5.9.3)
|
|
13895
13895
|
transitivePeerDependencies:
|
|
13896
13896
|
- typescript
|
|
13897
13897
|
|
|
@@ -13935,7 +13935,7 @@ snapshots:
|
|
|
13935
13935
|
|
|
13936
13936
|
zova-module-a-meta@5.1.21: {}
|
|
13937
13937
|
|
|
13938
|
-
zova-module-a-model@5.1.
|
|
13938
|
+
zova-module-a-model@5.1.31(vue@3.5.39(typescript@5.9.3)):
|
|
13939
13939
|
dependencies:
|
|
13940
13940
|
'@tanstack/query-core': 5.101.2
|
|
13941
13941
|
'@tanstack/query-persist-client-core': 5.101.2
|
|
@@ -13947,7 +13947,7 @@ snapshots:
|
|
|
13947
13947
|
- '@vue/composition-api'
|
|
13948
13948
|
- vue
|
|
13949
13949
|
|
|
13950
|
-
zova-module-a-openapi@5.1.
|
|
13950
|
+
zova-module-a-openapi@5.1.43:
|
|
13951
13951
|
dependencies:
|
|
13952
13952
|
'@cabloy/json-schema-to-zod': 2.6.5
|
|
13953
13953
|
openapi3-ts: 4.6.0
|
|
@@ -13992,7 +13992,7 @@ snapshots:
|
|
|
13992
13992
|
'@cabloy/zod-query': link:packages-utils/zod-query
|
|
13993
13993
|
zod: '@cabloy/zod@4.3.8'
|
|
13994
13994
|
|
|
13995
|
-
zova-module-a-zova@5.1.
|
|
13995
|
+
zova-module-a-zova@5.1.92(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
|
|
13996
13996
|
dependencies:
|
|
13997
13997
|
'@cabloy/compose': link:packages-utils/compose
|
|
13998
13998
|
'@cabloy/deps': link:packages-utils/deps
|
|
@@ -14003,14 +14003,14 @@ snapshots:
|
|
|
14003
14003
|
'@cabloy/word-utils': 2.1.14
|
|
14004
14004
|
defu: 6.1.7
|
|
14005
14005
|
luxon: 3.7.2
|
|
14006
|
-
zova-jsx: 1.1.
|
|
14006
|
+
zova-jsx: 1.1.77(typescript@5.9.3)
|
|
14007
14007
|
transitivePeerDependencies:
|
|
14008
14008
|
- typescript
|
|
14009
14009
|
- vue
|
|
14010
14010
|
|
|
14011
|
-
zova-module-rest-resource@5.1.
|
|
14011
|
+
zova-module-rest-resource@5.1.41: {}
|
|
14012
14012
|
|
|
14013
|
-
zova-suite-a-zova@5.1.
|
|
14013
|
+
zova-suite-a-zova@5.1.131(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
|
|
14014
14014
|
dependencies:
|
|
14015
14015
|
zova-module-a-api: 5.1.21
|
|
14016
14016
|
zova-module-a-app: 5.1.24
|
|
@@ -14025,8 +14025,8 @@ snapshots:
|
|
|
14025
14025
|
zova-module-a-interceptor: 5.1.29
|
|
14026
14026
|
zova-module-a-logger: 5.1.26
|
|
14027
14027
|
zova-module-a-meta: 5.1.21
|
|
14028
|
-
zova-module-a-model: 5.1.
|
|
14029
|
-
zova-module-a-openapi: 5.1.
|
|
14028
|
+
zova-module-a-model: 5.1.31(vue@3.5.39(typescript@5.9.3))
|
|
14029
|
+
zova-module-a-openapi: 5.1.43
|
|
14030
14030
|
zova-module-a-router: 5.1.29
|
|
14031
14031
|
zova-module-a-routerstack: 5.1.26
|
|
14032
14032
|
zova-module-a-routertabs: 5.1.32
|
|
@@ -14036,7 +14036,7 @@ snapshots:
|
|
|
14036
14036
|
zova-module-a-style: 5.1.32
|
|
14037
14037
|
zova-module-a-table: 5.1.37(vue@3.5.39(typescript@5.9.3))
|
|
14038
14038
|
zova-module-a-zod: 5.1.36
|
|
14039
|
-
zova-module-a-zova: 5.1.
|
|
14039
|
+
zova-module-a-zova: 5.1.92(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
|
|
14040
14040
|
transitivePeerDependencies:
|
|
14041
14041
|
- '@vue/composition-api'
|
|
14042
14042
|
- debug
|
|
@@ -14044,10 +14044,10 @@ snapshots:
|
|
|
14044
14044
|
- typescript
|
|
14045
14045
|
- vue
|
|
14046
14046
|
|
|
14047
|
-
zova@5.1.
|
|
14047
|
+
zova@5.1.132(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
|
|
14048
14048
|
dependencies:
|
|
14049
|
-
zova-core: 5.1.
|
|
14050
|
-
zova-suite-a-zova: 5.1.
|
|
14049
|
+
zova-core: 5.1.77(patch_hash=0f4164c4d2bbb16d671beb5c26759dff37769be0709df941bc7b90b94261ac54)(typescript@5.9.3)
|
|
14050
|
+
zova-suite-a-zova: 5.1.131(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
|
|
14051
14051
|
transitivePeerDependencies:
|
|
14052
14052
|
- '@vue/composition-api'
|
|
14053
14053
|
- debug
|
package/vona/pnpm-workspace.yaml
CHANGED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BeanBase } from 'vona';
|
|
2
|
+
import { FileScene } from 'vona-module-a-file';
|
|
3
|
+
|
|
4
|
+
@FileScene({
|
|
5
|
+
upload: {
|
|
6
|
+
maxSize: 20 * 1024 * 1024,
|
|
7
|
+
mimeTypes: [
|
|
8
|
+
'application/pdf',
|
|
9
|
+
'application/msword',
|
|
10
|
+
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
11
|
+
'application/vnd.ms-excel',
|
|
12
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
13
|
+
'application/zip',
|
|
14
|
+
'application/x-zip-compressed',
|
|
15
|
+
'text/plain',
|
|
16
|
+
],
|
|
17
|
+
extensions: ['.pdf', '.doc', '.docx', '.xls', '.xlsx', '.zip', '.txt'],
|
|
18
|
+
multiple: true,
|
|
19
|
+
public: false,
|
|
20
|
+
},
|
|
21
|
+
})
|
|
22
|
+
export class FileSceneDossierFile extends BeanBase {}
|
|
@@ -18,6 +18,7 @@ export class MetaVersion extends BeanBase implements IMetaVersionUpdate {
|
|
|
18
18
|
table.decimal(entityRecord.averageScore, 8, 2).comment(entityRecord.$comment.averageScore);
|
|
19
19
|
table.dateTime(entityRecord.trainingTime).comment(entityRecord.$comment.trainingTime);
|
|
20
20
|
table.json(entityRecord.sceneImageIds).comment(entityRecord.$comment.sceneImageIds);
|
|
21
|
+
table.json(entityRecord.dossierFileIds).comment(entityRecord.$comment.dossierFileIds);
|
|
21
22
|
table.string(entityRecord.description, 255).comment(entityRecord.$comment.description);
|
|
22
23
|
});
|
|
23
24
|
}
|
|
@@ -9,6 +9,7 @@ export default {
|
|
|
9
9
|
TrainingRecordName: 'Training Record Name',
|
|
10
10
|
TrainingTime: 'Training Time',
|
|
11
11
|
ScenePhotos: 'Scene Photos',
|
|
12
|
+
DossierFiles: 'Dossier Files',
|
|
12
13
|
AddTrainingRecord: 'Add Student Training Record',
|
|
13
14
|
EditTrainingRecord: 'Edit Student Training Record',
|
|
14
15
|
ViewTrainingRecord: 'View Student Training Record',
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { TableIdentity } from 'table-identity';
|
|
2
|
+
import type { IDecoratorDtoOptions } from 'vona-module-a-web';
|
|
3
|
+
|
|
4
|
+
import { Api, v } from 'vona-module-a-openapiutils';
|
|
5
|
+
import { Dto } from 'vona-module-a-web';
|
|
6
|
+
import z from 'zod';
|
|
7
|
+
|
|
8
|
+
export interface IDtoOptionsRecordDossierFileView extends IDecoratorDtoOptions {}
|
|
9
|
+
|
|
10
|
+
@Dto<IDtoOptionsRecordDossierFileView>()
|
|
11
|
+
export class DtoRecordDossierFileView {
|
|
12
|
+
@Api.field(v.tableIdentity())
|
|
13
|
+
id: TableIdentity;
|
|
14
|
+
|
|
15
|
+
@Api.field(z.string())
|
|
16
|
+
provider: string;
|
|
17
|
+
|
|
18
|
+
@Api.field(z.string())
|
|
19
|
+
clientName: string;
|
|
20
|
+
|
|
21
|
+
@Api.field(v.optional(), z.string())
|
|
22
|
+
fileScene?: string;
|
|
23
|
+
|
|
24
|
+
@Api.field(v.optional())
|
|
25
|
+
filename?: string;
|
|
26
|
+
|
|
27
|
+
@Api.field(v.optional())
|
|
28
|
+
contentType?: string;
|
|
29
|
+
|
|
30
|
+
@Api.field(v.optional())
|
|
31
|
+
size?: number;
|
|
32
|
+
|
|
33
|
+
@Api.field(v.optional())
|
|
34
|
+
public?: boolean;
|
|
35
|
+
|
|
36
|
+
@Api.field(v.optional())
|
|
37
|
+
uploadedAt?: Date;
|
|
38
|
+
|
|
39
|
+
@Api.field(v.optional(), z.record(z.string(), z.unknown()))
|
|
40
|
+
meta?: Record<string, unknown>;
|
|
41
|
+
|
|
42
|
+
@Api.field(z.string())
|
|
43
|
+
downloadUrl: string;
|
|
44
|
+
|
|
45
|
+
@Api.field(v.default(true))
|
|
46
|
+
signed: boolean;
|
|
47
|
+
}
|
|
@@ -7,7 +7,9 @@ import { Dto } from 'vona-module-a-web';
|
|
|
7
7
|
import { ZovaRender } from 'zova-rest-cabloy-basic-admin';
|
|
8
8
|
|
|
9
9
|
import { $locale } from '../.metadata/locales.ts';
|
|
10
|
+
import { resolveDossierFiles } from '../lib/resolveDossierFiles.ts';
|
|
10
11
|
import { ModelRecord } from '../model/record.ts';
|
|
12
|
+
import { DtoRecordDossierFileView } from './recordDossierFileView.ts';
|
|
11
13
|
|
|
12
14
|
export interface IDtoOptionsRecordSelectResItem extends IDecoratorDtoOptions {}
|
|
13
15
|
|
|
@@ -37,6 +39,17 @@ export class DtoRecordSelectResItem extends $Dto.get(() => ModelRecord) {
|
|
|
37
39
|
)
|
|
38
40
|
sceneImages?: DtoImageView[];
|
|
39
41
|
|
|
42
|
+
@Api.field(
|
|
43
|
+
v.title($locale('DossierFiles')),
|
|
44
|
+
ZovaRender.visible(false),
|
|
45
|
+
v.optional(),
|
|
46
|
+
v.serializerTransform('a-serialization:custom', {
|
|
47
|
+
custom: resolveDossierFiles,
|
|
48
|
+
}),
|
|
49
|
+
v.array(DtoRecordDossierFileView),
|
|
50
|
+
)
|
|
51
|
+
dossierFiles?: DtoRecordDossierFileView[];
|
|
52
|
+
|
|
40
53
|
@Api.field(
|
|
41
54
|
v.title($locale('Operations')),
|
|
42
55
|
ZovaRender.order(1, 'max'),
|
|
@@ -7,9 +7,11 @@ import { Dto } from 'vona-module-a-web';
|
|
|
7
7
|
import { ZovaRender } from 'zova-rest-cabloy-basic-admin';
|
|
8
8
|
|
|
9
9
|
import { $locale } from '../.metadata/locales.ts';
|
|
10
|
+
import { resolveDossierFiles } from '../lib/resolveDossierFiles.ts';
|
|
10
11
|
import { ModelRecord } from '../model/record.ts';
|
|
11
12
|
import { DtoDetailRecordSubjectResItem } from './detailRecordSubjectResItem.tsx';
|
|
12
13
|
import { DtoDetailRecordSubjectView } from './detailRecordSubjectView.tsx';
|
|
14
|
+
import { DtoRecordDossierFileView } from './recordDossierFileView.ts';
|
|
13
15
|
|
|
14
16
|
export interface IDtoOptionsRecordView extends IDecoratorDtoOptions {}
|
|
15
17
|
|
|
@@ -49,6 +51,17 @@ export class DtoRecordView extends $Dto.get(() => ModelRecord, {
|
|
|
49
51
|
)
|
|
50
52
|
sceneImages?: DtoImageView[];
|
|
51
53
|
|
|
54
|
+
@Api.field(
|
|
55
|
+
v.title($locale('DossierFiles')),
|
|
56
|
+
ZovaRender.visible(false),
|
|
57
|
+
v.optional(),
|
|
58
|
+
v.serializerTransform('a-serialization:custom', {
|
|
59
|
+
custom: resolveDossierFiles,
|
|
60
|
+
}),
|
|
61
|
+
v.array(DtoRecordDossierFileView),
|
|
62
|
+
)
|
|
63
|
+
dossierFiles?: DtoRecordDossierFileView[];
|
|
64
|
+
|
|
52
65
|
@Api.field(ZovaRender.visible(false), v.optional(), v.array(DtoDetailRecordSubjectResItem))
|
|
53
66
|
_trainingRecordSubjects?: DtoDetailRecordSubjectResItem[];
|
|
54
67
|
}
|
|
@@ -89,11 +89,8 @@ export class EntityRecord extends EntityBase {
|
|
|
89
89
|
ZovaRender.order(7),
|
|
90
90
|
ZovaRender.field('basic-image:formFieldImage', {
|
|
91
91
|
imageScene: 'training-record:sceneImage',
|
|
92
|
-
|
|
93
|
-
maxCount: 9,
|
|
92
|
+
maxCount: 3,
|
|
94
93
|
relationName: 'sceneImages',
|
|
95
|
-
accept: ['image/png', 'image/jpeg', 'image/webp'],
|
|
96
|
-
maxSize: 2 * 1024 * 1024,
|
|
97
94
|
enableCrop: false,
|
|
98
95
|
resize: {
|
|
99
96
|
width: 1280,
|
|
@@ -108,6 +105,20 @@ export class EntityRecord extends EntityBase {
|
|
|
108
105
|
)
|
|
109
106
|
sceneImageIds?: TableIdentity[];
|
|
110
107
|
|
|
111
|
-
@Api.field(
|
|
108
|
+
@Api.field(
|
|
109
|
+
v.title($locale('DossierFiles')),
|
|
110
|
+
v.optional(),
|
|
111
|
+
ZovaRender.order(8),
|
|
112
|
+
ZovaRender.field('basic-file:formFieldFile', {
|
|
113
|
+
fileScene: 'training-record:dossierFile',
|
|
114
|
+
relationName: 'dossierFiles',
|
|
115
|
+
maxCount: 3,
|
|
116
|
+
}),
|
|
117
|
+
ZovaRender.cell('basic-file:file', { relationName: 'dossierFiles' }),
|
|
118
|
+
v.array(v.tableIdentity()),
|
|
119
|
+
)
|
|
120
|
+
dossierFileIds?: TableIdentity[];
|
|
121
|
+
|
|
122
|
+
@Api.field(v.title($locale('Description')), v.optional(), ZovaRender.order(9))
|
|
112
123
|
description?: string;
|
|
113
124
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { TableIdentity } from 'table-identity';
|
|
2
|
+
import type { VonaContext } from 'vona';
|
|
3
|
+
|
|
4
|
+
import type { DtoRecordDossierFileView } from '../dto/recordDossierFileView.ts';
|
|
5
|
+
|
|
6
|
+
export async function resolveDossierFiles(
|
|
7
|
+
this: VonaContext,
|
|
8
|
+
_value: unknown,
|
|
9
|
+
data: { dossierFileIds?: TableIdentity[] },
|
|
10
|
+
): Promise<DtoRecordDossierFileView[]> {
|
|
11
|
+
const dossierFileIds = data.dossierFileIds;
|
|
12
|
+
if (!dossierFileIds?.length) return [];
|
|
13
|
+
const items: Array<DtoRecordDossierFileView | undefined> = await Promise.all(
|
|
14
|
+
dossierFileIds.map(async dossierFileId => {
|
|
15
|
+
const file = await this.bean.file.get(dossierFileId);
|
|
16
|
+
if (!file || file.fileScene !== 'training-record:dossierFile') return undefined;
|
|
17
|
+
return {
|
|
18
|
+
id: file.id,
|
|
19
|
+
provider: String(file.provider),
|
|
20
|
+
clientName: file.clientName,
|
|
21
|
+
fileScene: file.fileScene ? String(file.fileScene) : undefined,
|
|
22
|
+
filename: file.filename,
|
|
23
|
+
contentType: file.contentType,
|
|
24
|
+
size: file.size,
|
|
25
|
+
public: file.public,
|
|
26
|
+
uploadedAt: file.uploadedAt,
|
|
27
|
+
meta: file.meta as Record<string, unknown> | undefined,
|
|
28
|
+
downloadUrl: await this.bean.file.getDownloadUrl(file.id),
|
|
29
|
+
signed: !file.public,
|
|
30
|
+
} satisfies DtoRecordDossierFileView;
|
|
31
|
+
}),
|
|
32
|
+
);
|
|
33
|
+
return items.filter((item): item is DtoRecordDossierFileView => !!item);
|
|
34
|
+
}
|