cabloy 5.1.66 → 5.1.67
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/.claude/skills/cabloy-resource-field-update/SKILL.md +6 -0
- package/CHANGELOG.md +11 -0
- package/package.json +1 -1
- package/vona/packages-cli/cli/package.json +1 -1
- package/vona/packages-cli/cli-set-api/cli/templates/create/module/boilerplate/_package.json +1 -1
- package/vona/packages-cli/cli-set-api/package.json +2 -2
- package/vona/packages-vona/vona/package.json +1 -1
- package/vona/pnpm-lock.yaml +15 -0
- package/vona/src/suite/a-demo/modules/demo-basic/package.json +1 -1
- package/vona/src/suite/a-home/modules/home-base/package.json +1 -1
- package/vona/src/suite/a-home/modules/home-index/package.json +1 -1
- package/vona/src/suite/a-home/modules/home-user/package.json +1 -1
- package/vona/src/suite/a-training/modules/training-record/package.json +1 -1
- package/vona/src/suite/a-training/modules/training-record/src/.metadata/index.ts +232 -3
- package/vona/src/suite/a-training/modules/training-record/src/bean/ssrMenu.record.ts +29 -0
- package/vona/src/suite/a-training/modules/training-record/src/config/locale/en-us.ts +9 -1
- package/vona/src/suite/a-training/modules/training-record/src/config/locale/zh-cn.ts +9 -1
- package/vona/src/suite/a-training/modules/training-record/src/controller/record.ts +59 -0
- package/vona/src/suite/a-training/modules/training-record/src/dto/detailRecordSubjectBase.tsx +18 -0
- package/vona/src/suite/a-training/modules/training-record/src/dto/detailRecordSubjectMutate.tsx +17 -0
- package/vona/src/suite/a-training/modules/training-record/src/dto/detailRecordSubjectResItem.tsx +60 -0
- package/vona/src/suite/a-training/modules/training-record/src/dto/detailRecordSubjectView.tsx +17 -0
- package/vona/src/suite/a-training/modules/training-record/src/dto/recordCreate.tsx +45 -0
- package/vona/src/suite/a-training/modules/training-record/src/dto/recordSelectReq.tsx +38 -0
- package/vona/src/suite/a-training/modules/training-record/src/dto/recordSelectRes.tsx +11 -0
- package/vona/src/suite/a-training/modules/training-record/src/dto/recordSelectResItem.tsx +39 -0
- package/vona/src/suite/a-training/modules/training-record/src/dto/recordUpdate.tsx +45 -0
- package/vona/src/suite/a-training/modules/training-record/src/dto/recordView.tsx +42 -0
- package/vona/src/suite/a-training/modules/training-record/src/entity/record.tsx +23 -6
- package/vona/src/suite/a-training/modules/training-record/src/model/record.ts +15 -2
- package/vona/src/suite/a-training/modules/training-record/src/service/record.ts +50 -0
- package/vona/src/suite/a-training/modules/training-record/test/record.test.ts +138 -0
- package/vona/src/suite/a-training/modules/training-recordsubject/package.json +53 -0
- package/vona/src/suite/a-training/modules/training-recordsubject/src/.metadata/index.ts +198 -0
- package/vona/src/suite/a-training/modules/training-recordsubject/src/.metadata/locales.ts +18 -0
- package/vona/src/suite/a-training/modules/training-recordsubject/src/.metadata/this.ts +2 -0
- package/vona/src/suite/a-training/modules/training-recordsubject/src/bean/meta.index.ts +12 -0
- package/vona/src/suite/a-training/modules/training-recordsubject/src/bean/meta.version.ts +21 -0
- package/vona/src/suite/a-training/modules/training-recordsubject/src/config/locale/en-us.ts +9 -0
- package/vona/src/suite/a-training/modules/training-recordsubject/src/config/locale/zh-cn.ts +9 -0
- package/vona/src/suite/a-training/modules/training-recordsubject/src/entity/subject.tsx +42 -0
- package/vona/src/suite/a-training/modules/training-recordsubject/src/index.ts +2 -0
- package/vona/src/suite/a-training/modules/training-recordsubject/src/model/subject.ts +10 -0
- package/vona/src/suite/a-training/modules/training-recordsubject/tsconfig.build.json +11 -0
- package/vona/src/suite/a-training/modules/training-recordsubject/tsconfig.json +7 -0
- package/vona/src/suite/a-training/modules/training-student/package.json +1 -1
- package/vona/src/suite/a-training/modules/training-student/src/config/locale/en-us.ts +8 -4
- package/vona/src/suite/a-training/modules/training-student/src/config/locale/zh-cn.ts +8 -4
- package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordBase.tsx +10 -1
- package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordMutate.tsx +11 -2
- package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordResItem.tsx +1 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordView.tsx +11 -2
- package/vona/src/suite/a-training/modules/training-student/src/entity/student.tsx +2 -0
- package/vona/src/suite/a-training/modules/training-student/src/service/student.ts +17 -5
- package/vona/src/suite/a-training/modules/training-student/test/student.test.ts +69 -15
- package/vona/src/suite/a-training/package.json +1 -0
- package/vona/src/suite/a-training/tsconfig.json +3 -0
- package/vona/src/suite/cabloy-basic/modules/basic-siteadmin/package.json +1 -1
- package/vona/src/suite/cabloy-basic/modules/basic-siteweb/package.json +1 -1
- package/vona/src/suite-vendor/a-auth/modules/a-auth/package.json +2 -2
- package/vona/src/suite-vendor/a-auth/modules/auth-oauth/package.json +2 -2
- package/vona/src/suite-vendor/a-auth/modules/auth-simple/package.json +2 -2
- package/vona/src/suite-vendor/a-auth/package.json +2 -2
- package/vona/src/suite-vendor/a-cabloy/modules/a-cabloy/package.json +2 -2
- package/vona/src/suite-vendor/a-cabloy/modules/a-datasharding/package.json +2 -2
- package/vona/src/suite-vendor/a-cabloy/modules/a-datasource/package.json +2 -2
- package/vona/src/suite-vendor/a-cabloy/modules/a-socket/package.json +2 -2
- package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/package.json +2 -2
- package/vona/src/suite-vendor/a-cabloy/modules/a-ssrhmr/package.json +2 -2
- package/vona/src/suite-vendor/a-cabloy/modules/a-status/package.json +2 -2
- package/vona/src/suite-vendor/a-cabloy/package.json +1 -1
- package/vona/src/suite-vendor/a-captcha/modules/a-captcha/package.json +2 -2
- package/vona/src/suite-vendor/a-captcha/modules/captcha-simple/package.json +2 -2
- package/vona/src/suite-vendor/a-captcha/package.json +1 -1
- package/vona/src/suite-vendor/a-paypal/modules/a-paypal/package.json +2 -2
- package/vona/src/suite-vendor/a-paypal/package.json +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-aspect/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-aspectutils/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-bean/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-beanmutate/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-body/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-broadcast/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-cache/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-caching/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-core/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-election/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-error/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-event/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-executor/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-hmr/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-hmrbase/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-index/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-instance/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-jwt/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-locale/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-logger/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-mail/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-mailconfirm/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-menu/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-meta/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-onion/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-openapi/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-openapischema/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-openapiutils/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-orm/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoGet.ts +4 -0
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoMutate.ts +5 -3
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/utils.ts +1 -1
- package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/relations_.ts +5 -0
- package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-ormutils/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-permission/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-play/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-printtip/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-queue/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-redis/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-redlock/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-runtime/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-schedule/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-security/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-serialization/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-startup/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-static/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-summer/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-swagger/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-upload/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-user/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-validation/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-version/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-vona/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-web/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-worker/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/modules/a-zod/package.json +2 -2
- package/vona/src/suite-vendor/a-vona/package.json +1 -1
- package/zova/packages-cli/cli/package.json +2 -2
- package/zova/packages-cli/cli-set-front/cli/templates/create/module/boilerplate/_package.json +1 -1
- package/zova/packages-cli/cli-set-front/package.json +2 -2
- package/zova/packages-zova/zova/package.json +2 -2
- package/zova/pnpm-lock.yaml +144 -100
- package/zova/src/suite/a-demo/modules/demo-basic/package.json +1 -1
- package/zova/src/suite/a-demo/modules/demo-todo/package.json +1 -1
- package/zova/src/suite/a-devui/modules/devui-adapter/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-api/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-base/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-icon/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-indexadmin/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-indexweb/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-layoutadmin/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-layoutempty/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-layoutweb/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-login/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-passport/package.json +1 -1
- package/zova/src/suite/a-home/modules/home-theme/package.json +1 -1
- package/zova/src/suite/a-training/modules/training-student/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-adapter/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-app/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-captcha/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-commands/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-commandssync/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-currency/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-date/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-details/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-form/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-input/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-page/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-resource/package.json +52 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/.metadata/component/formFieldResourcePicker.ts +31 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/.metadata/index.ts +103 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/.metadata/this.ts +2 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/bean/tableCell.resourcePicker.tsx +46 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/component/formFieldResourcePicker/controller.tsx +157 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/src/index.ts +1 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/tsconfig.build.json +13 -0
- package/zova/src/suite/cabloy-basic/modules/basic-resource/tsconfig.json +5 -0
- package/zova/src/suite/cabloy-basic/modules/basic-select/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-table/package.json +1 -1
- package/zova/src/suite/cabloy-basic/modules/basic-text/package.json +1 -1
- package/zova/src/suite/cabloy-basic/package.json +1 -0
- package/zova/src/suite-vendor/a-cabloy/modules/rest-resource/package.json +2 -2
- package/zova/src/suite-vendor/a-cabloy/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-api/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-app/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-bean/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-behavior/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-behaviors/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-boundary/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-command/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-fetch/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-form/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-icon/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-interceptor/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-logger/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-meta/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-model/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-model/src/bean/bean.model/bean.model.useQuery.ts +2 -1
- package/zova/src/suite-vendor/a-zova/modules/a-openapi/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/model/sdk.ts +4 -0
- package/zova/src/suite-vendor/a-zova/modules/a-router/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-routerstack/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-routertabs/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-ssr/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-ssrhmr/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-ssrserver/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-style/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-table/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-zod/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/modules/a-zova/package.json +2 -2
- package/zova/src/suite-vendor/a-zova/package.json +26 -26
|
@@ -156,6 +156,12 @@ For enum-like numeric or string values, prefer an explicit constrained schema su
|
|
|
156
156
|
|
|
157
157
|
- `z.union([z.literal(1), z.literal(2), z.literal(3)])`
|
|
158
158
|
|
|
159
|
+
Ordering rule:
|
|
160
|
+
|
|
161
|
+
- when that explicit zod schema is passed into `@Api.field(...)`, put it as the **last argument**
|
|
162
|
+
- keep helper metadata such as `v.xxx(...)` and `ZovaRender.xxx(...)` before the zod schema
|
|
163
|
+
- otherwise helpers written after the zod schema may stop taking effect
|
|
164
|
+
|
|
159
165
|
Then check whether DTOs are already inferred through patterns such as:
|
|
160
166
|
|
|
161
167
|
- `$Dto.create(...)`
|
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"tsc:publish": "npm run clean && node <%=argv.suite?'../../../../../':'../../../'%>packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
|
|
26
26
|
"prepublishOnly": "npm run tsc:publish",
|
|
27
27
|
"prepack": "clean-package",
|
|
28
|
-
"postpack": "clean-package restore
|
|
28
|
+
"postpack": "clean-package restore"
|
|
29
29
|
},
|
|
30
30
|
"clean-package": {
|
|
31
31
|
"indent": 2,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona-cli-set-api",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.117",
|
|
4
4
|
"gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
|
|
5
5
|
"description": "vona cli-set-api",
|
|
6
6
|
"keywords": [
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"tsc:publish": "npm run clean && node ../cli/src/bin/vona.ts :bin:buildGeneral && tsc -p tsconfig.build.json && tsc -p tsconfig.cli.json && tsc -p tsconfig.isolate.json",
|
|
37
37
|
"prepublishOnly": "npm run tsc:publish",
|
|
38
38
|
"prepack": "clean-package",
|
|
39
|
-
"postpack": "clean-package restore
|
|
39
|
+
"postpack": "clean-package restore"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@babel/plugin-proposal-decorators": "^7.29.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.56",
|
|
4
4
|
"gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
|
|
5
5
|
"description": "Vona is an intuitive, elegant and powerful Node.js framework for rapidly developing enterprise applications of any size",
|
|
6
6
|
"keywords": [
|
package/vona/pnpm-lock.yaml
CHANGED
|
@@ -349,6 +349,9 @@ importers:
|
|
|
349
349
|
vona-module-training-record:
|
|
350
350
|
specifier: workspace:^
|
|
351
351
|
version: link:src/suite/a-training/modules/training-record
|
|
352
|
+
vona-module-training-recordsubject:
|
|
353
|
+
specifier: workspace:^
|
|
354
|
+
version: link:src/suite/a-training/modules/training-recordsubject
|
|
352
355
|
vona-module-training-student:
|
|
353
356
|
specifier: workspace:^
|
|
354
357
|
version: link:src/suite/a-training/modules/training-student
|
|
@@ -2389,6 +2392,9 @@ importers:
|
|
|
2389
2392
|
vona-module-training-record:
|
|
2390
2393
|
specifier: ^5.0.0
|
|
2391
2394
|
version: link:modules/training-record
|
|
2395
|
+
vona-module-training-recordsubject:
|
|
2396
|
+
specifier: ^5.0.0
|
|
2397
|
+
version: link:modules/training-recordsubject
|
|
2392
2398
|
vona-module-training-student:
|
|
2393
2399
|
specifier: ^5.0.0
|
|
2394
2400
|
version: link:modules/training-student
|
|
@@ -2402,6 +2408,15 @@ importers:
|
|
|
2402
2408
|
specifier: ^6.1.3
|
|
2403
2409
|
version: 6.1.3
|
|
2404
2410
|
|
|
2411
|
+
src/suite/a-training/modules/training-recordsubject:
|
|
2412
|
+
devDependencies:
|
|
2413
|
+
clean-package:
|
|
2414
|
+
specifier: ^2.2.0
|
|
2415
|
+
version: 2.2.0
|
|
2416
|
+
rimraf:
|
|
2417
|
+
specifier: ^6.1.3
|
|
2418
|
+
version: 6.1.3
|
|
2419
|
+
|
|
2405
2420
|
src/suite/a-training/modules/training-student:
|
|
2406
2421
|
devDependencies:
|
|
2407
2422
|
clean-package:
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"tsc:publish": "npm run clean && node ../../../../../packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
|
|
29
29
|
"prepublishOnly": "npm run tsc:publish",
|
|
30
30
|
"prepack": "clean-package",
|
|
31
|
-
"postpack": "clean-package restore
|
|
31
|
+
"postpack": "clean-package restore"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {},
|
|
34
34
|
"devDependencies": {
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"tsc:publish": "npm run clean && node ../../../../../packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
|
|
30
30
|
"prepublishOnly": "npm run tsc:publish",
|
|
31
31
|
"prepack": "clean-package",
|
|
32
|
-
"postpack": "clean-package restore
|
|
32
|
+
"postpack": "clean-package restore"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"clean-package": "^2.2.0",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"tsc:publish": "npm run clean && node ../../../../../packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
|
|
30
30
|
"prepublishOnly": "npm run tsc:publish",
|
|
31
31
|
"prepack": "clean-package",
|
|
32
|
-
"postpack": "clean-package restore
|
|
32
|
+
"postpack": "clean-package restore"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"clean-package": "^2.2.0",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"tsc:publish": "npm run clean && node ../../../../../packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
|
|
30
30
|
"prepublishOnly": "npm run tsc:publish",
|
|
31
31
|
"prepack": "clean-package",
|
|
32
|
-
"postpack": "clean-package restore
|
|
32
|
+
"postpack": "clean-package restore"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"clean-package": "^2.2.0",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"tsc:publish": "npm run clean && node ../../../../../packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
|
|
29
29
|
"prepublishOnly": "npm run tsc:publish",
|
|
30
30
|
"prepack": "clean-package",
|
|
31
|
-
"postpack": "clean-package restore
|
|
31
|
+
"postpack": "clean-package restore"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {},
|
|
34
34
|
"devDependencies": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// eslint-disable
|
|
2
|
-
import type { TypeEntityMeta,TypeModelsClassLikeGeneral,TypeSymbolKeyFieldsMore } from 'vona-module-a-orm';
|
|
3
|
-
import type { TypeEntityOptionsFields } from 'vona-module-a-openapi';
|
|
2
|
+
import type { TypeEntityMeta,TypeModelsClassLikeGeneral,TypeSymbolKeyFieldsMore,IModelRelationBelongsTo,IModelRelationHasMany } from 'vona-module-a-orm';
|
|
3
|
+
import type { TypeEntityOptionsFields,TypeControllerOptionsActions } from 'vona-module-a-openapi';
|
|
4
4
|
import type { TableIdentity } from 'table-identity';
|
|
5
5
|
/** entity: begin */
|
|
6
6
|
export * from '../entity/record.tsx';
|
|
@@ -84,7 +84,12 @@ declare module 'vona' {
|
|
|
84
84
|
import type { IModelGetOptions, IModelMethodOptions, IModelSelectParams, TypeModelSelectAndCount, TypeModelRelationResult, TypeModelWhere, IModelInsertOptions, TypeModelMutateRelationData, IModelDeleteOptions, IModelUpdateOptions, IModelMutateOptions, IModelSelectCountParams, IModelIncrementParams, IModelSelectAggrParams, TypeModelAggrRelationResult, IModelSelectGroupParams, TypeModelGroupRelationResult } from 'vona-module-a-orm';
|
|
85
85
|
import { SymbolKeyEntity, SymbolKeyEntityMeta, SymbolKeyModelOptions } from 'vona-module-a-orm';
|
|
86
86
|
declare module 'vona-module-training-record' {
|
|
87
|
-
|
|
87
|
+
export interface IModelOptionsRecord {
|
|
88
|
+
relations: {
|
|
89
|
+
student: IModelRelationBelongsTo<'training-record:record', 'training-student:student', false, 'id'|'name'>;
|
|
90
|
+
trainingRecordSubjects: IModelRelationHasMany<'training-recordsubject:subject', 'recordId', false, 'id'|'name'|'score'|'description', undefined, undefined, undefined>;
|
|
91
|
+
};
|
|
92
|
+
}
|
|
88
93
|
export interface ModelRecord {
|
|
89
94
|
[SymbolKeyEntity]: EntityRecord;
|
|
90
95
|
[SymbolKeyEntityMeta]: EntityRecordMeta;
|
|
@@ -121,6 +126,47 @@ declare module 'vona-module-a-orm' {
|
|
|
121
126
|
}
|
|
122
127
|
}
|
|
123
128
|
/** model: end */
|
|
129
|
+
/** service: begin */
|
|
130
|
+
export * from '../service/record.ts';
|
|
131
|
+
|
|
132
|
+
import 'vona-module-a-bean';
|
|
133
|
+
declare module 'vona-module-a-bean' {
|
|
134
|
+
|
|
135
|
+
export interface IServiceRecord {
|
|
136
|
+
'training-record:record': never;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
}
|
|
141
|
+
declare module 'vona-module-training-record' {
|
|
142
|
+
|
|
143
|
+
export interface ServiceRecord {
|
|
144
|
+
/** @internal */
|
|
145
|
+
get scope(): ScopeModuleTrainingRecord;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export interface ServiceRecord {
|
|
149
|
+
get $beanFullName(): 'training-record.service.record';
|
|
150
|
+
get $onionName(): 'training-record:record';
|
|
151
|
+
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/** service: end */
|
|
155
|
+
/** service: begin */
|
|
156
|
+
import type { ServiceRecord } from '../service/record.ts';
|
|
157
|
+
export interface IModuleService {
|
|
158
|
+
'record': ServiceRecord;
|
|
159
|
+
}
|
|
160
|
+
/** service: end */
|
|
161
|
+
/** service: begin */
|
|
162
|
+
|
|
163
|
+
import 'vona';
|
|
164
|
+
declare module 'vona' {
|
|
165
|
+
export interface IBeanRecordGeneral {
|
|
166
|
+
'training-record.service.record': ServiceRecord;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/** service: end */
|
|
124
170
|
/** meta: begin */
|
|
125
171
|
export * from '../bean/meta.index.ts';
|
|
126
172
|
export * from '../bean/meta.version.ts';
|
|
@@ -160,6 +206,188 @@ declare module 'vona-module-training-record' {
|
|
|
160
206
|
}
|
|
161
207
|
}
|
|
162
208
|
/** meta: end */
|
|
209
|
+
/** dto: begin */
|
|
210
|
+
export * from '../dto/detailRecordSubjectBase.tsx';
|
|
211
|
+
export * from '../dto/detailRecordSubjectMutate.tsx';
|
|
212
|
+
export * from '../dto/detailRecordSubjectResItem.tsx';
|
|
213
|
+
export * from '../dto/detailRecordSubjectView.tsx';
|
|
214
|
+
export * from '../dto/recordCreate.tsx';
|
|
215
|
+
export * from '../dto/recordSelectReq.tsx';
|
|
216
|
+
export * from '../dto/recordSelectRes.tsx';
|
|
217
|
+
export * from '../dto/recordSelectResItem.tsx';
|
|
218
|
+
export * from '../dto/recordUpdate.tsx';
|
|
219
|
+
export * from '../dto/recordView.tsx';
|
|
220
|
+
import type { IDtoOptionsDetailRecordSubjectBase } from '../dto/detailRecordSubjectBase.tsx';
|
|
221
|
+
import type { IDtoOptionsDetailRecordSubjectMutate } from '../dto/detailRecordSubjectMutate.tsx';
|
|
222
|
+
import type { IDtoOptionsDetailRecordSubjectResItem } from '../dto/detailRecordSubjectResItem.tsx';
|
|
223
|
+
import type { IDtoOptionsDetailRecordSubjectView } from '../dto/detailRecordSubjectView.tsx';
|
|
224
|
+
import type { IDtoOptionsRecordCreate } from '../dto/recordCreate.tsx';
|
|
225
|
+
import type { IDtoOptionsRecordSelectReq } from '../dto/recordSelectReq.tsx';
|
|
226
|
+
import type { IDtoOptionsRecordSelectRes } from '../dto/recordSelectRes.tsx';
|
|
227
|
+
import type { IDtoOptionsRecordSelectResItem } from '../dto/recordSelectResItem.tsx';
|
|
228
|
+
import type { IDtoOptionsRecordUpdate } from '../dto/recordUpdate.tsx';
|
|
229
|
+
import type { IDtoOptionsRecordView } from '../dto/recordView.tsx';
|
|
230
|
+
import 'vona-module-a-web';
|
|
231
|
+
declare module 'vona-module-a-web' {
|
|
232
|
+
|
|
233
|
+
export interface IDtoRecord {
|
|
234
|
+
'training-record:detailRecordSubjectBase': IDtoOptionsDetailRecordSubjectBase;
|
|
235
|
+
'training-record:detailRecordSubjectMutate': IDtoOptionsDetailRecordSubjectMutate;
|
|
236
|
+
'training-record:detailRecordSubjectResItem': IDtoOptionsDetailRecordSubjectResItem;
|
|
237
|
+
'training-record:detailRecordSubjectView': IDtoOptionsDetailRecordSubjectView;
|
|
238
|
+
'training-record:recordCreate': IDtoOptionsRecordCreate;
|
|
239
|
+
'training-record:recordSelectReq': IDtoOptionsRecordSelectReq;
|
|
240
|
+
'training-record:recordSelectRes': IDtoOptionsRecordSelectRes;
|
|
241
|
+
'training-record:recordSelectResItem': IDtoOptionsRecordSelectResItem;
|
|
242
|
+
'training-record:recordUpdate': IDtoOptionsRecordUpdate;
|
|
243
|
+
'training-record:recordView': IDtoOptionsRecordView;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
}
|
|
248
|
+
declare module 'vona-module-training-record' {
|
|
249
|
+
|
|
250
|
+
}
|
|
251
|
+
/** dto: end */
|
|
252
|
+
/** dto: begin */
|
|
253
|
+
import type { DtoDetailRecordSubjectBase } from '../dto/detailRecordSubjectBase.tsx';
|
|
254
|
+
import type { DtoDetailRecordSubjectMutate } from '../dto/detailRecordSubjectMutate.tsx';
|
|
255
|
+
import type { DtoDetailRecordSubjectResItem } from '../dto/detailRecordSubjectResItem.tsx';
|
|
256
|
+
import type { DtoDetailRecordSubjectView } from '../dto/detailRecordSubjectView.tsx';
|
|
257
|
+
import type { DtoRecordCreate } from '../dto/recordCreate.tsx';
|
|
258
|
+
import type { DtoRecordSelectReq } from '../dto/recordSelectReq.tsx';
|
|
259
|
+
import type { DtoRecordSelectRes } from '../dto/recordSelectRes.tsx';
|
|
260
|
+
import type { DtoRecordSelectResItem } from '../dto/recordSelectResItem.tsx';
|
|
261
|
+
import type { DtoRecordUpdate } from '../dto/recordUpdate.tsx';
|
|
262
|
+
import type { DtoRecordView } from '../dto/recordView.tsx';
|
|
263
|
+
declare module 'vona-module-training-record' {
|
|
264
|
+
|
|
265
|
+
export interface IDtoOptionsDetailRecordSubjectBase {
|
|
266
|
+
fields?: TypeEntityOptionsFields<DtoDetailRecordSubjectBase, IDtoOptionsDetailRecordSubjectBase[TypeSymbolKeyFieldsMore]>;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
export interface IDtoOptionsDetailRecordSubjectMutate {
|
|
270
|
+
fields?: TypeEntityOptionsFields<DtoDetailRecordSubjectMutate, IDtoOptionsDetailRecordSubjectMutate[TypeSymbolKeyFieldsMore]>;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
export interface IDtoOptionsDetailRecordSubjectResItem {
|
|
274
|
+
fields?: TypeEntityOptionsFields<DtoDetailRecordSubjectResItem, IDtoOptionsDetailRecordSubjectResItem[TypeSymbolKeyFieldsMore]>;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
export interface IDtoOptionsDetailRecordSubjectView {
|
|
278
|
+
fields?: TypeEntityOptionsFields<DtoDetailRecordSubjectView, IDtoOptionsDetailRecordSubjectView[TypeSymbolKeyFieldsMore]>;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
export interface IDtoOptionsRecordCreate {
|
|
282
|
+
fields?: TypeEntityOptionsFields<DtoRecordCreate, IDtoOptionsRecordCreate[TypeSymbolKeyFieldsMore]>;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
export interface IDtoOptionsRecordSelectReq {
|
|
286
|
+
fields?: TypeEntityOptionsFields<DtoRecordSelectReq, IDtoOptionsRecordSelectReq[TypeSymbolKeyFieldsMore]>;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
export interface IDtoOptionsRecordSelectRes {
|
|
290
|
+
fields?: TypeEntityOptionsFields<DtoRecordSelectRes, IDtoOptionsRecordSelectRes[TypeSymbolKeyFieldsMore]>;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
export interface IDtoOptionsRecordSelectResItem {
|
|
294
|
+
fields?: TypeEntityOptionsFields<DtoRecordSelectResItem, IDtoOptionsRecordSelectResItem[TypeSymbolKeyFieldsMore]>;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
export interface IDtoOptionsRecordUpdate {
|
|
298
|
+
fields?: TypeEntityOptionsFields<DtoRecordUpdate, IDtoOptionsRecordUpdate[TypeSymbolKeyFieldsMore]>;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
export interface IDtoOptionsRecordView {
|
|
302
|
+
fields?: TypeEntityOptionsFields<DtoRecordView, IDtoOptionsRecordView[TypeSymbolKeyFieldsMore]>;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
/** dto: end */
|
|
306
|
+
/** controller: begin */
|
|
307
|
+
export * from '../controller/record.ts';
|
|
308
|
+
import type { IControllerOptionsRecord } from '../controller/record.ts';
|
|
309
|
+
import 'vona-module-a-web';
|
|
310
|
+
declare module 'vona-module-a-web' {
|
|
311
|
+
|
|
312
|
+
export interface IControllerRecord {
|
|
313
|
+
'training-record:record': IControllerOptionsRecord;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
}
|
|
318
|
+
declare module 'vona-module-training-record' {
|
|
319
|
+
|
|
320
|
+
export interface ControllerRecord {
|
|
321
|
+
/** @internal */
|
|
322
|
+
get scope(): ScopeModuleTrainingRecord;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
export interface ControllerRecord {
|
|
326
|
+
get $beanFullName(): 'training-record.controller.record';
|
|
327
|
+
get $onionName(): 'training-record:record';
|
|
328
|
+
get $onionOptions(): IControllerOptionsRecord;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
/** controller: end */
|
|
332
|
+
/** controller: begin */
|
|
333
|
+
// @ts-ignore ignore
|
|
334
|
+
import type { ControllerRecord } from '../controller/record.ts';
|
|
335
|
+
declare module 'vona-module-training-record' {
|
|
336
|
+
|
|
337
|
+
export interface IControllerOptionsRecord {
|
|
338
|
+
actions?: TypeControllerOptionsActions<ControllerRecord>;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
declare module 'vona-module-a-web' {
|
|
342
|
+
export interface IApiPathPostRecord{
|
|
343
|
+
'/training/record': undefined;
|
|
344
|
+
}
|
|
345
|
+
export interface IApiPathGetRecord{
|
|
346
|
+
'/training/record': undefined;
|
|
347
|
+
'/training/record/:id': undefined;
|
|
348
|
+
}
|
|
349
|
+
export interface IApiPathPatchRecord{
|
|
350
|
+
'/training/record/:id': undefined;
|
|
351
|
+
}
|
|
352
|
+
export interface IApiPathDeleteRecord{
|
|
353
|
+
'/training/record/:id': undefined;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
}
|
|
357
|
+
import 'vona-module-a-openapi';
|
|
358
|
+
declare module 'vona-module-a-openapi' {
|
|
359
|
+
export interface IResourceRecord {
|
|
360
|
+
'training-record:record': never;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
/** controller: end */
|
|
365
|
+
/** ssrMenu: begin */
|
|
366
|
+
export * from '../bean/ssrMenu.record.ts';
|
|
367
|
+
import type { ISsrMenuOptionsRecord } from '../bean/ssrMenu.record.ts';
|
|
368
|
+
import 'vona-module-a-ssr';
|
|
369
|
+
declare module 'vona-module-a-ssr' {
|
|
370
|
+
|
|
371
|
+
export interface ISsrMenuRecord {
|
|
372
|
+
'training-record:record': ISsrMenuOptionsRecord;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
}
|
|
377
|
+
declare module 'vona-module-training-record' {
|
|
378
|
+
|
|
379
|
+
export interface SsrMenuRecord {
|
|
380
|
+
/** @internal */
|
|
381
|
+
get scope(): ScopeModuleTrainingRecord;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
export interface SsrMenuRecord {
|
|
385
|
+
get $beanFullName(): 'training-record.ssrMenu.record';
|
|
386
|
+
get $onionName(): 'training-record:record';
|
|
387
|
+
get $onionOptions(): ISsrMenuOptionsRecord;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
/** ssrMenu: end */
|
|
163
391
|
/** locale: begin */
|
|
164
392
|
import { locales } from './locales.ts';
|
|
165
393
|
/** locale: end */
|
|
@@ -175,6 +403,7 @@ export interface ScopeModuleTrainingRecord {
|
|
|
175
403
|
locale: TypeModuleLocales<(typeof locales)[TypeLocaleBase]>;
|
|
176
404
|
entity: IModuleEntity;
|
|
177
405
|
model: IModuleModel;
|
|
406
|
+
service: IModuleService;
|
|
178
407
|
}
|
|
179
408
|
|
|
180
409
|
import 'vona';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { IDecoratorSsrMenuOptions } from 'vona-module-a-ssr';
|
|
2
|
+
import type { ISsrSiteOptionsAdmin } from 'vona-module-basic-siteadmin';
|
|
3
|
+
|
|
4
|
+
import { BeanBase } from 'vona';
|
|
5
|
+
import { $order } from 'vona-module-a-openapiutils';
|
|
6
|
+
import { SsrMenu } from 'vona-module-a-ssr';
|
|
7
|
+
|
|
8
|
+
import { $locale } from '../.metadata/locales.ts';
|
|
9
|
+
|
|
10
|
+
export interface ISsrMenuOptionsRecord extends IDecoratorSsrMenuOptions<ISsrSiteOptionsAdmin> {}
|
|
11
|
+
|
|
12
|
+
@SsrMenu<ISsrMenuOptionsRecord>({
|
|
13
|
+
items: {
|
|
14
|
+
record: {
|
|
15
|
+
title: $locale('TrainingRecord'),
|
|
16
|
+
order: $order(2),
|
|
17
|
+
icon: undefined,
|
|
18
|
+
link: 'presetResource',
|
|
19
|
+
meta: {
|
|
20
|
+
params: {
|
|
21
|
+
resource: 'training-record:record',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
group: 'basic-siteadmin:management',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
site: ['basic-siteadmin:admin'],
|
|
28
|
+
})
|
|
29
|
+
export class SsrMenuRecord extends BeanBase {}
|
|
@@ -2,6 +2,14 @@ export default {
|
|
|
2
2
|
Description: 'Description',
|
|
3
3
|
Name: 'Name',
|
|
4
4
|
Operations: 'Operations',
|
|
5
|
-
TrainingRecord: 'Training Record',
|
|
6
5
|
Score: 'Score',
|
|
6
|
+
Student: 'Student',
|
|
7
|
+
TrainingRecord: 'Student Training Record',
|
|
8
|
+
AddTrainingRecord: 'Add Student Training Record',
|
|
9
|
+
EditTrainingRecord: 'Edit Student Training Record',
|
|
10
|
+
ViewTrainingRecord: 'View Student Training Record',
|
|
11
|
+
TrainingRecordSubjects: 'Student Training Record Details',
|
|
12
|
+
AddTrainingRecordSubject: 'Add Student Training Record Detail',
|
|
13
|
+
EditTrainingRecordSubject: 'Edit Student Training Record Detail',
|
|
14
|
+
ViewTrainingRecordSubject: 'View Student Training Record Detail',
|
|
7
15
|
};
|
|
@@ -2,6 +2,14 @@ export default {
|
|
|
2
2
|
Description: '描述',
|
|
3
3
|
Name: '名称',
|
|
4
4
|
Operations: '操作',
|
|
5
|
-
TrainingRecord: '培训记录',
|
|
6
5
|
Score: '成绩',
|
|
6
|
+
Student: '学生',
|
|
7
|
+
TrainingRecord: '学生培训记录',
|
|
8
|
+
AddTrainingRecord: '添加学生培训记录',
|
|
9
|
+
EditTrainingRecord: '编辑学生培训记录',
|
|
10
|
+
ViewTrainingRecord: '查看学生培训记录',
|
|
11
|
+
TrainingRecordSubjects: '学生培训记录明细',
|
|
12
|
+
AddTrainingRecordSubject: '添加学生培训记录明细',
|
|
13
|
+
EditTrainingRecordSubject: '编辑学生培训记录明细',
|
|
14
|
+
ViewTrainingRecordSubject: '查看学生培训记录明细',
|
|
7
15
|
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { TableIdentity } from 'table-identity';
|
|
2
|
+
import type { IQueryParams } from 'vona-module-a-orm';
|
|
3
|
+
import type { IDecoratorControllerOptions } from 'vona-module-a-web';
|
|
4
|
+
|
|
5
|
+
import { BeanBase } from 'vona';
|
|
6
|
+
import { Core } from 'vona-module-a-core';
|
|
7
|
+
import { Api, Resource, v } from 'vona-module-a-openapiutils';
|
|
8
|
+
import { Arg, Controller, Web } from 'vona-module-a-web';
|
|
9
|
+
|
|
10
|
+
import type { ModelRecord } from '../model/record.ts';
|
|
11
|
+
|
|
12
|
+
import { DtoRecordCreate } from '../dto/recordCreate.tsx';
|
|
13
|
+
import { DtoRecordSelectReq } from '../dto/recordSelectReq.tsx';
|
|
14
|
+
import { DtoRecordSelectRes } from '../dto/recordSelectRes.tsx';
|
|
15
|
+
import { DtoRecordUpdate } from '../dto/recordUpdate.tsx';
|
|
16
|
+
import { DtoRecordView } from '../dto/recordView.tsx';
|
|
17
|
+
|
|
18
|
+
export interface IControllerOptionsRecord extends IDecoratorControllerOptions {}
|
|
19
|
+
|
|
20
|
+
@Controller<IControllerOptionsRecord>('record')
|
|
21
|
+
@Resource()
|
|
22
|
+
export class ControllerRecord extends BeanBase {
|
|
23
|
+
@Web.post()
|
|
24
|
+
@Api.body(v.tableIdentity())
|
|
25
|
+
async create(@Arg.body() record: DtoRecordCreate): Promise<TableIdentity> {
|
|
26
|
+
return (await this.scope.service.record.create(record)).id;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@Web.get()
|
|
30
|
+
@Api.body(DtoRecordSelectRes)
|
|
31
|
+
@Core.serializer()
|
|
32
|
+
async select(
|
|
33
|
+
@Arg.filter(DtoRecordSelectReq) params: IQueryParams<ModelRecord>,
|
|
34
|
+
): Promise<DtoRecordSelectRes> {
|
|
35
|
+
return await this.scope.service.record.select(params);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@Web.get(':id')
|
|
39
|
+
@Api.body(v.optional(), v.object(DtoRecordView))
|
|
40
|
+
@Core.serializer()
|
|
41
|
+
async view(
|
|
42
|
+
@Arg.param('id', v.tableIdentity()) id: TableIdentity,
|
|
43
|
+
): Promise<DtoRecordView | undefined> {
|
|
44
|
+
return await this.scope.service.record.view(id);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@Web.patch(':id')
|
|
48
|
+
async update(
|
|
49
|
+
@Arg.param('id', v.tableIdentity()) id: TableIdentity,
|
|
50
|
+
@Arg.body() record: DtoRecordUpdate,
|
|
51
|
+
) {
|
|
52
|
+
return await this.scope.service.record.update(id, record);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@Web.delete(':id')
|
|
56
|
+
async delete(@Arg.param('id', v.tableIdentity()) id: TableIdentity) {
|
|
57
|
+
return await this.scope.service.record.delete(id);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { IDecoratorDtoOptions } from 'vona-module-a-web';
|
|
2
|
+
|
|
3
|
+
import { $makeMetadata } from 'vona-module-a-openapiutils';
|
|
4
|
+
import { $Dto } from 'vona-module-a-orm';
|
|
5
|
+
import { Dto } from 'vona-module-a-web';
|
|
6
|
+
import { ModelSubject } from 'vona-module-training-recordsubject';
|
|
7
|
+
import { ZovaRender } from 'zova-rest-cabloy-basic-admin';
|
|
8
|
+
|
|
9
|
+
export interface IDtoOptionsDetailRecordSubjectBase extends IDecoratorDtoOptions {}
|
|
10
|
+
|
|
11
|
+
@Dto<IDtoOptionsDetailRecordSubjectBase>({
|
|
12
|
+
fields: {
|
|
13
|
+
id: $makeMetadata(ZovaRender.visible(false)),
|
|
14
|
+
},
|
|
15
|
+
})
|
|
16
|
+
export class DtoDetailRecordSubjectBase extends $Dto.get(() => ModelSubject, {
|
|
17
|
+
columns: ['id', 'deleted', 'name', 'score', 'description'],
|
|
18
|
+
}) {}
|
package/vona/src/suite/a-training/modules/training-record/src/dto/detailRecordSubjectMutate.tsx
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IDecoratorDtoOptions } from 'vona-module-a-web';
|
|
2
|
+
|
|
3
|
+
import { $Dto } from 'vona-module-a-orm';
|
|
4
|
+
import { Dto } from 'vona-module-a-web';
|
|
5
|
+
import { ModelSubject } from 'vona-module-training-recordsubject';
|
|
6
|
+
import { ZovaRender } from 'zova-rest-cabloy-basic-admin';
|
|
7
|
+
|
|
8
|
+
import { DtoDetailRecordSubjectBase } from './detailRecordSubjectBase.tsx';
|
|
9
|
+
|
|
10
|
+
export interface IDtoOptionsDetailRecordSubjectMutate extends IDecoratorDtoOptions {}
|
|
11
|
+
|
|
12
|
+
@Dto<IDtoOptionsDetailRecordSubjectMutate>({
|
|
13
|
+
blocks: [ZovaRender.block('basic-details:blockForm')],
|
|
14
|
+
})
|
|
15
|
+
export class DtoDetailRecordSubjectMutate extends $Dto.mutate(() => ModelSubject, {
|
|
16
|
+
dtoClass: DtoDetailRecordSubjectBase,
|
|
17
|
+
}) {}
|
package/vona/src/suite/a-training/modules/training-record/src/dto/detailRecordSubjectResItem.tsx
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { IDecoratorDtoOptions } from 'vona-module-a-web';
|
|
2
|
+
|
|
3
|
+
import { $makeMetadata, Api, v } from 'vona-module-a-openapiutils';
|
|
4
|
+
import { $Dto } from 'vona-module-a-orm';
|
|
5
|
+
import { Dto } from 'vona-module-a-web';
|
|
6
|
+
import { ModelSubject } from 'vona-module-training-recordsubject';
|
|
7
|
+
import { ZovaRender } from 'zova-rest-cabloy-basic-admin';
|
|
8
|
+
|
|
9
|
+
import { $locale } from '../.metadata/locales.ts';
|
|
10
|
+
import { DtoDetailRecordSubjectBase } from './detailRecordSubjectBase.tsx';
|
|
11
|
+
|
|
12
|
+
export interface IDtoOptionsDetailRecordSubjectResItem extends IDecoratorDtoOptions {}
|
|
13
|
+
|
|
14
|
+
@Dto<IDtoOptionsDetailRecordSubjectResItem>({
|
|
15
|
+
blocks: [
|
|
16
|
+
ZovaRender.block('basic-details:blockDetails', {
|
|
17
|
+
blocks: [
|
|
18
|
+
ZovaRender.block('basic-details:blockToolbarBulk', {
|
|
19
|
+
actions: [
|
|
20
|
+
ZovaRender.detailsActionBulk('basic-details:actionCreate', {
|
|
21
|
+
dialogOptions: { title: $locale('AddTrainingRecordSubject') },
|
|
22
|
+
permission: { formScene: ['create', 'edit'] },
|
|
23
|
+
}),
|
|
24
|
+
],
|
|
25
|
+
}),
|
|
26
|
+
ZovaRender.block('basic-details:blockTable'),
|
|
27
|
+
],
|
|
28
|
+
}),
|
|
29
|
+
],
|
|
30
|
+
fields: {
|
|
31
|
+
name: $makeMetadata(
|
|
32
|
+
ZovaRender.cell('basic-details:actionView', {
|
|
33
|
+
dialogOptions: { title: $locale('ViewTrainingRecordSubject') },
|
|
34
|
+
}),
|
|
35
|
+
),
|
|
36
|
+
},
|
|
37
|
+
})
|
|
38
|
+
export class DtoDetailRecordSubjectResItem extends $Dto.get(() => ModelSubject, {
|
|
39
|
+
dtoClass: DtoDetailRecordSubjectBase,
|
|
40
|
+
}) {
|
|
41
|
+
@Api.field(v.title('#'), ZovaRender.order(1, 'core'), ZovaRender.cell('basic-details:lineNumber'))
|
|
42
|
+
_lineNumber?: number;
|
|
43
|
+
|
|
44
|
+
@Api.field(
|
|
45
|
+
v.title($locale('Operations')),
|
|
46
|
+
ZovaRender.order(1, 'max'),
|
|
47
|
+
ZovaRender.cell('basic-details:actionOperationsRow', {
|
|
48
|
+
actions: [
|
|
49
|
+
ZovaRender.detailsActionRow('basic-details:actionUpdate', {
|
|
50
|
+
dialogOptions: { title: $locale('EditTrainingRecordSubject') },
|
|
51
|
+
permission: { formScene: ['create', 'edit'] },
|
|
52
|
+
}),
|
|
53
|
+
ZovaRender.detailsActionRow('basic-details:actionDelete', {
|
|
54
|
+
permission: { formScene: ['create', 'edit'] },
|
|
55
|
+
}),
|
|
56
|
+
],
|
|
57
|
+
}),
|
|
58
|
+
)
|
|
59
|
+
_operationsRow?: unknown;
|
|
60
|
+
}
|