cabloy 5.1.149 → 5.1.150
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/skills/cabloy-backend-scaffold/references/follow-up-checklist.md +2 -1
- package/.claude/skills/cabloy-frontend-scaffold/SKILL.md +1 -0
- package/CHANGELOG.md +22 -0
- package/CLAUDE.md +1 -0
- package/package.json +1 -1
- package/repo-docs/backend/dto-guide.md +7 -6
- package/repo-docs/backend/dto-infer-generation.md +25 -5
- package/repo-docs/frontend/a-model-under-the-hood.md +38 -0
- package/repo-docs/frontend/a-openapi-under-the-hood.md +13 -2
- package/repo-docs/frontend/form-layout-guide.md +26 -9
- package/repo-docs/frontend/model-resource-best-practices.md +2 -0
- package/repo-docs/frontend/model-resource-cookbook.md +7 -1
- package/repo-docs/frontend/use-state-data-best-practices.md +44 -0
- package/repo-docs/frontend/zova-form-source-reading-map.md +26 -9
- package/repo-docs/frontend/zova-form-under-the-hood.md +11 -0
- package/repo-docs/fullstack/one-to-one-companion-resource-guide.md +1 -1
- package/repo-e2e/specs/a-commerce.spec.ts +40 -0
- package/vona/packages-cli/cli/package.json +1 -1
- package/vona/packages-cli/cli-set-api/cli/templates/tools/crudStart/boilerplate/src/controller/{{resourceName}}.ts_ +2 -2
- package/vona/packages-cli/cli-set-api/package.json +1 -1
- package/vona/pnpm-lock.yaml +83 -75
- package/vona/src/suite/a-commerce/modules/commerce-catalog/src/.metadata/index.ts +108 -108
- package/vona/src/suite/a-commerce/modules/commerce-catalog/src/dto/skuSelectResItem.tsx +12 -0
- package/vona/src/suite/a-commerce/modules/commerce-catalog/src/service/sku.ts +19 -1
- package/vona/src/suite/a-commerce/modules/commerce-catalog/test/skuPresentation.test.ts +53 -4
- package/vona/src/suite/a-commerce/modules/commerce-trade/src/.metadata/index.ts +148 -148
- package/vona/src/suite/a-commerce/modules/commerce-trade/src/dto/stockAdjust.tsx +37 -3
- package/vona/src/suite/a-training/modules/training-student/src/.metadata/index.ts +2 -2
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentCreate.tsx +7 -6
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentSummary.tsx +1 -1
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentUpdate.tsx +7 -6
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentView.tsx +10 -7
- package/vona/src/suite/a-training/modules/training-student/src/model/student.ts +4 -4
- package/vona/src/suite/a-training/modules/training-student/src/service/student.ts +39 -67
- package/vona/src/suite/a-training/modules/training-student/test/student.test.ts +56 -37
- package/zova/packages-zova/zova/package.json +2 -2
- package/zova/pnpm-lock.yaml +2 -2
- package/zova/src/suite/a-commerce/modules/commerce-trade/cli/openapi.config.ts +1 -0
- package/zova/src/suite/a-commerce/modules/commerce-trade/package.json +6 -1
- package/zova/src/suite/a-commerce/modules/commerce-trade/src/.metadata/component/tableCellActionAdjustStock.ts +34 -0
- package/zova/src/suite/a-commerce/modules/commerce-trade/src/.metadata/index.ts +81 -6
- package/zova/src/suite/a-commerce/modules/commerce-trade/src/api/commerceTradeStockBalance.ts +32 -0
- package/zova/src/suite/a-commerce/modules/commerce-trade/src/api/openapi/schemas.ts +44 -44
- package/zova/src/suite/a-commerce/modules/commerce-trade/src/api/openapi/types.ts +356 -338
- package/zova/src/suite/a-commerce/modules/commerce-trade/src/apiSchema/commerceTradeStockBalance.ts +17 -0
- package/zova/src/suite/a-commerce/modules/commerce-trade/src/bean/tableCell.actionAdjustStock.tsx +35 -0
- package/zova/src/suite/a-commerce/modules/commerce-trade/src/component/tableCellActionAdjustStock/controller.tsx +138 -0
- package/zova/src/suite/a-commerce/modules/commerce-trade/src/config/locale/en-us.ts +3 -0
- package/zova/src/suite/a-commerce/modules/commerce-trade/src/config/locale/zh-cn.ts +3 -0
- package/zova/src/suite/a-commerce/modules/commerce-trade/src/model/stockBalance.ts +36 -0
- package/zova/src/suite/a-commerce/modules/commerce-trade/src/page/payment/controller.tsx +4 -4
- package/zova/src/suite/a-training/modules/training-student/src/api/openapi/schemas.ts +8 -8
- package/zova/src/suite/a-training/modules/training-student/src/api/openapi/types.ts +11 -11
- package/zova/src/suite/a-training/modules/training-student/src/bean/tableCell.actionSummary.tsx +2 -2
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/bean/behavior.appModal.tsx +2 -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 +2 -1
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/test/model/resource.types.ts +11 -0
- package/zova/src/suite-vendor/a-cabloy/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-form/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-form/src/lib/formLayout.ts +58 -9
- package/zova/src/suite-vendor/a-zova/modules/a-form/test/lib/formLayout.test.ts +157 -0
- 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/bean/bean.model/bean.model.persister.ts +3 -1
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/bean/bean.model/bean.model.useQuery.ts +11 -13
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/bean/bean.model/bean.model.useState.ts +9 -7
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/bean/bean.model/bean.model.useStateGeneral.ts +5 -12
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/lib/queryPersister.ts +17 -0
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/lib/queryRefetch.ts +34 -0
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/types/query.ts +27 -3
- package/zova/src/suite-vendor/a-zova/modules/a-model/test/lib/queryPersister.test.ts +115 -0
- package/zova/src/suite-vendor/a-zova/modules/a-model/test/lib/queryRefetch.test.ts +84 -0
- 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/lib/schema.ts +27 -5
- package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/model/sdk.ts +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/rest.ts +4 -0
- package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/schema.ts +2 -5
- package/zova/src/suite-vendor/a-zova/modules/a-openapi/test/lib/schema.test.ts +179 -0
- package/zova/src/suite-vendor/a-zova/package.json +4 -4
|
@@ -24,14 +24,14 @@ export interface IControllerOptions<%=argv.resourceNameCapitalize%> extends IDec
|
|
|
24
24
|
})
|
|
25
25
|
@Resource()
|
|
26
26
|
export class Controller<%=argv.resourceNameCapitalize%> extends BeanBase {
|
|
27
|
-
@Web.post({ summary: $locale('<%=argv.resourceNameCapitalize%>Create') })
|
|
27
|
+
@Web.post('', { summary: $locale('<%=argv.resourceNameCapitalize%>Create') })
|
|
28
28
|
@Api.body(v.tableIdentity())
|
|
29
29
|
@Passport.rbac()
|
|
30
30
|
async create(@Arg.body() <%=argv.resourceName%>: Dto<%=argv.resourceNameCapitalize%>Create): Promise<TableIdentity> {
|
|
31
31
|
return (await this.scope.service.<%=argv.resourceName%>.create(<%=argv.resourceName%>)).id;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
@Web.get({ summary: $locale('<%=argv.resourceNameCapitalize%>Select') })
|
|
34
|
+
@Web.get('', { summary: $locale('<%=argv.resourceNameCapitalize%>Select') })
|
|
35
35
|
@Api.body(Dto<%=argv.resourceNameCapitalize%>SelectRes)
|
|
36
36
|
@Passport.rbac()
|
|
37
37
|
async select(@Arg.filter(Dto<%=argv.resourceNameCapitalize%>SelectReq) params: IQueryParams<Model<%=argv.resourceNameCapitalize%>>): Promise<Dto<%=argv.resourceNameCapitalize%>SelectRes> {
|
package/vona/pnpm-lock.yaml
CHANGED
|
@@ -545,9 +545,6 @@ importers:
|
|
|
545
545
|
|
|
546
546
|
.zova-rest/cabloy-basic-admin:
|
|
547
547
|
dependencies:
|
|
548
|
-
'@tanstack/query-core':
|
|
549
|
-
specifier: ^5.101.1
|
|
550
|
-
version: 5.101.2
|
|
551
548
|
'@tanstack/vue-query':
|
|
552
549
|
specifier: ^5.101.1
|
|
553
550
|
version: 5.101.2(vue@3.5.39(typescript@5.9.3))
|
|
@@ -564,8 +561,8 @@ importers:
|
|
|
564
561
|
specifier: npm:@cabloy/zod@4.3.8
|
|
565
562
|
version: '@cabloy/zod@4.3.8'
|
|
566
563
|
zova:
|
|
567
|
-
specifier: ^5.1.
|
|
568
|
-
version: 5.1.
|
|
564
|
+
specifier: ^5.1.154
|
|
565
|
+
version: 5.1.154(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
|
|
569
566
|
zova-jsx:
|
|
570
567
|
specifier: ^1.1.88
|
|
571
568
|
version: 1.1.88(typescript@5.9.3)
|
|
@@ -582,8 +579,8 @@ importers:
|
|
|
582
579
|
specifier: ^5.1.34
|
|
583
580
|
version: 5.1.34
|
|
584
581
|
zova-module-a-form:
|
|
585
|
-
specifier: ^5.1.
|
|
586
|
-
version: 5.1.
|
|
582
|
+
specifier: ^5.1.49
|
|
583
|
+
version: 5.1.49(vue@3.5.39(typescript@5.9.3))
|
|
587
584
|
zova-module-a-icon:
|
|
588
585
|
specifier: ^5.1.27
|
|
589
586
|
version: 5.1.27
|
|
@@ -779,9 +776,6 @@ importers:
|
|
|
779
776
|
|
|
780
777
|
.zova-rest/cabloy-commerce-admin:
|
|
781
778
|
dependencies:
|
|
782
|
-
'@tanstack/query-core':
|
|
783
|
-
specifier: ^5.101.1
|
|
784
|
-
version: 5.101.2
|
|
785
779
|
'@tanstack/vue-query':
|
|
786
780
|
specifier: ^5.101.1
|
|
787
781
|
version: 5.101.2(vue@3.5.39(typescript@5.9.3))
|
|
@@ -798,11 +792,11 @@ importers:
|
|
|
798
792
|
specifier: npm:@cabloy/zod@4.3.8
|
|
799
793
|
version: '@cabloy/zod@4.3.8'
|
|
800
794
|
zova:
|
|
801
|
-
specifier: ^5.1.
|
|
802
|
-
version: 5.1.
|
|
795
|
+
specifier: ^5.1.154
|
|
796
|
+
version: 5.1.154(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
|
|
803
797
|
zova-jsx:
|
|
804
|
-
specifier: ^1.1.
|
|
805
|
-
version: 1.1.
|
|
798
|
+
specifier: ^1.1.88
|
|
799
|
+
version: 1.1.88(typescript@5.9.3)
|
|
806
800
|
zova-module-a-api:
|
|
807
801
|
specifier: ^5.1.22
|
|
808
802
|
version: 5.1.22
|
|
@@ -816,8 +810,8 @@ importers:
|
|
|
816
810
|
specifier: ^5.1.34
|
|
817
811
|
version: 5.1.34
|
|
818
812
|
zova-module-a-form:
|
|
819
|
-
specifier: ^5.1.
|
|
820
|
-
version: 5.1.
|
|
813
|
+
specifier: ^5.1.49
|
|
814
|
+
version: 5.1.49(vue@3.5.39(typescript@5.9.3))
|
|
821
815
|
zova-module-a-icon:
|
|
822
816
|
specifier: ^5.1.27
|
|
823
817
|
version: 5.1.27
|
|
@@ -831,8 +825,8 @@ importers:
|
|
|
831
825
|
specifier: ^5.1.50
|
|
832
826
|
version: 5.1.50
|
|
833
827
|
zova-module-a-pay:
|
|
834
|
-
specifier: ^5.0.
|
|
835
|
-
version: 5.0.
|
|
828
|
+
specifier: ^5.0.7
|
|
829
|
+
version: 5.0.7
|
|
836
830
|
zova-module-a-router:
|
|
837
831
|
specifier: ^5.1.34
|
|
838
832
|
version: 5.1.34
|
|
@@ -840,8 +834,8 @@ importers:
|
|
|
840
834
|
specifier: ^5.1.34
|
|
841
835
|
version: 5.1.34
|
|
842
836
|
zova-module-a-ssr:
|
|
843
|
-
specifier: ^5.1.
|
|
844
|
-
version: 5.1.
|
|
837
|
+
specifier: ^5.1.38
|
|
838
|
+
version: 5.1.38
|
|
845
839
|
zova-module-a-style:
|
|
846
840
|
specifier: ^5.1.35
|
|
847
841
|
version: 5.1.35
|
|
@@ -849,11 +843,11 @@ importers:
|
|
|
849
843
|
specifier: ^5.1.38
|
|
850
844
|
version: 5.1.38(vue@3.5.39(typescript@5.9.3))
|
|
851
845
|
zova-module-pay-mock:
|
|
852
|
-
specifier: ^5.0.
|
|
853
|
-
version: 5.0.
|
|
846
|
+
specifier: ^5.0.5
|
|
847
|
+
version: 5.0.5
|
|
854
848
|
zova-module-rest-resource:
|
|
855
|
-
specifier: ^5.1.
|
|
856
|
-
version: 5.1.
|
|
849
|
+
specifier: ^5.1.46
|
|
850
|
+
version: 5.1.46
|
|
857
851
|
|
|
858
852
|
packages-cli/cabloy-cli:
|
|
859
853
|
dependencies:
|
|
@@ -8959,18 +8953,12 @@ packages:
|
|
|
8959
8953
|
zova-core@5.1.86:
|
|
8960
8954
|
resolution: {integrity: sha512-DoyHChxGUAefZ3OimhCJLFHD/ft8eoMLtlHkow8zh67n/6FVv4me7LYP0O0itzUcG5GskFUfBn6q72e3QoRzEg==}
|
|
8961
8955
|
|
|
8962
|
-
zova-core@5.1.87:
|
|
8963
|
-
resolution: {integrity: sha512-CANgp5A86nKkpx0YpGg5sQLnm93ZWLS8Sq3eMN/Pmf505EgSs7oJ8PSyKYa4eHknRbJwDAGHzqrKNQyARrLbKA==}
|
|
8964
|
-
|
|
8965
8956
|
zova-core@5.1.88:
|
|
8966
8957
|
resolution: {integrity: sha512-YZ8z1GHE5iAo/khgP8/gnrRN8bUkv80cVvxDzmGSG5p/CEqQpHhcrC8lUH48fbuc4BgeGMTRlZoB+uNopYnALQ==}
|
|
8967
8958
|
|
|
8968
8959
|
zova-jsx@1.1.86:
|
|
8969
8960
|
resolution: {integrity: sha512-cGGv9tsu8MuPjHM055n8On3MhuTnhdpk00VDpMN3eiljnMCQiiiW3McIDMxMkuXXJFgCJvshkDhQ9VR7EZhcsg==}
|
|
8970
8961
|
|
|
8971
|
-
zova-jsx@1.1.87:
|
|
8972
|
-
resolution: {integrity: sha512-sUq/v9cn1gPdVvE4VI1xZbsI/G36dBCIZcCB5LW3s75tg7ntZ8y6n8rjJVa6VZK0WHE0ZU8dfYd0AGtEHEyCrw==}
|
|
8973
|
-
|
|
8974
8962
|
zova-jsx@1.1.88:
|
|
8975
8963
|
resolution: {integrity: sha512-DusZAiEor+lrYwsbxrWFhTBjYTArg6ldxuo323ly1GJ39jmNeF+vRDc8liDQF1czstp0fnJtuMNxQCEBaCasxg==}
|
|
8976
8964
|
|
|
@@ -9004,6 +8992,9 @@ packages:
|
|
|
9004
8992
|
zova-module-a-form@5.1.48:
|
|
9005
8993
|
resolution: {integrity: sha512-/YuNFocyP3P6THVrSebi1jRm5+og7YOleBWc7gPzqKUFWTmxN7XBbomRidQWXSRenSd7AWBjNgO3OajhOdswlw==}
|
|
9006
8994
|
|
|
8995
|
+
zova-module-a-form@5.1.49:
|
|
8996
|
+
resolution: {integrity: sha512-p/faHaDELk2xH4TbuXQ9E+vIUZ4yZYS4URFF0HtrJ+bXDBMCJmjOl3H0encedLh9ZS0dGYpvejHPh3nLvw27JA==}
|
|
8997
|
+
|
|
9007
8998
|
zova-module-a-icon@5.1.27:
|
|
9008
8999
|
resolution: {integrity: sha512-KAvHkK6YsN2H5iQgl2IBQHIvvFDnfzPCxDzuQyTnAiCgSczD/UFO6bLZqWVT2m/qfsmJXMzWAWHPdU02J3ANZQ==}
|
|
9009
9000
|
|
|
@@ -9082,12 +9073,18 @@ packages:
|
|
|
9082
9073
|
zova-suite-a-zova@5.1.152:
|
|
9083
9074
|
resolution: {integrity: sha512-P/dcMb2fcMpnmDMlrgvpddWUbupnvohD1Jp60VYWoqI0JcWMlYTJvWQWrwszDqiMvMiOTH5mmQBTws0KzbsXpA==}
|
|
9084
9075
|
|
|
9076
|
+
zova-suite-a-zova@5.1.153:
|
|
9077
|
+
resolution: {integrity: sha512-Q7R6GL5O/Tlqk4cnFYumMR2eeCwAqfnTtFrYQuuQMpz7BmYhAPmMmJQWF2reHlRjG6B4dbOPZ5pxl1iWagY7PA==}
|
|
9078
|
+
|
|
9085
9079
|
zova@5.1.151:
|
|
9086
9080
|
resolution: {integrity: sha512-ORpFNcMYRmoWtIGIGGswPpeLgrYiax9prStB3Em0umUFGxVLPg9Yt0R1/psFlFgcC9WionitSz4WBhjvcra8Xw==}
|
|
9087
9081
|
|
|
9088
9082
|
zova@5.1.153:
|
|
9089
9083
|
resolution: {integrity: sha512-2c+4lhgZgIzM6a066eRU/Ru6CvrSTwRsq1SgsSj+NuLOxUXoj+JPvwUezuRRmBCTukpRMd2nfw8u6vWHzVArTA==}
|
|
9090
9084
|
|
|
9085
|
+
zova@5.1.154:
|
|
9086
|
+
resolution: {integrity: sha512-QF0f+wwLeuf18hsmZj1/3G/AQ9cNQYMKZiCoBBsTDh7oIhaxsmI5wxtjo59HiOEkk5ZmWPHqwjA4iepTLoKqeg==}
|
|
9087
|
+
|
|
9091
9088
|
zwitch@1.0.5:
|
|
9092
9089
|
resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==}
|
|
9093
9090
|
|
|
@@ -15392,37 +15389,6 @@ snapshots:
|
|
|
15392
15389
|
transitivePeerDependencies:
|
|
15393
15390
|
- typescript
|
|
15394
15391
|
|
|
15395
|
-
zova-core@5.1.87(typescript@5.9.3):
|
|
15396
|
-
dependencies:
|
|
15397
|
-
'@cabloy/compose': link:packages-utils/compose
|
|
15398
|
-
'@cabloy/extend': link:packages-utils/extend
|
|
15399
|
-
'@cabloy/json5': link:packages-utils/json5
|
|
15400
|
-
'@cabloy/localeutil': link:packages-utils/localeutil
|
|
15401
|
-
'@cabloy/logger': 1.1.25
|
|
15402
|
-
'@cabloy/module-info': 2.0.3
|
|
15403
|
-
'@cabloy/utils': link:packages-utils/utils
|
|
15404
|
-
'@cabloy/vue-compiler-sfc': 3.5.14
|
|
15405
|
-
'@cabloy/vue-reactivity': 3.5.16
|
|
15406
|
-
'@cabloy/vue-router': 4.4.16(vue@3.5.39(typescript@5.9.3))
|
|
15407
|
-
'@cabloy/vue-runtime-core': 3.5.57
|
|
15408
|
-
'@cabloy/vue-runtime-dom': 3.5.13
|
|
15409
|
-
'@cabloy/vue-server-renderer': 3.5.18(vue@3.5.39(typescript@5.9.3))
|
|
15410
|
-
'@cabloy/word-utils': 2.1.14
|
|
15411
|
-
'@cabloy/zod-errors-custom': link:packages-utils/zod-errors-custom
|
|
15412
|
-
'@cabloy/zod-openapi': link:packages-utils/zod-openapi
|
|
15413
|
-
'@cabloy/zod-query': link:packages-utils/zod-query
|
|
15414
|
-
'@types/js-cookie': 3.0.6
|
|
15415
|
-
'@types/ms': 2.1.0
|
|
15416
|
-
'@vue/shared': 3.5.36
|
|
15417
|
-
deep-equal: 2.2.3
|
|
15418
|
-
ms: 2.1.3
|
|
15419
|
-
reflect-metadata: 0.2.2
|
|
15420
|
-
vue: 3.5.39(typescript@5.9.3)
|
|
15421
|
-
vue-plugin-render-freeze: 2.0.4(vue@3.5.39(typescript@5.9.3))
|
|
15422
|
-
zod: '@cabloy/zod@4.3.8'
|
|
15423
|
-
transitivePeerDependencies:
|
|
15424
|
-
- typescript
|
|
15425
|
-
|
|
15426
15392
|
zova-core@5.1.88(patch_hash=144450bd7a567a6067e5857c0cf4c780981b7e90bc48745c09e1696a9b6f1b97)(typescript@5.9.3):
|
|
15427
15393
|
dependencies:
|
|
15428
15394
|
'@cabloy/compose': link:packages-utils/compose
|
|
@@ -15465,17 +15431,6 @@ snapshots:
|
|
|
15465
15431
|
transitivePeerDependencies:
|
|
15466
15432
|
- typescript
|
|
15467
15433
|
|
|
15468
|
-
zova-jsx@1.1.87(typescript@5.9.3):
|
|
15469
|
-
dependencies:
|
|
15470
|
-
'@cabloy/compose': link:packages-utils/compose
|
|
15471
|
-
'@cabloy/utils': link:packages-utils/utils
|
|
15472
|
-
'@cabloy/word-utils': 2.1.14
|
|
15473
|
-
typestyle: 2.4.0
|
|
15474
|
-
vue: 3.5.39(typescript@5.9.3)
|
|
15475
|
-
zova-core: 5.1.87(typescript@5.9.3)
|
|
15476
|
-
transitivePeerDependencies:
|
|
15477
|
-
- typescript
|
|
15478
|
-
|
|
15479
15434
|
zova-jsx@1.1.88(typescript@5.9.3):
|
|
15480
15435
|
dependencies:
|
|
15481
15436
|
'@cabloy/compose': link:packages-utils/compose
|
|
@@ -15526,6 +15481,14 @@ snapshots:
|
|
|
15526
15481
|
- '@vue/composition-api'
|
|
15527
15482
|
- vue
|
|
15528
15483
|
|
|
15484
|
+
zova-module-a-form@5.1.49(vue@3.5.39(typescript@5.9.3)):
|
|
15485
|
+
dependencies:
|
|
15486
|
+
'@tanstack/vue-form': 1.33.2(vue@3.5.39(typescript@5.9.3))
|
|
15487
|
+
'@tanstack/vue-store': 0.11.0(vue@3.5.39(typescript@5.9.3))
|
|
15488
|
+
transitivePeerDependencies:
|
|
15489
|
+
- '@vue/composition-api'
|
|
15490
|
+
- vue
|
|
15491
|
+
|
|
15529
15492
|
zova-module-a-icon@5.1.27: {}
|
|
15530
15493
|
|
|
15531
15494
|
zova-module-a-interceptor@5.1.31: {}
|
|
@@ -15613,7 +15576,7 @@ snapshots:
|
|
|
15613
15576
|
'@cabloy/word-utils': 2.1.14
|
|
15614
15577
|
defu: 6.1.7
|
|
15615
15578
|
luxon: 3.7.2
|
|
15616
|
-
zova-jsx: 1.1.
|
|
15579
|
+
zova-jsx: 1.1.88(typescript@5.9.3)
|
|
15617
15580
|
transitivePeerDependencies:
|
|
15618
15581
|
- typescript
|
|
15619
15582
|
- vue
|
|
@@ -15652,7 +15615,7 @@ snapshots:
|
|
|
15652
15615
|
zova-module-a-boundary: 5.1.22
|
|
15653
15616
|
zova-module-a-command: 5.1.34
|
|
15654
15617
|
zova-module-a-fetch: 5.1.25
|
|
15655
|
-
zova-module-a-form: 5.1.
|
|
15618
|
+
zova-module-a-form: 5.1.48(vue@3.5.39(typescript@5.9.3))
|
|
15656
15619
|
zova-module-a-icon: 5.1.27
|
|
15657
15620
|
zova-module-a-interceptor: 5.1.31
|
|
15658
15621
|
zova-module-a-logger: 5.1.28
|
|
@@ -15662,7 +15625,7 @@ snapshots:
|
|
|
15662
15625
|
zova-module-a-router: 5.1.34
|
|
15663
15626
|
zova-module-a-routerstack: 5.1.27
|
|
15664
15627
|
zova-module-a-routertabs: 5.1.34
|
|
15665
|
-
zova-module-a-ssr: 5.1.
|
|
15628
|
+
zova-module-a-ssr: 5.1.38
|
|
15666
15629
|
zova-module-a-ssrhmr: 5.1.23
|
|
15667
15630
|
zova-module-a-ssrserver: 5.1.26
|
|
15668
15631
|
zova-module-a-style: 5.1.35
|
|
@@ -15710,6 +15673,40 @@ snapshots:
|
|
|
15710
15673
|
- typescript
|
|
15711
15674
|
- vue
|
|
15712
15675
|
|
|
15676
|
+
zova-suite-a-zova@5.1.153(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
|
|
15677
|
+
dependencies:
|
|
15678
|
+
zova-module-a-api: 5.1.22
|
|
15679
|
+
zova-module-a-app: 5.1.26
|
|
15680
|
+
zova-module-a-bean: 5.1.33
|
|
15681
|
+
zova-module-a-behavior: 5.1.26
|
|
15682
|
+
zova-module-a-behaviors: 5.1.22
|
|
15683
|
+
zova-module-a-boundary: 5.1.22
|
|
15684
|
+
zova-module-a-command: 5.1.34
|
|
15685
|
+
zova-module-a-fetch: 5.1.25
|
|
15686
|
+
zova-module-a-form: 5.1.49(vue@3.5.39(typescript@5.9.3))
|
|
15687
|
+
zova-module-a-icon: 5.1.27
|
|
15688
|
+
zova-module-a-interceptor: 5.1.31
|
|
15689
|
+
zova-module-a-logger: 5.1.28
|
|
15690
|
+
zova-module-a-meta: 5.1.22
|
|
15691
|
+
zova-module-a-model: 5.1.35(vue@3.5.39(typescript@5.9.3))
|
|
15692
|
+
zova-module-a-openapi: 5.1.50
|
|
15693
|
+
zova-module-a-router: 5.1.34
|
|
15694
|
+
zova-module-a-routerstack: 5.1.27
|
|
15695
|
+
zova-module-a-routertabs: 5.1.34
|
|
15696
|
+
zova-module-a-ssr: 5.1.38
|
|
15697
|
+
zova-module-a-ssrhmr: 5.1.23
|
|
15698
|
+
zova-module-a-ssrserver: 5.1.26
|
|
15699
|
+
zova-module-a-style: 5.1.35
|
|
15700
|
+
zova-module-a-table: 5.1.38(vue@3.5.39(typescript@5.9.3))
|
|
15701
|
+
zova-module-a-zod: 5.1.37
|
|
15702
|
+
zova-module-a-zova: 5.1.103(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
|
|
15703
|
+
transitivePeerDependencies:
|
|
15704
|
+
- '@vue/composition-api'
|
|
15705
|
+
- debug
|
|
15706
|
+
- supports-color
|
|
15707
|
+
- typescript
|
|
15708
|
+
- vue
|
|
15709
|
+
|
|
15713
15710
|
zova@5.1.151(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
|
|
15714
15711
|
dependencies:
|
|
15715
15712
|
zova-core: 5.1.86(typescript@5.9.3)
|
|
@@ -15732,6 +15729,17 @@ snapshots:
|
|
|
15732
15729
|
- typescript
|
|
15733
15730
|
- vue
|
|
15734
15731
|
|
|
15732
|
+
zova@5.1.154(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
|
|
15733
|
+
dependencies:
|
|
15734
|
+
zova-core: 5.1.88(patch_hash=144450bd7a567a6067e5857c0cf4c780981b7e90bc48745c09e1696a9b6f1b97)(typescript@5.9.3)
|
|
15735
|
+
zova-suite-a-zova: 5.1.153(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
|
|
15736
|
+
transitivePeerDependencies:
|
|
15737
|
+
- '@vue/composition-api'
|
|
15738
|
+
- debug
|
|
15739
|
+
- supports-color
|
|
15740
|
+
- typescript
|
|
15741
|
+
- vue
|
|
15742
|
+
|
|
15735
15743
|
zwitch@1.0.5: {}
|
|
15736
15744
|
|
|
15737
15745
|
zwitch@2.0.4: {}
|
|
@@ -357,114 +357,6 @@ declare module 'vona-module-a-orm' {
|
|
|
357
357
|
}
|
|
358
358
|
}
|
|
359
359
|
/** model: end */
|
|
360
|
-
/** service: begin */
|
|
361
|
-
export * from '../service/category.ts';
|
|
362
|
-
export * from '../service/product.ts';
|
|
363
|
-
export * from '../service/sku.ts';
|
|
364
|
-
|
|
365
|
-
import 'vona-module-a-bean';
|
|
366
|
-
declare module 'vona-module-a-bean' {
|
|
367
|
-
|
|
368
|
-
export interface IServiceRecord {
|
|
369
|
-
'commerce-catalog:category': never;
|
|
370
|
-
'commerce-catalog:product': never;
|
|
371
|
-
'commerce-catalog:sku': never;
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
}
|
|
376
|
-
declare module 'vona-module-commerce-catalog' {
|
|
377
|
-
|
|
378
|
-
export interface ServiceCategory {
|
|
379
|
-
/** @internal */
|
|
380
|
-
get scope(): ScopeModuleCommerceCatalog;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
export interface ServiceCategory {
|
|
384
|
-
get $beanFullName(): 'commerce-catalog.service.category';
|
|
385
|
-
get $onionName(): 'commerce-catalog:category';
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
export interface ServiceProduct {
|
|
389
|
-
/** @internal */
|
|
390
|
-
get scope(): ScopeModuleCommerceCatalog;
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
export interface ServiceProduct {
|
|
394
|
-
get $beanFullName(): 'commerce-catalog.service.product';
|
|
395
|
-
get $onionName(): 'commerce-catalog:product';
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
export interface ServiceSku {
|
|
399
|
-
/** @internal */
|
|
400
|
-
get scope(): ScopeModuleCommerceCatalog;
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
export interface ServiceSku {
|
|
404
|
-
get $beanFullName(): 'commerce-catalog.service.sku';
|
|
405
|
-
get $onionName(): 'commerce-catalog:sku';
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
/** service: end */
|
|
409
|
-
/** service: begin */
|
|
410
|
-
import type { ServiceCategory } from '../service/category.ts';
|
|
411
|
-
import type { ServiceProduct } from '../service/product.ts';
|
|
412
|
-
import type { ServiceSku } from '../service/sku.ts';
|
|
413
|
-
export interface IModuleService {
|
|
414
|
-
'category': ServiceCategory;
|
|
415
|
-
'product': ServiceProduct;
|
|
416
|
-
'sku': ServiceSku;
|
|
417
|
-
}
|
|
418
|
-
/** service: end */
|
|
419
|
-
/** service: begin */
|
|
420
|
-
|
|
421
|
-
import 'vona';
|
|
422
|
-
declare module 'vona' {
|
|
423
|
-
export interface IBeanRecordGeneral {
|
|
424
|
-
'commerce-catalog.service.category': ServiceCategory;
|
|
425
|
-
'commerce-catalog.service.product': ServiceProduct;
|
|
426
|
-
'commerce-catalog.service.sku': ServiceSku;
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
/** service: end */
|
|
430
|
-
/** meta: begin */
|
|
431
|
-
export * from '../bean/meta.index.ts';
|
|
432
|
-
export * from '../bean/meta.version.ts';
|
|
433
|
-
import type { IMetaOptionsIndex } from 'vona-module-a-index';
|
|
434
|
-
import 'vona-module-a-meta';
|
|
435
|
-
declare module 'vona-module-a-meta' {
|
|
436
|
-
|
|
437
|
-
export interface IMetaRecord {
|
|
438
|
-
'commerce-catalog:index': IMetaOptionsIndex;
|
|
439
|
-
'commerce-catalog:version': never;
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
}
|
|
444
|
-
declare module 'vona-module-commerce-catalog' {
|
|
445
|
-
|
|
446
|
-
export interface MetaIndex {
|
|
447
|
-
/** @internal */
|
|
448
|
-
get scope(): ScopeModuleCommerceCatalog;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
export interface MetaIndex {
|
|
452
|
-
get $beanFullName(): 'commerce-catalog.meta.index';
|
|
453
|
-
get $onionName(): 'commerce-catalog:index';
|
|
454
|
-
get $onionOptions(): IMetaOptionsIndex;
|
|
455
|
-
}
|
|
456
|
-
|
|
457
|
-
export interface MetaVersion {
|
|
458
|
-
/** @internal */
|
|
459
|
-
get scope(): ScopeModuleCommerceCatalog;
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
export interface MetaVersion {
|
|
463
|
-
get $beanFullName(): 'commerce-catalog.meta.version';
|
|
464
|
-
get $onionName(): 'commerce-catalog:version';
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
|
-
/** meta: end */
|
|
468
360
|
/** dto: begin */
|
|
469
361
|
export * from '../dto/categoryCreate.tsx';
|
|
470
362
|
export * from '../dto/categorySelectReq.tsx';
|
|
@@ -803,6 +695,114 @@ import 'vona-module-a-openapi';
|
|
|
803
695
|
}
|
|
804
696
|
|
|
805
697
|
/** controller: end */
|
|
698
|
+
/** service: begin */
|
|
699
|
+
export * from '../service/category.ts';
|
|
700
|
+
export * from '../service/product.ts';
|
|
701
|
+
export * from '../service/sku.ts';
|
|
702
|
+
|
|
703
|
+
import 'vona-module-a-bean';
|
|
704
|
+
declare module 'vona-module-a-bean' {
|
|
705
|
+
|
|
706
|
+
export interface IServiceRecord {
|
|
707
|
+
'commerce-catalog:category': never;
|
|
708
|
+
'commerce-catalog:product': never;
|
|
709
|
+
'commerce-catalog:sku': never;
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
|
|
713
|
+
}
|
|
714
|
+
declare module 'vona-module-commerce-catalog' {
|
|
715
|
+
|
|
716
|
+
export interface ServiceCategory {
|
|
717
|
+
/** @internal */
|
|
718
|
+
get scope(): ScopeModuleCommerceCatalog;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
export interface ServiceCategory {
|
|
722
|
+
get $beanFullName(): 'commerce-catalog.service.category';
|
|
723
|
+
get $onionName(): 'commerce-catalog:category';
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
export interface ServiceProduct {
|
|
727
|
+
/** @internal */
|
|
728
|
+
get scope(): ScopeModuleCommerceCatalog;
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
export interface ServiceProduct {
|
|
732
|
+
get $beanFullName(): 'commerce-catalog.service.product';
|
|
733
|
+
get $onionName(): 'commerce-catalog:product';
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
export interface ServiceSku {
|
|
737
|
+
/** @internal */
|
|
738
|
+
get scope(): ScopeModuleCommerceCatalog;
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
export interface ServiceSku {
|
|
742
|
+
get $beanFullName(): 'commerce-catalog.service.sku';
|
|
743
|
+
get $onionName(): 'commerce-catalog:sku';
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
/** service: end */
|
|
747
|
+
/** service: begin */
|
|
748
|
+
import type { ServiceCategory } from '../service/category.ts';
|
|
749
|
+
import type { ServiceProduct } from '../service/product.ts';
|
|
750
|
+
import type { ServiceSku } from '../service/sku.ts';
|
|
751
|
+
export interface IModuleService {
|
|
752
|
+
'category': ServiceCategory;
|
|
753
|
+
'product': ServiceProduct;
|
|
754
|
+
'sku': ServiceSku;
|
|
755
|
+
}
|
|
756
|
+
/** service: end */
|
|
757
|
+
/** service: begin */
|
|
758
|
+
|
|
759
|
+
import 'vona';
|
|
760
|
+
declare module 'vona' {
|
|
761
|
+
export interface IBeanRecordGeneral {
|
|
762
|
+
'commerce-catalog.service.category': ServiceCategory;
|
|
763
|
+
'commerce-catalog.service.product': ServiceProduct;
|
|
764
|
+
'commerce-catalog.service.sku': ServiceSku;
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
/** service: end */
|
|
768
|
+
/** meta: begin */
|
|
769
|
+
export * from '../bean/meta.index.ts';
|
|
770
|
+
export * from '../bean/meta.version.ts';
|
|
771
|
+
import type { IMetaOptionsIndex } from 'vona-module-a-index';
|
|
772
|
+
import 'vona-module-a-meta';
|
|
773
|
+
declare module 'vona-module-a-meta' {
|
|
774
|
+
|
|
775
|
+
export interface IMetaRecord {
|
|
776
|
+
'commerce-catalog:index': IMetaOptionsIndex;
|
|
777
|
+
'commerce-catalog:version': never;
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
|
|
781
|
+
}
|
|
782
|
+
declare module 'vona-module-commerce-catalog' {
|
|
783
|
+
|
|
784
|
+
export interface MetaIndex {
|
|
785
|
+
/** @internal */
|
|
786
|
+
get scope(): ScopeModuleCommerceCatalog;
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
export interface MetaIndex {
|
|
790
|
+
get $beanFullName(): 'commerce-catalog.meta.index';
|
|
791
|
+
get $onionName(): 'commerce-catalog:index';
|
|
792
|
+
get $onionOptions(): IMetaOptionsIndex;
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
export interface MetaVersion {
|
|
796
|
+
/** @internal */
|
|
797
|
+
get scope(): ScopeModuleCommerceCatalog;
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
export interface MetaVersion {
|
|
801
|
+
get $beanFullName(): 'commerce-catalog.meta.version';
|
|
802
|
+
get $onionName(): 'commerce-catalog:version';
|
|
803
|
+
}
|
|
804
|
+
}
|
|
805
|
+
/** meta: end */
|
|
806
806
|
/** ssrMenu: begin */
|
|
807
807
|
export * from '../bean/ssrMenu.category.ts';
|
|
808
808
|
export * from '../bean/ssrMenu.product.ts';
|
|
@@ -3,6 +3,7 @@ import type { IDecoratorDtoOptions } from 'vona-module-a-web';
|
|
|
3
3
|
import { Api, v } from 'vona-module-a-openapiutils';
|
|
4
4
|
import { $Dto } from 'vona-module-a-orm';
|
|
5
5
|
import { Dto } from 'vona-module-a-web';
|
|
6
|
+
import { z } from 'zod';
|
|
6
7
|
import { ZovaRender } from 'zova-rest-cabloy-basic-admin';
|
|
7
8
|
|
|
8
9
|
import { $locale } from '../.metadata/locales.ts';
|
|
@@ -62,11 +63,22 @@ export class DtoSkuSelectResItem extends $Dto.get(() => ModelSku, {
|
|
|
62
63
|
product: { columns: ['id', 'title'] },
|
|
63
64
|
},
|
|
64
65
|
}) {
|
|
66
|
+
@Api.field(
|
|
67
|
+
v.title($locale('Available')),
|
|
68
|
+
v.required(),
|
|
69
|
+
z.number().int().nonnegative(),
|
|
70
|
+
ZovaRender.order(5),
|
|
71
|
+
)
|
|
72
|
+
available: number;
|
|
73
|
+
|
|
65
74
|
@Api.field(
|
|
66
75
|
v.title($locale('Operations')),
|
|
67
76
|
ZovaRender.order(1, 'max'),
|
|
68
77
|
ZovaRender.cell('basic-table:actionOperationsRow', {
|
|
69
78
|
actions: [
|
|
79
|
+
ZovaRender.tableActionRow('commerce-trade:actionAdjustStock', {
|
|
80
|
+
permission: { actionInherit: 'update' },
|
|
81
|
+
}),
|
|
70
82
|
ZovaRender.tableActionRow('basic-table:actionUpdate'),
|
|
71
83
|
ZovaRender.tableActionRow('basic-table:actionDelete'),
|
|
72
84
|
],
|
|
@@ -28,13 +28,31 @@ export class ServiceSku extends BeanBase {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
async select(params?: IQueryParams<ModelSku>): Promise<DtoSkuSelectRes> {
|
|
31
|
-
|
|
31
|
+
const result = await this.scope.model.sku.selectAndCount({
|
|
32
32
|
...params,
|
|
33
33
|
include: {
|
|
34
34
|
...params?.include,
|
|
35
35
|
product: { columns: ['id', 'title'] },
|
|
36
36
|
},
|
|
37
37
|
});
|
|
38
|
+
if (result.list.length === 0) return result as unknown as DtoSkuSelectRes;
|
|
39
|
+
|
|
40
|
+
const balances = await this.$scope.commerceTrade.model.stockBalance.select({
|
|
41
|
+
columns: ['skuId', 'available'],
|
|
42
|
+
where: {
|
|
43
|
+
skuId: result.list.map(sku => sku.id),
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
const availableBySkuId = new Map(
|
|
47
|
+
balances.map(balance => [String(balance.skuId), balance.available]),
|
|
48
|
+
);
|
|
49
|
+
return {
|
|
50
|
+
...result,
|
|
51
|
+
list: result.list.map(sku => ({
|
|
52
|
+
...sku,
|
|
53
|
+
available: availableBySkuId.get(String(sku.id)) ?? 0,
|
|
54
|
+
})),
|
|
55
|
+
} as DtoSkuSelectRes;
|
|
38
56
|
}
|
|
39
57
|
|
|
40
58
|
async view(id: TableIdentity): Promise<DtoSkuView | undefined> {
|