cabloy 5.1.120 → 5.1.122

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.
Files changed (37) hide show
  1. package/.cabloy-version +1 -1
  2. package/CHANGELOG.md +17 -0
  3. package/cabloy-docs/frontend/form-layout-guide.md +51 -20
  4. package/cabloy-docs/frontend/table-resource-crud-cookbook.md +31 -4
  5. package/cabloy-docs/frontend/zova-form-source-reading-map.md +7 -5
  6. package/cabloy-docs/frontend/zova-form-under-the-hood.md +5 -2
  7. package/cabloy-docs/fullstack/backend-metadata-to-frontend-table-actions.md +2 -2
  8. package/e2e/specs/cabloy-basic/basic.spec.ts +9 -0
  9. package/package.json +1 -1
  10. package/vona/packages-cli/cli/package.json +1 -1
  11. package/vona/packages-cli/cli-set-api/cli/templates/tools/crudBasic/boilerplate/src/dto/{{resourceName}}SelectResItem.tsx_ +27 -2
  12. package/vona/packages-cli/cli-set-api/cli/templates/tools/crudStart/boilerplate/src/dto/{{resourceName}}SelectResItem.tsx_ +27 -2
  13. package/vona/packages-cli/cli-set-api/package.json +1 -1
  14. package/vona/pnpm-lock.yaml +39 -39
  15. package/vona/src/suite/a-commerce/modules/commerce-catalog/src/dto/categorySelectResItem.tsx +23 -1
  16. package/vona/src/suite/a-commerce/modules/commerce-catalog/src/dto/productSelectResItem.tsx +23 -1
  17. package/vona/src/suite/a-commerce/modules/commerce-catalog/src/dto/skuSelectResItem.tsx +23 -1
  18. package/vona/src/suite/a-commerce/modules/commerce-member/src/dto/addressSelectResItem.tsx +24 -1
  19. package/vona/src/suite/a-commerce/modules/commerce-promotion/src/dto/couponTemplateSelectResItem.tsx +23 -1
  20. package/vona/src/suite/a-commerce/modules/commerce-trade/src/dto/orderSelectResItem.tsx +23 -1
  21. package/vona/src/suite/a-commerce/modules/commerce-trade/src/dto/stockAuditSelectResItem.tsx +23 -1
  22. package/vona/src/suite/a-commerce/modules/commerce-trade/src/dto/stockBalanceSelectResItem.tsx +23 -1
  23. package/vona/src/suite/a-commerce/modules/commerce-trade/src/service/order.ts +6 -1
  24. package/vona/src/suite/a-commerce/modules/commerce-trade/test/shipmentRefundRace.test.ts +377 -24
  25. package/vona/src/suite/a-training/modules/training-record/src/dto/recordSelectResItem.tsx +24 -1
  26. package/vona/src/suite/a-training/modules/training-student/src/dto/studentSelectResItem.tsx +4 -1
  27. package/vona/src/suite/a-training/modules/training-student/test/student.test.ts +10 -3
  28. package/zova/packages-zova/zova/package.json +2 -2
  29. package/zova/pnpm-lock.yaml +3 -3
  30. package/zova/src/suite/cabloy-basic/modules/basic-form/src/component/blockFormLayout/controller.tsx +25 -4
  31. package/zova/src/suite-vendor/a-zova/modules/a-form/package.json +1 -1
  32. package/zova/src/suite-vendor/a-zova/modules/a-form/src/component/form/controller.tsx +1 -0
  33. package/zova/src/suite-vendor/a-zova/modules/a-form/src/lib/formLayout.ts +21 -4
  34. package/zova/src/suite-vendor/a-zova/modules/a-form/src/types/formLayout.ts +13 -4
  35. package/zova/src/suite-vendor/a-zova/modules/a-openapi/package.json +1 -1
  36. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/resource/formLayout.ts +14 -4
  37. package/zova/src/suite-vendor/a-zova/package.json +3 -3
@@ -546,8 +546,8 @@ importers:
546
546
  specifier: npm:@cabloy/zod@4.3.8
547
547
  version: '@cabloy/zod@4.3.8'
548
548
  zova:
549
- specifier: ^5.1.141
550
- version: 5.1.141(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
549
+ specifier: ^5.1.142
550
+ version: 5.1.142(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
551
551
  zova-jsx:
552
552
  specifier: ^1.1.79
553
553
  version: 1.1.79(typescript@5.9.3)
@@ -564,8 +564,8 @@ importers:
564
564
  specifier: ^5.1.33
565
565
  version: 5.1.33
566
566
  zova-module-a-form:
567
- specifier: ^5.1.45
568
- version: 5.1.45(vue@3.5.39(typescript@5.9.3))
567
+ specifier: ^5.1.46
568
+ version: 5.1.46(vue@3.5.39(typescript@5.9.3))
569
569
  zova-module-a-icon:
570
570
  specifier: ^5.1.26
571
571
  version: 5.1.26
@@ -576,8 +576,8 @@ importers:
576
576
  specifier: ^5.1.33
577
577
  version: 5.1.33(vue@3.5.39(typescript@5.9.3))
578
578
  zova-module-a-openapi:
579
- specifier: ^5.1.46
580
- version: 5.1.46
579
+ specifier: ^5.1.47
580
+ version: 5.1.47
581
581
  zova-module-a-router:
582
582
  specifier: ^5.1.31
583
583
  version: 5.1.31
@@ -618,8 +618,8 @@ importers:
618
618
  specifier: npm:@cabloy/zod@4.3.8
619
619
  version: '@cabloy/zod@4.3.8'
620
620
  zova:
621
- specifier: ^5.1.141
622
- version: 5.1.141(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
621
+ specifier: ^5.1.142
622
+ version: 5.1.142(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
623
623
  zova-jsx:
624
624
  specifier: ^1.1.79
625
625
  version: 1.1.79(typescript@5.9.3)
@@ -636,8 +636,8 @@ importers:
636
636
  specifier: ^5.1.33
637
637
  version: 5.1.33
638
638
  zova-module-a-form:
639
- specifier: ^5.1.45
640
- version: 5.1.45(vue@3.5.39(typescript@5.9.3))
639
+ specifier: ^5.1.46
640
+ version: 5.1.46(vue@3.5.39(typescript@5.9.3))
641
641
  zova-module-a-icon:
642
642
  specifier: ^5.1.26
643
643
  version: 5.1.26
@@ -648,8 +648,8 @@ importers:
648
648
  specifier: ^5.1.33
649
649
  version: 5.1.33(vue@3.5.39(typescript@5.9.3))
650
650
  zova-module-a-openapi:
651
- specifier: ^5.1.46
652
- version: 5.1.46
651
+ specifier: ^5.1.47
652
+ version: 5.1.47
653
653
  zova-module-a-router:
654
654
  specifier: ^5.1.31
655
655
  version: 5.1.31
@@ -690,8 +690,8 @@ importers:
690
690
  specifier: npm:@cabloy/zod@4.3.8
691
691
  version: '@cabloy/zod@4.3.8'
692
692
  zova:
693
- specifier: ^5.1.141
694
- version: 5.1.141(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
693
+ specifier: ^5.1.142
694
+ version: 5.1.142(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
695
695
  zova-jsx:
696
696
  specifier: ^1.1.79
697
697
  version: 1.1.79(typescript@5.9.3)
@@ -708,8 +708,8 @@ importers:
708
708
  specifier: ^5.1.33
709
709
  version: 5.1.33
710
710
  zova-module-a-form:
711
- specifier: ^5.1.45
712
- version: 5.1.45(vue@3.5.39(typescript@5.9.3))
711
+ specifier: ^5.1.46
712
+ version: 5.1.46(vue@3.5.39(typescript@5.9.3))
713
713
  zova-module-a-icon:
714
714
  specifier: ^5.1.26
715
715
  version: 5.1.26
@@ -720,8 +720,8 @@ importers:
720
720
  specifier: ^5.1.33
721
721
  version: 5.1.33(vue@3.5.39(typescript@5.9.3))
722
722
  zova-module-a-openapi:
723
- specifier: ^5.1.46
724
- version: 5.1.46
723
+ specifier: ^5.1.47
724
+ version: 5.1.47
725
725
  zova-module-a-router:
726
726
  specifier: ^5.1.31
727
727
  version: 5.1.31
@@ -762,8 +762,8 @@ importers:
762
762
  specifier: npm:@cabloy/zod@4.3.8
763
763
  version: '@cabloy/zod@4.3.8'
764
764
  zova:
765
- specifier: ^5.1.141
766
- version: 5.1.141(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
765
+ specifier: ^5.1.142
766
+ version: 5.1.142(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
767
767
  zova-jsx:
768
768
  specifier: ^1.1.79
769
769
  version: 1.1.79(typescript@5.9.3)
@@ -780,8 +780,8 @@ importers:
780
780
  specifier: ^5.1.33
781
781
  version: 5.1.33
782
782
  zova-module-a-form:
783
- specifier: ^5.1.45
784
- version: 5.1.45(vue@3.5.39(typescript@5.9.3))
783
+ specifier: ^5.1.46
784
+ version: 5.1.46(vue@3.5.39(typescript@5.9.3))
785
785
  zova-module-a-icon:
786
786
  specifier: ^5.1.26
787
787
  version: 5.1.26
@@ -792,8 +792,8 @@ importers:
792
792
  specifier: ^5.1.33
793
793
  version: 5.1.33(vue@3.5.39(typescript@5.9.3))
794
794
  zova-module-a-openapi:
795
- specifier: ^5.1.46
796
- version: 5.1.46
795
+ specifier: ^5.1.47
796
+ version: 5.1.47
797
797
  zova-module-a-router:
798
798
  specifier: ^5.1.31
799
799
  version: 5.1.31
@@ -8457,8 +8457,8 @@ packages:
8457
8457
  zova-module-a-fetch@5.1.24:
8458
8458
  resolution: {integrity: sha512-V3phmL02BrC3xcEny+3q7pOnLX+ukKh6YhVpf/XUABsW3I/Va7Zq0AHPMbJw08rCKCrzFfSgL/gZ5GiQT+bXog==}
8459
8459
 
8460
- zova-module-a-form@5.1.45:
8461
- resolution: {integrity: sha512-1WqkRMjQNS161/15vifkE82bGpmZCa20QWSDHKhJS9NbaunM4idSUXyYlv0yA+99Knk+ciwm/sPO0V3QxtYB9A==}
8460
+ zova-module-a-form@5.1.46:
8461
+ resolution: {integrity: sha512-xWZ1Yk/+HtGackCu0JNZ2R4PZ1f/Y6DRpHw+QRIaXQ6PbA976g5SoDQ8291RZzr6htbfXUbK+nxTVB2B/Tzyuw==}
8462
8462
 
8463
8463
  zova-module-a-icon@5.1.26:
8464
8464
  resolution: {integrity: sha512-zV7hWilh3p+XfzvwPiWf2temW71kZNwqAyTs4RSHIoTJDO9XqjDFbuo39rfbDacgp0CLrbUp5yaCskRkG3lIbg==}
@@ -8475,8 +8475,8 @@ packages:
8475
8475
  zova-module-a-model@5.1.33:
8476
8476
  resolution: {integrity: sha512-NwxCguvESPLUSA2zo5vVH3Qx29o5znmUL2qU9khwjXUmDPbOTeYTkgPCI33fTsy8VnkguoWBLMgUdOsaJF+7OA==}
8477
8477
 
8478
- zova-module-a-openapi@5.1.46:
8479
- resolution: {integrity: sha512-eBC28HIEQv5AMZHvoCCfaP7PtQvTC/623sBp2PbcT1CVw23OFWCBw7QOJzlzQ2DbevyBZZ546D0xG/TURKXd1w==}
8478
+ zova-module-a-openapi@5.1.47:
8479
+ resolution: {integrity: sha512-iar4YR9GGdCQ9N60yt9yV+RkiM1seKlmbhoyZqLAZ7aR5tLnw2ZL7ElamHEGO5iBtFXRU8QH8RaU+8PnnyaLkg==}
8480
8480
 
8481
8481
  zova-module-a-router@5.1.31:
8482
8482
  resolution: {integrity: sha512-bTtj3JmJKGZwUYwWpsuhigXYseYab/gOmT18WyNw0KetZGY03Y+JnU74oidrK1KtIY384+my1ZQefBlbIZjNeg==}
@@ -8511,11 +8511,11 @@ packages:
8511
8511
  zova-module-rest-resource@5.1.42:
8512
8512
  resolution: {integrity: sha512-eMWhc4428U5Hs4BHqFJoF7yaH+bK8t71scIrCnpLbQS7M80lNkoHxY9s/Kl4i8Uo3+lVWbSbuaXWtR+zVLNqpA==}
8513
8513
 
8514
- zova-suite-a-zova@5.1.140:
8515
- resolution: {integrity: sha512-X3CSsgXtOWzj4PSR9KzVBgQrRgGU6KC48XXBWWuCLOfbF2FeUHz6dl5+EiDwbk9r0Mz8yCnrZR3iBTy6o41OGg==}
8514
+ zova-suite-a-zova@5.1.141:
8515
+ resolution: {integrity: sha512-fqeynyYUL12PTZMQ1ZxryHEFcCfaQL2hLTs8MxxdbHCKDhOjNEaOTW5MGR5DzSRM7uMXNCq1crPvbYvDmmeUdg==}
8516
8516
 
8517
- zova@5.1.141:
8518
- resolution: {integrity: sha512-K549iOY3YFQ5al/nAWNAHzf2Zzn8yiU+g/590paulR3g80aY/wPViA8IhpNT7mhEqP5NiGHEiWacK2MLKrvg0A==}
8517
+ zova@5.1.142:
8518
+ resolution: {integrity: sha512-qvrKhrS9y4BVI2Nszre3TSvDJu5BjTo2adzAXP2qC3TeoW4IZ8njvV2ROoAPe//X6SiJ1Il60oTNSc1PnkXvWg==}
8519
8519
 
8520
8520
  zwitch@1.0.5:
8521
8521
  resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==}
@@ -14498,7 +14498,7 @@ snapshots:
14498
14498
  - debug
14499
14499
  - supports-color
14500
14500
 
14501
- zova-module-a-form@5.1.45(vue@3.5.39(typescript@5.9.3)):
14501
+ zova-module-a-form@5.1.46(vue@3.5.39(typescript@5.9.3)):
14502
14502
  dependencies:
14503
14503
  '@tanstack/vue-form': 1.33.2(vue@3.5.39(typescript@5.9.3))
14504
14504
  '@tanstack/vue-store': 0.11.0(vue@3.5.39(typescript@5.9.3))
@@ -14528,7 +14528,7 @@ snapshots:
14528
14528
  - '@vue/composition-api'
14529
14529
  - vue
14530
14530
 
14531
- zova-module-a-openapi@5.1.46:
14531
+ zova-module-a-openapi@5.1.47:
14532
14532
  dependencies:
14533
14533
  '@cabloy/json-schema-to-zod': 2.6.5
14534
14534
  openapi3-ts: 4.6.0
@@ -14591,7 +14591,7 @@ snapshots:
14591
14591
 
14592
14592
  zova-module-rest-resource@5.1.42: {}
14593
14593
 
14594
- zova-suite-a-zova@5.1.140(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
14594
+ zova-suite-a-zova@5.1.141(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
14595
14595
  dependencies:
14596
14596
  zova-module-a-api: 5.1.21
14597
14597
  zova-module-a-app: 5.1.25
@@ -14601,13 +14601,13 @@ snapshots:
14601
14601
  zova-module-a-boundary: 5.1.21
14602
14602
  zova-module-a-command: 5.1.33
14603
14603
  zova-module-a-fetch: 5.1.24
14604
- zova-module-a-form: 5.1.45(vue@3.5.39(typescript@5.9.3))
14604
+ zova-module-a-form: 5.1.46(vue@3.5.39(typescript@5.9.3))
14605
14605
  zova-module-a-icon: 5.1.26
14606
14606
  zova-module-a-interceptor: 5.1.29
14607
14607
  zova-module-a-logger: 5.1.26
14608
14608
  zova-module-a-meta: 5.1.21
14609
14609
  zova-module-a-model: 5.1.33(vue@3.5.39(typescript@5.9.3))
14610
- zova-module-a-openapi: 5.1.46
14610
+ zova-module-a-openapi: 5.1.47
14611
14611
  zova-module-a-router: 5.1.31
14612
14612
  zova-module-a-routerstack: 5.1.26
14613
14613
  zova-module-a-routertabs: 5.1.33
@@ -14625,10 +14625,10 @@ snapshots:
14625
14625
  - typescript
14626
14626
  - vue
14627
14627
 
14628
- zova@5.1.141(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
14628
+ zova@5.1.142(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
14629
14629
  dependencies:
14630
14630
  zova-core: 5.1.79(patch_hash=ff659aa5f659be32501f56841b72f148c24acf1546f79cce551586e27fcde2ce)(typescript@5.9.3)
14631
- zova-suite-a-zova: 5.1.140(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
14631
+ zova-suite-a-zova: 5.1.141(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
14632
14632
  transitivePeerDependencies:
14633
14633
  - '@vue/composition-api'
14634
14634
  - debug
@@ -14,7 +14,29 @@ export interface IDtoOptionsCategorySelectResItem extends IDecoratorDtoOptions {
14
14
  blocks: [
15
15
  ZovaRender.block('basic-page:blockPage', {
16
16
  blocks: [
17
- ZovaRender.block('basic-page:blockFilter'),
17
+ ZovaRender.block('basic-page:blockFilter', {
18
+ formFieldLayout: { inline: true },
19
+ blocks: [
20
+ ZovaRender.block('basic-form:blockFormLayout', {
21
+ formLayout: {
22
+ children: [
23
+ {
24
+ type: 'section',
25
+ layout: 'flow',
26
+ children: [
27
+ { type: 'field', name: 'name' },
28
+ { type: 'field', name: 'createdAt' },
29
+ {
30
+ type: 'block',
31
+ block: ZovaRender.block('basic-page:blockFilterActions'),
32
+ },
33
+ ],
34
+ },
35
+ ],
36
+ },
37
+ }),
38
+ ],
39
+ }),
18
40
  ZovaRender.block('basic-page:blockToolbarBulk', {
19
41
  actions: [ZovaRender.tableActionBulk('basic-table:actionCreate')],
20
42
  }),
@@ -14,7 +14,29 @@ export interface IDtoOptionsProductSelectResItem extends IDecoratorDtoOptions {}
14
14
  blocks: [
15
15
  ZovaRender.block('basic-page:blockPage', {
16
16
  blocks: [
17
- ZovaRender.block('basic-page:blockFilter'),
17
+ ZovaRender.block('basic-page:blockFilter', {
18
+ formFieldLayout: { inline: true },
19
+ blocks: [
20
+ ZovaRender.block('basic-form:blockFormLayout', {
21
+ formLayout: {
22
+ children: [
23
+ {
24
+ type: 'section',
25
+ layout: 'flow',
26
+ children: [
27
+ { type: 'field', name: 'title' },
28
+ { type: 'field', name: 'createdAt' },
29
+ {
30
+ type: 'block',
31
+ block: ZovaRender.block('basic-page:blockFilterActions'),
32
+ },
33
+ ],
34
+ },
35
+ ],
36
+ },
37
+ }),
38
+ ],
39
+ }),
18
40
  ZovaRender.block('basic-page:blockToolbarBulk', {
19
41
  actions: [ZovaRender.tableActionBulk('basic-table:actionCreate')],
20
42
  }),
@@ -14,7 +14,29 @@ export interface IDtoOptionsSkuSelectResItem extends IDecoratorDtoOptions {}
14
14
  blocks: [
15
15
  ZovaRender.block('basic-page:blockPage', {
16
16
  blocks: [
17
- ZovaRender.block('basic-page:blockFilter'),
17
+ ZovaRender.block('basic-page:blockFilter', {
18
+ formFieldLayout: { inline: true },
19
+ blocks: [
20
+ ZovaRender.block('basic-form:blockFormLayout', {
21
+ formLayout: {
22
+ children: [
23
+ {
24
+ type: 'section',
25
+ layout: 'flow',
26
+ children: [
27
+ { type: 'field', name: 'code' },
28
+ { type: 'field', name: 'createdAt' },
29
+ {
30
+ type: 'block',
31
+ block: ZovaRender.block('basic-page:blockFilterActions'),
32
+ },
33
+ ],
34
+ },
35
+ ],
36
+ },
37
+ }),
38
+ ],
39
+ }),
18
40
  ZovaRender.block('basic-page:blockToolbarBulk', {
19
41
  actions: [ZovaRender.tableActionBulk('basic-table:actionCreate')],
20
42
  }),
@@ -14,7 +14,30 @@ export interface IDtoOptionsAddressSelectResItem extends IDecoratorDtoOptions {}
14
14
  blocks: [
15
15
  ZovaRender.block('basic-page:blockPage', {
16
16
  blocks: [
17
- ZovaRender.block('basic-page:blockFilter'),
17
+ ZovaRender.block('basic-page:blockFilter', {
18
+ formFieldLayout: { inline: true },
19
+ blocks: [
20
+ ZovaRender.block('basic-form:blockFormLayout', {
21
+ formLayout: {
22
+ children: [
23
+ {
24
+ type: 'section',
25
+ layout: 'flow',
26
+ children: [
27
+ { type: 'field', name: 'recipientName' },
28
+ { type: 'field', name: 'phone' },
29
+ { type: 'field', name: 'createdAt' },
30
+ {
31
+ type: 'block',
32
+ block: ZovaRender.block('basic-page:blockFilterActions'),
33
+ },
34
+ ],
35
+ },
36
+ ],
37
+ },
38
+ }),
39
+ ],
40
+ }),
18
41
  ZovaRender.block('basic-page:blockTable'),
19
42
  ZovaRender.block('basic-page:blockPager'),
20
43
  ],
@@ -14,7 +14,29 @@ export interface IDtoOptionsCouponTemplateSelectResItem extends IDecoratorDtoOpt
14
14
  blocks: [
15
15
  ZovaRender.block('basic-page:blockPage', {
16
16
  blocks: [
17
- ZovaRender.block('basic-page:blockFilter'),
17
+ ZovaRender.block('basic-page:blockFilter', {
18
+ formFieldLayout: { inline: true },
19
+ blocks: [
20
+ ZovaRender.block('basic-form:blockFormLayout', {
21
+ formLayout: {
22
+ children: [
23
+ {
24
+ type: 'section',
25
+ layout: 'flow',
26
+ children: [
27
+ { type: 'field', name: 'name' },
28
+ { type: 'field', name: 'createdAt' },
29
+ {
30
+ type: 'block',
31
+ block: ZovaRender.block('basic-page:blockFilterActions'),
32
+ },
33
+ ],
34
+ },
35
+ ],
36
+ },
37
+ }),
38
+ ],
39
+ }),
18
40
  ZovaRender.block('basic-page:blockToolbarBulk', {
19
41
  actions: [ZovaRender.tableActionBulk('basic-table:actionCreate')],
20
42
  }),
@@ -14,7 +14,29 @@ export interface IDtoOptionsOrderSelectResItem extends IDecoratorDtoOptions {}
14
14
  blocks: [
15
15
  ZovaRender.block('basic-page:blockPage', {
16
16
  blocks: [
17
- ZovaRender.block('basic-page:blockFilter'),
17
+ ZovaRender.block('basic-page:blockFilter', {
18
+ formFieldLayout: { inline: true },
19
+ blocks: [
20
+ ZovaRender.block('basic-form:blockFormLayout', {
21
+ formLayout: {
22
+ children: [
23
+ {
24
+ type: 'section',
25
+ layout: 'flow',
26
+ children: [
27
+ { type: 'field', name: 'state' },
28
+ { type: 'field', name: 'createdAt' },
29
+ {
30
+ type: 'block',
31
+ block: ZovaRender.block('basic-page:blockFilterActions'),
32
+ },
33
+ ],
34
+ },
35
+ ],
36
+ },
37
+ }),
38
+ ],
39
+ }),
18
40
  ZovaRender.block('basic-page:blockTable'),
19
41
  ZovaRender.block('basic-page:blockPager'),
20
42
  ],
@@ -14,7 +14,29 @@ export interface IDtoOptionsStockAuditSelectResItem extends IDecoratorDtoOptions
14
14
  blocks: [
15
15
  ZovaRender.block('basic-page:blockPage', {
16
16
  blocks: [
17
- ZovaRender.block('basic-page:blockFilter'),
17
+ ZovaRender.block('basic-page:blockFilter', {
18
+ formFieldLayout: { inline: true },
19
+ blocks: [
20
+ ZovaRender.block('basic-form:blockFormLayout', {
21
+ formLayout: {
22
+ children: [
23
+ {
24
+ type: 'section',
25
+ layout: 'flow',
26
+ children: [
27
+ { type: 'field', name: 'skuId' },
28
+ { type: 'field', name: 'createdAt' },
29
+ {
30
+ type: 'block',
31
+ block: ZovaRender.block('basic-page:blockFilterActions'),
32
+ },
33
+ ],
34
+ },
35
+ ],
36
+ },
37
+ }),
38
+ ],
39
+ }),
18
40
  ZovaRender.block('basic-page:blockTable'),
19
41
  ZovaRender.block('basic-page:blockPager'),
20
42
  ],
@@ -14,7 +14,29 @@ export interface IDtoOptionsStockBalanceSelectResItem extends IDecoratorDtoOptio
14
14
  blocks: [
15
15
  ZovaRender.block('basic-page:blockPage', {
16
16
  blocks: [
17
- ZovaRender.block('basic-page:blockFilter'),
17
+ ZovaRender.block('basic-page:blockFilter', {
18
+ formFieldLayout: { inline: true },
19
+ blocks: [
20
+ ZovaRender.block('basic-form:blockFormLayout', {
21
+ formLayout: {
22
+ children: [
23
+ {
24
+ type: 'section',
25
+ layout: 'flow',
26
+ children: [
27
+ { type: 'field', name: 'skuId' },
28
+ { type: 'field', name: 'createdAt' },
29
+ {
30
+ type: 'block',
31
+ block: ZovaRender.block('basic-page:blockFilterActions'),
32
+ },
33
+ ],
34
+ },
35
+ ],
36
+ },
37
+ }),
38
+ ],
39
+ }),
18
40
  ZovaRender.block('basic-page:blockTable'),
19
41
  ZovaRender.block('basic-page:blockPager'),
20
42
  ],
@@ -97,7 +97,11 @@ export type PaymentOutcomeFailureStage =
97
97
 
98
98
  type PaymentOutcomeStageCallback = (stage: PaymentOutcomeFailureStage) => void | Promise<void>;
99
99
 
100
- export type ShipmentFailureStage = 'afterShipmentInsert' | 'afterOrderState' | 'afterOrderAudit';
100
+ export type ShipmentFailureStage =
101
+ | 'beforeOrderLock'
102
+ | 'afterShipmentInsert'
103
+ | 'afterOrderState'
104
+ | 'afterOrderAudit';
101
105
 
102
106
  type ShipmentStageCallback = (stage: ShipmentFailureStage) => void | Promise<void>;
103
107
 
@@ -678,6 +682,7 @@ export class ServiceOrder extends BeanBase {
678
682
  if (!carrier) this.app.throw(400, 'shipment carrier is required');
679
683
  if (!trackingNumber) this.app.throw(400, 'shipment trackingNumber is required');
680
684
 
685
+ await onStage?.('beforeOrderLock');
681
686
  const order = await this.scope.model.order.getByIdForUpdate(orderId);
682
687
  if (!order) this.app.throw(404, 'order not found');
683
688
  const existingShipment = await this.scope.model.shipment.get({ orderId: order.id });