From 47838889f499e119553ad53ea0ad84f88245334e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=AB=E9=9B=A8=E6=B0=B4=E8=BF=87=E6=BB=A4=E7=9A=84?= =?UTF-8?q?=E7=A9=BA=E6=B0=94-Rairn?= <958414905@qq.com> Date: Wed, 7 Jun 2023 10:37:10 +0800 Subject: [PATCH] test: add tests for client (#1960) * feat: add test utils * test: fix compatibility problem * refactor: use esm * refactor: change require to import * test: add a test * chore: optimize launch.json * chore(jest): optimize config * test: fix failed * test(Action): fix failed * test: migration test from nocobase-next * test: fix failed * chore: set css to false * fix: fix errors * test(Filter): add test * test(BlockItem): add test * test(Calendar): add test * refactor: migrate testUtils to client * fix: avoid error * refactor: fix lint error * Revert "refactor: migrate testUtils to client" This reverts commit ae569e2021a5c720111518cf3f2236e761a7186d. * test: fix test failed * refactor: migrate tesetUtils to @nocobase/test/client * fix(Select): fix BUG * refactor: remove useless code * Revert "refactor: migrate tesetUtils to @nocobase/test/client" This reverts commit 70d2211d5af546ae3fffaf5b53a326be8e194b34. * test(AssociationSelect): add test * test(CardItem): add test * test(CollectionSelect): add test * test(Cron): add test * test(Details): add test * test(ErrorFallback): add test * test(Form): add test * fix: fix CI * test(FormItem): add test * test(FormV2): add test * test(G2Plot): add test * test(Gantt): add test * test(Grid): add test * test(GridCard): add test * test(Kanban): add test * test(List): add test * test(Menu): add test * test(Page): add test * test(Pagination): add test * test(Preview): add test * test(RemoteSelect): add test * test: fix: failed * refactor: remove useless code * test(Table): add test * test(TableV2): add test * test(Tabs): add test * test(Variable): add test * test(Upload): add test * chore: comment * Revert "refactor: change require to import" This reverts commit 3a23607e6faeda6f8b5bee02b9d8fa33bf9d2684. * refactor: remove useless code * fix: fix translation bug * fix: fix export position * test: update snap --- .vscode/launch.json | 37 +- __mocks__/styleMock.js | 1 - jest.config.js | 1 - package.json | 5 +- .../core/cache/src/__tests__/index.test.ts | 2 +- packages/core/client/src/acl/ACLProvider.tsx | 20 +- .../client/src/acl/{index.tsx => index.ts} | 0 .../core/client/src/api-client/APIClient.ts | 2 +- .../client/src/api-client/hooks/assign.ts | 10 +- .../client/src/api-client/hooks/useRequest.ts | 4 +- .../__snapshots__/compose.test.tsx.snap | 76 - .../client/src/async-data-provider/index.tsx | 2 +- .../src/block-provider/BlockProvider.tsx | 7 +- packages/core/client/src/board/Board.tsx | 1 - .../Configuration/CollectionFieldsTable.tsx | 6 +- .../ResourceActionProvider.tsx | 2 +- .../collection-manager/interfaces/linkTo.ts | 3 +- .../interfaces/properties/index.ts | 41 - .../src/filter-provider/FilterProvider.tsx | 4 +- packages/core/client/src/i18n/i18n.ts | 1 - .../client/src/icon/__tests__/icon.test.tsx | 98 + .../core/client/src/icon/demos/antd-icon.tsx | 4 + .../client/src/icon/demos/custom-icon.tsx | 10 + .../core/client/src/icon/demos/iconfont.tsx | 8 + .../client/src/icon/demos/register-icon.tsx | 14 + packages/core/client/src/icon/index.md | 48 +- .../core/client/src/{index.tsx => index.ts} | 0 .../__snapshots__/RouteSwitch.test.tsx.snap | 8 - .../antd/action/Action.Page.tsx | 2 +- .../antd/action/__tests__/action.test.tsx | 144 + .../antd/action/demos/demo1.tsx | 11 +- .../antd/action/demos/demo2.tsx | 3 +- .../antd/action/demos/demo3.tsx | 45 +- .../antd/action/demos/demo4.tsx | 11 +- .../antd/action/demos/demo5.tsx | 8 +- .../antd/association-field/InternalPicker.tsx | 4 +- .../__tests__/association-select.test.tsx | 23 + .../antd/association-select/demos/demo1.tsx | 57 + .../antd/association-select/index.md | 4 +- .../block-item/__tests__/block-item.test.tsx | 15 + .../antd/block-item/demos/demo1.tsx | 57 +- .../antd/calendar/Calendar.tsx | 6 +- .../schema-component/antd/calendar/Nav.tsx | 6 +- .../schema-component/antd/calendar/Today.tsx | 4 +- .../antd/calendar/ViewSelect.tsx | 4 +- .../antd/calendar/__tests__/calendar.test.tsx | 27 + .../card-item/__tests__/card-item.test.tsx | 14 + .../antd/card-item/demos/demo1.tsx | 30 + .../schema-component/antd/card-item/index.md | 6 +- .../antd/cascader/__tests__/cascader.test.tsx | 45 + .../antd/cascader/demos/demo2.tsx | 2 +- .../antd/checkbox/Checkbox.tsx | 2 +- .../antd/checkbox/__tests__/checkbox.test.tsx | 86 + .../demos/{demo2.tsx => checkbox.group.tsx} | 0 .../demos/{demo1.tsx => checkbox.tsx} | 0 .../schema-component/antd/checkbox/index.md | 4 +- .../__tests__/collection-select.test.tsx | 22 + .../antd/collection-select/demos/demo1.tsx | 29 + .../antd/collection-select/index.md | 12 + .../__tests__/color-select.test.tsx | 41 + .../src/schema-component/antd/cron/Cron.tsx | 8 +- .../antd/cron/__tests__/cron-set.test.tsx | 39 + .../antd/cron/demos/demo1.tsx | 26 + .../antd/cron/demos/demo2.tsx | 45 + .../src/schema-component/antd/cron/index.md | 18 + .../antd/date-picker/DatePicker.tsx | 4 +- .../antd/date-picker/ReadPretty.tsx | 4 +- .../__tests__/date-picker.test.tsx | 127 + .../antd/date-picker/demos/demo2.tsx | 35 +- .../antd/date-picker/demos/demo3.tsx | 10 +- .../demos/{demo7.tsx => demo4.tsx} | 8 +- .../antd/date-picker/demos/demo5.tsx | 37 +- .../antd/date-picker/demos/demo6.tsx | 7 +- .../antd/date-picker/index.md | 10 +- .../antd/details/__tests__/details.test.tsx | 12 + .../antd/details/demos/demo1.tsx | 39 + .../schema-component/antd/details/index.md | 12 + .../__tests__/error-fallback.test.tsx | 18 + .../antd/error-fallback/demos/demo1.tsx | 15 + .../antd/error-fallback/index.md | 12 + .../expand-action/Expand.Action.Design.tsx | 14 +- .../antd/expand-action/Expand.Action.tsx | 16 +- .../antd/expand-action/index.ts | 10 +- .../schema-component/antd/filter/Filter.tsx | 2 +- .../antd/filter/FilterItem.tsx | 16 +- .../antd/filter/__tests__/filter.test.tsx | 123 + .../antd/filter/demos/demo2.tsx | 166 +- .../antd/filter/demos/demo3.tsx | 45 +- .../antd/filter/demos/demo4.tsx | 6 +- .../antd/filter/demos/demo5.tsx | 170 +- .../antd/filter/demos/demo6.tsx | 2 +- .../src/schema-component/antd/filter/index.ts | 2 + .../schema-component/antd/filter/useValues.ts | 6 +- .../antd/form-item/FormItem.tsx | 21 +- .../form-item/__tests__/form-item.test.tsx | 11 + .../antd/form-item/demos/demo1.tsx | 22 + .../schema-component/antd/form-item/index.md | 4 + .../antd/form-v2/__tests__/form-v2.test.tsx | 52 + .../antd/form-v2/demos/collections.ts | 2594 +- .../antd/form-v2/demos/demo1.tsx | 49 +- .../antd/form-v2/demos/demo2.tsx | 68 +- .../antd/form-v2/demos/demo3.tsx | 50 +- .../src/schema-component/antd/form/Form.tsx | 2 +- .../antd/form/__tests__/form.test.tsx | 140 + .../antd/form/demos/apiClient.ts | 5 +- .../antd/form/demos/demo1.tsx | 88 +- .../antd/form/demos/demo2.tsx | 56 +- .../antd/form/demos/demo3.tsx | 56 +- .../antd/form/demos/demo4.tsx | 82 +- .../antd/form/demos/demo5.tsx | 146 +- .../antd/form/demos/demo6.tsx | 88 +- .../antd/form/demos/demo8.tsx | 29 +- .../antd/g2plot/__tests__/g2plot.test.tsx | 15 + .../antd/g2plot/demos/demo1.tsx | 23 +- .../{test => __tests__}/date-helper.test.tsx | 0 .../antd/gantt/__tests__/gant.test.tsx | 9 + .../antd/gantt/demos/demo1.tsx | 35 + .../src/schema-component/antd/gantt/index.md | 10 + .../antd/gantt/test/gant.test.tsx | 24 - .../grid-card/__tests__/grid-card.test.tsx | 9 + .../antd/grid-card/demos/demo1.tsx | 5 + .../schema-component/antd/grid-card/index.md | 10 + .../antd/grid/__tests__/grid.test.tsx | 28 + .../antd/grid/demos/demo1.tsx | 6 +- .../antd/grid/demos/demo2.tsx | 18 +- .../antd/grid/demos/demo3.tsx | 3 +- .../__tests__/icon-picker.test.tsx | 41 + .../demos/{demo1.tsx => icon-picker.tsx} | 3 - .../antd/icon-picker/index.md | 2 +- .../antd/input-number/InputNumber.tsx | 3 +- .../antd/input-number/ReadPretty.tsx | 12 +- .../__tests__/input-number.test.tsx | 77 + .../{demo2.tsx => addonBefore&addonAfter.tsx} | 7 +- .../{demo3.tsx => highPrecisionDecimals.tsx} | 7 +- .../demos/{demo1.tsx => inputNumber.tsx} | 7 +- .../antd/input-number/index.md | 6 +- .../src/schema-component/antd/input/Input.tsx | 4 +- .../src/schema-component/antd/input/Json.tsx | 4 +- .../antd/input/ReadPretty.tsx | 10 +- .../antd/input/__tests__/Input.test.tsx | 160 + .../antd/input/demos/{demo1.tsx => input.tsx} | 7 +- .../antd/input/demos/{demo4.tsx => json.tsx} | 3 - .../input/demos/{demo2.tsx => textarea.tsx} | 3 - .../antd/input/demos/{demo3.tsx => url.tsx} | 3 - .../src/schema-component/antd/input/index.md | 8 +- .../antd/kanban/__tests__/kanban.test.tsx | 25 + .../antd/kanban/demos/collections.ts | 2594 +- .../antd/kanban/demos/demo1.tsx | 29 +- .../src/schema-component/antd/kanban/index.md | 2 +- .../antd/list/__tests__/list.test.tsx | 9 + .../antd/list/demos/demo1.tsx | 5 + .../src/schema-component/antd/list/index.md | 12 + .../antd/markdown/__tests__/markdown.test.tsx | 29 + .../schema-component/antd/markdown/util.ts | 2 +- .../src/schema-component/antd/menu/Menu.tsx | 96 +- .../antd/menu/__tests__/menu.test.tsx | 58 + .../antd/menu/demos/demo1.tsx | 13 +- .../antd/menu/demos/demo2.tsx | 6 +- .../antd/menu/demos/demo3.tsx | 6 +- .../antd/page/__tests__/page.test.tsx | 16 + .../antd/page/demos/demo1.tsx | 9 +- .../pagination/__tests__/pagination.test.tsx | 15 + .../antd/password/Password.tsx | 5 +- .../antd/password/PasswordStrength.tsx | 146 +- .../__snapshots__/password.test.tsx.snap | 134 + .../antd/password/__tests__/password.test.tsx | 22 + .../antd/password/__tests__/utils.test.ts | 27 + .../schema-component/antd/password/utils.ts | 144 + .../schema-component/antd/percent/Percent.tsx | 4 +- .../antd/percent/__tests__/percent.test.tsx | 13 + .../antd/percent/demos/percent.tsx | 38 + .../schema-component/antd/percent/index.md | 14 + .../antd/preview/__tests__/preview.test.tsx | 12 + .../antd/preview/demos/apiClient.ts | 43 - .../antd/preview/demos/demo1.tsx | 83 +- .../antd/preview/demos/demo2.tsx | 116 - .../schema-component/antd/preview/index.md | 4 - .../src/schema-component/antd/radio/Radio.tsx | 2 +- .../antd/radio/__tests__/radio.test.tsx | 45 + .../record-picker/ReadPrettyRecordPicker.tsx | 7 +- .../__tests__/record-picker.test.tsx | 26 + .../antd/record-picker/demos/demo1.tsx | 187 +- .../antd/record-picker/demos/mockData.ts | 159 + .../antd/record-picker/index.md | 8 +- .../antd/remote-select/RemoteSelect.tsx | 22 +- .../__tests__/remote-select.test.tsx | 23 + .../antd/remote-select/demos/demo1.tsx | 57 + .../antd/remote-select/index.md | 3 + .../rich-text/__tests__/rich-text.test.tsx | 14 + .../antd/select/ReadPretty.tsx | 15 +- .../schema-component/antd/select/Select.tsx | 22 +- .../antd/select/__tests__/select.test.tsx | 46 + .../antd/select/__tests__/utils.test.ts | 37 + .../antd/select/demos/demo3.tsx | 39 +- .../src/schema-component/antd/select/index.ts | 3 +- .../schema-component/antd/select/shared.ts | 36 - .../src/schema-component/antd/select/utils.ts | 54 + .../__snapshots__/table-v2.test.tsx.snap | 802 + .../antd/table-v2/__tests__/table-v2.test.tsx | 18 + .../antd/table-v2/demos/data.ts | 0 .../antd/table-v2/demos/demo1.tsx | 103 +- .../antd/table-v2/demos/demo2.tsx | 258 +- .../antd/table-v2/demos/demo3.tsx | 113 - .../schema-component/antd/table-v2/index.md | 6 +- .../antd/table/Table.Void.tsx | 2 +- .../__snapshots__/table.test.tsx.snap | 827 + .../antd/table/__tests__/table.test.tsx | 28 + .../antd/table/demos/demo4.tsx | 4 - .../src/schema-component/antd/table/index.md | 2 + .../antd/tabs/__tests__/tabs.test.tsx | 14 + .../antd/time-picker/ReadPretty.tsx | 4 +- .../antd/time-picker/TimePicker.tsx | 4 +- .../__tests__/time-picker.test.tsx | 46 + .../antd/tree-select/ReadPretty.tsx | 4 +- .../__tests__/tree-select.test.tsx | 14 + .../schema-component/antd/upload/Upload.tsx | 2 +- .../__snapshots__/upload.test.tsx.snap | 782 + .../antd/upload/__tests__/upload.test.tsx | 16 + .../antd/upload/demos/apiClient.ts | 12 +- .../src/schema-component/antd/upload/index.md | 2 - .../schema-component/antd/upload/shared.ts | 4 +- .../schema-component/antd/upload/type.d.ts | 4 +- .../antd/variable/__tests__/variable.test.tsx | 83 + .../items/ExpandActionInitializer.tsx | 8 +- .../SystemSettingsProvider.tsx | 2 +- packages/core/client/src/test/collections.ts | 1319 + packages/core/client/src/test/index.ts | 4 + .../core/client/src/test/mainCollections.ts | 37752 ++++++++++++++++ .../core/client/src/test/mockAPIClient.ts | 9 + packages/core/client/tsconfig.json | 2 + .../dumi-theme-nocobase/src/builtins/Tree.tsx | 8 +- packages/core/test/src/index.ts | 3 +- .../src}/__tests__/toFixedByStep.test.ts | 0 .../client/components/AppendsTreeSelect.tsx | 10 +- scripts/setupVitest.ts | 7 + testUtils.ts | 25 +- tsconfig.json | 3 +- vitest.config.ts | 9 +- yarn.lock | 51 +- 239 files changed, 48576 insertions(+), 4654 deletions(-) delete mode 100644 __mocks__/styleMock.js rename packages/core/client/src/acl/{index.tsx => index.ts} (100%) create mode 100644 packages/core/client/src/icon/__tests__/icon.test.tsx create mode 100644 packages/core/client/src/icon/demos/antd-icon.tsx create mode 100644 packages/core/client/src/icon/demos/custom-icon.tsx create mode 100644 packages/core/client/src/icon/demos/iconfont.tsx create mode 100644 packages/core/client/src/icon/demos/register-icon.tsx rename packages/core/client/src/{index.tsx => index.ts} (100%) create mode 100644 packages/core/client/src/schema-component/antd/action/__tests__/action.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/association-select/__tests__/association-select.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/association-select/demos/demo1.tsx create mode 100644 packages/core/client/src/schema-component/antd/block-item/__tests__/block-item.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/calendar/__tests__/calendar.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/card-item/__tests__/card-item.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/card-item/demos/demo1.tsx create mode 100644 packages/core/client/src/schema-component/antd/cascader/__tests__/cascader.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/checkbox/__tests__/checkbox.test.tsx rename packages/core/client/src/schema-component/antd/checkbox/demos/{demo2.tsx => checkbox.group.tsx} (100%) rename packages/core/client/src/schema-component/antd/checkbox/demos/{demo1.tsx => checkbox.tsx} (100%) create mode 100644 packages/core/client/src/schema-component/antd/collection-select/__tests__/collection-select.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/collection-select/demos/demo1.tsx create mode 100644 packages/core/client/src/schema-component/antd/collection-select/index.md create mode 100644 packages/core/client/src/schema-component/antd/color-select/__tests__/color-select.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/cron/__tests__/cron-set.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/cron/demos/demo1.tsx create mode 100644 packages/core/client/src/schema-component/antd/cron/demos/demo2.tsx create mode 100644 packages/core/client/src/schema-component/antd/cron/index.md create mode 100644 packages/core/client/src/schema-component/antd/date-picker/__tests__/date-picker.test.tsx rename packages/core/client/src/schema-component/antd/date-picker/demos/{demo7.tsx => demo4.tsx} (86%) create mode 100644 packages/core/client/src/schema-component/antd/details/__tests__/details.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/details/demos/demo1.tsx create mode 100644 packages/core/client/src/schema-component/antd/details/index.md create mode 100644 packages/core/client/src/schema-component/antd/error-fallback/__tests__/error-fallback.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/error-fallback/demos/demo1.tsx create mode 100644 packages/core/client/src/schema-component/antd/error-fallback/index.md create mode 100644 packages/core/client/src/schema-component/antd/filter/__tests__/filter.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/form-item/__tests__/form-item.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/form-item/demos/demo1.tsx create mode 100644 packages/core/client/src/schema-component/antd/form-v2/__tests__/form-v2.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/form/__tests__/form.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/g2plot/__tests__/g2plot.test.tsx rename packages/core/client/src/schema-component/antd/gantt/{test => __tests__}/date-helper.test.tsx (100%) create mode 100644 packages/core/client/src/schema-component/antd/gantt/__tests__/gant.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/gantt/demos/demo1.tsx create mode 100644 packages/core/client/src/schema-component/antd/gantt/index.md delete mode 100644 packages/core/client/src/schema-component/antd/gantt/test/gant.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/grid-card/__tests__/grid-card.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/grid-card/demos/demo1.tsx create mode 100644 packages/core/client/src/schema-component/antd/grid-card/index.md create mode 100644 packages/core/client/src/schema-component/antd/grid/__tests__/grid.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/icon-picker/__tests__/icon-picker.test.tsx rename packages/core/client/src/schema-component/antd/icon-picker/demos/{demo1.tsx => icon-picker.tsx} (96%) create mode 100644 packages/core/client/src/schema-component/antd/input-number/__tests__/input-number.test.tsx rename packages/core/client/src/schema-component/antd/input-number/demos/{demo2.tsx => addonBefore&addonAfter.tsx} (92%) rename packages/core/client/src/schema-component/antd/input-number/demos/{demo3.tsx => highPrecisionDecimals.tsx} (93%) rename packages/core/client/src/schema-component/antd/input-number/demos/{demo1.tsx => inputNumber.tsx} (91%) create mode 100644 packages/core/client/src/schema-component/antd/input/__tests__/Input.test.tsx rename packages/core/client/src/schema-component/antd/input/demos/{demo1.tsx => input.tsx} (91%) rename packages/core/client/src/schema-component/antd/input/demos/{demo4.tsx => json.tsx} (97%) rename packages/core/client/src/schema-component/antd/input/demos/{demo2.tsx => textarea.tsx} (98%) rename packages/core/client/src/schema-component/antd/input/demos/{demo3.tsx => url.tsx} (97%) create mode 100644 packages/core/client/src/schema-component/antd/kanban/__tests__/kanban.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/list/__tests__/list.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/list/demos/demo1.tsx create mode 100644 packages/core/client/src/schema-component/antd/list/index.md create mode 100644 packages/core/client/src/schema-component/antd/markdown/__tests__/markdown.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/menu/__tests__/menu.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/page/__tests__/page.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/pagination/__tests__/pagination.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/password/__tests__/__snapshots__/password.test.tsx.snap create mode 100644 packages/core/client/src/schema-component/antd/password/__tests__/password.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/password/__tests__/utils.test.ts create mode 100644 packages/core/client/src/schema-component/antd/password/utils.ts create mode 100644 packages/core/client/src/schema-component/antd/percent/__tests__/percent.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/percent/demos/percent.tsx create mode 100644 packages/core/client/src/schema-component/antd/percent/index.md create mode 100644 packages/core/client/src/schema-component/antd/preview/__tests__/preview.test.tsx delete mode 100644 packages/core/client/src/schema-component/antd/preview/demos/apiClient.ts delete mode 100644 packages/core/client/src/schema-component/antd/preview/demos/demo2.tsx create mode 100644 packages/core/client/src/schema-component/antd/radio/__tests__/radio.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/record-picker/__tests__/record-picker.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/record-picker/demos/mockData.ts create mode 100644 packages/core/client/src/schema-component/antd/remote-select/__tests__/remote-select.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/remote-select/demos/demo1.tsx create mode 100644 packages/core/client/src/schema-component/antd/rich-text/__tests__/rich-text.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/select/__tests__/select.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/select/__tests__/utils.test.ts delete mode 100644 packages/core/client/src/schema-component/antd/select/shared.ts create mode 100644 packages/core/client/src/schema-component/antd/select/utils.ts create mode 100644 packages/core/client/src/schema-component/antd/table-v2/__tests__/__snapshots__/table-v2.test.tsx.snap create mode 100644 packages/core/client/src/schema-component/antd/table-v2/__tests__/table-v2.test.tsx delete mode 100644 packages/core/client/src/schema-component/antd/table-v2/demos/data.ts delete mode 100644 packages/core/client/src/schema-component/antd/table-v2/demos/demo3.tsx create mode 100644 packages/core/client/src/schema-component/antd/table/__tests__/__snapshots__/table.test.tsx.snap create mode 100644 packages/core/client/src/schema-component/antd/table/__tests__/table.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/tabs/__tests__/tabs.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/time-picker/__tests__/time-picker.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/tree-select/__tests__/tree-select.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/upload/__tests__/__snapshots__/upload.test.tsx.snap create mode 100644 packages/core/client/src/schema-component/antd/upload/__tests__/upload.test.tsx create mode 100644 packages/core/client/src/schema-component/antd/variable/__tests__/variable.test.tsx create mode 100644 packages/core/client/src/test/collections.ts create mode 100644 packages/core/client/src/test/index.ts create mode 100644 packages/core/client/src/test/mainCollections.ts create mode 100644 packages/core/client/src/test/mockAPIClient.ts rename packages/core/{client/src/schema-component/antd/input-number => utils/src}/__tests__/toFixedByStep.test.ts (100%) diff --git a/.vscode/launch.json b/.vscode/launch.json index f5ba79444c..764a195ebb 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -6,11 +6,17 @@ "request": "launch", "name": "Debug Server", "runtimeArgs": [ - "-r", "dotenv/config", - "-r", "tsconfig-paths/register", - "-r", "ts-node/register" + "-r", + "dotenv/config", + "-r", + "tsconfig-paths/register", + "-r", + "ts-node/register" + ], + "args": [ + "${workspaceRoot}/packages/app/server/src/index.ts", + "start" ], - "args": ["${workspaceRoot}/packages/app/server/src/index.ts", "start"], "skipFiles": [ "/**" ], @@ -44,6 +50,29 @@ ], } }, + { + "type": "node", + "request": "launch", + "name": "Debug Client Tests", + "runtimeExecutable": "yarn", + "runtimeArgs": [ + "run", + "test:client", + "${file}" + ], + "skipFiles": [ + "/**" + ], + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen", + "windows": { + "runtimeArgs": [ + "run", + "test:client", + "${relativeFile}" + ], + } + }, { "type": "node", "request": "launch", diff --git a/__mocks__/styleMock.js b/__mocks__/styleMock.js deleted file mode 100644 index f053ebf797..0000000000 --- a/__mocks__/styleMock.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = {}; diff --git a/jest.config.js b/jest.config.js index 0b0a438e85..eed650b4a5 100644 --- a/jest.config.js +++ b/jest.config.js @@ -15,7 +15,6 @@ module.exports = { ...pathsToModuleNameMapper(compilerOptions.paths, { prefix: '/', }), - '\\.(css|less)$': '/__mocks__/styleMock.js', }, globals: { 'ts-jest': { diff --git a/package.json b/package.json index 889d252238..59fa0c8dc3 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "build": "nocobase build", "test": "nocobase test", "test:client": "vitest", + "tc": "yarn test:client", "doc": "nocobase doc", "postinstall": "nocobase postinstall", "lint": "eslint .", @@ -43,10 +44,12 @@ "@commitlint/config-conventional": "^16.0.0", "@commitlint/prompt-cli": "^16.1.0", "@testing-library/jest-dom": "^5.16.5", - "@testing-library/react": "^14.0.0", + "@testing-library/react": "^12.1.5", + "@testing-library/user-event": "^14.4.3", "@vitejs/plugin-react": "^4.0.0", "auto-changelog": "^2.4.0", "ghooks": "^2.0.4", + "jsdom-worker": "^0.3.0", "prettier": "^2.2.1", "pretty-format": "^24.0.0", "pretty-quick": "^3.1.0", diff --git a/packages/core/cache/src/__tests__/index.test.ts b/packages/core/cache/src/__tests__/index.test.ts index 9a0ade05e3..28a9d5f153 100644 --- a/packages/core/cache/src/__tests__/index.test.ts +++ b/packages/core/cache/src/__tests__/index.test.ts @@ -1,6 +1,6 @@ import { createCache, createDefaultCacheConfig } from '@nocobase/cache'; -export function sleep(ms: number) { +export function sleep(ms?: number) { return new Promise((resolve) => { setTimeout(resolve, ms); }); diff --git a/packages/core/client/src/acl/ACLProvider.tsx b/packages/core/client/src/acl/ACLProvider.tsx index 94442234b2..e263809e2a 100644 --- a/packages/core/client/src/acl/ACLProvider.tsx +++ b/packages/core/client/src/acl/ACLProvider.tsx @@ -29,20 +29,6 @@ const getRouteUrl = (props) => { return props && getRouteUrl(props?.children?.props); }; -const getRouteAclCheck = (match, snippets) => { - const { url, params } = match; - if (url === '/admin/pm/list' || params?.pluginName || params?.name?.includes('settings')) { - const pmAclCheck = url === '/admin/pm/list' && snippets.includes('pm'); - const pluginTabByName = params?.name.split('/'); - pluginTabByName.shift(); - const pluginName = params.pluginName || pluginTabByName[0]; - const tabName = params.tabName || pluginTabByName[1]; - const pluginTabSnippet = pluginName && tabName && `!pm.${pluginName}.${tabName}`; - const pluginTabAclCheck = pluginTabSnippet && !snippets.includes(pluginTabSnippet); - return pmAclCheck || pluginTabAclCheck; - } - return true; -}; export const ACLRolesCheckProvider = (props) => { const route = getRouteUrl(props.children.props); const { setDesignable } = useDesignable(); @@ -180,11 +166,11 @@ export const ACLCollectionProvider = (props) => { const { allowAll, parseAction } = useACLRoleContext(); const schema = useFieldSchema(); if (allowAll) { - return <>{props.children}; + return props.children; } const actionPath = schema['x-acl-action']; if (!actionPath) { - return <>{props.children}; + return props.children; } const params = parseAction(actionPath, { schema }); if (!params) { @@ -288,5 +274,3 @@ export const ACLMenuItemProvider = (props) => { } return null; }; - -export default ACLProvider; diff --git a/packages/core/client/src/acl/index.tsx b/packages/core/client/src/acl/index.ts similarity index 100% rename from packages/core/client/src/acl/index.tsx rename to packages/core/client/src/acl/index.ts diff --git a/packages/core/client/src/api-client/APIClient.ts b/packages/core/client/src/api-client/APIClient.ts index 05bb4394f0..5cd61ad379 100644 --- a/packages/core/client/src/api-client/APIClient.ts +++ b/packages/core/client/src/api-client/APIClient.ts @@ -1,5 +1,5 @@ import { APIClient as APIClientSDK } from '@nocobase/sdk'; -import { Result } from 'ahooks/lib/useRequest/src/types'; +import { Result } from 'ahooks/es/useRequest/src/types'; import { notification } from 'antd'; import React from 'react'; diff --git a/packages/core/client/src/api-client/hooks/assign.ts b/packages/core/client/src/api-client/hooks/assign.ts index 77a7fb2986..6dd279c6a6 100644 --- a/packages/core/client/src/api-client/hooks/assign.ts +++ b/packages/core/client/src/api-client/hooks/assign.ts @@ -1,3 +1,4 @@ +import { isPlainObject } from '@nocobase/utils/client'; import deepmerge from 'deepmerge'; import uniq from 'lodash/uniq'; @@ -10,15 +11,6 @@ export interface MergeStrategies { [key: string]: MergeStrategy; } -export default function isPlainObject(value) { - if (Object.prototype.toString.call(value) !== '[object Object]') { - return false; - } - - const prototype = Object.getPrototypeOf(value); - return prototype === null || prototype === Object.prototype; -} - function getEnumerableOwnPropertySymbols(target: any): any[] { return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter((symbol) => target.propertyIsEnumerable(symbol)) diff --git a/packages/core/client/src/api-client/hooks/useRequest.ts b/packages/core/client/src/api-client/hooks/useRequest.ts index 228a77bbe0..11198c34ff 100644 --- a/packages/core/client/src/api-client/hooks/useRequest.ts +++ b/packages/core/client/src/api-client/hooks/useRequest.ts @@ -1,7 +1,7 @@ import { merge } from '@formily/shared'; import { useSetState } from 'ahooks'; -import { default as useReq } from 'ahooks/lib/useRequest'; -import { Options } from 'ahooks/lib/useRequest/src/types'; +import { default as useReq } from 'ahooks/es/useRequest'; +import { Options } from 'ahooks/es/useRequest/src/types'; import { AxiosRequestConfig } from 'axios'; import cloneDeep from 'lodash/cloneDeep'; import { useContext } from 'react'; diff --git a/packages/core/client/src/application/__tests__/__snapshots__/compose.test.tsx.snap b/packages/core/client/src/application/__tests__/__snapshots__/compose.test.tsx.snap index d2841aaafc..7e81f9a7d0 100644 --- a/packages/core/client/src/application/__tests__/__snapshots__/compose.test.tsx.snap +++ b/packages/core/client/src/application/__tests__/__snapshots__/compose.test.tsx.snap @@ -75,79 +75,3 @@ exports[`compose > case 5 1`] = ` `; - -exports[`compose case 1 1`] = ` -
-
-

- A -

-
-
-`; - -exports[`compose case 2 1`] = ` -
-
-

- A -

-
-

- B -

-
-
-
-`; - -exports[`compose case 3 1`] = ` -
-
-

- A -

-
-
-`; - -exports[`compose case 4 1`] = ` -
-
-

- A -

-
-

- B -

-
-

- C -

-
-
-
-
-`; - -exports[`compose case 5 1`] = ` -
-
-

- A -

-
-

- B - 1 -

-
-

- C -

-
-
-
-
-`; diff --git a/packages/core/client/src/async-data-provider/index.tsx b/packages/core/client/src/async-data-provider/index.tsx index b730ad296e..783dd27a82 100644 --- a/packages/core/client/src/async-data-provider/index.tsx +++ b/packages/core/client/src/async-data-provider/index.tsx @@ -1,4 +1,4 @@ -import { Result } from 'ahooks/lib/useRequest/src/types'; +import { Result } from 'ahooks/es/useRequest/src/types'; import React, { createContext, useContext } from 'react'; import { useRequest } from '../api-client'; diff --git a/packages/core/client/src/block-provider/BlockProvider.tsx b/packages/core/client/src/block-provider/BlockProvider.tsx index c555b473be..646bcbb352 100644 --- a/packages/core/client/src/block-provider/BlockProvider.tsx +++ b/packages/core/client/src/block-provider/BlockProvider.tsx @@ -2,13 +2,12 @@ import { css } from '@emotion/css'; import { Field } from '@formily/core'; import { RecursionField, useField, useFieldSchema } from '@formily/react'; import { useRequest } from 'ahooks'; -import merge from 'deepmerge'; import { Col, Row } from 'antd'; +import merge from 'deepmerge'; import template from 'lodash/template'; import React, { createContext, useContext, useEffect, useRef, useState } from 'react'; import { Link } from 'react-router-dom'; import { - ACLCollectionProvider, TableFieldResource, WithoutTableFieldResource, useAPIClient, @@ -16,11 +15,11 @@ import { useDesignable, useRecord, } from '../'; +import { ACLCollectionProvider } from '../acl/ACLProvider'; import { CollectionProvider, useCollection, useCollectionManager } from '../collection-manager'; import { FilterBlockRecord } from '../filter-provider/FilterProvider'; import { useRecordIndex } from '../record-provider'; import { SharedFilterProvider } from './SharedFilterProvider'; -import _ from 'lodash'; export const BlockResourceContext = createContext(null); export const BlockAssociationContext = createContext(null); @@ -161,7 +160,7 @@ export const MaybeCollectionProvider = (props) => { {props.children} ) : ( - <>{props.children} + props.children ); }; diff --git a/packages/core/client/src/board/Board.tsx b/packages/core/client/src/board/Board.tsx index 62ffe6f629..d0b04539ef 100644 --- a/packages/core/client/src/board/Board.tsx +++ b/packages/core/client/src/board/Board.tsx @@ -1,4 +1,3 @@ -import { useField } from '@formily/react'; import React, { forwardRef, useState } from 'react'; import { DragDropContext } from 'react-beautiful-dnd'; import Column from './Column'; diff --git a/packages/core/client/src/collection-manager/Configuration/CollectionFieldsTable.tsx b/packages/core/client/src/collection-manager/Configuration/CollectionFieldsTable.tsx index 6320308113..1583c2c16a 100644 --- a/packages/core/client/src/collection-manager/Configuration/CollectionFieldsTable.tsx +++ b/packages/core/client/src/collection-manager/Configuration/CollectionFieldsTable.tsx @@ -1,10 +1,10 @@ import { createForm, Field } from '@formily/core'; import { FieldContext, FormContext, observer, useField, useFieldSchema } from '@formily/react'; -import { Options, Result } from 'ahooks/lib/useRequest/src/types'; +import { useAttach } from '@formily/react/esm/hooks/useAttach'; +import { Options, Result } from 'ahooks/es/useRequest/src/types'; +import { TableProps } from 'antd'; import React, { useMemo } from 'react'; import { AsyncDataProvider, useAsyncData, useRequest } from '../..'; -import { useAttach } from '@formily/react/lib/hooks/useAttach'; -import { TableProps } from 'antd'; import { CollectionFieldsTableArray } from './CollectionFieldsTableArray'; type TableVoidProps = TableProps & { diff --git a/packages/core/client/src/collection-manager/ResourceActionProvider.tsx b/packages/core/client/src/collection-manager/ResourceActionProvider.tsx index b7507d6d16..7f9e0a3ee5 100644 --- a/packages/core/client/src/collection-manager/ResourceActionProvider.tsx +++ b/packages/core/client/src/collection-manager/ResourceActionProvider.tsx @@ -1,5 +1,5 @@ import { useField } from '@formily/react'; -import { Result } from 'ahooks/lib/useRequest/src/types'; +import { Result } from 'ahooks/es/useRequest/src/types'; import React, { createContext, useContext, useEffect } from 'react'; import { useCollectionManager } from '.'; import { CollectionProvider, useRecord } from '..'; diff --git a/packages/core/client/src/collection-manager/interfaces/linkTo.ts b/packages/core/client/src/collection-manager/interfaces/linkTo.ts index e0701d74e3..e347c3ebae 100644 --- a/packages/core/client/src/collection-manager/interfaces/linkTo.ts +++ b/packages/core/client/src/collection-manager/interfaces/linkTo.ts @@ -1,7 +1,6 @@ import { ISchema } from '@formily/react'; import { uid } from '@formily/shared'; -import { cloneDeep } from 'lodash'; -import { defaultProps, recordPickerSelector, recordPickerViewer } from './properties'; +import { defaultProps } from './properties'; import { IField } from './types'; export const linkTo: IField = { diff --git a/packages/core/client/src/collection-manager/interfaces/properties/index.ts b/packages/core/client/src/collection-manager/interfaces/properties/index.ts index bc835e5084..76aa6f6e7d 100644 --- a/packages/core/client/src/collection-manager/interfaces/properties/index.ts +++ b/packages/core/client/src/collection-manager/interfaces/properties/index.ts @@ -335,47 +335,6 @@ export const defaultProps = { }, }; -export const recordPickerSelector: ISchema = { - type: 'void', - title: '{{ t("Select record") }}', - 'x-component': 'RecordPicker.Selector', - 'x-component-props': { - className: 'nb-record-picker-selector', - }, - properties: { - grid: { - type: 'void', - 'x-component': 'Grid', - 'x-initializer': 'TableSelectorInitializers', - properties: {}, - }, - footer: { - 'x-component': 'Action.Container.Footer', - 'x-component-props': {}, - properties: { - actions: { - type: 'void', - 'x-component': 'ActionBar', - 'x-component-props': {}, - properties: { - submit: { - title: '{{ t("Submit") }}', - 'x-action': 'submit', - 'x-component': 'Action', - 'x-designer': 'Action.Designer', - 'x-component-props': { - type: 'primary', - htmlType: 'submit', - useProps: '{{ usePickActionProps }}', - }, - }, - }, - }, - }, - }, - }, -}; - export const recordPickerViewer = { type: 'void', title: '{{ t("View record") }}', diff --git a/packages/core/client/src/filter-provider/FilterProvider.tsx b/packages/core/client/src/filter-provider/FilterProvider.tsx index 6e4937d34a..b117e8250e 100644 --- a/packages/core/client/src/filter-provider/FilterProvider.tsx +++ b/packages/core/client/src/filter-provider/FilterProvider.tsx @@ -1,11 +1,11 @@ import { useField, useFieldSchema } from '@formily/react'; +import { uniqBy } from 'lodash'; import React, { createContext, useEffect, useRef } from 'react'; -import { useBlockRequestContext } from '../block-provider'; +import { useBlockRequestContext } from '../block-provider/BlockProvider'; import { SharedFilter, mergeFilter } from '../block-provider/SharedFilterProvider'; import { CollectionFieldOptions, useCollection } from '../collection-manager'; import { removeNullCondition } from '../schema-component'; import { useAssociatedFields } from './utils'; -import { uniqBy } from 'lodash'; type Collection = ReturnType; diff --git a/packages/core/client/src/i18n/i18n.ts b/packages/core/client/src/i18n/i18n.ts index 20e26ac84f..c742e33d63 100644 --- a/packages/core/client/src/i18n/i18n.ts +++ b/packages/core/client/src/i18n/i18n.ts @@ -1,7 +1,6 @@ import i18next from 'i18next'; import { initReactI18next } from 'react-i18next'; import locale from '../locale'; -const log = require('debug')('i18next'); export const i18n = i18next.createInstance(); diff --git a/packages/core/client/src/icon/__tests__/icon.test.tsx b/packages/core/client/src/icon/__tests__/icon.test.tsx new file mode 100644 index 0000000000..2c8658f54f --- /dev/null +++ b/packages/core/client/src/icon/__tests__/icon.test.tsx @@ -0,0 +1,98 @@ +import React from 'react'; +import { render, screen } from 'testUtils'; +import App1 from '../demos/antd-icon'; +import App3 from '../demos/custom-icon'; +import App2 from '../demos/iconfont'; +import App4 from '../demos/register-icon'; + +describe('Icon', () => { + it('antd icon', () => { + render(); + expect(screen.getByRole('img')).toMatchInlineSnapshot(` + + + + `); + }); + + it('iconfont', () => { + render(); + expect(screen.getByRole('img')).toMatchInlineSnapshot(` + + + + `); + }); + + it('custom icon', () => { + render(); + expect(screen.getByRole('img')).toMatchInlineSnapshot(` + + + + + + `); + }); + + it('register icon', () => { + render(); + expect(screen.getByRole('img')).toMatchInlineSnapshot(` + + + + + + `); + }); +}); diff --git a/packages/core/client/src/icon/demos/antd-icon.tsx b/packages/core/client/src/icon/demos/antd-icon.tsx new file mode 100644 index 0000000000..73bbf14000 --- /dev/null +++ b/packages/core/client/src/icon/demos/antd-icon.tsx @@ -0,0 +1,4 @@ +import { Icon } from '@nocobase/client'; +import React from 'react'; + +export default () => ; diff --git a/packages/core/client/src/icon/demos/custom-icon.tsx b/packages/core/client/src/icon/demos/custom-icon.tsx new file mode 100644 index 0000000000..c9ea301569 --- /dev/null +++ b/packages/core/client/src/icon/demos/custom-icon.tsx @@ -0,0 +1,10 @@ +import { Icon } from '@nocobase/client'; +import React from 'react'; + +const HeartSvg = () => ( + + + +); + +export default () => ; diff --git a/packages/core/client/src/icon/demos/iconfont.tsx b/packages/core/client/src/icon/demos/iconfont.tsx new file mode 100644 index 0000000000..0c323873ed --- /dev/null +++ b/packages/core/client/src/icon/demos/iconfont.tsx @@ -0,0 +1,8 @@ +import { Icon } from '@nocobase/client'; +import React from 'react'; + +Icon.createFromIconfontCN({ + scriptUrl: '//at.alicdn.com/t/font_8d5l8fzk5b87iudi.js', +}); + +export default () => ; diff --git a/packages/core/client/src/icon/demos/register-icon.tsx b/packages/core/client/src/icon/demos/register-icon.tsx new file mode 100644 index 0000000000..0209b3352b --- /dev/null +++ b/packages/core/client/src/icon/demos/register-icon.tsx @@ -0,0 +1,14 @@ +import { Icon } from '@nocobase/client'; +import React from 'react'; + +const HeartSvg = () => ( + + + +); + +const CustomIcon = (props) => ; + +Icon.register({ CustomIcon }); + +export default () => ; diff --git a/packages/core/client/src/icon/index.md b/packages/core/client/src/icon/index.md index e41fd250a7..9b102f57ac 100644 --- a/packages/core/client/src/icon/index.md +++ b/packages/core/client/src/icon/index.md @@ -21,56 +21,16 @@ Icon.createFromIconfontCN({ Use @ant-design/icons -```tsx -import React from 'react'; -import { Icon } from '@nocobase/client'; - -export default () => -``` + Use iconfont.cn -```tsx -import React from 'react'; -import { Icon } from '@nocobase/client'; - -Icon.createFromIconfontCN({ - scriptUrl: '//at.alicdn.com/t/font_8d5l8fzk5b87iudi.js', -}); - -export default () => -``` + Custom Icon -```tsx -import React from 'react'; -import { Icon } from '@nocobase/client'; - -const HeartSvg = () => ( - - - -); - -export default () => -``` + Register Icon -```tsx -import React from 'react'; -import { Icon } from '@nocobase/client'; - -const HeartSvg = () => ( - - - -); - -const CustomIcon = (props) => ; - -Icon.register({ CustomIcon }); - -export default () => -``` + diff --git a/packages/core/client/src/index.tsx b/packages/core/client/src/index.ts similarity index 100% rename from packages/core/client/src/index.tsx rename to packages/core/client/src/index.ts diff --git a/packages/core/client/src/route-switch/__tests__/__snapshots__/RouteSwitch.test.tsx.snap b/packages/core/client/src/route-switch/__tests__/__snapshots__/RouteSwitch.test.tsx.snap index f200053344..e64843b278 100644 --- a/packages/core/client/src/route-switch/__tests__/__snapshots__/RouteSwitch.test.tsx.snap +++ b/packages/core/client/src/route-switch/__tests__/__snapshots__/RouteSwitch.test.tsx.snap @@ -7,11 +7,3 @@ exports[`route-switch > case 1 1`] = ` `; - -exports[`route-switch case 1 1`] = ` -
-

- Home -

-
-`; diff --git a/packages/core/client/src/schema-component/antd/action/Action.Page.tsx b/packages/core/client/src/schema-component/antd/action/Action.Page.tsx index 207f24d34a..7e83268981 100644 --- a/packages/core/client/src/schema-component/antd/action/Action.Page.tsx +++ b/packages/core/client/src/schema-component/antd/action/Action.Page.tsx @@ -28,7 +28,7 @@ export const ActionPage: ComposedActionDrawer = observer( {containerRef?.current && visible && createPortal( -
+
{ + it('show the drawer when click the button', async () => { + const { getByText } = render(); + + await userEvent.click(getByText('Open')); + await sleep(300); + // drawer + expect(document.querySelector('.ant-drawer')).toBeInTheDocument(); + // mask + expect(document.querySelector('.ant-drawer-mask')).toBeInTheDocument(); + // title + expect(getByText('Drawer Title')).toBeInTheDocument(); + // content + expect(getByText('Hello')).toBeInTheDocument(); + + // close button + await userEvent.click(getByText('Close')); + await sleep(300); + expect(document.querySelector('.ant-drawer')).not.toBeInTheDocument(); + + // should also close when click the mask + await userEvent.click(getByText('Open')); + await sleep(300); + expect(document.querySelector('.ant-drawer')).toBeInTheDocument(); + await userEvent.click(document.querySelector('.ant-drawer-mask') as HTMLElement); + expect(document.querySelector('.ant-drawer')).not.toBeInTheDocument(); + + // should also close when click the close icon + await userEvent.click(getByText('Open')); + await sleep(300); + expect(document.querySelector('.ant-drawer')).toBeInTheDocument(); + await userEvent.click(document.querySelector('.ant-drawer-close') as HTMLElement); + expect(document.querySelector('.ant-drawer')).not.toBeInTheDocument(); + }); + + it('openMode', async () => { + const { getByText } = render(); + + expect(document.querySelector('.ant-drawer')).not.toBeInTheDocument(); + expect(document.querySelector('.ant-modal')).not.toBeInTheDocument(); + expect(document.querySelector('.nb-action-page')).not.toBeInTheDocument(); + + // drawer + await userEvent.click(getByText('Drawer')); + await userEvent.click(getByText('Open')); + await sleep(300); + + expect(document.querySelector('.ant-drawer')).toBeInTheDocument(); + expect(document.querySelector('.ant-modal')).not.toBeInTheDocument(); + expect(document.querySelector('.nb-action-page')).not.toBeInTheDocument(); + await userEvent.click(getByText('Close')); + + // modal + await userEvent.click(getByText('Modal')); + await userEvent.click(getByText('Open')); + await sleep(300); + + expect(document.querySelector('.ant-drawer')).not.toBeInTheDocument(); + expect(document.querySelector('.ant-modal')).toBeInTheDocument(); + expect(document.querySelector('.nb-action-page')).not.toBeInTheDocument(); + await userEvent.click(getByText('Close')); + + // page + await userEvent.click(getByText('Page')); + await userEvent.click(getByText('Open')); + await sleep(300); + + expect(document.querySelector('.ant-drawer')).not.toBeInTheDocument(); + expect(document.querySelector('.ant-modal')).not.toBeInTheDocument(); + expect(document.querySelector('.nb-action-page')).toBeInTheDocument(); + await userEvent.click(getByText('Close')); + + // TODO: 点击关闭按钮时应该消失 + // expect(document.querySelector('.nb-action-page')).not.toBeInTheDocument(); + }); +}); + +describe('Action.Drawer without Action', () => { + it('show the drawer when click the button', async () => { + const { getByText } = render(); + + await userEvent.click(getByText('Open')); + await sleep(300); + // drawer + expect(document.querySelector('.ant-drawer')).toBeInTheDocument(); + // mask + expect(document.querySelector('.ant-drawer-mask')).toBeInTheDocument(); + // title + expect(getByText('Drawer Title')).toBeInTheDocument(); + // content + expect(getByText('Hello')).toBeInTheDocument(); + + // close button + await userEvent.click(getByText('Close')); + await sleep(300); + expect(document.querySelector('.ant-drawer')).not.toBeInTheDocument(); + + // should also close when click the mask + await userEvent.click(getByText('Open')); + await sleep(300); + expect(document.querySelector('.ant-drawer')).toBeInTheDocument(); + await userEvent.click(document.querySelector('.ant-drawer-mask') as HTMLElement); + await sleep(300); + expect(document.querySelector('.ant-drawer')).not.toBeInTheDocument(); + + // should also close when click the close icon + await userEvent.click(getByText('Open')); + await sleep(300); + + expect(document.querySelector('.ant-drawer')).toBeInTheDocument(); + await userEvent.click(document.querySelector('.ant-drawer-close') as HTMLElement); + await sleep(300); + + expect(document.querySelector('.ant-drawer')).not.toBeInTheDocument(); + }); +}); + +describe('Action.Popover', () => { + it('show the popover when hover the button', async () => { + const { container } = render(); + const btn = container.querySelector('.ant-btn') as HTMLElement; + + fireEvent.mouseEnter(btn); + + // wait for the popover to show + await sleep(300); + // popover + expect(document.querySelector('.ant-popover')).toBeInTheDocument(); + // content + expect(screen.getByText('Hello')).toBeInTheDocument(); + + fireEvent.mouseLeave(btn); + // wait for the popover to hide + await sleep(300); + expect(document.querySelector('.ant-popover')).not.toBeInTheDocument(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/action/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/action/demos/demo1.tsx index 7d2e312e74..982c057dc5 100644 --- a/packages/core/client/src/schema-component/antd/action/demos/demo1.tsx +++ b/packages/core/client/src/schema-component/antd/action/demos/demo1.tsx @@ -1,6 +1,13 @@ -import { FormItem, Input } from '@formily/antd'; import { ISchema, observer, useForm } from '@formily/react'; -import { Action, Form, SchemaComponent, SchemaComponentProvider, useActionContext } from '@nocobase/client'; +import { + Action, + Form, + FormItem, + Input, + SchemaComponent, + SchemaComponentProvider, + useActionContext, +} from '@nocobase/client'; import React from 'react'; const useCloseAction = () => { diff --git a/packages/core/client/src/schema-component/antd/action/demos/demo2.tsx b/packages/core/client/src/schema-component/antd/action/demos/demo2.tsx index 69095b4281..e49ba6a8e7 100644 --- a/packages/core/client/src/schema-component/antd/action/demos/demo2.tsx +++ b/packages/core/client/src/schema-component/antd/action/demos/demo2.tsx @@ -1,9 +1,10 @@ -import { FormItem, Input } from '@formily/antd'; import { ISchema, observer, useForm } from '@formily/react'; import { Action, ActionContext, Form, + FormItem, + Input, SchemaComponent, SchemaComponentProvider, useActionContext, diff --git a/packages/core/client/src/schema-component/antd/action/demos/demo3.tsx b/packages/core/client/src/schema-component/antd/action/demos/demo3.tsx index d2d971de40..04cae185af 100644 --- a/packages/core/client/src/schema-component/antd/action/demos/demo3.tsx +++ b/packages/core/client/src/schema-component/antd/action/demos/demo3.tsx @@ -1,19 +1,14 @@ -import { FormItem, Input } from '@formily/antd'; import { Field } from '@formily/core'; -import { ISchema, observer, useField, useFieldSchema, useForm } from '@formily/react'; -import { Action, Form, SchemaComponent, SchemaComponentProvider, useActionContext } from '@nocobase/client'; -import { Select } from 'antd'; +import { ISchema, observer, useField, useFieldSchema } from '@formily/react'; +import { Action, SchemaComponent, SchemaComponentProvider, useActionContext } from '@nocobase/client'; +import { Radio } from 'antd'; import React, { useRef } from 'react'; const useCloseAction = () => { const { setVisible } = useActionContext(); - const form = useForm(); return { async run() { setVisible(false); - form.submit((values) => { - console.log(values); - }); }, }; }; @@ -26,18 +21,17 @@ const Editable = observer(
打开方式: - + Drawer + Modal + Page +
{props.children}
@@ -50,6 +44,8 @@ const schema: ISchema = { type: 'object', properties: { action1: { + type: 'void', + title: 'Open', 'x-decorator': 'Editable', 'x-component': 'Action', 'x-component-props': { @@ -57,22 +53,20 @@ const schema: ISchema = { openMode: 'modal', containerRefKey: 'containerRef', }, - type: 'void', - title: 'Open', properties: { drawer1: { - 'x-component': 'Action.Container', - 'x-component-props': {}, type: 'void', title: 'Modal Title', + 'x-component': 'Action.Container', + 'x-component-props': {}, properties: { hello1: { title: 'T1', 'x-content': 'Hello', }, footer1: { - 'x-component': 'Action.Container.Footer', type: 'void', + 'x-component': 'Action.Container.Footer', properties: { close1: { title: 'Close', @@ -99,12 +93,9 @@ const schema: ISchema = { }; export default observer(() => { - const containerRef = useRef(); + const containerRef = useRef(null); return ( - +
diff --git a/packages/core/client/src/schema-component/antd/action/demos/demo4.tsx b/packages/core/client/src/schema-component/antd/action/demos/demo4.tsx index 8080b049d9..ea9a5a5cd3 100644 --- a/packages/core/client/src/schema-component/antd/action/demos/demo4.tsx +++ b/packages/core/client/src/schema-component/antd/action/demos/demo4.tsx @@ -1,6 +1,13 @@ -import { FormItem, Input } from '@formily/antd'; import { ISchema, observer, useForm } from '@formily/react'; -import { Action, Form, SchemaComponent, SchemaComponentProvider, useActionContext } from '@nocobase/client'; +import { + Action, + Form, + FormItem, + Input, + SchemaComponent, + SchemaComponentProvider, + useActionContext, +} from '@nocobase/client'; import React from 'react'; const useCloseAction = () => { diff --git a/packages/core/client/src/schema-component/antd/action/demos/demo5.tsx b/packages/core/client/src/schema-component/antd/action/demos/demo5.tsx index 9263ef84d5..a3bfde0613 100644 --- a/packages/core/client/src/schema-component/antd/action/demos/demo5.tsx +++ b/packages/core/client/src/schema-component/antd/action/demos/demo5.tsx @@ -10,9 +10,9 @@ import { NumberPicker, Submit, } from '@formily/antd'; -import { Select } from 'antd'; -import { createForm, Field, onFieldValueChange } from '@formily/core'; +import { Field, createForm, onFieldValueChange } from '@formily/core'; import { connect, createSchemaField, observer, useField, useForm, useFormEffects } from '@formily/react'; +import { Select } from 'antd'; import React from 'react'; const ViewOptions = connect((props) => { @@ -110,6 +110,10 @@ const EditOptions = observer( }) .then((values) => { field.value = values; + return values; + }) + .catch((err) => { + console.error(err); }); }} > diff --git a/packages/core/client/src/schema-component/antd/association-field/InternalPicker.tsx b/packages/core/client/src/schema-component/antd/association-field/InternalPicker.tsx index 746b067041..e211f5cae3 100644 --- a/packages/core/client/src/schema-component/antd/association-field/InternalPicker.tsx +++ b/packages/core/client/src/schema-component/antd/association-field/InternalPicker.tsx @@ -1,7 +1,7 @@ import { RecursionField, observer, useField, useFieldSchema } from '@formily/react'; import { Input, Select } from 'antd'; import { differenceBy, unionBy } from 'lodash'; -import React, { useContext, useEffect, useMemo, useState } from 'react'; +import React, { useContext, useMemo, useState } from 'react'; import { FormProvider, RecordPickerContext, @@ -9,6 +9,7 @@ import { SchemaComponentOptions, useActionContext, } from '../..'; +import { RecordProvider } from '../../../'; import { TableSelectorParamsProvider, useTableSelectorProps as useTsp, @@ -19,7 +20,6 @@ import { ActionContext } from '../action'; import { useAssociationFieldContext, useFieldNames, useInsertSchema } from './hooks'; import schema from './schema'; import { flatData, getLabelFormatValue, useLabelUiSchema } from './util'; -import { RecordProvider } from '../../../'; const useTableSelectorProps = () => { const field: any = useField(); diff --git a/packages/core/client/src/schema-component/antd/association-select/__tests__/association-select.test.tsx b/packages/core/client/src/schema-component/antd/association-select/__tests__/association-select.test.tsx new file mode 100644 index 0000000000..79761c96e9 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/association-select/__tests__/association-select.test.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import { render, screen, sleep, userEvent } from 'testUtils'; +import App1 from '../demos/demo1'; + +describe('AssociationSelect', () => { + it('should render correctly', async () => { + render(); + + const selector = document.querySelector('.ant-select-selector'); + expect(selector).toBeInTheDocument(); + + await userEvent.click(selector); + + // 下拉框中显示 loading + expect(document.querySelector('.ant-spin')).toBeInTheDocument(); + + // 等待接口返回数据 + await sleep(500); + + expect(screen.getByText('title1')).toBeInTheDocument(); + expect(screen.getByText('title2')).toBeInTheDocument(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/association-select/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/association-select/demos/demo1.tsx new file mode 100644 index 0000000000..ecfd1fb742 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/association-select/demos/demo1.tsx @@ -0,0 +1,57 @@ +import { APIClientProvider, AssociationSelect, FormProvider, SchemaComponent } from '@nocobase/client'; +import React from 'react'; +import { mockAPIClient } from '../../../../test'; + +const { apiClient, mockRequest } = mockAPIClient(); +mockRequest.onGet('/posts:list').reply(() => { + return [ + 200, + { + data: [ + { + id: 1, + title: 'title1', + }, + { + id: 2, + title: 'title2', + }, + ], + }, + ]; +}); + +// 写一个简单的 schema +const schema = { + type: 'object', + properties: { + association: { + type: 'array', + 'x-component': 'AssociationSelect', + 'x-component-props': { + multiple: true, + fieldNames: { + label: 'title', + value: 'id', + }, + service: { + resource: 'posts', + action: 'list', + }, + style: { + width: '100%', + }, + }, + }, + }, +}; + +export default () => { + return ( + + + + + + ); +}; diff --git a/packages/core/client/src/schema-component/antd/association-select/index.md b/packages/core/client/src/schema-component/antd/association-select/index.md index 87df294a13..13552ba5dc 100644 --- a/packages/core/client/src/schema-component/antd/association-select/index.md +++ b/packages/core/client/src/schema-component/antd/association-select/index.md @@ -5,10 +5,12 @@ group: path: /schema-components --- -# RemoteSelect +# AssociationSelect ## Examples + + ## API 基于 Ant Design 的 [Select](https://ant.design/components/select/#API),相关扩展属性有: diff --git a/packages/core/client/src/schema-component/antd/block-item/__tests__/block-item.test.tsx b/packages/core/client/src/schema-component/antd/block-item/__tests__/block-item.test.tsx new file mode 100644 index 0000000000..fbf2a49979 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/block-item/__tests__/block-item.test.tsx @@ -0,0 +1,15 @@ +import { render } from '@testing-library/react'; +import React from 'react'; +import App1 from '../demos/demo1'; + +describe('BlockItem', () => { + it('should render correctly', () => { + render(); + + const items = document.querySelectorAll('.nc-block-item'); + expect(items.length).toBe(3); + expect(items[0]).toHaveTextContent('Block block1'); + expect(items[1]).toHaveTextContent('Block block2'); + expect(items[2]).toHaveTextContent('Block block3'); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/block-item/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/block-item/demos/demo1.tsx index 5dde65fa2b..be46dd9847 100644 --- a/packages/core/client/src/schema-component/antd/block-item/demos/demo1.tsx +++ b/packages/core/client/src/schema-component/antd/block-item/demos/demo1.tsx @@ -4,10 +4,13 @@ import { BlockItem, DndContext, DragHandler, SchemaComponent, SchemaComponentPro import React from 'react'; const Block = observer( - (props) => { + () => { const fieldSchema = useFieldSchema(); return ( -
+
Block {fieldSchema.name}
@@ -16,34 +19,34 @@ const Block = observer( { displayName: 'Block' }, ); +const schema = { + type: 'void', + name: 'page', + 'x-component': 'DndContext', + 'x-uid': uid(), + properties: { + block1: { + 'x-decorator': 'BlockItem', + 'x-component': 'Block', + 'x-uid': uid(), + }, + block2: { + 'x-decorator': 'BlockItem', + 'x-component': 'Block', + 'x-uid': uid(), + }, + block3: { + 'x-decorator': 'BlockItem', + 'x-component': 'Block', + 'x-uid': uid(), + }, + }, +}; + export default function App() { return ( - + ); } diff --git a/packages/core/client/src/schema-component/antd/calendar/Calendar.tsx b/packages/core/client/src/schema-component/antd/calendar/Calendar.tsx index 54504f8003..4d5f3b318c 100644 --- a/packages/core/client/src/schema-component/antd/calendar/Calendar.tsx +++ b/packages/core/client/src/schema-component/antd/calendar/Calendar.tsx @@ -1,12 +1,12 @@ import { LeftOutlined, RightOutlined } from '@ant-design/icons'; import { createForm } from '@formily/core'; -import { observer, RecursionField, Schema, useFieldSchema } from '@formily/react'; +import { RecursionField, Schema, observer, useFieldSchema } from '@formily/react'; import { parseExpression } from 'cron-parser'; +import { eq } from 'date-arithmetic'; import get from 'lodash/get'; import moment from 'moment'; import React, { useCallback, useMemo, useState } from 'react'; import { Calendar as BigCalendar, momentLocalizer } from 'react-big-calendar'; -import * as dates from 'react-big-calendar/lib/utils/dates'; import { useTranslation } from 'react-i18next'; import { RecordProvider } from '../../../'; import { i18n } from '../../../i18n'; @@ -247,7 +247,7 @@ export const Calendar: any = observer( agendaDateFormat: 'M-DD', dayHeaderFormat: 'Y-M-DD', dayRangeHeaderFormat: ({ start, end }, culture, local) => { - if (dates.eq(start, end, 'month')) { + if (eq(start, end, 'month')) { return local.format(start, 'Y-M', culture); } return `${local.format(start, 'Y-M', culture)} - ${local.format(end, 'Y-M', culture)}`; diff --git a/packages/core/client/src/schema-component/antd/calendar/Nav.tsx b/packages/core/client/src/schema-component/antd/calendar/Nav.tsx index dd29383231..3116cc3c01 100644 --- a/packages/core/client/src/schema-component/antd/calendar/Nav.tsx +++ b/packages/core/client/src/schema-component/antd/calendar/Nav.tsx @@ -2,7 +2,7 @@ import { LeftOutlined, RightOutlined } from '@ant-design/icons'; import { observer } from '@formily/react'; import { Button } from 'antd'; import React, { useContext } from 'react'; -import { navigate } from 'react-big-calendar/lib/utils/constants'; +import { Navigate } from 'react-big-calendar/dist/react-big-calendar.esm'; import { useDesignable } from '../../hooks'; import { CalendarToolbarContext } from './context'; @@ -12,8 +12,8 @@ export const Nav = observer( const { onNavigate } = useContext(CalendarToolbarContext); return (
- - + +
); diff --git a/packages/core/client/src/schema-component/antd/calendar/Today.tsx b/packages/core/client/src/schema-component/antd/calendar/Today.tsx index a8fa40355a..ccdc22f036 100644 --- a/packages/core/client/src/schema-component/antd/calendar/Today.tsx +++ b/packages/core/client/src/schema-component/antd/calendar/Today.tsx @@ -1,7 +1,7 @@ import { observer } from '@formily/react'; import { Button } from 'antd'; import React, { useContext } from 'react'; -import { navigate } from 'react-big-calendar/lib/utils/constants'; +import { Navigate } from 'react-big-calendar/dist/react-big-calendar.esm'; import { useTranslation } from 'react-i18next'; import { useDesignable } from '../../hooks'; import { CalendarToolbarContext } from './context'; @@ -14,7 +14,7 @@ export const Today = observer( return ( )}
diff --git a/packages/core/client/src/schema-component/antd/expand-action/index.ts b/packages/core/client/src/schema-component/antd/expand-action/index.ts index 3ca73922a1..8120050242 100644 --- a/packages/core/client/src/schema-component/antd/expand-action/index.ts +++ b/packages/core/client/src/schema-component/antd/expand-action/index.ts @@ -1,7 +1,7 @@ -import { ExpandAction } from './Expand.Action' -import { ExpandActionDesign } from './Expand.Action.Design' +import { ExpandAction } from './Expand.Action'; +import { ExpandActionDesign } from './Expand.Action.Design'; -export const Expand: any = ExpandAction +export const Expand: any = ExpandAction; -Expand.Action = ExpandAction -Expand.Action.Design = ExpandActionDesign \ No newline at end of file +Expand.Action = ExpandAction; +Expand.Action.Design = ExpandActionDesign; diff --git a/packages/core/client/src/schema-component/antd/filter/Filter.tsx b/packages/core/client/src/schema-component/antd/filter/Filter.tsx index db3af32fb9..e45f83d791 100644 --- a/packages/core/client/src/schema-component/antd/filter/Filter.tsx +++ b/packages/core/client/src/schema-component/antd/filter/Filter.tsx @@ -4,11 +4,11 @@ import React from 'react'; import { useRequest } from '../../../api-client'; import { useProps } from '../../hooks/useProps'; import { DatePickerProvider } from '../date-picker'; -import { FilterContext } from './context'; import { FilterActionDesigner } from './Filter.Action.Designer'; import { FilterAction } from './FilterAction'; import { FilterGroup } from './FilterGroup'; import { SaveDefaultValue } from './SaveDefaultValue'; +import { FilterContext } from './context'; const useDef = (options) => { const field = useField(); diff --git a/packages/core/client/src/schema-component/antd/filter/FilterItem.tsx b/packages/core/client/src/schema-component/antd/filter/FilterItem.tsx index de1ba70664..9374e2bbeb 100644 --- a/packages/core/client/src/schema-component/antd/filter/FilterItem.tsx +++ b/packages/core/client/src/schema-component/antd/filter/FilterItem.tsx @@ -2,11 +2,11 @@ import { CloseCircleOutlined } from '@ant-design/icons'; import { css } from '@emotion/css'; import { observer } from '@formily/react'; import { Cascader, Select, Space } from 'antd'; -import React, { useContext, useEffect } from 'react'; +import React, { useContext } from 'react'; import { useTranslation } from 'react-i18next'; import { useCompile } from '../..'; -import { RemoveConditionContext } from './context'; import { DynamicComponent } from './DynamicComponent'; +import { RemoveConditionContext } from './context'; import { useValues } from './useValues'; export const FilterItem = observer( @@ -16,7 +16,8 @@ export const FilterItem = observer( const remove = useContext(RemoveConditionContext); const { schema, fields, operators, dataIndex, operator, setDataIndex, setOperator, value, setValue } = useValues(); return ( -
+ // 添加 nc-filter-item 类名是为了帮助编写测试时更容易选中该元素 +
- {!operator?.noValue && - React.createElement(DynamicComponent, { - value: value ? value : undefined, - schema, - onChange(value) { - setValue(value); - }, - })} + {!operator?.noValue ? : null} {!props.disabled && ( remove()} style={{ color: '#bfbfbf' }} /> diff --git a/packages/core/client/src/schema-component/antd/filter/__tests__/filter.test.tsx b/packages/core/client/src/schema-component/antd/filter/__tests__/filter.test.tsx new file mode 100644 index 0000000000..9f0da03030 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/filter/__tests__/filter.test.tsx @@ -0,0 +1,123 @@ +import React from 'react'; +import { render, screen, userEvent, within } from 'testUtils'; +import App2 from '../demos/demo2'; +import App3 from '../demos/demo3'; +import App4 from '../demos/demo4'; +import App5 from '../demos/demo5'; +import App6 from '../demos/demo6'; + +describe('Filter', () => { + it('Filter & Action', async () => { + render(); + + await userEvent.click(screen.getByText(/open/i)); + const tooltip = screen.getByRole('tooltip'); + expect(tooltip).toBeInTheDocument(); + + // 弹窗中显示的内容 + expect(within(tooltip).getByText(/name/i)).toBeInTheDocument(); + expect(within(tooltip).getByText(/ne/i)).toBeInTheDocument(); + expect(within(tooltip).getByText(/tags \/ title/i)).toBeInTheDocument(); + expect(within(tooltip).getByText(/eq/i)).toBeInTheDocument(); + expect(within(tooltip).getByText(/^Add condition$/i)).toBeInTheDocument(); + expect(within(tooltip).getByText(/^Add condition group$/i)).toBeInTheDocument(); + + const inputs = tooltip.querySelectorAll('.ant-input'); + expect(inputs).toHaveLength(2); + // 输入框中的默认值 + expect(inputs[0]).toHaveValue('aa'); + expect(inputs[1]).toHaveValue('aaa'); + }); + + it('default value', () => { + render(); + + expect(screen.getByText(/name/i)).toBeInTheDocument(); + expect(screen.getByText(/ne/i)).toBeInTheDocument(); + expect(screen.getByText(/tags \/ title/i)).toBeInTheDocument(); + expect(screen.getByText(/eq/i)).toBeInTheDocument(); + expect(screen.getByText(/^Add condition$/i)).toBeInTheDocument(); + expect(screen.getByText(/^Add condition group$/i)).toBeInTheDocument(); + + const inputs = document.querySelectorAll('.ant-input'); + expect(inputs).toHaveLength(2); + // 输入框中的默认值 + expect(inputs[0]).toHaveValue(''); + expect(inputs[1]).toHaveValue('aaa'); + }); + + it('custom dynamic component', async () => { + render(); + + expect(screen.getByText(/name/i)).toBeInTheDocument(); + expect(screen.getByText(/ne/i)).toBeInTheDocument(); + expect(screen.getByText(/tags \/ title/i)).toBeInTheDocument(); + expect(screen.getByText(/eq/i)).toBeInTheDocument(); + expect(screen.getByText(/^Add condition$/i)).toBeInTheDocument(); + expect(screen.getByText(/^Add condition group$/i)).toBeInTheDocument(); + + const selects = screen.getAllByText('默认'); + // 自定义组件中的选择框 + expect(selects[0]).toBeInTheDocument(); + expect(selects[1]).toBeInTheDocument(); + + const inputs = document.querySelectorAll('.ant-input'); + expect(inputs).toHaveLength(2); + // 输入框中的默认值 + expect(inputs[0]).toHaveValue('aaa'); + expect(inputs[1]).toHaveValue('bbb'); + }); + + it('FilterAction', async () => { + render(); + + await userEvent.click(screen.getByText(/filter/i)); + const tooltip = screen.getByRole('tooltip'); + expect(tooltip).toBeInTheDocument(); + + // 弹窗中显示的内容 + expect(within(tooltip).getByText(/name/i)).toBeInTheDocument(); + expect(within(tooltip).getByText(/ne/i)).toBeInTheDocument(); + expect(within(tooltip).getByText(/tags \/ title/i)).toBeInTheDocument(); + expect(within(tooltip).getByText(/eq/i)).toBeInTheDocument(); + expect(within(tooltip).getByText(/^Add condition$/i)).toBeInTheDocument(); + expect(within(tooltip).getByText(/^Add condition group$/i)).toBeInTheDocument(); + + const inputs = tooltip.querySelectorAll('.ant-input'); + expect(inputs).toHaveLength(2); + // 输入框中的默认值 + expect(inputs[0]).toHaveValue(''); + expect(inputs[1]).toHaveValue('aaa'); + }); + + it('dynamic options', async () => { + render(); + + const addBtn = screen.getByText(/^Add condition$/i); + const addGroupBtn = screen.getByText(/^Add condition group$/i); + + expect(screen.getByText(/test1/i)).toBeInTheDocument(); + expect(addBtn).toBeInTheDocument(); + expect(addGroupBtn).toBeInTheDocument(); + + await userEvent.click(addBtn); + const item = document.querySelector('.nc-filter-item'); + const selector = item.querySelector('.ant-select-selector'); + expect(item).toBeInTheDocument(); + + await userEvent.click(selector); + // 选中 Title1 + await userEvent.click(screen.getByText(/title1/i)); + expect(screen.getByText(/title1/i, { selector: '.ant-select-selection-item' })).toBeInTheDocument(); + expect(screen.getByText(/contains/i, { selector: '.ant-select-selection-item' })).toBeInTheDocument(); + + // 切换为 test2 + await userEvent.click(screen.getByText(/test1/i)); + await userEvent.click(screen.getByText(/test2/i, { selector: '.ant-select-item-option-content' })); + await userEvent.click(selector); + // 选中 Title2 + await userEvent.click(screen.getByText(/title2/i)); + expect(screen.getByText(/title2/i, { selector: '.ant-select-selection-item' })).toBeInTheDocument(); + expect(screen.getByText(/contains/i, { selector: '.ant-select-selection-item' })).toBeInTheDocument(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/filter/demos/demo2.tsx b/packages/core/client/src/schema-component/antd/filter/demos/demo2.tsx index 39baaac199..616d0d3e20 100644 --- a/packages/core/client/src/schema-component/antd/filter/demos/demo2.tsx +++ b/packages/core/client/src/schema-component/antd/filter/demos/demo2.tsx @@ -1,95 +1,93 @@ -import { - AntdSchemaComponentProvider, - SharedFilter, - Input, - SchemaComponent, - SchemaComponentProvider, -} from '@nocobase/client'; +import { AntdSchemaComponentProvider, Filter, Input, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; import React from 'react'; +const options = [ + { + name: 'name', + title: 'Name', + operators: [ + { label: 'eq', value: '$eq' }, + { label: 'ne', value: '$ne' }, + ], + schema: { + type: 'string', + title: 'Name', + 'x-component': 'Input', + }, + }, + { + name: 'age', + title: 'Age', + operators: [ + { label: 'in', value: '$in' }, + { label: 'not', value: '$not' }, + ], + schema: { + type: 'string', + title: 'Age', + 'x-component': 'InputNumber', + }, + }, + { + name: 'tags', + title: 'Tags', + schema: { + title: 'Tags', + }, + children: [ + { + name: 'slug', + title: 'Slug', + operators: [ + { label: 'in', value: '$in' }, + { label: 'not', value: '$not' }, + ], + schema: { + title: 'Slug', + type: 'string', + 'x-component': 'Input', + }, + }, + { + name: 'title', + title: 'Title', + operators: [ + { label: 'eq', value: '$eq' }, + { label: 'ne', value: '$ne' }, + ], + schema: { + title: 'Title', + type: 'string', + 'x-component': 'Input', + }, + }, + ], + }, +]; + +const defaultValue = { + $or: [ + { + name: { + $ne: null, + }, + }, + { + 'tags.title': { + $eq: 'aaa', + }, + }, + ], +}; + const schema: any = { type: 'void', properties: { demo: { name: 'filter', type: 'object', - enum: [ - { - name: 'name', - title: 'Name', - operators: [ - { label: 'eq', value: '$eq' }, - { label: 'ne', value: '$ne' }, - ], - schema: { - type: 'string', - title: 'Name', - 'x-component': 'Input', - }, - }, - { - name: 'age', - title: 'Age', - operators: [ - { label: 'in', value: '$in' }, - { label: 'not', value: '$not' }, - ], - schema: { - type: 'string', - title: 'Age', - 'x-component': 'InputNumber', - }, - }, - { - name: 'tags', - title: 'Tags', - schema: { - title: 'Tags', - }, - children: [ - { - name: 'slug', - title: 'Slug', - operators: [ - { label: 'in', value: '$in' }, - { label: 'not', value: '$not' }, - ], - schema: { - title: 'Slug', - type: 'string', - 'x-component': 'Input', - }, - }, - { - name: 'title', - title: 'Title', - operators: [ - { label: 'eq', value: '$eq' }, - { label: 'ne', value: '$ne' }, - ], - schema: { - title: 'Title', - type: 'string', - 'x-component': 'Input', - }, - }, - ], - }, - ], - default: { - $or: [ - { - name: { - $ne: null, - }, - }, - { - 'tags.title': { - $eq: 'aaa', - }, - }, - ], - }, + enum: options, + default: defaultValue, 'x-component': 'Filter', 'x-component-props': {}, }, diff --git a/packages/core/client/src/schema-component/antd/filter/demos/demo3.tsx b/packages/core/client/src/schema-component/antd/filter/demos/demo3.tsx index e48b3ee7d1..9f046f8755 100644 --- a/packages/core/client/src/schema-component/antd/filter/demos/demo3.tsx +++ b/packages/core/client/src/schema-component/antd/filter/demos/demo3.tsx @@ -1,12 +1,11 @@ import { ISchema, useForm } from '@formily/react'; import { AntdSchemaComponentProvider, - SharedFilter, + Filter, Input, SchemaComponent, SchemaComponentProvider, - useActionContext, - useRequest, + useActionContext } from '@nocobase/client'; import React from 'react'; @@ -74,6 +73,21 @@ const dataSource = [ }, ]; +const defaultValue = { + $or: [ + { + name: { + $ne: 'aa', + }, + }, + { + 'tags.title': { + $eq: 'aaa', + }, + }, + ], +}; + const schema: ISchema = { type: 'object', properties: { @@ -99,31 +113,10 @@ const schema: ISchema = { properties: { filter: { type: 'object', - default: { - $or: [ - { - name: { - $ne: 'aa', - }, - }, - { - 'tags.title': { - $eq: 'aaa', - }, - }, - ], - }, + default: defaultValue, 'x-component': 'Filter', 'x-component-props': { - useDataSource(options) { - return useRequest( - () => - Promise.resolve({ - data: dataSource, - }), - options, - ); - }, + options: dataSource, }, }, footer: { diff --git a/packages/core/client/src/schema-component/antd/filter/demos/demo4.tsx b/packages/core/client/src/schema-component/antd/filter/demos/demo4.tsx index 5390925274..a9655f62ff 100644 --- a/packages/core/client/src/schema-component/antd/filter/demos/demo4.tsx +++ b/packages/core/client/src/schema-component/antd/filter/demos/demo4.tsx @@ -1,7 +1,7 @@ import { ISchema } from '@formily/react'; import { AntdSchemaComponentProvider, - SharedFilter, + Filter, Input, SchemaComponent, SchemaComponentProvider, @@ -78,12 +78,12 @@ const defaultValue = { $or: [ { name: { - $ne: '{{node1.field1}}', + $ne: 'aaa', }, }, { 'tags.title': { - $eq: 'aaa', + $eq: 'bbb', }, }, ], diff --git a/packages/core/client/src/schema-component/antd/filter/demos/demo5.tsx b/packages/core/client/src/schema-component/antd/filter/demos/demo5.tsx index 751292aff7..baa96a99c6 100644 --- a/packages/core/client/src/schema-component/antd/filter/demos/demo5.tsx +++ b/packages/core/client/src/schema-component/antd/filter/demos/demo5.tsx @@ -1,88 +1,94 @@ -import { AntdSchemaComponentProvider, FilterAction, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; +import { ISchema } from '@formily/json-schema'; +import { Filter, FilterAction, Input, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; import React from 'react'; -const schema: any = { +const options = [ + { + name: 'name', + title: 'Name', + operators: [ + { label: 'eq', value: '$eq' }, + { label: 'ne', value: '$ne' }, + ], + schema: { + type: 'string', + title: 'Name', + 'x-component': 'Input', + }, + }, + { + name: 'age', + title: 'Age', + operators: [ + { label: 'in', value: '$in' }, + { label: 'not', value: '$not' }, + ], + schema: { + type: 'string', + title: 'Age', + 'x-component': 'InputNumber', + }, + }, + { + name: 'tags', + title: 'Tags', + schema: { + title: 'Tags', + }, + children: [ + { + name: 'slug', + title: 'Slug', + operators: [ + { label: 'in', value: '$in' }, + { label: 'not', value: '$not' }, + ], + schema: { + title: 'Slug', + type: 'string', + 'x-component': 'Input', + }, + }, + { + name: 'title', + title: 'Title', + operators: [ + { label: 'eq', value: '$eq' }, + { label: 'ne', value: '$ne' }, + ], + schema: { + title: 'Title', + type: 'string', + 'x-component': 'Input', + }, + }, + ], + }, +]; + +const defaultValue = { + $or: [ + { + name: { + $ne: null, + }, + }, + { + 'tags.title': { + $eq: 'aaa', + }, + }, + ], +}; + +const schema: ISchema = { type: 'void', properties: { demo: { type: 'object', - enum: [ - { - name: 'name', - title: 'Name', - operators: [ - { label: 'eq', value: '$eq' }, - { label: 'ne', value: '$ne' }, - ], - schema: { - type: 'string', - title: 'Name', - 'x-component': 'Input', - }, - }, - { - name: 'age', - title: 'Age', - operators: [ - { label: 'in', value: '$in' }, - { label: 'not', value: '$not' }, - ], - schema: { - type: 'string', - title: 'Age', - 'x-component': 'InputNumber', - }, - }, - { - name: 'tags', - title: 'Tags', - schema: { - title: 'Tags', - }, - children: [ - { - name: 'slug', - title: 'Slug', - operators: [ - { label: 'in', value: '$in' }, - { label: 'not', value: '$not' }, - ], - schema: { - title: 'Slug', - type: 'string', - 'x-component': 'Input', - }, - }, - { - name: 'title', - title: 'Title', - operators: [ - { label: 'eq', value: '$eq' }, - { label: 'ne', value: '$ne' }, - ], - schema: { - title: 'Title', - type: 'string', - 'x-component': 'Input', - }, - }, - ], - }, - ], - default: { - $or: [ - { - name: { - $ne: null, - }, - }, - { - 'tags.title': { - $eq: 'aaa', - }, - }, - ], - }, + title: 'Filter', + enum: '{{ options }}', + default: defaultValue, 'x-component': 'FilterAction', 'x-component-props': {}, }, @@ -91,10 +97,8 @@ const schema: any = { export default () => { return ( - - - - + + ); }; diff --git a/packages/core/client/src/schema-component/antd/filter/demos/demo6.tsx b/packages/core/client/src/schema-component/antd/filter/demos/demo6.tsx index 7380e9f736..45d805d564 100644 --- a/packages/core/client/src/schema-component/antd/filter/demos/demo6.tsx +++ b/packages/core/client/src/schema-component/antd/filter/demos/demo6.tsx @@ -2,7 +2,7 @@ import { AntdSchemaComponentProvider, CollectionManagerProvider, CollectionProvider, - SharedFilter, + Filter, Input, SchemaComponent, SchemaComponentProvider, diff --git a/packages/core/client/src/schema-component/antd/filter/index.ts b/packages/core/client/src/schema-component/antd/filter/index.ts index cfc45fd766..0a0ba718f0 100644 --- a/packages/core/client/src/schema-component/antd/filter/index.ts +++ b/packages/core/client/src/schema-component/antd/filter/index.ts @@ -1,2 +1,4 @@ export * from './Filter'; +export * from './FilterAction'; export * from './useFilterActionProps'; + diff --git a/packages/core/client/src/schema-component/antd/filter/useValues.ts b/packages/core/client/src/schema-component/antd/filter/useValues.ts index 10b4d40dbb..3e133b9fcf 100644 --- a/packages/core/client/src/schema-component/antd/filter/useValues.ts +++ b/packages/core/client/src/schema-component/antd/filter/useValues.ts @@ -1,6 +1,6 @@ import { useField } from '@formily/react'; import { merge } from '@formily/shared'; -import flat from 'flat'; +import flat, { unflatten } from 'flat'; import cloneDeep from 'lodash/cloneDeep'; import get from 'lodash/get'; import { useContext, useEffect } from 'react'; @@ -31,7 +31,7 @@ export const useValues = () => { }; const value2data = () => { field.data = field.data || {}; - const values = flat(field.value || {}); + const values: object = flat(field.value || {}); const path = Object.keys(values).shift() || ''; if (!path || !options) { return; @@ -46,7 +46,7 @@ export const useValues = () => { field.data.operators = operators; field.data.operator = operator; field.data.schema = merge(option?.schema, operator?.schema); - field.data.value = get(field.value, `${fieldPath}.$${operatorValue}`); + field.data.value = get(unflatten(field.value), `${fieldPath}.$${operatorValue}`); }; useEffect(value2data, [field.path.entire]); return { diff --git a/packages/core/client/src/schema-component/antd/form-item/FormItem.tsx b/packages/core/client/src/schema-component/antd/form-item/FormItem.tsx index 3de16bb964..c4512664d4 100644 --- a/packages/core/client/src/schema-component/antd/form-item/FormItem.tsx +++ b/packages/core/client/src/schema-component/antd/form-item/FormItem.tsx @@ -2,14 +2,14 @@ import { css, cx } from '@emotion/css'; import { ArrayCollapse, ArrayItems, FormLayout, FormItem as Item } from '@formily/antd'; import { Field } from '@formily/core'; import { ISchema, Schema, observer, useField, useFieldSchema } from '@formily/react'; -import { uid } from '@formily/shared'; import { Select } from 'antd'; import _ from 'lodash'; import moment from 'moment'; -import React, { useContext, useEffect } from 'react'; +import React, { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { ACLCollectionFieldProvider } from '../../../acl/ACLProvider'; -import { BlockRequestContext, useFormBlockContext } from '../../../block-provider'; +import { useBlockRequestContext } from '../../../block-provider/BlockProvider'; +import { useFormBlockContext } from '../../../block-provider/FormBlockProvider'; import { Collection, CollectionFieldOptions, @@ -40,25 +40,12 @@ const defaultInputStyle = css` } `; -const divWrap = (schema: ISchema) => { - return { - type: 'void', - 'x-component': 'div', - 'x-component-props': { - className: 'nb-block-wrap', - }, - properties: { - [schema.name || uid()]: schema, - }, - }; -}; - export const FormItem: any = observer( (props: any) => { useEnsureOperatorsValid(); const field = useField(); - const ctx = useContext(BlockRequestContext); + const ctx = useBlockRequestContext(); const schema = useFieldSchema(); const variablesCtx = useVariablesCtx(); diff --git a/packages/core/client/src/schema-component/antd/form-item/__tests__/form-item.test.tsx b/packages/core/client/src/schema-component/antd/form-item/__tests__/form-item.test.tsx new file mode 100644 index 0000000000..8c82583398 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/form-item/__tests__/form-item.test.tsx @@ -0,0 +1,11 @@ +import React from 'react'; +import { render, screen } from 'testUtils'; +import App1 from '../demos/demo1'; + +describe('FormItem', () => { + it('should render correctly', () => { + render(); + + expect(screen.getByText('title')).toBeInTheDocument(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/form-item/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/form-item/demos/demo1.tsx new file mode 100644 index 0000000000..0504a3ad87 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/form-item/demos/demo1.tsx @@ -0,0 +1,22 @@ +import { FormItem, FormProvider, Input, SchemaComponent } from '@nocobase/client'; +import React from 'react'; + +const schema = { + type: 'object', + properties: { + input: { + type: 'string', + title: 'title', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + }, + }, +}; + +export default () => { + return ( + + + + ); +}; diff --git a/packages/core/client/src/schema-component/antd/form-item/index.md b/packages/core/client/src/schema-component/antd/form-item/index.md index 4de6b30194..769962517f 100644 --- a/packages/core/client/src/schema-component/antd/form-item/index.md +++ b/packages/core/client/src/schema-component/antd/form-item/index.md @@ -8,3 +8,7 @@ group: # FormItem 表单字段装饰器。除此之外,也继承了 BlockItem 的功能。 + +## Example + + diff --git a/packages/core/client/src/schema-component/antd/form-v2/__tests__/form-v2.test.tsx b/packages/core/client/src/schema-component/antd/form-v2/__tests__/form-v2.test.tsx new file mode 100644 index 0000000000..8ea60147b3 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/form-v2/__tests__/form-v2.test.tsx @@ -0,0 +1,52 @@ +import React from 'react'; +import { render, screen, sleep, userEvent } from 'testUtils'; +import App1 from '../demos/demo1'; +import App2 from '../demos/demo2'; +import App3 from '../demos/demo3'; + +describe('FormV2', () => { + it('basic', async () => { + render(); + + const input = document.querySelector('.ant-input') as HTMLInputElement; + const submit = screen.getByText('Submit'); + + expect(input).toBeInTheDocument(); + expect(screen.getByText('Nickname')).toBeInTheDocument(); + + await userEvent.type(input, '李四'); + await userEvent.click(submit); + + // notification 的内容 + expect(screen.getByText(/\{"nickname":"李四"\}/i)).toBeInTheDocument(); + }); + + it('initial values', async () => { + render(); + + await sleep(100); + + const nicknameInput = document.querySelector('.nickname .ant-input') as HTMLInputElement; + const passwordInput = document.querySelector('.password .ant-input') as HTMLInputElement; + const submit = screen.getByText('Submit'); + + expect(submit).toBeInTheDocument(); + expect(nicknameInput).toBeInTheDocument(); + expect(passwordInput).toBeInTheDocument(); + expect(nicknameInput).toHaveValue('张三'); + expect(passwordInput).toHaveValue('123456'); + expect(screen.getByText('Nickname')).toBeInTheDocument(); + expect(screen.getByText('Password')).toBeInTheDocument(); + }); + + it('read pretty', async () => { + render(); + + await sleep(100); + + expect(screen.getByText('Nickname')).toBeInTheDocument(); + expect(screen.getByText('Password')).toBeInTheDocument(); + expect(screen.getByText('张三')).toBeInTheDocument(); + expect(screen.getByText(/\*\*\*\*\*\*\*\*/i)).toBeInTheDocument(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/form-v2/demos/collections.ts b/packages/core/client/src/schema-component/antd/form-v2/demos/collections.ts index d19d73227c..6e8bc8f8cf 100644 --- a/packages/core/client/src/schema-component/antd/form-v2/demos/collections.ts +++ b/packages/core/client/src/schema-component/antd/form-v2/demos/collections.ts @@ -1,1321 +1,1319 @@ -export default { - data: [ - { - key: '17zb9wfq0vt', - name: 'product', - title: 's', - inherit: false, - fields: [], - createdBy: true, - updatedBy: true, - sortable: true, - }, - { - key: '1s4aq7jbxdh', - name: 'roles', - title: '{{t("Roles")}}', - inherit: false, - fields: [ - { - key: 'gs6190e27z5', - name: 'name', - type: 'uid', - interface: 'input', - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'vy6i30jm9jm', - uiSchema: { - 'x-uid': 'vy6i30jm9jm', - name: 'vlldvknkn3t', - type: 'string', - title: '{{t("Role UID")}}', - 'x-component': 'Input', - }, - prefix: 'r_', - primaryKey: true, - }, - { - key: 'w0hvovoxnjh', - name: 'title', +export default [ + { + key: '17zb9wfq0vt', + name: 'product', + title: 's', + inherit: false, + fields: [], + createdBy: true, + updatedBy: true, + sortable: true, + }, + { + key: '1s4aq7jbxdh', + name: 'roles', + title: '{{t("Roles")}}', + inherit: false, + fields: [ + { + key: 'gs6190e27z5', + name: 'name', + type: 'uid', + interface: 'input', + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'vy6i30jm9jm', + uiSchema: { + 'x-uid': 'vy6i30jm9jm', + name: 'vlldvknkn3t', type: 'string', - interface: 'input', - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'pyq24tp0zkj', - uiSchema: { - 'x-uid': 'pyq24tp0zkj', - name: 'wtku9z07h69', - type: 'string', - title: '{{t("Role name")}}', - 'x-component': 'Input', - }, - unique: true, + title: '{{t("Role UID")}}', + 'x-component': 'Input', }, - { - key: 'lxysmomsdhy', - name: 'description', + prefix: 'r_', + primaryKey: true, + }, + { + key: 'w0hvovoxnjh', + name: 'title', + type: 'string', + interface: 'input', + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'pyq24tp0zkj', + uiSchema: { + 'x-uid': 'pyq24tp0zkj', + name: 'wtku9z07h69', type: 'string', - interface: null, - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, + title: '{{t("Role name")}}', + 'x-component': 'Input', }, - { - key: 'ynyhe4kgxku', - name: 'strategy', - type: 'json', - interface: null, - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - }, - { - key: 'qr9949ps9dv', - name: 'default', - type: 'boolean', - interface: null, - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - defaultValue: false, - }, - { - key: '11ts4nwrm8c', - name: 'allowConfigure', - type: 'boolean', - interface: null, - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - }, - { - key: 'nxj4s7xev9g', - name: 'allowNewMenu', - type: 'boolean', - interface: null, - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - }, - { - key: 'ibwisd53xeg', - name: 'menuUiSchemas', - type: 'belongsToMany', - interface: null, - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - target: 'uiSchemas', - targetKey: 'x-uid', - foreignKey: 'roleName', - sourceKey: 'name', - otherKey: 'uiSchemaXUid', - through: 'rolesUischemas', - }, - { - key: '0vt1uoy8f47', - name: 'resources', - type: 'hasMany', - interface: null, - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - target: 'rolesResources', - sourceKey: 'name', - targetKey: 'id', - foreignKey: 'roleName', - }, - ], - autoGenId: false, - model: 'RoleModel', - filterTargetKey: 'name', - }, - { - key: 'nhng5sgypw8', - name: 't_j6omof6tza8', - title: '任务', - inherit: false, - fields: [ - { - key: 'aabs1ya9aux', - name: 'f_g8j5jvalqh0', + unique: true, + }, + { + key: 'lxysmomsdhy', + name: 'description', + type: 'string', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + }, + { + key: 'ynyhe4kgxku', + name: 'strategy', + type: 'json', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + }, + { + key: 'qr9949ps9dv', + name: 'default', + type: 'boolean', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + defaultValue: false, + }, + { + key: '11ts4nwrm8c', + name: 'allowConfigure', + type: 'boolean', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + }, + { + key: 'nxj4s7xev9g', + name: 'allowNewMenu', + type: 'boolean', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + }, + { + key: 'ibwisd53xeg', + name: 'menuUiSchemas', + type: 'belongsToMany', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + target: 'uiSchemas', + targetKey: 'x-uid', + foreignKey: 'roleName', + sourceKey: 'name', + otherKey: 'uiSchemaXUid', + through: 'rolesUischemas', + }, + { + key: '0vt1uoy8f47', + name: 'resources', + type: 'hasMany', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + target: 'rolesResources', + sourceKey: 'name', + targetKey: 'id', + foreignKey: 'roleName', + }, + ], + autoGenId: false, + model: 'RoleModel', + filterTargetKey: 'name', + }, + { + key: 'nhng5sgypw8', + name: 't_j6omof6tza8', + title: '任务', + inherit: false, + fields: [ + { + key: 'aabs1ya9aux', + name: 'f_g8j5jvalqh0', + type: 'string', + interface: 'input', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'tzb6h0tsbis', + uiSchema: { + 'x-uid': 'tzb6h0tsbis', + name: 'y94c05v2hp2', type: 'string', - interface: 'input', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'tzb6h0tsbis', - uiSchema: { - 'x-uid': 'tzb6h0tsbis', - name: 'y94c05v2hp2', - type: 'string', - 'x-component': 'Input', - title: '名称', - enum: [], - }, + 'x-component': 'Input', + title: '名称', + enum: [], }, - { - key: 'kidn54kisne', - name: 'f_tegyd222bcc', - type: 'text', - interface: 'textarea', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'p4uucjm3rrx', - uiSchema: { - 'x-uid': 'p4uucjm3rrx', - name: 'ri9ulk87owm', - type: 'string', - 'x-component': 'Input.TextArea', - title: '描述', - enum: [], - }, - }, - { - key: 'kwdiruosgsb', - name: 'f_u007sq2jg93', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: 's5w3l6pl1hn', - uiSchemaUid: 'iea79k3kmao', - uiSchema: { - 'x-uid': 'iea79k3kmao', - name: 'njked4wch3i', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, - title: '负责人', - enum: [], - }, - target: 'users', - targetKey: 'id', - sourceKey: 'id', - through: 't_7476m1wwsfe', - foreignKey: 'f_9zwkbo7dd18', - otherKey: 'f_q84aphtx7eb', - }, - { - key: 'w7civak6gp3', - name: 'f_hpmvdltzs6m', + }, + { + key: 'kidn54kisne', + name: 'f_tegyd222bcc', + type: 'text', + interface: 'textarea', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'p4uucjm3rrx', + uiSchema: { + 'x-uid': 'p4uucjm3rrx', + name: 'ri9ulk87owm', type: 'string', - interface: 'radioGroup', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: '481uv9zj072', - uiSchema: { - 'x-uid': '481uv9zj072', - name: '8fyelcfuzfu', - enum: [ - { value: '67snt3e6yld', label: '未开始', color: 'default' }, - { value: 'ht963n365al', label: '进行中', color: 'green' }, - { value: '2s2s8wzcnm0', label: '测试中', color: 'volcano' }, - { value: 'irepvdzp1ac', label: '已完成', color: 'blue' }, - ], - type: 'string', - 'x-component': 'Radio.Group', - title: '状态', - }, + 'x-component': 'Input.TextArea', + title: '描述', + enum: [], }, - { - key: '9x87w5z0ea6', - name: 'f_jj9cyhron1d', - type: 'hasMany', - interface: 'subTable', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'pndvx008mmn', - uiSchema: { - 'x-uid': 'pndvx008mmn', - name: 'l8xqzpkxj3p', - type: 'array', - 'x-component': 'Table', - 'x-component-props': {}, - enum: [], - title: '子任务', - }, - targetKey: 'id', - sourceKey: 'id', - foreignKey: 'f_yzivojrp6l8', - target: 't_ab12qiwruwk', + }, + { + key: 'kwdiruosgsb', + name: 'f_u007sq2jg93', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: 's5w3l6pl1hn', + uiSchemaUid: 'iea79k3kmao', + uiSchema: { + 'x-uid': 'iea79k3kmao', + name: 'njked4wch3i', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人', + enum: [], }, - { - key: '3f4y1iq16ux', - name: 'f_ooar0pto2ko', - type: 'belongsToMany', - interface: 'attachment', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: '5xf7izxjny5', - uiSchema: { - 'x-uid': '5xf7izxjny5', - name: '9az9003ijcm', - 'x-component-props': { multiple: true, action: 'attachments:create' }, - type: 'array', - 'x-component': 'Upload.Attachment', - title: '附件', - enum: [], - }, - target: 'attachments', - targetKey: 'id', - sourceKey: 'id', - through: 't_5a7wh2qhk4l', - foreignKey: 'f_tqfsxclrexu', - otherKey: 'f_j2krlyq6oka', - }, - { - key: '4um5urxskg0', - name: 'f_f7txg1oc3nt', - type: 'date', - interface: 'createdAt', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'jjax6r7c84m', - uiSchema: { - 'x-uid': 'jjax6r7c84m', - name: 'clidfmw96u3', - 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true, timeFormat: 'HH:mm:ss' }, - type: 'datetime', - title: '创建时间', - 'x-component': 'DatePicker', - 'x-read-pretty': true, - enum: [], - }, - field: 'createdAt', - }, - { - key: 'dnwqg2s3oph', - name: 'f_2dpc76bszit', - type: 'belongsTo', - interface: 'createdBy', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'po3y2pc112z', - uiSchema: { - 'x-uid': 'po3y2pc112z', - name: 'ke2rte2zikm', - type: 'object', - title: '创建人', - 'x-component': 'RecordPicker', - 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, - 'x-read-pretty': true, - enum: [], - }, - target: 'users', - foreignKey: 'createdById', - targetKey: 'id', - }, - { - key: '1sayjktagk3', - name: 'f_z27302tl2bf', + target: 'users', + targetKey: 'id', + sourceKey: 'id', + through: 't_7476m1wwsfe', + foreignKey: 'f_9zwkbo7dd18', + otherKey: 'f_q84aphtx7eb', + }, + { + key: 'w7civak6gp3', + name: 'f_hpmvdltzs6m', + type: 'string', + interface: 'radioGroup', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: '481uv9zj072', + uiSchema: { + 'x-uid': '481uv9zj072', + name: '8fyelcfuzfu', + enum: [ + { value: '67snt3e6yld', label: '未开始', color: 'default' }, + { value: 'ht963n365al', label: '进行中', color: 'green' }, + { value: '2s2s8wzcnm0', label: '测试中', color: 'volcano' }, + { value: 'irepvdzp1ac', label: '已完成', color: 'blue' }, + ], type: 'string', - interface: 'select', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: '0a28rxnov8o', - uiSchema: { - 'x-uid': '0a28rxnov8o', - name: '2vg44ojdq4j', - enum: [ - { value: 'mkvgt7ndsqd', label: '缺陷', color: 'volcano' }, - { value: '9yyv2tawmry', label: '交互', color: 'green' }, - { value: 'vx4bhmtsuus', label: '需求', color: 'cyan' }, - ], - type: 'string', - 'x-component': 'Select', - title: '类型', - }, + 'x-component': 'Radio.Group', + title: '状态', }, - { - key: 'zhvtzwta7bz', - name: 'f_yc8jbfiqfvh', - type: 'string', - interface: 'radioGroup', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'jijqs397op9', - uiSchema: { - 'x-uid': 'jijqs397op9', - name: '99v9hnujiuh', - enum: [ - { value: 's7hocw6twfk', label: '高', color: 'red' }, - { value: 'v25527dxseu', label: '中', color: 'blue' }, - { value: 'c4hobfb5k07', label: '低', color: 'lime' }, - ], - type: 'string', - 'x-component': 'Radio.Group', - title: '优先级', - }, - }, - { - key: 'nobsmkp6ypg', - name: 'f_ksgzy9vmgce', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: 'z70jtfabrm7', - uiSchemaUid: '3gbviwfd0cv', - uiSchema: { - 'x-uid': '3gbviwfd0cv', - name: '6sabm3win42', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, - title: '迭代', - enum: [], - }, - target: 't_94rsj6kbzvn', - targetKey: 'id', - sourceKey: 'id', - through: 't_ewdf2dsjlu3', - foreignKey: 'f_72tnpdz6kfg', - otherKey: 'f_8do8o1wsavk', - }, - { - key: 'rwtqeecnbst', - name: 'f_zek99qhv0vc', - type: 'date', - interface: 'updatedAt', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'df0kmwka9ra', - uiSchema: { - 'x-uid': 'df0kmwka9ra', - name: 'e3hmz8upyle', - 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true, timeFormat: 'HH:mm:ss' }, - type: 'datetime', - title: '更新时间', - 'x-component': 'DatePicker', - 'x-read-pretty': true, - }, - field: 'updatedAt', - }, - { - key: 'tm66hbii6zz', - name: 'f_cht6rsiiiko', - type: 'string', - interface: 'select', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'tkfjlde4ppl', - uiSchema: { - 'x-uid': 'tkfjlde4ppl', - name: 'p0rccyurzle', - enum: [ - { value: 'uduxfqpr5t2', label: '菜单' }, - { value: 'dnphxkwat35', label: '权限' }, - { value: '5cso9lpizog', label: '数据表' }, - { value: 'wlg329nsu3a', label: '字段' }, - { value: 'm8z7r06vk9z', label: '表格' }, - { value: 'ftfccbha25a', label: '表单' }, - { value: 'o33ljfkje2h', label: '详情' }, - { value: 'ym9wwk3aqbu', label: '日历' }, - { value: 'wge57qtiz14', label: '看板' }, - { value: 'm4xoc8rbafg', label: '操作' }, - { value: 'r6l2wg1snxc', label: '配置' }, - { value: 'j1cv1vf16fm', label: '附件' }, - { value: 'l464jdsy7vr', label: '容器' }, - ], - type: 'string', - 'x-component': 'Select', - title: '分类', - }, - }, - { - key: 'c9hzonl1hzq', - name: 'f_47f2d9wgofm', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: '7mufig9muag', - uiSchemaUid: 'rbl27ngs563', - uiSchema: { - 'x-uid': 'rbl27ngs563', - name: 'xrvwttiv064', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, - title: '相关任务', - }, - target: 't_j6omof6tza8', - targetKey: 'id', - sourceKey: 'id', - through: 't_qhgbwomd2t7', - foreignKey: 'f_jes256zqwr1', - otherKey: 'f_gtgjj059mye', - }, - { - key: '7mufig9muag', - name: 'f_qmlomqm7lvb', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: 'c9hzonl1hzq', - uiSchemaUid: 'vgy9cgq9v6b', - uiSchema: { - 'x-uid': 'vgy9cgq9v6b', - name: 'sf99arn65jj', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, - title: '任务', - }, - target: 't_j6omof6tza8', - through: 't_qhgbwomd2t7', - sourceKey: 'id', - foreignKey: 'f_gtgjj059mye', - targetKey: 'id', - otherKey: 'f_jes256zqwr1', - }, - { - key: 'hv3kx2z8edn', - name: 'f_hpmvdltzs6m_sort', - type: 'sort', - interface: null, - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - hidden: true, - scopeKey: 'f_hpmvdltzs6m', - }, - { - key: 'q6wy6jcpdfr', - name: 'f_a4z4h45vi5b', - type: 'string', - interface: 'select', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'lx4k023vm7k', - uiSchema: { - 'x-uid': 'lx4k023vm7k', - name: 'e9u95lm0c2q', - enum: [ - { value: 'hgobsqbfnd4', label: 'SchemaInitializer', color: 'red' }, - { value: 't8prrpfk7kl', label: 'SchemaSettings', color: 'magenta' }, - { value: 'r3fxlrunwd8', label: 'SchemaComponent', color: 'lime' }, - { value: 'bidogljo0l3', label: 'CollectionField', color: 'blue' }, - { value: 'ygy1zfdr1z6', label: 'ACL', color: 'purple' }, - { value: 'ef9qf0wzpt5', label: 'DndContext', color: 'cyan' }, - { value: '45sfwd7ie30', label: 'useRequest', color: 'volcano' }, - ], - type: 'string', - 'x-component': 'Select', - title: '开发分类', - }, - }, - { - key: '936iis76zdx', - name: 'f_a4z4h45vi5b_sort', - type: 'sort', - interface: null, - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - hidden: true, - scopeKey: 'f_a4z4h45vi5b', - }, - { - key: 'zre21o0a5a9', - name: 'f_d93g4r08krl', - type: 'string', - interface: 'input', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: '96geljdh9j6', - uiSchema: { - 'x-uid': '96geljdh9j6', - name: 'zplxa37mb0y', - type: 'string', - 'x-component': 'Input', - title: '评估', - enum: [], - }, - }, - { - key: 'jasdf0kcqbs', - name: 'f_1ckuegfab9s', - type: 'text', - interface: 'textarea', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: '61h9pserdqr', - uiSchema: { - 'x-uid': '61h9pserdqr', - name: 'uepfpdv289y', - type: 'string', - 'x-component': 'Input.TextArea', - title: '评估备注', - }, - }, - ], - createdBy: true, - updatedBy: true, - sortable: true, - }, - { - key: 'nlxapox70a3', - name: 't_ab12qiwruwk', - title: null, - inherit: true, - fields: [ - { - key: 'q9xx9ixxxyb', - name: 'f_m7ibo1vrvnm', - type: 'string', - interface: 'input', - collectionName: 't_ab12qiwruwk', - parentKey: '9x87w5z0ea6', - reverseKey: null, - uiSchemaUid: 'ucn6wm03zrq', - uiSchema: { - 'x-uid': 'ucn6wm03zrq', - name: 'k07s9nhhj6c', - type: 'string', - 'x-component': 'Input', - title: '名称', - }, - }, - { - key: 'y91qig4eyzm', - name: 'f_kukaw9kddyj', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 't_ab12qiwruwk', - parentKey: '9x87w5z0ea6', - reverseKey: 'tvwwt24vukv', - uiSchemaUid: '7c9ch1fknbr', - uiSchema: { - 'x-uid': '7c9ch1fknbr', - name: 'gv1k2nhucte', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, - title: '负责人', - }, - target: 'users', - targetKey: 'id', - sourceKey: 'id', - through: 't_gsv43y8ebt8', - foreignKey: 'f_hbbvlsbe9gs', - otherKey: 'f_bhj1xy7uyc8', - }, - { - key: 'gg0xx1vln6w', - name: 'f_4mpiovytw4d', - type: 'text', - interface: 'textarea', - collectionName: 't_ab12qiwruwk', - parentKey: '9x87w5z0ea6', - reverseKey: null, - uiSchemaUid: '3xgmf0ee5fn', - uiSchema: { - 'x-uid': '3xgmf0ee5fn', - name: '28sf67whpfs', - type: 'string', - 'x-component': 'Input.TextArea', - title: '描述', - }, - }, - { - key: 'zpz6o74z9u4', - name: 'f_lxsum89wkzd', - type: 'belongsToMany', - interface: 'attachment', - collectionName: 't_ab12qiwruwk', - parentKey: '9x87w5z0ea6', - reverseKey: null, - uiSchemaUid: 'wosew16td91', - uiSchema: { - 'x-uid': 'wosew16td91', - name: 'p82ihvtkxtf', - 'x-component-props': { multiple: true, action: 'attachments:create' }, - type: 'array', - 'x-component': 'Upload.Attachment', - title: '附件', - }, - target: 'attachments', - targetKey: 'id', - sourceKey: 'id', - through: 't_cn6cweinuw7', - foreignKey: 'f_r824sp05l43', - otherKey: 'f_8k3e4i0d04y', - }, - ], - createdBy: true, - updatedBy: true, - sortable: true, - }, - { - key: 'oftbzt8nm2o', - name: 'users', - title: '{{t("Users")}}', - inherit: false, - fields: [ - { - key: 'khov1egnsur', - name: 'nickname', - type: 'string', - interface: 'input', - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: '3ohfk46bf7o', - uiSchema: { - 'x-uid': '3ohfk46bf7o', - name: 'prmmf3kg8rx', - type: 'string', - title: '{{t("Nickname")}}', - 'x-component': 'Input', - }, - }, - { - key: 'u6cvmn45o6a', - name: 'email', - type: 'string', - interface: 'email', - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: '69ywpwux1zh', - uiSchema: { - 'x-uid': '69ywpwux1zh', - name: 'u8djuprwttj', - type: 'string', - title: '{{t("Email")}}', - 'x-component': 'Input', - require: true, - }, - unique: true, - }, - { - key: 'jwaky9982f2', - name: 'password', - type: 'password', - interface: 'password', - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'qs374baqkh0', - uiSchema: { - 'x-uid': 'qs374baqkh0', - name: 'tf5dolxh2i4', - type: 'string', - title: '{{t("Password")}}', - 'x-component': 'Password', - }, - hidden: true, - }, - { - key: '4g5nics20go', - name: 'roles', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'lpkacakd4my', - uiSchema: { - 'x-uid': 'lpkacakd4my', - name: '3oylvillmwu', - type: 'array', - title: '{{t("Roles")}}', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: true, fieldNames: { label: 'title', value: 'name' } }, - }, - target: 'roles', - foreignKey: 'userId', - otherKey: 'roleName', - sourceKey: 'id', - targetKey: 'name', - through: 'rolesUsers', - }, - { - key: 'cqqhyq32tvf', - name: 'appLang', - type: 'string', - interface: null, - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - }, - { - key: 't7t97s1rwid', - name: 'token', - type: 'string', - interface: null, - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - unique: true, - hidden: true, - }, - { - key: '5myliungho1', - name: 'resetToken', - type: 'string', - interface: null, - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - unique: true, - hidden: true, - }, - { - key: 'q2eg83quxls', - name: 'sort', - type: 'sort', - interface: null, - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - hidden: true, - }, - { - key: 's5w3l6pl1hn', - name: 'f_xd4v2uljqcu', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 'users', - parentKey: null, - reverseKey: 'kwdiruosgsb', - uiSchemaUid: 'zv4gvihowwm', - uiSchema: { - 'x-uid': 'zv4gvihowwm', - name: 'mjjpnphkkhf', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, - title: '负责人', - }, - target: 't_j6omof6tza8', - through: 't_7476m1wwsfe', - sourceKey: 'id', - foreignKey: 'f_q84aphtx7eb', - targetKey: 'id', - otherKey: 'f_9zwkbo7dd18', - }, - { - key: 'tvwwt24vukv', - name: 'f_qpsqy5rtc8t', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 'users', - parentKey: null, - reverseKey: 'y91qig4eyzm', - uiSchemaUid: '5ksz03zw47c', - uiSchema: { - 'x-uid': '5ksz03zw47c', - name: '8ukjiawzduz', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, - title: '负责人', - }, - target: 't_ab12qiwruwk', - through: 't_gsv43y8ebt8', - sourceKey: 'id', - foreignKey: 'f_bhj1xy7uyc8', - targetKey: 'id', - otherKey: 'f_hbbvlsbe9gs', - }, - ], - sortable: 'sort', - }, - { - key: 'tyztw0ulriv', - name: 't_94rsj6kbzvn', - title: '迭代', - inherit: false, - fields: [ - { - key: 'nq4mp00jwip', - name: 'f_zio9ewkxss7', - type: 'string', - interface: 'input', - collectionName: 't_94rsj6kbzvn', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'q7vois7ptlt', - uiSchema: { - 'x-uid': 'q7vois7ptlt', - name: 'o9ue1s4tu8k', - type: 'string', - 'x-component': 'Input', - title: '名称', - enum: [], - }, - }, - { - key: 'ec2833af7n1', - name: 'f_ojboh2wxpju', - type: 'text', - interface: 'textarea', - collectionName: 't_94rsj6kbzvn', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'pco1f8sq2jq', - uiSchema: { - 'x-uid': 'pco1f8sq2jq', - name: 'lb2hdydextn', - type: 'string', - 'x-component': 'Input.TextArea', - title: '描述', - enum: [], - }, - }, - { - key: '82uqmdjr3v4', - name: 'f_nunmzapigvk', - type: 'date', - interface: 'datetime', - collectionName: 't_94rsj6kbzvn', - parentKey: null, - reverseKey: null, - uiSchemaUid: '2gawk8arctt', - uiSchema: { - 'x-uid': '2gawk8arctt', - name: 'j9j7c2wyev2', - 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: false }, - type: 'datetime', - 'x-component': 'DatePicker', - title: '开始日期', - enum: [], - }, - }, - { - key: 'mdx2eqz9ei8', - name: 'f_rberbnphu9u', - type: 'date', - interface: 'datetime', - collectionName: 't_94rsj6kbzvn', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'pj0znpff63y', - uiSchema: { - 'x-uid': 'pj0znpff63y', - name: 'c5h7agr2qy4', - 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: false }, - type: 'datetime', - 'x-component': 'DatePicker', - title: '结束日期', - enum: [], - }, - }, - { - key: 'z70jtfabrm7', - name: 'f_rabhmdetc3p', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 't_94rsj6kbzvn', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'aun2xsfua8d', - uiSchema: { - 'x-uid': 'aun2xsfua8d', - name: 'i508c1outz2', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, - title: '任务', - enum: [], - }, - target: 't_j6omof6tza8', - through: 't_ewdf2dsjlu3', - sourceKey: 'id', - foreignKey: 'f_8do8o1wsavk', - targetKey: 'id', - otherKey: 'f_72tnpdz6kfg', - }, - ], - createdBy: true, - updatedBy: true, - sortable: true, - }, - { - key: 'vv8umfa9592', - name: 'test_sheet', - title: '测试表', - inherit: false, - fields: [ - { - key: 'q1xye1ooeol', - name: 'f_7mh6k6re0ey', - type: 'string', - interface: 'phone', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 't9ddc5n5pv8', - uiSchema: { - 'x-uid': 't9ddc5n5pv8', - name: 'd3hwsg020u8', - type: 'string', - 'x-component': 'Input', - 'x-validator': 'phone', - title: '手机', - }, - }, - { - key: '25icwn35oin', - name: 'f_turkjlzi52z', - type: 'string', - interface: 'email', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: '3bkgd97f63v', - uiSchema: { - 'x-uid': '3bkgd97f63v', - name: 'zkvhu5cm4no', - type: 'string', - 'x-component': 'Input', - 'x-validator': 'email', - title: '邮箱', - }, - }, - { - key: '3cqe0mpcrmg', - name: 'f_c14whhblhtd', - type: 'float', - interface: 'number', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: '4bajzziz060', - uiSchema: { - 'x-uid': '4bajzziz060', - name: '366t9rvl34b', - 'x-component-props': { step: '0.01', stringMode: true }, - type: 'number', - 'x-component': 'InputNumber', - title: '数字', - }, - }, - { - key: 'y39vi1z69pw', - name: 'f_z1b674d907e', - type: 'float', - interface: 'percent', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'vbnoib14uzl', - uiSchema: { - 'x-uid': 'vbnoib14uzl', - name: 'rumohzj4lh6', - 'x-component-props': { step: '0.1', stringMode: true, addonAfter: '%' }, - type: 'string', - 'x-component': 'InputNumber', - title: '百分比', - }, - }, - { - key: 'eouuwoag6ka', - name: 'f_4tzp4nhmvt2', - type: 'string', - interface: 'icon', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'qmmw3zc8l60', - uiSchema: { - 'x-uid': 'qmmw3zc8l60', - name: 'aivg5c51gc9', - type: 'string', - 'x-component': 'IconPicker', - title: '图标', - }, - }, - { - key: 'qurfmfe2hfi', - name: 'f_z0s4m3hgadd', - type: 'password', - interface: 'password', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'tkp46kn682m', - uiSchema: { - 'x-uid': 'tkp46kn682m', - name: '7q7yeobot0j', - type: 'string', - 'x-component': 'Password', - title: '密码', - }, - }, - { - key: 'ka4k5tfh3k5', - name: 'f_q5qnozezx9s', - type: 'boolean', - interface: 'checkbox', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'wgyf4ozsvdi', - uiSchema: { - 'x-uid': 'wgyf4ozsvdi', - name: 'x6agce8s18w', - type: 'boolean', - 'x-component': 'Checkbox', - title: '勾选', - }, - }, - { - key: '3dhczyw3ye2', - name: 'f_jbzwvldpyaa', + }, + { + key: '9x87w5z0ea6', + name: 'f_jj9cyhron1d', + type: 'hasMany', + interface: 'subTable', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'pndvx008mmn', + uiSchema: { + 'x-uid': 'pndvx008mmn', + name: 'l8xqzpkxj3p', type: 'array', - interface: 'multipleSelect', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'hlmfjs2pu9t', - uiSchema: { - 'x-uid': 'hlmfjs2pu9t', - name: 'ao52nx5pune', - enum: [ - { value: '6mbqdwuzfca', label: '选项1', color: 'red' }, - { value: '9zi6s2fbj0q', label: '选项2', color: 'geekblue' }, - ], - type: 'array', - 'x-component': 'Select', - 'x-component-props': { mode: 'multiple' }, - title: '多选', - }, - defaultValue: [], + 'x-component': 'Table', + 'x-component-props': {}, + enum: [], + title: '子任务', }, - { - key: 'erdrp1gi587', - name: 'f_04krym08wxq', + targetKey: 'id', + sourceKey: 'id', + foreignKey: 'f_yzivojrp6l8', + target: 't_ab12qiwruwk', + }, + { + key: '3f4y1iq16ux', + name: 'f_ooar0pto2ko', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: '5xf7izxjny5', + uiSchema: { + 'x-uid': '5xf7izxjny5', + name: '9az9003ijcm', + 'x-component-props': { multiple: true, action: 'attachments:create' }, type: 'array', - interface: 'checkboxGroup', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: '6has8wyzohq', - uiSchema: { - 'x-uid': '6has8wyzohq', - name: 'fvwsjt58xx4', - enum: [ - { value: '4lsgdvfl7xq', label: '复选2', color: 'cyan' }, - { value: 'qzuki8bmilg', label: '复选1', color: 'purple' }, - ], - type: 'string', - 'x-component': 'Checkbox.Group', - title: '复选', - }, - defaultValue: [], + 'x-component': 'Upload.Attachment', + title: '附件', + enum: [], }, - { - key: 'rykbub69xu7', - name: 'f_xclbl3htmxs', - type: 'belongsToMany', - interface: 'chinaRegion', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'yml5yqzgvn8', - uiSchema: { - 'x-uid': 'yml5yqzgvn8', - name: '2ye7y09agup', - 'x-component-props': { - maxLevel: 5, - useDataSource: '{{ useChinaRegionDataSource }}', - useLoadData: '{{ useChinaRegionLoadData }}', - changeOnSelectLast: true, - labelInValue: true, - fieldNames: { label: 'name', value: 'code', children: 'children' }, - }, - type: 'array', - 'x-component': 'Cascader', - title: '中国地区', - }, - target: 'chinaRegions', - targetKey: 'code', - sortBy: 'level', - sourceKey: 'id', - through: 't_o9ry49u6xez', - foreignKey: 'f_44r8nsvdvz7', - otherKey: 'f_l0tzoymin3i', + target: 'attachments', + targetKey: 'id', + sourceKey: 'id', + through: 't_5a7wh2qhk4l', + foreignKey: 'f_tqfsxclrexu', + otherKey: 'f_j2krlyq6oka', + }, + { + key: '4um5urxskg0', + name: 'f_f7txg1oc3nt', + type: 'date', + interface: 'createdAt', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'jjax6r7c84m', + uiSchema: { + 'x-uid': 'jjax6r7c84m', + name: 'clidfmw96u3', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true, timeFormat: 'HH:mm:ss' }, + type: 'datetime', + title: '创建时间', + 'x-component': 'DatePicker', + 'x-read-pretty': true, + enum: [], }, - { - key: 'acm789iz922', - name: 'f_v4cgx7l5hwm', - type: 'text', - interface: 'markdown', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: '8a2erdhwcvb', - uiSchema: { - 'x-uid': '8a2erdhwcvb', - name: 'rqeiz26vuns', - type: 'string', - 'x-component': 'Markdown', - title: 'Markdown', - }, + field: 'createdAt', + }, + { + key: 'dnwqg2s3oph', + name: 'f_2dpc76bszit', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'po3y2pc112z', + uiSchema: { + 'x-uid': 'po3y2pc112z', + name: 'ke2rte2zikm', + type: 'object', + title: '创建人', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + enum: [], }, - { - key: 'zmip3swglzv', - name: 'f_ztaop411cdw', - type: 'time', - interface: 'time', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'r6s6rrjzfml', - uiSchema: { - 'x-uid': 'r6s6rrjzfml', - name: 'ct893ay5apv', - 'x-component-props': { format: 'HH:mm:ss' }, - type: 'string', - 'x-component': 'TimePicker', - title: '时间', - }, + target: 'users', + foreignKey: 'createdById', + targetKey: 'id', + }, + { + key: '1sayjktagk3', + name: 'f_z27302tl2bf', + type: 'string', + interface: 'select', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: '0a28rxnov8o', + uiSchema: { + 'x-uid': '0a28rxnov8o', + name: '2vg44ojdq4j', + enum: [ + { value: 'mkvgt7ndsqd', label: '缺陷', color: 'volcano' }, + { value: '9yyv2tawmry', label: '交互', color: 'green' }, + { value: 'vx4bhmtsuus', label: '需求', color: 'cyan' }, + ], + type: 'string', + 'x-component': 'Select', + title: '类型', }, - { - key: 'nx1p69b6g96', - name: 'f_mf8ccm0pjmh', - type: 'date', - interface: 'datetime', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: '08p9oztyjf2', - uiSchema: { - 'x-uid': '08p9oztyjf2', - name: 'bkdnndmfpeo', - 'x-component-props': { dateFormat: 'DD/MM/YYYY', showTime: true, timeFormat: 'HH:mm:ss' }, - type: 'datetime', - 'x-component': 'DatePicker', - title: '日期', - enum: [], - }, + }, + { + key: 'zhvtzwta7bz', + name: 'f_yc8jbfiqfvh', + type: 'string', + interface: 'radioGroup', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'jijqs397op9', + uiSchema: { + 'x-uid': 'jijqs397op9', + name: '99v9hnujiuh', + enum: [ + { value: 's7hocw6twfk', label: '高', color: 'red' }, + { value: 'v25527dxseu', label: '中', color: 'blue' }, + { value: 'c4hobfb5k07', label: '低', color: 'lime' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '优先级', }, - { - key: 'ge57kma4gue', - name: 'f_dqq0xjkdqbo', - type: 'belongsTo', - interface: 'createdBy', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'zzmst1r01gc', - uiSchema: { - 'x-uid': 'zzmst1r01gc', - name: 'def1ngennlx', - type: 'object', - title: '创建人', - 'x-component': 'RecordPicker', - 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, - 'x-read-pretty': true, - }, - target: 'users', - foreignKey: 'createdById', - targetKey: 'id', + }, + { + key: 'nobsmkp6ypg', + name: 'f_ksgzy9vmgce', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: 'z70jtfabrm7', + uiSchemaUid: '3gbviwfd0cv', + uiSchema: { + 'x-uid': '3gbviwfd0cv', + name: '6sabm3win42', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '迭代', + enum: [], }, - { - key: 'yqye22n1f1c', - name: 'f_7ukoar9jevs', - type: 'date', - interface: 'createdAt', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'lgnqb28lb91', - uiSchema: { - 'x-uid': 'lgnqb28lb91', - name: 'jdjz5cngm3j', - 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true, timeFormat: 'HH:mm:ss' }, - type: 'datetime', - title: '创建日期', - 'x-component': 'DatePicker', - 'x-read-pretty': true, - }, - field: 'createdAt', + target: 't_94rsj6kbzvn', + targetKey: 'id', + sourceKey: 'id', + through: 't_ewdf2dsjlu3', + foreignKey: 'f_72tnpdz6kfg', + otherKey: 'f_8do8o1wsavk', + }, + { + key: 'rwtqeecnbst', + name: 'f_zek99qhv0vc', + type: 'date', + interface: 'updatedAt', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'df0kmwka9ra', + uiSchema: { + 'x-uid': 'df0kmwka9ra', + name: 'e3hmz8upyle', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true, timeFormat: 'HH:mm:ss' }, + type: 'datetime', + title: '更新时间', + 'x-component': 'DatePicker', + 'x-read-pretty': true, }, - { - key: 'n4ap9l1l4wd', - name: 'f_81orjgxlbuo', - type: 'date', - interface: 'updatedAt', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'z19egimonh9', - uiSchema: { - 'x-uid': 'z19egimonh9', - name: 'xtzu6cpnsm4', - 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true }, - type: 'datetime', - title: '修改日期', - 'x-component': 'DatePicker', - 'x-read-pretty': true, - }, - field: 'updatedAt', + field: 'updatedAt', + }, + { + key: 'tm66hbii6zz', + name: 'f_cht6rsiiiko', + type: 'string', + interface: 'select', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'tkfjlde4ppl', + uiSchema: { + 'x-uid': 'tkfjlde4ppl', + name: 'p0rccyurzle', + enum: [ + { value: 'uduxfqpr5t2', label: '菜单' }, + { value: 'dnphxkwat35', label: '权限' }, + { value: '5cso9lpizog', label: '数据表' }, + { value: 'wlg329nsu3a', label: '字段' }, + { value: 'm8z7r06vk9z', label: '表格' }, + { value: 'ftfccbha25a', label: '表单' }, + { value: 'o33ljfkje2h', label: '详情' }, + { value: 'ym9wwk3aqbu', label: '日历' }, + { value: 'wge57qtiz14', label: '看板' }, + { value: 'm4xoc8rbafg', label: '操作' }, + { value: 'r6l2wg1snxc', label: '配置' }, + { value: 'j1cv1vf16fm', label: '附件' }, + { value: 'l464jdsy7vr', label: '容器' }, + ], + type: 'string', + 'x-component': 'Select', + title: '分类', }, - { - key: 'oqy67fm6af8', - name: 'f_e31b9oqe9ej', - type: 'belongsTo', - interface: 'updatedBy', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'tm4f7z0nyso', - uiSchema: { - 'x-uid': 'tm4f7z0nyso', - name: '19srjtwyce1', - type: 'object', - title: '修改人', - 'x-component': 'RecordPicker', - 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, - 'x-read-pretty': true, - }, - target: 'users', - foreignKey: 'updatedById', - targetKey: 'id', + }, + { + key: 'c9hzonl1hzq', + name: 'f_47f2d9wgofm', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: '7mufig9muag', + uiSchemaUid: 'rbl27ngs563', + uiSchema: { + 'x-uid': 'rbl27ngs563', + name: 'xrvwttiv064', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '相关任务', }, - ], - createdBy: true, - updatedBy: true, - sortable: true, - }, - ], -}; + target: 't_j6omof6tza8', + targetKey: 'id', + sourceKey: 'id', + through: 't_qhgbwomd2t7', + foreignKey: 'f_jes256zqwr1', + otherKey: 'f_gtgjj059mye', + }, + { + key: '7mufig9muag', + name: 'f_qmlomqm7lvb', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: 'c9hzonl1hzq', + uiSchemaUid: 'vgy9cgq9v6b', + uiSchema: { + 'x-uid': 'vgy9cgq9v6b', + name: 'sf99arn65jj', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '任务', + }, + target: 't_j6omof6tza8', + through: 't_qhgbwomd2t7', + sourceKey: 'id', + foreignKey: 'f_gtgjj059mye', + targetKey: 'id', + otherKey: 'f_jes256zqwr1', + }, + { + key: 'hv3kx2z8edn', + name: 'f_hpmvdltzs6m_sort', + type: 'sort', + interface: null, + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + hidden: true, + scopeKey: 'f_hpmvdltzs6m', + }, + { + key: 'q6wy6jcpdfr', + name: 'f_a4z4h45vi5b', + type: 'string', + interface: 'select', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'lx4k023vm7k', + uiSchema: { + 'x-uid': 'lx4k023vm7k', + name: 'e9u95lm0c2q', + enum: [ + { value: 'hgobsqbfnd4', label: 'SchemaInitializer', color: 'red' }, + { value: 't8prrpfk7kl', label: 'SchemaSettings', color: 'magenta' }, + { value: 'r3fxlrunwd8', label: 'SchemaComponent', color: 'lime' }, + { value: 'bidogljo0l3', label: 'CollectionField', color: 'blue' }, + { value: 'ygy1zfdr1z6', label: 'ACL', color: 'purple' }, + { value: 'ef9qf0wzpt5', label: 'DndContext', color: 'cyan' }, + { value: '45sfwd7ie30', label: 'useRequest', color: 'volcano' }, + ], + type: 'string', + 'x-component': 'Select', + title: '开发分类', + }, + }, + { + key: '936iis76zdx', + name: 'f_a4z4h45vi5b_sort', + type: 'sort', + interface: null, + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + hidden: true, + scopeKey: 'f_a4z4h45vi5b', + }, + { + key: 'zre21o0a5a9', + name: 'f_d93g4r08krl', + type: 'string', + interface: 'input', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: '96geljdh9j6', + uiSchema: { + 'x-uid': '96geljdh9j6', + name: 'zplxa37mb0y', + type: 'string', + 'x-component': 'Input', + title: '评估', + enum: [], + }, + }, + { + key: 'jasdf0kcqbs', + name: 'f_1ckuegfab9s', + type: 'text', + interface: 'textarea', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: '61h9pserdqr', + uiSchema: { + 'x-uid': '61h9pserdqr', + name: 'uepfpdv289y', + type: 'string', + 'x-component': 'Input.TextArea', + title: '评估备注', + }, + }, + ], + createdBy: true, + updatedBy: true, + sortable: true, + }, + { + key: 'nlxapox70a3', + name: 't_ab12qiwruwk', + title: null, + inherit: true, + fields: [ + { + key: 'q9xx9ixxxyb', + name: 'f_m7ibo1vrvnm', + type: 'string', + interface: 'input', + collectionName: 't_ab12qiwruwk', + parentKey: '9x87w5z0ea6', + reverseKey: null, + uiSchemaUid: 'ucn6wm03zrq', + uiSchema: { + 'x-uid': 'ucn6wm03zrq', + name: 'k07s9nhhj6c', + type: 'string', + 'x-component': 'Input', + title: '名称', + }, + }, + { + key: 'y91qig4eyzm', + name: 'f_kukaw9kddyj', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_ab12qiwruwk', + parentKey: '9x87w5z0ea6', + reverseKey: 'tvwwt24vukv', + uiSchemaUid: '7c9ch1fknbr', + uiSchema: { + 'x-uid': '7c9ch1fknbr', + name: 'gv1k2nhucte', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人', + }, + target: 'users', + targetKey: 'id', + sourceKey: 'id', + through: 't_gsv43y8ebt8', + foreignKey: 'f_hbbvlsbe9gs', + otherKey: 'f_bhj1xy7uyc8', + }, + { + key: 'gg0xx1vln6w', + name: 'f_4mpiovytw4d', + type: 'text', + interface: 'textarea', + collectionName: 't_ab12qiwruwk', + parentKey: '9x87w5z0ea6', + reverseKey: null, + uiSchemaUid: '3xgmf0ee5fn', + uiSchema: { + 'x-uid': '3xgmf0ee5fn', + name: '28sf67whpfs', + type: 'string', + 'x-component': 'Input.TextArea', + title: '描述', + }, + }, + { + key: 'zpz6o74z9u4', + name: 'f_lxsum89wkzd', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 't_ab12qiwruwk', + parentKey: '9x87w5z0ea6', + reverseKey: null, + uiSchemaUid: 'wosew16td91', + uiSchema: { + 'x-uid': 'wosew16td91', + name: 'p82ihvtkxtf', + 'x-component-props': { multiple: true, action: 'attachments:create' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '附件', + }, + target: 'attachments', + targetKey: 'id', + sourceKey: 'id', + through: 't_cn6cweinuw7', + foreignKey: 'f_r824sp05l43', + otherKey: 'f_8k3e4i0d04y', + }, + ], + createdBy: true, + updatedBy: true, + sortable: true, + }, + { + key: 'oftbzt8nm2o', + name: 'users', + title: '{{t("Users")}}', + inherit: false, + fields: [ + { + key: 'khov1egnsur', + name: 'nickname', + type: 'string', + interface: 'input', + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: '3ohfk46bf7o', + uiSchema: { + 'x-uid': '3ohfk46bf7o', + name: 'prmmf3kg8rx', + type: 'string', + title: '{{t("Nickname")}}', + 'x-component': 'Input', + }, + }, + { + key: 'u6cvmn45o6a', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: '69ywpwux1zh', + uiSchema: { + 'x-uid': '69ywpwux1zh', + name: 'u8djuprwttj', + type: 'string', + title: '{{t("Email")}}', + 'x-component': 'Input', + require: true, + }, + unique: true, + }, + { + key: 'jwaky9982f2', + name: 'password', + type: 'password', + interface: 'password', + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'qs374baqkh0', + uiSchema: { + 'x-uid': 'qs374baqkh0', + name: 'tf5dolxh2i4', + type: 'string', + title: '{{t("Password")}}', + 'x-component': 'Password', + }, + hidden: true, + }, + { + key: '4g5nics20go', + name: 'roles', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'lpkacakd4my', + uiSchema: { + 'x-uid': 'lpkacakd4my', + name: '3oylvillmwu', + type: 'array', + title: '{{t("Roles")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'title', value: 'name' } }, + }, + target: 'roles', + foreignKey: 'userId', + otherKey: 'roleName', + sourceKey: 'id', + targetKey: 'name', + through: 'rolesUsers', + }, + { + key: 'cqqhyq32tvf', + name: 'appLang', + type: 'string', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + }, + { + key: 't7t97s1rwid', + name: 'token', + type: 'string', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + unique: true, + hidden: true, + }, + { + key: '5myliungho1', + name: 'resetToken', + type: 'string', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + unique: true, + hidden: true, + }, + { + key: 'q2eg83quxls', + name: 'sort', + type: 'sort', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + hidden: true, + }, + { + key: 's5w3l6pl1hn', + name: 'f_xd4v2uljqcu', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 'users', + parentKey: null, + reverseKey: 'kwdiruosgsb', + uiSchemaUid: 'zv4gvihowwm', + uiSchema: { + 'x-uid': 'zv4gvihowwm', + name: 'mjjpnphkkhf', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人', + }, + target: 't_j6omof6tza8', + through: 't_7476m1wwsfe', + sourceKey: 'id', + foreignKey: 'f_q84aphtx7eb', + targetKey: 'id', + otherKey: 'f_9zwkbo7dd18', + }, + { + key: 'tvwwt24vukv', + name: 'f_qpsqy5rtc8t', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 'users', + parentKey: null, + reverseKey: 'y91qig4eyzm', + uiSchemaUid: '5ksz03zw47c', + uiSchema: { + 'x-uid': '5ksz03zw47c', + name: '8ukjiawzduz', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人', + }, + target: 't_ab12qiwruwk', + through: 't_gsv43y8ebt8', + sourceKey: 'id', + foreignKey: 'f_bhj1xy7uyc8', + targetKey: 'id', + otherKey: 'f_hbbvlsbe9gs', + }, + ], + sortable: 'sort', + }, + { + key: 'tyztw0ulriv', + name: 't_94rsj6kbzvn', + title: '迭代', + inherit: false, + fields: [ + { + key: 'nq4mp00jwip', + name: 'f_zio9ewkxss7', + type: 'string', + interface: 'input', + collectionName: 't_94rsj6kbzvn', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'q7vois7ptlt', + uiSchema: { + 'x-uid': 'q7vois7ptlt', + name: 'o9ue1s4tu8k', + type: 'string', + 'x-component': 'Input', + title: '名称', + enum: [], + }, + }, + { + key: 'ec2833af7n1', + name: 'f_ojboh2wxpju', + type: 'text', + interface: 'textarea', + collectionName: 't_94rsj6kbzvn', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'pco1f8sq2jq', + uiSchema: { + 'x-uid': 'pco1f8sq2jq', + name: 'lb2hdydextn', + type: 'string', + 'x-component': 'Input.TextArea', + title: '描述', + enum: [], + }, + }, + { + key: '82uqmdjr3v4', + name: 'f_nunmzapigvk', + type: 'date', + interface: 'datetime', + collectionName: 't_94rsj6kbzvn', + parentKey: null, + reverseKey: null, + uiSchemaUid: '2gawk8arctt', + uiSchema: { + 'x-uid': '2gawk8arctt', + name: 'j9j7c2wyev2', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: false }, + type: 'datetime', + 'x-component': 'DatePicker', + title: '开始日期', + enum: [], + }, + }, + { + key: 'mdx2eqz9ei8', + name: 'f_rberbnphu9u', + type: 'date', + interface: 'datetime', + collectionName: 't_94rsj6kbzvn', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'pj0znpff63y', + uiSchema: { + 'x-uid': 'pj0znpff63y', + name: 'c5h7agr2qy4', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: false }, + type: 'datetime', + 'x-component': 'DatePicker', + title: '结束日期', + enum: [], + }, + }, + { + key: 'z70jtfabrm7', + name: 'f_rabhmdetc3p', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_94rsj6kbzvn', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'aun2xsfua8d', + uiSchema: { + 'x-uid': 'aun2xsfua8d', + name: 'i508c1outz2', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '任务', + enum: [], + }, + target: 't_j6omof6tza8', + through: 't_ewdf2dsjlu3', + sourceKey: 'id', + foreignKey: 'f_8do8o1wsavk', + targetKey: 'id', + otherKey: 'f_72tnpdz6kfg', + }, + ], + createdBy: true, + updatedBy: true, + sortable: true, + }, + { + key: 'vv8umfa9592', + name: 'test_sheet', + title: '测试表', + inherit: false, + fields: [ + { + key: 'q1xye1ooeol', + name: 'f_7mh6k6re0ey', + type: 'string', + interface: 'phone', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 't9ddc5n5pv8', + uiSchema: { + 'x-uid': 't9ddc5n5pv8', + name: 'd3hwsg020u8', + type: 'string', + 'x-component': 'Input', + 'x-validator': 'phone', + title: '手机', + }, + }, + { + key: '25icwn35oin', + name: 'f_turkjlzi52z', + type: 'string', + interface: 'email', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: '3bkgd97f63v', + uiSchema: { + 'x-uid': '3bkgd97f63v', + name: 'zkvhu5cm4no', + type: 'string', + 'x-component': 'Input', + 'x-validator': 'email', + title: '邮箱', + }, + }, + { + key: '3cqe0mpcrmg', + name: 'f_c14whhblhtd', + type: 'float', + interface: 'number', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: '4bajzziz060', + uiSchema: { + 'x-uid': '4bajzziz060', + name: '366t9rvl34b', + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '数字', + }, + }, + { + key: 'y39vi1z69pw', + name: 'f_z1b674d907e', + type: 'float', + interface: 'percent', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'vbnoib14uzl', + uiSchema: { + 'x-uid': 'vbnoib14uzl', + name: 'rumohzj4lh6', + 'x-component-props': { step: '0.1', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'InputNumber', + title: '百分比', + }, + }, + { + key: 'eouuwoag6ka', + name: 'f_4tzp4nhmvt2', + type: 'string', + interface: 'icon', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'qmmw3zc8l60', + uiSchema: { + 'x-uid': 'qmmw3zc8l60', + name: 'aivg5c51gc9', + type: 'string', + 'x-component': 'IconPicker', + title: '图标', + }, + }, + { + key: 'qurfmfe2hfi', + name: 'f_z0s4m3hgadd', + type: 'password', + interface: 'password', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'tkp46kn682m', + uiSchema: { + 'x-uid': 'tkp46kn682m', + name: '7q7yeobot0j', + type: 'string', + 'x-component': 'Password', + title: '密码', + }, + }, + { + key: 'ka4k5tfh3k5', + name: 'f_q5qnozezx9s', + type: 'boolean', + interface: 'checkbox', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'wgyf4ozsvdi', + uiSchema: { + 'x-uid': 'wgyf4ozsvdi', + name: 'x6agce8s18w', + type: 'boolean', + 'x-component': 'Checkbox', + title: '勾选', + }, + }, + { + key: '3dhczyw3ye2', + name: 'f_jbzwvldpyaa', + type: 'array', + interface: 'multipleSelect', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'hlmfjs2pu9t', + uiSchema: { + 'x-uid': 'hlmfjs2pu9t', + name: 'ao52nx5pune', + enum: [ + { value: '6mbqdwuzfca', label: '选项1', color: 'red' }, + { value: '9zi6s2fbj0q', label: '选项2', color: 'geekblue' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '多选', + }, + defaultValue: [], + }, + { + key: 'erdrp1gi587', + name: 'f_04krym08wxq', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: '6has8wyzohq', + uiSchema: { + 'x-uid': '6has8wyzohq', + name: 'fvwsjt58xx4', + enum: [ + { value: '4lsgdvfl7xq', label: '复选2', color: 'cyan' }, + { value: 'qzuki8bmilg', label: '复选1', color: 'purple' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '复选', + }, + defaultValue: [], + }, + { + key: 'rykbub69xu7', + name: 'f_xclbl3htmxs', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'yml5yqzgvn8', + uiSchema: { + 'x-uid': 'yml5yqzgvn8', + name: '2ye7y09agup', + 'x-component-props': { + maxLevel: 5, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: true, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '中国地区', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + sourceKey: 'id', + through: 't_o9ry49u6xez', + foreignKey: 'f_44r8nsvdvz7', + otherKey: 'f_l0tzoymin3i', + }, + { + key: 'acm789iz922', + name: 'f_v4cgx7l5hwm', + type: 'text', + interface: 'markdown', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: '8a2erdhwcvb', + uiSchema: { + 'x-uid': '8a2erdhwcvb', + name: 'rqeiz26vuns', + type: 'string', + 'x-component': 'Markdown', + title: 'Markdown', + }, + }, + { + key: 'zmip3swglzv', + name: 'f_ztaop411cdw', + type: 'time', + interface: 'time', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'r6s6rrjzfml', + uiSchema: { + 'x-uid': 'r6s6rrjzfml', + name: 'ct893ay5apv', + 'x-component-props': { format: 'HH:mm:ss' }, + type: 'string', + 'x-component': 'TimePicker', + title: '时间', + }, + }, + { + key: 'nx1p69b6g96', + name: 'f_mf8ccm0pjmh', + type: 'date', + interface: 'datetime', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: '08p9oztyjf2', + uiSchema: { + 'x-uid': '08p9oztyjf2', + name: 'bkdnndmfpeo', + 'x-component-props': { dateFormat: 'DD/MM/YYYY', showTime: true, timeFormat: 'HH:mm:ss' }, + type: 'datetime', + 'x-component': 'DatePicker', + title: '日期', + enum: [], + }, + }, + { + key: 'ge57kma4gue', + name: 'f_dqq0xjkdqbo', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'zzmst1r01gc', + uiSchema: { + 'x-uid': 'zzmst1r01gc', + name: 'def1ngennlx', + type: 'object', + title: '创建人', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + target: 'users', + foreignKey: 'createdById', + targetKey: 'id', + }, + { + key: 'yqye22n1f1c', + name: 'f_7ukoar9jevs', + type: 'date', + interface: 'createdAt', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'lgnqb28lb91', + uiSchema: { + 'x-uid': 'lgnqb28lb91', + name: 'jdjz5cngm3j', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true, timeFormat: 'HH:mm:ss' }, + type: 'datetime', + title: '创建日期', + 'x-component': 'DatePicker', + 'x-read-pretty': true, + }, + field: 'createdAt', + }, + { + key: 'n4ap9l1l4wd', + name: 'f_81orjgxlbuo', + type: 'date', + interface: 'updatedAt', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'z19egimonh9', + uiSchema: { + 'x-uid': 'z19egimonh9', + name: 'xtzu6cpnsm4', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true }, + type: 'datetime', + title: '修改日期', + 'x-component': 'DatePicker', + 'x-read-pretty': true, + }, + field: 'updatedAt', + }, + { + key: 'oqy67fm6af8', + name: 'f_e31b9oqe9ej', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'tm4f7z0nyso', + uiSchema: { + 'x-uid': 'tm4f7z0nyso', + name: '19srjtwyce1', + type: 'object', + title: '修改人', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + target: 'users', + foreignKey: 'updatedById', + targetKey: 'id', + }, + ], + createdBy: true, + updatedBy: true, + sortable: true, + }, +]; diff --git a/packages/core/client/src/schema-component/antd/form-v2/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/form-v2/demos/demo1.tsx index c2db39fcbf..e44e8217de 100644 --- a/packages/core/client/src/schema-component/antd/form-v2/demos/demo1.tsx +++ b/packages/core/client/src/schema-component/antd/form-v2/demos/demo1.tsx @@ -1,26 +1,43 @@ import { ISchema, useForm } from '@formily/react'; import { - AntdSchemaComponentProvider, - APIClient, APIClientProvider, - BlockSchemaComponentProvider, + Action, + CollectionField, CollectionManagerProvider, + FormBlockProvider, + FormItem, + FormV2, + Input, SchemaComponent, SchemaComponentProvider, useFormBlockContext, } from '@nocobase/client'; +import { notification } from 'antd'; import React from 'react'; +import { useFilterByTk } from '../../../../block-provider/BlockProvider'; +import { mockAPIClient } from '../../../../test'; import collections from './collections'; +const { apiClient, mockRequest } = mockAPIClient(); + +mockRequest.onPost('/users:update').reply((params) => { + notification.success({ + message: params.data, + }); + return [200, JSON.parse(params.data)]; +}); + function useAction() { const ctx = useFormBlockContext(); const form = useForm(); + const filterByTk = useFilterByTk(); return { async run() { console.log('form.values', form.values); - // await ctx.resource.create({ - // values: form.values, - // }); + await ctx.resource.update({ + filterByTk, + values: form.values, + }); }, }; } @@ -47,7 +64,7 @@ const schema: ISchema = { 'x-component': 'CollectionField', }, button: { - title: '提交', + title: 'Submit', 'x-component': 'Action', 'x-component-props': { htmlType: 'submit', @@ -62,22 +79,14 @@ const schema: ISchema = { }, }; -const apiClient = new APIClient({ - baseURL: 'http://localhost:3000/api', -}); - export default () => { return ( - - - - - - - - - + + + + + ); }; diff --git a/packages/core/client/src/schema-component/antd/form-v2/demos/demo2.tsx b/packages/core/client/src/schema-component/antd/form-v2/demos/demo2.tsx index 48dba7f66c..42d7cb4714 100644 --- a/packages/core/client/src/schema-component/antd/form-v2/demos/demo2.tsx +++ b/packages/core/client/src/schema-component/antd/form-v2/demos/demo2.tsx @@ -1,19 +1,42 @@ import { ISchema, useForm } from '@formily/react'; import { - AntdSchemaComponentProvider, - APIClient, APIClientProvider, + Action, BlockSchemaComponentProvider, + CollectionField, CollectionManagerProvider, - RecordProvider, + FormBlockProvider, + FormItem, + FormV2, + Input, + Password, SchemaComponent, SchemaComponentProvider, - useFilterByTk, useFormBlockContext, } from '@nocobase/client'; +import { notification } from 'antd'; import React from 'react'; +import { useFilterByTk } from '../../../../block-provider/BlockProvider'; +import { mockAPIClient } from '../../../../test'; import collections from './collections'; +const { apiClient, mockRequest } = mockAPIClient(); + +mockRequest.onGet('/users:get').reply(200, { + data: { + id: 1, + nickname: '张三', + password: '123456', + }, +}); + +mockRequest.onPost('/users:update').reply((params) => { + notification.success({ + message: params.data, + }); + return [200, JSON.parse(params.data)]; +}); + const useAction = () => { const ctx = useFormBlockContext(); const form = useForm(); @@ -39,7 +62,6 @@ const schema: ISchema = { collection: 'users', resource: 'users', action: 'get', - useParams: '{{ useParamsFromRecord }}', }, properties: { form: { @@ -53,15 +75,21 @@ const schema: ISchema = { type: 'string', 'x-decorator': 'FormItem', 'x-component': 'CollectionField', + 'x-component-props': { + className: 'nickname', + }, }, password: { type: 'string', 'x-decorator': 'FormItem', 'x-designer': 'FormItem.Designer', 'x-component': 'CollectionField', + 'x-component-props': { + className: 'password', + }, }, button: { - title: '提交', + title: 'Submit', 'x-component': 'Action', 'x-component-props': { htmlType: 'submit', @@ -76,28 +104,18 @@ const schema: ISchema = { }, }; -const apiClient = new APIClient({ - baseURL: 'http://localhost:3000/api', -}); - -const record = { - id: 1, -}; - export default () => { return ( - - - - - - - - - - - + + + + + + + ); }; diff --git a/packages/core/client/src/schema-component/antd/form-v2/demos/demo3.tsx b/packages/core/client/src/schema-component/antd/form-v2/demos/demo3.tsx index 784b9ce9ca..20dca36078 100644 --- a/packages/core/client/src/schema-component/antd/form-v2/demos/demo3.tsx +++ b/packages/core/client/src/schema-component/antd/form-v2/demos/demo3.tsx @@ -1,17 +1,32 @@ import { ISchema } from '@formily/react'; import { - AntdSchemaComponentProvider, - APIClient, APIClientProvider, + Action, BlockSchemaComponentProvider, + CollectionField, CollectionManagerProvider, - RecordProvider, + FormBlockProvider, + FormItem, + FormV2, + Input, + Password, SchemaComponent, SchemaComponentProvider, } from '@nocobase/client'; import React from 'react'; +import { mockAPIClient } from '../../../../test'; import collections from './collections'; +const { apiClient, mockRequest } = mockAPIClient(); + +mockRequest.onGet('/users:get').reply(200, { + data: { + id: 1, + nickname: '张三', + password: '123456', + }, +}); + const schema: ISchema = { type: 'object', properties: { @@ -22,7 +37,6 @@ const schema: ISchema = { collection: 'users', resource: 'users', action: 'get', - useParams: '{{ useParamsFromRecord }}', }, properties: { form: { @@ -76,28 +90,18 @@ const schema: ISchema = { }, }; -const apiClient = new APIClient({ - baseURL: 'http://localhost:3000/api', -}); - -const record = { - id: 1, -}; - export default () => { return ( - - - - - - - - - - - + + + + + + + ); }; diff --git a/packages/core/client/src/schema-component/antd/form/Form.tsx b/packages/core/client/src/schema-component/antd/form/Form.tsx index 2a6133a4dd..6091b6737a 100644 --- a/packages/core/client/src/schema-component/antd/form/Form.tsx +++ b/packages/core/client/src/schema-component/antd/form/Form.tsx @@ -1,7 +1,7 @@ import { FormLayout } from '@formily/antd'; import { createForm } from '@formily/core'; import { FieldContext, FormContext, observer, RecursionField, useField, useFieldSchema } from '@formily/react'; -import { Options, Result } from 'ahooks/lib/useRequest/src/types'; +import { Options, Result } from 'ahooks/es/useRequest/src/types'; import { ConfigProvider, Spin } from 'antd'; import React, { createContext, useContext, useEffect, useMemo } from 'react'; import { useAttach, useComponent } from '../..'; diff --git a/packages/core/client/src/schema-component/antd/form/__tests__/form.test.tsx b/packages/core/client/src/schema-component/antd/form/__tests__/form.test.tsx new file mode 100644 index 0000000000..142479d1c2 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/form/__tests__/form.test.tsx @@ -0,0 +1,140 @@ +import React from 'react'; +import { render, screen, sleep, userEvent } from 'testUtils'; +import App1 from '../demos/demo1'; +import App2 from '../demos/demo2'; +import App3 from '../demos/demo3'; +import App4 from '../demos/demo4'; +import App5 from '../demos/demo5'; +import App6 from '../demos/demo6'; +import App7 from '../demos/demo7'; +import App8 from '../demos/demo8'; + +describe('Form', () => { + it('basic', async () => { + render(); + + const submit = screen.getByText('Submit'); + const input = document.querySelector('.ant-input') as HTMLInputElement; + + expect(submit).toBeInTheDocument(); + expect(input).toBeInTheDocument(); + expect(screen.getByText(/form title/i)).toBeInTheDocument(); + expect(screen.getByText('T1')).toBeInTheDocument(); + expect(screen.getByText(/\{\}/i)).toBeInTheDocument(); + + await userEvent.type(input, '123'); + expect(screen.getByText(/\{ "field1": "123" \}/i)).toBeInTheDocument(); + }); + + it('decorator', async () => { + render(); + + // 等待默认值渲染 + await sleep(); + + const submit = screen.getByText('Submit'); + const input = document.querySelector('.ant-input') as HTMLInputElement; + + expect(submit).toBeInTheDocument(); + expect(input).toBeInTheDocument(); + expect(input).toHaveValue('aaa'); + expect(screen.getByText('T1')).toBeInTheDocument(); + expect(screen.getByText(/\{ "field1": "aaa" \}/i)).toBeInTheDocument(); + + await userEvent.type(input, '123'); + expect(screen.getByText(/\{ "field1": "aaa123" \}/i)).toBeInTheDocument(); + }); + + it('Form & Drawer', async () => { + render(); + + const openBtn = screen.getByText('Open'); + await userEvent.click(openBtn); + expect(screen.getByText(/drawer title/i)).toBeInTheDocument(); + }); + + it('initialValue', async () => { + render(); + + // 等待默认值渲染 + await sleep(); + + const submit = screen.getByText('Submit'); + const input = document.querySelector('.ant-input') as HTMLInputElement; + + expect(submit).toBeInTheDocument(); + expect(input).toBeInTheDocument(); + expect(input).toHaveValue('aaa'); + expect(screen.getByText(/\{ "field1": "aaa" \}/i)).toBeInTheDocument(); + }); + + it('initialValue of decorator', async () => { + render(); + + const openBtn = screen.getByText('Open'); + await userEvent.click(openBtn); + + const input = document.querySelector('.ant-input') as HTMLInputElement; + + expect(screen.getByText(/drawer title/i)).toBeInTheDocument(); + expect(input).toBeInTheDocument(); + expect(input).toHaveValue('aaa'); + expect(screen.getByText(/\{ "field1": "aaa" \}/i)).toBeInTheDocument(); + }); + + it('remote data', async () => { + render(); + + const loading = document.querySelector('.ant-spin'); + const t1Input = document.querySelector('.t1 .ant-input') as HTMLInputElement; + const t2Input = document.querySelector('.t2 .ant-input') as HTMLInputElement; + const submit = screen.getByText('Submit'); + const refresh = screen.getByText('Refresh'); + + expect(submit).toBeInTheDocument(); + expect(refresh).toBeInTheDocument(); + expect(t1Input).toBeInTheDocument(); + expect(t1Input).toHaveValue(''); + expect(t2Input).toBeInTheDocument(); + expect(t2Input).toHaveValue('default value'); + expect(screen.getByText(/\{ "field2": "default value" \}/i)).toBeInTheDocument(); + + // 加载数据期间,显示 loading + expect(loading).toBeInTheDocument(); + + // 等待数据加载 + await sleep(600); + expect(t1Input).toHaveValue('uid'); + expect(screen.getByText(/\{ "field2": "default value", "field1": "uid" \}/i)).toBeInTheDocument(); + }); + + it('useValues', async () => { + render(); + + // 等待 useRequest 返回值 + await sleep(); + + const submit = screen.getByText('Submit'); + const input = document.querySelector('.ant-input') as HTMLInputElement; + + expect(submit).toBeInTheDocument(); + expect(input).toBeInTheDocument(); + expect(input).toHaveValue('aabb'); + expect(screen.getByText(/\{ "field1": "aabb" \}/i)).toBeInTheDocument(); + }); + + it('DrawerForm & async data', async () => { + render(); + + const editBtn = screen.getByText('Edit'); + await userEvent.click(editBtn); + + const input = document.querySelector('.ant-input') as HTMLInputElement; + const closeBtn = screen.getByText('Close'); + + expect(input).toBeInTheDocument(); + expect(input).toHaveValue('hello nocobase'); + expect(closeBtn).toBeInTheDocument(); + expect(screen.getByText(/drawer title/i)).toBeInTheDocument(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/form/demos/apiClient.ts b/packages/core/client/src/schema-component/antd/form/demos/apiClient.ts index 28c15e9367..6581aab98d 100644 --- a/packages/core/client/src/schema-component/antd/form/demos/apiClient.ts +++ b/packages/core/client/src/schema-component/antd/form/demos/apiClient.ts @@ -1,4 +1,3 @@ -import { uid } from '@formily/shared'; import { APIClient } from '@nocobase/client'; import MockAdapter from 'axios-mock-adapter'; @@ -9,12 +8,12 @@ const mock = new MockAdapter(apiClient.axios); const sleep = (value: number) => new Promise((resolve) => setTimeout(resolve, value)); mock.onGet('/posts:get').reply(async (config) => { - await sleep(1000); + await sleep(500); return [ 200, { data: { - field1: uid(), + field1: 'uid', }, }, ]; diff --git a/packages/core/client/src/schema-component/antd/form/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/form/demos/demo1.tsx index 5b2778de48..a821e12541 100644 --- a/packages/core/client/src/schema-component/antd/form/demos/demo1.tsx +++ b/packages/core/client/src/schema-component/antd/form/demos/demo1.tsx @@ -3,42 +3,40 @@ import { ISchema, observer, useForm } from '@formily/react'; import { Action, Form, SchemaComponent, SchemaComponentProvider, useCloseAction } from '@nocobase/client'; import React from 'react'; -export default observer(() => { - const schema: ISchema = { - type: 'object', - properties: { - a1: { - type: 'void', - 'x-component': 'Action', - 'x-component-props': { - type: 'primary', - }, - title: 'Open', - properties: { - d1: { - type: 'void', - 'x-component': 'Action.Drawer', - 'x-decorator': 'Form', - title: 'Drawer Title', - properties: { - field1: { - 'x-component': 'Input', - 'x-decorator': 'FormItem', - title: 'T1', - }, - out: { - 'x-component': 'Output', - }, - f1: { - type: 'void', - 'x-component': 'Action.Drawer.Footer', - properties: { - a1: { - 'x-component': 'Action', - title: 'Close', - 'x-component-props': { - useAction: '{{ useCloseAction }}', - }, +const schema: ISchema = { + type: 'object', + properties: { + a1: { + type: 'void', + 'x-component': 'Action', + 'x-component-props': { + type: 'primary', + }, + title: 'Open', + properties: { + d1: { + type: 'void', + 'x-component': 'Action.Drawer', + 'x-decorator': 'Form', + title: 'Drawer Title', + properties: { + field1: { + 'x-component': 'Input', + 'x-decorator': 'FormItem', + title: 'T1', + }, + out: { + 'x-component': 'Output', + }, + f1: { + type: 'void', + 'x-component': 'Action.Drawer.Footer', + properties: { + a1: { + 'x-component': 'Action', + title: 'Close', + 'x-component-props': { + useAction: '{{ useCloseAction }}', }, }, }, @@ -47,16 +45,18 @@ export default observer(() => { }, }, }, - }; + }, +}; - const Output = observer( - () => { - const form = useForm(); - return
{JSON.stringify(form.values, null, 2)}
; - }, - { displayName: 'Output' }, - ); +const Output = observer( + () => { + const form = useForm(); + return
{JSON.stringify(form.values, null, 2)}
; + }, + { displayName: 'Output' }, +); +export default observer(() => { return ( diff --git a/packages/core/client/src/schema-component/antd/form/demos/demo2.tsx b/packages/core/client/src/schema-component/antd/form/demos/demo2.tsx index 5107888bd0..ef656b8be5 100644 --- a/packages/core/client/src/schema-component/antd/form/demos/demo2.tsx +++ b/packages/core/client/src/schema-component/antd/form/demos/demo2.tsx @@ -4,40 +4,40 @@ import { Action, Form, SchemaComponent, SchemaComponentProvider } from '@nocobas import { Card } from 'antd'; import React from 'react'; -export default observer(() => { - const schema: ISchema = { - type: 'object', - properties: { - form1: { - type: 'void', - 'x-decorator': 'Card', - 'x-decorator-props': { - title: 'Form Title', +const schema: ISchema = { + type: 'object', + properties: { + form1: { + type: 'void', + 'x-decorator': 'Card', + 'x-decorator-props': { + title: 'Form Title', + }, + 'x-component': 'Form', + properties: { + field1: { + 'x-component': 'Input', + 'x-decorator': 'FormItem', + title: 'T1', + required: true, }, - 'x-component': 'Form', - properties: { - field1: { - 'x-component': 'Input', - 'x-decorator': 'FormItem', - title: 'T1', - required: true, - }, - out: { - 'x-component': 'Output', - }, - action1: { - // type: 'void', - 'x-component': 'Action', - title: 'Submit', - 'x-component-props': { - useAction: '{{ useSubmit }}', - }, + out: { + 'x-component': 'Output', + }, + action1: { + // type: 'void', + 'x-component': 'Action', + title: 'Submit', + 'x-component-props': { + useAction: '{{ useSubmit }}', }, }, }, }, - }; + }, +}; +export default observer(() => { const Output = observer( () => { const form = useForm(); diff --git a/packages/core/client/src/schema-component/antd/form/demos/demo3.tsx b/packages/core/client/src/schema-component/antd/form/demos/demo3.tsx index 935390c0d3..8517184537 100644 --- a/packages/core/client/src/schema-component/antd/form/demos/demo3.tsx +++ b/packages/core/client/src/schema-component/antd/form/demos/demo3.tsx @@ -4,40 +4,40 @@ import { Action, Form, SchemaComponent, SchemaComponentProvider } from '@nocobas import { Card } from 'antd'; import React from 'react'; -export default observer(() => { - const schema: ISchema = { - type: 'object', - properties: { - form1: { - type: 'void', - 'x-component': 'Form', - 'x-component-props': { - initialValue: { - field1: 'aaa', - }, +const schema: ISchema = { + type: 'object', + properties: { + form1: { + type: 'void', + 'x-component': 'Form', + 'x-component-props': { + initialValue: { + field1: 'aaa', }, - properties: { - field1: { - 'x-component': 'Input', - 'x-decorator': 'FormItem', - title: 'T1', - }, - out: { - 'x-component': 'Output', - }, - action1: { - // type: 'void', - 'x-component': 'Action', - title: 'Submit', - 'x-component-props': { - useAction: '{{ useSubmit }}', - }, + }, + properties: { + field1: { + 'x-component': 'Input', + 'x-decorator': 'FormItem', + title: 'T1', + }, + out: { + 'x-component': 'Output', + }, + action1: { + // type: 'void', + 'x-component': 'Action', + title: 'Submit', + 'x-component-props': { + useAction: '{{ useSubmit }}', }, }, }, }, - }; + }, +}; +export default observer(() => { const Output = observer( () => { const form = useForm(); diff --git a/packages/core/client/src/schema-component/antd/form/demos/demo4.tsx b/packages/core/client/src/schema-component/antd/form/demos/demo4.tsx index 7849eb7f33..a0666cc1b7 100644 --- a/packages/core/client/src/schema-component/antd/form/demos/demo4.tsx +++ b/packages/core/client/src/schema-component/antd/form/demos/demo4.tsx @@ -3,47 +3,45 @@ import { ISchema, observer, useForm } from '@formily/react'; import { Action, Form, SchemaComponent, SchemaComponentProvider, useCloseAction } from '@nocobase/client'; import React from 'react'; -export default observer(() => { - const schema: ISchema = { - type: 'object', - properties: { - a1: { - type: 'void', - 'x-component': 'Action', - 'x-component-props': { - type: 'primary', - }, - title: 'Open', - properties: { - d1: { - type: 'void', - 'x-component': 'Action.Drawer', - 'x-decorator': 'Form', - 'x-decorator-props': { - initialValue: { - field1: 'aaa', - }, +const schema: ISchema = { + type: 'object', + properties: { + a1: { + type: 'void', + 'x-component': 'Action', + 'x-component-props': { + type: 'primary', + }, + title: 'Open', + properties: { + d1: { + type: 'void', + 'x-component': 'Action.Drawer', + 'x-decorator': 'Form', + 'x-decorator-props': { + initialValue: { + field1: 'aaa', }, - title: 'Drawer Title', - properties: { - field1: { - title: 'T1', - 'x-component': 'Input', - 'x-decorator': 'FormItem', - }, - out: { - 'x-component': 'Output', - }, - f1: { - type: 'void', - 'x-component': 'Action.Drawer.Footer', - properties: { - a1: { - 'x-component': 'Action', - title: 'Close', - 'x-component-props': { - useAction: '{{ useCloseAction }}', - }, + }, + title: 'Drawer Title', + properties: { + field1: { + title: 'T1', + 'x-component': 'Input', + 'x-decorator': 'FormItem', + }, + out: { + 'x-component': 'Output', + }, + f1: { + type: 'void', + 'x-component': 'Action.Drawer.Footer', + properties: { + a1: { + 'x-component': 'Action', + title: 'Close', + 'x-component-props': { + useAction: '{{ useCloseAction }}', }, }, }, @@ -52,8 +50,10 @@ export default observer(() => { }, }, }, - }; + }, +}; +export default observer(() => { const Output = observer( () => { const form = useForm(); diff --git a/packages/core/client/src/schema-component/antd/form/demos/demo5.tsx b/packages/core/client/src/schema-component/antd/form/demos/demo5.tsx index 83bc545f42..b63b91761d 100644 --- a/packages/core/client/src/schema-component/antd/form/demos/demo5.tsx +++ b/packages/core/client/src/schema-component/antd/form/demos/demo5.tsx @@ -1,8 +1,8 @@ import { FormItem, Input } from '@formily/antd'; import { ISchema, observer, useForm } from '@formily/react'; import { - Action, APIClientProvider, + Action, Form, SchemaComponent, SchemaComponentProvider, @@ -12,90 +12,96 @@ import { Card, Space } from 'antd'; import React from 'react'; import { apiClient } from './apiClient'; -export default observer(() => { - const schema: ISchema = { - type: 'object', - properties: { - form1: { - type: 'void', - 'x-uid': 'form1', - 'x-component': 'Form', - 'x-component-props': { - request: { - resource: 'posts', - action: 'get', - }, +const schema: ISchema = { + type: 'object', + properties: { + form1: { + type: 'void', + 'x-uid': 'form1', + 'x-component': 'Form', + 'x-component-props': { + request: { + resource: 'posts', + action: 'get', }, - properties: { - field1: { - title: 'T1', - 'x-component': 'Input', - 'x-decorator': 'FormItem', + }, + properties: { + field1: { + title: 'T1', + 'x-component': 'Input', + 'x-component-props': { + className: 't1', }, - field2: { - title: 'T2', - 'x-component': 'Input', - 'x-decorator': 'FormItem', - required: true, - default: 'default value', + 'x-decorator': 'FormItem', + }, + field2: { + title: 'T2', + 'x-component': 'Input', + 'x-component-props': { + className: 't2', }, - out: { - 'x-component': 'Output', - }, - Space: { - type: 'void', - 'x-component': 'Space', - properties: { - action2: { - // type: 'void', - 'x-component': 'Action', - title: 'Submit', - 'x-component-props': { - useAction: '{{ useSubmit }}', - }, + 'x-decorator': 'FormItem', + required: true, + default: 'default value', + }, + out: { + 'x-component': 'Output', + }, + Space: { + type: 'void', + 'x-component': 'Space', + properties: { + action2: { + // type: 'void', + 'x-component': 'Action', + title: 'Submit', + 'x-component-props': { + useAction: '{{ useSubmit }}', }, - action1: { - // type: 'void', - title: 'Refresh', - 'x-component': 'Action', - 'x-component-props': { - useAction: '{{ useRefresh }}', - }, + }, + action1: { + // type: 'void', + title: 'Refresh', + 'x-component': 'Action', + 'x-component-props': { + useAction: '{{ useRefresh }}', }, }, }, }, }, }, - }; + }, +}; - const Output = observer( - () => { - const form = useForm(); - return
{JSON.stringify(form.values, null, 2)}
; - }, - { displayName: 'Output' }, - ); - - const useSubmit = () => { +const Output = observer( + () => { const form = useForm(); - return { - async run() { - await form.submit(); - console.log(form.values); - }, - }; - }; + return
{JSON.stringify(form.values, null, 2)}
; + }, + { displayName: 'Output' }, +); - const useRefresh = () => { - const apiClient = useAPIClient(); - return { - async run() { - apiClient.service('form1')?.refresh(); - }, - }; +const useSubmit = () => { + const form = useForm(); + return { + async run() { + await form.submit(); + console.log(form.values); + }, }; +}; +const useRefresh = () => { + const apiClient = useAPIClient(); + return { + async run() { + apiClient.service('form1')?.refresh(); + }, + }; +}; + +export default observer(() => { return ( { - const schema: ISchema = { - type: 'object', - properties: { - form1: { - type: 'void', - 'x-decorator': 'Form', - 'x-decorator-props': { - initialValue: { - field1: 'aaa', - }, +const schema: ISchema = { + type: 'object', + properties: { + form1: { + type: 'void', + 'x-decorator': 'Form', + 'x-decorator-props': { + initialValue: { + field1: 'aaa', }, - 'x-component': 'Card', - properties: { - field1: { - 'x-component': 'Input', - 'x-decorator': 'FormItem', - title: 'T1', - }, - out: { - 'x-component': 'Output', - }, - action1: { - // type: 'void', - 'x-component': 'Action', - title: 'Submit', - 'x-component-props': { - useAction: '{{ useSubmit }}', - }, + }, + 'x-component': 'Card', + properties: { + field1: { + 'x-component': 'Input', + 'x-decorator': 'FormItem', + title: 'T1', + }, + out: { + 'x-component': 'Output', + }, + action1: { + // type: 'void', + 'x-component': 'Action', + title: 'Submit', + 'x-component-props': { + useAction: '{{ useSubmit }}', }, }, }, }, - }; + }, +}; - const Output = observer( - () => { - const form = useForm(); - return
{JSON.stringify(form.values, null, 2)}
; - }, - { displayName: 'Output' }, - ); - - const useSubmit = () => { +const Output = observer( + () => { const form = useForm(); - return { - async run() { - console.log(form.values); - }, - }; - }; + return
{JSON.stringify(form.values, null, 2)}
; + }, + { displayName: 'Output' }, +); +const useSubmit = () => { + const form = useForm(); + return { + async run() { + console.log(form.values); + }, + }; +}; + +export default observer(() => { return ( diff --git a/packages/core/client/src/schema-component/antd/form/demos/demo8.tsx b/packages/core/client/src/schema-component/antd/form/demos/demo8.tsx index 717c5e1c3d..50b1133c96 100644 --- a/packages/core/client/src/schema-component/antd/form/demos/demo8.tsx +++ b/packages/core/client/src/schema-component/antd/form/demos/demo8.tsx @@ -1,7 +1,10 @@ +import { FormItem } from '@formily/antd'; import { ISchema, observer } from '@formily/react'; import { + Action, ActionContext, - AntdSchemaComponentProvider, + Form, + Input, SchemaComponent, SchemaComponentProvider, useActionContext, @@ -67,19 +70,17 @@ export default observer(() => { const [visible, setVisible] = useState(false); return ( - - - - - - - + + + + + ); }); diff --git a/packages/core/client/src/schema-component/antd/g2plot/__tests__/g2plot.test.tsx b/packages/core/client/src/schema-component/antd/g2plot/__tests__/g2plot.test.tsx new file mode 100644 index 0000000000..70abde673f --- /dev/null +++ b/packages/core/client/src/schema-component/antd/g2plot/__tests__/g2plot.test.tsx @@ -0,0 +1,15 @@ +import React from 'react'; +import { render, sleep } from 'testUtils'; +import App1 from '../demos/demo1'; + +// jsdom does not support canvas, so we need to skip this test +describe.skip('G2Plot', () => { + it('basic', async () => { + render(); + + await sleep(100); + + const g2plot = document.querySelector('.g2plot') as HTMLDivElement; + expect(g2plot).toBeInTheDocument(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/g2plot/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/g2plot/demos/demo1.tsx index 92cbf2242d..9ec35cc4c4 100644 --- a/packages/core/client/src/schema-component/antd/g2plot/demos/demo1.tsx +++ b/packages/core/client/src/schema-component/antd/g2plot/demos/demo1.tsx @@ -1,12 +1,17 @@ -import { APIClient, APIClientProvider, G2Plot, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; -import MockAdapter from 'axios-mock-adapter'; +import { + APIClient, + APIClientProvider, + CardItem, + G2Plot, + SchemaComponent, + SchemaComponentProvider, +} from '@nocobase/client'; import React from 'react'; +import { mockAPIClient } from '../../../../test'; -const api = new APIClient(); +const { apiClient, mockRequest } = mockAPIClient(); -const mock = new MockAdapter(api.axios); - -mock.onGet('/test').reply(200, { +mockRequest.onGet('/test').reply(200, { data: [ { Date: '2010-01', @@ -77,9 +82,9 @@ const schema = { export default () => { return ( - - - + + + ); diff --git a/packages/core/client/src/schema-component/antd/gantt/test/date-helper.test.tsx b/packages/core/client/src/schema-component/antd/gantt/__tests__/date-helper.test.tsx similarity index 100% rename from packages/core/client/src/schema-component/antd/gantt/test/date-helper.test.tsx rename to packages/core/client/src/schema-component/antd/gantt/__tests__/date-helper.test.tsx diff --git a/packages/core/client/src/schema-component/antd/gantt/__tests__/gant.test.tsx b/packages/core/client/src/schema-component/antd/gantt/__tests__/gant.test.tsx new file mode 100644 index 0000000000..c57ab7b3fe --- /dev/null +++ b/packages/core/client/src/schema-component/antd/gantt/__tests__/gant.test.tsx @@ -0,0 +1,9 @@ +import React from 'react'; +import { render } from 'testUtils'; +import App1 from '../demos/demo1'; + +describe('gantt', () => { + it('renders without crashing', () => { + render(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/gantt/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/gantt/demos/demo1.tsx new file mode 100644 index 0000000000..28c68400f7 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/gantt/demos/demo1.tsx @@ -0,0 +1,35 @@ +import { Gantt, SchemaComponent, SchemaComponentProvider, useGanttBlockProps } from '@nocobase/client'; +import React from 'react'; + +const schema = { + type: 'object', + properties: { + tasks: { + type: 'void', + 'x-component': 'Gantt', + 'x-component-props': { + useProps: '{{ useGanttBlockProps }}', + tasks: [ + { + start: new Date(2020, 0, 1), + end: new Date(2020, 2, 2), + name: 'Redesign website', + id: 'Task 0', + progress: 45, + type: 'task', + }, + ], + }, + }, + }, +}; + +export default () => { + return
TODO
; + + return ( + + + + ); +}; diff --git a/packages/core/client/src/schema-component/antd/gantt/index.md b/packages/core/client/src/schema-component/antd/gantt/index.md new file mode 100644 index 0000000000..8b46b77d4c --- /dev/null +++ b/packages/core/client/src/schema-component/antd/gantt/index.md @@ -0,0 +1,10 @@ +--- +nav: + path: /client +group: + path: /schema-components +--- + +# Gantt + + diff --git a/packages/core/client/src/schema-component/antd/gantt/test/gant.test.tsx b/packages/core/client/src/schema-component/antd/gantt/test/gant.test.tsx deleted file mode 100644 index 19ff84f28e..0000000000 --- a/packages/core/client/src/schema-component/antd/gantt/test/gant.test.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; -import { Gantt } from '../index'; - -describe('gantt', () => { - it('renders without crashing', () => { - const div = document.createElement('div'); - const root = createRoot(div); - root.render( - , - ); - }); -}); diff --git a/packages/core/client/src/schema-component/antd/grid-card/__tests__/grid-card.test.tsx b/packages/core/client/src/schema-component/antd/grid-card/__tests__/grid-card.test.tsx new file mode 100644 index 0000000000..166a5c2835 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/grid-card/__tests__/grid-card.test.tsx @@ -0,0 +1,9 @@ +import React from 'react'; +import { render } from 'testUtils'; +import App1 from '../demos/demo1'; + +describe('GridCard', () => { + it('should render correctly', () => { + render(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/grid-card/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/grid-card/demos/demo1.tsx new file mode 100644 index 0000000000..f001a37786 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/grid-card/demos/demo1.tsx @@ -0,0 +1,5 @@ +import React from 'react'; + +export default () => { + return
TODO
; +}; diff --git a/packages/core/client/src/schema-component/antd/grid-card/index.md b/packages/core/client/src/schema-component/antd/grid-card/index.md new file mode 100644 index 0000000000..51e3cbd41e --- /dev/null +++ b/packages/core/client/src/schema-component/antd/grid-card/index.md @@ -0,0 +1,10 @@ +--- +nav: + path: /client +group: + path: /schema-components +--- + +# GridCard + + diff --git a/packages/core/client/src/schema-component/antd/grid/__tests__/grid.test.tsx b/packages/core/client/src/schema-component/antd/grid/__tests__/grid.test.tsx new file mode 100644 index 0000000000..bb0ace2a66 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/grid/__tests__/grid.test.tsx @@ -0,0 +1,28 @@ +import React from 'react'; +import { render, screen } from 'testUtils'; +import App1 from '../demos/demo1'; +import App2 from '../demos/demo2'; +import App3 from '../demos/demo3'; + +describe('Grid', () => { + it('block', () => { + render(); + + const blocks = document.querySelectorAll('.block-item'); + + expect(blocks.length).toBe(6); + expect(screen.getByText('Block 1')).toBeInTheDocument(); + }); + + it('input', () => { + render(); + + const inputs = document.querySelectorAll('.ant-input'); + + expect(inputs.length).toBe(3); + }); + + it('initializer', () => { + render(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/grid/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/grid/demos/demo1.tsx index 9d89b1a482..310bce55ec 100644 --- a/packages/core/client/src/schema-component/antd/grid/demos/demo1.tsx +++ b/packages/core/client/src/schema-component/antd/grid/demos/demo1.tsx @@ -6,7 +6,10 @@ const Block = observer( (props) => { const fieldSchema = useFieldSchema(); return ( - +`; + +exports[`Table > Table.RowSelection 1`] = ` +
+
+
+
+
+
+
+ + + + + + +
+
+
+
+
+
+ + + + + + + + + + + + + + + +
+
+ +
+
+
+ Name +
+
+
+
+ + + + + + + + + +
+
+ No data +
+
+
+
+
+
+
+
+
+
+
+
+`; + +exports[`Table > Table.Void 1`] = ` +
+
+
+
+
+
+
+ + + + + + +
+
+
+
+
+
+ + + + + + + + + + + + + + + +
+
+ +
+
+
+ Name +
+
+
+
+ + + + + + + + + +
+
+ No data +
+
+
+
+
+
+
+
+
+
+
+
+`; + +exports[`Table > With Actions 1`] = ` +
+ + +
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + +
+
+ +
+
+
+ Name +
+
+
+ Actions +
+
+
+
+ + + + + + + + + +
+
+ No data +
+
+
+
+
+
+
+
+
+
+
+
+`; diff --git a/packages/core/client/src/schema-component/antd/table/__tests__/table.test.tsx b/packages/core/client/src/schema-component/antd/table/__tests__/table.test.tsx new file mode 100644 index 0000000000..1a5f36c7e2 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/table/__tests__/table.test.tsx @@ -0,0 +1,28 @@ +import React from 'react'; +import { render } from 'testUtils'; +import App1 from '../demos/demo1'; +import App2 from '../demos/demo2'; +import App3 from '../demos/demo3'; +import App4 from '../demos/demo4'; + +describe('Table', () => { + it('Table.Array', () => { + const { container } = render(); + expect(container).toMatchSnapshot(); + }); + + it('Table.Void', () => { + const { container } = render(); + expect(container).toMatchSnapshot(); + }); + + it('Table.RowSelection', () => { + const { container } = render(); + expect(container).toMatchSnapshot(); + }); + + it('With Actions', () => { + const { container } = render(); + expect(container).toMatchSnapshot(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/table/demos/demo4.tsx b/packages/core/client/src/schema-component/antd/table/demos/demo4.tsx index 5946ed7664..a23ad65277 100644 --- a/packages/core/client/src/schema-component/antd/table/demos/demo4.tsx +++ b/packages/core/client/src/schema-component/antd/table/demos/demo4.tsx @@ -22,7 +22,6 @@ const useDataSource = (options) => { const ctx = useContext(DataSourceContext); return useRequest( () => { - console.log('ctx.dataSource', ctx.dataSource); return Promise.resolve({ data: ctx.dataSource, }); @@ -38,7 +37,6 @@ const useCreateAction = () => { const ctx = useContext(DataSourceContext); return { async run() { - console.log(ctx.dataSource); const dataSource = ctx.dataSource || []; dataSource.push({ id: uid(), @@ -67,7 +65,6 @@ const useBulkDestroyAction = () => { const useUpdateAction = () => { const record = useRecord(); - // const form = useForm(); const ctx = useContext(DataSourceContext); return { async run() { @@ -204,7 +201,6 @@ const DataSourceProvider = observer( }, }, ); - console.log('dataSource1', dataSource); return ( +## With Actions + diff --git a/packages/core/client/src/schema-component/antd/tabs/__tests__/tabs.test.tsx b/packages/core/client/src/schema-component/antd/tabs/__tests__/tabs.test.tsx new file mode 100644 index 0000000000..f41dde1c5c --- /dev/null +++ b/packages/core/client/src/schema-component/antd/tabs/__tests__/tabs.test.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import { render, screen, userEvent } from 'testUtils'; +import App1 from '../demos/demo1'; + +describe('Tabs', () => { + it('basic', async () => { + render(); + + expect(screen.getByText('Hello1')).toBeInTheDocument(); + + await userEvent.click(screen.getByText('Tab2')); + expect(screen.getByText('Hello2')).toBeInTheDocument(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/time-picker/ReadPretty.tsx b/packages/core/client/src/schema-component/antd/time-picker/ReadPretty.tsx index 37e313fafa..0a17b96eec 100644 --- a/packages/core/client/src/schema-component/antd/time-picker/ReadPretty.tsx +++ b/packages/core/client/src/schema-component/antd/time-picker/ReadPretty.tsx @@ -1,6 +1,6 @@ -import { usePrefixCls } from '@formily/antd/lib/__builtins__'; +import { usePrefixCls } from '@formily/antd/esm/__builtins__'; import { toArr } from '@formily/shared'; -import { TimeRangePickerProps } from 'antd/lib/time-picker'; +import { TimeRangePickerProps } from 'antd/es/time-picker'; import cls from 'classnames'; import moment from 'moment'; import React from 'react'; diff --git a/packages/core/client/src/schema-component/antd/time-picker/TimePicker.tsx b/packages/core/client/src/schema-component/antd/time-picker/TimePicker.tsx index 996b4bbd8b..3a60ca3119 100644 --- a/packages/core/client/src/schema-component/antd/time-picker/TimePicker.tsx +++ b/packages/core/client/src/schema-component/antd/time-picker/TimePicker.tsx @@ -1,7 +1,7 @@ -import { formatMomentValue, momentable } from '@formily/antd/lib/__builtins__'; +import { formatMomentValue, momentable } from '@formily/antd/esm/__builtins__'; import { connect, mapProps, mapReadPretty } from '@formily/react'; import { TimePicker as AntdTimePicker } from 'antd'; -import { TimePickerProps as AntdTimePickerProps, TimeRangePickerProps } from 'antd/lib/time-picker'; +import { TimePickerProps as AntdTimePickerProps, TimeRangePickerProps } from 'antd/es/time-picker'; import moment from 'moment'; import { ReadPretty } from './ReadPretty'; diff --git a/packages/core/client/src/schema-component/antd/time-picker/__tests__/time-picker.test.tsx b/packages/core/client/src/schema-component/antd/time-picker/__tests__/time-picker.test.tsx new file mode 100644 index 0000000000..c819389256 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/time-picker/__tests__/time-picker.test.tsx @@ -0,0 +1,46 @@ +import React from 'react'; +import { fireEvent, render, screen, userEvent } from 'testUtils'; +import App1 from '../demos/demo1'; +import App2 from '../demos/demo2'; + +describe('TimePicker', () => { + it('should display the value of user input', async () => { + const { container } = render(); + const input = container.querySelector('input') as HTMLInputElement; + + // 1.先点击一下输入框,显示出时间选择器 + await userEvent.click(input); + const submit = screen.getByText('OK'); + + // 2.然后输入 12:00:00 + fireEvent.change(input, { target: { value: '12:00:00' } }); + + // 3.然后点击 OK 按钮 + await userEvent.click(submit); + + expect(input.value).toBe('12:00:00'); + expect(screen.getByText('12:00:00')).toBeInTheDocument(); + }); +}); + +describe('TimePicker.RangePicker', () => { + it('should display the value of user input', async () => { + render(); + const startInput = screen.getByPlaceholderText('Start time') as HTMLInputElement; + const endInput = screen.getByPlaceholderText('End time') as HTMLInputElement; + + // 设置开始时间 + await userEvent.click(startInput); + fireEvent.change(startInput, { target: { value: '12:00:00' } }); + await userEvent.click(screen.getByText('OK')); + + // 设置结束时间 + await userEvent.click(endInput); + fireEvent.change(endInput, { target: { value: '14:00:00' } }); + await userEvent.click(screen.getByText('OK')); + + expect(startInput.value).toBe('12:00:00'); + expect(endInput.value).toBe('14:00:00'); + expect(screen.getByText('12:00:00~14:00:00')).toBeInTheDocument(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/tree-select/ReadPretty.tsx b/packages/core/client/src/schema-component/antd/tree-select/ReadPretty.tsx index 6e2d14c56a..682f976226 100644 --- a/packages/core/client/src/schema-component/antd/tree-select/ReadPretty.tsx +++ b/packages/core/client/src/schema-component/antd/tree-select/ReadPretty.tsx @@ -1,9 +1,9 @@ -import { usePrefixCls } from '@formily/antd/lib/__builtins__'; +import { usePrefixCls } from '@formily/antd/esm/__builtins__'; import { Field } from '@formily/core'; import { observer, useField } from '@formily/react'; import { isArr } from '@formily/shared'; import { Tag } from 'antd'; -import { TreeSelectProps } from 'antd/lib/tree-select'; +import { TreeSelectProps } from 'antd/es/tree-select'; import cls from 'classnames'; import React from 'react'; diff --git a/packages/core/client/src/schema-component/antd/tree-select/__tests__/tree-select.test.tsx b/packages/core/client/src/schema-component/antd/tree-select/__tests__/tree-select.test.tsx new file mode 100644 index 0000000000..f3f36df39c --- /dev/null +++ b/packages/core/client/src/schema-component/antd/tree-select/__tests__/tree-select.test.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import { render, screen, userEvent } from 'testUtils'; +import App1 from '../demos/demo1'; + +describe('TreeSelect', () => { + it('should display the value of user input', async () => { + const { container } = render(); + const input = container.querySelector('input') as HTMLInputElement; + + await userEvent.click(input); + await userEvent.click(screen.getByText('选项1')); + expect(container.querySelector('.ant-tag')?.innerHTML).toBe('选项1'); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/upload/Upload.tsx b/packages/core/client/src/schema-component/antd/upload/Upload.tsx index 4444869d13..78bff3fdc9 100644 --- a/packages/core/client/src/schema-component/antd/upload/Upload.tsx +++ b/packages/core/client/src/schema-component/antd/upload/Upload.tsx @@ -1,5 +1,5 @@ import { DeleteOutlined, DownloadOutlined, InboxOutlined, LoadingOutlined, PlusOutlined } from '@ant-design/icons'; -import { usePrefixCls } from '@formily/antd/lib/__builtins__'; +import { usePrefixCls } from '@formily/antd/esm/__builtins__'; import { connect, mapProps, mapReadPretty } from '@formily/react'; import { Upload as AntdUpload, Button, Progress, Space } from 'antd'; import cls from 'classnames'; diff --git a/packages/core/client/src/schema-component/antd/upload/__tests__/__snapshots__/upload.test.tsx.snap b/packages/core/client/src/schema-component/antd/upload/__tests__/__snapshots__/upload.test.tsx.snap new file mode 100644 index 0000000000..eb7b0f2c4c --- /dev/null +++ b/packages/core/client/src/schema-component/antd/upload/__tests__/__snapshots__/upload.test.tsx.snap @@ -0,0 +1,782 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Upload > basic 1`] = ` +
+ + +`; + +exports[`Upload > uploading 1`] = ` +
+ +`; diff --git a/packages/core/client/src/schema-component/antd/upload/__tests__/upload.test.tsx b/packages/core/client/src/schema-component/antd/upload/__tests__/upload.test.tsx new file mode 100644 index 0000000000..c980211f68 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/upload/__tests__/upload.test.tsx @@ -0,0 +1,16 @@ +import React from 'react'; +import { render } from 'testUtils'; +import App1 from '../demos/demo1'; +import App2 from '../demos/demo2'; + +describe('Upload', () => { + it('basic', () => { + const { container } = render(); + expect(container).toMatchSnapshot(); + }); + + it('uploading', () => { + const { container } = render(); + expect(container).toMatchSnapshot(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/upload/demos/apiClient.ts b/packages/core/client/src/schema-component/antd/upload/demos/apiClient.ts index b8979a48be..9ebfb514e5 100644 --- a/packages/core/client/src/schema-component/antd/upload/demos/apiClient.ts +++ b/packages/core/client/src/schema-component/antd/upload/demos/apiClient.ts @@ -1,15 +1,9 @@ -import { APIClient } from '@nocobase/client'; -import MockAdapter from 'axios-mock-adapter'; - -export const apiClient = new APIClient({ - baseURL: 'http://localhost:8001/api/', -}); - -const mock = new MockAdapter(apiClient.axios); +import { mockAPIClient } from '../../../../test'; const sleep = (value: number) => new Promise((resolve) => setTimeout(resolve, value)); +const { apiClient, mockRequest } = mockAPIClient(); -mock.onPost('/attachments:create').reply(async (config) => { +mockRequest.onPost('/attachments:create').reply(async (config) => { const total = 1024; // mocked file size for (const progress of [0, 0.2, 0.4, 0.6, 0.8, 1]) { await sleep(500); diff --git a/packages/core/client/src/schema-component/antd/upload/index.md b/packages/core/client/src/schema-component/antd/upload/index.md index 845666d0bd..e3a6b01625 100644 --- a/packages/core/client/src/schema-component/antd/upload/index.md +++ b/packages/core/client/src/schema-component/antd/upload/index.md @@ -13,6 +13,4 @@ group: -### Upload - diff --git a/packages/core/client/src/schema-component/antd/upload/shared.ts b/packages/core/client/src/schema-component/antd/upload/shared.ts index 34aa53abf0..936bc56b1c 100644 --- a/packages/core/client/src/schema-component/antd/upload/shared.ts +++ b/packages/core/client/src/schema-component/antd/upload/shared.ts @@ -2,8 +2,8 @@ import { Field } from '@formily/core'; import { useField } from '@formily/react'; import { reaction } from '@formily/reactive'; import { isArr, isValid, toArr as toArray } from '@formily/shared'; -import { UploadChangeParam } from 'antd/lib/upload'; -import { UploadFile } from 'antd/lib/upload/interface'; +import { UploadChangeParam } from 'antd/es/upload'; +import { UploadFile } from 'antd/es/upload/interface'; import { useEffect } from 'react'; import { useAPIClient } from '../../../api-client'; import { UPLOAD_PLACEHOLDER } from './placeholder'; diff --git a/packages/core/client/src/schema-component/antd/upload/type.d.ts b/packages/core/client/src/schema-component/antd/upload/type.d.ts index abf05f9cdc..be3447012d 100644 --- a/packages/core/client/src/schema-component/antd/upload/type.d.ts +++ b/packages/core/client/src/schema-component/antd/upload/type.d.ts @@ -1,5 +1,5 @@ -import type { DraggerProps as AntdDraggerProps, UploadProps as AntdUploadProps } from 'antd/lib/upload'; -import { UploadFile } from 'antd/lib/upload/interface'; +import type { DraggerProps as AntdDraggerProps, UploadProps as AntdUploadProps } from 'antd/es/upload'; +import { UploadFile } from 'antd/es/upload/interface'; import React from 'react'; export type UploadProps = Omit & { diff --git a/packages/core/client/src/schema-component/antd/variable/__tests__/variable.test.tsx b/packages/core/client/src/schema-component/antd/variable/__tests__/variable.test.tsx new file mode 100644 index 0000000000..6648dc6070 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/variable/__tests__/variable.test.tsx @@ -0,0 +1,83 @@ +import React from 'react'; +import { render, screen, sleep, userEvent } from 'testUtils'; +import App1 from '../demos/demo1'; +import App2 from '../demos/demo2'; +import App3 from '../demos/demo3'; + +describe('Variable', () => { + it('Variable.Input', async () => { + render(); + + expect(screen.getByPlaceholderText('Null')).toBeInTheDocument(); + + await userEvent.click(screen.getByText('x')); + await userEvent.click(screen.getByText('v1')); + await sleep(); + expect(screen.getByText('v1', { selector: '.ant-tag' })).toMatchInlineSnapshot(` + + v1 + + `); + }); + + it('Variable.TextArea', async () => { + render(); + + const input = document.querySelector('.ant-input') as HTMLElement; + const variableSelector = document.querySelector('.ant-select-selector') as HTMLElement; + expect(input).toBeInTheDocument(); + expect(variableSelector).toBeInTheDocument(); + + await userEvent.type(input, '1+'); + await sleep(); + + await userEvent.click(variableSelector); + await userEvent.click(screen.getByText('v1')); + await sleep(); + expect(input).toMatchInlineSnapshot(` +
+ 1+ + + v1 + +
+ `); + }); + + it('Variable.JSON', async () => { + render(); + + const input = document.querySelector('.ant-input') as HTMLTextAreaElement; + const variableSelector = document.querySelector('.ant-select-selector') as HTMLElement; + expect(input).toBeInTheDocument(); + expect(variableSelector).toBeInTheDocument(); + expect(screen.getByText('Prettify')).toBeInTheDocument(); + + // https://testing-library.com/docs/user-event/keyboard/ + await userEvent.type(input, '{{ "a": "'); + await userEvent.click(variableSelector); + await userEvent.click(screen.getByText('v1')); + await sleep(); + + await userEvent.type(input, '" }'); + expect(input.value).toMatchInlineSnapshot('"{ \\"a\\": \\"{{v1}}\\" }"'); + + // 格式化一下 + await userEvent.click(screen.getByText('Prettify')); + expect(input.value).toMatchInlineSnapshot(` + "{ + \\"a\\": \\"{{v1}}\\" + }" + `); + }); +}); diff --git a/packages/core/client/src/schema-initializer/items/ExpandActionInitializer.tsx b/packages/core/client/src/schema-initializer/items/ExpandActionInitializer.tsx index 3569e26ce5..3ec8455377 100644 --- a/packages/core/client/src/schema-initializer/items/ExpandActionInitializer.tsx +++ b/packages/core/client/src/schema-initializer/items/ExpandActionInitializer.tsx @@ -1,16 +1,16 @@ import React from 'react'; +import { useTranslation } from 'react-i18next'; import { ActionInitializer } from './ActionInitializer'; -import { useTranslation } from 'react-i18next' export const ExpandActionInitializer = (props) => { - const { t } = useTranslation() + const { t } = useTranslation(); const schema = { 'x-action': 'expandAll', 'x-component': 'Action', 'x-designer': 'Expand.Action.Design', 'x-component-props': { - titleExpand: t("Expand all"), - titleCollapse: t("Collapse all"), + titleExpand: t('Expand all'), + titleCollapse: t('Collapse all'), iconExpand: 'nodeexpandoutlined', iconCollapse: 'nodecollapseoutlined', component: 'Expand.Action', diff --git a/packages/core/client/src/system-settings/SystemSettingsProvider.tsx b/packages/core/client/src/system-settings/SystemSettingsProvider.tsx index 8a6af20a4a..8439bae313 100644 --- a/packages/core/client/src/system-settings/SystemSettingsProvider.tsx +++ b/packages/core/client/src/system-settings/SystemSettingsProvider.tsx @@ -1,4 +1,4 @@ -import { Result } from 'ahooks/lib/useRequest/src/types'; +import { Result } from 'ahooks/es/useRequest/src/types'; import { Spin } from 'antd'; import React, { createContext, useContext } from 'react'; import { useRequest } from '..'; diff --git a/packages/core/client/src/test/collections.ts b/packages/core/client/src/test/collections.ts new file mode 100644 index 0000000000..8df718c519 --- /dev/null +++ b/packages/core/client/src/test/collections.ts @@ -0,0 +1,1319 @@ +export default [ + { + key: '17zb9wfq0vt', + name: 'product', + title: 's', + inherit: false, + fields: [], + createdBy: true, + updatedBy: true, + sortable: true, + }, + { + key: '1s4aq7jbxdh', + name: 'roles', + title: '{{t("Roles")}}', + inherit: false, + fields: [ + { + key: 'gs6190e27z5', + name: 'name', + type: 'uid', + interface: 'input', + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'vy6i30jm9jm', + uiSchema: { + 'x-uid': 'vy6i30jm9jm', + name: 'vlldvknkn3t', + type: 'string', + title: '{{t("Role UID")}}', + 'x-component': 'Input', + }, + prefix: 'r_', + primaryKey: true, + }, + { + key: 'w0hvovoxnjh', + name: 'title', + type: 'string', + interface: 'input', + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'pyq24tp0zkj', + uiSchema: { + 'x-uid': 'pyq24tp0zkj', + name: 'wtku9z07h69', + type: 'string', + title: '{{t("Role name")}}', + 'x-component': 'Input', + }, + unique: true, + }, + { + key: 'lxysmomsdhy', + name: 'description', + type: 'string', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + }, + { + key: 'ynyhe4kgxku', + name: 'strategy', + type: 'json', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + }, + { + key: 'qr9949ps9dv', + name: 'default', + type: 'boolean', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + defaultValue: false, + }, + { + key: '11ts4nwrm8c', + name: 'allowConfigure', + type: 'boolean', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + }, + { + key: 'nxj4s7xev9g', + name: 'allowNewMenu', + type: 'boolean', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + }, + { + key: 'ibwisd53xeg', + name: 'menuUiSchemas', + type: 'belongsToMany', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + target: 'uiSchemas', + targetKey: 'x-uid', + foreignKey: 'roleName', + sourceKey: 'name', + otherKey: 'uiSchemaXUid', + through: 'rolesUischemas', + }, + { + key: '0vt1uoy8f47', + name: 'resources', + type: 'hasMany', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + target: 'rolesResources', + sourceKey: 'name', + targetKey: 'id', + foreignKey: 'roleName', + }, + ], + autoGenId: false, + model: 'RoleModel', + filterTargetKey: 'name', + }, + { + key: 'nhng5sgypw8', + name: 't_j6omof6tza8', + title: '任务', + inherit: false, + fields: [ + { + key: 'aabs1ya9aux', + name: 'f_g8j5jvalqh0', + type: 'string', + interface: 'input', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'tzb6h0tsbis', + uiSchema: { + 'x-uid': 'tzb6h0tsbis', + name: 'y94c05v2hp2', + type: 'string', + 'x-component': 'Input', + title: '名称', + enum: [], + }, + }, + { + key: 'kidn54kisne', + name: 'f_tegyd222bcc', + type: 'text', + interface: 'textarea', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'p4uucjm3rrx', + uiSchema: { + 'x-uid': 'p4uucjm3rrx', + name: 'ri9ulk87owm', + type: 'string', + 'x-component': 'Input.TextArea', + title: '描述', + enum: [], + }, + }, + { + key: 'kwdiruosgsb', + name: 'f_u007sq2jg93', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: 's5w3l6pl1hn', + uiSchemaUid: 'iea79k3kmao', + uiSchema: { + 'x-uid': 'iea79k3kmao', + name: 'njked4wch3i', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人', + enum: [], + }, + target: 'users', + targetKey: 'id', + sourceKey: 'id', + through: 't_7476m1wwsfe', + foreignKey: 'f_9zwkbo7dd18', + otherKey: 'f_q84aphtx7eb', + }, + { + key: 'w7civak6gp3', + name: 'f_hpmvdltzs6m', + type: 'string', + interface: 'radioGroup', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: '481uv9zj072', + uiSchema: { + 'x-uid': '481uv9zj072', + name: '8fyelcfuzfu', + enum: [ + { value: '67snt3e6yld', label: '未开始', color: 'default' }, + { value: 'ht963n365al', label: '进行中', color: 'green' }, + { value: '2s2s8wzcnm0', label: '测试中', color: 'volcano' }, + { value: 'irepvdzp1ac', label: '已完成', color: 'blue' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '状态', + }, + }, + { + key: '9x87w5z0ea6', + name: 'f_jj9cyhron1d', + type: 'hasMany', + interface: 'subTable', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'pndvx008mmn', + uiSchema: { + 'x-uid': 'pndvx008mmn', + name: 'l8xqzpkxj3p', + type: 'array', + 'x-component': 'Table', + 'x-component-props': {}, + enum: [], + title: '子任务', + }, + targetKey: 'id', + sourceKey: 'id', + foreignKey: 'f_yzivojrp6l8', + target: 't_ab12qiwruwk', + }, + { + key: '3f4y1iq16ux', + name: 'f_ooar0pto2ko', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: '5xf7izxjny5', + uiSchema: { + 'x-uid': '5xf7izxjny5', + name: '9az9003ijcm', + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '附件', + enum: [], + }, + target: 'attachments', + targetKey: 'id', + sourceKey: 'id', + through: 't_5a7wh2qhk4l', + foreignKey: 'f_tqfsxclrexu', + otherKey: 'f_j2krlyq6oka', + }, + { + key: '4um5urxskg0', + name: 'f_f7txg1oc3nt', + type: 'date', + interface: 'createdAt', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'jjax6r7c84m', + uiSchema: { + 'x-uid': 'jjax6r7c84m', + name: 'clidfmw96u3', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true, timeFormat: 'HH:mm:ss' }, + type: 'datetime', + title: '创建时间', + 'x-component': 'DatePicker', + 'x-read-pretty': true, + enum: [], + }, + field: 'createdAt', + }, + { + key: 'dnwqg2s3oph', + name: 'f_2dpc76bszit', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'po3y2pc112z', + uiSchema: { + 'x-uid': 'po3y2pc112z', + name: 'ke2rte2zikm', + type: 'object', + title: '创建人', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + enum: [], + }, + target: 'users', + foreignKey: 'createdById', + targetKey: 'id', + }, + { + key: '1sayjktagk3', + name: 'f_z27302tl2bf', + type: 'string', + interface: 'select', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: '0a28rxnov8o', + uiSchema: { + 'x-uid': '0a28rxnov8o', + name: '2vg44ojdq4j', + enum: [ + { value: 'mkvgt7ndsqd', label: '缺陷', color: 'volcano' }, + { value: '9yyv2tawmry', label: '交互', color: 'green' }, + { value: 'vx4bhmtsuus', label: '需求', color: 'cyan' }, + ], + type: 'string', + 'x-component': 'Select', + title: '类型', + }, + }, + { + key: 'zhvtzwta7bz', + name: 'f_yc8jbfiqfvh', + type: 'string', + interface: 'radioGroup', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'jijqs397op9', + uiSchema: { + 'x-uid': 'jijqs397op9', + name: '99v9hnujiuh', + enum: [ + { value: 's7hocw6twfk', label: '高', color: 'red' }, + { value: 'v25527dxseu', label: '中', color: 'blue' }, + { value: 'c4hobfb5k07', label: '低', color: 'lime' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '优先级', + }, + }, + { + key: 'nobsmkp6ypg', + name: 'f_ksgzy9vmgce', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: 'z70jtfabrm7', + uiSchemaUid: '3gbviwfd0cv', + uiSchema: { + 'x-uid': '3gbviwfd0cv', + name: '6sabm3win42', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '迭代', + enum: [], + }, + target: 't_94rsj6kbzvn', + targetKey: 'id', + sourceKey: 'id', + through: 't_ewdf2dsjlu3', + foreignKey: 'f_72tnpdz6kfg', + otherKey: 'f_8do8o1wsavk', + }, + { + key: 'rwtqeecnbst', + name: 'f_zek99qhv0vc', + type: 'date', + interface: 'updatedAt', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'df0kmwka9ra', + uiSchema: { + 'x-uid': 'df0kmwka9ra', + name: 'e3hmz8upyle', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true, timeFormat: 'HH:mm:ss' }, + type: 'datetime', + title: '更新时间', + 'x-component': 'DatePicker', + 'x-read-pretty': true, + }, + field: 'updatedAt', + }, + { + key: 'tm66hbii6zz', + name: 'f_cht6rsiiiko', + type: 'string', + interface: 'select', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'tkfjlde4ppl', + uiSchema: { + 'x-uid': 'tkfjlde4ppl', + name: 'p0rccyurzle', + enum: [ + { value: 'uduxfqpr5t2', label: '菜单' }, + { value: 'dnphxkwat35', label: '权限' }, + { value: '5cso9lpizog', label: '数据表' }, + { value: 'wlg329nsu3a', label: '字段' }, + { value: 'm8z7r06vk9z', label: '表格' }, + { value: 'ftfccbha25a', label: '表单' }, + { value: 'o33ljfkje2h', label: '详情' }, + { value: 'ym9wwk3aqbu', label: '日历' }, + { value: 'wge57qtiz14', label: '看板' }, + { value: 'm4xoc8rbafg', label: '操作' }, + { value: 'r6l2wg1snxc', label: '配置' }, + { value: 'j1cv1vf16fm', label: '附件' }, + { value: 'l464jdsy7vr', label: '容器' }, + ], + type: 'string', + 'x-component': 'Select', + title: '分类', + }, + }, + { + key: 'c9hzonl1hzq', + name: 'f_47f2d9wgofm', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: '7mufig9muag', + uiSchemaUid: 'rbl27ngs563', + uiSchema: { + 'x-uid': 'rbl27ngs563', + name: 'xrvwttiv064', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '相关任务', + }, + target: 't_j6omof6tza8', + targetKey: 'id', + sourceKey: 'id', + through: 't_qhgbwomd2t7', + foreignKey: 'f_jes256zqwr1', + otherKey: 'f_gtgjj059mye', + }, + { + key: '7mufig9muag', + name: 'f_qmlomqm7lvb', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: 'c9hzonl1hzq', + uiSchemaUid: 'vgy9cgq9v6b', + uiSchema: { + 'x-uid': 'vgy9cgq9v6b', + name: 'sf99arn65jj', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '任务', + }, + target: 't_j6omof6tza8', + through: 't_qhgbwomd2t7', + sourceKey: 'id', + foreignKey: 'f_gtgjj059mye', + targetKey: 'id', + otherKey: 'f_jes256zqwr1', + }, + { + key: 'hv3kx2z8edn', + name: 'f_hpmvdltzs6m_sort', + type: 'sort', + interface: null, + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + hidden: true, + scopeKey: 'f_hpmvdltzs6m', + }, + { + key: 'q6wy6jcpdfr', + name: 'f_a4z4h45vi5b', + type: 'string', + interface: 'select', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'lx4k023vm7k', + uiSchema: { + 'x-uid': 'lx4k023vm7k', + name: 'e9u95lm0c2q', + enum: [ + { value: 'hgobsqbfnd4', label: 'SchemaInitializer', color: 'red' }, + { value: 't8prrpfk7kl', label: 'SchemaSettings', color: 'magenta' }, + { value: 'r3fxlrunwd8', label: 'SchemaComponent', color: 'lime' }, + { value: 'bidogljo0l3', label: 'CollectionField', color: 'blue' }, + { value: 'ygy1zfdr1z6', label: 'ACL', color: 'purple' }, + { value: 'ef9qf0wzpt5', label: 'DndContext', color: 'cyan' }, + { value: '45sfwd7ie30', label: 'useRequest', color: 'volcano' }, + ], + type: 'string', + 'x-component': 'Select', + title: '开发分类', + }, + }, + { + key: '936iis76zdx', + name: 'f_a4z4h45vi5b_sort', + type: 'sort', + interface: null, + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + hidden: true, + scopeKey: 'f_a4z4h45vi5b', + }, + { + key: 'zre21o0a5a9', + name: 'f_d93g4r08krl', + type: 'string', + interface: 'input', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: '96geljdh9j6', + uiSchema: { + 'x-uid': '96geljdh9j6', + name: 'zplxa37mb0y', + type: 'string', + 'x-component': 'Input', + title: '评估', + enum: [], + }, + }, + { + key: 'jasdf0kcqbs', + name: 'f_1ckuegfab9s', + type: 'text', + interface: 'textarea', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: '61h9pserdqr', + uiSchema: { + 'x-uid': '61h9pserdqr', + name: 'uepfpdv289y', + type: 'string', + 'x-component': 'Input.TextArea', + title: '评估备注', + }, + }, + ], + createdBy: true, + updatedBy: true, + sortable: true, + }, + { + key: 'nlxapox70a3', + name: 't_ab12qiwruwk', + title: null, + inherit: true, + fields: [ + { + key: 'q9xx9ixxxyb', + name: 'f_m7ibo1vrvnm', + type: 'string', + interface: 'input', + collectionName: 't_ab12qiwruwk', + parentKey: '9x87w5z0ea6', + reverseKey: null, + uiSchemaUid: 'ucn6wm03zrq', + uiSchema: { + 'x-uid': 'ucn6wm03zrq', + name: 'k07s9nhhj6c', + type: 'string', + 'x-component': 'Input', + title: '名称', + }, + }, + { + key: 'y91qig4eyzm', + name: 'f_kukaw9kddyj', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_ab12qiwruwk', + parentKey: '9x87w5z0ea6', + reverseKey: 'tvwwt24vukv', + uiSchemaUid: '7c9ch1fknbr', + uiSchema: { + 'x-uid': '7c9ch1fknbr', + name: 'gv1k2nhucte', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人', + }, + target: 'users', + targetKey: 'id', + sourceKey: 'id', + through: 't_gsv43y8ebt8', + foreignKey: 'f_hbbvlsbe9gs', + otherKey: 'f_bhj1xy7uyc8', + }, + { + key: 'gg0xx1vln6w', + name: 'f_4mpiovytw4d', + type: 'text', + interface: 'textarea', + collectionName: 't_ab12qiwruwk', + parentKey: '9x87w5z0ea6', + reverseKey: null, + uiSchemaUid: '3xgmf0ee5fn', + uiSchema: { + 'x-uid': '3xgmf0ee5fn', + name: '28sf67whpfs', + type: 'string', + 'x-component': 'Input.TextArea', + title: '描述', + }, + }, + { + key: 'zpz6o74z9u4', + name: 'f_lxsum89wkzd', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 't_ab12qiwruwk', + parentKey: '9x87w5z0ea6', + reverseKey: null, + uiSchemaUid: 'wosew16td91', + uiSchema: { + 'x-uid': 'wosew16td91', + name: 'p82ihvtkxtf', + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '附件', + }, + target: 'attachments', + targetKey: 'id', + sourceKey: 'id', + through: 't_cn6cweinuw7', + foreignKey: 'f_r824sp05l43', + otherKey: 'f_8k3e4i0d04y', + }, + ], + createdBy: true, + updatedBy: true, + sortable: true, + }, + { + key: 'oftbzt8nm2o', + name: 'users', + title: '{{t("Users")}}', + inherit: false, + fields: [ + { + key: 'khov1egnsur', + name: 'nickname', + type: 'string', + interface: 'input', + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: '3ohfk46bf7o', + uiSchema: { + 'x-uid': '3ohfk46bf7o', + name: 'prmmf3kg8rx', + type: 'string', + title: '{{t("Nickname")}}', + 'x-component': 'Input', + }, + }, + { + key: 'u6cvmn45o6a', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: '69ywpwux1zh', + uiSchema: { + 'x-uid': '69ywpwux1zh', + name: 'u8djuprwttj', + type: 'string', + title: '{{t("Email")}}', + 'x-component': 'Input', + require: true, + }, + unique: true, + }, + { + key: 'jwaky9982f2', + name: 'password', + type: 'password', + interface: 'password', + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'qs374baqkh0', + uiSchema: { + 'x-uid': 'qs374baqkh0', + name: 'tf5dolxh2i4', + type: 'string', + title: '{{t("Password")}}', + 'x-component': 'Password', + }, + hidden: true, + }, + { + key: '4g5nics20go', + name: 'roles', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'lpkacakd4my', + uiSchema: { + 'x-uid': 'lpkacakd4my', + name: '3oylvillmwu', + type: 'array', + title: '{{t("Roles")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'title', value: 'name' } }, + }, + target: 'roles', + foreignKey: 'userId', + otherKey: 'roleName', + sourceKey: 'id', + targetKey: 'name', + through: 'rolesUsers', + }, + { + key: 'cqqhyq32tvf', + name: 'appLang', + type: 'string', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + }, + { + key: 't7t97s1rwid', + name: 'token', + type: 'string', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + unique: true, + hidden: true, + }, + { + key: '5myliungho1', + name: 'resetToken', + type: 'string', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + unique: true, + hidden: true, + }, + { + key: 'q2eg83quxls', + name: 'sort', + type: 'sort', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + hidden: true, + }, + { + key: 's5w3l6pl1hn', + name: 'f_xd4v2uljqcu', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 'users', + parentKey: null, + reverseKey: 'kwdiruosgsb', + uiSchemaUid: 'zv4gvihowwm', + uiSchema: { + 'x-uid': 'zv4gvihowwm', + name: 'mjjpnphkkhf', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人', + }, + target: 't_j6omof6tza8', + through: 't_7476m1wwsfe', + sourceKey: 'id', + foreignKey: 'f_q84aphtx7eb', + targetKey: 'id', + otherKey: 'f_9zwkbo7dd18', + }, + { + key: 'tvwwt24vukv', + name: 'f_qpsqy5rtc8t', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 'users', + parentKey: null, + reverseKey: 'y91qig4eyzm', + uiSchemaUid: '5ksz03zw47c', + uiSchema: { + 'x-uid': '5ksz03zw47c', + name: '8ukjiawzduz', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人', + }, + target: 't_ab12qiwruwk', + through: 't_gsv43y8ebt8', + sourceKey: 'id', + foreignKey: 'f_bhj1xy7uyc8', + targetKey: 'id', + otherKey: 'f_hbbvlsbe9gs', + }, + ], + sortable: 'sort', + }, + { + key: 'tyztw0ulriv', + name: 't_94rsj6kbzvn', + title: '迭代', + inherit: false, + fields: [ + { + key: 'nq4mp00jwip', + name: 'f_zio9ewkxss7', + type: 'string', + interface: 'input', + collectionName: 't_94rsj6kbzvn', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'q7vois7ptlt', + uiSchema: { + 'x-uid': 'q7vois7ptlt', + name: 'o9ue1s4tu8k', + type: 'string', + 'x-component': 'Input', + title: '名称', + enum: [], + }, + }, + { + key: 'ec2833af7n1', + name: 'f_ojboh2wxpju', + type: 'text', + interface: 'textarea', + collectionName: 't_94rsj6kbzvn', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'pco1f8sq2jq', + uiSchema: { + 'x-uid': 'pco1f8sq2jq', + name: 'lb2hdydextn', + type: 'string', + 'x-component': 'Input.TextArea', + title: '描述', + enum: [], + }, + }, + { + key: '82uqmdjr3v4', + name: 'f_nunmzapigvk', + type: 'date', + interface: 'datetime', + collectionName: 't_94rsj6kbzvn', + parentKey: null, + reverseKey: null, + uiSchemaUid: '2gawk8arctt', + uiSchema: { + 'x-uid': '2gawk8arctt', + name: 'j9j7c2wyev2', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: false }, + type: 'datetime', + 'x-component': 'DatePicker', + title: '开始日期', + enum: [], + }, + }, + { + key: 'mdx2eqz9ei8', + name: 'f_rberbnphu9u', + type: 'date', + interface: 'datetime', + collectionName: 't_94rsj6kbzvn', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'pj0znpff63y', + uiSchema: { + 'x-uid': 'pj0znpff63y', + name: 'c5h7agr2qy4', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: false }, + type: 'datetime', + 'x-component': 'DatePicker', + title: '结束日期', + enum: [], + }, + }, + { + key: 'z70jtfabrm7', + name: 'f_rabhmdetc3p', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_94rsj6kbzvn', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'aun2xsfua8d', + uiSchema: { + 'x-uid': 'aun2xsfua8d', + name: 'i508c1outz2', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '任务', + enum: [], + }, + target: 't_j6omof6tza8', + through: 't_ewdf2dsjlu3', + sourceKey: 'id', + foreignKey: 'f_8do8o1wsavk', + targetKey: 'id', + otherKey: 'f_72tnpdz6kfg', + }, + ], + createdBy: true, + updatedBy: true, + sortable: true, + }, + { + key: 'vv8umfa9592', + name: 'test_sheet', + title: '测试表', + inherit: false, + fields: [ + { + key: 'q1xye1ooeol', + name: 'f_7mh6k6re0ey', + type: 'string', + interface: 'phone', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 't9ddc5n5pv8', + uiSchema: { + 'x-uid': 't9ddc5n5pv8', + name: 'd3hwsg020u8', + type: 'string', + 'x-component': 'Input', + 'x-validator': 'phone', + title: '手机', + }, + }, + { + key: '25icwn35oin', + name: 'f_turkjlzi52z', + type: 'string', + interface: 'email', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: '3bkgd97f63v', + uiSchema: { + 'x-uid': '3bkgd97f63v', + name: 'zkvhu5cm4no', + type: 'string', + 'x-component': 'Input', + 'x-validator': 'email', + title: '邮箱', + }, + }, + { + key: '3cqe0mpcrmg', + name: 'f_c14whhblhtd', + type: 'float', + interface: 'number', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: '4bajzziz060', + uiSchema: { + 'x-uid': '4bajzziz060', + name: '366t9rvl34b', + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '数字', + }, + }, + { + key: 'y39vi1z69pw', + name: 'f_z1b674d907e', + type: 'float', + interface: 'percent', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'vbnoib14uzl', + uiSchema: { + 'x-uid': 'vbnoib14uzl', + name: 'rumohzj4lh6', + 'x-component-props': { step: '0.1', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'InputNumber', + title: '百分比', + }, + }, + { + key: 'eouuwoag6ka', + name: 'f_4tzp4nhmvt2', + type: 'string', + interface: 'icon', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'qmmw3zc8l60', + uiSchema: { + 'x-uid': 'qmmw3zc8l60', + name: 'aivg5c51gc9', + type: 'string', + 'x-component': 'IconPicker', + title: '图标', + }, + }, + { + key: 'qurfmfe2hfi', + name: 'f_z0s4m3hgadd', + type: 'password', + interface: 'password', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'tkp46kn682m', + uiSchema: { + 'x-uid': 'tkp46kn682m', + name: '7q7yeobot0j', + type: 'string', + 'x-component': 'Password', + title: '密码', + }, + }, + { + key: 'ka4k5tfh3k5', + name: 'f_q5qnozezx9s', + type: 'boolean', + interface: 'checkbox', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'wgyf4ozsvdi', + uiSchema: { + 'x-uid': 'wgyf4ozsvdi', + name: 'x6agce8s18w', + type: 'boolean', + 'x-component': 'Checkbox', + title: '勾选', + }, + }, + { + key: '3dhczyw3ye2', + name: 'f_jbzwvldpyaa', + type: 'array', + interface: 'multipleSelect', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'hlmfjs2pu9t', + uiSchema: { + 'x-uid': 'hlmfjs2pu9t', + name: 'ao52nx5pune', + enum: [ + { value: '6mbqdwuzfca', label: '选项1', color: 'red' }, + { value: '9zi6s2fbj0q', label: '选项2', color: 'geekblue' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '多选', + }, + defaultValue: [], + }, + { + key: 'erdrp1gi587', + name: 'f_04krym08wxq', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: '6has8wyzohq', + uiSchema: { + 'x-uid': '6has8wyzohq', + name: 'fvwsjt58xx4', + enum: [ + { value: '4lsgdvfl7xq', label: '复选2', color: 'cyan' }, + { value: 'qzuki8bmilg', label: '复选1', color: 'purple' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '复选', + }, + defaultValue: [], + }, + { + key: 'rykbub69xu7', + name: 'f_xclbl3htmxs', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'yml5yqzgvn8', + uiSchema: { + 'x-uid': 'yml5yqzgvn8', + name: '2ye7y09agup', + 'x-component-props': { + maxLevel: 5, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: true, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '中国地区', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + sourceKey: 'id', + through: 't_o9ry49u6xez', + foreignKey: 'f_44r8nsvdvz7', + otherKey: 'f_l0tzoymin3i', + }, + { + key: 'acm789iz922', + name: 'f_v4cgx7l5hwm', + type: 'text', + interface: 'markdown', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: '8a2erdhwcvb', + uiSchema: { + 'x-uid': '8a2erdhwcvb', + name: 'rqeiz26vuns', + type: 'string', + 'x-component': 'Markdown', + title: 'Markdown', + }, + }, + { + key: 'zmip3swglzv', + name: 'f_ztaop411cdw', + type: 'time', + interface: 'time', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'r6s6rrjzfml', + uiSchema: { + 'x-uid': 'r6s6rrjzfml', + name: 'ct893ay5apv', + 'x-component-props': { format: 'HH:mm:ss' }, + type: 'string', + 'x-component': 'TimePicker', + title: '时间', + }, + }, + { + key: 'nx1p69b6g96', + name: 'f_mf8ccm0pjmh', + type: 'date', + interface: 'datetime', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: '08p9oztyjf2', + uiSchema: { + 'x-uid': '08p9oztyjf2', + name: 'bkdnndmfpeo', + 'x-component-props': { dateFormat: 'DD/MM/YYYY', showTime: true, timeFormat: 'HH:mm:ss' }, + type: 'datetime', + 'x-component': 'DatePicker', + title: '日期', + enum: [], + }, + }, + { + key: 'ge57kma4gue', + name: 'f_dqq0xjkdqbo', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'zzmst1r01gc', + uiSchema: { + 'x-uid': 'zzmst1r01gc', + name: 'def1ngennlx', + type: 'object', + title: '创建人', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + target: 'users', + foreignKey: 'createdById', + targetKey: 'id', + }, + { + key: 'yqye22n1f1c', + name: 'f_7ukoar9jevs', + type: 'date', + interface: 'createdAt', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'lgnqb28lb91', + uiSchema: { + 'x-uid': 'lgnqb28lb91', + name: 'jdjz5cngm3j', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true, timeFormat: 'HH:mm:ss' }, + type: 'datetime', + title: '创建日期', + 'x-component': 'DatePicker', + 'x-read-pretty': true, + }, + field: 'createdAt', + }, + { + key: 'n4ap9l1l4wd', + name: 'f_81orjgxlbuo', + type: 'date', + interface: 'updatedAt', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'z19egimonh9', + uiSchema: { + 'x-uid': 'z19egimonh9', + name: 'xtzu6cpnsm4', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true }, + type: 'datetime', + title: '修改日期', + 'x-component': 'DatePicker', + 'x-read-pretty': true, + }, + field: 'updatedAt', + }, + { + key: 'oqy67fm6af8', + name: 'f_e31b9oqe9ej', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'tm4f7z0nyso', + uiSchema: { + 'x-uid': 'tm4f7z0nyso', + name: '19srjtwyce1', + type: 'object', + title: '修改人', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + target: 'users', + foreignKey: 'updatedById', + targetKey: 'id', + }, + ], + createdBy: true, + updatedBy: true, + sortable: true, + }, +]; diff --git a/packages/core/client/src/test/index.ts b/packages/core/client/src/test/index.ts new file mode 100644 index 0000000000..0ca8d5a56f --- /dev/null +++ b/packages/core/client/src/test/index.ts @@ -0,0 +1,4 @@ +export { default as collections } from './collections'; +export { mainCollections } from './mainCollections'; +export * from './mockAPIClient'; + diff --git a/packages/core/client/src/test/mainCollections.ts b/packages/core/client/src/test/mainCollections.ts new file mode 100644 index 0000000000..bfa42b6009 --- /dev/null +++ b/packages/core/client/src/test/mainCollections.ts @@ -0,0 +1,37752 @@ +/** + * 当前 https://main.test.nocobase.com/ 的数据表,时间:2023-06-04 + */ +export const mainCollections = [ + { + key: 'sx06i8h734p', + name: 'users', + title: '{{t("Users")}}', + inherit: false, + hidden: false, + fields: [ + { + key: 'in3coyphs2y', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'users', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '7slsxe3ecc6', + name: 'nickname', + type: 'string', + interface: 'input', + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '{{t("Nickname")}}', 'x-component': 'Input' }, + }, + { + key: 'ootprgkoawo', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'users', + parentKey: null, + reverseKey: null, + unique: true, + uiSchema: { + type: 'string', + title: '{{t("Email")}}', + 'x-component': 'Input', + 'x-validator': 'email', + required: true, + }, + }, + { + key: 'tdpdzvlafji', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'users', + parentKey: null, + reverseKey: null, + unique: true, + uiSchema: { + type: 'string', + title: '{{t("Phone")}}', + 'x-component': 'Input', + 'x-validator': 'phone', + required: true, + }, + }, + { + key: '45haybt78i5', + name: 'password', + type: 'password', + interface: 'password', + collectionName: 'users', + parentKey: null, + reverseKey: null, + hidden: true, + uiSchema: { type: 'string', title: '{{t("Password")}}', 'x-component': 'Password' }, + }, + { + key: 'bqfy4w1ohq7', + name: 'appLang', + type: 'string', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + }, + { + key: '0gl3nczbjlg', + name: 'resetToken', + type: 'string', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + unique: true, + hidden: true, + }, + { + key: '4yb6kfpnhbp', + name: 'systemSettings', + type: 'json', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + defaultValue: {}, + }, + { + key: 'eqwqnnm91ku', + name: 'sort', + type: 'sort', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + hidden: true, + }, + { + key: 'ctnmz1kp2uf', + name: 'createdById', + type: 'context', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + dataType: 'bigInt', + dataIndex: 'state.currentUser.id', + createOnly: true, + visible: true, + index: true, + }, + { + key: 'qi9czxhhcnb', + name: 'createdBy', + type: 'belongsTo', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + targetKey: 'id', + }, + { + key: 'ra0knue3i0v', + name: 'updatedById', + type: 'context', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + dataType: 'bigInt', + dataIndex: 'state.currentUser.id', + visible: true, + index: true, + }, + { + key: 'rguzk9d71rz', + name: 'updatedBy', + type: 'belongsTo', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + targetKey: 'id', + }, + { + key: 't09bauwm0wb', + name: 'roles', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'users', + parentKey: null, + reverseKey: null, + target: 'roles', + foreignKey: 'userId', + otherKey: 'roleName', + onDelete: 'CASCADE', + sourceKey: 'id', + targetKey: 'name', + through: 'rolesUsers', + uiSchema: { + type: 'array', + title: '{{t("Roles")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'title', value: 'name' } }, + }, + }, + { + key: 'fn0x2o2oc3r', + name: 'jobs', + type: 'belongsToMany', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + through: 'users_jobs', + onDelete: 'CASCADE', + foreignKey: 'userId', + sourceKey: 'id', + otherKey: 'jobId', + targetKey: 'id', + }, + { + key: 'vrn094flo0p', + name: 'usersJobs', + type: 'hasMany', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + target: 'users_jobs', + foreignKey: 'userId', + sourceKey: 'id', + targetKey: 'id', + }, + { + key: 'k7eoz285mfs', + name: 'f_tauewz8bkyo', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'users', + parentKey: null, + reverseKey: null, + foreignKey: 'f_2hnfyftgyr9', + otherKey: 'f_730dw2m1gm4', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '多对多', + }, + target: 'tt_mnt_org', + through: 't_q8urpz9hnuc', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [], + namespace: 'users.users', + duplicator: { dumpable: 'optional', with: 'rolesUsers' }, + sortable: 'sort', + model: 'UserModel', + createdBy: true, + updatedBy: true, + logging: true, + underscored: true, + from: 'db2cm', + }, + { + key: '7z19qc97zuq', + name: 'roles', + title: '{{t("Roles")}}', + inherit: false, + hidden: false, + fields: [ + { + key: '2wwronaj832', + name: 'name', + type: 'uid', + interface: 'input', + collectionName: 'roles', + parentKey: null, + reverseKey: null, + prefix: 'r_', + primaryKey: true, + uiSchema: { type: 'string', title: '{{t("Role UID")}}', 'x-component': 'Input' }, + }, + { + key: 'rd982in9yke', + name: 'title', + type: 'string', + interface: 'input', + collectionName: 'roles', + parentKey: null, + reverseKey: null, + unique: true, + uiSchema: { type: 'string', title: '{{t("Role name")}}', 'x-component': 'Input' }, + }, + { + key: 'kdmc3thh22q', + name: 'description', + type: 'string', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + }, + { + key: '4c11axriwd1', + name: 'strategy', + type: 'json', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + }, + { + key: '3nc6tbqg4pp', + name: 'default', + type: 'boolean', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + defaultValue: false, + }, + { + key: 'rmsakq74r77', + name: 'hidden', + type: 'boolean', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + defaultValue: false, + }, + { + key: 'n9s3pirpjbu', + name: 'allowConfigure', + type: 'boolean', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + }, + { + key: 'cnos5nx5o50', + name: 'allowNewMenu', + type: 'boolean', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + }, + { + key: 'pa6txp0or62', + name: 'menuUiSchemas', + type: 'belongsToMany', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + target: 'uiSchemas', + targetKey: 'x-uid', + onDelete: 'CASCADE', + foreignKey: 'roleName', + sourceKey: 'name', + otherKey: 'uiSchemaXUid', + through: 'rolesUischemas', + }, + { + key: 'jj0vzxy3df3', + name: 'resources', + type: 'hasMany', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + target: 'rolesResources', + sourceKey: 'name', + targetKey: 'name', + foreignKey: 'roleName', + }, + { + key: 'dtnr5lq7uzd', + name: 'snippets', + type: 'set', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + defaultValue: ['!ui.*', '!pm', '!pm.*'], + }, + { + key: 'd372ngzs1t5', + name: 'sort', + type: 'sort', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + hidden: true, + }, + ], + category: [], + namespace: 'acl.acl', + duplicator: { dumpable: 'required', with: 'uiSchemas' }, + autoGenId: false, + model: 'RoleModel', + filterTargetKey: 'name', + sortable: true, + underscored: true, + from: 'db2cm', + }, + { + key: '86lpobjxmnt', + name: 'tt_mnt_org', + title: '人工>组织[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'ohxa8xp9mnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'x39u0hhrmnt', + name: 'ownerid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'qjit9pcvmnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'vijs3wcnmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zsebjtwimnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fa4c74phmnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'mv6h7f8lmnt', + name: 'orgcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '区域编码' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 57455 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '公司编号(自动编码)' }, + inputable: false, + }, + { + key: '44u5zoyymnt', + name: 'orgname', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '公司名称(单行文本)' }, + }, + { + key: 'tdq82bb0mnt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '公司地址(多行文本)' }, + }, + { + key: '10xi6i24mnt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '负责人电话(手机号码)', + }, + }, + { + key: 'n3ykqhe4mnt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: '5ddcgbpqmnt', + name: 'staffnum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '员工人数(整数)', + }, + }, + { + key: 'z59sf4ilmnt', + name: 'insurednum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '参保人数(整数)', + }, + }, + { + key: 'ecvb3a8xmnt', + name: 'regcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '注册资本(数字)', + }, + }, + { + key: 'ierg1fbvmnt', + name: 'paidcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '实缴资本(数字)', + }, + }, + { + key: '46kjnywamnt', + name: 'insuranceratio', + type: 'float', + interface: 'percent', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '参保占比(百分比)', + }, + }, + { + key: '8j2vkys9mnt', + name: 'isenable', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否启用(勾选)' }, + }, + { + key: '6f480de5mnt', + name: 'status_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Select', + title: '公司状态(下拉单选)', + }, + }, + { + key: 'fcx8cw1rmnt', + name: 'range_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '经营范围(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'z71al7aamnt', + name: 'status_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '公司状态(单选)', + }, + }, + { + key: 'x8v9qf95mnt', + name: 'range_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '经营范围(复选)', + }, + defaultValue: [], + }, + { + key: 'pgmzldy7mnt', + name: 'area', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '所属地区(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_mnt_org_area', + foreignKey: 'f_8r6ikw6xnz0', + otherKey: 'f_hbxb8vsecko', + sourceKey: 'id', + }, + { + key: 'ase7kobwmnt', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '公司近照(附件)', + }, + target: 'attachments', + through: 'tt_mnt_org_photo', + foreignKey: 'f_hmb1pbp4vgf', + otherKey: 'f_zwsrqz83mp8', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'c50l1zgumnt', + name: 'range_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '经营范围(Markdown)' }, + }, + { + key: 'msj1qa4dmnt', + name: 'range_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '经营范围(富文本)' }, + }, + { + key: 'q755hkxmmnt', + name: 'establishdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '成立日期(日期)', + }, + }, + { + key: '0rd147memnt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'gbclpdalmnt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'lc9t9qw7mnt', + name: 'license', + type: 'hasOne', + interface: 'oho', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: '6jboxc1xb9w', + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '营业执照(one has one)', + }, + target: 'tt_mnt_orglicense', + sourceKey: 'id', + }, + { + key: 'maki8q43mnt', + name: 'dept', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '部门(one to many)', + }, + target: 'tt_mnt_dept', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '0w5j5222mnt', + name: 'range', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + otherKey: 'rangeid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '经营范围(many to many)', + }, + through: 'tt_mnt_org_range', + target: 'tt_bd_range', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '9kn4ujermnt', + name: 'range_json', + type: 'json', + interface: 'json', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '经营范围(JSON)', + }, + }, + { + key: '07mz84okmnt', + name: 'staff', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)', + }, + target: 'tt_mnt_staff', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '01me4f8dmnt', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(点)', + }, + }, + { + key: 'mkr7ceudmnt', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(线)', + }, + }, + { + key: 'bekuc6bvmnt', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(圆)', + }, + }, + { + key: 'i3vcrhvumnt', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(多边形)', + }, + }, + { + key: 'vqcsj7htmnt', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '官网地址(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'hpaq1qcrmnt', + name: 'owner', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)', + }, + target: 'tt_mnt_staff', + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-07T07:20:14.134Z', + updatedAt: '2023-04-07T07:20:14.134Z', + collectionName: 'tt_mnt_org', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'jkvem4l2mnt', + name: 'tt_mnt_org_tree', + title: '人工>组织[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'kc6qsw8wmnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'yx47674fmnt', + name: 'ownerid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '79u57anwmnt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_mnt_org_tree', + }, + { + key: '83r2hhkbmnt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_mnt_org_tree', + targetKey: 'id', + }, + { + key: 'taoh3i6lmnt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_mnt_org_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '296cj7lsmnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gj21nfz5mnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'z292a2aumnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '5kuz9obqmnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'azr2xsv2mnt', + name: 'orgcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '区域编码' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 63144 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '公司编号(自动编码)' }, + }, + { + key: '74al0ht7mnt', + name: 'orgname', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '公司名称(单行文本)' }, + }, + { + key: 'n56ccueimnt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '公司地址(多行文本)' }, + }, + { + key: 'abgsu9vsmnt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '负责人电话(手机号码)', + }, + }, + { + key: 'nwpk0kqbmnt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: 'ytnsb45bmnt', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '官网地址(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'x4nd5g8smnt', + name: 'staffnum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '员工人数(整数)', + }, + }, + { + key: 'pv4aqfcymnt', + name: 'insurednum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '参保人数(整数)', + }, + }, + { + key: 'mwini82xmnt', + name: 'regcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '注册资本(数字)', + }, + }, + { + key: '5fglvshfmnt', + name: 'paidcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '实缴资本(数字)', + }, + }, + { + key: 'zdigd67umnt', + name: 'insuranceratio', + type: 'float', + interface: 'percent', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '参保占比(百分比)', + }, + }, + { + key: '42x9v3wvmnt', + name: 'isenable', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否启用(勾选)' }, + }, + { + key: 'xbjymcjxmnt', + name: 'status_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Select', + title: '公司状态(下拉单选)', + }, + }, + { + key: 'v0ap20mgmnt', + name: 'range_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '经营范围(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'vwmg4ex9mnt', + name: 'status_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '公司状态(单选)', + }, + }, + { + key: 'upkxrqfrmnt', + name: 'range_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '经营范围(复选)', + }, + defaultValue: [], + }, + { + key: 'd9y72qk8mnt', + name: 'area', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '所属地区(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_mnt_org_tree_area', + foreignKey: 'f_y6ukux7kw1q', + otherKey: 'f_ai3a25o9qc5', + sourceKey: 'id', + }, + { + key: 'qyrlvi32mnt', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '公司近照(附件)', + }, + target: 'attachments', + through: 'tt_mnt_org_tree_photo', + foreignKey: 'f_xlak0scjck5', + otherKey: 'f_e5xhh2cuol1', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'n9wnfqdrmnt', + name: 'range_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '经营范围(Markdown)' }, + }, + { + key: 'wkfyg6lvmnt', + name: 'range_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '经营范围(富文本)' }, + }, + { + key: 'slzowx7dmnt', + name: 'establishdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '成立日期(日期)', + }, + }, + { + key: 'qiqf41ygmnt', + name: 'range_json', + type: 'json', + interface: 'json', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '经营范围(JSON)', + }, + }, + { + key: '5qmafhaxmnt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'r0qqlw89mnt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'led3sjaemnt', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(点)', + }, + }, + { + key: 'ipdvxkxjmnt', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(线)', + }, + }, + { + key: 'ldr83y30mnt', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(圆)', + }, + }, + { + key: 'ggdzs1wxmnt', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(多边形)', + }, + }, + { + key: '6327d159mnt', + name: 'license', + type: 'hasOne', + interface: 'oho', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '营业执照(one has one)', + }, + target: 'tt_mnt_orglicense', + sourceKey: 'id', + }, + { + key: 'wbdndzvqmnt', + name: 'owner_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)[树表]', + }, + target: 'tt_mnt_staff_tree', + targetKey: 'id', + }, + { + key: 'ao3kbbt3mnt', + name: 'dept_tree', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '部门(one to many)[树表]', + }, + target: 'tt_mnt_dept_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'sd0zsbzymnt', + name: 'staff_tree', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)[树表]', + }, + target: 'tt_mnt_staff_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'c5m12hy5mnt', + name: 'range', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_mnt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + otherKey: 'rangeid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '经营范围(many to many)', + }, + target: 'tt_bd_range', + through: 'tt_mnt_org_tree_range', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-25T14:06:15.660Z', + updatedAt: '2023-04-25T14:06:15.660Z', + collectionName: 'tt_mnt_org_tree', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'c9hyqimlmnt', + name: 'tt_mnt_dept', + title: '人工>部门[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '28tj63grmnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_dept', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '67necqtamnt', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_dept', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'nqeetal0mnt', + name: 'ownerid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_dept', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'dbb290eomnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_dept', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '9c2ga9cmmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_dept', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '65yzgsp7mnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_dept', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'w0tqtrnxmnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_dept', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zbos4viumnt', + name: 'deptcode', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门编码' }, + }, + { + key: 'qpuhqqmdmnt', + name: 'deptname', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门名称' }, + }, + { + key: 'a7sva5d0mnt', + name: 'org', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_dept', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)', + }, + target: 'tt_mnt_org', + targetKey: 'id', + }, + { + key: 'ab74sl8fmnt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'fnsb3qqhmnt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: '3hur9occmnt', + name: 'staff', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_dept', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)', + }, + target: 'tt_mnt_staff', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'flwjk24umnt', + name: 'owner', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_dept', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)', + }, + target: 'tt_mnt_staff', + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-07T07:20:25.220Z', + updatedAt: '2023-04-07T07:20:25.220Z', + collectionName: 'tt_mnt_dept', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'dmm5t1iomnt', + name: 'tt_mnt_dept_tree', + title: '人工>部门[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '1gdw4yp8mnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '2u3nb80rmnt', + name: 'ownerid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'gbcioiedmnt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'abaa5i71mnt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_mnt_dept_tree', + }, + { + key: 'k4bwf4fwmnt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_mnt_dept_tree', + targetKey: 'id', + }, + { + key: 'uram4ujwmnt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_mnt_dept_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'jdtnebxamnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'al86l9utmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'lu5n2igkmnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'rxi8ruyhmnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '5o0c6zhcmnt', + name: 'deptcode', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门编码' }, + }, + { + key: 'fqrkfpzzmnt', + name: 'deptname', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门名称' }, + }, + { + key: 'hx8w6300mnt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'iux15mx1mnt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'gcqvgh1pmnt', + name: 'owner_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)[树表]', + }, + target: 'tt_mnt_staff_tree', + targetKey: 'id', + }, + { + key: 'sh4vp1w3mnt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_mnt_org_tree', + targetKey: 'id', + }, + { + key: '0ff3qb08mnt', + name: 'staff_tree', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)[树表]', + }, + target: 'tt_mnt_staff_tree', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-27T08:22:25.503Z', + updatedAt: '2023-04-27T08:22:25.503Z', + collectionName: 'tt_mnt_dept_tree', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'jff9r7ebmnt', + name: 'tt_mnt_orglicense', + title: '人工>组织营业执照([普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '9qhn1fuumnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'fgiqbd4emnt', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '所属组织id(外键)', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '00r3t2p7mnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '1fthdco0mnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '3a9n2pwtmnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'rua496y1mnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '6jboxc1xmnt', + name: 'org', + type: 'belongsTo', + interface: 'obo', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: 'lc9t9qw7w7m', + uiSchema: { + title: '所属组织(one belongsto one)', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_mnt_org', + onDelete: 'SET NULL', + targetKey: 'id', + foreignKey: 'orgid', + }, + { + key: '82etkpqdmnt', + name: 'unifiledcode', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '统一社会信用代码(单行文本)' }, + }, + { + key: '3pcmumdfmnt', + name: 'legalpersonname', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '法人姓名(单行文本)' }, + }, + { + key: 'iw6icymfmnt', + name: 'legalpersonidnumber', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '法人身份证件号(单行文本)' }, + }, + { + key: 'lr6c7yhjmnt', + name: 'range', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + foreignKey: 'orglicenseid', + otherKey: 'rangeid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '经营范围(many to many)', + }, + through: 'tt_mnt_orglicense_range', + target: 'tt_bd_range', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '662guqhymnt', + name: 'rangecode', + type: 'text', + interface: 'textarea', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '经营范围编码(多行文本)' }, + }, + { + key: 'k6bhpu8vmnt', + name: 'rangedesc', + type: 'text', + interface: 'textarea', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '经营范围描述(多行文本)' }, + }, + { + key: 'iznfr95fmnt', + name: 'expiredate_start', + type: 'date', + interface: 'datetime', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '有效期起(日期)', + }, + }, + { + key: '1q80cfg1mnt', + name: 'expiredate_end', + type: 'date', + interface: 'datetime', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '有效期止(日期)', + }, + }, + { + key: 'wm9jsj6tmnt', + name: 'issuedate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '发证日期(日期)', + }, + }, + { + key: '6m7kai14mnt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'muf1twfgmnt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-07T07:20:20.927Z', + updatedAt: '2023-04-07T07:20:20.927Z', + collectionName: 'tt_mnt_orglicense', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'dax26iuxmnt', + name: 'tt_mnt_staff', + title: '人工>员工[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '0d2rycb2mnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 't0bt3g4cmnt', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '5k5ccsyhmnt', + name: 'deptid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '3ji1ldjumnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'orh016pzmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'xxm0g05jmnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '9wp4v5fwmnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'iezxmwh1mnt', + name: 'staffcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'NB' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 52026 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '员工号(自动编码)' }, + unique: false, + inputable: false, + }, + { + key: 'khzh1v1cmnt', + name: 'staffname', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '姓名(单行文本)' }, + }, + { + key: '8h58dz5bmnt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '联系地址(多行文本)' }, + }, + { + key: 'zolos0d9mnt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: 'h1i82qrymnt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: '6mjqrhctmnt', + name: 'age', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '年龄(整数)', + }, + }, + { + key: 'i5e7xxo2mnt', + name: 'workyears', + type: 'double', + interface: 'number', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '工龄(数字)', + }, + }, + { + key: 'xfm96km3mnt', + name: 'selforgworkyears', + type: 'double', + interface: 'number', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '司龄(数字)', + }, + }, + { + key: 'xon8vnm1mnt', + name: 'proportion', + type: 'float', + interface: 'percent', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '股份占比(百分比)', + }, + }, + { + key: 'dnijk17tmnt', + name: 'isonduty', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否在岗(勾选)' }, + }, + { + key: 'v9kgbw1nmnt', + name: 'maritalstatus_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Select', + title: '婚姻状况(下拉单选)', + }, + }, + { + key: '1m7sadgxmnt', + name: 'prof_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '33', label: '通信专业技术人员职业资格' }, + { value: '34', label: '计算机技术与软件专业技术资格' }, + { value: '36', label: '会计专业技术资格' }, + { value: '52', label: '统计专业技术资格' }, + { value: '56', label: '翻译专业资格' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '职业资格(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'as9m82ynmnt', + name: 'maritalstatus_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '婚姻状况(单选)', + }, + }, + { + key: 'h4a3h0zkmnt', + name: 'prof_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '33', label: '通信专业技术人员职业资格' }, + { value: '34', label: '计算机技术与软件专业技术资格' }, + { value: '36', label: '会计专业技术资格' }, + { value: '52', label: '统计专业技术资格' }, + { value: '56', label: '翻译专业资格' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '职业资格(复选)', + }, + defaultValue: [], + }, + { + key: '2vg9uhb4mnt', + name: 'regaddress', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '户籍地(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_mnt_staff_regaddress', + foreignKey: 'f_hhmtoqcqk8g', + otherKey: 'f_t0sryffordg', + sourceKey: 'id', + }, + { + key: '9rfwtrremnt', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '照片(附件)', + }, + target: 'attachments', + through: 'tt_mnt_staff_photo', + foreignKey: 'f_yntlgbf87rd', + otherKey: 'f_sikqv9m15cv', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '7x5uevlomnt', + name: 'prof_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '职业资格(Markdown)' }, + }, + { + key: 'lybdq5awmnt', + name: 'prof_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '职业资格(富文本)' }, + }, + { + key: 'duc6939bmnt', + name: 'birthdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '出生日期(日期)', + }, + }, + { + key: 'kd1k3d1vmnt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'h0kyhflpmnt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'sigq297cmnt', + name: 'org', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)', + }, + target: 'tt_mnt_org', + targetKey: 'id', + }, + { + key: 'kgag86himnt', + name: 'dept', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属部门(many to one)', + }, + target: 'tt_mnt_dept', + targetKey: 'id', + }, + { + key: 'vja8qigtmnt', + name: 'prof', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + foreignKey: 'staffid', + otherKey: 'profid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '职业资格(many to many)', + }, + through: 'tt_mnt_staff_prof', + target: 'tt_bd_prof', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'r5b5s85smnt', + name: 'prof_json', + type: 'json', + interface: 'json', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '职业资格(JSON)', + }, + }, + { + key: 'be635dbcmnt', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(点) ', + }, + }, + { + key: 'lmd0usk9mnt', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(线) ', + }, + }, + { + key: '07yrmxlomnt', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(圆)', + }, + }, + { + key: '4k9t55htmnt', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(多边形)', + }, + }, + { + key: 'dn9fkra7mnt', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '个人主页(URL)', 'x-component': 'Input.URL' }, + }, + { + key: '92l2w1u9enf', + name: 'f_d4eavbbawas', + type: 'formula', + interface: 'formula', + collectionName: 'tt_mnt_staff', + parentKey: null, + reverseKey: null, + dataType: 'string', + uiSchema: { + 'x-component-props': { stringMode: true }, + type: 'number', + 'x-component': 'Formula.Result', + 'x-read-pretty': true, + title: '公式', + }, + engine: 'formula.js', + expression: '\n \n YEAR({{createdAt}})-{{age}}', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-07T07:20:55.666Z', + updatedAt: '2023-04-07T07:20:55.666Z', + collectionName: 'tt_mnt_staff', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: '07n5p6udmnt', + name: 'tt_mnt_staff_tree', + title: '人工>员工[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'y76paceemnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'o12889owmnt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '6lgwn42mmnt', + name: 'deptid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '57e1zlytmnt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_mnt_staff_tree', + }, + { + key: 'c4pv07f8mnt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_mnt_staff_tree', + targetKey: 'id', + }, + { + key: 'fr94xx2pmnt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_mnt_staff_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'q3rlwr75mnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fvfjkwsumnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zow7sqvemnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'ifmf1eiemnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'wd1i5pqgmnt', + name: 'staffcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'NB' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 8081 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '员工号(自动编码)' }, + }, + { + key: 'v6k6cr1tmnt', + name: 'staffname', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '姓名(单行文本)' }, + }, + { + key: '8bsrw9j4mnt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '联系地址(多行文本)' }, + }, + { + key: 'zhqz0lwvmnt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: 'l1hh1wh7mnt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: '9u0y3nvamnt', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '个人主页(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'ol1z5t5qmnt', + name: 'age', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '年龄(整数)', + }, + }, + { + key: 'kkgucwe0mnt', + name: 'workyears', + type: 'double', + interface: 'number', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '工龄(数字)', + }, + }, + { + key: 'hka1kizwmnt', + name: 'selforgworkyears', + type: 'double', + interface: 'number', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '司龄(数字)', + }, + }, + { + key: '96l8dmbrmnt', + name: 'proportion', + type: 'float', + interface: 'percent', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '股份占比(百分比)', + }, + }, + { + key: 'q89bdfmemnt', + name: 'isonduty', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否在岗(勾选)' }, + }, + { + key: '4gi6ye8zmnt', + name: 'maritalstatus_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Select', + title: '婚姻状况(下拉单选)', + }, + }, + { + key: 'my9kkqa4mnt', + name: 'prof_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '33', label: '通信专业技术人员职业资格' }, + { value: '34', label: '计算机技术与软件专业技术资格' }, + { value: '36', label: '会计专业技术资格' }, + { value: '52', label: '统计专业技术资格' }, + { value: '56', label: '翻译专业资格' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '职业资格(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'b8r0ccdnmnt', + name: 'maritalstatus_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '婚姻状况(单选)', + }, + }, + { + key: 'has6qmwhmnt', + name: 'prof_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '34', label: '通信专业技术人员职业资格' }, + { value: '36', label: '计算机技术与软件专业技术资格' }, + { value: '52', label: '会计专业技术资格' }, + { value: '56', label: '统计专业技术资格' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '职业资格(复选)', + }, + defaultValue: [], + }, + { + key: '1um9vv5vmnt', + name: 'regaddress', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '户籍地(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_mnt_staff_tree_regaddress', + foreignKey: 'f_ife9oxivp9d', + otherKey: 'f_6qkh23zbzww', + sourceKey: 'id', + }, + { + key: '70if34x0mnt', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '照片(附件)', + }, + target: 'attachments', + through: 'tt_mnt_staff_tree_photo', + foreignKey: 'f_6m5lnpitpr8', + otherKey: 'f_dcbgh1euvv8', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '4kk7v93ymnt', + name: 'prof_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '职业资格(Markdown)' }, + }, + { + key: '04s0u9kdmnt', + name: 'prof_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '职业资格(富文本)' }, + }, + { + key: 'yw6tg52vmnt', + name: 'birthdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '出生日期(日期)', + }, + }, + { + key: '3hleeqt3mnt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'zh6dj1kgmnt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'ebgwkmkkmnt', + name: 'prof_json', + type: 'json', + interface: 'json', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '职业资格(JSON)', + }, + }, + { + key: 'xkq2xsm5mnt', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(点)', + }, + }, + { + key: 'u0mnio95mnt', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(线)', + }, + }, + { + key: 'qee0kthfmnt', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(圆)', + }, + }, + { + key: 'lltpukvlmnt', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(多边形)', + }, + }, + { + key: '9i5avlqomnt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_mnt_org_tree', + targetKey: 'id', + }, + { + key: 'dpozkfpdmnt', + name: 'dept_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属部门(many to one)[树表]', + }, + target: 'tt_mnt_dept_tree', + targetKey: 'id', + }, + { + key: 'tj2z9xpymnt', + name: 'prof_tree', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_mnt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'staffid_tree', + otherKey: 'profid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '职业资格(many to many)[树表]', + }, + target: 'tt_bd_prof', + through: 'tt_mnt_staff_tree_prof', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-27T08:30:17.111Z', + updatedAt: '2023-04-27T08:30:17.111Z', + collectionName: 'tt_mnt_staff_tree', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'wxthhajvmnt', + name: 'tt_mnt_customer_tree', + title: '人工>客户[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '7slke7lrmnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'ljn3r3j2mnt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '70pjqv7vmnt', + name: 'countryid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'countryid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'wb3a5n00mnt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_mnt_customer_tree', + }, + { + key: 'sib2jw39mnt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_mnt_customer_tree', + targetKey: 'id', + }, + { + key: '6iej9s4rmnt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_mnt_customer_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'rakkhuyqmnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '0enk4fydmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '4hvi0emcmnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '3x3n73dzmnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '02gf41rlmnt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_mnt_org_tree', + targetKey: 'id', + }, + { + key: 'rvq1m32cmnt', + name: 'custcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '客户' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 20707 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '客户编码' }, + }, + { + key: '8oeh8ic6mnt', + name: 'custname', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '客户名称' }, + }, + { + key: 'q7duzlt0mnt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '地址(多行文本)' }, + }, + { + key: 'nhr8omk5mnt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: 'gwzayy3rmnt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: 'tziwvbpsmnt', + name: 'country', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'countryid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所在国家(many to one)', + }, + target: 'tt_bd_country', + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-28T09:44:23.793Z', + updatedAt: '2023-04-28T09:44:23.793Z', + collectionName: 'tt_mnt_customer_tree', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: '7392uqu9mnt', + name: 'tt_mnt_supplier_tree', + title: '人工>供应商[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'mks9f38smnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'kzusp28bmnt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'zg1uwvdwmnt', + name: 'countryid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'countryid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'jgaiuu1qmnt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_mnt_supplier_tree', + }, + { + key: '0rbkjvyxmnt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_mnt_supplier_tree', + targetKey: 'id', + }, + { + key: '77hg0uxzmnt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_mnt_supplier_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'p13jc9l7mnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'xct6unjgmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'vmhpgoa5mnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'oagzn1jgmnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'gzkhprhxmnt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_mnt_org_tree', + targetKey: 'id', + }, + { + key: 'fh5kfafsmnt', + name: 'suppliercode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '供应商' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 20528 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '供应商编码' }, + }, + { + key: 'vfu829qkmnt', + name: 'suppliername', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '供应商名称' }, + }, + { + key: '8iq0bwj8mnt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '地址(多行文本)' }, + }, + { + key: 'tpjdf0qlmnt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: '12jih9kmmnt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: 'ksx9ximzmnt', + name: 'country', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'countryid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所在国家(many to one)', + }, + target: 'tt_bd_country', + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-28T09:45:02.249Z', + updatedAt: '2023-04-28T09:45:02.249Z', + collectionName: 'tt_mnt_supplier_tree', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'k6j1dzcwmnt', + name: 'tt_mnt_materialclass_tree', + title: '人工>物料分类[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '5hyy7ulhmnt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_materialclass_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_mnt_materialclass_tree', + }, + { + key: 'g1xc56vdmnt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_materialclass_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_mnt_materialclass_tree', + targetKey: 'id', + }, + { + key: '872hxq6fmnt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_materialclass_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_mnt_materialclass_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'v424kp87mnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_materialclass_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'he58euuqmnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_materialclass_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '07hjbpnrmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_materialclass_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '8gs6msrqmnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_materialclass_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'so854ilsmnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_materialclass_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'p770it8ymnt', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '分类编码' }, + unique: true, + }, + { + key: 'k5xztdmemnt', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '分类名称' }, + }, + { + key: 'nr876w40mnt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: '2o68nz63mnt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-19T09:20:22.556Z', + updatedAt: '2023-04-19T09:20:22.556Z', + collectionName: 'tt_mnt_materialclass_tree', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: '71pkkfvomnt', + name: 'tt_mnt_material', + title: '人工>物料[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'c5r0cfgomnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_material', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '0q971jh5mnt', + name: 'classid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_material', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'classid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'p2me0o8tmnt', + name: 'unitid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_material', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'unitid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'waqpt4bgmnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_material', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'nc86chxbmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_material', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '7tknuof2mnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_material', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '1l9ejn4pmnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_material', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '8drih6ghmnt', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料编码' }, + unique: true, + }, + { + key: '20zdhfalmnt', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料名称' }, + }, + { + key: '5wqpy9zfmnt', + name: 'spec', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '规格' }, + }, + { + key: 'ggiidy6lmnt', + name: 'type', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '型号' }, + }, + { + key: 'cvt9ywoomnt', + name: 'classname', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '分类名称' }, + }, + { + key: 'mu2qzacsmnt', + name: 'class', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_material', + parentKey: null, + reverseKey: null, + foreignKey: 'classid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '物料分类', + }, + target: 'tt_mnt_materialclass_tree', + targetKey: 'id', + }, + { + key: 'ydv8fsi5mnt', + name: 'unit', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_material', + parentKey: null, + reverseKey: null, + foreignKey: 'unitid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '计量单位', + }, + target: 'tt_bd_unit', + targetKey: 'id', + }, + { + key: 'oe79qxo1mnt', + name: 'unitname', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '单位名称' }, + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-20T01:52:56.923Z', + updatedAt: '2023-04-20T01:52:56.923Z', + collectionName: 'tt_mnt_material', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'tu68q4z3mnt', + name: 'tt_mnt_warehouse', + title: '人工>仓库[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'apvdr645mnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_warehouse', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'kclgp2ipmnt', + name: 'staffid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_warehouse', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'staffid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'xtx7x7icmnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_warehouse', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '4mn9swsymnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_warehouse', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zc7tecz8mnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_warehouse', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gwebb7uqmnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_warehouse', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'tw3v31jtmnt', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_warehouse', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '编码' }, + unique: true, + }, + { + key: 'tlwo8alnmnt', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_warehouse', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '名称' }, + unique: false, + }, + { + key: 'ow21q1mimnt', + name: 'address', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_warehouse', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '地址' }, + }, + { + key: 'xcaygwbomnt', + name: 'owner_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_warehouse', + parentKey: null, + reverseKey: null, + foreignKey: 'staffid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)[树表]', + }, + target: 'tt_mnt_staff_tree', + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-26T02:46:43.336Z', + updatedAt: '2023-04-26T02:46:43.336Z', + collectionName: 'tt_mnt_warehouse', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'n4lsa1g2mnt', + name: 'tt_mnt_inventory', + title: '人工>库存[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'abeyktkjmnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'g5qkwfpymnt', + name: 'materialid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'materialid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '14f2xdmhmnt', + name: 'warehouseid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'warehouseid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '95jd7wrimnt', + name: 'unitid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'unitid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'qc3p5dt6mnt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'yiomb00gmnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '9brp2wbrmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'n35bf0afmnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '298424xemnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'd6kytzf4mnt', + name: 'material', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'materialid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '物料(many to one)', + }, + target: 'tt_mnt_material', + targetKey: 'id', + }, + { + key: 'prh0xuiimnt', + name: 'warehouse_code', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '仓库编码' }, + }, + { + key: '6mi0mibomnt', + name: 'warehouse_name', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '仓库名称' }, + }, + { + key: '0jmm0k7hmnt', + name: 'material_code', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料编码' }, + }, + { + key: 'qf02v4u7mnt', + name: 'material_name', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料名称' }, + }, + { + key: 'qivjufzrmnt', + name: 'material_spec', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料规格' }, + }, + { + key: '45xaw14imnt', + name: 'material_type', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料型号' }, + }, + { + key: '9sblvxa0mnt', + name: 'material_unit', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料单位名称' }, + }, + { + key: 'ua0nwv6amnt', + name: 'quantity', + type: 'double', + interface: 'number', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '库存数量', + }, + }, + { + key: 'inwiwx60mnt', + name: 'warehouse', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'warehouseid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '仓库(many to one)', + }, + target: 'tt_mnt_warehouse', + targetKey: 'id', + }, + { + key: 'sfl8nllbmnt', + name: 'unit', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'unitid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '计量单位(many to one)', + }, + target: 'tt_bd_unit', + targetKey: 'id', + }, + { + key: '9q9kws0vmnt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '组织(many to one)[树表]', + }, + target: 'tt_mnt_org_tree', + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-25T06:25:00.153Z', + updatedAt: '2023-04-25T06:25:00.153Z', + collectionName: 'tt_mnt_inventory', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '44kz0lhymnt', + name: 'tt_mnt_purchase', + title: '人工>采购订单[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'zu5d8z6kmnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'jl9co7lgmnt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '1pjpolwsmnt', + name: 'deptid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'vaq1zx9tmnt', + name: 'supplierid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'supplierid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'gyrywzcgmnt', + name: 'purchasecontactid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { + type: 'number', + title: 'purchasecontactid_tree', + 'x-component': 'InputNumber', + 'x-read-pretty': true, + }, + }, + { + key: 'oa2xy75emnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'q7rwin7qmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '46ozud8tmnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'epfl5wdxmnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'tf2g38s3mnt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '采购组织(many to one)[树表]', + }, + target: 'tt_mnt_org_tree', + targetKey: 'id', + }, + { + key: '9rlqnee9mnt', + name: 'dept_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '采购部门(many to one)[树表]', + }, + target: 'tt_mnt_dept_tree', + targetKey: 'id', + }, + { + key: '7am8kldzmnt', + name: 'supplier_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'supplierid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '供应商(many to one)[树表]', + }, + target: 'tt_mnt_supplier_tree', + targetKey: 'id', + }, + { + key: 'ftodeoodmnt', + name: 'order_no', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'PO' } }, + { type: 'date', options: {} }, + { type: 'integer', options: { digits: 5, start: 1, key: 25788 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '订单号(自动编码)' }, + unique: true, + }, + { + key: 'pv6aog71mnt', + name: 'purchasecontact', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'purchasecontactid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '采购联系人(many to one)[树表]', + }, + target: 'tt_mnt_staff_tree', + targetKey: 'id', + }, + { + key: 'n59j0a22mnt', + name: 'purchasecontact_name', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '采购联系人姓名' }, + }, + { + key: 'ib304wsnmnt', + name: 'purchasecontact_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '采购联系电话', + }, + }, + { + key: '5utcqj28mnt', + name: 'suppliercontact_name', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '供应商联系人姓名' }, + }, + { + key: 'ji5xtqgomnt', + name: 'suppliercontact_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '供应商联系人电话', + }, + }, + { + key: 'eo46f5j7mnt', + name: 'paymentstatus', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '未付款' }, + { value: '2', label: '已付款' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '付款状态', + }, + }, + { + key: '32zcduo2mnt', + name: 'status', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '已发货' }, + { value: '2', label: '已签收' }, + { value: '3', label: '已退货' }, + { value: '4', label: '取消交易' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '订单状态', + }, + }, + { + key: '0ptwgu88mnt', + name: 'amount', + type: 'double', + interface: 'number', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '订单金额', + }, + }, + { + key: 'usb8rwvimnt', + name: 'detail', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'orderid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '订单明细(one to many)', + }, + target: 'tt_mnt_purchase_detail', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-25T12:15:52.314Z', + updatedAt: '2023-04-25T12:15:52.314Z', + collectionName: 'tt_mnt_purchase', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'kryvveqemnt', + name: 'tt_mnt_purchase_detail', + title: '人工>采购订单明细[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'bx68gtu7mnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'j72k53rkmnt', + name: 'materialid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'materialid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '95gbyr21mnt', + name: 'unitid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'unitid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'rv5jirstmnt', + name: 'orderid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orderid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'hero7kpwmnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fmq1ydbfmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'kypoomknmnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'nny43njxmnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'c5miad3vmnt', + name: 'order_no', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '订单号' }, + }, + { + key: 'uqgrkynrmnt', + name: 'material', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + foreignKey: 'materialid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '物料(many to one)', + }, + target: 'tt_mnt_material', + targetKey: 'id', + }, + { + key: 'bl7rotummnt', + name: 'materialcode', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料编码' }, + }, + { + key: 'r4knrjc1mnt', + name: 'materialname', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料名称' }, + }, + { + key: 'xh2x8ozpmnt', + name: 'materialspec', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料规格' }, + }, + { + key: '6udro2iwmnt', + name: 'materialtype', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料型号' }, + }, + { + key: 'ggluomz0mnt', + name: 'materialunit', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + foreignKey: 'unitid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '计量单位(many to one)', + }, + target: 'tt_bd_unit', + targetKey: 'id', + }, + { + key: '7rqysq3hmnt', + name: 'unitname', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '计量单位' }, + }, + { + key: '5etvyohumnt', + name: 'price', + type: 'double', + interface: 'number', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '价格', + }, + }, + { + key: 'v4ipx3damnt', + name: 'quantity', + type: 'double', + interface: 'number', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '数量', + }, + }, + { + key: 'ipiuw9uymnt', + name: 'amount', + type: 'formula', + interface: 'formula', + collectionName: 'tt_mnt_purchase_detail', + parentKey: null, + reverseKey: null, + dataType: 'double', + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'Formula.Result', + 'x-read-pretty': true, + title: '金额', + }, + engine: 'math.js', + expression: '{{price}}*{{quantity}}', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-25T12:44:24.873Z', + updatedAt: '2023-04-25T12:44:24.873Z', + collectionName: 'tt_mnt_purchase_detail', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '5xacggexmnt', + name: 'tt_mnt_production', + title: '人工>生产订单[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'zf3pkbadmnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_production', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'na8opa82mnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_production', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'kpu29b74mnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_production', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '3jcf7oyxmnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_production', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fxrdb8s4mnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_production', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'rj55h3axmnt', + name: 'detail', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_production', + parentKey: null, + reverseKey: null, + foreignKey: 'orderid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '订单明细(one to many)', + }, + target: 'tt_mnt_production_detail', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-25T14:08:27.913Z', + updatedAt: '2023-04-25T14:08:27.913Z', + collectionName: 'tt_mnt_production', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'h093tdwmmnt', + name: 'tt_mnt_production_detail', + title: '人工>生产订单明细[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'xmrs0mlfmnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_production_detail', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '7qdn6q3amnt', + name: 'orderid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_production_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orderid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'spim8s5fmnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_production_detail', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'bgct5ehsmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_production_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'j5l9nb1hmnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_production_detail', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '4ybl1kwymnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_production_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-25T14:08:55.636Z', + updatedAt: '2023-04-25T14:08:55.636Z', + collectionName: 'tt_mnt_production_detail', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'nt80ck13mnt', + name: 'tt_mnt_sales', + title: '人工>销售订单[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'zt2k3h7hmnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '93fwne9pmnt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'xs1l2rwamnt', + name: 'deptid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'iq9oe0ggmnt', + name: 'salescontactid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'salescontactid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'gfrrwt8tmnt', + name: 'customerid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'customerid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'nadruvhumnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'yizb72d1mnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'ps02ffrsmnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '23hdfiv1mnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'gctv1r6jmnt', + name: 'order_bo', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'CO' } }, + { type: 'date', options: {} }, + { type: 'integer', options: { digits: 5, start: 1, key: 7214 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '订单号(字段编号)' }, + }, + { + key: '2llg7id8mnt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '销售组织(many to one)[树表]', + }, + target: 'tt_mnt_org_tree', + targetKey: 'id', + }, + { + key: '7c730b5rmnt', + name: 'dept_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '销售部门(many to one)[树表]', + }, + target: 'tt_mnt_dept_tree', + targetKey: 'id', + }, + { + key: '7wtlcoz9mnt', + name: 'salescontact', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'salescontactid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '销售联系人(many to one)[树表]', + }, + target: 'tt_mnt_staff_tree', + targetKey: 'id', + }, + { + key: 'q3rs6u23mnt', + name: 'customer_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'customerid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '客户(many to one)[树表]', + }, + target: 'tt_mnt_customer_tree', + targetKey: 'id', + }, + { + key: '0pemv8jmmnt', + name: 'detail', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'orderid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '订单明细(one to many)', + }, + target: 'tt_mnt_sales_detail', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'svwa3wgbmnt', + name: 'salescontact_name', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '销售联系人姓名' }, + }, + { + key: 'nku29fowmnt', + name: 'salescontact_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '销售联系人电话', + }, + }, + { + key: 'xr4pcarhmnt', + name: 'customer_name', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '客户联系人姓名' }, + }, + { + key: 'mmhhc0ptmnt', + name: 'customer_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '客户联系人电话', + }, + }, + { + key: 'xfgac7blmnt', + name: 'paymentstatus', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '未付款' }, + { value: '2', label: '已付款' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '付款状态', + }, + }, + { + key: 'xx7i85nbmnt', + name: 'status', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '已发货' }, + { value: '2', label: '已签收' }, + { value: '3', label: '已退货' }, + { value: '4', label: '取消交易' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '订单状态', + }, + }, + { + key: 'qj9ms33ymnt', + name: 'amount', + type: 'double', + interface: 'number', + collectionName: 'tt_mnt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '订单金额', + }, + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-25T12:17:57.745Z', + updatedAt: '2023-04-25T12:17:57.745Z', + collectionName: 'tt_mnt_sales', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'e6pnku1umnt', + name: 'tt_mnt_sales_detail', + title: '人工>销售订单明细[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '32d6q8ggmnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_sales_detail', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'n5ibp5iemnt', + name: 'orderid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_sales_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orderid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'ztpg5wlfmnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_sales_detail', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'czck2j0smnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_sales_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'tpvgjomomnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_sales_detail', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '5sn2s2xomnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_sales_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-25T12:45:35.367Z', + updatedAt: '2023-04-25T12:45:35.367Z', + collectionName: 'tt_mnt_sales_detail', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '2bvnp2sbmnt', + name: 'tt_mnt_defaultvalue', + title: '人工>默认值[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '7mzjbf1omnt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_mnt_defaultvalue', + }, + { + key: 'z2hgnn8imnt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_mnt_defaultvalue', + targetKey: 'id', + }, + { + key: '5r83de6vmnt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_mnt_defaultvalue', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'z8je0jajmnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'uld866n1mnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gjw3j1pbmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'olecaco2mnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'hyfbyx30mnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'utn8yk57mnt', + name: 'orgcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '区划编码' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 56712 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '公司编号(自动编码)' }, + inputable: false, + }, + { + key: 'sd1js4eomnt', + name: 'orgname', + type: 'string', + interface: 'input', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '公司名称(单行文本)' }, + defaultValue: '默认值:公司名称', + }, + { + key: 'dpg1reljmnt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '公司地址(多行文本)' }, + defaultValue: '默认值:公司地址(多行文本)', + }, + { + key: 'db3qm50mmnt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '负责人电话(手机号码)', + }, + defaultValue: '默认值:15912345678', + }, + { + key: 'ebaqb3bwmnt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + defaultValue: 'jihongbo@nocobase.com', + }, + { + key: '4a7n9i83mnt', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '官网地址(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'stmuctyrmnt', + name: 'staffnum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '员工人数(整数)', + }, + defaultValue: 899123, + }, + { + key: 'mv7mq8flmnt', + name: 'regcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '注册资本(数字)', + }, + defaultValue: 1234.56789, + }, + { + key: 'qlnzy3xkmnt', + name: 'paidcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '实缴资本(数字)', + }, + defaultValue: 123.456789, + }, + { + key: 'byow909jmnt', + name: 'insuranceratio', + type: 'float', + interface: 'percent', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.001', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '参保占比(百分比)', + }, + defaultValue: 0.12345, + }, + { + key: '5n8oh02mmnt', + name: 'password', + type: 'password', + interface: 'password', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + hidden: true, + uiSchema: { type: 'string', 'x-component': 'Password', title: '登录密码(密码)' }, + defaultValue: 'admin123', + }, + { + key: 'chcwtw6pmnt', + name: 'isenable', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否启用(勾选)' }, + defaultValue: true, + }, + { + key: 'l24xyofvmnt', + name: 'status_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Select', + title: '公司状态(下拉单选)', + }, + defaultValue: '1', + }, + { + key: 'i5ghwln2mnt', + name: 'range_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '经营范围(下拉多选)', + }, + defaultValue: ['F3134', 'I3006', 'I3008'], + }, + { + key: '1ya46ghamnt', + name: 'status_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '公司状态(单选)', + }, + defaultValue: '2', + }, + { + key: 'otn7lnx7mnt', + name: 'range_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '经营范围(复选)', + }, + defaultValue: ['L2095', 'M2070', 'O3010'], + }, + { + key: 'd9yuz42tmnt', + name: 'range_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '经营范围(Markdown)' }, + defaultValue: + '人工智能应用软件开发,软件外包服务,网络与信息安全软件开发,信息技术咨询服务,数据处理服务,计算机系统服务,企业管理咨询', + }, + { + key: 'pmn5kco5mnt', + name: 'range_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '经营范围(富文本)' }, + defaultValue: + '

网络与信息安全软件开发,数字文化创意软件开发,业务培训(不含教育培训、职业技能培训等需取得许可的培训)

', + }, + { + key: '6slk4p6bmnt', + name: 'establishdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '成立日期(日期)', + }, + defaultValue: '2023-03-30T07:19:11.963Z', + }, + { + key: '707gt6dwmnt', + name: 'range_json', + type: 'json', + interface: 'json', + collectionName: 'tt_mnt_defaultvalue', + parentKey: null, + reverseKey: null, + defaultValue: { + F3134: '软件销售', + I3006: '软件开发', + I3007: '人工智能基础软件开发', + I3008: '人工智能应用软件开发', + I3010: '软件外包服务', + I3011: '网络与信息安全软件开发', + I3014: '数字文化创意软件开发', + I3027: '信息技术咨询服务', + L2095: '企业管理咨询', + M2070: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广', + }, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '经营范围(JSON)', + }, + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-28T03:31:22.055Z', + updatedAt: '2023-04-28T03:31:22.055Z', + collectionName: 'tt_mnt_defaultvalue', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'nj5azm2gmnt', + name: 'tt_mnt_nofields', + title: '人工>无字段[普通表]', + inherit: false, + hidden: false, + fields: [], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-18T13:42:56.966Z', + updatedAt: '2023-04-18T13:42:56.966Z', + collectionName: 'tt_mnt_nofields', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: false, + createdBy: false, + updatedBy: false, + createdAt: false, + updatedAt: false, + sortable: false, + template: 'general', + view: false, + }, + { + key: '4tg08zk3mnt', + name: 'tt_mnt_org_range', + title: '人工>企业经营范围关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '2fbsga5vmnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_org_range', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'mewmuwi8mnt', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_org_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'o3l0cbk8mnt', + name: 'rangeid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_org_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'rangeid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'rnrzdmc9mnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_org_range', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '34wimt2smnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_org_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'xnj4hlo2mnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_org_range', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'za2aan91mnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_org_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-07T07:22:22.310Z', + updatedAt: '2023-04-07T07:22:22.310Z', + collectionName: 'tt_mnt_org_range', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'syz4h7tcmnt', + name: 'tt_mnt_org_tree_range', + title: '人工>企业[树表]经营范围关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '30gdvg32mnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_org_tree_range', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '7trh1ghgmnt', + name: 'rangeid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_org_tree_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'rangeid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '0sjgp48mmnt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_org_tree_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'j6e2sbqsmnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_org_tree_range', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'p46c0pkcmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_org_tree_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '6aope1xgmnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_org_tree_range', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gahitzlymnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_org_tree_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-27T09:04:24.855Z', + updatedAt: '2023-04-27T09:04:24.855Z', + collectionName: 'tt_mnt_org_tree_range', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '0fz08i10mnt', + name: 'tt_mnt_orglicense_range', + title: '人工>企业营业执照经营范围关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'v2azsdlamnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_orglicense_range', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'b236czclmnt', + name: 'orglicenseid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_orglicense_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orglicenseid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'h0apri91mnt', + name: 'rangeid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_orglicense_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'rangeid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '3jw7vt3wmnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_orglicense_range', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'j663zfhcmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_orglicense_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'hent1yb2mnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_orglicense_range', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'sjlsvl0imnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_orglicense_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-07T07:22:29.257Z', + updatedAt: '2023-04-07T07:22:29.257Z', + collectionName: 'tt_mnt_orglicense_range', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'nrlp2vp9mnt', + name: 'tt_mnt_staff_prof', + title: '人工>员工职业资格关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'bljoiqfemnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_staff_prof', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'wss1x9aamnt', + name: 'staffid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_staff_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'staffid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'q5ijh4pdmnt', + name: 'profid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_staff_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'profid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'f9m0mfa0mnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_staff_prof', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'h4xd3801mnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_staff_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'l58re1v1mnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_staff_prof', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'hpyexf1amnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_staff_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-07T07:22:36.300Z', + updatedAt: '2023-04-07T07:22:36.300Z', + collectionName: 'tt_mnt_staff_prof', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'juansr4gmnt', + name: 'tt_mnt_staff_tree_prof', + title: '人工>员工[树表]职业资格关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '9moeutkxmnt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_mnt_staff_tree_prof', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'ub4kxj8nmnt', + name: 'staffid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_staff_tree_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'staffid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'q5owne4zmnt', + name: 'profid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_mnt_staff_tree_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'profid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '6otonjmxmnt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_mnt_staff_tree_prof', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'k48spgxwmnt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_mnt_staff_tree_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'nj1wcx5umnt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_mnt_staff_tree_prof', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fnv5h6e8mnt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_mnt_staff_tree_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-04-27T08:51:02.170Z', + updatedAt: '2023-04-27T08:51:02.170Z', + collectionName: 'tt_mnt_staff_tree_prof', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '86lpobjxp76', + name: 'tt_cbt_org', + title: '兼容>组织[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'ohxa8xp91de', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'x39u0hhrmw8', + name: 'ownerid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'qjit9pcvss5', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'vijs3wcnqf7', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zsebjtwikbs', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fa4c74ph5jx', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'mv6h7f8l4bk', + name: 'orgcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '区域编码' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 57445 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '公司编号(自动编码)' }, + inputable: false, + }, + { + key: '44u5zoyylw0', + name: 'orgname', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '公司名称(单行文本)' }, + }, + { + key: 'tdq82bb0jwz', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '公司地址(多行文本)' }, + }, + { + key: '10xi6i247cd', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '负责人电话(手机号码)', + }, + }, + { + key: 'n3ykqhe48lp', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: '5ddcgbpqvf8', + name: 'staffnum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '员工人数(整数)', + }, + }, + { + key: 'z59sf4iljeg', + name: 'insurednum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '参保人数(整数)', + }, + }, + { + key: 'ecvb3a8xzhz', + name: 'regcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '注册资本(数字)', + }, + }, + { + key: 'ierg1fbv2gx', + name: 'paidcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '实缴资本(数字)', + }, + }, + { + key: '46kjnywa84p', + name: 'insuranceratio', + type: 'float', + interface: 'percent', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '参保占比(百分比)', + }, + }, + { + key: '8j2vkys9y4h', + name: 'isenable', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否启用(勾选)' }, + }, + { + key: '6f480de5n9r', + name: 'status_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Select', + title: '公司状态(下拉单选)', + }, + }, + { + key: 'fcx8cw1r1ut', + name: 'range_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '经营范围(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'z71al7aawii', + name: 'status_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '公司状态(单选)', + }, + }, + { + key: 'x8v9qf95hkd', + name: 'range_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '经营范围(复选)', + }, + defaultValue: [], + }, + { + key: 'pgmzldy7o64', + name: 'area', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '所属地区(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_cbt_org_area', + foreignKey: 'f_8r6ikw6xnz0', + otherKey: 'f_hbxb8vsecko', + sourceKey: 'id', + }, + { + key: 'ase7kobw3zm', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '公司近照(附件)', + }, + target: 'attachments', + through: 'tt_cbt_org_photo', + foreignKey: 'f_hmb1pbp4vgf', + otherKey: 'f_zwsrqz83mp8', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'c50l1zgua7b', + name: 'range_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '经营范围(Markdown)' }, + }, + { + key: 'msj1qa4dgvm', + name: 'range_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '经营范围(富文本)' }, + }, + { + key: 'q755hkxmcbp', + name: 'establishdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '成立日期(日期)', + }, + }, + { + key: '0rd147mems4', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'gbclpdalyyz', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'lc9t9qw7w7m', + name: 'license', + type: 'hasOne', + interface: 'oho', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: '6jboxc1xb9w', + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '营业执照(one has one)', + }, + target: 'tt_cbt_orglicense', + sourceKey: 'id', + }, + { + key: 'maki8q43lb2', + name: 'dept', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '部门(one to many)', + }, + target: 'tt_cbt_dept', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '0w5j5222ovz', + name: 'range', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + otherKey: 'rangeid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '经营范围(many to many)', + }, + through: 'tt_cbt_org_range', + target: 'tt_bd_range', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '9kn4ujerub3', + name: 'range_json', + type: 'json', + interface: 'json', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '经营范围(JSON)', + }, + }, + { + key: '07mz84ok1ie', + name: 'staff', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)', + }, + target: 'tt_cbt_staff', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '01me4f8dvhr', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(点)', + }, + }, + { + key: 'mkr7ceud215', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(线)', + }, + }, + { + key: 'bekuc6bv7w9', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(圆)', + }, + }, + { + key: 'i3vcrhvup6w', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(多边形)', + }, + }, + { + key: 'vqcsj7htqs4', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '官网地址(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'hpaq1qcr1vn', + name: 'owner', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)', + }, + target: 'tt_cbt_staff', + targetKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-07T07:20:14.134Z', + updatedAt: '2023-04-07T07:20:14.134Z', + collectionName: 'tt_cbt_org', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'jkvem4l290s', + name: 'tt_cbt_org_tree', + title: '兼容>组织[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'kc6qsw8wjjd', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'yx47674fi9w', + name: 'ownerid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '79u57anwxwr', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_cbt_org_tree', + }, + { + key: '83r2hhkb6qc', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_cbt_org_tree', + targetKey: 'id', + }, + { + key: 'taoh3i6lusp', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_cbt_org_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '296cj7ls69p', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gj21nfz5zss', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'z292a2aujd3', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '5kuz9obq6xc', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'azr2xsv2e2w', + name: 'orgcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '区域编码' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 63134 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '公司编号(自动编码)' }, + }, + { + key: '74al0ht7r19', + name: 'orgname', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '公司名称(单行文本)' }, + }, + { + key: 'n56ccueiioh', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '公司地址(多行文本)' }, + }, + { + key: 'abgsu9vsply', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '负责人电话(手机号码)', + }, + }, + { + key: 'nwpk0kqbtkk', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: 'ytnsb45bons', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '官网地址(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'x4nd5g8s47k', + name: 'staffnum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '员工人数(整数)', + }, + }, + { + key: 'pv4aqfcyq72', + name: 'insurednum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '参保人数(整数)', + }, + }, + { + key: 'mwini82xxel', + name: 'regcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '注册资本(数字)', + }, + }, + { + key: '5fglvshfepx', + name: 'paidcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '实缴资本(数字)', + }, + }, + { + key: 'zdigd67u7w6', + name: 'insuranceratio', + type: 'float', + interface: 'percent', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '参保占比(百分比)', + }, + }, + { + key: '42x9v3wvb6e', + name: 'isenable', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否启用(勾选)' }, + }, + { + key: 'xbjymcjxoty', + name: 'status_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Select', + title: '公司状态(下拉单选)', + }, + }, + { + key: 'v0ap20mgx8p', + name: 'range_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '经营范围(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'vwmg4ex9ecs', + name: 'status_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '公司状态(单选)', + }, + }, + { + key: 'upkxrqfr3np', + name: 'range_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '经营范围(复选)', + }, + defaultValue: [], + }, + { + key: 'd9y72qk8fkt', + name: 'area', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '所属地区(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_cbt_org_tree_area', + foreignKey: 'f_y6ukux7kw1q', + otherKey: 'f_ai3a25o9qc5', + sourceKey: 'id', + }, + { + key: 'qyrlvi326ow', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '公司近照(附件)', + }, + target: 'attachments', + through: 'tt_cbt_org_tree_photo', + foreignKey: 'f_xlak0scjck5', + otherKey: 'f_e5xhh2cuol1', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'n9wnfqdrnno', + name: 'range_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '经营范围(Markdown)' }, + }, + { + key: 'wkfyg6lva8q', + name: 'range_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '经营范围(富文本)' }, + }, + { + key: 'slzowx7d2zz', + name: 'establishdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '成立日期(日期)', + }, + }, + { + key: 'qiqf41ygy0v', + name: 'range_json', + type: 'json', + interface: 'json', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '经营范围(JSON)', + }, + }, + { + key: '5qmafhaxqiy', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'r0qqlw89m9b', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'led3sjaex86', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(点)', + }, + }, + { + key: 'ipdvxkxj807', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(线)', + }, + }, + { + key: 'ldr83y30jbo', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(圆)', + }, + }, + { + key: 'ggdzs1wxoue', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(多边形)', + }, + }, + { + key: '6327d159dd7', + name: 'license', + type: 'hasOne', + interface: 'oho', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '营业执照(one has one)', + }, + target: 'tt_cbt_orglicense', + sourceKey: 'id', + }, + { + key: 'wbdndzvqdur', + name: 'owner_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)[树表]', + }, + target: 'tt_cbt_staff_tree', + targetKey: 'id', + }, + { + key: 'ao3kbbt3k66', + name: 'dept_tree', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '部门(one to many)[树表]', + }, + target: 'tt_cbt_dept_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'sd0zsbzyebz', + name: 'staff_tree', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)[树表]', + }, + target: 'tt_cbt_staff_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'c5m12hy5nwr', + name: 'range', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_cbt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + otherKey: 'rangeid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '经营范围(many to many)', + }, + target: 'tt_bd_range', + through: 'tt_cbt_org_tree_range', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-25T14:06:15.660Z', + updatedAt: '2023-04-25T14:06:15.660Z', + collectionName: 'tt_cbt_org_tree', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'c9hyqimlamg', + name: 'tt_cbt_dept', + title: '兼容>部门[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '28tj63grxh6', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_dept', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '67necqta6uz', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_dept', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'nqeetal0aup', + name: 'ownerid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_dept', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'dbb290eowti', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_dept', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '9c2ga9cmivp', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_dept', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '65yzgsp7wqa', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_dept', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'w0tqtrnxyut', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_dept', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zbos4viuxut', + name: 'deptcode', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门编码' }, + }, + { + key: 'qpuhqqmdjel', + name: 'deptname', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门名称' }, + }, + { + key: 'a7sva5d0eva', + name: 'org', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_dept', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)', + }, + target: 'tt_cbt_org', + targetKey: 'id', + }, + { + key: 'ab74sl8fnzc', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'fnsb3qqhsns', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: '3hur9occz1k', + name: 'staff', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_dept', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)', + }, + target: 'tt_cbt_staff', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'flwjk24ue0c', + name: 'owner', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_dept', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)', + }, + target: 'tt_cbt_staff', + targetKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-07T07:20:25.220Z', + updatedAt: '2023-04-07T07:20:25.220Z', + collectionName: 'tt_cbt_dept', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'dmm5t1ioi8y', + name: 'tt_cbt_dept_tree', + title: '兼容>部门[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '1gdw4yp81kt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '2u3nb80r4m8', + name: 'ownerid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'gbcioiedcpt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'abaa5i71gg5', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_cbt_dept_tree', + }, + { + key: 'k4bwf4fwn7p', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_cbt_dept_tree', + targetKey: 'id', + }, + { + key: 'uram4ujwxc9', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_cbt_dept_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'jdtnebxaa2b', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'al86l9utwt3', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'lu5n2igksbk', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'rxi8ruyh1cv', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '5o0c6zhcpux', + name: 'deptcode', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门编码' }, + }, + { + key: 'fqrkfpzzqo2', + name: 'deptname', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门名称' }, + }, + { + key: 'hx8w6300ucg', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'iux15mx1e1p', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'gcqvgh1p34a', + name: 'owner_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)[树表]', + }, + target: 'tt_cbt_staff_tree', + targetKey: 'id', + }, + { + key: 'sh4vp1w3xwg', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_cbt_org_tree', + targetKey: 'id', + }, + { + key: '0ff3qb08ole', + name: 'staff_tree', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)[树表]', + }, + target: 'tt_cbt_staff_tree', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-27T08:22:25.503Z', + updatedAt: '2023-04-27T08:22:25.503Z', + collectionName: 'tt_cbt_dept_tree', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'jff9r7ebgbk', + name: 'tt_cbt_orglicense', + title: '兼容>组织营业执照([普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '9qhn1fuuze4', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'fgiqbd4ewkc', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '所属组织id(外键)', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '00r3t2p7rs2', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '1fthdco0ryx', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '3a9n2pwtffe', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'rua496y1ac5', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '6jboxc1xb9w', + name: 'org', + type: 'belongsTo', + interface: 'obo', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: 'lc9t9qw7w7m', + uiSchema: { + title: '所属组织(one belongsto one)', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_cbt_org', + onDelete: 'SET NULL', + targetKey: 'id', + foreignKey: 'orgid', + }, + { + key: '82etkpqdhm0', + name: 'unifiledcode', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '统一社会信用代码(单行文本)' }, + }, + { + key: '3pcmumdf3wq', + name: 'legalpersonname', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '法人姓名(单行文本)' }, + }, + { + key: 'iw6icymf3hx', + name: 'legalpersonidnumber', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '法人身份证件号(单行文本)' }, + }, + { + key: 'lr6c7yhj7hh', + name: 'range', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + foreignKey: 'orglicenseid', + otherKey: 'rangeid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '经营范围(many to many)', + }, + through: 'tt_cbt_orglicense_range', + target: 'tt_bd_range', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '662guqhyl4y', + name: 'rangecode', + type: 'text', + interface: 'textarea', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '经营范围编码(多行文本)' }, + }, + { + key: 'k6bhpu8vcpd', + name: 'rangedesc', + type: 'text', + interface: 'textarea', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '经营范围描述(多行文本)' }, + }, + { + key: 'iznfr95f7ph', + name: 'expiredate_start', + type: 'date', + interface: 'datetime', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '有效期起(日期)', + }, + }, + { + key: '1q80cfg1zns', + name: 'expiredate_end', + type: 'date', + interface: 'datetime', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '有效期止(日期)', + }, + }, + { + key: 'wm9jsj6th96', + name: 'issuedate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '发证日期(日期)', + }, + }, + { + key: '6m7kai14jbh', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'muf1twfgi3w', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-07T07:20:20.927Z', + updatedAt: '2023-04-07T07:20:20.927Z', + collectionName: 'tt_cbt_orglicense', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'dax26iux3n8', + name: 'tt_cbt_staff', + title: '兼容>员工[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '0d2rycb2rqh', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 't0bt3g4c5pw', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '5k5ccsyhamq', + name: 'deptid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '3ji1ldju5or', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'orh016pzvjw', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'xxm0g05js2d', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '9wp4v5fw2c1', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'iezxmwh1pmu', + name: 'staffcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'NB' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 52016 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '员工号(自动编码)' }, + unique: false, + inputable: false, + }, + { + key: 'khzh1v1crh5', + name: 'staffname', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '姓名(单行文本)' }, + }, + { + key: '8h58dz5bc1q', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '联系地址(多行文本)' }, + }, + { + key: 'zolos0d94rz', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: 'h1i82qry5pg', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: '6mjqrhctu1i', + name: 'age', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '年龄(整数)', + }, + }, + { + key: 'i5e7xxo2tih', + name: 'workyears', + type: 'double', + interface: 'number', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '工龄(数字)', + }, + }, + { + key: 'xfm96km3ay8', + name: 'selforgworkyears', + type: 'double', + interface: 'number', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '司龄(数字)', + }, + }, + { + key: 'xon8vnm10p2', + name: 'proportion', + type: 'float', + interface: 'percent', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '股份占比(百分比)', + }, + }, + { + key: 'dnijk17tw94', + name: 'isonduty', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否在岗(勾选)' }, + }, + { + key: 'v9kgbw1n32i', + name: 'maritalstatus_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Select', + title: '婚姻状况(下拉单选)', + }, + }, + { + key: '1m7sadgxczt', + name: 'prof_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '33', label: '通信专业技术人员职业资格' }, + { value: '34', label: '计算机技术与软件专业技术资格' }, + { value: '36', label: '会计专业技术资格' }, + { value: '52', label: '统计专业技术资格' }, + { value: '56', label: '翻译专业资格' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '职业资格(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'as9m82ynb6i', + name: 'maritalstatus_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '婚姻状况(单选)', + }, + }, + { + key: 'h4a3h0zktsi', + name: 'prof_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '33', label: '通信专业技术人员职业资格' }, + { value: '34', label: '计算机技术与软件专业技术资格' }, + { value: '36', label: '会计专业技术资格' }, + { value: '52', label: '统计专业技术资格' }, + { value: '56', label: '翻译专业资格' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '职业资格(复选)', + }, + defaultValue: [], + }, + { + key: '2vg9uhb40cb', + name: 'regaddress', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '户籍地(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_cbt_staff_regaddress', + foreignKey: 'f_hhmtoqcqk8g', + otherKey: 'f_t0sryffordg', + sourceKey: 'id', + }, + { + key: '9rfwtrreg3y', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '照片(附件)', + }, + target: 'attachments', + through: 'tt_cbt_staff_photo', + foreignKey: 'f_yntlgbf87rd', + otherKey: 'f_sikqv9m15cv', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '7x5uevlofd7', + name: 'prof_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '职业资格(Markdown)' }, + }, + { + key: 'lybdq5awnxh', + name: 'prof_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '职业资格(富文本)' }, + }, + { + key: 'duc6939b0fx', + name: 'birthdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '出生日期(日期)', + }, + }, + { + key: 'kd1k3d1vwqu', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'h0kyhflpfpq', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'sigq297cfxr', + name: 'org', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)', + }, + target: 'tt_cbt_org', + targetKey: 'id', + }, + { + key: 'kgag86hi75g', + name: 'dept', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属部门(many to one)', + }, + target: 'tt_cbt_dept', + targetKey: 'id', + }, + { + key: 'vja8qigtdkx', + name: 'prof', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + foreignKey: 'staffid', + otherKey: 'profid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '职业资格(many to many)', + }, + through: 'tt_cbt_staff_prof', + target: 'tt_bd_prof', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'r5b5s85sug3', + name: 'prof_json', + type: 'json', + interface: 'json', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '职业资格(JSON)', + }, + }, + { + key: 'be635dbca1r', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(点) ', + }, + }, + { + key: 'lmd0usk9a55', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(线) ', + }, + }, + { + key: '07yrmxlogkg', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(圆)', + }, + }, + { + key: '4k9t55htk3q', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(多边形)', + }, + }, + { + key: 'dn9fkra7ey9', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_cbt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '个人主页(URL)', 'x-component': 'Input.URL' }, + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-07T07:20:55.666Z', + updatedAt: '2023-04-07T07:20:55.666Z', + collectionName: 'tt_cbt_staff', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: '07n5p6udfx8', + name: 'tt_cbt_staff_tree', + title: '兼容>员工[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'y76pacee2fu', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'o12889owiy3', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '6lgwn42myts', + name: 'deptid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '57e1zlytn4j', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_cbt_staff_tree', + }, + { + key: 'c4pv07f81dl', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_cbt_staff_tree', + targetKey: 'id', + }, + { + key: 'fr94xx2pl3v', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_cbt_staff_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'q3rlwr75m6s', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fvfjkwsup37', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zow7sqves5q', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'ifmf1eie509', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'wd1i5pqg9om', + name: 'staffcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'NB' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 8071 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '员工号(自动编码)' }, + }, + { + key: 'v6k6cr1t0gu', + name: 'staffname', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '姓名(单行文本)' }, + }, + { + key: '8bsrw9j461l', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '联系地址(多行文本)' }, + }, + { + key: 'zhqz0lwvhps', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: 'l1hh1wh7wer', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: '9u0y3nvaqb8', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '个人主页(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'ol1z5t5qjc7', + name: 'age', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '年龄(整数)', + }, + }, + { + key: 'kkgucwe04l0', + name: 'workyears', + type: 'double', + interface: 'number', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '工龄(数字)', + }, + }, + { + key: 'hka1kizw86k', + name: 'selforgworkyears', + type: 'double', + interface: 'number', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '司龄(数字)', + }, + }, + { + key: '96l8dmbre6z', + name: 'proportion', + type: 'float', + interface: 'percent', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '股份占比(百分比)', + }, + }, + { + key: 'q89bdfmef7z', + name: 'isonduty', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否在岗(勾选)' }, + }, + { + key: '4gi6ye8zadf', + name: 'maritalstatus_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Select', + title: '婚姻状况(下拉单选)', + }, + }, + { + key: 'my9kkqa4rmh', + name: 'prof_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '33', label: '通信专业技术人员职业资格' }, + { value: '34', label: '计算机技术与软件专业技术资格' }, + { value: '36', label: '会计专业技术资格' }, + { value: '52', label: '统计专业技术资格' }, + { value: '56', label: '翻译专业资格' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '职业资格(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'b8r0ccdnmh4', + name: 'maritalstatus_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '婚姻状况(单选)', + }, + }, + { + key: 'has6qmwhqhd', + name: 'prof_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '34', label: '通信专业技术人员职业资格' }, + { value: '36', label: '计算机技术与软件专业技术资格' }, + { value: '52', label: '会计专业技术资格' }, + { value: '56', label: '统计专业技术资格' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '职业资格(复选)', + }, + defaultValue: [], + }, + { + key: '1um9vv5v6d4', + name: 'regaddress', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '户籍地(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_cbt_staff_tree_regaddress', + foreignKey: 'f_ife9oxivp9d', + otherKey: 'f_6qkh23zbzww', + sourceKey: 'id', + }, + { + key: '70if34x0zgo', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '照片(附件)', + }, + target: 'attachments', + through: 'tt_cbt_staff_tree_photo', + foreignKey: 'f_6m5lnpitpr8', + otherKey: 'f_dcbgh1euvv8', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '4kk7v93yh03', + name: 'prof_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '职业资格(Markdown)' }, + }, + { + key: '04s0u9kdxwq', + name: 'prof_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '职业资格(富文本)' }, + }, + { + key: 'yw6tg52vbbi', + name: 'birthdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '出生日期(日期)', + }, + }, + { + key: '3hleeqt31rz', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'zh6dj1kgi2w', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'ebgwkmkkswd', + name: 'prof_json', + type: 'json', + interface: 'json', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '职业资格(JSON)', + }, + }, + { + key: 'xkq2xsm5n34', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(点)', + }, + }, + { + key: 'u0mnio95b3z', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(线)', + }, + }, + { + key: 'qee0kthfg5o', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(圆)', + }, + }, + { + key: 'lltpukvlecd', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(多边形)', + }, + }, + { + key: '9i5avlqolrf', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_cbt_org_tree', + targetKey: 'id', + }, + { + key: 'dpozkfpd0k7', + name: 'dept_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属部门(many to one)[树表]', + }, + target: 'tt_cbt_dept_tree', + targetKey: 'id', + }, + { + key: 'tj2z9xpyqbx', + name: 'prof_tree', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_cbt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'staffid_tree', + otherKey: 'profid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '职业资格(many to many)[树表]', + }, + target: 'tt_bd_prof', + through: 'tt_cbt_staff_tree_prof', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-27T08:30:17.111Z', + updatedAt: '2023-04-27T08:30:17.111Z', + collectionName: 'tt_cbt_staff_tree', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'wxthhajvwo5', + name: 'tt_cbt_customer_tree', + title: '兼容>客户[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '7slke7lrnhm', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'ljn3r3j29te', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '70pjqv7vh91', + name: 'countryid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'countryid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'wb3a5n00sdi', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_cbt_customer_tree', + }, + { + key: 'sib2jw39r8c', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_cbt_customer_tree', + targetKey: 'id', + }, + { + key: '6iej9s4r2uw', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_cbt_customer_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'rakkhuyq4sp', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '0enk4fydfnz', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '4hvi0emcp2b', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '3x3n73dzub3', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '02gf41rlzmf', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_cbt_org_tree', + targetKey: 'id', + }, + { + key: 'rvq1m32cchs', + name: 'custcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '客户' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 20697 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '客户编码' }, + }, + { + key: '8oeh8ic63pi', + name: 'custname', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '客户名称' }, + }, + { + key: 'q7duzlt0wv9', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '地址(多行文本)' }, + }, + { + key: 'nhr8omk5g6i', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: 'gwzayy3rmrr', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: 'tziwvbps8oh', + name: 'country', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'countryid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所在国家(many to one)', + }, + target: 'tt_bd_country', + targetKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-28T09:44:23.793Z', + updatedAt: '2023-04-28T09:44:23.793Z', + collectionName: 'tt_cbt_customer_tree', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: '7392uqu953g', + name: 'tt_cbt_supplier_tree', + title: '兼容>供应商[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'mks9f38safy', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'kzusp28bt0k', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'zg1uwvdwk6i', + name: 'countryid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'countryid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'jgaiuu1qa5m', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_cbt_supplier_tree', + }, + { + key: '0rbkjvyx1o4', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_cbt_supplier_tree', + targetKey: 'id', + }, + { + key: '77hg0uxzptd', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_cbt_supplier_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'p13jc9l75oh', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'xct6unjgfds', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'vmhpgoa5lui', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'oagzn1jg13j', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'gzkhprhxaei', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_cbt_org_tree', + targetKey: 'id', + }, + { + key: 'fh5kfafscu5', + name: 'suppliercode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '供应商' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 20518 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '供应商编码' }, + }, + { + key: 'vfu829qkcnn', + name: 'suppliername', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '供应商名称' }, + }, + { + key: '8iq0bwj8ddp', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '地址(多行文本)' }, + }, + { + key: 'tpjdf0qlpzx', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: '12jih9km9ht', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: 'ksx9ximz95n', + name: 'country', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'countryid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所在国家(many to one)', + }, + target: 'tt_bd_country', + targetKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-28T09:45:02.249Z', + updatedAt: '2023-04-28T09:45:02.249Z', + collectionName: 'tt_cbt_supplier_tree', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'k6j1dzcwim1', + name: 'tt_cbt_materialclass_tree', + title: '兼容>物料分类[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '5hyy7ulh8p3', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_materialclass_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_cbt_materialclass_tree', + }, + { + key: 'g1xc56vdwz1', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_materialclass_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_cbt_materialclass_tree', + targetKey: 'id', + }, + { + key: '872hxq6fyl3', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_materialclass_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_cbt_materialclass_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'v424kp87es5', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_materialclass_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'he58euuqqbt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_materialclass_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '07hjbpnrbuh', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_materialclass_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '8gs6msrqdyc', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_materialclass_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'so854ilsp9b', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_materialclass_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'p770it8ysph', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '分类编码' }, + unique: true, + }, + { + key: 'k5xztdme0v5', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '分类名称' }, + }, + { + key: 'nr876w40ol4', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: '2o68nz63ebp', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-19T09:20:22.556Z', + updatedAt: '2023-04-19T09:20:22.556Z', + collectionName: 'tt_cbt_materialclass_tree', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: '71pkkfvojw3', + name: 'tt_cbt_material', + title: '兼容>物料[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'c5r0cfgodff', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_material', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '0q971jh5813', + name: 'classid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_material', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'classid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'p2me0o8t3me', + name: 'unitid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_material', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'unitid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'waqpt4bge0k', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_material', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'nc86chxbup6', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_material', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '7tknuof2bsu', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_material', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '1l9ejn4pv9b', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_material', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '8drih6gholc', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料编码' }, + unique: true, + }, + { + key: '20zdhfal1qm', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料名称' }, + }, + { + key: '5wqpy9zf7bp', + name: 'spec', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '规格' }, + }, + { + key: 'ggiidy6ls5a', + name: 'type', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '型号' }, + }, + { + key: 'cvt9ywoo592', + name: 'classname', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '分类名称' }, + }, + { + key: 'mu2qzacsiab', + name: 'class', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_material', + parentKey: null, + reverseKey: null, + foreignKey: 'classid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '物料分类', + }, + target: 'tt_cbt_materialclass_tree', + targetKey: 'id', + }, + { + key: 'ydv8fsi5zba', + name: 'unit', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_material', + parentKey: null, + reverseKey: null, + foreignKey: 'unitid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '计量单位', + }, + target: 'tt_bd_unit', + targetKey: 'id', + }, + { + key: 'oe79qxo1h5w', + name: 'unitname', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '单位名称' }, + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-20T01:52:56.923Z', + updatedAt: '2023-04-20T01:52:56.923Z', + collectionName: 'tt_cbt_material', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'tu68q4z3hy8', + name: 'tt_cbt_warehouse', + title: '兼容>仓库[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'apvdr645t49', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_warehouse', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'kclgp2ip5z2', + name: 'staffid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_warehouse', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'staffid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'xtx7x7icem4', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_warehouse', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '4mn9swsyd2c', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_warehouse', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zc7tecz8m9e', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_warehouse', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gwebb7uqqzk', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_warehouse', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'tw3v31jts9w', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_warehouse', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '编码' }, + unique: true, + }, + { + key: 'tlwo8alndnp', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_warehouse', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '名称' }, + unique: false, + }, + { + key: 'ow21q1miish', + name: 'address', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_warehouse', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '地址' }, + }, + { + key: 'xcaygwbows9', + name: 'owner_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_warehouse', + parentKey: null, + reverseKey: null, + foreignKey: 'staffid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)[树表]', + }, + target: 'tt_cbt_staff_tree', + targetKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-26T02:46:43.336Z', + updatedAt: '2023-04-26T02:46:43.336Z', + collectionName: 'tt_cbt_warehouse', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'n4lsa1g26sp', + name: 'tt_cbt_inventory', + title: '兼容>库存[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'abeyktkjbz3', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'g5qkwfpytfr', + name: 'materialid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'materialid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '14f2xdmh0z6', + name: 'warehouseid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'warehouseid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '95jd7wri774', + name: 'unitid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'unitid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'qc3p5dt69wa', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'yiomb00g2b0', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '9brp2wbr6gn', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'n35bf0aff9v', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '298424xegog', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'd6kytzf420a', + name: 'material', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'materialid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '物料(many to one)', + }, + target: 'tt_cbt_material', + targetKey: 'id', + }, + { + key: 'prh0xuiidh7', + name: 'warehouse_code', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '仓库编码' }, + }, + { + key: '6mi0mibo6gg', + name: 'warehouse_name', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '仓库名称' }, + }, + { + key: '0jmm0k7hqnq', + name: 'material_code', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料编码' }, + }, + { + key: 'qf02v4u7va6', + name: 'material_name', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料名称' }, + }, + { + key: 'qivjufzrque', + name: 'material_spec', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料规格' }, + }, + { + key: '45xaw14ifr3', + name: 'material_type', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料型号' }, + }, + { + key: '9sblvxa08j6', + name: 'material_unit', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料单位名称' }, + }, + { + key: 'ua0nwv6aw1d', + name: 'quantity', + type: 'double', + interface: 'number', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '库存数量', + }, + }, + { + key: 'inwiwx60ocz', + name: 'warehouse', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'warehouseid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '仓库(many to one)', + }, + target: 'tt_cbt_warehouse', + targetKey: 'id', + }, + { + key: 'sfl8nllbb1t', + name: 'unit', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'unitid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '计量单位(many to one)', + }, + target: 'tt_bd_unit', + targetKey: 'id', + }, + { + key: '9q9kws0vays', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '组织(many to one)[树表]', + }, + target: 'tt_cbt_org_tree', + targetKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-25T06:25:00.153Z', + updatedAt: '2023-04-25T06:25:00.153Z', + collectionName: 'tt_cbt_inventory', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '44kz0lhysj7', + name: 'tt_cbt_purchase', + title: '兼容>采购订单[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'zu5d8z6kxxr', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'jl9co7lgabi', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '1pjpolws8pg', + name: 'deptid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'vaq1zx9t0xt', + name: 'supplierid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'supplierid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'gyrywzcgrvf', + name: 'purchasecontactid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { + type: 'number', + title: 'purchasecontactid_tree', + 'x-component': 'InputNumber', + 'x-read-pretty': true, + }, + }, + { + key: 'oa2xy75exx3', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'q7rwin7qqlp', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '46ozud8tgkq', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'epfl5wdxzf1', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'tf2g38s3vjn', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '采购组织(many to one)[树表]', + }, + target: 'tt_cbt_org_tree', + targetKey: 'id', + }, + { + key: '9rlqnee92l0', + name: 'dept_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '采购部门(many to one)[树表]', + }, + target: 'tt_cbt_dept_tree', + targetKey: 'id', + }, + { + key: '7am8kldzpr4', + name: 'supplier_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'supplierid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '供应商(many to one)[树表]', + }, + target: 'tt_cbt_supplier_tree', + targetKey: 'id', + }, + { + key: 'ftodeoodigk', + name: 'order_no', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'PO' } }, + { type: 'date', options: {} }, + { type: 'integer', options: { digits: 5, start: 1, key: 25778 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '订单号(自动编码)' }, + unique: true, + }, + { + key: 'pv6aog71h85', + name: 'purchasecontact', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'purchasecontactid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '采购联系人(many to one)[树表]', + }, + target: 'tt_cbt_staff_tree', + targetKey: 'id', + }, + { + key: 'n59j0a22tg0', + name: 'purchasecontact_name', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '采购联系人姓名' }, + }, + { + key: 'ib304wsng1b', + name: 'purchasecontact_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '采购联系电话', + }, + }, + { + key: '5utcqj28l95', + name: 'suppliercontact_name', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '供应商联系人姓名' }, + }, + { + key: 'ji5xtqgornx', + name: 'suppliercontact_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '供应商联系人电话', + }, + }, + { + key: 'eo46f5j7i95', + name: 'paymentstatus', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '未付款' }, + { value: '2', label: '已付款' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '付款状态', + }, + }, + { + key: '32zcduo25gx', + name: 'status', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '已发货' }, + { value: '2', label: '已签收' }, + { value: '3', label: '已退货' }, + { value: '4', label: '取消交易' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '订单状态', + }, + }, + { + key: '0ptwgu88rf6', + name: 'amount', + type: 'double', + interface: 'number', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '订单金额', + }, + }, + { + key: 'usb8rwvic77', + name: 'detail', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'orderid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '订单明细(one to many)', + }, + target: 'tt_cbt_purchase_detail', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-25T12:15:52.314Z', + updatedAt: '2023-04-25T12:15:52.314Z', + collectionName: 'tt_cbt_purchase', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'kryvveqeh50', + name: 'tt_cbt_purchase_detail', + title: '兼容>采购订单明细[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'bx68gtu7cdp', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'j72k53rkw4m', + name: 'materialid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'materialid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '95gbyr21t9v', + name: 'unitid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'unitid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'rv5jirstlsl', + name: 'orderid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orderid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'hero7kpwm28', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fmq1ydbfxc8', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'kypoomknwpn', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'nny43njxapb', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'c5miad3v6kx', + name: 'order_no', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '订单号' }, + }, + { + key: 'uqgrkynr3v5', + name: 'material', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + foreignKey: 'materialid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '物料(many to one)', + }, + target: 'tt_cbt_material', + targetKey: 'id', + }, + { + key: 'bl7rotum5a9', + name: 'materialcode', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料编码' }, + }, + { + key: 'r4knrjc1orj', + name: 'materialname', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料名称' }, + }, + { + key: 'xh2x8ozpavj', + name: 'materialspec', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料规格' }, + }, + { + key: '6udro2iw2zg', + name: 'materialtype', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料型号' }, + }, + { + key: 'ggluomz0jwo', + name: 'materialunit', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + foreignKey: 'unitid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '计量单位(many to one)', + }, + target: 'tt_bd_unit', + targetKey: 'id', + }, + { + key: '7rqysq3h9il', + name: 'unitname', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '计量单位' }, + }, + { + key: '5etvyohuhix', + name: 'price', + type: 'double', + interface: 'number', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '价格', + }, + }, + { + key: 'v4ipx3dajt7', + name: 'quantity', + type: 'double', + interface: 'number', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '数量', + }, + }, + { + key: 'ipiuw9uy2pl', + name: 'amount', + type: 'formula', + interface: 'formula', + collectionName: 'tt_cbt_purchase_detail', + parentKey: null, + reverseKey: null, + dataType: 'double', + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'Formula.Result', + 'x-read-pretty': true, + title: '金额', + }, + engine: 'math.js', + expression: '{{price}}*{{quantity}}', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-25T12:44:24.873Z', + updatedAt: '2023-04-25T12:44:24.873Z', + collectionName: 'tt_cbt_purchase_detail', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '5xacggexvq6', + name: 'tt_cbt_production', + title: '兼容>生产订单[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'zf3pkbado1r', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_production', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'na8opa82boc', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_production', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'kpu29b74cdo', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_production', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '3jcf7oyxjku', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_production', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fxrdb8s4w8e', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_production', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'rj55h3axt4i', + name: 'detail', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_production', + parentKey: null, + reverseKey: null, + foreignKey: 'orderid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '订单明细(one to many)', + }, + target: 'tt_cbt_production_detail', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-25T14:08:27.913Z', + updatedAt: '2023-04-25T14:08:27.913Z', + collectionName: 'tt_cbt_production', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'h093tdwmm8t', + name: 'tt_cbt_production_detail', + title: '兼容>生产订单明细[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'xmrs0mlfjvx', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_production_detail', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '7qdn6q3a9ff', + name: 'orderid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_production_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orderid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'spim8s5f0c9', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_production_detail', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'bgct5ehsovl', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_production_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'j5l9nb1hre9', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_production_detail', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '4ybl1kwypq9', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_production_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-25T14:08:55.636Z', + updatedAt: '2023-04-25T14:08:55.636Z', + collectionName: 'tt_cbt_production_detail', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'nt80ck13bc5', + name: 'tt_cbt_sales', + title: '兼容>销售订单[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'zt2k3h7hib5', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '93fwne9pgfw', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'xs1l2rwavf5', + name: 'deptid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'iq9oe0gg1gk', + name: 'salescontactid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'salescontactid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'gfrrwt8tu1p', + name: 'customerid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'customerid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'nadruvhualk', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'yizb72d1mnf', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'ps02ffrs8sx', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '23hdfiv1a1w', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'gctv1r6jw89', + name: 'order_bo', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'CO' } }, + { type: 'date', options: {} }, + { type: 'integer', options: { digits: 5, start: 1, key: 7204 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '订单号(字段编号)' }, + }, + { + key: '2llg7id8puy', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '销售组织(many to one)[树表]', + }, + target: 'tt_cbt_org_tree', + targetKey: 'id', + }, + { + key: '7c730b5rylm', + name: 'dept_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '销售部门(many to one)[树表]', + }, + target: 'tt_cbt_dept_tree', + targetKey: 'id', + }, + { + key: '7wtlcoz9kdk', + name: 'salescontact', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'salescontactid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '销售联系人(many to one)[树表]', + }, + target: 'tt_cbt_staff_tree', + targetKey: 'id', + }, + { + key: 'q3rs6u23j3i', + name: 'customer_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'customerid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '客户(many to one)[树表]', + }, + target: 'tt_cbt_customer_tree', + targetKey: 'id', + }, + { + key: '0pemv8jmskz', + name: 'detail', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'orderid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '订单明细(one to many)', + }, + target: 'tt_cbt_sales_detail', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'svwa3wgbb9r', + name: 'salescontact_name', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '销售联系人姓名' }, + }, + { + key: 'nku29fow8bi', + name: 'salescontact_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '销售联系人电话', + }, + }, + { + key: 'xr4pcarh9nl', + name: 'customer_name', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '客户联系人姓名' }, + }, + { + key: 'mmhhc0pti7t', + name: 'customer_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '客户联系人电话', + }, + }, + { + key: 'xfgac7bl29t', + name: 'paymentstatus', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '未付款' }, + { value: '2', label: '已付款' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '付款状态', + }, + }, + { + key: 'xx7i85nbmx7', + name: 'status', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '已发货' }, + { value: '2', label: '已签收' }, + { value: '3', label: '已退货' }, + { value: '4', label: '取消交易' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '订单状态', + }, + }, + { + key: 'qj9ms33yp41', + name: 'amount', + type: 'double', + interface: 'number', + collectionName: 'tt_cbt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '订单金额', + }, + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-25T12:17:57.745Z', + updatedAt: '2023-04-25T12:17:57.745Z', + collectionName: 'tt_cbt_sales', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'e6pnku1ueyx', + name: 'tt_cbt_sales_detail', + title: '兼容>销售订单明细[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '32d6q8ggzz3', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_sales_detail', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'n5ibp5iexvo', + name: 'orderid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_sales_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orderid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'ztpg5wlf1t0', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_sales_detail', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'czck2j0sk5l', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_sales_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'tpvgjomol47', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_sales_detail', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '5sn2s2xod0d', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_sales_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-25T12:45:35.367Z', + updatedAt: '2023-04-25T12:45:35.367Z', + collectionName: 'tt_cbt_sales_detail', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '2bvnp2sb7mo', + name: 'tt_cbt_defaultvalue', + title: '兼容>默认值[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '7mzjbf1oypt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_cbt_defaultvalue', + }, + { + key: 'z2hgnn8i6kq', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_cbt_defaultvalue', + targetKey: 'id', + }, + { + key: '5r83de6vems', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_cbt_defaultvalue', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'z8je0jajyos', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'uld866n1c3g', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gjw3j1pbwfo', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'olecaco2aqx', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'hyfbyx30wic', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'utn8yk57hj2', + name: 'orgcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '区划编码' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 56702 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '公司编号(自动编码)' }, + inputable: false, + }, + { + key: 'sd1js4eopkn', + name: 'orgname', + type: 'string', + interface: 'input', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '公司名称(单行文本)' }, + defaultValue: '默认值:公司名称', + }, + { + key: 'dpg1reljy7o', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '公司地址(多行文本)' }, + defaultValue: '默认值:公司地址(多行文本)', + }, + { + key: 'db3qm50mc5t', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '负责人电话(手机号码)', + }, + defaultValue: '默认值:15912345678', + }, + { + key: 'ebaqb3bwo4o', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + defaultValue: 'jihongbo@nocobase.com', + }, + { + key: '4a7n9i83uxc', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '官网地址(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'stmuctyrv2p', + name: 'staffnum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '员工人数(整数)', + }, + defaultValue: 899123, + }, + { + key: 'mv7mq8fl3np', + name: 'regcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '注册资本(数字)', + }, + defaultValue: 1234.56789, + }, + { + key: 'qlnzy3xk12m', + name: 'paidcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '实缴资本(数字)', + }, + defaultValue: 123.456789, + }, + { + key: 'byow909j2hp', + name: 'insuranceratio', + type: 'float', + interface: 'percent', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.001', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '参保占比(百分比)', + }, + defaultValue: 0.12345, + }, + { + key: '5n8oh02m0z7', + name: 'password', + type: 'password', + interface: 'password', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + hidden: true, + uiSchema: { type: 'string', 'x-component': 'Password', title: '登录密码(密码)' }, + defaultValue: 'admin123', + }, + { + key: 'chcwtw6pjvj', + name: 'isenable', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否启用(勾选)' }, + defaultValue: true, + }, + { + key: 'l24xyofvl0o', + name: 'status_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Select', + title: '公司状态(下拉单选)', + }, + defaultValue: '1', + }, + { + key: 'i5ghwln2mm5', + name: 'range_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '经营范围(下拉多选)', + }, + defaultValue: ['F3134', 'I3006', 'I3008'], + }, + { + key: '1ya46gha72u', + name: 'status_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '公司状态(单选)', + }, + defaultValue: '2', + }, + { + key: 'otn7lnx7dj1', + name: 'range_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '经营范围(复选)', + }, + defaultValue: ['L2095', 'M2070', 'O3010'], + }, + { + key: 'd9yuz42tgyf', + name: 'range_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '经营范围(Markdown)' }, + defaultValue: + '人工智能应用软件开发,软件外包服务,网络与信息安全软件开发,信息技术咨询服务,数据处理服务,计算机系统服务,企业管理咨询', + }, + { + key: 'pmn5kco5rh1', + name: 'range_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '经营范围(富文本)' }, + defaultValue: + '

网络与信息安全软件开发,数字文化创意软件开发,业务培训(不含教育培训、职业技能培训等需取得许可的培训)

', + }, + { + key: '6slk4p6bgqf', + name: 'establishdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '成立日期(日期)', + }, + defaultValue: '2023-03-30T07:19:11.963Z', + }, + { + key: '707gt6dw9kr', + name: 'range_json', + type: 'json', + interface: 'json', + collectionName: 'tt_cbt_defaultvalue', + parentKey: null, + reverseKey: null, + defaultValue: { + F3134: '软件销售', + I3006: '软件开发', + I3007: '人工智能基础软件开发', + I3008: '人工智能应用软件开发', + I3010: '软件外包服务', + I3011: '网络与信息安全软件开发', + I3014: '数字文化创意软件开发', + I3027: '信息技术咨询服务', + L2095: '企业管理咨询', + M2070: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广', + }, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '经营范围(JSON)', + }, + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-28T03:31:22.055Z', + updatedAt: '2023-04-28T03:31:22.055Z', + collectionName: 'tt_cbt_defaultvalue', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'nj5azm2gn0g', + name: 'tt_cbt_nofields', + title: '兼容>无字段[普通表]', + inherit: false, + hidden: false, + fields: [], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-18T13:42:56.966Z', + updatedAt: '2023-04-18T13:42:56.966Z', + collectionName: 'tt_cbt_nofields', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: false, + createdBy: false, + updatedBy: false, + createdAt: false, + updatedAt: false, + sortable: false, + template: 'general', + view: false, + }, + { + key: '4tg08zk3ris', + name: 'tt_cbt_org_range', + title: '兼容>企业经营范围关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '2fbsga5v81o', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_org_range', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'mewmuwi8dp1', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_org_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'o3l0cbk89ik', + name: 'rangeid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_org_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'rangeid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'rnrzdmc9jg1', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_org_range', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '34wimt2sa3q', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_org_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'xnj4hlo2g43', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_org_range', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'za2aan9109w', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_org_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-07T07:22:22.310Z', + updatedAt: '2023-04-07T07:22:22.310Z', + collectionName: 'tt_cbt_org_range', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'syz4h7tczv0', + name: 'tt_cbt_org_tree_range', + title: '兼容>企业[树表]经营范围关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '30gdvg323tr', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_org_tree_range', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '7trh1ghgwzf', + name: 'rangeid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_org_tree_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'rangeid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '0sjgp48mbxn', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_org_tree_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'j6e2sbqsvjk', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_org_tree_range', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'p46c0pkc8dy', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_org_tree_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '6aope1xg0wk', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_org_tree_range', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gahitzlykvf', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_org_tree_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-27T09:04:24.855Z', + updatedAt: '2023-04-27T09:04:24.855Z', + collectionName: 'tt_cbt_org_tree_range', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '0fz08i10ufj', + name: 'tt_cbt_orglicense_range', + title: '兼容>企业营业执照经营范围关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'v2azsdlatcg', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_orglicense_range', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'b236czclw10', + name: 'orglicenseid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_orglicense_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orglicenseid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'h0apri91ak8', + name: 'rangeid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_orglicense_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'rangeid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '3jw7vt3wemj', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_orglicense_range', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'j663zfhcgbh', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_orglicense_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'hent1yb26a1', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_orglicense_range', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'sjlsvl0ijrv', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_orglicense_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-07T07:22:29.257Z', + updatedAt: '2023-04-07T07:22:29.257Z', + collectionName: 'tt_cbt_orglicense_range', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'nrlp2vp9kw2', + name: 'tt_cbt_staff_prof', + title: '兼容>员工职业资格关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'bljoiqfecoo', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_staff_prof', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'wss1x9aaetz', + name: 'staffid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_staff_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'staffid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'q5ijh4pds01', + name: 'profid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_staff_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'profid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'f9m0mfa0jbm', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_staff_prof', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'h4xd3801op7', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_staff_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'l58re1v1s8p', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_staff_prof', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'hpyexf1alud', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_staff_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-07T07:22:36.300Z', + updatedAt: '2023-04-07T07:22:36.300Z', + collectionName: 'tt_cbt_staff_prof', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'juansr4g0er', + name: 'tt_cbt_staff_tree_prof', + title: '兼容>员工[树表]职业资格关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '9moeutkxkn6', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_cbt_staff_tree_prof', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'ub4kxj8n9dr', + name: 'staffid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_staff_tree_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'staffid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'q5owne4zfup', + name: 'profid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_cbt_staff_tree_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'profid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '6otonjmxgma', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_cbt_staff_tree_prof', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'k48spgxwb73', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_cbt_staff_tree_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'nj1wcx5u4sz', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_cbt_staff_tree_prof', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fnv5h6e8mt1', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_cbt_staff_tree_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 1, + createdAt: '2023-04-07T07:19:40.416Z', + updatedAt: '2023-05-02T05:07:15.509Z', + name: '兼容测试cbt', + color: 'lime', + collectionCategory: { + createdAt: '2023-04-27T08:51:02.170Z', + updatedAt: '2023-04-27T08:51:02.170Z', + collectionName: 'tt_cbt_staff_tree_prof', + categoryId: 1, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '86lpobjxamt', + name: 'tt_amt_org', + title: '自动>组织[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'ohxa8xp9amt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'x39u0hhramt', + name: 'ownerid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'qjit9pcvamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'vijs3wcnamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zsebjtwiamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fa4c74phamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'mv6h7f8lamt', + name: 'orgcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '区域编码' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 57450 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '公司编号(自动编码)' }, + inputable: false, + }, + { + key: '44u5zoyyamt', + name: 'orgname', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '公司名称(单行文本)' }, + }, + { + key: 'tdq82bb0amt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '公司地址(多行文本)' }, + }, + { + key: '10xi6i24amt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '负责人电话(手机号码)', + }, + }, + { + key: 'n3ykqhe4amt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: '5ddcgbpqamt', + name: 'staffnum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '员工人数(整数)', + }, + }, + { + key: 'z59sf4ilamt', + name: 'insurednum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '参保人数(整数)', + }, + }, + { + key: 'ecvb3a8xamt', + name: 'regcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '注册资本(数字)', + }, + }, + { + key: 'ierg1fbvamt', + name: 'paidcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '实缴资本(数字)', + }, + }, + { + key: '46kjnywaamt', + name: 'insuranceratio', + type: 'float', + interface: 'percent', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '参保占比(百分比)', + }, + }, + { + key: '8j2vkys9amt', + name: 'isenable', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否启用(勾选)' }, + }, + { + key: '6f480de5amt', + name: 'status_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Select', + title: '公司状态(下拉单选)', + }, + }, + { + key: 'fcx8cw1ramt', + name: 'range_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '经营范围(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'z71al7aaamt', + name: 'status_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '公司状态(单选)', + }, + }, + { + key: 'x8v9qf95amt', + name: 'range_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '经营范围(复选)', + }, + defaultValue: [], + }, + { + key: 'pgmzldy7amt', + name: 'area', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '所属地区(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_amt_org_area', + foreignKey: 'f_8r6ikw6xnz0', + otherKey: 'f_hbxb8vsecko', + sourceKey: 'id', + }, + { + key: 'ase7kobwamt', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '公司近照(附件)', + }, + target: 'attachments', + through: 'tt_amt_org_photo', + foreignKey: 'f_hmb1pbp4vgf', + otherKey: 'f_zwsrqz83mp8', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'c50l1zguamt', + name: 'range_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '经营范围(Markdown)' }, + }, + { + key: 'msj1qa4damt', + name: 'range_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '经营范围(富文本)' }, + }, + { + key: 'q755hkxmamt', + name: 'establishdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '成立日期(日期)', + }, + }, + { + key: '0rd147meamt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'gbclpdalamt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'lc9t9qw7amt', + name: 'license', + type: 'hasOne', + interface: 'oho', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: '6jboxc1xb9w', + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '营业执照(one has one)', + }, + target: 'tt_amt_orglicense', + sourceKey: 'id', + }, + { + key: 'maki8q43amt', + name: 'dept', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '部门(one to many)', + }, + target: 'tt_amt_dept', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '0w5j5222amt', + name: 'range', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + otherKey: 'rangeid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '经营范围(many to many)', + }, + through: 'tt_amt_org_range', + target: 'tt_bd_range', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '9kn4ujeramt', + name: 'range_json', + type: 'json', + interface: 'json', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '经营范围(JSON)', + }, + }, + { + key: '07mz84okamt', + name: 'staff', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)', + }, + target: 'tt_amt_staff', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '01me4f8damt', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(点)', + }, + }, + { + key: 'mkr7ceudamt', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(线)', + }, + }, + { + key: 'bekuc6bvamt', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(圆)', + }, + }, + { + key: 'i3vcrhvuamt', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(多边形)', + }, + }, + { + key: 'vqcsj7htamt', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '官网地址(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'hpaq1qcramt', + name: 'owner', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)', + }, + target: 'tt_amt_staff', + targetKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-07T07:20:14.134Z', + updatedAt: '2023-04-07T07:20:14.134Z', + collectionName: 'tt_amt_org', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'jkvem4l2amt', + name: 'tt_amt_org_tree', + title: '自动>组织[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'kc6qsw8wamt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'yx47674famt', + name: 'ownerid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '79u57anwamt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_amt_org_tree', + }, + { + key: '83r2hhkbamt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_amt_org_tree', + targetKey: 'id', + }, + { + key: 'taoh3i6lamt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_amt_org_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '296cj7lsamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gj21nfz5amt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'z292a2auamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '5kuz9obqamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'azr2xsv2amt', + name: 'orgcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '区域编码' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 63139 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '公司编号(自动编码)' }, + }, + { + key: '74al0ht7amt', + name: 'orgname', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '公司名称(单行文本)' }, + }, + { + key: 'n56ccueiamt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '公司地址(多行文本)' }, + }, + { + key: 'abgsu9vsamt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '负责人电话(手机号码)', + }, + }, + { + key: 'nwpk0kqbamt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: 'ytnsb45bamt', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '官网地址(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'x4nd5g8samt', + name: 'staffnum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '员工人数(整数)', + }, + }, + { + key: 'pv4aqfcyamt', + name: 'insurednum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '参保人数(整数)', + }, + }, + { + key: 'mwini82xamt', + name: 'regcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '注册资本(数字)', + }, + }, + { + key: '5fglvshfamt', + name: 'paidcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '实缴资本(数字)', + }, + }, + { + key: 'zdigd67uamt', + name: 'insuranceratio', + type: 'float', + interface: 'percent', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '参保占比(百分比)', + }, + }, + { + key: '42x9v3wvamt', + name: 'isenable', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否启用(勾选)' }, + }, + { + key: 'xbjymcjxamt', + name: 'status_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Select', + title: '公司状态(下拉单选)', + }, + }, + { + key: 'v0ap20mgamt', + name: 'range_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '经营范围(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'vwmg4ex9amt', + name: 'status_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '公司状态(单选)', + }, + }, + { + key: 'upkxrqframt', + name: 'range_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '经营范围(复选)', + }, + defaultValue: [], + }, + { + key: 'd9y72qk8amt', + name: 'area', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '所属地区(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_amt_org_tree_area', + foreignKey: 'f_y6ukux7kw1q', + otherKey: 'f_ai3a25o9qc5', + sourceKey: 'id', + }, + { + key: 'qyrlvi32amt', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '公司近照(附件)', + }, + target: 'attachments', + through: 'tt_amt_org_tree_photo', + foreignKey: 'f_xlak0scjck5', + otherKey: 'f_e5xhh2cuol1', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'n9wnfqdramt', + name: 'range_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '经营范围(Markdown)' }, + }, + { + key: 'wkfyg6lvamt', + name: 'range_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '经营范围(富文本)' }, + }, + { + key: 'slzowx7damt', + name: 'establishdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '成立日期(日期)', + }, + }, + { + key: 'qiqf41ygamt', + name: 'range_json', + type: 'json', + interface: 'json', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '经营范围(JSON)', + }, + }, + { + key: '5qmafhaxamt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'r0qqlw89amt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'led3sjaeamt', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(点)', + }, + }, + { + key: 'ipdvxkxjamt', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(线)', + }, + }, + { + key: 'ldr83y30amt', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(圆)', + }, + }, + { + key: 'ggdzs1wxamt', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(多边形)', + }, + }, + { + key: '6327d159amt', + name: 'license', + type: 'hasOne', + interface: 'oho', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '营业执照(one has one)', + }, + target: 'tt_amt_orglicense', + sourceKey: 'id', + }, + { + key: 'wbdndzvqamt', + name: 'owner_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)[树表]', + }, + target: 'tt_amt_staff_tree', + targetKey: 'id', + }, + { + key: 'ao3kbbt3amt', + name: 'dept_tree', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '部门(one to many)[树表]', + }, + target: 'tt_amt_dept_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'sd0zsbzyamt', + name: 'staff_tree', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)[树表]', + }, + target: 'tt_amt_staff_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'c5m12hy5amt', + name: 'range', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_amt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + otherKey: 'rangeid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '经营范围(many to many)', + }, + target: 'tt_bd_range', + through: 'tt_amt_org_tree_range', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-25T14:06:15.660Z', + updatedAt: '2023-04-25T14:06:15.660Z', + collectionName: 'tt_amt_org_tree', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'c9hyqimlamt', + name: 'tt_amt_dept', + title: '自动>部门[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '28tj63gramt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_dept', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '67necqtaamt', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_dept', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'nqeetal0amt', + name: 'ownerid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_dept', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'dbb290eoamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_dept', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '9c2ga9cmamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_dept', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '65yzgsp7amt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_dept', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'w0tqtrnxamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_dept', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zbos4viuamt', + name: 'deptcode', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门编码' }, + }, + { + key: 'qpuhqqmdamt', + name: 'deptname', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门名称' }, + }, + { + key: 'a7sva5d0amt', + name: 'org', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_dept', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)', + }, + target: 'tt_amt_org', + targetKey: 'id', + }, + { + key: 'ab74sl8famt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'fnsb3qqhamt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: '3hur9occamt', + name: 'staff', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_dept', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)', + }, + target: 'tt_amt_staff', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'flwjk24uamt', + name: 'owner', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_dept', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)', + }, + target: 'tt_amt_staff', + targetKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-07T07:20:25.220Z', + updatedAt: '2023-04-07T07:20:25.220Z', + collectionName: 'tt_amt_dept', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'dmm5t1ioamt', + name: 'tt_amt_dept_tree', + title: '自动>部门[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '1gdw4yp8amt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '2u3nb80ramt', + name: 'ownerid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'gbcioiedamt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'abaa5i71amt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_amt_dept_tree', + }, + { + key: 'k4bwf4fwamt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_amt_dept_tree', + targetKey: 'id', + }, + { + key: 'uram4ujwamt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_amt_dept_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'jdtnebxaamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'al86l9utamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'lu5n2igkamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'rxi8ruyhamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '5o0c6zhcamt', + name: 'deptcode', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门编码' }, + }, + { + key: 'fqrkfpzzamt', + name: 'deptname', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门名称' }, + }, + { + key: 'hx8w6300amt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'iux15mx1amt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'gcqvgh1pamt', + name: 'owner_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)[树表]', + }, + target: 'tt_amt_staff_tree', + targetKey: 'id', + }, + { + key: 'sh4vp1w3amt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_amt_org_tree', + targetKey: 'id', + }, + { + key: '0ff3qb08amt', + name: 'staff_tree', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)[树表]', + }, + target: 'tt_amt_staff_tree', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-27T08:22:25.503Z', + updatedAt: '2023-04-27T08:22:25.503Z', + collectionName: 'tt_amt_dept_tree', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'jff9r7ebamt', + name: 'tt_amt_orglicense', + title: '自动>组织营业执照([普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '9qhn1fuuamt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'fgiqbd4eamt', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '所属组织id(外键)', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '00r3t2p7amt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '1fthdco0amt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '3a9n2pwtamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'rua496y1amt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '6jboxc1xamt', + name: 'org', + type: 'belongsTo', + interface: 'obo', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: 'lc9t9qw7w7m', + uiSchema: { + title: '所属组织(one belongsto one)', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_amt_org', + onDelete: 'SET NULL', + targetKey: 'id', + foreignKey: 'orgid', + }, + { + key: '82etkpqdamt', + name: 'unifiledcode', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '统一社会信用代码(单行文本)' }, + }, + { + key: '3pcmumdfamt', + name: 'legalpersonname', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '法人姓名(单行文本)' }, + }, + { + key: 'iw6icymfamt', + name: 'legalpersonidnumber', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '法人身份证件号(单行文本)' }, + }, + { + key: 'lr6c7yhjamt', + name: 'range', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + foreignKey: 'orglicenseid', + otherKey: 'rangeid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '经营范围(many to many)', + }, + through: 'tt_amt_orglicense_range', + target: 'tt_bd_range', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '662guqhyamt', + name: 'rangecode', + type: 'text', + interface: 'textarea', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '经营范围编码(多行文本)' }, + }, + { + key: 'k6bhpu8vamt', + name: 'rangedesc', + type: 'text', + interface: 'textarea', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '经营范围描述(多行文本)' }, + }, + { + key: 'iznfr95famt', + name: 'expiredate_start', + type: 'date', + interface: 'datetime', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '有效期起(日期)', + }, + }, + { + key: '1q80cfg1amt', + name: 'expiredate_end', + type: 'date', + interface: 'datetime', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '有效期止(日期)', + }, + }, + { + key: 'wm9jsj6tamt', + name: 'issuedate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '发证日期(日期)', + }, + }, + { + key: '6m7kai14amt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'muf1twfgamt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-07T07:20:20.927Z', + updatedAt: '2023-04-07T07:20:20.927Z', + collectionName: 'tt_amt_orglicense', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'dax26iuxamt', + name: 'tt_amt_staff', + title: '自动>员工[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '0d2rycb2amt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 't0bt3g4camt', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '5k5ccsyhamt', + name: 'deptid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '3ji1ldjuamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'orh016pzamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'xxm0g05jamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '9wp4v5fwamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'iezxmwh1amt', + name: 'staffcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'NB' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 52021 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '员工号(自动编码)' }, + unique: false, + inputable: false, + }, + { + key: 'khzh1v1camt', + name: 'staffname', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '姓名(单行文本)' }, + }, + { + key: '8h58dz5bamt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '联系地址(多行文本)' }, + }, + { + key: 'zolos0d9amt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: 'h1i82qryamt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: '6mjqrhctamt', + name: 'age', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '年龄(整数)', + }, + }, + { + key: 'i5e7xxo2amt', + name: 'workyears', + type: 'double', + interface: 'number', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '工龄(数字)', + }, + }, + { + key: 'xfm96km3amt', + name: 'selforgworkyears', + type: 'double', + interface: 'number', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '司龄(数字)', + }, + }, + { + key: 'xon8vnm1amt', + name: 'proportion', + type: 'float', + interface: 'percent', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '股份占比(百分比)', + }, + }, + { + key: 'dnijk17tamt', + name: 'isonduty', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否在岗(勾选)' }, + }, + { + key: 'v9kgbw1namt', + name: 'maritalstatus_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Select', + title: '婚姻状况(下拉单选)', + }, + }, + { + key: '1m7sadgxamt', + name: 'prof_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '33', label: '通信专业技术人员职业资格' }, + { value: '34', label: '计算机技术与软件专业技术资格' }, + { value: '36', label: '会计专业技术资格' }, + { value: '52', label: '统计专业技术资格' }, + { value: '56', label: '翻译专业资格' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '职业资格(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'as9m82ynamt', + name: 'maritalstatus_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '婚姻状况(单选)', + }, + }, + { + key: 'h4a3h0zkamt', + name: 'prof_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '33', label: '通信专业技术人员职业资格' }, + { value: '34', label: '计算机技术与软件专业技术资格' }, + { value: '36', label: '会计专业技术资格' }, + { value: '52', label: '统计专业技术资格' }, + { value: '56', label: '翻译专业资格' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '职业资格(复选)', + }, + defaultValue: [], + }, + { + key: '2vg9uhb4amt', + name: 'regaddress', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '户籍地(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_amt_staff_regaddress', + foreignKey: 'f_hhmtoqcqk8g', + otherKey: 'f_t0sryffordg', + sourceKey: 'id', + }, + { + key: '9rfwtrreamt', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '照片(附件)', + }, + target: 'attachments', + through: 'tt_amt_staff_photo', + foreignKey: 'f_yntlgbf87rd', + otherKey: 'f_sikqv9m15cv', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '7x5uevloamt', + name: 'prof_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '职业资格(Markdown)' }, + }, + { + key: 'lybdq5awamt', + name: 'prof_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '职业资格(富文本)' }, + }, + { + key: 'duc6939bamt', + name: 'birthdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '出生日期(日期)', + }, + }, + { + key: 'kd1k3d1vamt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'h0kyhflpamt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'sigq297camt', + name: 'org', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)', + }, + target: 'tt_amt_org', + targetKey: 'id', + }, + { + key: 'kgag86hiamt', + name: 'dept', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属部门(many to one)', + }, + target: 'tt_amt_dept', + targetKey: 'id', + }, + { + key: 'vja8qigtamt', + name: 'prof', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + foreignKey: 'staffid', + otherKey: 'profid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '职业资格(many to many)', + }, + through: 'tt_amt_staff_prof', + target: 'tt_bd_prof', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'r5b5s85samt', + name: 'prof_json', + type: 'json', + interface: 'json', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '职业资格(JSON)', + }, + }, + { + key: 'be635dbcamt', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(点) ', + }, + }, + { + key: 'lmd0usk9amt', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(线) ', + }, + }, + { + key: '07yrmxloamt', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(圆)', + }, + }, + { + key: '4k9t55htamt', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(多边形)', + }, + }, + { + key: 'dn9fkra7amt', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_amt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '个人主页(URL)', 'x-component': 'Input.URL' }, + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-07T07:20:55.666Z', + updatedAt: '2023-04-07T07:20:55.666Z', + collectionName: 'tt_amt_staff', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: '07n5p6udamt', + name: 'tt_amt_staff_tree', + title: '自动>员工[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'y76paceeamt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'o12889owamt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '6lgwn42mamt', + name: 'deptid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '57e1zlytamt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_amt_staff_tree', + }, + { + key: 'c4pv07f8amt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_amt_staff_tree', + targetKey: 'id', + }, + { + key: 'fr94xx2pamt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_amt_staff_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'q3rlwr75amt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fvfjkwsuamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zow7sqveamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'ifmf1eieamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'wd1i5pqgamt', + name: 'staffcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'NB' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 8076 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '员工号(自动编码)' }, + }, + { + key: 'v6k6cr1tamt', + name: 'staffname', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '姓名(单行文本)' }, + }, + { + key: '8bsrw9j4amt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '联系地址(多行文本)' }, + }, + { + key: 'zhqz0lwvamt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: 'l1hh1wh7amt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: '9u0y3nvaamt', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '个人主页(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'ol1z5t5qamt', + name: 'age', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '年龄(整数)', + }, + }, + { + key: 'kkgucwe0amt', + name: 'workyears', + type: 'double', + interface: 'number', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '工龄(数字)', + }, + }, + { + key: 'hka1kizwamt', + name: 'selforgworkyears', + type: 'double', + interface: 'number', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '司龄(数字)', + }, + }, + { + key: '96l8dmbramt', + name: 'proportion', + type: 'float', + interface: 'percent', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '股份占比(百分比)', + }, + }, + { + key: 'q89bdfmeamt', + name: 'isonduty', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否在岗(勾选)' }, + }, + { + key: '4gi6ye8zamt', + name: 'maritalstatus_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Select', + title: '婚姻状况(下拉单选)', + }, + }, + { + key: 'my9kkqa4amt', + name: 'prof_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '33', label: '通信专业技术人员职业资格' }, + { value: '34', label: '计算机技术与软件专业技术资格' }, + { value: '36', label: '会计专业技术资格' }, + { value: '52', label: '统计专业技术资格' }, + { value: '56', label: '翻译专业资格' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '职业资格(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'b8r0ccdnamt', + name: 'maritalstatus_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '婚姻状况(单选)', + }, + }, + { + key: 'has6qmwhamt', + name: 'prof_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '34', label: '通信专业技术人员职业资格' }, + { value: '36', label: '计算机技术与软件专业技术资格' }, + { value: '52', label: '会计专业技术资格' }, + { value: '56', label: '统计专业技术资格' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '职业资格(复选)', + }, + defaultValue: [], + }, + { + key: '1um9vv5vamt', + name: 'regaddress', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '户籍地(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_amt_staff_tree_regaddress', + foreignKey: 'f_ife9oxivp9d', + otherKey: 'f_6qkh23zbzww', + sourceKey: 'id', + }, + { + key: '70if34x0amt', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '照片(附件)', + }, + target: 'attachments', + through: 'tt_amt_staff_tree_photo', + foreignKey: 'f_6m5lnpitpr8', + otherKey: 'f_dcbgh1euvv8', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '4kk7v93yamt', + name: 'prof_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '职业资格(Markdown)' }, + }, + { + key: '04s0u9kdamt', + name: 'prof_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '职业资格(富文本)' }, + }, + { + key: 'yw6tg52vamt', + name: 'birthdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '出生日期(日期)', + }, + }, + { + key: '3hleeqt3amt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'zh6dj1kgamt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'ebgwkmkkamt', + name: 'prof_json', + type: 'json', + interface: 'json', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '职业资格(JSON)', + }, + }, + { + key: 'xkq2xsm5amt', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(点)', + }, + }, + { + key: 'u0mnio95amt', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(线)', + }, + }, + { + key: 'qee0kthfamt', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(圆)', + }, + }, + { + key: 'lltpukvlamt', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(多边形)', + }, + }, + { + key: '9i5avlqoamt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_amt_org_tree', + targetKey: 'id', + }, + { + key: 'dpozkfpdamt', + name: 'dept_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属部门(many to one)[树表]', + }, + target: 'tt_amt_dept_tree', + targetKey: 'id', + }, + { + key: 'tj2z9xpyamt', + name: 'prof_tree', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_amt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'staffid_tree', + otherKey: 'profid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '职业资格(many to many)[树表]', + }, + target: 'tt_bd_prof', + through: 'tt_amt_staff_tree_prof', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-27T08:30:17.111Z', + updatedAt: '2023-04-27T08:30:17.111Z', + collectionName: 'tt_amt_staff_tree', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'wxthhajvamt', + name: 'tt_amt_customer_tree', + title: '自动>客户[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '7slke7lramt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'ljn3r3j2amt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '70pjqv7vamt', + name: 'countryid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'countryid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'wb3a5n00amt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_amt_customer_tree', + }, + { + key: 'sib2jw39amt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_amt_customer_tree', + targetKey: 'id', + }, + { + key: '6iej9s4ramt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_amt_customer_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'rakkhuyqamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '0enk4fydamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '4hvi0emcamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '3x3n73dzamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '02gf41rlamt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_amt_org_tree', + targetKey: 'id', + }, + { + key: 'rvq1m32camt', + name: 'custcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '客户' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 20702 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '客户编码' }, + }, + { + key: '8oeh8ic6amt', + name: 'custname', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '客户名称' }, + }, + { + key: 'q7duzlt0amt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '地址(多行文本)' }, + }, + { + key: 'nhr8omk5amt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: 'gwzayy3ramt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: 'tziwvbpsamt', + name: 'country', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'countryid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所在国家(many to one)', + }, + target: 'tt_bd_country', + targetKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-28T09:44:23.793Z', + updatedAt: '2023-04-28T09:44:23.793Z', + collectionName: 'tt_amt_customer_tree', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: '7392uqu9amt', + name: 'tt_amt_supplier_tree', + title: '自动>供应商[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'mks9f38samt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'kzusp28bamt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'zg1uwvdwamt', + name: 'countryid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'countryid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'jgaiuu1qamt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_amt_supplier_tree', + }, + { + key: '0rbkjvyxamt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_amt_supplier_tree', + targetKey: 'id', + }, + { + key: '77hg0uxzamt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_amt_supplier_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'p13jc9l7amt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'xct6unjgamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'vmhpgoa5amt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'oagzn1jgamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'gzkhprhxamt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_amt_org_tree', + targetKey: 'id', + }, + { + key: 'fh5kfafsamt', + name: 'suppliercode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '供应商' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 20523 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '供应商编码' }, + }, + { + key: 'vfu829qkamt', + name: 'suppliername', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '供应商名称' }, + }, + { + key: '8iq0bwj8amt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '地址(多行文本)' }, + }, + { + key: 'tpjdf0qlamt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: '12jih9kmamt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: 'ksx9ximzamt', + name: 'country', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'countryid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所在国家(many to one)', + }, + target: 'tt_bd_country', + targetKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-28T09:45:02.249Z', + updatedAt: '2023-04-28T09:45:02.249Z', + collectionName: 'tt_amt_supplier_tree', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'k6j1dzcwamt', + name: 'tt_amt_materialclass_tree', + title: '自动>物料分类[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '5hyy7ulhamt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_materialclass_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_amt_materialclass_tree', + }, + { + key: 'g1xc56vdamt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_materialclass_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_amt_materialclass_tree', + targetKey: 'id', + }, + { + key: '872hxq6famt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_materialclass_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_amt_materialclass_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'v424kp87amt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_materialclass_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'he58euuqamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_materialclass_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '07hjbpnramt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_materialclass_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '8gs6msrqamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_materialclass_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'so854ilsamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_materialclass_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'p770it8yamt', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '分类编码' }, + unique: true, + }, + { + key: 'k5xztdmeamt', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '分类名称' }, + }, + { + key: 'nr876w40amt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: '2o68nz63amt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-19T09:20:22.556Z', + updatedAt: '2023-04-19T09:20:22.556Z', + collectionName: 'tt_amt_materialclass_tree', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: '71pkkfvoamt', + name: 'tt_amt_material', + title: '自动>物料[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'c5r0cfgoamt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_material', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '0q971jh5amt', + name: 'classid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_material', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'classid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'p2me0o8tamt', + name: 'unitid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_material', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'unitid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'waqpt4bgamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_material', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'nc86chxbamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_material', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '7tknuof2amt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_material', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '1l9ejn4pamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_material', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '8drih6ghamt', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料编码' }, + unique: true, + }, + { + key: '20zdhfalamt', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料名称' }, + }, + { + key: '5wqpy9zfamt', + name: 'spec', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '规格' }, + }, + { + key: 'ggiidy6lamt', + name: 'type', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '型号' }, + }, + { + key: 'cvt9ywooamt', + name: 'classname', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '分类名称' }, + }, + { + key: 'mu2qzacsamt', + name: 'class', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_material', + parentKey: null, + reverseKey: null, + foreignKey: 'classid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '物料分类', + }, + target: 'tt_amt_materialclass_tree', + targetKey: 'id', + }, + { + key: 'ydv8fsi5amt', + name: 'unit', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_material', + parentKey: null, + reverseKey: null, + foreignKey: 'unitid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '计量单位', + }, + target: 'tt_bd_unit', + targetKey: 'id', + }, + { + key: 'oe79qxo1amt', + name: 'unitname', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '单位名称' }, + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-20T01:52:56.923Z', + updatedAt: '2023-04-20T01:52:56.923Z', + collectionName: 'tt_amt_material', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'tu68q4z3amt', + name: 'tt_amt_warehouse', + title: '自动>仓库[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'apvdr645amt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_warehouse', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'kclgp2ipamt', + name: 'staffid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_warehouse', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'staffid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'xtx7x7icamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_warehouse', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '4mn9swsyamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_warehouse', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zc7tecz8amt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_warehouse', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gwebb7uqamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_warehouse', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'tw3v31jtamt', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_warehouse', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '编码' }, + unique: true, + }, + { + key: 'tlwo8alnamt', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_warehouse', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '名称' }, + unique: false, + }, + { + key: 'ow21q1miamt', + name: 'address', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_warehouse', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '地址' }, + }, + { + key: 'xcaygwboamt', + name: 'owner_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_warehouse', + parentKey: null, + reverseKey: null, + foreignKey: 'staffid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)[树表]', + }, + target: 'tt_amt_staff_tree', + targetKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-26T02:46:43.336Z', + updatedAt: '2023-04-26T02:46:43.336Z', + collectionName: 'tt_amt_warehouse', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'n4lsa1g2amt', + name: 'tt_amt_inventory', + title: '自动>库存[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'abeyktkjamt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'g5qkwfpyamt', + name: 'materialid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'materialid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '95jd7wriamt', + name: 'unitid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'unitid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '14f2xdmhamt', + name: 'warehouseid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'warehouseid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'qc3p5dt6amt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'yiomb00gamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '9brp2wbramt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'n35bf0afamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '298424xeamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'd6kytzf4amt', + name: 'material', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'materialid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '物料(many to one)', + }, + target: 'tt_amt_material', + targetKey: 'id', + }, + { + key: 'prh0xuiiamt', + name: 'warehouse_code', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '仓库编码' }, + }, + { + key: '6mi0miboamt', + name: 'warehouse_name', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '仓库名称' }, + }, + { + key: '0jmm0k7hamt', + name: 'material_code', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料编码' }, + }, + { + key: 'qf02v4u7amt', + name: 'material_name', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料名称' }, + }, + { + key: 'qivjufzramt', + name: 'material_spec', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料规格' }, + }, + { + key: '45xaw14iamt', + name: 'material_type', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料型号' }, + }, + { + key: '9sblvxa0amt', + name: 'material_unit', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料单位名称' }, + }, + { + key: 'ua0nwv6aamt', + name: 'quantity', + type: 'double', + interface: 'number', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '库存数量', + }, + }, + { + key: 'inwiwx60amt', + name: 'warehouse', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'warehouseid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '仓库(many to one)', + }, + target: 'tt_amt_warehouse', + targetKey: 'id', + }, + { + key: 'sfl8nllbamt', + name: 'unit', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'unitid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '计量单位(many to one)', + }, + target: 'tt_bd_unit', + targetKey: 'id', + }, + { + key: '9q9kws0vamt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '组织(many to one)[树表]', + }, + target: 'tt_amt_org_tree', + targetKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-25T06:25:00.153Z', + updatedAt: '2023-04-25T06:25:00.153Z', + collectionName: 'tt_amt_inventory', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '44kz0lhyamt', + name: 'tt_amt_purchase', + title: '自动>采购订单[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'zu5d8z6kamt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'jl9co7lgamt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '1pjpolwsamt', + name: 'deptid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'vaq1zx9tamt', + name: 'supplierid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'supplierid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'gyrywzcgamt', + name: 'purchasecontactid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { + type: 'number', + title: 'purchasecontactid_tree', + 'x-component': 'InputNumber', + 'x-read-pretty': true, + }, + }, + { + key: 'oa2xy75eamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'q7rwin7qamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '46ozud8tamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'epfl5wdxamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'tf2g38s3amt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '采购组织(many to one)[树表]', + }, + target: 'tt_amt_org_tree', + targetKey: 'id', + }, + { + key: '9rlqnee9amt', + name: 'dept_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '采购部门(many to one)[树表]', + }, + target: 'tt_amt_dept_tree', + targetKey: 'id', + }, + { + key: '7am8kldzamt', + name: 'supplier_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'supplierid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '供应商(many to one)[树表]', + }, + target: 'tt_amt_supplier_tree', + targetKey: 'id', + }, + { + key: 'ftodeoodamt', + name: 'order_no', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'PO' } }, + { type: 'date', options: {} }, + { type: 'integer', options: { digits: 5, start: 1, key: 25783 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '订单号(自动编码)' }, + unique: true, + }, + { + key: 'pv6aog71amt', + name: 'purchasecontact', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'purchasecontactid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '采购联系人(many to one)[树表]', + }, + target: 'tt_amt_staff_tree', + targetKey: 'id', + }, + { + key: 'n59j0a22amt', + name: 'purchasecontact_name', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '采购联系人姓名' }, + }, + { + key: 'ib304wsnamt', + name: 'purchasecontact_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '采购联系电话', + }, + }, + { + key: '5utcqj28amt', + name: 'suppliercontact_name', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '供应商联系人姓名' }, + }, + { + key: 'ji5xtqgoamt', + name: 'suppliercontact_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '供应商联系人电话', + }, + }, + { + key: 'eo46f5j7amt', + name: 'paymentstatus', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '未付款' }, + { value: '2', label: '已付款' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '付款状态', + }, + }, + { + key: '32zcduo2amt', + name: 'status', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '已发货' }, + { value: '2', label: '已签收' }, + { value: '3', label: '已退货' }, + { value: '4', label: '取消交易' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '订单状态', + }, + }, + { + key: '0ptwgu88amt', + name: 'amount', + type: 'double', + interface: 'number', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '订单金额', + }, + }, + { + key: 'usb8rwviamt', + name: 'detail', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'orderid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '订单明细(one to many)', + }, + target: 'tt_amt_purchase_detail', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-25T12:15:52.314Z', + updatedAt: '2023-04-25T12:15:52.314Z', + collectionName: 'tt_amt_purchase', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'kryvveqeamt', + name: 'tt_amt_purchase_detail', + title: '自动>采购订单明细[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'bx68gtu7amt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'j72k53rkamt', + name: 'materialid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'materialid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '95gbyr21amt', + name: 'unitid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'unitid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'rv5jirstamt', + name: 'orderid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orderid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'hero7kpwamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fmq1ydbfamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'kypoomknamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'nny43njxamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'c5miad3vamt', + name: 'order_no', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '订单号' }, + }, + { + key: 'uqgrkynramt', + name: 'material', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + foreignKey: 'materialid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '物料(many to one)', + }, + target: 'tt_amt_material', + targetKey: 'id', + }, + { + key: 'bl7rotumamt', + name: 'materialcode', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料编码' }, + }, + { + key: 'r4knrjc1amt', + name: 'materialname', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料名称' }, + }, + { + key: 'xh2x8ozpamt', + name: 'materialspec', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料规格' }, + }, + { + key: '6udro2iwamt', + name: 'materialtype', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料型号' }, + }, + { + key: 'ggluomz0amt', + name: 'materialunit', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + foreignKey: 'unitid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '计量单位(many to one)', + }, + target: 'tt_bd_unit', + targetKey: 'id', + }, + { + key: '7rqysq3hamt', + name: 'unitname', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '计量单位' }, + }, + { + key: '5etvyohuamt', + name: 'price', + type: 'double', + interface: 'number', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '价格', + }, + }, + { + key: 'v4ipx3daamt', + name: 'quantity', + type: 'double', + interface: 'number', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '数量', + }, + }, + { + key: 'ipiuw9uyamt', + name: 'amount', + type: 'formula', + interface: 'formula', + collectionName: 'tt_amt_purchase_detail', + parentKey: null, + reverseKey: null, + dataType: 'double', + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'Formula.Result', + 'x-read-pretty': true, + title: '金额', + }, + engine: 'math.js', + expression: '{{price}}*{{quantity}}', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-25T12:44:24.873Z', + updatedAt: '2023-04-25T12:44:24.873Z', + collectionName: 'tt_amt_purchase_detail', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '5xacggexamt', + name: 'tt_amt_production', + title: '自动>生产订单[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'zf3pkbadamt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_production', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'na8opa82amt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_production', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'kpu29b74amt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_production', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '3jcf7oyxamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_production', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fxrdb8s4amt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_production', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'rj55h3axamt', + name: 'detail', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_production', + parentKey: null, + reverseKey: null, + foreignKey: 'orderid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '订单明细(one to many)', + }, + target: 'tt_amt_production_detail', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-25T14:08:27.913Z', + updatedAt: '2023-04-25T14:08:27.913Z', + collectionName: 'tt_amt_production', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'h093tdwmamt', + name: 'tt_amt_production_detail', + title: '自动>生产订单明细[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'xmrs0mlfamt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_production_detail', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '7qdn6q3aamt', + name: 'orderid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_production_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orderid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'spim8s5famt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_production_detail', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'bgct5ehsamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_production_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'j5l9nb1hamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_production_detail', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '4ybl1kwyamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_production_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-25T14:08:55.636Z', + updatedAt: '2023-04-25T14:08:55.636Z', + collectionName: 'tt_amt_production_detail', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'nt80ck13amt', + name: 'tt_amt_sales', + title: '自动>销售订单[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'zt2k3h7hamt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'gfrrwt8tamt', + name: 'customerid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'customerid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '93fwne9pamt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'xs1l2rwaamt', + name: 'deptid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'iq9oe0ggamt', + name: 'salescontactid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'salescontactid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'nadruvhuamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'yizb72d1amt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'ps02ffrsamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '23hdfiv1amt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'gctv1r6jamt', + name: 'order_bo', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'CO' } }, + { type: 'date', options: {} }, + { type: 'integer', options: { digits: 5, start: 1, key: 7209 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '订单号(字段编号)' }, + }, + { + key: '2llg7id8amt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '销售组织(many to one)[树表]', + }, + target: 'tt_amt_org_tree', + targetKey: 'id', + }, + { + key: '7c730b5ramt', + name: 'dept_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '销售部门(many to one)[树表]', + }, + target: 'tt_amt_dept_tree', + targetKey: 'id', + }, + { + key: '7wtlcoz9amt', + name: 'salescontact', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'salescontactid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '销售联系人(many to one)[树表]', + }, + target: 'tt_amt_staff_tree', + targetKey: 'id', + }, + { + key: 'q3rs6u23amt', + name: 'customer_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'customerid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '客户(many to one)[树表]', + }, + target: 'tt_amt_customer_tree', + targetKey: 'id', + }, + { + key: '0pemv8jmamt', + name: 'detail', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'orderid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '订单明细(one to many)', + }, + target: 'tt_amt_sales_detail', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'svwa3wgbamt', + name: 'salescontact_name', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '销售联系人姓名' }, + }, + { + key: 'nku29fowamt', + name: 'salescontact_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '销售联系人电话', + }, + }, + { + key: 'xr4pcarhamt', + name: 'customer_name', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '客户联系人姓名' }, + }, + { + key: 'mmhhc0ptamt', + name: 'customer_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '客户联系人电话', + }, + }, + { + key: 'xfgac7blamt', + name: 'paymentstatus', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '未付款' }, + { value: '2', label: '已付款' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '付款状态', + }, + }, + { + key: 'xx7i85nbamt', + name: 'status', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '已发货' }, + { value: '2', label: '已签收' }, + { value: '3', label: '已退货' }, + { value: '4', label: '取消交易' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '订单状态', + }, + }, + { + key: 'qj9ms33yamt', + name: 'amount', + type: 'double', + interface: 'number', + collectionName: 'tt_amt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '订单金额', + }, + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-25T12:17:57.745Z', + updatedAt: '2023-04-25T12:17:57.745Z', + collectionName: 'tt_amt_sales', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'e6pnku1uamt', + name: 'tt_amt_sales_detail', + title: '自动>销售订单明细[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '32d6q8ggamt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_sales_detail', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'n5ibp5ieamt', + name: 'orderid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_sales_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orderid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'ztpg5wlfamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_sales_detail', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'czck2j0samt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_sales_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'tpvgjomoamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_sales_detail', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '5sn2s2xoamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_sales_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-25T12:45:35.367Z', + updatedAt: '2023-04-25T12:45:35.367Z', + collectionName: 'tt_amt_sales_detail', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '2bvnp2sbamt', + name: 'tt_amt_defaultvalue', + title: '自动>默认值[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '7mzjbf1oamt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_amt_defaultvalue', + }, + { + key: 'z2hgnn8iamt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_amt_defaultvalue', + targetKey: 'id', + }, + { + key: '5r83de6vamt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_amt_defaultvalue', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'z8je0jajamt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'uld866n1amt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gjw3j1pbamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'olecaco2amt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'hyfbyx30amt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'utn8yk57amt', + name: 'orgcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '区划编码' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 56707 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '公司编号(自动编码)' }, + inputable: false, + }, + { + key: 'sd1js4eoamt', + name: 'orgname', + type: 'string', + interface: 'input', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '公司名称(单行文本)' }, + defaultValue: '默认值:公司名称', + }, + { + key: 'dpg1reljamt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '公司地址(多行文本)' }, + defaultValue: '默认值:公司地址(多行文本)', + }, + { + key: 'db3qm50mamt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '负责人电话(手机号码)', + }, + defaultValue: '默认值:15912345678', + }, + { + key: 'ebaqb3bwamt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + defaultValue: 'jihongbo@nocobase.com', + }, + { + key: '4a7n9i83amt', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '官网地址(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'stmuctyramt', + name: 'staffnum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '员工人数(整数)', + }, + defaultValue: 899123, + }, + { + key: 'mv7mq8flamt', + name: 'regcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '注册资本(数字)', + }, + defaultValue: 1234.56789, + }, + { + key: 'qlnzy3xkamt', + name: 'paidcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '实缴资本(数字)', + }, + defaultValue: 123.456789, + }, + { + key: 'byow909jamt', + name: 'insuranceratio', + type: 'float', + interface: 'percent', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.001', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '参保占比(百分比)', + }, + defaultValue: 0.12345, + }, + { + key: '5n8oh02mamt', + name: 'password', + type: 'password', + interface: 'password', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + hidden: true, + uiSchema: { type: 'string', 'x-component': 'Password', title: '登录密码(密码)' }, + defaultValue: 'admin123', + }, + { + key: 'chcwtw6pamt', + name: 'isenable', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否启用(勾选)' }, + defaultValue: true, + }, + { + key: 'l24xyofvamt', + name: 'status_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Select', + title: '公司状态(下拉单选)', + }, + defaultValue: '1', + }, + { + key: 'i5ghwln2amt', + name: 'range_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '经营范围(下拉多选)', + }, + defaultValue: ['F3134', 'I3006', 'I3008'], + }, + { + key: '1ya46ghaamt', + name: 'status_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '公司状态(单选)', + }, + defaultValue: '2', + }, + { + key: 'otn7lnx7amt', + name: 'range_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '经营范围(复选)', + }, + defaultValue: ['L2095', 'M2070', 'O3010'], + }, + { + key: 'd9yuz42tamt', + name: 'range_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '经营范围(Markdown)' }, + defaultValue: + '人工智能应用软件开发,软件外包服务,网络与信息安全软件开发,信息技术咨询服务,数据处理服务,计算机系统服务,企业管理咨询', + }, + { + key: 'pmn5kco5amt', + name: 'range_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '经营范围(富文本)' }, + defaultValue: + '

网络与信息安全软件开发,数字文化创意软件开发,业务培训(不含教育培训、职业技能培训等需取得许可的培训)

', + }, + { + key: '6slk4p6bamt', + name: 'establishdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '成立日期(日期)', + }, + defaultValue: '2023-03-30T07:19:11.963Z', + }, + { + key: '707gt6dwamt', + name: 'range_json', + type: 'json', + interface: 'json', + collectionName: 'tt_amt_defaultvalue', + parentKey: null, + reverseKey: null, + defaultValue: { + F3134: '软件销售', + I3006: '软件开发', + I3007: '人工智能基础软件开发', + I3008: '人工智能应用软件开发', + I3010: '软件外包服务', + I3011: '网络与信息安全软件开发', + I3014: '数字文化创意软件开发', + I3027: '信息技术咨询服务', + L2095: '企业管理咨询', + M2070: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广', + }, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '经营范围(JSON)', + }, + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-28T03:31:22.055Z', + updatedAt: '2023-04-28T03:31:22.055Z', + collectionName: 'tt_amt_defaultvalue', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'nj5azm2gamt', + name: 'tt_amt_nofields', + title: '自动>无字段[普通表]', + inherit: false, + hidden: false, + fields: [], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-18T13:42:56.966Z', + updatedAt: '2023-04-18T13:42:56.966Z', + collectionName: 'tt_amt_nofields', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: false, + createdBy: false, + updatedBy: false, + createdAt: false, + updatedAt: false, + sortable: false, + template: 'general', + view: false, + }, + { + key: '4tg08zk3amt', + name: 'tt_amt_org_range', + title: '自动>企业经营范围关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '2fbsga5vamt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_org_range', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'mewmuwi8amt', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_org_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'o3l0cbk8amt', + name: 'rangeid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_org_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'rangeid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'rnrzdmc9amt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_org_range', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '34wimt2samt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_org_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'xnj4hlo2amt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_org_range', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'za2aan91amt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_org_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-07T07:22:22.310Z', + updatedAt: '2023-04-07T07:22:22.310Z', + collectionName: 'tt_amt_org_range', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'syz4h7tcamt', + name: 'tt_amt_org_tree_range', + title: '自动>企业[树表]经营范围关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '30gdvg32amt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_org_tree_range', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '7trh1ghgamt', + name: 'rangeid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_org_tree_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'rangeid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '0sjgp48mamt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_org_tree_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'j6e2sbqsamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_org_tree_range', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'p46c0pkcamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_org_tree_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '6aope1xgamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_org_tree_range', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gahitzlyamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_org_tree_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-27T09:04:24.855Z', + updatedAt: '2023-04-27T09:04:24.855Z', + collectionName: 'tt_amt_org_tree_range', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '0fz08i10amt', + name: 'tt_amt_orglicense_range', + title: '自动>企业营业执照经营范围关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'v2azsdlaamt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_orglicense_range', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'b236czclamt', + name: 'orglicenseid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_orglicense_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orglicenseid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'h0apri91amt', + name: 'rangeid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_orglicense_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'rangeid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '3jw7vt3wamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_orglicense_range', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'j663zfhcamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_orglicense_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'hent1yb2amt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_orglicense_range', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'sjlsvl0iamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_orglicense_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-07T07:22:29.257Z', + updatedAt: '2023-04-07T07:22:29.257Z', + collectionName: 'tt_amt_orglicense_range', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'nrlp2vp9amt', + name: 'tt_amt_staff_prof', + title: '自动>员工职业资格关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'bljoiqfeamt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_staff_prof', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'wss1x9aaamt', + name: 'staffid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_staff_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'staffid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'q5ijh4pdamt', + name: 'profid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_staff_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'profid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'f9m0mfa0amt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_staff_prof', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'h4xd3801amt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_staff_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'l58re1v1amt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_staff_prof', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'hpyexf1aamt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_staff_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-07T07:22:36.300Z', + updatedAt: '2023-04-07T07:22:36.300Z', + collectionName: 'tt_amt_staff_prof', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'juansr4gamt', + name: 'tt_amt_staff_tree_prof', + title: '自动>员工[树表]职业资格关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '9moeutkxamt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_amt_staff_tree_prof', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'ub4kxj8namt', + name: 'staffid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_staff_tree_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'staffid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'q5owne4zamt', + name: 'profid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_amt_staff_tree_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'profid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '6otonjmxamt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_amt_staff_tree_prof', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'k48spgxwamt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_amt_staff_tree_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'nj1wcx5uamt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_amt_staff_tree_prof', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fnv5h6e8amt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_amt_staff_tree_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 3, + createdAt: '2023-04-07T07:21:09.976Z', + updatedAt: '2023-05-02T05:07:54.352Z', + name: '自动测试amt', + color: 'cyan', + collectionCategory: { + createdAt: '2023-04-27T08:51:02.170Z', + updatedAt: '2023-04-27T08:51:02.170Z', + collectionName: 'tt_amt_staff_tree_prof', + categoryId: 3, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '86lpobjxpmt', + name: 'tt_pmt_org', + title: '性能>组织[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'ohxa8xp9pmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'x39u0hhrpmt', + name: 'ownerid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'qjit9pcvpmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'vijs3wcnpmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zsebjtwipmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fa4c74phpmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'mv6h7f8lpmt', + name: 'orgcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '区域编码' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 57460 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '公司编号(自动编码)' }, + inputable: false, + }, + { + key: '44u5zoyypmt', + name: 'orgname', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '公司名称(单行文本)' }, + }, + { + key: 'tdq82bb0pmt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '公司地址(多行文本)' }, + }, + { + key: '10xi6i24pmt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '负责人电话(手机号码)', + }, + }, + { + key: 'n3ykqhe4pmt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: '5ddcgbpqpmt', + name: 'staffnum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '员工人数(整数)', + }, + }, + { + key: 'z59sf4ilpmt', + name: 'insurednum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '参保人数(整数)', + }, + }, + { + key: 'ecvb3a8xpmt', + name: 'regcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '注册资本(数字)', + }, + }, + { + key: 'ierg1fbvpmt', + name: 'paidcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '实缴资本(数字)', + }, + }, + { + key: '46kjnywapmt', + name: 'insuranceratio', + type: 'float', + interface: 'percent', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '参保占比(百分比)', + }, + }, + { + key: '8j2vkys9pmt', + name: 'isenable', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否启用(勾选)' }, + }, + { + key: '6f480de5pmt', + name: 'status_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Select', + title: '公司状态(下拉单选)', + }, + }, + { + key: 'fcx8cw1rpmt', + name: 'range_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '经营范围(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'z71al7aapmt', + name: 'status_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '公司状态(单选)', + }, + }, + { + key: 'x8v9qf95pmt', + name: 'range_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '经营范围(复选)', + }, + defaultValue: [], + }, + { + key: 'pgmzldy7pmt', + name: 'area', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '所属地区(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_pmt_org_area', + foreignKey: 'f_8r6ikw6xnz0', + otherKey: 'f_hbxb8vsecko', + sourceKey: 'id', + }, + { + key: 'ase7kobwpmt', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '公司近照(附件)', + }, + target: 'attachments', + through: 'tt_pmt_org_photo', + foreignKey: 'f_hmb1pbp4vgf', + otherKey: 'f_zwsrqz83mp8', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'c50l1zgupmt', + name: 'range_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '经营范围(Markdown)' }, + }, + { + key: 'msj1qa4dpmt', + name: 'range_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '经营范围(富文本)' }, + }, + { + key: 'q755hkxmpmt', + name: 'establishdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '成立日期(日期)', + }, + }, + { + key: '0rd147mepmt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'gbclpdalpmt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'lc9t9qw7pmt', + name: 'license', + type: 'hasOne', + interface: 'oho', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: '6jboxc1xb9w', + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '营业执照(one has one)', + }, + target: 'tt_pmt_orglicense', + sourceKey: 'id', + }, + { + key: 'maki8q43pmt', + name: 'dept', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '部门(one to many)', + }, + target: 'tt_pmt_dept', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '0w5j5222pmt', + name: 'range', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + otherKey: 'rangeid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '经营范围(many to many)', + }, + through: 'tt_pmt_org_range', + target: 'tt_bd_range', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '9kn4ujerpmt', + name: 'range_json', + type: 'json', + interface: 'json', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '经营范围(JSON)', + }, + }, + { + key: '07mz84okpmt', + name: 'staff', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)', + }, + target: 'tt_pmt_staff', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '01me4f8dpmt', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(点)', + }, + }, + { + key: 'mkr7ceudpmt', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(线)', + }, + }, + { + key: 'bekuc6bvpmt', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(圆)', + }, + }, + { + key: 'i3vcrhvupmt', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(多边形)', + }, + }, + { + key: 'vqcsj7htpmt', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '官网地址(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'hpaq1qcrpmt', + name: 'owner', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_org', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)', + }, + target: 'tt_pmt_staff', + targetKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-07T07:20:14.134Z', + updatedAt: '2023-04-07T07:20:14.134Z', + collectionName: 'tt_pmt_org', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'jkvem4l2pmt', + name: 'tt_pmt_org_tree', + title: '性能>组织[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'kc6qsw8wpmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'yx47674fpmt', + name: 'ownerid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '79u57anwpmt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_pmt_org_tree', + }, + { + key: '83r2hhkbpmt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_pmt_org_tree', + targetKey: 'id', + }, + { + key: 'taoh3i6lpmt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_pmt_org_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '296cj7lspmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gj21nfz5pmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'z292a2aupmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '5kuz9obqpmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'azr2xsv2pmt', + name: 'orgcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '区域编码' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 63149 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '公司编号(自动编码)' }, + }, + { + key: '74al0ht7pmt', + name: 'orgname', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '公司名称(单行文本)' }, + }, + { + key: 'n56ccueipmt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '公司地址(多行文本)' }, + }, + { + key: 'abgsu9vspmt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '负责人电话(手机号码)', + }, + }, + { + key: 'nwpk0kqbpmt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: 'ytnsb45bpmt', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '官网地址(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'x4nd5g8spmt', + name: 'staffnum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '员工人数(整数)', + }, + }, + { + key: 'pv4aqfcypmt', + name: 'insurednum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '参保人数(整数)', + }, + }, + { + key: 'mwini82xpmt', + name: 'regcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '注册资本(数字)', + }, + }, + { + key: '5fglvshfpmt', + name: 'paidcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '实缴资本(数字)', + }, + }, + { + key: 'zdigd67upmt', + name: 'insuranceratio', + type: 'float', + interface: 'percent', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '参保占比(百分比)', + }, + }, + { + key: '42x9v3wvpmt', + name: 'isenable', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否启用(勾选)' }, + }, + { + key: 'xbjymcjxpmt', + name: 'status_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Select', + title: '公司状态(下拉单选)', + }, + }, + { + key: 'v0ap20mgpmt', + name: 'range_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '经营范围(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'vwmg4ex9pmt', + name: 'status_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '公司状态(单选)', + }, + }, + { + key: 'upkxrqfrpmt', + name: 'range_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '经营范围(复选)', + }, + defaultValue: [], + }, + { + key: 'd9y72qk8pmt', + name: 'area', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '所属地区(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_pmt_org_tree_area', + foreignKey: 'f_y6ukux7kw1q', + otherKey: 'f_ai3a25o9qc5', + sourceKey: 'id', + }, + { + key: 'qyrlvi32pmt', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '公司近照(附件)', + }, + target: 'attachments', + through: 'tt_pmt_org_tree_photo', + foreignKey: 'f_xlak0scjck5', + otherKey: 'f_e5xhh2cuol1', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'n9wnfqdrpmt', + name: 'range_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '经营范围(Markdown)' }, + }, + { + key: 'wkfyg6lvpmt', + name: 'range_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '经营范围(富文本)' }, + }, + { + key: 'slzowx7dpmt', + name: 'establishdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '成立日期(日期)', + }, + }, + { + key: 'qiqf41ygpmt', + name: 'range_json', + type: 'json', + interface: 'json', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '经营范围(JSON)', + }, + }, + { + key: '5qmafhaxpmt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'r0qqlw89pmt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'led3sjaepmt', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(点)', + }, + }, + { + key: 'ipdvxkxjpmt', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(线)', + }, + }, + { + key: 'ldr83y30pmt', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(圆)', + }, + }, + { + key: 'ggdzs1wxpmt', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(多边形)', + }, + }, + { + key: '6327d159pmt', + name: 'license', + type: 'hasOne', + interface: 'oho', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '营业执照(one has one)', + }, + target: 'tt_pmt_orglicense', + sourceKey: 'id', + }, + { + key: 'wbdndzvqpmt', + name: 'owner_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)[树表]', + }, + target: 'tt_pmt_staff_tree', + targetKey: 'id', + }, + { + key: 'ao3kbbt3pmt', + name: 'dept_tree', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '部门(one to many)[树表]', + }, + target: 'tt_pmt_dept_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'sd0zsbzypmt', + name: 'staff_tree', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)[树表]', + }, + target: 'tt_pmt_staff_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'c5m12hy5pmt', + name: 'range', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_pmt_org_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + otherKey: 'rangeid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '经营范围(many to many)', + }, + target: 'tt_bd_range', + through: 'tt_pmt_org_tree_range', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-25T14:06:15.660Z', + updatedAt: '2023-04-25T14:06:15.660Z', + collectionName: 'tt_pmt_org_tree', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'c9hyqimlpmt', + name: 'tt_pmt_dept', + title: '性能>部门[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '28tj63grpmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_dept', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '67necqtapmt', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_dept', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'nqeetal0pmt', + name: 'ownerid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_dept', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'dbb290eopmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_dept', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '9c2ga9cmpmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_dept', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '65yzgsp7pmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_dept', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'w0tqtrnxpmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_dept', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zbos4viupmt', + name: 'deptcode', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门编码' }, + }, + { + key: 'qpuhqqmdpmt', + name: 'deptname', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门名称' }, + }, + { + key: 'a7sva5d0pmt', + name: 'org', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_dept', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)', + }, + target: 'tt_pmt_org', + targetKey: 'id', + }, + { + key: 'ab74sl8fpmt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'fnsb3qqhpmt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_dept', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: '3hur9occpmt', + name: 'staff', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_dept', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)', + }, + target: 'tt_pmt_staff', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'flwjk24upmt', + name: 'owner', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_dept', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)', + }, + target: 'tt_pmt_staff', + targetKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-07T07:20:25.220Z', + updatedAt: '2023-04-07T07:20:25.220Z', + collectionName: 'tt_pmt_dept', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'dmm5t1iopmt', + name: 'tt_pmt_dept_tree', + title: '性能>部门[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '1gdw4yp8pmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '2u3nb80rpmt', + name: 'ownerid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'gbcioiedpmt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'abaa5i71pmt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_pmt_dept_tree', + }, + { + key: 'k4bwf4fwpmt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_pmt_dept_tree', + targetKey: 'id', + }, + { + key: 'uram4ujwpmt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_pmt_dept_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'jdtnebxapmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'al86l9utpmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'lu5n2igkpmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'rxi8ruyhpmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '5o0c6zhcpmt', + name: 'deptcode', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门编码' }, + }, + { + key: 'fqrkfpzzpmt', + name: 'deptname', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '部门名称' }, + }, + { + key: 'hx8w6300pmt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'iux15mx1pmt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'gcqvgh1ppmt', + name: 'owner_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'ownerid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)[树表]', + }, + target: 'tt_pmt_staff_tree', + targetKey: 'id', + }, + { + key: 'sh4vp1w3pmt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_pmt_org_tree', + targetKey: 'id', + }, + { + key: '0ff3qb08pmt', + name: 'staff_tree', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_dept_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '员工(one to many)[树表]', + }, + target: 'tt_pmt_staff_tree', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-27T08:22:25.503Z', + updatedAt: '2023-04-27T08:22:25.503Z', + collectionName: 'tt_pmt_dept_tree', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'jff9r7ebpmt', + name: 'tt_pmt_orglicense', + title: '性能>组织营业执照([普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '9qhn1fuupmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'fgiqbd4epmt', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '所属组织id(外键)', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '00r3t2p7pmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '1fthdco0pmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '3a9n2pwtpmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'rua496y1pmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '6jboxc1xpmt', + name: 'org', + type: 'belongsTo', + interface: 'obo', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: 'lc9t9qw7w7m', + uiSchema: { + title: '所属组织(one belongsto one)', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_pmt_org', + onDelete: 'SET NULL', + targetKey: 'id', + foreignKey: 'orgid', + }, + { + key: '82etkpqdpmt', + name: 'unifiledcode', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '统一社会信用代码(单行文本)' }, + }, + { + key: '3pcmumdfpmt', + name: 'legalpersonname', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '法人姓名(单行文本)' }, + }, + { + key: 'iw6icymfpmt', + name: 'legalpersonidnumber', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '法人身份证件号(单行文本)' }, + }, + { + key: 'lr6c7yhjpmt', + name: 'range', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + foreignKey: 'orglicenseid', + otherKey: 'rangeid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '经营范围(many to many)', + }, + through: 'tt_pmt_orglicense_range', + target: 'tt_bd_range', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '662guqhypmt', + name: 'rangecode', + type: 'text', + interface: 'textarea', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '经营范围编码(多行文本)' }, + }, + { + key: 'k6bhpu8vpmt', + name: 'rangedesc', + type: 'text', + interface: 'textarea', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '经营范围描述(多行文本)' }, + }, + { + key: 'iznfr95fpmt', + name: 'expiredate_start', + type: 'date', + interface: 'datetime', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '有效期起(日期)', + }, + }, + { + key: '1q80cfg1pmt', + name: 'expiredate_end', + type: 'date', + interface: 'datetime', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '有效期止(日期)', + }, + }, + { + key: 'wm9jsj6tpmt', + name: 'issuedate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '发证日期(日期)', + }, + }, + { + key: '6m7kai14pmt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'muf1twfgpmt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_orglicense', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-07T07:20:20.927Z', + updatedAt: '2023-04-07T07:20:20.927Z', + collectionName: 'tt_pmt_orglicense', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'dax26iuxpmt', + name: 'tt_pmt_staff', + title: '性能>员工[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '0d2rycb2pmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 't0bt3g4cpmt', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '5k5ccsyhpmt', + name: 'deptid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '3ji1ldjupmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'orh016pzpmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'xxm0g05jpmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '9wp4v5fwpmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'iezxmwh1pmt', + name: 'staffcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'NB' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 52031 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '员工号(自动编码)' }, + unique: false, + inputable: false, + }, + { + key: 'khzh1v1cpmt', + name: 'staffname', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '姓名(单行文本)' }, + }, + { + key: '8h58dz5bpmt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '联系地址(多行文本)' }, + }, + { + key: 'zolos0d9pmt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: 'h1i82qrypmt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: '6mjqrhctpmt', + name: 'age', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '年龄(整数)', + }, + }, + { + key: 'i5e7xxo2pmt', + name: 'workyears', + type: 'double', + interface: 'number', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '工龄(数字)', + }, + }, + { + key: 'xfm96km3pmt', + name: 'selforgworkyears', + type: 'double', + interface: 'number', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '司龄(数字)', + }, + }, + { + key: 'xon8vnm1pmt', + name: 'proportion', + type: 'float', + interface: 'percent', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '股份占比(百分比)', + }, + }, + { + key: 'dnijk17tpmt', + name: 'isonduty', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否在岗(勾选)' }, + }, + { + key: 'v9kgbw1npmt', + name: 'maritalstatus_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Select', + title: '婚姻状况(下拉单选)', + }, + }, + { + key: '1m7sadgxpmt', + name: 'prof_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '33', label: '通信专业技术人员职业资格' }, + { value: '34', label: '计算机技术与软件专业技术资格' }, + { value: '36', label: '会计专业技术资格' }, + { value: '52', label: '统计专业技术资格' }, + { value: '56', label: '翻译专业资格' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '职业资格(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'as9m82ynpmt', + name: 'maritalstatus_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '婚姻状况(单选)', + }, + }, + { + key: 'h4a3h0zkpmt', + name: 'prof_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '33', label: '通信专业技术人员职业资格' }, + { value: '34', label: '计算机技术与软件专业技术资格' }, + { value: '36', label: '会计专业技术资格' }, + { value: '52', label: '统计专业技术资格' }, + { value: '56', label: '翻译专业资格' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '职业资格(复选)', + }, + defaultValue: [], + }, + { + key: '2vg9uhb4pmt', + name: 'regaddress', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '户籍地(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_pmt_staff_regaddress', + foreignKey: 'f_hhmtoqcqk8g', + otherKey: 'f_t0sryffordg', + sourceKey: 'id', + }, + { + key: '9rfwtrrepmt', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '照片(附件)', + }, + target: 'attachments', + through: 'tt_pmt_staff_photo', + foreignKey: 'f_yntlgbf87rd', + otherKey: 'f_sikqv9m15cv', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '7x5uevlopmt', + name: 'prof_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '职业资格(Markdown)' }, + }, + { + key: 'lybdq5awpmt', + name: 'prof_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '职业资格(富文本)' }, + }, + { + key: 'duc6939bpmt', + name: 'birthdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '出生日期(日期)', + }, + }, + { + key: 'kd1k3d1vpmt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'h0kyhflppmt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'sigq297cpmt', + name: 'org', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)', + }, + target: 'tt_pmt_org', + targetKey: 'id', + }, + { + key: 'kgag86hipmt', + name: 'dept', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属部门(many to one)', + }, + target: 'tt_pmt_dept', + targetKey: 'id', + }, + { + key: 'vja8qigtpmt', + name: 'prof', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + foreignKey: 'staffid', + otherKey: 'profid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '职业资格(many to many)', + }, + through: 'tt_pmt_staff_prof', + target: 'tt_bd_prof', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'r5b5s85spmt', + name: 'prof_json', + type: 'json', + interface: 'json', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '职业资格(JSON)', + }, + }, + { + key: 'be635dbcpmt', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(点) ', + }, + }, + { + key: 'lmd0usk9pmt', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(线) ', + }, + }, + { + key: '07yrmxlopmt', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(圆)', + }, + }, + { + key: '4k9t55htpmt', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(多边形)', + }, + }, + { + key: 'dn9fkra7pmt', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_pmt_staff', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '个人主页(URL)', 'x-component': 'Input.URL' }, + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-07T07:20:55.666Z', + updatedAt: '2023-04-07T07:20:55.666Z', + collectionName: 'tt_pmt_staff', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: '07n5p6udpmt', + name: 'tt_pmt_staff_tree', + title: '性能>员工[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'y76paceepmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '6lgwn42mpmt', + name: 'deptid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'o12889owpmt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '57e1zlytpmt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_pmt_staff_tree', + }, + { + key: 'c4pv07f8pmt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_pmt_staff_tree', + targetKey: 'id', + }, + { + key: 'fr94xx2ppmt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_pmt_staff_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'q3rlwr75pmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fvfjkwsupmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zow7sqvepmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'ifmf1eiepmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'wd1i5pqgpmt', + name: 'staffcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'NB' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 8086 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '员工号(自动编码)' }, + }, + { + key: 'v6k6cr1tpmt', + name: 'staffname', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '姓名(单行文本)' }, + }, + { + key: '8bsrw9j4pmt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '联系地址(多行文本)' }, + }, + { + key: 'zhqz0lwvpmt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: 'l1hh1wh7pmt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: '9u0y3nvapmt', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '个人主页(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'ol1z5t5qpmt', + name: 'age', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '年龄(整数)', + }, + }, + { + key: 'kkgucwe0pmt', + name: 'workyears', + type: 'double', + interface: 'number', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '工龄(数字)', + }, + }, + { + key: 'hka1kizwpmt', + name: 'selforgworkyears', + type: 'double', + interface: 'number', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.1', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '司龄(数字)', + }, + }, + { + key: '96l8dmbrpmt', + name: 'proportion', + type: 'float', + interface: 'percent', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '股份占比(百分比)', + }, + }, + { + key: 'q89bdfmepmt', + name: 'isonduty', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否在岗(勾选)' }, + }, + { + key: '4gi6ye8zpmt', + name: 'maritalstatus_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Select', + title: '婚姻状况(下拉单选)', + }, + }, + { + key: 'my9kkqa4pmt', + name: 'prof_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '33', label: '通信专业技术人员职业资格' }, + { value: '34', label: '计算机技术与软件专业技术资格' }, + { value: '36', label: '会计专业技术资格' }, + { value: '52', label: '统计专业技术资格' }, + { value: '56', label: '翻译专业资格' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '职业资格(下拉多选)', + }, + defaultValue: [], + }, + { + key: 'b8r0ccdnpmt', + name: 'maritalstatus_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '01', label: '未婚' }, + { value: '02', label: '已婚' }, + { value: '03', label: '丧偶' }, + { value: '04', label: '离异' }, + { value: '05', label: '其他' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '婚姻状况(单选)', + }, + }, + { + key: 'has6qmwhpmt', + name: 'prof_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '04', label: '中国委托公证人资格(香港、澳门)' }, + { value: '05', label: '注册会计师' }, + { value: '10', label: '监理工程师' }, + { value: '28', label: '专利代理师' }, + { value: '32', label: '工程咨询(投资)专业技术人员职业资格' }, + { value: '34', label: '通信专业技术人员职业资格' }, + { value: '36', label: '计算机技术与软件专业技术资格' }, + { value: '52', label: '会计专业技术资格' }, + { value: '56', label: '统计专业技术资格' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '职业资格(复选)', + }, + defaultValue: [], + }, + { + key: '1um9vv5vpmt', + name: 'regaddress', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { + maxLevel: 3, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: false, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '户籍地(行政区划)', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + through: 'tt_pmt_staff_tree_regaddress', + foreignKey: 'f_ife9oxivp9d', + otherKey: 'f_6qkh23zbzww', + sourceKey: 'id', + }, + { + key: '70if34x0pmt', + name: 'photo', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { multiple: true, action: 'attachments:upload' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '照片(附件)', + }, + target: 'attachments', + through: 'tt_pmt_staff_tree_photo', + foreignKey: 'f_6m5lnpitpr8', + otherKey: 'f_dcbgh1euvv8', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '4kk7v93ypmt', + name: 'prof_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '职业资格(Markdown)' }, + }, + { + key: '04s0u9kdpmt', + name: 'prof_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '职业资格(富文本)' }, + }, + { + key: 'yw6tg52vpmt', + name: 'birthdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '出生日期(日期)', + }, + }, + { + key: '3hleeqt3pmt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'zh6dj1kgpmt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'ebgwkmkkpmt', + name: 'prof_json', + type: 'json', + interface: 'json', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '职业资格(JSON)', + }, + }, + { + key: 'xkq2xsm5pmt', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(点)', + }, + }, + { + key: 'u0mnio95pmt', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(线)', + }, + }, + { + key: 'qee0kthfpmt', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(圆)', + }, + }, + { + key: 'lltpukvlpmt', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '联系地址坐标(多边形)', + }, + }, + { + key: '9i5avlqopmt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_pmt_org_tree', + targetKey: 'id', + }, + { + key: 'dpozkfpdpmt', + name: 'dept_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属部门(many to one)[树表]', + }, + target: 'tt_pmt_dept_tree', + targetKey: 'id', + }, + { + key: 'tj2z9xpypmt', + name: 'prof_tree', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'tt_pmt_staff_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'staffid_tree', + otherKey: 'profid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '职业资格(many to many)[树表]', + }, + target: 'tt_bd_prof', + through: 'tt_pmt_staff_tree_prof', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-27T08:30:17.111Z', + updatedAt: '2023-04-27T08:30:17.111Z', + collectionName: 'tt_pmt_staff_tree', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'wxthhajvpmt', + name: 'tt_pmt_customer_tree', + title: '性能>客户[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '7slke7lrpmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'ljn3r3j2pmt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '70pjqv7vpmt', + name: 'countryid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'countryid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'wb3a5n00pmt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_pmt_customer_tree', + }, + { + key: 'sib2jw39pmt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_pmt_customer_tree', + targetKey: 'id', + }, + { + key: '6iej9s4rpmt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_pmt_customer_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'rakkhuyqpmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '0enk4fydpmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '4hvi0emcpmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '3x3n73dzpmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '02gf41rlpmt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_pmt_org_tree', + targetKey: 'id', + }, + { + key: 'rvq1m32cpmt', + name: 'custcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '客户' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 20712 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '客户编码' }, + }, + { + key: '8oeh8ic6pmt', + name: 'custname', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '客户名称' }, + }, + { + key: 'q7duzlt0pmt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '地址(多行文本)' }, + }, + { + key: 'nhr8omk5pmt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: 'gwzayy3rpmt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: 'tziwvbpspmt', + name: 'country', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_customer_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'countryid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所在国家(many to one)', + }, + target: 'tt_bd_country', + targetKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-28T09:44:23.793Z', + updatedAt: '2023-04-28T09:44:23.793Z', + collectionName: 'tt_pmt_customer_tree', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: '7392uqu9pmt', + name: 'tt_pmt_supplier_tree', + title: '性能>供应商[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'mks9f38spmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'kzusp28bpmt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'zg1uwvdwpmt', + name: 'countryid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'countryid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'jgaiuu1qpmt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_pmt_supplier_tree', + }, + { + key: '0rbkjvyxpmt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_pmt_supplier_tree', + targetKey: 'id', + }, + { + key: '77hg0uxzpmt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_pmt_supplier_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'p13jc9l7pmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'xct6unjgpmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'vmhpgoa5pmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'oagzn1jgpmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'gzkhprhxpmt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所属组织(many to one)[树表]', + }, + target: 'tt_pmt_org_tree', + targetKey: 'id', + }, + { + key: 'fh5kfafspmt', + name: 'suppliercode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '供应商' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 20533 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '供应商编码' }, + }, + { + key: 'vfu829qkpmt', + name: 'suppliername', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '供应商名称' }, + }, + { + key: '8iq0bwj8pmt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '地址(多行文本)' }, + }, + { + key: 'tpjdf0qlpmt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '联系电话(手机号码)', + }, + }, + { + key: '12jih9kmpmt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + }, + { + key: 'ksx9ximzpmt', + name: 'country', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_supplier_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'countryid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '所在国家(many to one)', + }, + target: 'tt_bd_country', + targetKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-28T09:45:02.249Z', + updatedAt: '2023-04-28T09:45:02.249Z', + collectionName: 'tt_pmt_supplier_tree', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'k6j1dzcwpmt', + name: 'tt_pmt_materialclass_tree', + title: '性能>物料分类[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '5hyy7ulhpmt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_materialclass_tree', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_pmt_materialclass_tree', + }, + { + key: 'g1xc56vdpmt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_materialclass_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_pmt_materialclass_tree', + targetKey: 'id', + }, + { + key: '872hxq6fpmt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_materialclass_tree', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_pmt_materialclass_tree', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'v424kp87pmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_materialclass_tree', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'he58euuqpmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_materialclass_tree', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '07hjbpnrpmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_materialclass_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '8gs6msrqpmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_materialclass_tree', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'so854ilspmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_materialclass_tree', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'p770it8ypmt', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '分类编码' }, + unique: true, + }, + { + key: 'k5xztdmepmt', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '分类名称' }, + }, + { + key: 'nr876w40pmt', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: '2o68nz63pmt', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_materialclass_tree', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-19T09:20:22.556Z', + updatedAt: '2023-04-19T09:20:22.556Z', + collectionName: 'tt_pmt_materialclass_tree', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: '71pkkfvopmt', + name: 'tt_pmt_material', + title: '性能>物料[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'c5r0cfgopmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_material', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '0q971jh5pmt', + name: 'classid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_material', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'classid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'p2me0o8tpmt', + name: 'unitid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_material', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'unitid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'waqpt4bgpmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_material', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'nc86chxbpmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_material', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '7tknuof2pmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_material', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '1l9ejn4ppmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_material', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '8drih6ghpmt', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料编码' }, + unique: true, + }, + { + key: '20zdhfalpmt', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料名称' }, + }, + { + key: '5wqpy9zfpmt', + name: 'spec', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '规格' }, + }, + { + key: 'ggiidy6lpmt', + name: 'type', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '型号' }, + }, + { + key: 'cvt9ywoopmt', + name: 'classname', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '分类名称' }, + }, + { + key: 'mu2qzacspmt', + name: 'class', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_material', + parentKey: null, + reverseKey: null, + foreignKey: 'classid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '物料分类', + }, + target: 'tt_pmt_materialclass_tree', + targetKey: 'id', + }, + { + key: 'ydv8fsi5pmt', + name: 'unit', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_material', + parentKey: null, + reverseKey: null, + foreignKey: 'unitid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '计量单位', + }, + target: 'tt_bd_unit', + targetKey: 'id', + }, + { + key: 'oe79qxo1pmt', + name: 'unitname', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_material', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '单位名称' }, + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-20T01:52:56.923Z', + updatedAt: '2023-04-20T01:52:56.923Z', + collectionName: 'tt_pmt_material', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'tu68q4z3pmt', + name: 'tt_pmt_warehouse', + title: '性能>仓库[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'apvdr645pmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_warehouse', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'kclgp2ippmt', + name: 'staffid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_warehouse', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'staffid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'xtx7x7icpmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_warehouse', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '4mn9swsypmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_warehouse', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'zc7tecz8pmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_warehouse', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gwebb7uqpmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_warehouse', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'tw3v31jtpmt', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_warehouse', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '编码' }, + unique: true, + }, + { + key: 'tlwo8alnpmt', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_warehouse', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '名称' }, + unique: false, + }, + { + key: 'ow21q1mipmt', + name: 'address', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_warehouse', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '地址' }, + }, + { + key: 'xcaygwbopmt', + name: 'owner_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_warehouse', + parentKey: null, + reverseKey: null, + foreignKey: 'staffid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人(many to one)[树表]', + }, + target: 'tt_pmt_staff_tree', + targetKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-26T02:46:43.336Z', + updatedAt: '2023-04-26T02:46:43.336Z', + collectionName: 'tt_pmt_warehouse', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'n4lsa1g2pmt', + name: 'tt_pmt_inventory', + title: '性能>库存[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'abeyktkjpmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'g5qkwfpypmt', + name: 'materialid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'materialid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '14f2xdmhpmt', + name: 'warehouseid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'warehouseid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '95jd7wripmt', + name: 'unitid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'unitid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'qc3p5dt6pmt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'yiomb00gpmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '9brp2wbrpmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'n35bf0afpmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '298424xepmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'd6kytzf4pmt', + name: 'material', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'materialid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '物料(many to one)', + }, + target: 'tt_pmt_material', + targetKey: 'id', + }, + { + key: 'prh0xuiipmt', + name: 'warehouse_code', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '仓库编码' }, + }, + { + key: '6mi0mibopmt', + name: 'warehouse_name', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '仓库名称' }, + }, + { + key: '0jmm0k7hpmt', + name: 'material_code', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料编码' }, + }, + { + key: 'qf02v4u7pmt', + name: 'material_name', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料名称' }, + }, + { + key: 'qivjufzrpmt', + name: 'material_spec', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料规格' }, + }, + { + key: '45xaw14ipmt', + name: 'material_type', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料型号' }, + }, + { + key: '9sblvxa0pmt', + name: 'material_unit', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料单位名称' }, + }, + { + key: 'ua0nwv6apmt', + name: 'quantity', + type: 'double', + interface: 'number', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '库存数量', + }, + }, + { + key: 'inwiwx60pmt', + name: 'warehouse', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'warehouseid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '仓库(many to one)', + }, + target: 'tt_pmt_warehouse', + targetKey: 'id', + }, + { + key: 'sfl8nllbpmt', + name: 'unit', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'unitid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '计量单位(many to one)', + }, + target: 'tt_bd_unit', + targetKey: 'id', + }, + { + key: '9q9kws0vpmt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_inventory', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '组织(many to one)[树表]', + }, + target: 'tt_pmt_org_tree', + targetKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-25T06:25:00.153Z', + updatedAt: '2023-04-25T06:25:00.153Z', + collectionName: 'tt_pmt_inventory', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '44kz0lhypmt', + name: 'tt_pmt_purchase', + title: '性能>采购订单[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'zu5d8z6kpmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'jl9co7lgpmt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '1pjpolwspmt', + name: 'deptid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'vaq1zx9tpmt', + name: 'supplierid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'supplierid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'gyrywzcgpmt', + name: 'purchasecontactid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { + type: 'number', + title: 'purchasecontactid_tree', + 'x-component': 'InputNumber', + 'x-read-pretty': true, + }, + }, + { + key: 'oa2xy75epmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'q7rwin7qpmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '46ozud8tpmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'epfl5wdxpmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'tf2g38s3pmt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '采购组织(many to one)[树表]', + }, + target: 'tt_pmt_org_tree', + targetKey: 'id', + }, + { + key: '9rlqnee9pmt', + name: 'dept_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '采购部门(many to one)[树表]', + }, + target: 'tt_pmt_dept_tree', + targetKey: 'id', + }, + { + key: '7am8kldzpmt', + name: 'supplier_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'supplierid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '供应商(many to one)[树表]', + }, + target: 'tt_pmt_supplier_tree', + targetKey: 'id', + }, + { + key: 'ftodeoodpmt', + name: 'order_no', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'PO' } }, + { type: 'date', options: {} }, + { type: 'integer', options: { digits: 5, start: 1, key: 25793 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '订单号(自动编码)' }, + unique: true, + }, + { + key: 'pv6aog71pmt', + name: 'purchasecontact', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'purchasecontactid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '采购联系人(many to one)[树表]', + }, + target: 'tt_pmt_staff_tree', + targetKey: 'id', + }, + { + key: 'n59j0a22pmt', + name: 'purchasecontact_name', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '采购联系人姓名' }, + }, + { + key: 'ib304wsnpmt', + name: 'purchasecontact_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '采购联系电话', + }, + }, + { + key: '5utcqj28pmt', + name: 'suppliercontact_name', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '供应商联系人姓名' }, + }, + { + key: 'ji5xtqgopmt', + name: 'suppliercontact_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '供应商联系人电话', + }, + }, + { + key: 'eo46f5j7pmt', + name: 'paymentstatus', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '未付款' }, + { value: '2', label: '已付款' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '付款状态', + }, + }, + { + key: '32zcduo2pmt', + name: 'status', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '已发货' }, + { value: '2', label: '已签收' }, + { value: '3', label: '已退货' }, + { value: '4', label: '取消交易' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '订单状态', + }, + }, + { + key: '0ptwgu88pmt', + name: 'amount', + type: 'double', + interface: 'number', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '订单金额', + }, + }, + { + key: 'usb8rwvipmt', + name: 'detail', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_purchase', + parentKey: null, + reverseKey: null, + foreignKey: 'orderid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '订单明细(one to many)', + }, + target: 'tt_pmt_purchase_detail', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-25T12:15:52.314Z', + updatedAt: '2023-04-25T12:15:52.314Z', + collectionName: 'tt_pmt_purchase', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'kryvveqepmt', + name: 'tt_pmt_purchase_detail', + title: '性能>采购订单明细[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'bx68gtu7pmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'j72k53rkpmt', + name: 'materialid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'materialid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '95gbyr21pmt', + name: 'unitid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'unitid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'rv5jirstpmt', + name: 'orderid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orderid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'hero7kpwpmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fmq1ydbfpmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'kypoomknpmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'nny43njxpmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'c5miad3vpmt', + name: 'order_no', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '订单号' }, + }, + { + key: 'uqgrkynrpmt', + name: 'material', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + foreignKey: 'materialid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '物料(many to one)', + }, + target: 'tt_pmt_material', + targetKey: 'id', + }, + { + key: 'bl7rotumpmt', + name: 'materialcode', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料编码' }, + }, + { + key: 'r4knrjc1pmt', + name: 'materialname', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料名称' }, + }, + { + key: 'xh2x8ozppmt', + name: 'materialspec', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料规格' }, + }, + { + key: '6udro2iwpmt', + name: 'materialtype', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '物料型号' }, + }, + { + key: 'ggluomz0pmt', + name: 'materialunit', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + foreignKey: 'unitid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '计量单位(many to one)', + }, + target: 'tt_bd_unit', + targetKey: 'id', + }, + { + key: '7rqysq3hpmt', + name: 'unitname', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '计量单位' }, + }, + { + key: '5etvyohupmt', + name: 'price', + type: 'double', + interface: 'number', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '价格', + }, + }, + { + key: 'v4ipx3dapmt', + name: 'quantity', + type: 'double', + interface: 'number', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '数量', + }, + }, + { + key: 'ipiuw9uypmt', + name: 'amount', + type: 'formula', + interface: 'formula', + collectionName: 'tt_pmt_purchase_detail', + parentKey: null, + reverseKey: null, + dataType: 'double', + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'Formula.Result', + 'x-read-pretty': true, + title: '金额', + }, + engine: 'math.js', + expression: '{{price}}*{{quantity}}', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-25T12:44:24.873Z', + updatedAt: '2023-04-25T12:44:24.873Z', + collectionName: 'tt_pmt_purchase_detail', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '5xacggexpmt', + name: 'tt_pmt_production', + title: '性能>生产订单[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'zf3pkbadpmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_production', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'na8opa82pmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_production', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'kpu29b74pmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_production', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '3jcf7oyxpmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_production', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fxrdb8s4pmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_production', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'rj55h3axpmt', + name: 'detail', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_production', + parentKey: null, + reverseKey: null, + foreignKey: 'orderid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '订单明细(one to many)', + }, + target: 'tt_pmt_production_detail', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-25T14:08:27.913Z', + updatedAt: '2023-04-25T14:08:27.913Z', + collectionName: 'tt_pmt_production', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'h093tdwmpmt', + name: 'tt_pmt_production_detail', + title: '性能>生产订单明细[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'xmrs0mlfpmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_production_detail', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '7qdn6q3apmt', + name: 'orderid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_production_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orderid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'spim8s5fpmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_production_detail', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'bgct5ehspmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_production_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'j5l9nb1hpmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_production_detail', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '4ybl1kwypmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_production_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-25T14:08:55.636Z', + updatedAt: '2023-04-25T14:08:55.636Z', + collectionName: 'tt_pmt_production_detail', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'nt80ck13pmt', + name: 'tt_pmt_sales', + title: '性能>销售订单[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'zt2k3h7hpmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'gfrrwt8tpmt', + name: 'customerid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'customerid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '93fwne9ppmt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'xs1l2rwapmt', + name: 'deptid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'deptid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'iq9oe0ggpmt', + name: 'salescontactid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'salescontactid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'nadruvhupmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'yizb72d1pmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'ps02ffrspmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '23hdfiv1pmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'gctv1r6jpmt', + name: 'order_bo', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: 'CO' } }, + { type: 'date', options: {} }, + { type: 'integer', options: { digits: 5, start: 1, key: 7219 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '订单号(字段编号)' }, + }, + { + key: '2llg7id8pmt', + name: 'org_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'orgid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '销售组织(many to one)[树表]', + }, + target: 'tt_pmt_org_tree', + targetKey: 'id', + }, + { + key: '7c730b5rpmt', + name: 'dept_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'deptid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '销售部门(many to one)[树表]', + }, + target: 'tt_pmt_dept_tree', + targetKey: 'id', + }, + { + key: '7wtlcoz9pmt', + name: 'salescontact', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'salescontactid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '销售联系人(many to one)[树表]', + }, + target: 'tt_pmt_staff_tree', + targetKey: 'id', + }, + { + key: 'q3rs6u23pmt', + name: 'customer_tree', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'customerid_tree', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '客户(many to one)[树表]', + }, + target: 'tt_pmt_customer_tree', + targetKey: 'id', + }, + { + key: '0pemv8jmpmt', + name: 'detail', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + foreignKey: 'orderid', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '订单明细(one to many)', + }, + target: 'tt_pmt_sales_detail', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'svwa3wgbpmt', + name: 'salescontact_name', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '销售联系人姓名' }, + }, + { + key: 'nku29fowpmt', + name: 'salescontact_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '销售联系人电话', + }, + }, + { + key: 'xr4pcarhpmt', + name: 'customer_name', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '客户联系人姓名' }, + }, + { + key: 'mmhhc0ptpmt', + name: 'customer_phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '客户联系人电话', + }, + }, + { + key: 'xfgac7blpmt', + name: 'paymentstatus', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '未付款' }, + { value: '2', label: '已付款' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '付款状态', + }, + }, + { + key: 'xx7i85nbpmt', + name: 'status', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '已发货' }, + { value: '2', label: '已签收' }, + { value: '3', label: '已退货' }, + { value: '4', label: '取消交易' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '订单状态', + }, + }, + { + key: 'qj9ms33ypmt', + name: 'amount', + type: 'double', + interface: 'number', + collectionName: 'tt_pmt_sales', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '订单金额', + }, + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-25T12:17:57.745Z', + updatedAt: '2023-04-25T12:17:57.745Z', + collectionName: 'tt_pmt_sales', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'e6pnku1upmt', + name: 'tt_pmt_sales_detail', + title: '性能>销售订单明细[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '32d6q8ggpmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_sales_detail', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'n5ibp5iepmt', + name: 'orderid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_sales_detail', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orderid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'ztpg5wlfpmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_sales_detail', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'czck2j0spmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_sales_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'tpvgjomopmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_sales_detail', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '5sn2s2xopmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_sales_detail', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-25T12:45:35.367Z', + updatedAt: '2023-04-25T12:45:35.367Z', + collectionName: 'tt_pmt_sales_detail', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '2bvnp2sbpmt', + name: 'tt_pmt_defaultvalue', + title: '性能>默认值[树表]', + inherit: false, + hidden: false, + fields: [ + { + key: '7mzjbf1opmt', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_pmt_defaultvalue', + }, + { + key: 'z2hgnn8ipmt', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_pmt_defaultvalue', + targetKey: 'id', + }, + { + key: '5r83de6vpmt', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_pmt_defaultvalue', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'z8je0jajpmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'uld866n1pmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gjw3j1pbpmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'olecaco2pmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'hyfbyx30pmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'utn8yk57pmt', + name: 'orgcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '区划编码' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 56717 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '公司编号(自动编码)' }, + inputable: false, + }, + { + key: 'sd1js4eopmt', + name: 'orgname', + type: 'string', + interface: 'input', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '公司名称(单行文本)' }, + defaultValue: '默认值:公司名称', + }, + { + key: 'dpg1reljpmt', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '公司地址(多行文本)' }, + defaultValue: '默认值:公司地址(多行文本)', + }, + { + key: 'db3qm50mpmt', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '负责人电话(手机号码)', + }, + defaultValue: '默认值:15912345678', + }, + { + key: 'ebaqb3bwpmt', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + defaultValue: 'jihongbo@nocobase.com', + }, + { + key: '4a7n9i83pmt', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '官网地址(URL)', 'x-component': 'Input.URL' }, + }, + { + key: 'stmuctyrpmt', + name: 'staffnum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '员工人数(整数)', + }, + defaultValue: 899123, + }, + { + key: 'mv7mq8flpmt', + name: 'regcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '注册资本(数字)', + }, + defaultValue: 1234.56789, + }, + { + key: 'qlnzy3xkpmt', + name: 'paidcapital', + type: 'double', + interface: 'number', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '实缴资本(数字)', + }, + defaultValue: 123.456789, + }, + { + key: 'byow909jpmt', + name: 'insuranceratio', + type: 'float', + interface: 'percent', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.001', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '参保占比(百分比)', + }, + defaultValue: 0.12345, + }, + { + key: '5n8oh02mpmt', + name: 'password', + type: 'password', + interface: 'password', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + hidden: true, + uiSchema: { type: 'string', 'x-component': 'Password', title: '登录密码(密码)' }, + defaultValue: 'admin123', + }, + { + key: 'chcwtw6ppmt', + name: 'isenable', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否启用(勾选)' }, + defaultValue: true, + }, + { + key: 'l24xyofvpmt', + name: 'status_singleselect', + type: 'string', + interface: 'select', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Select', + title: '公司状态(下拉单选)', + }, + defaultValue: '1', + }, + { + key: 'i5ghwln2pmt', + name: 'range_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '经营范围(下拉多选)', + }, + defaultValue: ['F3134', 'I3006', 'I3008'], + }, + { + key: '1ya46ghapmt', + name: 'status_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '公司状态(单选)', + }, + defaultValue: '2', + }, + { + key: 'otn7lnx7pmt', + name: 'range_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '经营范围(复选)', + }, + defaultValue: ['L2095', 'M2070', 'O3010'], + }, + { + key: 'd9yuz42tpmt', + name: 'range_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '经营范围(Markdown)' }, + defaultValue: + '人工智能应用软件开发,软件外包服务,网络与信息安全软件开发,信息技术咨询服务,数据处理服务,计算机系统服务,企业管理咨询', + }, + { + key: 'pmn5kco5pmt', + name: 'range_richtext', + type: 'text', + interface: 'richText', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '经营范围(富文本)' }, + defaultValue: + '

网络与信息安全软件开发,数字文化创意软件开发,业务培训(不含教育培训、职业技能培训等需取得许可的培训)

', + }, + { + key: '6slk4p6bpmt', + name: 'establishdate', + type: 'date', + interface: 'datetime', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '成立日期(日期)', + }, + defaultValue: '2023-03-30T07:19:11.963Z', + }, + { + key: '707gt6dwpmt', + name: 'range_json', + type: 'json', + interface: 'json', + collectionName: 'tt_pmt_defaultvalue', + parentKey: null, + reverseKey: null, + defaultValue: { + F3134: '软件销售', + I3006: '软件开发', + I3007: '人工智能基础软件开发', + I3008: '人工智能应用软件开发', + I3010: '软件外包服务', + I3011: '网络与信息安全软件开发', + I3014: '数字文化创意软件开发', + I3027: '信息技术咨询服务', + L2095: '企业管理咨询', + M2070: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广', + }, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '经营范围(JSON)', + }, + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-28T03:31:22.055Z', + updatedAt: '2023-04-28T03:31:22.055Z', + collectionName: 'tt_pmt_defaultvalue', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'nj5azm2gpmt', + name: 'tt_pmt_nofields', + title: '性能>无字段[普通表]', + inherit: false, + hidden: false, + fields: [], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-18T13:42:56.966Z', + updatedAt: '2023-04-18T13:42:56.966Z', + collectionName: 'tt_pmt_nofields', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: false, + createdBy: false, + updatedBy: false, + createdAt: false, + updatedAt: false, + sortable: false, + template: 'general', + view: false, + }, + { + key: '4tg08zk3pmt', + name: 'tt_pmt_org_range', + title: '性能>企业经营范围关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '2fbsga5vpmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_org_range', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'mewmuwi8pmt', + name: 'orgid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_org_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'o3l0cbk8pmt', + name: 'rangeid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_org_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'rangeid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'rnrzdmc9pmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_org_range', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '34wimt2spmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_org_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'xnj4hlo2pmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_org_range', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'za2aan91pmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_org_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-07T07:22:22.310Z', + updatedAt: '2023-04-07T07:22:22.310Z', + collectionName: 'tt_pmt_org_range', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'syz4h7tcpmt', + name: 'tt_pmt_org_tree_range', + title: '性能>企业[树表]经营范围关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '30gdvg32pmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_org_tree_range', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '7trh1ghgpmt', + name: 'rangeid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_org_tree_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'rangeid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '0sjgp48mpmt', + name: 'orgid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_org_tree_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orgid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'j6e2sbqspmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_org_tree_range', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'p46c0pkcpmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_org_tree_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '6aope1xgpmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_org_tree_range', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gahitzlypmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_org_tree_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-27T09:04:24.855Z', + updatedAt: '2023-04-27T09:04:24.855Z', + collectionName: 'tt_pmt_org_tree_range', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '0fz08i10pmt', + name: 'tt_pmt_orglicense_range', + title: '性能>企业营业执照经营范围关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'v2azsdlapmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_orglicense_range', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'b236czclpmt', + name: 'orglicenseid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_orglicense_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'orglicenseid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'h0apri91pmt', + name: 'rangeid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_orglicense_range', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'rangeid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '3jw7vt3wpmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_orglicense_range', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'j663zfhcpmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_orglicense_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'hent1yb2pmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_orglicense_range', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'sjlsvl0ipmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_orglicense_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-07T07:22:29.257Z', + updatedAt: '2023-04-07T07:22:29.257Z', + collectionName: 'tt_pmt_orglicense_range', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'nrlp2vp9pmt', + name: 'tt_pmt_staff_prof', + title: '性能>员工职业资格关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: 'bljoiqfepmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_staff_prof', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'wss1x9aapmt', + name: 'staffid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_staff_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'staffid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'q5ijh4pdpmt', + name: 'profid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_staff_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'profid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'f9m0mfa0pmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_staff_prof', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'h4xd3801pmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_staff_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'l58re1v1pmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_staff_prof', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'hpyexf1apmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_staff_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-07T07:22:36.300Z', + updatedAt: '2023-04-07T07:22:36.300Z', + collectionName: 'tt_pmt_staff_prof', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'juansr4gpmt', + name: 'tt_pmt_staff_tree_prof', + title: '性能>员工[树表]职业资格关系表[普通表]', + inherit: false, + hidden: false, + fields: [ + { + key: '9moeutkxpmt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_pmt_staff_tree_prof', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'ub4kxj8npmt', + name: 'staffid_tree', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_staff_tree_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'staffid_tree', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'q5owne4zpmt', + name: 'profid', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_pmt_staff_tree_prof', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'profid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '6otonjmxpmt', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_pmt_staff_tree_prof', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'k48spgxwpmt', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_pmt_staff_tree_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'nj1wcx5upmt', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_pmt_staff_tree_prof', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fnv5h6e8pmt', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_pmt_staff_tree_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 8, + createdAt: '2023-05-02T05:01:45.150Z', + updatedAt: '2023-05-02T05:08:54.545Z', + name: '性能测试pmt', + color: 'red', + collectionCategory: { + createdAt: '2023-04-27T08:51:02.170Z', + updatedAt: '2023-04-27T08:51:02.170Z', + collectionName: 'tt_pmt_staff_tree_prof', + categoryId: 8, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'n85ql667da9', + name: 'tt_bd_range', + title: '经营范围[基础数据]', + inherit: false, + hidden: false, + fields: [ + { + key: 'ennv3crwst5', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_bd_range', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 's5o0ol7hgbw', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_bd_range', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '429khsj4dsv', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_bd_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '5vwxqrwa4mr', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_bd_range', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'a6suv9g7l20', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_bd_range', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '1z3s96e5fx5', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_bd_range', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '编码' }, + unique: true, + }, + { + key: 'lqwe4ci056h', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_bd_range', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '名称' }, + }, + ], + category: [ + { + id: 6, + createdAt: '2023-04-07T07:21:48.896Z', + updatedAt: '2023-04-07T07:22:09.115Z', + name: '基础数据', + color: 'purple', + collectionCategory: { + createdAt: '2023-04-07T07:22:43.744Z', + updatedAt: '2023-04-07T07:22:43.744Z', + collectionName: 'tt_bd_range', + categoryId: 6, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'jmk6ia8jz4z', + name: 'tt_bd_prof', + title: '职业资格[基础数据]', + inherit: false, + hidden: false, + fields: [ + { + key: '0990qzn0d7d', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_bd_prof', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'gtg340rgphh', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_bd_prof', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'jnggqjgciko', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_bd_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '0pj019qgc37', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_bd_prof', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'wjmvk1x3xf6', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_bd_prof', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'ojwtd3h1k3g', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_bd_prof', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '编码' }, + }, + { + key: 'r64a38zuvwu', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_bd_prof', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '名称' }, + }, + ], + category: [ + { + id: 6, + createdAt: '2023-04-07T07:21:48.896Z', + updatedAt: '2023-04-07T07:22:09.115Z', + name: '基础数据', + color: 'purple', + collectionCategory: { + createdAt: '2023-04-07T07:22:49.601Z', + updatedAt: '2023-04-07T07:22:49.601Z', + collectionName: 'tt_bd_prof', + categoryId: 6, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'l1pe60o5k9w', + name: 'tt_bd_unit', + title: '计量单位[基础数据]', + inherit: false, + hidden: false, + fields: [ + { + key: 'upppah0izl9', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_bd_unit', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '7kvkpd3dbcx', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_bd_unit', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'iz57u5tbxpx', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_bd_unit', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 't9z65lg3zl9', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_bd_unit', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'na7rzpk3rsr', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_bd_unit', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '6s6ivbag0br', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_bd_unit', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '计量单位名称' }, + }, + { + key: 'j5z0kjpqos3', + name: 'symbol', + type: 'string', + interface: 'input', + collectionName: 'tt_bd_unit', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '计量单位符号' }, + }, + { + key: 'ps6c078xovd', + name: 'class', + type: 'string', + interface: 'radioGroup', + collectionName: 'tt_bd_unit', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '重量', label: '重量' }, + { value: '长度', label: '长度' }, + { value: '体积', label: '体积' }, + { value: '面积', label: '面积' }, + { value: '时间', label: '时间' }, + { value: '力单位', label: '力单位' }, + { value: '压力', label: '压力' }, + { value: '温度', label: '温度' }, + { value: '能单位', label: '能单位' }, + { value: '功率', label: '功率' }, + { value: '平面角', label: '平面角' }, + { value: '频率', label: '频率' }, + { value: '速度', label: '速度' }, + { value: '其他', label: '其他' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '分类', + }, + }, + { + key: 'mzgil5hwnwb', + name: 'isbasicunit', + type: 'boolean', + interface: 'checkbox', + collectionName: 'tt_bd_unit', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否基本单位' }, + }, + { + key: 'vaoi0ic89bf', + name: 'scalefactor', + type: 'double', + interface: 'number', + collectionName: 'tt_bd_unit', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.00001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '换算系数', + }, + }, + { + key: '30urcqe61hp', + name: 'explain', + type: 'string', + interface: 'input', + collectionName: 'tt_bd_unit', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '说明' }, + }, + ], + category: [ + { + id: 6, + createdAt: '2023-04-07T07:21:48.896Z', + updatedAt: '2023-04-07T07:22:09.115Z', + name: '基础数据', + color: 'purple', + collectionCategory: { + createdAt: '2023-04-20T07:25:35.395Z', + updatedAt: '2023-04-20T07:25:35.395Z', + collectionName: 'tt_bd_unit', + categoryId: 6, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '9u97fo8dia4', + name: 'tt_bd_country', + title: '国家[基础数据]', + inherit: false, + hidden: false, + fields: [ + { + key: 'idvlwt6mze2', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_bd_country', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'ckxmba4odek', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_bd_country', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'g1149e5loto', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_bd_country', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'hzo1p901frn', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_bd_country', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'qurg75o7ozd', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_bd_country', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'uqjxmmvhcqr', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_bd_country', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '编码' }, + }, + { + key: 'givy1miwu9p', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_bd_country', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '名称' }, + }, + ], + category: [ + { + id: 6, + createdAt: '2023-04-07T07:21:48.896Z', + updatedAt: '2023-04-07T07:22:09.115Z', + name: '基础数据', + color: 'purple', + collectionCategory: { + createdAt: '2023-05-01T01:22:36.559Z', + updatedAt: '2023-05-01T01:22:36.559Z', + collectionName: 'tt_bd_country', + categoryId: 6, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'tizemw9tple', + name: 'tt_systemfunction', + title: '系统功能', + inherit: false, + hidden: false, + fields: [ + { + key: 'r5524fbcl2m', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_systemfunction', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 'tt_systemfunction', + }, + { + key: 'a72rj5frog6', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'tt_systemfunction', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_systemfunction', + targetKey: 'id', + }, + { + key: 'hwnw83843rg', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 'tt_systemfunction', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 'tt_systemfunction', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'vxpkpx8kb8q', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_systemfunction', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'pzbwspr7swn', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_systemfunction', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'subtzujhtsk', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_systemfunction', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'moktw0q8vie', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_systemfunction', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'cr5cve6dqvl', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_systemfunction', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'b6ihtvu2dj7', + name: 'code', + type: 'string', + interface: 'input', + collectionName: 'tt_systemfunction', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '功能编号' }, + unique: false, + }, + { + key: 'i6legesuvds', + name: 'name', + type: 'string', + interface: 'input', + collectionName: 'tt_systemfunction', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '功能名称' }, + }, + ], + category: [ + { + id: 7, + createdAt: '2023-04-25T13:44:32.270Z', + updatedAt: '2023-04-25T13:44:32.270Z', + name: '测试管理', + color: 'default', + collectionCategory: { + createdAt: '2023-04-25T13:44:40.819Z', + updatedAt: '2023-04-25T13:44:40.819Z', + collectionName: 'tt_systemfunction', + categoryId: 7, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + tree: 'adjacencyList', + }, + { + key: 'xfuezkhjhqz', + name: 'tt_testcase', + title: '测试用例', + inherit: false, + hidden: false, + fields: [ + { + key: 'qt6f7fuyks5', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_testcase', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'pg30ebqf7xm', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_testcase', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'enfqp0h3v1j', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_testcase', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '2yawnou1gud', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_testcase', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'hpfo33vgbhp', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_testcase', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'rqufb8u1glc', + name: 'module', + type: 'string', + interface: 'select', + collectionName: 'tt_testcase', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'A1', label: '数据表管理' }, + { value: 'B1', label: '表格区块' }, + { value: 'B2', label: '表单区块' }, + { value: 'B3', label: '详情区块' }, + { value: 'B4', label: '日历' }, + { value: 'B5', label: '看板' }, + { value: 'B6', label: '图表' }, + { value: 'B7', label: '筛选表单' }, + { value: 'B8', label: '筛选表格' }, + { value: 'B9', label: '折叠面板' }, + { value: 'C1', label: '角色权限' }, + { value: 'D1', label: '工作流' }, + ], + type: 'string', + 'x-component': 'Select', + title: '模块', + }, + }, + { + key: 'zeu8arbhtdc', + name: 'testcase_codepath', + type: 'string', + interface: 'input', + collectionName: 'tt_testcase', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '测试用例代码路径' }, + }, + { + key: 'ygq9eikzxe6', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_testcase', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'w3311bzzqnw', + name: 'preconditions', + type: 'text', + interface: 'markdown', + collectionName: 'tt_testcase', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '前置条件' }, + }, + { + key: 'h406g8ea0h0', + name: 'operationprocess', + type: 'text', + interface: 'markdown', + collectionName: 'tt_testcase', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '操作流程' }, + }, + { + key: 'nkg6j7l0tdn', + name: 'expectedresults', + type: 'text', + interface: 'markdown', + collectionName: 'tt_testcase', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '预期结果' }, + }, + { + key: 'w6d9a4eme32', + name: 'title', + type: 'string', + interface: 'input', + collectionName: 'tt_testcase', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '用例标题' }, + }, + ], + category: [ + { + id: 7, + createdAt: '2023-04-25T13:44:32.270Z', + updatedAt: '2023-04-25T13:44:32.270Z', + name: '测试管理', + color: 'default', + collectionCategory: { + createdAt: '2023-04-25T13:44:47.469Z', + updatedAt: '2023-04-25T13:44:47.469Z', + collectionName: 'tt_testcase', + categoryId: 7, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'g5ytst0cqcy', + name: 'tt_testcaselog', + title: '测试日志', + inherit: false, + hidden: false, + fields: [ + { + key: 'mbm9da0nz89', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'zfxojqvtkak', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'u4koz84aupj', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'bq56imfrds4', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'dxbgs7wr54w', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'nvuyvysd8ba', + name: 'module', + type: 'string', + interface: 'select', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'A1', label: '数据表管理' }, + { value: 'B1', label: '表格区块' }, + { value: 'B2', label: '表单区块' }, + { value: 'B3', label: '详情区块' }, + { value: 'B4', label: '日历' }, + { value: 'B5', label: '看板' }, + { value: 'B6', label: '图表' }, + { value: 'B7', label: '筛选表单' }, + { value: 'B8', label: '筛选表格' }, + { value: 'B9', label: '折叠面板' }, + { value: 'C1', label: '角色权限' }, + { value: 'D1', label: '工作流' }, + ], + type: 'string', + 'x-component': 'Select', + title: '模块', + }, + }, + { + key: 'g7l6fs85t9k', + name: 'testcase_codepath', + type: 'string', + interface: 'input', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '测试用例代码路径' }, + }, + { + key: 'phd63uzreoq', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + }, + { + key: 'zvmce8pb71o', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + }, + { + key: 'ps67womjjbx', + name: 'status', + type: 'string', + interface: 'select', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '未执行' }, + { value: '2', label: '通过' }, + { value: '3', label: '不通过' }, + { value: '4', label: '不执行' }, + ], + type: 'string', + 'x-component': 'Select', + title: '状态', + }, + }, + { + key: 'faiantr1pyx', + name: 'database', + type: 'string', + interface: 'select', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'sqlite', label: 'sqlite' }, + { value: 'postgresql', label: 'postgresql' }, + { value: 'mysql', label: 'mysql' }, + ], + type: 'string', + 'x-component': 'Select', + title: '数据库', + }, + }, + { + key: '0m11oryjtjg', + name: 'databaseversion', + type: 'string', + interface: 'input', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '数据库版本' }, + }, + { + key: 'ijrc2v49q6j', + name: 'browser', + type: 'string', + interface: 'select', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'chrome', label: 'chrome' }, + { value: 'foxfire', label: 'foxfire' }, + { value: 'safari', label: 'safari' }, + ], + type: 'string', + 'x-component': 'Select', + title: '浏览器', + }, + }, + { + key: 'e572buo7asv', + name: 'browserversion', + type: 'string', + interface: 'input', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '浏览器版本' }, + }, + { + key: 'ufo40ugedtw', + name: 'url', + type: 'text', + interface: 'markdown', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '测试url' }, + }, + { + key: 'rl6scr6984v', + name: 'title', + type: 'string', + interface: 'input', + collectionName: 'tt_testcaselog', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '用例标题' }, + }, + ], + category: [ + { + id: 7, + createdAt: '2023-04-25T13:44:32.270Z', + updatedAt: '2023-04-25T13:44:32.270Z', + name: '测试管理', + color: 'default', + collectionCategory: { + createdAt: '2023-04-25T13:44:54.591Z', + updatedAt: '2023-04-25T13:44:54.591Z', + collectionName: 'tt_testcaselog', + categoryId: 7, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: 'lmo6cm3f7c2', + name: 'tt_testdata', + title: '测试数据', + inherit: false, + hidden: false, + fields: [ + { + key: '6ei9g6ff9k3', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'tt_testdata', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 's69c3jdimyu', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'tt_testdata', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'zcn36suospp', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'tt_testdata', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '7qu4es2bd2j', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'tt_testdata', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'cfrmo1e0skg', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'tt_testdata', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 7, + createdAt: '2023-04-25T13:44:32.270Z', + updatedAt: '2023-04-25T13:44:32.270Z', + name: '测试管理', + color: 'default', + collectionCategory: { + createdAt: '2023-04-25T13:45:01.432Z', + updatedAt: '2023-04-25T13:45:01.432Z', + collectionName: 'tt_testdata', + categoryId: 7, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + }, + { + key: '4mrskydekt8', + name: 'A', + title: 'A', + inherit: false, + hidden: false, + fields: [ + { + key: 'hhagqx6tfse', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'A', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'xuas8kklwyn', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'A', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'x74stx6n51v', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'A', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'gan6d7t3gxy', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'A', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'n85nac4xfd4', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'A', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '8pworpes14e', + name: 'ab', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'A', + parentKey: null, + reverseKey: null, + foreignKey: 'aid', + otherKey: 'bid', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: 'ab多对多', + }, + through: 'AB', + target: 'B', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-05-06T03:18:57.630Z', + updatedAt: '2023-05-06T03:18:57.630Z', + collectionName: 'A', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '4yg6a0e9kte', + name: 'B', + title: 'B', + inherit: false, + hidden: false, + fields: [ + { + key: '7artungrjd6', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'B', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'paz5xciap8q', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'B', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'mwlpytvtn8p', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'B', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'a25h0zh1gxb', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'B', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'mtzr3jrq1kz', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'B', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-05-06T03:19:39.312Z', + updatedAt: '2023-05-06T03:19:39.312Z', + collectionName: 'B', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'qkp8032k4dn', + name: 'B1', + title: 'B1', + inherit: false, + hidden: false, + fields: [ + { + key: 'l066f06advt', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'B1', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'k5z8e8e92zm', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'B1', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'o29s9jnarst', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'B1', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'r6v4binjojn', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'B1', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '9h40s31rbqp', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'B1', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-05-06T03:19:49.557Z', + updatedAt: '2023-05-06T03:19:49.557Z', + collectionName: 'B1', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + inherits: ['B'], + }, + { + key: 'nc0ergywq2w', + name: 'B11', + title: 'B11', + inherit: false, + hidden: false, + fields: [ + { + key: 'q7otrhw1osh', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'B11', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'llfq4v93sdu', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'B11', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'r2favzyh9k4', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'B11', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '9paj69w8gv4', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'B11', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'ydpmbi83r25', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'B11', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-05-06T03:20:01.961Z', + updatedAt: '2023-05-06T03:20:01.961Z', + collectionName: 'B11', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + inherits: ['B1'], + }, + { + key: '537qlxsrmv5', + name: 'AB', + title: 'AB', + inherit: false, + hidden: false, + fields: [ + { + key: 'l9f4je9i9se', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'AB', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'fy68nt98qtu', + name: 'aid', + type: 'bigInt', + interface: 'integer', + collectionName: 'AB', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'aid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '010y7cgqmjd', + name: 'bid', + type: 'bigInt', + interface: 'integer', + collectionName: 'AB', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'bid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '35cwf63mo3n', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'AB', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'tqs5h5fj5ry', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'AB', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'uucjx06jc7o', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'AB', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'evkmmw3559i', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'AB', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-05-06T03:20:27.483Z', + updatedAt: '2023-05-06T03:20:27.483Z', + collectionName: 'AB', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'sqycw0djcr8', + name: 't_6fb7fxxa3dl', + title: 'A', + inherit: false, + hidden: false, + fields: [ + { + key: '6bfyjuyz1gg', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 't_6fb7fxxa3dl', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'm7c4csulvn8', + name: 'f_p46afinvttl', + type: 'bigInt', + interface: 'integer', + collectionName: 't_6fb7fxxa3dl', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_p46afinvttl', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'aqsw9l2ulcb', + name: 'f_smteebqye12', + type: 'bigInt', + interface: 'integer', + collectionName: 't_6fb7fxxa3dl', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_smteebqye12', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '0f0p33sr92i', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 't_6fb7fxxa3dl', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'qaaunzd5xmy', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_6fb7fxxa3dl', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'o7yyfsnlmqk', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 't_6fb7fxxa3dl', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'jyrbwgu7xib', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 't_6fb7fxxa3dl', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'bgjjipdkimi', + name: 'f_ihl6aancmky', + type: 'string', + interface: 'input', + collectionName: 't_6fb7fxxa3dl', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: 'A-F1' }, + }, + { + key: 'qcie9uk4w51', + name: 'f_p2k3j6tgb4p', + type: 'string', + interface: 'input', + collectionName: 't_6fb7fxxa3dl', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: 'A-F2' }, + }, + { + key: 'gagjov0og7d', + name: 'f_xmhyeqc7la0', + type: 'hasOne', + interface: 'oho', + collectionName: 't_6fb7fxxa3dl', + parentKey: null, + reverseKey: 'dhn1b1eqn3t', + foreignKey: 'f_jgandav0pck', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: 'OHO-B', + }, + target: 't_z18wd283gv8', + sourceKey: 'id', + }, + { + key: '7v6opuf6g8l', + name: 'f_63drkwuvhrl', + type: 'hasMany', + interface: 'o2m', + collectionName: 't_6fb7fxxa3dl', + parentKey: null, + reverseKey: null, + foreignKey: 'f_lnunm5u5whf', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: 'O2M-C', + }, + target: 't_5oby9wk4bm5', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '2yw5yhle7vn', + name: 'f_jflwlg1q309', + type: 'belongsTo', + interface: 'm2o', + collectionName: 't_6fb7fxxa3dl', + parentKey: null, + reverseKey: null, + foreignKey: 'f_p46afinvttl', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: 'M2O_D', + }, + target: 't_dzvybf9lfg8', + targetKey: 'id', + }, + { + key: 'rajwxhoexmi', + name: 'f_q66vdwkiuws', + type: 'belongsTo', + interface: 'obo', + collectionName: 't_6fb7fxxa3dl', + parentKey: null, + reverseKey: null, + foreignKey: 'f_smteebqye12', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: 'One to one (belongs to)-files', + }, + target: 't_j7qydzmn8nh', + targetKey: 'id', + }, + { + key: '3i01mnei083', + name: 'f_4q6bhnqeayo', + type: 'string', + interface: 'select', + collectionName: 't_6fb7fxxa3dl', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '7hmql58wiax', label: 'a', color: 'red' }, + { value: 'z20ys8vpz2g', label: 'b', color: 'magenta' }, + { value: 'obfbnbl4h1n', label: 'c', color: 'volcano' }, + { value: 'w2sso6tn2z8', label: 'd', color: 'orange' }, + ], + type: 'string', + 'x-component': 'Select', + title: 'Single select', + }, + }, + ], + category: [ + { + id: 9, + createdAt: '2023-05-09T01:12:30.191Z', + updatedAt: '2023-05-09T01:12:30.191Z', + name: 'test', + color: 'default', + collectionCategory: { + createdAt: '2023-05-09T01:12:38.785Z', + updatedAt: '2023-05-09T01:12:38.785Z', + collectionName: 't_6fb7fxxa3dl', + categoryId: 9, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'l5vlpnqs0gl', + name: 't_z18wd283gv8', + title: 'B', + inherit: false, + hidden: false, + fields: [ + { + key: 't94owz6zy5x', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 't_z18wd283gv8', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'yy3clyhwldm', + name: 'f_jgandav0pck', + type: 'bigInt', + interface: 'integer', + collectionName: 't_z18wd283gv8', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_jgandav0pck', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '23gqmyjfcvn', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 't_z18wd283gv8', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'xyosru2dg27', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_z18wd283gv8', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '2d6h1q1aoh5', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 't_z18wd283gv8', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '4i60z84a5wu', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 't_z18wd283gv8', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '7uxur5jgdef', + name: 'f_8fq6thziews', + type: 'string', + interface: 'input', + collectionName: 't_z18wd283gv8', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: 'B-F1' }, + }, + { + key: '9rq2ciu1u8e', + name: 'f_ukgzrtd6sni', + type: 'string', + interface: 'input', + collectionName: 't_z18wd283gv8', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: 'B-F2' }, + }, + { + key: 'dhn1b1eqn3t', + name: 'f_kylqdqjn7ho', + type: 'belongsTo', + interface: 'obo', + collectionName: 't_z18wd283gv8', + parentKey: null, + reverseKey: 'gagjov0og7d', + uiSchema: { + title: 'A', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 't_6fb7fxxa3dl', + onDelete: 'SET NULL', + targetKey: 'id', + foreignKey: 'f_jgandav0pck', + }, + ], + category: [ + { + id: 9, + createdAt: '2023-05-09T01:12:30.191Z', + updatedAt: '2023-05-09T01:12:30.191Z', + name: 'test', + color: 'default', + collectionCategory: { + createdAt: '2023-05-09T01:12:56.838Z', + updatedAt: '2023-05-09T01:12:56.838Z', + collectionName: 't_z18wd283gv8', + categoryId: 9, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '6evrmsuqxop', + name: 't_5oby9wk4bm5', + title: 'C', + inherit: false, + hidden: false, + fields: [ + { + key: 'oo5at5xlysp', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 't_5oby9wk4bm5', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 's896t8boblu', + name: 'f_lnunm5u5whf', + type: 'bigInt', + interface: 'integer', + collectionName: 't_5oby9wk4bm5', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_lnunm5u5whf', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '2drmmip9wm8', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 't_5oby9wk4bm5', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '0c6l5nknqd6', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_5oby9wk4bm5', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'kw6i9s63ggz', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 't_5oby9wk4bm5', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'uezisti7rv4', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 't_5oby9wk4bm5', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'q1797g6o32f', + name: 'f_xuyoxw39hz5', + type: 'string', + interface: 'input', + collectionName: 't_5oby9wk4bm5', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: 'C-F2' }, + }, + { + key: '4ak6gopry6k', + name: 'f_h009d270nem', + type: 'string', + interface: 'input', + collectionName: 't_5oby9wk4bm5', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: 'C-F1' }, + }, + ], + category: [ + { + id: 9, + createdAt: '2023-05-09T01:12:30.191Z', + updatedAt: '2023-05-09T01:12:30.191Z', + name: 'test', + color: 'default', + collectionCategory: { + createdAt: '2023-05-09T01:13:15.147Z', + updatedAt: '2023-05-09T01:13:15.147Z', + collectionName: 't_5oby9wk4bm5', + categoryId: 9, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'b07j3ue6igp', + name: 't_dzvybf9lfg8', + title: 'D', + inherit: false, + hidden: false, + fields: [ + { + key: 'ygkzcpcgqfs', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 't_dzvybf9lfg8', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '8wjbkaax0gl', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 't_dzvybf9lfg8', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '664trdl7sf4', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_dzvybf9lfg8', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '90f1tscyqo1', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 't_dzvybf9lfg8', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'fe53xcalyki', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 't_dzvybf9lfg8', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'tifs20rsl7e', + name: 'f_tzgmc1gaxcp', + type: 'string', + interface: 'input', + collectionName: 't_dzvybf9lfg8', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: 'D-F1' }, + }, + { + key: 'zr8tu68m7ev', + name: 'f_6srmfvya8hg', + type: 'string', + interface: 'input', + collectionName: 't_dzvybf9lfg8', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: 'D-F2' }, + }, + ], + category: [ + { + id: 9, + createdAt: '2023-05-09T01:12:30.191Z', + updatedAt: '2023-05-09T01:12:30.191Z', + name: 'test', + color: 'default', + collectionCategory: { + createdAt: '2023-05-09T01:13:32.505Z', + updatedAt: '2023-05-09T01:13:32.505Z', + collectionName: 't_dzvybf9lfg8', + categoryId: 9, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'rqi8lvaoqk3', + name: 't_pxngpsdsp0m', + title: 'trees', + inherit: false, + hidden: false, + fields: [ + { + key: 'vtgadd04toy', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 't_pxngpsdsp0m', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 't_pxngpsdsp0m', + }, + { + key: 'd4g5u13h4x8', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 't_pxngpsdsp0m', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 't_pxngpsdsp0m', + targetKey: 'id', + }, + { + key: 'ec1h6s4fw68', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 't_pxngpsdsp0m', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 't_pxngpsdsp0m', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'raifes8g6lk', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 't_pxngpsdsp0m', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'hfzqk7rmq3s', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 't_pxngpsdsp0m', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'c2llsvbc82k', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_pxngpsdsp0m', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '7btpxgeygb5', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 't_pxngpsdsp0m', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'wt1vuuuu3xx', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 't_pxngpsdsp0m', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: '3m3cipziz06', + name: 't_j7qydzmn8nh', + title: 'files', + inherit: false, + hidden: false, + fields: [ + { + key: 'l8g5rwhmnrv', + name: 'title', + type: 'string', + interface: 'input', + collectionName: 't_j7qydzmn8nh', + parentKey: null, + reverseKey: null, + deletable: false, + uiSchema: { type: 'string', title: '{{t("Title")}}', 'x-component': 'Input' }, + }, + { + key: 'zvyid1yas9d', + name: 'filename', + type: 'string', + interface: 'input', + collectionName: 't_j7qydzmn8nh', + parentKey: null, + reverseKey: null, + deletable: false, + uiSchema: { + type: 'string', + title: '{{t("File name", { ns: "file-manager" })}}', + 'x-component': 'Input', + 'x-read-pretty': true, + }, + }, + { + key: 'nld9ui2wcow', + name: 'extname', + type: 'string', + interface: 'input', + collectionName: 't_j7qydzmn8nh', + parentKey: null, + reverseKey: null, + deletable: false, + uiSchema: { + type: 'string', + title: '{{t("Extension name", { ns: "file-manager" })}}', + 'x-component': 'Input', + 'x-read-pretty': true, + }, + }, + { + key: 'y1b40dsxvy9', + name: 'size', + type: 'integer', + interface: 'integer', + collectionName: 't_j7qydzmn8nh', + parentKey: null, + reverseKey: null, + deletable: false, + uiSchema: { + type: 'number', + title: '{{t("Size", { ns: "file-manager" })}}', + 'x-component': 'InputNumber', + 'x-read-pretty': true, + 'x-component-props': { stringMode: true, step: '0' }, + }, + }, + { + key: 'gs7ltdhrcvg', + name: 'mimetype', + type: 'string', + interface: 'input', + collectionName: 't_j7qydzmn8nh', + parentKey: null, + reverseKey: null, + deletable: false, + uiSchema: { + type: 'string', + title: '{{t("Mime type", { ns: "file-manager" })}}', + 'x-component': 'Input', + 'x-read-pretty': true, + }, + }, + { + key: '6v2s8vn3b8i', + name: 'path', + type: 'string', + interface: 'input', + collectionName: 't_j7qydzmn8nh', + parentKey: null, + reverseKey: null, + deletable: false, + uiSchema: { type: 'string', title: '{{t("Path")}}', 'x-component': 'Input', 'x-read-pretty': true }, + }, + { + key: 'lai8hnejtnj', + name: 'url', + type: 'string', + interface: 'input', + collectionName: 't_j7qydzmn8nh', + parentKey: null, + reverseKey: null, + deletable: false, + uiSchema: { type: 'string', title: '{{t("URL")}}', 'x-component': 'Input.URL', 'x-read-pretty': true }, + }, + { + key: 'aocwfx0ma7p', + name: 'preview', + type: 'string', + interface: 'url', + collectionName: 't_j7qydzmn8nh', + parentKey: null, + reverseKey: null, + field: 'url', + deletable: false, + uiSchema: { type: 'string', title: '{{t("Preview")}}', 'x-component': 'Preview', 'x-read-pretty': true }, + }, + { + key: 'f8774tz3s0u', + name: 'storage', + type: 'belongsTo', + interface: null, + collectionName: 't_j7qydzmn8nh', + parentKey: null, + reverseKey: null, + comment: '存储引擎', + target: 'storages', + foreignKey: 'storageId', + deletable: false, + targetKey: 'id', + }, + { + key: 'u6d6xseozys', + name: 'meta', + type: 'jsonb', + interface: null, + collectionName: 't_j7qydzmn8nh', + parentKey: null, + reverseKey: null, + deletable: false, + defaultValue: {}, + }, + { + key: 'nfmy4ej1ay1', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 't_j7qydzmn8nh', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'dzpchoxm4l8', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 't_j7qydzmn8nh', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'd8b642xlr8m', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_j7qydzmn8nh', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'oo6stq8v7ez', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 't_j7qydzmn8nh', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'kqodm4dd0ww', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 't_j7qydzmn8nh', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'AssociationField', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [], + logging: true, + template: 'file', + view: false, + createdBy: true, + updatedBy: true, + storage: 'local', + }, + { + key: 'dklp4l9pnh8', + name: 'vv_mnt_org', + title: '组织视图', + inherit: false, + hidden: false, + fields: [ + { + key: '6px8cqtw0h1', + name: 'created_at', + type: 'date', + interface: 'createdAt', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + field: 'created_at', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + source: 'tt_mnt_org.createdAt', + }, + { + key: 'dphf2h601qs', + name: 'updated_at', + type: 'date', + interface: 'updatedAt', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + field: 'updated_at', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + source: 'tt_mnt_org.updatedAt', + }, + { + key: '7l2npo1zex0', + name: 'sort', + type: 'bigInt', + interface: null, + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + }, + { + key: 'mkqk8wcx0lx', + name: 'created_by_id', + type: 'bigInt', + interface: null, + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + }, + { + key: 'e1v7cozx0q4', + name: 'updated_by_id', + type: 'bigInt', + interface: null, + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + }, + { + key: '27eokt923ox', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + source: 'tt_mnt_org.id', + }, + { + key: '6cyn2xtw2vx', + name: 'orgcode', + type: 'sequence', + interface: 'sequence', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + patterns: [ + { type: 'string', options: { value: '区域编码' } }, + { type: 'integer', options: { digits: 9, start: 1, key: 57455 } }, + ], + uiSchema: { type: 'string', 'x-component': 'Input', 'x-component-props': {}, title: '公司编号(自动编码)' }, + inputable: false, + source: 'tt_mnt_org.orgcode', + }, + { + key: '3f7k4r01r5n', + name: 'orgname', + type: 'string', + interface: 'input', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: '公司名称(单行文本)' }, + source: 'tt_mnt_org.orgname', + }, + { + key: '9riydqg60kg', + name: 'address', + type: 'text', + interface: 'textarea', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input.TextArea', title: '公司地址(多行文本)' }, + source: 'tt_mnt_org.address', + }, + { + key: 'xcsolbcrxp3', + name: 'phone', + type: 'string', + interface: 'phone', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { type: 'tel' }, + title: '负责人电话(手机号码)', + }, + source: 'tt_mnt_org.phone', + }, + { + key: 'yons97tb7zs', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', 'x-validator': 'email', title: '电子邮箱(电子邮箱)' }, + source: 'tt_mnt_org.email', + }, + { + key: 'y2smubjpxu5', + name: 'staffnum', + type: 'bigInt', + interface: 'integer', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '员工人数(整数)', + }, + source: 'tt_mnt_org.staffnum', + }, + { + key: '7k0talzje72', + name: 'insurednum', + type: 'bigInt', + interface: 'integer', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '参保人数(整数)', + }, + source: 'tt_mnt_org.insurednum', + }, + { + key: 'ipzizlum28w', + name: 'regcapital', + type: 'double', + interface: 'number', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '注册资本(数字)', + }, + source: 'tt_mnt_org.regcapital', + }, + { + key: 'niu3hjgdig2', + name: 'paidcapital', + type: 'double', + interface: 'number', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.0001', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '实缴资本(数字)', + }, + source: 'tt_mnt_org.paidcapital', + }, + { + key: '2hwllfaub4n', + name: 'insuranceratio', + type: 'float', + interface: 'percent', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { step: '0.01', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'Percent', + title: '参保占比(百分比)', + }, + source: 'tt_mnt_org.insuranceratio', + }, + { + key: 'jxnfwmgdxgp', + name: 'isenable', + type: 'boolean', + interface: 'checkbox', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'boolean', 'x-component': 'Checkbox', title: '是否启用(勾选)' }, + source: 'tt_mnt_org.isenable', + }, + { + key: 'slinazz3qv8', + name: 'status_singleselect', + type: 'string', + interface: 'select', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Select', + title: '公司状态(下拉单选)', + }, + source: 'tt_mnt_org.status_singleselect', + }, + { + key: 'uddfkh1num0', + name: 'range_multipleselect', + type: 'array', + interface: 'multipleSelect', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '经营范围(下拉多选)', + }, + defaultValue: [], + source: 'tt_mnt_org.range_multipleselect', + }, + { + key: 'bx9qh1dk43g', + name: 'status_radio', + type: 'string', + interface: 'radioGroup', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: '1', label: '存续' }, + { value: '2', label: '在业' }, + { value: '3', label: '吊销' }, + { value: '4', label: '注销' }, + { value: '5', label: '迁入' }, + { value: '6', label: '迁出' }, + { value: '7', label: '停业' }, + { value: '8', label: '清算' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '公司状态(单选)', + }, + source: 'tt_mnt_org.status_radio', + }, + { + key: 'idqa80kjk5w', + name: 'range_check', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + enum: [ + { value: 'F3134', label: '软件销售' }, + { value: 'I3006', label: '软件开发' }, + { value: 'I3007', label: '人工智能基础软件开发' }, + { value: 'I3008', label: '人工智能应用软件开发' }, + { value: 'I3010', label: '软件外包服务' }, + { value: 'I3011', label: '网络与信息安全软件开发' }, + { value: 'I3012', label: '人工智能理论与算法软件开发' }, + { value: 'I3014', label: '数字文化创意软件开发' }, + { value: 'I3027', label: '信息技术咨询服务' }, + { value: 'I3032', label: '数据处理服务' }, + { value: 'I3034', label: '计算机系统服务' }, + { value: 'L2032', label: '信息咨询服务(不含许可类信息咨询服务)' }, + { value: 'L2095', label: '企业管理咨询' }, + { value: 'M2070', label: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广' }, + { value: 'O3010', label: '咨询策划服务' }, + { value: 'P1029', label: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '经营范围(复选)', + }, + defaultValue: [], + source: 'tt_mnt_org.range_check', + }, + { + key: 'y4bq6qwmkic', + name: 'range_markdown', + type: 'text', + interface: 'markdown', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Markdown', title: '经营范围(Markdown)' }, + source: 'tt_mnt_org.range_markdown', + }, + { + key: 'nwnbnr21muz', + name: 'range_richtext', + type: 'text', + interface: 'richText', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'RichText', title: '经营范围(富文本)' }, + source: 'tt_mnt_org.range_richtext', + }, + { + key: '6kzm538xtpi', + name: 'establishdate', + type: 'date', + interface: 'datetime', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { dateFormat: 'YYYY-MM-DD', gmt: false, showTime: false }, + type: 'string', + 'x-component': 'DatePicker', + title: '成立日期(日期)', + }, + source: 'tt_mnt_org.establishdate', + }, + { + key: '85hs6kbvo2m', + name: 'testcasenum', + type: 'bigInt', + interface: 'integer', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试用例编号', + }, + source: 'tt_mnt_org.testcasenum', + }, + { + key: 'mvi4qwygebv', + name: 'testdatanum', + type: 'bigInt', + interface: 'integer', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'number', + 'x-component': 'InputNumber', + 'x-component-props': { stringMode: true, step: '0' }, + 'x-validator': 'integer', + title: '测试数据编号', + }, + source: 'tt_mnt_org.testdatanum', + }, + { + key: '7ftrk917rab', + name: 'range_json', + type: 'json', + interface: 'json', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + defaultValue: null, + uiSchema: { + type: 'object', + 'x-component': 'Input.JSON', + 'x-component-props': { autoSize: { minRows: 5 } }, + default: null, + title: '经营范围(JSON)', + }, + source: 'tt_mnt_org.range_json', + }, + { + key: '7t1g6e9n0sj', + name: 'address_point', + type: 'point', + interface: 'point', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(点)', + }, + source: 'tt_mnt_org.address_point', + }, + { + key: 'tsa9fo2uk5k', + name: 'address_line', + type: 'lineString', + interface: 'lineString', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(线)', + }, + source: 'tt_mnt_org.address_line', + }, + { + key: 'txjhzm1ttug', + name: 'address_circle', + type: 'circle', + interface: 'circle', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(圆)', + }, + source: 'tt_mnt_org.address_circle', + }, + { + key: 'apqm5rxq24q', + name: 'address_polygon', + type: 'polygon', + interface: 'polygon', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { + 'x-component-props': { mapType: 'amap' }, + type: 'void', + 'x-component': 'Map', + 'x-component-designer': 'Map.Designer', + title: '公司地址坐标(多边形)', + }, + source: 'tt_mnt_org.address_polygon', + }, + { + key: 'uaxyd1u8suz', + name: 'url', + type: 'string', + interface: 'url', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '官网地址(URL)', 'x-component': 'Input.URL' }, + source: 'tt_mnt_org.url', + }, + { + key: 'wp0jh615ghw', + name: 'ownerid', + type: 'bigInt', + interface: 'integer', + collectionName: 'vv_mnt_org', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'ownerid', 'x-component': 'InputNumber', 'x-read-pretty': true }, + source: 'tt_mnt_org.ownerid', + }, + ], + category: [], + logging: true, + schema: 'public', + viewName: 'vv_mnt_org', + sources: ['tt_mnt_org'], + preview: { + '0': { + created_at: '2023-05-22T02:10:55.000Z', + updated_at: '2023-07-19T22:44:41.000Z', + id: 4, + orgcode: '430004', + orgname: '宇宁制药有限责任公司', + address: '328 Jingtian East 1st St, Futian District', + phone: '755-3659-2323', + email: 'cmsi92@icloud.com', + staffnum: 132, + insurednum: 110, + regcapital: 175.7828, + paidcapital: 290.7203, + insuranceratio: 45.74, + isenable: true, + status_singleselect: '8', + range_multipleselect: ['I3006', 'I3007', 'I3008', 'I3010', 'I3011', 'I3012', 'I3027', 'M2070', '99999'], + status_radio: null, + range_check: ['F3134', 'I3006', 'I3007', 'I3012', 'I3014', 'I3032', 'L2095', 'P1029', '99999'], + range_markdown: + '软件销售, 人工智能基础软件开发, 软件外包服务, 数字文化创意软件开发, 计算机系统服务, 技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广, 业务培训(不含教育培训、职业技能培训等需取得许可的培训), ', + range_richtext: + '软件外包服务, 人工智能理论与算法软件开发, 信息技术咨询服务, 计算机系统服务, 企业管理咨询, 咨询策划服务, ', + establishdate: '2021-01-08T16:46:38.000Z', + testcasenum: null, + testdatanum: null, + range_json: { + '99999': '其他', + F3134: '软件销售', + I3011: '网络与信息安全软件开发', + I3014: '数字文化创意软件开发', + I3027: '信息技术咨询服务', + I3032: '数据处理服务', + I3034: '计算机系统服务', + L2095: '企业管理咨询', + M2070: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广', + O3010: '咨询策划服务', + P1029: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)', + }, + url: 'http://www.czhennan4.biz/ToolsHomeDecoration', + ownerid: 1094, + }, + '1': { + created_at: '2023-03-25T22:18:26.000Z', + updated_at: '2023-06-27T06:57:51.000Z', + id: 5, + orgcode: '630005', + orgname: "Grant's Network Systems LLC", + address: '成华区双庆路397号', + phone: '149-8059-2712', + email: 'turneal@gmail.com', + staffnum: 193, + insurednum: 3, + regcapital: 116.4198, + paidcapital: 267.387, + insuranceratio: 62.02, + isenable: true, + status_singleselect: '3', + range_multipleselect: [ + 'F3134', + 'I3006', + 'I3007', + 'I3008', + 'I3010', + 'I3012', + 'I3014', + 'I3032', + 'I3034', + 'L2032', + '99999', + ], + status_radio: '1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8', + range_check: ['I3006', 'I3027', 'L2095', 'P1029', '99999'], + range_markdown: + '人工智能应用软件开发, 人工智能理论与算法软件开发, 数字文化创意软件开发, 信息技术咨询服务, 计算机系统服务, 咨询策划服务, ', + range_richtext: + '软件销售, 软件外包服务, 人工智能理论与算法软件开发, 技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广, 咨询策划服务, ', + establishdate: '2023-09-09T15:50:04.000Z', + testcasenum: null, + testdatanum: null, + range_json: { + '99999': '其他', + I3006: '软件开发', + I3008: '人工智能应用软件开发', + I3010: '软件外包服务', + I3027: '信息技术咨询服务', + L2032: '信息咨询服务(不含许可类信息咨询服务)', + L2095: '企业管理咨询', + O3010: '咨询策划服务', + }, + url: 'http://auth.fujr.jp/Food', + ownerid: 2726, + }, + '2': { + created_at: '2023-04-01T16:13:17.000Z', + updated_at: '2023-05-22T09:24:17.000Z', + id: 6, + orgcode: '630006', + orgname: 'Jacob Telecommunication LLC', + address: '东泰五街968号', + phone: '769-163-0302', + email: 'ikiw@gmail.com', + staffnum: 129, + insurednum: 198, + regcapital: 28.8318, + paidcapital: 17.9883, + insuranceratio: 87.39, + isenable: true, + status_singleselect: '1', + range_multipleselect: [ + 'I3006', + 'I3007', + 'I3008', + 'I3012', + 'I3014', + 'I3032', + 'L2032', + 'O3010', + 'P1029', + '99999', + ], + status_radio: '1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8', + range_check: ['F3134', 'I3006', 'I3010', 'I3011', 'I3027', 'I3032', 'L2095', 'M2070', '99999'], + range_markdown: + '软件销售, 软件开发, 软件外包服务, 人工智能理论与算法软件开发, 数字文化创意软件开发, 数据处理服务, 计算机系统服务, 信息咨询服务(不含许可类信息咨询服务), 企业管理咨询, 咨询策划服务, ', + range_richtext: + '软件销售, 软件开发, 人工智能应用软件开发, 软件外包服务, 网络与信息安全软件开发, 人工智能理论与算法软件开发, 数字文化创意软件开发, 信息技术咨询服务, 信息咨询服务(不含许可类信息咨询服务), 技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广, ', + establishdate: '2023-04-11T23:07:14.000Z', + testcasenum: null, + testdatanum: null, + range_json: { + '99999': '其他', + F3134: '软件销售', + I3007: '人工智能基础软件开发', + I3008: '人工智能应用软件开发', + I3014: '数字文化创意软件开发', + L2032: '信息咨询服务(不含许可类信息咨询服务)', + L2095: '企业管理咨询', + O3010: '咨询策划服务', + P1029: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)', + }, + url: 'http://www.wmsiu.cn/ClothingShoesandJewelry', + ownerid: null, + }, + '3': { + created_at: '2023-04-02T04:03:53.000Z', + updated_at: '2023-06-14T12:56:19.000Z', + id: 59, + orgcode: '210059', + orgname: '陶記制药有限责任公司', + address: null, + phone: '179-0776-0684', + email: 'yuto426@gmail.com', + staffnum: 154, + insurednum: 183, + regcapital: null, + paidcapital: 78.4742, + insuranceratio: 51.93, + isenable: true, + status_singleselect: '1', + range_multipleselect: ['F3134', 'I3010', 'I3011', 'I3012', 'I3014', 'M2070', 'O3010', 'P1029', '99999'], + status_radio: '1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8', + range_check: ['F3134', 'I3006', 'I3007', 'I3010', 'I3027', 'I3032', 'I3034', 'L2095', 'M2070', '99999'], + range_markdown: + '软件外包服务, 网络与信息安全软件开发, 数字文化创意软件开发, 数据处理服务, 计算机系统服务, 信息咨询服务(不含许可类信息咨询服务), 企业管理咨询, ', + range_richtext: + '软件销售, 软件开发, 数字文化创意软件开发, 信息技术咨询服务, 数据处理服务, 计算机系统服务, 信息咨询服务(不含许可类信息咨询服务), ', + establishdate: '2023-01-31T01:55:31.000Z', + testcasenum: null, + testdatanum: null, + range_json: { + '99999': '其他', + I3006: '软件开发', + I3008: '人工智能应用软件开发', + I3027: '信息技术咨询服务', + I3034: '计算机系统服务', + L2095: '企业管理咨询', + P1029: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)', + }, + url: 'http://drive.pati.co.jp/ArtsHandicraftsSewing', + ownerid: 4496, + }, + '4': { + created_at: '2023-07-08T09:41:18.000Z', + updated_at: '2023-08-04T03:25:41.000Z', + id: 11, + orgcode: '230011', + orgname: 'Alexander Trading Inc.', + address: '21 4th Section Renmin South Road, Jinjiang District', + phone: '28-964-2526', + email: 'stewart324@gmail.com', + staffnum: 74, + insurednum: 119, + regcapital: 205.9118, + paidcapital: 252.7905, + insuranceratio: 32.57, + isenable: true, + status_singleselect: '4', + range_multipleselect: [ + 'F3134', + 'I3006', + 'I3010', + 'I3011', + 'I3014', + 'I3027', + 'I3032', + 'L2095', + 'M2070', + '99999', + ], + status_radio: '1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8', + range_check: [ + 'F3134', + 'I3006', + 'I3010', + 'I3011', + 'I3034', + 'L2032', + 'L2095', + 'M2070', + 'O3010', + 'P1029', + '99999', + ], + range_markdown: + '软件销售, 软件开发, 人工智能应用软件开发, 软件外包服务, 数字文化创意软件开发, 信息技术咨询服务, 计算机系统服务, 信息咨询服务(不含许可类信息咨询服务), 企业管理咨询, 技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广, ', + range_richtext: + '软件销售, 人工智能应用软件开发, 软件外包服务, 人工智能理论与算法软件开发, 计算机系统服务, 咨询策划服务, ', + establishdate: '2022-10-25T03:57:53.000Z', + testcasenum: null, + testdatanum: null, + range_json: { + '99999': '其他', + I3006: '软件开发', + I3007: '人工智能基础软件开发', + I3008: '人工智能应用软件开发', + I3010: '软件外包服务', + I3012: '人工智能理论与算法软件开发', + I3032: '数据处理服务', + I3034: '计算机系统服务', + M2070: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广', + O3010: '咨询策划服务', + P1029: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)', + }, + url: null, + ownerid: 119, + }, + '5': { + created_at: '2023-04-02T02:35:24.000Z', + updated_at: '2023-07-22T21:27:03.000Z', + id: 48, + orgcode: '530048', + orgname: "Long's LLC", + address: '成华区双庆路872号', + phone: '28-2897-5944', + email: 'koonwy@outlook.com', + staffnum: 22, + insurednum: 17, + regcapital: 81.2412, + paidcapital: 89.2826, + insuranceratio: 22.58, + isenable: true, + status_singleselect: '8', + range_multipleselect: ['I3008', 'I3011', 'I3012', 'I3034', 'L2032', '99999'], + status_radio: '1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8', + range_check: ['F3134', 'I3006', 'I3008', 'I3011', 'I3012', 'I3034', 'L2032', 'M2070', 'O3010', '99999'], + range_markdown: + '软件销售, 人工智能基础软件开发, 人工智能应用软件开发, 数字文化创意软件开发, 信息技术咨询服务, 数据处理服务, 信息咨询服务(不含许可类信息咨询服务), 技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广, ', + range_richtext: + '软件销售, 软件开发, 软件外包服务, 网络与信息安全软件开发, 数据处理服务, 计算机系统服务, 咨询策划服务, ', + establishdate: '2023-08-06T15:31:45.000Z', + testcasenum: null, + testdatanum: null, + range_json: { + '99999': '其他', + I3008: '人工智能应用软件开发', + I3011: '网络与信息安全软件开发', + I3027: '信息技术咨询服务', + I3032: '数据处理服务', + L2095: '企业管理咨询', + M2070: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广', + P1029: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)', + }, + url: 'https://auth.zj2017.org/Beauty', + ownerid: 1928, + }, + '6': { + created_at: '2023-07-11T07:34:49.000Z', + updated_at: '2023-06-09T20:51:17.000Z', + id: 25, + orgcode: '550025', + orgname: '赵記发展贸易有限责任公司', + address: '607 Sanlitun Road, Chaoyang District', + phone: '144-4751-3753', + email: null, + staffnum: 64, + insurednum: null, + regcapital: 78.8595, + paidcapital: 71.565, + insuranceratio: 58.15, + isenable: true, + status_singleselect: '7', + range_multipleselect: ['F3134', 'I3006', 'I3011', 'I3027', 'I3032', 'L2032', 'L2095', '99999'], + status_radio: '1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8', + range_check: ['I3008', 'I3027', 'I3034', 'L2032', 'O3010', 'P1029', '99999'], + range_markdown: + '软件销售, 人工智能应用软件开发, 软件外包服务, 人工智能理论与算法软件开发, 数据处理服务, 计算机系统服务, 企业管理咨询, 技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广, 咨询策划服务, 业务培训(不含教育培训、职业技能培训等需取得许可的培训), ', + range_richtext: + '软件开发, 人工智能基础软件开发, 人工智能应用软件开发, 软件外包服务, 人工智能理论与算法软件开发, 数字文化创意软件开发, 信息技术咨询服务, 计算机系统服务, 技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广, 业务培训(不含教育培训、职业技能培训等需取得许可的培训), ', + establishdate: null, + testcasenum: null, + testdatanum: null, + range_json: { + '99999': '其他', + F3134: '软件销售', + I3006: '软件开发', + I3007: '人工智能基础软件开发', + I3008: '人工智能应用软件开发', + I3011: '网络与信息安全软件开发', + I3014: '数字文化创意软件开发', + I3032: '数据处理服务', + L2032: '信息咨询服务(不含许可类信息咨询服务)', + M2070: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广', + }, + url: 'https://video.kakeungw.net/VideoGames', + ownerid: 2514, + }, + '7': { + created_at: '2023-06-30T09:34:24.000Z', + updated_at: '2023-05-07T04:48:07.000Z', + id: 26, + orgcode: '520026', + orgname: '钱記有限责任公司', + address: '106 S Broadway', + phone: null, + email: 'hla53@gmail.com', + staffnum: 128, + insurednum: 172, + regcapital: 45.8576, + paidcapital: 49.0852, + insuranceratio: 69.17, + isenable: true, + status_singleselect: '5', + range_multipleselect: ['F3134', 'I3010', 'L2095', 'P1029', '99999'], + status_radio: '1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8', + range_check: ['F3134', 'I3006', 'I3008', 'I3010', 'I3027', 'I3032', 'L2095', 'O3010', '99999'], + range_markdown: + '软件销售, 人工智能基础软件开发, 人工智能应用软件开发, 网络与信息安全软件开发, 人工智能理论与算法软件开发, 数字文化创意软件开发, 信息技术咨询服务, 计算机系统服务, 信息咨询服务(不含许可类信息咨询服务), 技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广, 咨询策划服务, 业务培训(不含教育培训、职业技能培训等需取得许可的培训), ', + range_richtext: + '人工智能应用软件开发, 网络与信息安全软件开发, 人工智能理论与算法软件开发, 信息技术咨询服务, 信息咨询服务(不含许可类信息咨询服务), 企业管理咨询, 技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广, 咨询策划服务, 业务培训(不含教育培训、职业技能培训等需取得许可的培训), ', + establishdate: '2022-03-22T20:41:25.000Z', + testcasenum: null, + testdatanum: null, + range_json: { + '99999': '其他', + I3006: '软件开发', + I3007: '人工智能基础软件开发', + I3010: '软件外包服务', + I3011: '网络与信息安全软件开发', + I3012: '人工智能理论与算法软件开发', + I3014: '数字文化创意软件开发', + I3027: '信息技术咨询服务', + I3034: '计算机系统服务', + M2070: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广', + O3010: '咨询策划服务', + }, + url: 'http://drive.songzhiyuan.jp/SportsOutdoor', + ownerid: 3759, + }, + '8': { + created_at: '2023-05-05T06:12:02.000Z', + updated_at: '2023-05-04T19:41:58.000Z', + id: 31, + orgcode: '430031', + orgname: 'Hughes LLC', + address: '980 4th Section Renmin South Road, Jinjiang District', + phone: '147-7853-0142', + email: 'scao@mail.com', + staffnum: 135, + insurednum: null, + regcapital: 139.2834, + paidcapital: 173.014, + insuranceratio: 62.83, + isenable: true, + status_singleselect: '2', + range_multipleselect: ['F3134', 'I3006', 'I3014', 'I3032', 'I3034', 'P1029', '99999'], + status_radio: '1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8', + range_check: ['F3134', 'I3006', 'I3008', 'I3010', 'I3034', 'M2070', 'O3010', 'P1029', '99999'], + range_markdown: + '人工智能基础软件开发, 软件外包服务, 数字文化创意软件开发, 信息技术咨询服务, 数据处理服务, 计算机系统服务, 业务培训(不含教育培训、职业技能培训等需取得许可的培训), ', + range_richtext: + '软件销售, 软件开发, 人工智能基础软件开发, 软件外包服务, 人工智能理论与算法软件开发, 信息技术咨询服务, 数据处理服务, 业务培训(不含教育培训、职业技能培训等需取得许可的培训), ', + establishdate: '2023-11-10T02:30:06.000Z', + testcasenum: null, + testdatanum: null, + range_json: { + '99999': '其他', + F3134: '软件销售', + I3007: '人工智能基础软件开发', + I3008: '人工智能应用软件开发', + I3010: '软件外包服务', + I3011: '网络与信息安全软件开发', + M2070: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广', + }, + url: 'http://image.ikedayu1224.com/Baby', + ownerid: 3625, + }, + '9': { + created_at: '2023-03-10T11:17:24.000Z', + updated_at: '2023-07-25T07:52:00.000Z', + id: 35, + orgcode: '150035', + orgname: '邵記系统有限责任公司', + address: '209 1st Ave', + phone: '718-246-6197', + email: 'akat@hotmail.com', + staffnum: 185, + insurednum: 191, + regcapital: 262.7247, + paidcapital: 299.6833, + insuranceratio: 45.48, + isenable: null, + status_singleselect: '1', + range_multipleselect: [ + 'F3134', + 'I3007', + 'I3014', + 'I3027', + 'I3032', + 'I3034', + 'L2032', + 'M2070', + 'O3010', + '99999', + ], + status_radio: '1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8', + range_check: ['I3006', 'I3007', 'I3010', 'I3032', 'I3034', 'M2070', 'P1029', '99999'], + range_markdown: + '软件外包服务, 信息技术咨询服务, 计算机系统服务, 信息咨询服务(不含许可类信息咨询服务), 技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广, 业务培训(不含教育培训、职业技能培训等需取得许可的培训), ', + range_richtext: + '人工智能基础软件开发, 人工智能理论与算法软件开发, 数据处理服务, 计算机系统服务, 企业管理咨询, 技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广, ', + establishdate: '2022-06-04T09:44:46.000Z', + testcasenum: null, + testdatanum: null, + range_json: { + '99999': '其他', + F3134: '软件销售', + I3007: '人工智能基础软件开发', + I3010: '软件外包服务', + I3011: '网络与信息安全软件开发', + L2032: '信息咨询服务(不含许可类信息咨询服务)', + L2095: '企业管理咨询', + M2070: '技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广', + P1029: '业务培训(不含教育培训、职业技能培训等需取得许可的培训)', + }, + url: 'http://video.fuchungyin1009.co.jp/ArtsHandicraftsSewing', + ownerid: 1001, + }, + }, + template: 'view', + view: true, + databaseView: 'public_vv_mnt_org', + }, + { + key: 'xtk56z0yjzb', + name: 'aa', + title: 'aa', + inherit: false, + hidden: false, + fields: [ + { + key: 'j4t51v3wxtw', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'aa', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'vri1jdk7ysw', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'aa', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'xlk307xa19f', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'aa', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'vtdq8t63l78', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'aa', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '3y3ynrqsfsi', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'aa', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'qs67jpdnpeh', + name: 'aa', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'aa', + parentKey: null, + reverseKey: null, + foreignKey: 'f_t4pkpermzh1', + otherKey: 'f_jmnyo7vo5rj', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: 'aa', + }, + target: 'aa1', + through: 't_xku93piwwae', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: '70uwbllibbr', + name: 'b', + type: 'string', + interface: 'input', + collectionName: 'aa', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', 'x-component': 'Input', title: 'b' }, + }, + ], + category: [], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '4rnueayft2n', + name: 'aa1', + title: 'aa1', + inherit: false, + hidden: false, + fields: [ + { + key: '7ukdsq5qy1g', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'aa1', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '0yyvb79lzad', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'aa1', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'm9zqm6zrr2n', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'aa1', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'nrpfezkba3o', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'aa1', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'xl0r7jz0spn', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'aa1', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '8yn8vj4vege', + name: 't_xku93piwwae', + title: 't_xku93piwwae', + inherit: false, + hidden: true, + fields: [ + { + key: 'fzewe6y2wur', + name: 'f_t4pkpermzh1', + type: 'bigInt', + interface: 'integer', + collectionName: 't_xku93piwwae', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_t4pkpermzh1', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'k0pxuvlwf86', + name: 'f_jmnyo7vo5rj', + type: 'bigInt', + interface: 'integer', + collectionName: 't_xku93piwwae', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_jmnyo7vo5rj', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + ], + category: [], + timestamps: true, + autoGenId: false, + autoCreate: true, + isThrough: true, + sortable: false, + }, + { + key: '5qce4bd6cq2', + name: 't_x56v8iecqxz', + title: '普通数据表', + inherit: false, + hidden: false, + fields: [ + { + key: 'e1h4mvu9msa', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 't_x56v8iecqxz', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'shstya9jvc5', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 't_x56v8iecqxz', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '9sjgs576l25', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_x56v8iecqxz', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'mv2276292e1', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 't_x56v8iecqxz', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '3bngd4wa1dy', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 't_x56v8iecqxz', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 9, + createdAt: '2023-05-09T01:12:30.191Z', + updatedAt: '2023-05-09T01:12:30.191Z', + name: 'test', + color: 'default', + collectionCategory: { + createdAt: '2023-05-18T01:26:56.434Z', + updatedAt: '2023-05-18T01:26:56.434Z', + collectionName: 't_x56v8iecqxz', + categoryId: 9, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + inherits: ['tt_mnt_org'], + }, + { + key: 'w3ru8l72s9b', + name: 't_4lj2jkoqi92', + title: '普通数据表1', + inherit: false, + hidden: false, + fields: [ + { + key: '9k1gwqchps4', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 't_4lj2jkoqi92', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'j824zh1n1sj', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 't_4lj2jkoqi92', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'kqvwrawbyd5', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_4lj2jkoqi92', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'lyqqnysisd3', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 't_4lj2jkoqi92', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'dmqp8agri8h', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 't_4lj2jkoqi92', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 9, + createdAt: '2023-05-09T01:12:30.191Z', + updatedAt: '2023-05-09T01:12:30.191Z', + name: 'test', + color: 'default', + collectionCategory: { + createdAt: '2023-05-18T01:27:21.278Z', + updatedAt: '2023-05-18T01:27:21.278Z', + collectionName: 't_4lj2jkoqi92', + categoryId: 9, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + inherits: ['tt_mnt_org'], + }, + { + key: 'g4eiqncayjp', + name: 't_q8urpz9hnuc', + title: 't_q8urpz9hnuc', + inherit: false, + hidden: true, + fields: [ + { + key: 'mfchh5tlv5i', + name: 'f_2hnfyftgyr9', + type: 'bigInt', + interface: 'integer', + collectionName: 't_q8urpz9hnuc', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_2hnfyftgyr9', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'd9p0cvviwyh', + name: 'f_730dw2m1gm4', + type: 'bigInt', + interface: 'integer', + collectionName: 't_q8urpz9hnuc', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_730dw2m1gm4', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + ], + category: [], + timestamps: true, + autoGenId: false, + autoCreate: true, + isThrough: true, + sortable: false, + }, + { + key: '6kanl0c9jfq', + name: 'files1', + title: 'files1', + inherit: false, + hidden: false, + fields: [ + { + key: 'b80qepv80tw', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'files1', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'l3em5g5nb8o', + name: 'f_y2x5x205y7p', + type: 'bigInt', + interface: 'integer', + collectionName: 'files1', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_y2x5x205y7p', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'yibeqw6n3wx', + name: 'f_zpq3hepsrie', + type: 'bigInt', + interface: 'integer', + collectionName: 'files1', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_zpq3hepsrie', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'hh1bwim4vqc', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'files1', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'bngmma59jy5', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'files1', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'w6yl00pyoga', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'files1', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'g0op496af1f', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'files1', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'btxysn5r4je', + name: 'f_0ubm11046lj', + type: 'belongsTo', + interface: 'obo', + collectionName: 'files1', + parentKey: null, + reverseKey: null, + foreignKey: 'f_y2x5x205y7p', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '一对一(belongs to)', + }, + target: 'files2', + targetKey: 'id', + }, + { + key: 'gydh5hdq66c', + name: 'f_rrf69sf7105', + type: 'belongsTo', + interface: 'm2o', + collectionName: 'files1', + parentKey: null, + reverseKey: null, + foreignKey: 'f_zpq3hepsrie', + onDelete: 'SET NULL', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '多对一', + }, + target: 'files2', + targetKey: 'id', + }, + { + key: '057gz8dkda8', + name: 'f_p6825ichvzm', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 'files1', + parentKey: null, + reverseKey: null, + foreignKey: 'f_6e2s68z6sqy', + otherKey: 'f_gwq98741x02', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '多对多', + }, + target: 'files2', + through: 't_36mo1o9ziaz', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '7nwym78ffhl', + name: 'files2', + title: 'files2', + inherit: false, + hidden: false, + fields: [ + { + key: 'ptb97xa22rj', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'files2', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'buziubs57ss', + name: 'title', + type: 'string', + interface: 'input', + collectionName: 'files2', + parentKey: null, + reverseKey: null, + deletable: false, + uiSchema: { type: 'string', title: '{{t("Title")}}', 'x-component': 'Input' }, + }, + { + key: '595fdbii1so', + name: 'filename', + type: 'string', + interface: 'input', + collectionName: 'files2', + parentKey: null, + reverseKey: null, + deletable: false, + uiSchema: { + type: 'string', + title: '{{t("File name", { ns: "file-manager" })}}', + 'x-component': 'Input', + 'x-read-pretty': true, + }, + }, + { + key: 'fsbmpwmwqai', + name: 'extname', + type: 'string', + interface: 'input', + collectionName: 'files2', + parentKey: null, + reverseKey: null, + deletable: false, + uiSchema: { + type: 'string', + title: '{{t("Extension name", { ns: "file-manager" })}}', + 'x-component': 'Input', + 'x-read-pretty': true, + }, + }, + { + key: 'pkn0rr36hga', + name: 'size', + type: 'integer', + interface: 'integer', + collectionName: 'files2', + parentKey: null, + reverseKey: null, + deletable: false, + uiSchema: { + type: 'number', + title: '{{t("Size", { ns: "file-manager" })}}', + 'x-component': 'InputNumber', + 'x-read-pretty': true, + 'x-component-props': { stringMode: true, step: '0' }, + }, + }, + { + key: 'nwf0p69aut2', + name: 'mimetype', + type: 'string', + interface: 'input', + collectionName: 'files2', + parentKey: null, + reverseKey: null, + deletable: false, + uiSchema: { + type: 'string', + title: '{{t("Mime type", { ns: "file-manager" })}}', + 'x-component': 'Input', + 'x-read-pretty': true, + }, + }, + { + key: 'p8jx00fit5p', + name: 'path', + type: 'string', + interface: 'input', + collectionName: 'files2', + parentKey: null, + reverseKey: null, + deletable: false, + uiSchema: { type: 'string', title: '{{t("Path")}}', 'x-component': 'Input', 'x-read-pretty': true }, + }, + { + key: 'y26s7a1cgsv', + name: 'url', + type: 'string', + interface: 'input', + collectionName: 'files2', + parentKey: null, + reverseKey: null, + deletable: false, + uiSchema: { type: 'string', title: '{{t("URL")}}', 'x-component': 'Input.URL', 'x-read-pretty': true }, + }, + { + key: 'b7z4oliwajz', + name: 'preview', + type: 'string', + interface: 'url', + collectionName: 'files2', + parentKey: null, + reverseKey: null, + field: 'url', + deletable: false, + uiSchema: { type: 'string', title: '{{t("Preview")}}', 'x-component': 'Preview', 'x-read-pretty': true }, + }, + { + key: 'plgmofuqpwv', + name: 'storage', + type: 'belongsTo', + interface: null, + collectionName: 'files2', + parentKey: null, + reverseKey: null, + comment: '存储引擎', + target: 'storages', + foreignKey: 'storageId', + deletable: false, + targetKey: 'id', + }, + { + key: '5z8u2t1ttn1', + name: 'meta', + type: 'jsonb', + interface: null, + collectionName: 'files2', + parentKey: null, + reverseKey: null, + deletable: false, + defaultValue: {}, + }, + { + key: 'v2eqhgp0i34', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'files2', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'xdznsp5q7yl', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'files2', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '72e2d6cbs3z', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'files2', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'j2x0t8mda09', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'files2', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [], + logging: true, + template: 'file', + view: false, + createdBy: true, + updatedBy: true, + storage: 'local', + }, + { + key: '0keqpf4mcat', + name: 't_m1ijuicf0gv', + title: 't_m1ijuicf0gv', + inherit: false, + hidden: true, + fields: [ + { + key: '24ybw706voh', + name: 'f_0k4ofegln16', + type: 'bigInt', + interface: 'integer', + collectionName: 't_m1ijuicf0gv', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_0k4ofegln16', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'dtg2paii83i', + name: 'f_arwgegt0rcm', + type: 'bigInt', + interface: 'integer', + collectionName: 't_m1ijuicf0gv', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_arwgegt0rcm', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + ], + category: [], + timestamps: true, + autoGenId: false, + autoCreate: true, + isThrough: true, + sortable: false, + }, + { + key: 'rcco9n7w7yc', + name: 't_36mo1o9ziaz', + title: 't_36mo1o9ziaz', + inherit: false, + hidden: true, + fields: [ + { + key: 'bm91u7im3p8', + name: 'f_6e2s68z6sqy', + type: 'bigInt', + interface: 'integer', + collectionName: 't_36mo1o9ziaz', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_6e2s68z6sqy', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'mwgge769get', + name: 'f_gwq98741x02', + type: 'bigInt', + interface: 'integer', + collectionName: 't_36mo1o9ziaz', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_gwq98741x02', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + ], + category: [], + timestamps: true, + autoGenId: false, + autoCreate: true, + isThrough: true, + sortable: false, + }, + { + key: 'z7v5k4p9m01', + name: 'B111', + title: 'B111', + inherit: false, + hidden: false, + fields: [ + { + key: 'zg2fgv4lufk', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 'B111', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '2y6sjqq1dfc', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 'B111', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'a2vib06gqrd', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'B111', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '2eb7ijzarrq', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 'B111', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '9zh6miiyaav', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'B111', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [ + { + id: 5, + createdAt: '2023-04-07T07:21:38.201Z', + updatedAt: '2023-05-02T05:07:23.295Z', + name: '人工测试mnt', + color: 'geekblue', + collectionCategory: { + createdAt: '2023-05-29T09:36:39.312Z', + updatedAt: '2023-05-29T09:36:39.312Z', + collectionName: 'B111', + categoryId: 5, + }, + }, + ], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + inherits: ['B11'], + }, + { + key: '3i58bgbs7fr', + name: 't_jk8p7yx7b42', + title: 'E', + inherit: false, + hidden: false, + fields: [ + { + key: 'eofsnyab6lk', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 't_jk8p7yx7b42', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'bvjglafvb7v', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 't_jk8p7yx7b42', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '0zehqom12z9', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_jk8p7yx7b42', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'cqu3ij1a45c', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 't_jk8p7yx7b42', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '3jt3e7i1cow', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 't_jk8p7yx7b42', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'ywp3qcz7c2t', + name: 'f_ghe8d614al0', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 't_jk8p7yx7b42', + parentKey: null, + reverseKey: null, + foreignKey: 'f_shlkpjle1bc', + otherKey: 'f_5dt8e4ksjmf', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: 'M2M', + }, + target: 't_jk8p7yx7b42', + through: 't_2w7x7x4ztgn', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: 'w8q8z40yast', + name: 't_2w7x7x4ztgn', + title: 't_2w7x7x4ztgn', + inherit: false, + hidden: true, + fields: [ + { + key: 'q2fo0ljrf4u', + name: 'f_shlkpjle1bc', + type: 'bigInt', + interface: 'integer', + collectionName: 't_2w7x7x4ztgn', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_shlkpjle1bc', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'jaokc1vzwlq', + name: 'f_5dt8e4ksjmf', + type: 'bigInt', + interface: 'integer', + collectionName: 't_2w7x7x4ztgn', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_5dt8e4ksjmf', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + ], + category: [], + timestamps: true, + autoGenId: false, + autoCreate: true, + isThrough: true, + sortable: false, + }, + { + key: '9xlwtak737m', + name: 't_h5ljs7n6u9e', + title: 'Ta', + inherit: false, + hidden: false, + fields: [ + { + key: 'jc0g9jw2757', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 't_h5ljs7n6u9e', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '5oq8iirz068', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 't_h5ljs7n6u9e', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'o3e16q2hula', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_h5ljs7n6u9e', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'olb7uq1s9l0', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 't_h5ljs7n6u9e', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '3lrk97iwti4', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 't_h5ljs7n6u9e', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'kqnft4q7p19', + name: 'f_bteqg16rzqd', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 't_h5ljs7n6u9e', + parentKey: null, + reverseKey: '9afyvbvwbis', + foreignKey: 'f_yu847kov74q', + otherKey: 'f_z37uij2lv15', + uiSchema: { + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: 'Tb', + }, + target: 't_i1xjvnduc15', + through: 't_d4sqb0ac7v9', + targetKey: 'id', + sourceKey: 'id', + }, + ], + category: [], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'general', + view: false, + }, + { + key: '4yaokmwu5qb', + name: 't_i1xjvnduc15', + title: 'Tb', + inherit: false, + hidden: false, + fields: [ + { + key: '6u7v41uupej', + name: 'parentId', + type: 'bigInt', + interface: 'integer', + collectionName: 't_i1xjvnduc15', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: '{{t("Parent ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + target: 't_i1xjvnduc15', + }, + { + key: 'coxdy8ish8g', + name: 'parent', + type: 'belongsTo', + interface: 'm2o', + collectionName: 't_i1xjvnduc15', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeParent: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Parent")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 't_i1xjvnduc15', + targetKey: 'id', + }, + { + key: 't7ieor3qh11', + name: 'children', + type: 'hasMany', + interface: 'o2m', + collectionName: 't_i1xjvnduc15', + parentKey: null, + reverseKey: null, + foreignKey: 'parentId', + treeChildren: true, + onDelete: 'CASCADE', + uiSchema: { + title: '{{t("Children")}}', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 't_i1xjvnduc15', + targetKey: 'id', + sourceKey: 'id', + }, + { + key: 'nsaqw9ceg7p', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 't_i1xjvnduc15', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'i8kxe9f6x2y', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 't_i1xjvnduc15', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'wxszh71ftmc', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_i1xjvnduc15', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '7iq0khobu0x', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 't_i1xjvnduc15', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'etuy736goqf', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 't_i1xjvnduc15', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: '9afyvbvwbis', + name: 'f_ii8do4py6ti', + type: 'belongsToMany', + interface: 'm2m', + collectionName: 't_i1xjvnduc15', + parentKey: null, + reverseKey: 'kqnft4q7p19', + uiSchema: { + title: 'Ta', + 'x-component': 'AssociationField', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + }, + target: 't_h5ljs7n6u9e', + through: 't_d4sqb0ac7v9', + sourceKey: 'id', + foreignKey: 'f_z37uij2lv15', + targetKey: 'id', + otherKey: 'f_yu847kov74q', + }, + ], + category: [], + logging: true, + autoGenId: true, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + template: 'tree', + view: false, + tree: 'adjacencyList', + }, + { + key: 'hpg0hnzssbo', + name: 't_d4sqb0ac7v9', + title: 't_d4sqb0ac7v9', + inherit: false, + hidden: true, + fields: [ + { + key: 'v59pgi7j3qv', + name: 'f_z37uij2lv15', + type: 'bigInt', + interface: 'integer', + collectionName: 't_d4sqb0ac7v9', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_z37uij2lv15', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'pciyumguddk', + name: 'f_yu847kov74q', + type: 'bigInt', + interface: 'integer', + collectionName: 't_d4sqb0ac7v9', + parentKey: null, + reverseKey: null, + isForeignKey: true, + uiSchema: { type: 'number', title: 'f_yu847kov74q', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + ], + category: [], + timestamps: true, + autoGenId: false, + autoCreate: true, + isThrough: true, + sortable: false, + }, + { + key: 'u4kvaik235c', + name: 't_qg98ir8rqhj', + title: 'Expression collection', + inherit: false, + hidden: false, + fields: [ + { + key: 'us5ooqvbk04', + name: 'engine', + type: 'string', + interface: 'radioGroup', + collectionName: 't_qg98ir8rqhj', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + title: '{{t("Calculation engine")}}', + 'x-component': 'Radio.Group', + enum: [ + { + value: 'math.js', + label: 'Math.js', + tooltip: + "{{t('Math.js comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types')}}", + link: 'https://mathjs.org/', + }, + { + value: 'formula.js', + label: 'Formula.js', + tooltip: '{{t("Formula.js supports most Microsoft Excel formula functions.")}}', + link: 'https://formulajs.info/functions/', + }, + ], + default: 'formula.js', + }, + }, + { + key: 'khz40ighmhd', + name: 'sourceCollection', + type: 'string', + interface: 'select', + collectionName: 't_qg98ir8rqhj', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + title: '{{t("Collection")}}', + 'x-component': 'CollectionSelect', + 'x-component-props': {}, + }, + }, + { + key: '6hx9xw5jjxp', + name: 'expression', + type: 'text', + interface: 'expression', + collectionName: 't_qg98ir8rqhj', + parentKey: null, + reverseKey: null, + uiSchema: { type: 'string', title: '{{t("Expression")}}', 'x-component': 'DynamicExpression' }, + }, + { + key: 'laj3s3ibui6', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 't_qg98ir8rqhj', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: 'a8091qeutk9', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 't_qg98ir8rqhj', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'lmpvvf72b55', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_qg98ir8rqhj', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'wunl6sh5645', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 't_qg98ir8rqhj', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: 'gkfvclt6gnp', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 't_qg98ir8rqhj', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [], + logging: true, + template: 'expression', + view: false, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + }, + { + key: 'golkeuhvyyt', + name: 't_rmxki7pqala', + title: 'Calendar collection', + inherit: false, + hidden: false, + fields: [ + { + key: 'zlaj7sue98w', + name: 'cron', + type: 'string', + interface: 'select', + collectionName: 't_rmxki7pqala', + parentKey: null, + reverseKey: null, + uiSchema: { + type: 'string', + title: '{{t("Repeats")}}', + 'x-component': 'CronSet', + 'x-component-props': 'allowClear', + enum: [ + { label: '{{t("Daily")}}', value: '0 0 0 * * ?' }, + { label: '{{t("Weekly")}}', value: 'every_week' }, + { label: '{{t("Monthly")}}', value: 'every_month' }, + { label: '{{t("Yearly")}}', value: 'every_year' }, + ], + }, + }, + { + key: 'salhhyvs89j', + name: 'exclude', + type: 'json', + interface: null, + collectionName: 't_rmxki7pqala', + parentKey: null, + reverseKey: null, + }, + { + key: '2mn4sy7wz27', + name: 'id', + type: 'bigInt', + interface: 'id', + collectionName: 't_rmxki7pqala', + parentKey: null, + reverseKey: null, + autoIncrement: true, + primaryKey: true, + allowNull: false, + uiSchema: { type: 'number', title: '{{t("ID")}}', 'x-component': 'InputNumber', 'x-read-pretty': true }, + }, + { + key: '9oipq8z2vzg', + name: 'createdAt', + type: 'date', + interface: 'createdAt', + collectionName: 't_rmxki7pqala', + parentKey: null, + reverseKey: null, + field: 'createdAt', + uiSchema: { + type: 'datetime', + title: '{{t("Created at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '4xpeovijhvh', + name: 'createdBy', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_rmxki7pqala', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'createdById', + uiSchema: { + type: 'object', + title: '{{t("Created by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + { + key: 'wnf27oef1j3', + name: 'updatedAt', + type: 'date', + interface: 'updatedAt', + collectionName: 't_rmxki7pqala', + parentKey: null, + reverseKey: null, + field: 'updatedAt', + uiSchema: { + type: 'string', + title: '{{t("Last updated at")}}', + 'x-component': 'DatePicker', + 'x-component-props': {}, + 'x-read-pretty': true, + }, + }, + { + key: '3jz2ztxmman', + name: 'updatedBy', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 't_rmxki7pqala', + parentKey: null, + reverseKey: null, + target: 'users', + foreignKey: 'updatedById', + uiSchema: { + type: 'object', + title: '{{t("Last updated by")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + targetKey: 'id', + }, + ], + category: [], + logging: true, + template: 'calendar', + view: false, + createdBy: true, + updatedBy: true, + createdAt: true, + updatedAt: true, + sortable: true, + }, +]; diff --git a/packages/core/client/src/test/mockAPIClient.ts b/packages/core/client/src/test/mockAPIClient.ts new file mode 100644 index 0000000000..cb1065e5e9 --- /dev/null +++ b/packages/core/client/src/test/mockAPIClient.ts @@ -0,0 +1,9 @@ +import MockAdapter from 'axios-mock-adapter'; +import { APIClient } from '../api-client'; + +export const mockAPIClient = () => { + const apiClient = new APIClient(); + const mockRequest = new MockAdapter(apiClient.axios); + + return { apiClient, mockRequest }; +}; diff --git a/packages/core/client/tsconfig.json b/packages/core/client/tsconfig.json index f7efa554d4..ccd3d788dc 100644 --- a/packages/core/client/tsconfig.json +++ b/packages/core/client/tsconfig.json @@ -1,6 +1,8 @@ { "extends": "../../../tsconfig.json", "compilerOptions": { + "target": "ESNext", + "module": "ESNext", "types": [ "vitest/globals" ] diff --git a/packages/core/dumi-theme-nocobase/src/builtins/Tree.tsx b/packages/core/dumi-theme-nocobase/src/builtins/Tree.tsx index dd8f7fd3df..f0e8a6c885 100755 --- a/packages/core/dumi-theme-nocobase/src/builtins/Tree.tsx +++ b/packages/core/dumi-theme-nocobase/src/builtins/Tree.tsx @@ -1,9 +1,9 @@ -import type { ReactNode, ComponentProps } from 'react'; -import React, { useEffect, useState, createRef } from 'react'; +import type { CSSMotionProps, MotionEndEventHandler, MotionEventHandler } from 'rc-motion'; import type { TreeProps } from 'rc-tree'; import Tree from 'rc-tree'; -import type { EventDataNode } from 'rc-tree/lib/interface'; -import type { CSSMotionProps, MotionEventHandler, MotionEndEventHandler } from 'rc-motion'; +import type { EventDataNode } from 'rc-tree/es/interface'; +import type { ComponentProps, ReactNode } from 'react'; +import React, { createRef, useEffect, useState } from 'react'; import './Tree.less'; const FileOutlined = ; diff --git a/packages/core/test/src/index.ts b/packages/core/test/src/index.ts index 08c9f5ebfe..ee8329b2cc 100644 --- a/packages/core/test/src/index.ts +++ b/packages/core/test/src/index.ts @@ -1,8 +1,7 @@ export { mockDatabase } from '@nocobase/database'; export * from './mockServer'; -const pgOnly: () => jest.Describe = () => (process.env.DB_DIALECT == 'postgres' ? describe : describe.skip); -export { pgOnly }; +export const pgOnly: () => jest.Describe = () => (process.env.DB_DIALECT == 'postgres' ? describe : describe.skip); export function randomStr() { // create random string diff --git a/packages/core/client/src/schema-component/antd/input-number/__tests__/toFixedByStep.test.ts b/packages/core/utils/src/__tests__/toFixedByStep.test.ts similarity index 100% rename from packages/core/client/src/schema-component/antd/input-number/__tests__/toFixedByStep.test.ts rename to packages/core/utils/src/__tests__/toFixedByStep.test.ts diff --git a/packages/plugins/snapshot-field/src/client/components/AppendsTreeSelect.tsx b/packages/plugins/snapshot-field/src/client/components/AppendsTreeSelect.tsx index 7ff4e659ba..f906b887cd 100644 --- a/packages/plugins/snapshot-field/src/client/components/AppendsTreeSelect.tsx +++ b/packages/plugins/snapshot-field/src/client/components/AppendsTreeSelect.tsx @@ -1,10 +1,10 @@ -import React from 'react'; -import { TreeSelect, Tag } from 'antd'; -import type { DefaultOptionType } from 'rc-tree-select/lib/TreeSelect'; import { useForm } from '@formily/react'; -import { CollectionFieldOptions, useCollectionManager, useCompile, useRecord } from '@nocobase/client'; -import { useSnapshotTranslation } from '../locale'; +import { CollectionFieldOptions, useCollectionManager, useCompile } from '@nocobase/client'; +import { Tag, TreeSelect } from 'antd'; +import type { DefaultOptionType } from 'rc-tree-select/es/TreeSelect'; +import React from 'react'; import { useTopRecord } from '../interface'; +import { useSnapshotTranslation } from '../locale'; export type TreeCacheMapNode = { parent?: TreeCacheMapNode; diff --git a/scripts/setupVitest.ts b/scripts/setupVitest.ts index 28f294f7f4..4387fd5a2e 100644 --- a/scripts/setupVitest.ts +++ b/scripts/setupVitest.ts @@ -1,4 +1,11 @@ import '@testing-library/jest-dom'; + +/** + * 解决 TypeError: URL.createObjectURL is not a function + * 解决 ReferenceError: Worker is not defined + */ +import 'jsdom-worker'; + import { vi } from 'vitest'; import '../packages/core/client/src/i18n'; diff --git a/testUtils.ts b/testUtils.ts index 82fe56b6f9..5abb753c71 100644 --- a/testUtils.ts +++ b/testUtils.ts @@ -1,7 +1,26 @@ -const globalTimeout = global.setTimeout; +import { cleanup, render } from '@testing-library/react'; +import { afterEach } from 'vitest'; + +afterEach(() => { + cleanup(); + document.body.innerHTML = ''; +}); + +function customRender(ui: React.ReactElement, options = {}) { + return render(ui, { + // wrap provider(s) here if needed + wrapper: ({ children }) => children, + ...options, + }); +} + +export * from '@testing-library/react'; +export { default as userEvent } from '@testing-library/user-event'; +// override render export +export { customRender as render }; export const sleep = async (timeout = 0) => { - await new Promise((resolve) => { - globalTimeout(resolve, timeout); + return new Promise((resolve) => { + setTimeout(resolve, timeout); }); }; diff --git a/tsconfig.json b/tsconfig.json index 303517a195..3f660d5e59 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -55,6 +55,7 @@ "exclude": [ "packages/**/node_modules", "packages/**/dist", - "packages/**/lib" + "packages/**/lib", + "packages/**/es" ] } diff --git a/vitest.config.ts b/vitest.config.ts index 0f95d6ab4f..12134b24d0 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -3,15 +3,19 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ plugins: [react()], + resolve: { + mainFields: ['module'], + }, test: { globals: true, setupFiles: 'scripts/setupVitest.ts', environment: 'jsdom', - css: true, + css: false, threads: true, alias: [ { find: '@nocobase/evaluators/client', replacement: 'packages/core/evaluators/src/client' }, { find: '@nocobase/utils/client', replacement: 'packages/core/utils/src/client' }, + { find: /^~antd\/(.*)/, replacement: 'antd/$1' }, { find: /^@nocobase\/app-(.*)/, replacement: 'packages/$1/src' }, { find: /^@nocobase\/plugin-sample-(.*)/, replacement: 'packages/samples/$1/src' }, { find: /^@nocobase\/plugin-pro-(.*)/, replacement: 'packages/pro-plugins/$1/src' }, @@ -23,5 +27,8 @@ export default defineConfig({ exclude: ['**/node_modules/**', '**/dist/**', '**/lib/**', '**/es/**', '**/{vitest,commitlint}.config.*'], testTimeout: 300000, bail: 1, + deps: { + inline: ['@juggle/resize-observer', 'clsx'], + }, }, }); diff --git a/yarn.lock b/yarn.lock index 1e61047780..ab79520b98 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4782,19 +4782,6 @@ lz-string "^1.4.4" pretty-format "^27.0.2" -"@testing-library/dom@^9.0.0": - version "9.3.0" - resolved "https://registry.npmmirror.com/@testing-library/dom/-/dom-9.3.0.tgz#ed8ce10aa5e05eb6eaf0635b5b8975d889f66075" - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^5.0.1" - aria-query "^5.0.0" - chalk "^4.1.0" - dom-accessibility-api "^0.5.9" - lz-string "^1.5.0" - pretty-format "^27.0.2" - "@testing-library/jest-dom@^5.16.5": version "5.16.5" resolved "https://registry.npmmirror.com/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz#3912846af19a29b2dbf32a6ae9c31ef52580074e" @@ -4809,21 +4796,19 @@ lodash "^4.17.15" redent "^3.0.0" -"@testing-library/react@^12.1.2": +"@testing-library/react@^12.1.2", "@testing-library/react@^12.1.5": version "12.1.5" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.5.tgz#bb248f72f02a5ac9d949dea07279095fa577963b" + resolved "https://registry.npmmirror.com/@testing-library/react/-/react-12.1.5.tgz#bb248f72f02a5ac9d949dea07279095fa577963b" + integrity sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg== dependencies: "@babel/runtime" "^7.12.5" "@testing-library/dom" "^8.0.0" "@types/react-dom" "<18.0.0" -"@testing-library/react@^14.0.0": - version "14.0.0" - resolved "https://registry.npmmirror.com/@testing-library/react/-/react-14.0.0.tgz#59030392a6792450b9ab8e67aea5f3cc18d6347c" - dependencies: - "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^9.0.0" - "@types/react-dom" "^18.0.0" +"@testing-library/user-event@^14.4.3": + version "14.4.3" + resolved "https://registry.npmmirror.com/@testing-library/user-event/-/user-event-14.4.3.tgz#af975e367743fa91989cd666666aec31a8f50591" + integrity sha512-kCUc5MEwaEMakkO5x7aoD+DLi02ehmEM2QCGWvNqAS1dV/fAvORWEjnjsEIvml59M7Y5kCkWN6fCCyPOe8OL6Q== "@tootallnate/once@1": version "1.1.2" @@ -5245,7 +5230,7 @@ version "1.2.4" resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" -"@types/react-dom@<18.0.0", "@types/react-dom@^16.9.8", "@types/react-dom@^17.0.0", "@types/react-dom@^18.0.0": +"@types/react-dom@<18.0.0", "@types/react-dom@^16.9.8", "@types/react-dom@^17.0.0": version "17.0.19" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.19.tgz#36feef3aa35d045cacd5ed60fe0eef5272f19492" dependencies: @@ -13766,6 +13751,14 @@ jscodeshift@^0.6.2: temp "^0.8.1" write-file-atomic "^2.3.0" +jsdom-worker@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/jsdom-worker/-/jsdom-worker-0.3.0.tgz#aff32ec089d17f56a5a344a426b6fb2f56e7de54" + integrity sha512-nlPmN0i93+e6vxzov8xqLMR+MBs/TAYeSviehivzqovHH0AgooVx9pQ/otrygASppPvdR+V9Jqx5SMe8+FcADg== + dependencies: + mitt "^3.0.0" + uuid-v4 "^0.1.0" + jsdom@^11.5.1: version "11.12.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" @@ -14602,7 +14595,7 @@ luxon@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.3.0.tgz#d73ab5b5d2b49a461c47cedbc7e73309b4805b48" -lz-string@^1.4.4, lz-string@^1.5.0: +lz-string@^1.4.4: version "1.5.0" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" @@ -15315,6 +15308,11 @@ mississippi@^2.0.0: stream-each "^1.1.0" through2 "^2.0.0" +mitt@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/mitt/-/mitt-3.0.0.tgz#69ef9bd5c80ff6f57473e8d89326d01c414be0bd" + integrity sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ== + mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" @@ -21863,6 +21861,11 @@ utility@^1.16.1, utility@^1.17.0, utility@^1.8.0: mz "^2.7.0" unescape "^1.0.1" +uuid-v4@^0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/uuid-v4/-/uuid-v4-0.1.0.tgz#62d7b310406f6cecfea1528c69f1e8e0bcec5a3a" + integrity sha512-m11RYDtowtAIihBXMoGajOEKpAXrKbpKlpmxqyztMYQNGSY5nZAZ/oYch/w2HNS1RMA4WLGcZvuD8/wFMuCEzA== + uuid@^3.2.1, uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
+
Block {fieldSchema.title}
@@ -20,7 +23,6 @@ const schema = { version: '2.0', type: 'void', name: 'grid1', - 'x-decorator': 'CardItem', 'x-component': 'Grid', properties: { row1: { diff --git a/packages/core/client/src/schema-component/antd/grid/demos/demo2.tsx b/packages/core/client/src/schema-component/antd/grid/demos/demo2.tsx index 179f9825b8..4f6055acda 100644 --- a/packages/core/client/src/schema-component/antd/grid/demos/demo2.tsx +++ b/packages/core/client/src/schema-component/antd/grid/demos/demo2.tsx @@ -1,15 +1,6 @@ import { ISchema } from '@formily/react'; import { uid } from '@formily/shared'; -import { - Form, - FormItem, - Grid, - Input, - Markdown, - SchemaComponent, - SchemaComponentProvider, - SchemaInitializerProvider, -} from '@nocobase/client'; +import { Form, FormItem, Grid, Input, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; import React from 'react'; const schema: ISchema = { @@ -17,7 +8,6 @@ const schema: ISchema = { name: 'grid1', 'x-decorator': 'Form', 'x-component': 'Grid', - 'x-item-initializer': 'AddFormItem', 'x-uid': uid(), properties: { row1: { @@ -64,10 +54,8 @@ const schema: ISchema = { export default function App() { return ( - - - - + + ); } diff --git a/packages/core/client/src/schema-component/antd/grid/demos/demo3.tsx b/packages/core/client/src/schema-component/antd/grid/demos/demo3.tsx index 5a450685b3..a58e86ac54 100644 --- a/packages/core/client/src/schema-component/antd/grid/demos/demo3.tsx +++ b/packages/core/client/src/schema-component/antd/grid/demos/demo3.tsx @@ -4,6 +4,7 @@ import { CardItem, Grid, Markdown, + MarkdownBlockInitializer, SchemaComponent, SchemaComponentProvider, SchemaInitializer, @@ -70,7 +71,7 @@ const schema: ISchema = { export default function App() { return ( - + diff --git a/packages/core/client/src/schema-component/antd/icon-picker/__tests__/icon-picker.test.tsx b/packages/core/client/src/schema-component/antd/icon-picker/__tests__/icon-picker.test.tsx new file mode 100644 index 0000000000..6fd60a6416 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/icon-picker/__tests__/icon-picker.test.tsx @@ -0,0 +1,41 @@ +import React from 'react'; +import { render, screen, userEvent } from 'testUtils'; +import App from '../demos/icon-picker'; + +describe('IconPicker', () => { + it('should display all icons when click the button', async () => { + const { container } = render(); + + const button = container.querySelector('button') as HTMLButtonElement; + await userEvent.click(button); + + expect(screen.getByText('Icon')).toMatchInlineSnapshot(` +
+ Icon +
+ `); + expect(screen.queryAllByRole('img').length).toBe(421); + }); + + it.skip('should display the selected icon', async () => { + const { container } = render(); + + const button = container.querySelector('button') as HTMLButtonElement; + await userEvent.click(button); + + const icon = screen.queryAllByRole('img')[0]; + await userEvent.click(icon); + + const icons = screen.queryAllByRole('img'); + // 被选中的图标 + expect(icons[0]).toEqual(icon); + // 在 Read pretty 中显示的被选中的图标 + expect(icons[2]).toEqual(icon); + + // 清除按钮图标 + await userEvent.click(icons[1]); + expect(screen.queryAllByRole('img').length).toBe(0); + }, 300000); +}); diff --git a/packages/core/client/src/schema-component/antd/icon-picker/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/icon-picker/demos/icon-picker.tsx similarity index 96% rename from packages/core/client/src/schema-component/antd/icon-picker/demos/demo1.tsx rename to packages/core/client/src/schema-component/antd/icon-picker/demos/icon-picker.tsx index d220888913..58b4a9b5ea 100644 --- a/packages/core/client/src/schema-component/antd/icon-picker/demos/demo1.tsx +++ b/packages/core/client/src/schema-component/antd/icon-picker/demos/icon-picker.tsx @@ -1,6 +1,3 @@ -/** - * title: IconPicker - */ import { FormItem } from '@formily/antd'; import { IconPicker, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; import React from 'react'; diff --git a/packages/core/client/src/schema-component/antd/icon-picker/index.md b/packages/core/client/src/schema-component/antd/icon-picker/index.md index 53c495839b..d2e81960f1 100644 --- a/packages/core/client/src/schema-component/antd/icon-picker/index.md +++ b/packages/core/client/src/schema-component/antd/icon-picker/index.md @@ -11,4 +11,4 @@ group: ### IconPicker - + diff --git a/packages/core/client/src/schema-component/antd/input-number/InputNumber.tsx b/packages/core/client/src/schema-component/antd/input-number/InputNumber.tsx index 03ec36ead3..288347c3d8 100644 --- a/packages/core/client/src/schema-component/antd/input-number/InputNumber.tsx +++ b/packages/core/client/src/schema-component/antd/input-number/InputNumber.tsx @@ -1,11 +1,10 @@ -import { connect, mapReadPretty, useField } from '@formily/react'; +import { connect, mapReadPretty } from '@formily/react'; import { InputNumber as AntdNumber } from 'antd'; import React from 'react'; import { ReadPretty } from './ReadPretty'; export const InputNumber = connect((props) => { const { onChange, ...others } = props; - const field = useField(); const handleChange = (v) => { onChange(parseFloat(v)); }; diff --git a/packages/core/client/src/schema-component/antd/input-number/ReadPretty.tsx b/packages/core/client/src/schema-component/antd/input-number/ReadPretty.tsx index 4a1538cdaf..b7ed4371e8 100644 --- a/packages/core/client/src/schema-component/antd/input-number/ReadPretty.tsx +++ b/packages/core/client/src/schema-component/antd/input-number/ReadPretty.tsx @@ -1,18 +1,22 @@ import { isValid } from '@formily/shared'; import { toFixedByStep } from '@nocobase/utils/client'; -import type { InputProps } from 'antd/lib/input'; -import type { InputNumberProps } from 'antd/lib/input-number'; +import type { InputProps } from 'antd/es/input'; +import type { InputNumberProps } from 'antd/es/input-number'; import React from 'react'; export const ReadPretty: React.FC = (props: any) => { const { step, value, addonBefore, addonAfter } = props; if (!isValid(props.value)) { - return
; + return null; + } + const result = toFixedByStep(value, step); + if (isNaN(result)) { + return null; } return (
{addonBefore} - {toFixedByStep(value, step)} + {result} {addonAfter}
); diff --git a/packages/core/client/src/schema-component/antd/input-number/__tests__/input-number.test.tsx b/packages/core/client/src/schema-component/antd/input-number/__tests__/input-number.test.tsx new file mode 100644 index 0000000000..245882b9d2 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/input-number/__tests__/input-number.test.tsx @@ -0,0 +1,77 @@ +import React from 'react'; +import { fireEvent, render, screen } from 'testUtils'; +import App2 from '../demos/addonBefore&addonAfter'; +import App3 from '../demos/highPrecisionDecimals'; +import App1 from '../demos/inputNumber'; + +describe('InputNumber', () => { + it('should display the title', () => { + render(); + + expect(screen.getByText('Editable').innerHTML).toBe('Editable'); + expect(screen.getByText('Read pretty').innerHTML).toBe('Read pretty'); + }); + + it('should display the value of user input', async () => { + const { container } = render(); + + const input = container.querySelector('input') as HTMLInputElement; + fireEvent.change(input, { target: { value: 1 } }); + expect(input.value).toBe('1'); + // @ts-ignore + expect(screen.getByText('1')).toBeInTheDocument(); + + // empty value + fireEvent.change(input, { target: { value: '' } }); + expect(input.value).toBe(''); + expect(screen.queryByText('NaN')).toBeNull(); + }); +}); + +describe('InputNumber: addonBefore/addonAfter', () => { + it('should display the title', () => { + render(); + + expect(screen.getByText('Editable').innerHTML).toBe('Editable'); + expect(screen.getByText('Read pretty').innerHTML).toBe('Read pretty'); + }); + + it('should display the value of user input', async () => { + const { container } = render(); + + const input = container.querySelector('input') as HTMLInputElement; + fireEvent.change(input, { target: { value: 1 } }); + expect(input.value).toBe('1'); + // @ts-ignore + expect(screen.getByText('¥1万元')).toBeInTheDocument(); + + // empty value + fireEvent.change(input, { target: { value: '' } }); + expect(input.value).toBe(''); + expect(screen.queryByText('NaN')).toBeNull(); + }); +}); + +describe('InputNumber: High precision decimals', () => { + it('should display the title', () => { + render(); + + expect(screen.getByText('Editable').innerHTML).toBe('Editable'); + expect(screen.getByText('Read pretty').innerHTML).toBe('Read pretty'); + }); + + it('should display the value of user input', async () => { + const { container } = render(); + + const input = container.querySelector('input') as HTMLInputElement; + fireEvent.change(input, { target: { value: 1 } }); + expect(input.value).toBe('1.00'); + // @ts-ignore + expect(screen.getByText('1.00%')).toBeInTheDocument(); + + // empty value + fireEvent.change(input, { target: { value: '' } }); + expect(input.value).toBe(''); + expect(screen.queryByText('NaN')).toBeNull(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/input-number/demos/demo2.tsx b/packages/core/client/src/schema-component/antd/input-number/demos/addonBefore&addonAfter.tsx similarity index 92% rename from packages/core/client/src/schema-component/antd/input-number/demos/demo2.tsx rename to packages/core/client/src/schema-component/antd/input-number/demos/addonBefore&addonAfter.tsx index 86e1f5f25b..dbd875c8c1 100644 --- a/packages/core/client/src/schema-component/antd/input-number/demos/demo2.tsx +++ b/packages/core/client/src/schema-component/antd/input-number/demos/addonBefore&addonAfter.tsx @@ -1,6 +1,3 @@ -/** - * title: addonBefore/addonAfter - */ import { FormItem } from '@formily/antd'; import { InputNumber, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; import React from 'react'; @@ -9,7 +6,7 @@ const schema = { type: 'object', properties: { input: { - type: 'boolean', + type: 'string', title: `Editable`, 'x-decorator': 'FormItem', 'x-component': 'InputNumber', @@ -27,7 +24,7 @@ const schema = { }, }, read: { - type: 'boolean', + type: 'string', title: `Read pretty`, 'x-read-pretty': true, 'x-decorator': 'FormItem', diff --git a/packages/core/client/src/schema-component/antd/input-number/demos/demo3.tsx b/packages/core/client/src/schema-component/antd/input-number/demos/highPrecisionDecimals.tsx similarity index 93% rename from packages/core/client/src/schema-component/antd/input-number/demos/demo3.tsx rename to packages/core/client/src/schema-component/antd/input-number/demos/highPrecisionDecimals.tsx index c09ef1da4d..76580613d0 100644 --- a/packages/core/client/src/schema-component/antd/input-number/demos/demo3.tsx +++ b/packages/core/client/src/schema-component/antd/input-number/demos/highPrecisionDecimals.tsx @@ -1,6 +1,3 @@ -/** - * title: stringMode - */ import { FormItem } from '@formily/antd'; import { InputNumber, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; import React from 'react'; @@ -9,7 +6,7 @@ const schema = { type: 'object', properties: { input: { - type: 'boolean', + type: 'string', title: `Editable`, 'x-decorator': 'FormItem', 'x-component': 'InputNumber', @@ -28,7 +25,7 @@ const schema = { }, }, read: { - type: 'boolean', + type: 'string', title: `Read pretty`, 'x-read-pretty': true, 'x-decorator': 'FormItem', diff --git a/packages/core/client/src/schema-component/antd/input-number/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/input-number/demos/inputNumber.tsx similarity index 91% rename from packages/core/client/src/schema-component/antd/input-number/demos/demo1.tsx rename to packages/core/client/src/schema-component/antd/input-number/demos/inputNumber.tsx index 036c0eeb43..0d7988cced 100644 --- a/packages/core/client/src/schema-component/antd/input-number/demos/demo1.tsx +++ b/packages/core/client/src/schema-component/antd/input-number/demos/inputNumber.tsx @@ -1,6 +1,3 @@ -/** - * title: InputNumber - */ import { FormItem } from '@formily/antd'; import { InputNumber, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; import React from 'react'; @@ -9,7 +6,7 @@ const schema = { type: 'object', properties: { input: { - type: 'boolean', + type: 'number', title: `Editable`, 'x-decorator': 'FormItem', 'x-component': 'InputNumber', @@ -23,7 +20,7 @@ const schema = { }, }, read: { - type: 'boolean', + type: 'number', title: `Read pretty`, 'x-read-pretty': true, 'x-decorator': 'FormItem', diff --git a/packages/core/client/src/schema-component/antd/input-number/index.md b/packages/core/client/src/schema-component/antd/input-number/index.md index b0687cd796..9be2a1e823 100644 --- a/packages/core/client/src/schema-component/antd/input-number/index.md +++ b/packages/core/client/src/schema-component/antd/input-number/index.md @@ -11,12 +11,12 @@ group: ### InputNumber - + ### addonBefore/addonAfter - + ### High precision decimals - + diff --git a/packages/core/client/src/schema-component/antd/input/Input.tsx b/packages/core/client/src/schema-component/antd/input/Input.tsx index 0827a27256..ba2acd08ce 100644 --- a/packages/core/client/src/schema-component/antd/input/Input.tsx +++ b/packages/core/client/src/schema-component/antd/input/Input.tsx @@ -1,10 +1,10 @@ import { LoadingOutlined } from '@ant-design/icons'; import { connect, mapProps, mapReadPretty } from '@formily/react'; import { Input as AntdInput } from 'antd'; -import { InputProps, TextAreaProps } from 'antd/lib/input'; +import { InputProps, TextAreaProps } from 'antd/es/input'; import React from 'react'; +import { JSONTextAreaProps, Json } from './Json'; import { ReadPretty } from './ReadPretty'; -import { Json, JSONTextAreaProps } from './Json'; type ComposedInput = React.FC & { TextArea: React.FC; diff --git a/packages/core/client/src/schema-component/antd/input/Json.tsx b/packages/core/client/src/schema-component/antd/input/Json.tsx index 38561ce1c8..009d0f166a 100644 --- a/packages/core/client/src/schema-component/antd/input/Json.tsx +++ b/packages/core/client/src/schema-component/antd/input/Json.tsx @@ -1,8 +1,8 @@ -import React, { Ref } from 'react'; import { Field } from '@formily/core'; import { useField } from '@formily/react'; import { Input } from 'antd'; -import { TextAreaProps } from 'antd/lib/input'; +import { TextAreaProps } from 'antd/es/input'; +import React, { Ref } from 'react'; export type JSONTextAreaProps = TextAreaProps & { value?: string; space?: number }; diff --git a/packages/core/client/src/schema-component/antd/input/ReadPretty.tsx b/packages/core/client/src/schema-component/antd/input/ReadPretty.tsx index c0a9a54c6f..805f757591 100644 --- a/packages/core/client/src/schema-component/antd/input/ReadPretty.tsx +++ b/packages/core/client/src/schema-component/antd/input/ReadPretty.tsx @@ -1,12 +1,12 @@ -import { usePrefixCls } from '@formily/antd/lib/__builtins__'; -import { InputProps, TextAreaProps } from 'antd/lib/input'; +import { css, cx } from '@emotion/css'; +import { usePrefixCls } from '@formily/antd/esm/__builtins__'; +import { Typography } from 'antd'; +import { InputProps, TextAreaProps } from 'antd/es/input'; import cls from 'classnames'; import React from 'react'; import { useCompile } from '../..'; import { EllipsisWithTooltip } from './EllipsisWithTooltip'; import { HTMLEncode } from './shared'; -import { cx, css } from '@emotion/css'; -import { Typography } from 'antd'; type Composed = { Input: React.FC; @@ -72,7 +72,7 @@ function convertToText(html: string) { const temp = document.createElement('div'); temp.innerHTML = html; const text = temp.innerText; - return text.replace(/[\n\r]/g, ''); + return text?.replace(/[\n\r]/g, '') || ''; } ReadPretty.Html = (props) => { diff --git a/packages/core/client/src/schema-component/antd/input/__tests__/Input.test.tsx b/packages/core/client/src/schema-component/antd/input/__tests__/Input.test.tsx new file mode 100644 index 0000000000..794ec7e71a --- /dev/null +++ b/packages/core/client/src/schema-component/antd/input/__tests__/Input.test.tsx @@ -0,0 +1,160 @@ +import React from 'react'; +import { fireEvent, render, screen, userEvent } from 'testUtils'; +import App1 from '../demos/input'; +import App4 from '../demos/json'; +import App2 from '../demos/textarea'; +import App3 from '../demos/url'; + +describe('Input', () => { + it('should display the title', () => { + render(); + + expect(screen.getByText('Editable').innerHTML).toBe('Editable'); + expect(screen.getByText('Read pretty').innerHTML).toBe('Read pretty'); + }); + + it('should display the value of user input', async () => { + const { container } = render(); + + const input = container.querySelector('input') as HTMLInputElement; + await userEvent.type(input, 'Hello World'); + expect(screen.getByText('Hello World').innerHTML).toBe('Hello World'); + }); +}); + +describe('Input.TextArea', () => { + it('should display the title', () => { + render(); + + expect(screen.getByText('Editable').innerHTML).toBe('Editable'); + expect(screen.getByText('Read pretty').innerHTML).toBe('Read pretty'); + expect(screen.getByText('Read pretty(ellipsis)').innerHTML).toBe('Read pretty(ellipsis)'); + expect(screen.getByText('Read pretty(autop)').innerHTML).toBe('Read pretty(autop)'); + }); + + it('should display the value of user input', () => { + const { container } = render(); + + const textarea = container.querySelector('textarea') as HTMLTextAreaElement; + fireEvent.change(textarea, { target: { value: 'Hello World, Hello World' } }); + + expect(textarea.value).toBe('Hello World, Hello World'); + expect(screen.getAllByText('Hello World, Hello World')).toMatchInlineSnapshot(` + [ + , +
+ Hello World, Hello World +
, +
+ Hello World, Hello World +
, +
+ Hello World, Hello World +
, + ] + `); + }); + + it('should not display undefined', () => { + render(); + + // @ts-ignore + expect(screen.queryByText('undefined')).toBeNull(); + }); +}); + +describe('Input.URL', () => { + it('should display the title', () => { + render(); + + expect(screen.getByText('Editable').innerHTML).toBe('Editable'); + expect(screen.getByText('Read pretty').innerHTML).toBe('Read pretty'); + }); + + it('should display the value of user input', async () => { + const { container } = render(); + + const input = container.querySelector('input') as HTMLInputElement; + await userEvent.type(input, 'https://www.nocobase.com'); + expect(input.value).toBe('https://www.nocobase.com'); + expect(screen.getByText('https://www.nocobase.com')).toMatchInlineSnapshot(` +
+ https://www.nocobase.com + + `); + }); + + it('should display the error when the value is invalid', async () => { + const { container } = render(); + + const input = container.querySelector('input') as HTMLInputElement; + await userEvent.type(input, 'abcd'); + expect(input.value).toBe('abcd'); + expect(screen.getByText('abcd')).toMatchInlineSnapshot(` + + abcd + + `); + + // show error message + expect(screen.getByText('The field value is a invalid url').innerHTML).toBe('The field value is a invalid url'); + }); +}); + +describe('Input.JSON', () => { + it('should display the title', () => { + render(); + + expect(screen.getByText('Editable').innerHTML).toBe('Editable'); + expect(screen.getByText('Read pretty').innerHTML).toBe('Read pretty'); + }); + + it('should display the value of user input', async () => { + const { container } = render(); + + const textarea = container.querySelector('textarea') as HTMLTextAreaElement; + const pre = container.querySelector('pre') as HTMLPreElement; + fireEvent.change(textarea, { target: { value: '{"name":"nocobase"}' } }); + expect(textarea.value).toBe('{"name":"nocobase"}'); + expect(pre).toMatchInlineSnapshot(` +
+        {
+        "name": "nocobase"
+      }
+      
+ `); + }); + + it('should display the error when the value is invalid', async () => { + const { container } = render(); + + const textarea = container.querySelector('textarea') as HTMLTextAreaElement; + fireEvent.change(textarea, { target: { value: '{"name":nocobase}' } }); + expect(screen.getByText(`Unexpected token o in JSON at position 9`).innerHTML).toBe( + `Unexpected token o in JSON at position 9`, + ); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/input/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/input/demos/input.tsx similarity index 91% rename from packages/core/client/src/schema-component/antd/input/demos/demo1.tsx rename to packages/core/client/src/schema-component/antd/input/demos/input.tsx index 11c9745c29..3979ce6505 100644 --- a/packages/core/client/src/schema-component/antd/input/demos/demo1.tsx +++ b/packages/core/client/src/schema-component/antd/input/demos/input.tsx @@ -1,6 +1,3 @@ -/** - * title: Input - */ import { FormItem } from '@formily/antd'; import { Input, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; import React from 'react'; @@ -9,7 +6,7 @@ const schema = { type: 'object', properties: { input: { - type: 'boolean', + type: 'string', title: `Editable`, 'x-decorator': 'FormItem', 'x-component': 'Input', @@ -23,7 +20,7 @@ const schema = { }, }, read: { - type: 'boolean', + type: 'string', title: `Read pretty`, 'x-read-pretty': true, 'x-decorator': 'FormItem', diff --git a/packages/core/client/src/schema-component/antd/input/demos/demo4.tsx b/packages/core/client/src/schema-component/antd/input/demos/json.tsx similarity index 97% rename from packages/core/client/src/schema-component/antd/input/demos/demo4.tsx rename to packages/core/client/src/schema-component/antd/input/demos/json.tsx index d661210986..6e3189cd55 100644 --- a/packages/core/client/src/schema-component/antd/input/demos/demo4.tsx +++ b/packages/core/client/src/schema-component/antd/input/demos/json.tsx @@ -1,6 +1,3 @@ -/** - * title: URL - */ import { FormItem } from '@formily/antd'; import { Input, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; import React from 'react'; diff --git a/packages/core/client/src/schema-component/antd/input/demos/demo2.tsx b/packages/core/client/src/schema-component/antd/input/demos/textarea.tsx similarity index 98% rename from packages/core/client/src/schema-component/antd/input/demos/demo2.tsx rename to packages/core/client/src/schema-component/antd/input/demos/textarea.tsx index 694398cda3..e26edecd38 100644 --- a/packages/core/client/src/schema-component/antd/input/demos/demo2.tsx +++ b/packages/core/client/src/schema-component/antd/input/demos/textarea.tsx @@ -1,6 +1,3 @@ -/** - * title: Textarea - */ import { FormItem } from '@formily/antd'; import { Input, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; import React from 'react'; diff --git a/packages/core/client/src/schema-component/antd/input/demos/demo3.tsx b/packages/core/client/src/schema-component/antd/input/demos/url.tsx similarity index 97% rename from packages/core/client/src/schema-component/antd/input/demos/demo3.tsx rename to packages/core/client/src/schema-component/antd/input/demos/url.tsx index 39954d27da..20bb0a3182 100644 --- a/packages/core/client/src/schema-component/antd/input/demos/demo3.tsx +++ b/packages/core/client/src/schema-component/antd/input/demos/url.tsx @@ -1,6 +1,3 @@ -/** - * title: URL - */ import { FormItem } from '@formily/antd'; import { Input, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; import React from 'react'; diff --git a/packages/core/client/src/schema-component/antd/input/index.md b/packages/core/client/src/schema-component/antd/input/index.md index d4654360ab..475922d127 100644 --- a/packages/core/client/src/schema-component/antd/input/index.md +++ b/packages/core/client/src/schema-component/antd/input/index.md @@ -17,16 +17,16 @@ group: ### Input - + ### Textarea - + ### URL - + ### JSON - + diff --git a/packages/core/client/src/schema-component/antd/kanban/__tests__/kanban.test.tsx b/packages/core/client/src/schema-component/antd/kanban/__tests__/kanban.test.tsx new file mode 100644 index 0000000000..704186b2d4 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/kanban/__tests__/kanban.test.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import { render, screen, sleep } from 'testUtils'; +import App1 from '../demos/demo1'; + +describe('Kanban', () => { + it('should render correctly', async () => { + render(); + + await sleep(300); + + // 每列卡片的状态 + expect(screen.getByText(/unknown/i)).toBeInTheDocument(); + expect(screen.getByText(/未开始/i)).toBeInTheDocument(); + expect(screen.getByText(/进行中/i)).toBeInTheDocument(); + expect(screen.getByText(/测试中/i)).toBeInTheDocument(); + expect(screen.getByText(/已完成/i)).toBeInTheDocument(); + + // 第一个卡片的内容 + expect(screen.getByText(/子表格字段缺少标题/i)).toBeInTheDocument(); + expect(screen.getByText(/见附件,在此位置显示标题,包括表单和详情/i)).toBeInTheDocument(); + + // 最后一个卡片的内容 + expect(screen.getByText(/新增 uischema:clearancestor action api/i)).toBeInTheDocument(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/kanban/demos/collections.ts b/packages/core/client/src/schema-component/antd/kanban/demos/collections.ts index d19d73227c..6e8bc8f8cf 100644 --- a/packages/core/client/src/schema-component/antd/kanban/demos/collections.ts +++ b/packages/core/client/src/schema-component/antd/kanban/demos/collections.ts @@ -1,1321 +1,1319 @@ -export default { - data: [ - { - key: '17zb9wfq0vt', - name: 'product', - title: 's', - inherit: false, - fields: [], - createdBy: true, - updatedBy: true, - sortable: true, - }, - { - key: '1s4aq7jbxdh', - name: 'roles', - title: '{{t("Roles")}}', - inherit: false, - fields: [ - { - key: 'gs6190e27z5', - name: 'name', - type: 'uid', - interface: 'input', - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'vy6i30jm9jm', - uiSchema: { - 'x-uid': 'vy6i30jm9jm', - name: 'vlldvknkn3t', - type: 'string', - title: '{{t("Role UID")}}', - 'x-component': 'Input', - }, - prefix: 'r_', - primaryKey: true, - }, - { - key: 'w0hvovoxnjh', - name: 'title', +export default [ + { + key: '17zb9wfq0vt', + name: 'product', + title: 's', + inherit: false, + fields: [], + createdBy: true, + updatedBy: true, + sortable: true, + }, + { + key: '1s4aq7jbxdh', + name: 'roles', + title: '{{t("Roles")}}', + inherit: false, + fields: [ + { + key: 'gs6190e27z5', + name: 'name', + type: 'uid', + interface: 'input', + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'vy6i30jm9jm', + uiSchema: { + 'x-uid': 'vy6i30jm9jm', + name: 'vlldvknkn3t', type: 'string', - interface: 'input', - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'pyq24tp0zkj', - uiSchema: { - 'x-uid': 'pyq24tp0zkj', - name: 'wtku9z07h69', - type: 'string', - title: '{{t("Role name")}}', - 'x-component': 'Input', - }, - unique: true, + title: '{{t("Role UID")}}', + 'x-component': 'Input', }, - { - key: 'lxysmomsdhy', - name: 'description', + prefix: 'r_', + primaryKey: true, + }, + { + key: 'w0hvovoxnjh', + name: 'title', + type: 'string', + interface: 'input', + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'pyq24tp0zkj', + uiSchema: { + 'x-uid': 'pyq24tp0zkj', + name: 'wtku9z07h69', type: 'string', - interface: null, - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, + title: '{{t("Role name")}}', + 'x-component': 'Input', }, - { - key: 'ynyhe4kgxku', - name: 'strategy', - type: 'json', - interface: null, - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - }, - { - key: 'qr9949ps9dv', - name: 'default', - type: 'boolean', - interface: null, - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - defaultValue: false, - }, - { - key: '11ts4nwrm8c', - name: 'allowConfigure', - type: 'boolean', - interface: null, - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - }, - { - key: 'nxj4s7xev9g', - name: 'allowNewMenu', - type: 'boolean', - interface: null, - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - }, - { - key: 'ibwisd53xeg', - name: 'menuUiSchemas', - type: 'belongsToMany', - interface: null, - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - target: 'uiSchemas', - targetKey: 'x-uid', - foreignKey: 'roleName', - sourceKey: 'name', - otherKey: 'uiSchemaXUid', - through: 'rolesUischemas', - }, - { - key: '0vt1uoy8f47', - name: 'resources', - type: 'hasMany', - interface: null, - collectionName: 'roles', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - target: 'rolesResources', - sourceKey: 'name', - targetKey: 'id', - foreignKey: 'roleName', - }, - ], - autoGenId: false, - model: 'RoleModel', - filterTargetKey: 'name', - }, - { - key: 'nhng5sgypw8', - name: 't_j6omof6tza8', - title: '任务', - inherit: false, - fields: [ - { - key: 'aabs1ya9aux', - name: 'f_g8j5jvalqh0', + unique: true, + }, + { + key: 'lxysmomsdhy', + name: 'description', + type: 'string', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + }, + { + key: 'ynyhe4kgxku', + name: 'strategy', + type: 'json', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + }, + { + key: 'qr9949ps9dv', + name: 'default', + type: 'boolean', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + defaultValue: false, + }, + { + key: '11ts4nwrm8c', + name: 'allowConfigure', + type: 'boolean', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + }, + { + key: 'nxj4s7xev9g', + name: 'allowNewMenu', + type: 'boolean', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + }, + { + key: 'ibwisd53xeg', + name: 'menuUiSchemas', + type: 'belongsToMany', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + target: 'uiSchemas', + targetKey: 'x-uid', + foreignKey: 'roleName', + sourceKey: 'name', + otherKey: 'uiSchemaXUid', + through: 'rolesUischemas', + }, + { + key: '0vt1uoy8f47', + name: 'resources', + type: 'hasMany', + interface: null, + collectionName: 'roles', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + target: 'rolesResources', + sourceKey: 'name', + targetKey: 'id', + foreignKey: 'roleName', + }, + ], + autoGenId: false, + model: 'RoleModel', + filterTargetKey: 'name', + }, + { + key: 'nhng5sgypw8', + name: 't_j6omof6tza8', + title: '任务', + inherit: false, + fields: [ + { + key: 'aabs1ya9aux', + name: 'f_g8j5jvalqh0', + type: 'string', + interface: 'input', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'tzb6h0tsbis', + uiSchema: { + 'x-uid': 'tzb6h0tsbis', + name: 'y94c05v2hp2', type: 'string', - interface: 'input', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'tzb6h0tsbis', - uiSchema: { - 'x-uid': 'tzb6h0tsbis', - name: 'y94c05v2hp2', - type: 'string', - 'x-component': 'Input', - title: '名称', - enum: [], - }, + 'x-component': 'Input', + title: '名称', + enum: [], }, - { - key: 'kidn54kisne', - name: 'f_tegyd222bcc', - type: 'text', - interface: 'textarea', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'p4uucjm3rrx', - uiSchema: { - 'x-uid': 'p4uucjm3rrx', - name: 'ri9ulk87owm', - type: 'string', - 'x-component': 'Input.TextArea', - title: '描述', - enum: [], - }, - }, - { - key: 'kwdiruosgsb', - name: 'f_u007sq2jg93', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: 's5w3l6pl1hn', - uiSchemaUid: 'iea79k3kmao', - uiSchema: { - 'x-uid': 'iea79k3kmao', - name: 'njked4wch3i', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, - title: '负责人', - enum: [], - }, - target: 'users', - targetKey: 'id', - sourceKey: 'id', - through: 't_7476m1wwsfe', - foreignKey: 'f_9zwkbo7dd18', - otherKey: 'f_q84aphtx7eb', - }, - { - key: 'w7civak6gp3', - name: 'f_hpmvdltzs6m', + }, + { + key: 'kidn54kisne', + name: 'f_tegyd222bcc', + type: 'text', + interface: 'textarea', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'p4uucjm3rrx', + uiSchema: { + 'x-uid': 'p4uucjm3rrx', + name: 'ri9ulk87owm', type: 'string', - interface: 'radioGroup', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: '481uv9zj072', - uiSchema: { - 'x-uid': '481uv9zj072', - name: '8fyelcfuzfu', - enum: [ - { value: '67snt3e6yld', label: '未开始', color: 'default' }, - { value: 'ht963n365al', label: '进行中', color: 'green' }, - { value: '2s2s8wzcnm0', label: '测试中', color: 'volcano' }, - { value: 'irepvdzp1ac', label: '已完成', color: 'blue' }, - ], - type: 'string', - 'x-component': 'Radio.Group', - title: '状态', - }, + 'x-component': 'Input.TextArea', + title: '描述', + enum: [], }, - { - key: '9x87w5z0ea6', - name: 'f_jj9cyhron1d', - type: 'hasMany', - interface: 'subTable', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'pndvx008mmn', - uiSchema: { - 'x-uid': 'pndvx008mmn', - name: 'l8xqzpkxj3p', - type: 'array', - 'x-component': 'Table', - 'x-component-props': {}, - enum: [], - title: '子任务', - }, - targetKey: 'id', - sourceKey: 'id', - foreignKey: 'f_yzivojrp6l8', - target: 't_ab12qiwruwk', + }, + { + key: 'kwdiruosgsb', + name: 'f_u007sq2jg93', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: 's5w3l6pl1hn', + uiSchemaUid: 'iea79k3kmao', + uiSchema: { + 'x-uid': 'iea79k3kmao', + name: 'njked4wch3i', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人', + enum: [], }, - { - key: '3f4y1iq16ux', - name: 'f_ooar0pto2ko', - type: 'belongsToMany', - interface: 'attachment', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: '5xf7izxjny5', - uiSchema: { - 'x-uid': '5xf7izxjny5', - name: '9az9003ijcm', - 'x-component-props': { multiple: true, action: 'attachments:create' }, - type: 'array', - 'x-component': 'Upload.Attachment', - title: '附件', - enum: [], - }, - target: 'attachments', - targetKey: 'id', - sourceKey: 'id', - through: 't_5a7wh2qhk4l', - foreignKey: 'f_tqfsxclrexu', - otherKey: 'f_j2krlyq6oka', - }, - { - key: '4um5urxskg0', - name: 'f_f7txg1oc3nt', - type: 'date', - interface: 'createdAt', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'jjax6r7c84m', - uiSchema: { - 'x-uid': 'jjax6r7c84m', - name: 'clidfmw96u3', - 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true, timeFormat: 'HH:mm:ss' }, - type: 'datetime', - title: '创建时间', - 'x-component': 'DatePicker', - 'x-read-pretty': true, - enum: [], - }, - field: 'createdAt', - }, - { - key: 'dnwqg2s3oph', - name: 'f_2dpc76bszit', - type: 'belongsTo', - interface: 'createdBy', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'po3y2pc112z', - uiSchema: { - 'x-uid': 'po3y2pc112z', - name: 'ke2rte2zikm', - type: 'object', - title: '创建人', - 'x-component': 'RecordPicker', - 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, - 'x-read-pretty': true, - enum: [], - }, - target: 'users', - foreignKey: 'createdById', - targetKey: 'id', - }, - { - key: '1sayjktagk3', - name: 'f_z27302tl2bf', + target: 'users', + targetKey: 'id', + sourceKey: 'id', + through: 't_7476m1wwsfe', + foreignKey: 'f_9zwkbo7dd18', + otherKey: 'f_q84aphtx7eb', + }, + { + key: 'w7civak6gp3', + name: 'f_hpmvdltzs6m', + type: 'string', + interface: 'radioGroup', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: '481uv9zj072', + uiSchema: { + 'x-uid': '481uv9zj072', + name: '8fyelcfuzfu', + enum: [ + { value: '67snt3e6yld', label: '未开始', color: 'default' }, + { value: 'ht963n365al', label: '进行中', color: 'green' }, + { value: '2s2s8wzcnm0', label: '测试中', color: 'volcano' }, + { value: 'irepvdzp1ac', label: '已完成', color: 'blue' }, + ], type: 'string', - interface: 'select', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: '0a28rxnov8o', - uiSchema: { - 'x-uid': '0a28rxnov8o', - name: '2vg44ojdq4j', - enum: [ - { value: 'mkvgt7ndsqd', label: '缺陷', color: 'volcano' }, - { value: '9yyv2tawmry', label: '交互', color: 'green' }, - { value: 'vx4bhmtsuus', label: '需求', color: 'cyan' }, - ], - type: 'string', - 'x-component': 'Select', - title: '类型', - }, + 'x-component': 'Radio.Group', + title: '状态', }, - { - key: 'zhvtzwta7bz', - name: 'f_yc8jbfiqfvh', - type: 'string', - interface: 'radioGroup', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'jijqs397op9', - uiSchema: { - 'x-uid': 'jijqs397op9', - name: '99v9hnujiuh', - enum: [ - { value: 's7hocw6twfk', label: '高', color: 'red' }, - { value: 'v25527dxseu', label: '中', color: 'blue' }, - { value: 'c4hobfb5k07', label: '低', color: 'lime' }, - ], - type: 'string', - 'x-component': 'Radio.Group', - title: '优先级', - }, - }, - { - key: 'nobsmkp6ypg', - name: 'f_ksgzy9vmgce', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: 'z70jtfabrm7', - uiSchemaUid: '3gbviwfd0cv', - uiSchema: { - 'x-uid': '3gbviwfd0cv', - name: '6sabm3win42', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, - title: '迭代', - enum: [], - }, - target: 't_94rsj6kbzvn', - targetKey: 'id', - sourceKey: 'id', - through: 't_ewdf2dsjlu3', - foreignKey: 'f_72tnpdz6kfg', - otherKey: 'f_8do8o1wsavk', - }, - { - key: 'rwtqeecnbst', - name: 'f_zek99qhv0vc', - type: 'date', - interface: 'updatedAt', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'df0kmwka9ra', - uiSchema: { - 'x-uid': 'df0kmwka9ra', - name: 'e3hmz8upyle', - 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true, timeFormat: 'HH:mm:ss' }, - type: 'datetime', - title: '更新时间', - 'x-component': 'DatePicker', - 'x-read-pretty': true, - }, - field: 'updatedAt', - }, - { - key: 'tm66hbii6zz', - name: 'f_cht6rsiiiko', - type: 'string', - interface: 'select', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'tkfjlde4ppl', - uiSchema: { - 'x-uid': 'tkfjlde4ppl', - name: 'p0rccyurzle', - enum: [ - { value: 'uduxfqpr5t2', label: '菜单' }, - { value: 'dnphxkwat35', label: '权限' }, - { value: '5cso9lpizog', label: '数据表' }, - { value: 'wlg329nsu3a', label: '字段' }, - { value: 'm8z7r06vk9z', label: '表格' }, - { value: 'ftfccbha25a', label: '表单' }, - { value: 'o33ljfkje2h', label: '详情' }, - { value: 'ym9wwk3aqbu', label: '日历' }, - { value: 'wge57qtiz14', label: '看板' }, - { value: 'm4xoc8rbafg', label: '操作' }, - { value: 'r6l2wg1snxc', label: '配置' }, - { value: 'j1cv1vf16fm', label: '附件' }, - { value: 'l464jdsy7vr', label: '容器' }, - ], - type: 'string', - 'x-component': 'Select', - title: '分类', - }, - }, - { - key: 'c9hzonl1hzq', - name: 'f_47f2d9wgofm', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: '7mufig9muag', - uiSchemaUid: 'rbl27ngs563', - uiSchema: { - 'x-uid': 'rbl27ngs563', - name: 'xrvwttiv064', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, - title: '相关任务', - }, - target: 't_j6omof6tza8', - targetKey: 'id', - sourceKey: 'id', - through: 't_qhgbwomd2t7', - foreignKey: 'f_jes256zqwr1', - otherKey: 'f_gtgjj059mye', - }, - { - key: '7mufig9muag', - name: 'f_qmlomqm7lvb', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: 'c9hzonl1hzq', - uiSchemaUid: 'vgy9cgq9v6b', - uiSchema: { - 'x-uid': 'vgy9cgq9v6b', - name: 'sf99arn65jj', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, - title: '任务', - }, - target: 't_j6omof6tza8', - through: 't_qhgbwomd2t7', - sourceKey: 'id', - foreignKey: 'f_gtgjj059mye', - targetKey: 'id', - otherKey: 'f_jes256zqwr1', - }, - { - key: 'hv3kx2z8edn', - name: 'f_hpmvdltzs6m_sort', - type: 'sort', - interface: null, - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - hidden: true, - scopeKey: 'f_hpmvdltzs6m', - }, - { - key: 'q6wy6jcpdfr', - name: 'f_a4z4h45vi5b', - type: 'string', - interface: 'select', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'lx4k023vm7k', - uiSchema: { - 'x-uid': 'lx4k023vm7k', - name: 'e9u95lm0c2q', - enum: [ - { value: 'hgobsqbfnd4', label: 'SchemaInitializer', color: 'red' }, - { value: 't8prrpfk7kl', label: 'SchemaSettings', color: 'magenta' }, - { value: 'r3fxlrunwd8', label: 'SchemaComponent', color: 'lime' }, - { value: 'bidogljo0l3', label: 'CollectionField', color: 'blue' }, - { value: 'ygy1zfdr1z6', label: 'ACL', color: 'purple' }, - { value: 'ef9qf0wzpt5', label: 'DndContext', color: 'cyan' }, - { value: '45sfwd7ie30', label: 'useRequest', color: 'volcano' }, - ], - type: 'string', - 'x-component': 'Select', - title: '开发分类', - }, - }, - { - key: '936iis76zdx', - name: 'f_a4z4h45vi5b_sort', - type: 'sort', - interface: null, - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - hidden: true, - scopeKey: 'f_a4z4h45vi5b', - }, - { - key: 'zre21o0a5a9', - name: 'f_d93g4r08krl', - type: 'string', - interface: 'input', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: '96geljdh9j6', - uiSchema: { - 'x-uid': '96geljdh9j6', - name: 'zplxa37mb0y', - type: 'string', - 'x-component': 'Input', - title: '评估', - enum: [], - }, - }, - { - key: 'jasdf0kcqbs', - name: 'f_1ckuegfab9s', - type: 'text', - interface: 'textarea', - collectionName: 't_j6omof6tza8', - parentKey: null, - reverseKey: null, - uiSchemaUid: '61h9pserdqr', - uiSchema: { - 'x-uid': '61h9pserdqr', - name: 'uepfpdv289y', - type: 'string', - 'x-component': 'Input.TextArea', - title: '评估备注', - }, - }, - ], - createdBy: true, - updatedBy: true, - sortable: true, - }, - { - key: 'nlxapox70a3', - name: 't_ab12qiwruwk', - title: null, - inherit: true, - fields: [ - { - key: 'q9xx9ixxxyb', - name: 'f_m7ibo1vrvnm', - type: 'string', - interface: 'input', - collectionName: 't_ab12qiwruwk', - parentKey: '9x87w5z0ea6', - reverseKey: null, - uiSchemaUid: 'ucn6wm03zrq', - uiSchema: { - 'x-uid': 'ucn6wm03zrq', - name: 'k07s9nhhj6c', - type: 'string', - 'x-component': 'Input', - title: '名称', - }, - }, - { - key: 'y91qig4eyzm', - name: 'f_kukaw9kddyj', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 't_ab12qiwruwk', - parentKey: '9x87w5z0ea6', - reverseKey: 'tvwwt24vukv', - uiSchemaUid: '7c9ch1fknbr', - uiSchema: { - 'x-uid': '7c9ch1fknbr', - name: 'gv1k2nhucte', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, - title: '负责人', - }, - target: 'users', - targetKey: 'id', - sourceKey: 'id', - through: 't_gsv43y8ebt8', - foreignKey: 'f_hbbvlsbe9gs', - otherKey: 'f_bhj1xy7uyc8', - }, - { - key: 'gg0xx1vln6w', - name: 'f_4mpiovytw4d', - type: 'text', - interface: 'textarea', - collectionName: 't_ab12qiwruwk', - parentKey: '9x87w5z0ea6', - reverseKey: null, - uiSchemaUid: '3xgmf0ee5fn', - uiSchema: { - 'x-uid': '3xgmf0ee5fn', - name: '28sf67whpfs', - type: 'string', - 'x-component': 'Input.TextArea', - title: '描述', - }, - }, - { - key: 'zpz6o74z9u4', - name: 'f_lxsum89wkzd', - type: 'belongsToMany', - interface: 'attachment', - collectionName: 't_ab12qiwruwk', - parentKey: '9x87w5z0ea6', - reverseKey: null, - uiSchemaUid: 'wosew16td91', - uiSchema: { - 'x-uid': 'wosew16td91', - name: 'p82ihvtkxtf', - 'x-component-props': { multiple: true, action: 'attachments:create' }, - type: 'array', - 'x-component': 'Upload.Attachment', - title: '附件', - }, - target: 'attachments', - targetKey: 'id', - sourceKey: 'id', - through: 't_cn6cweinuw7', - foreignKey: 'f_r824sp05l43', - otherKey: 'f_8k3e4i0d04y', - }, - ], - createdBy: true, - updatedBy: true, - sortable: true, - }, - { - key: 'oftbzt8nm2o', - name: 'users', - title: '{{t("Users")}}', - inherit: false, - fields: [ - { - key: 'khov1egnsur', - name: 'nickname', - type: 'string', - interface: 'input', - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: '3ohfk46bf7o', - uiSchema: { - 'x-uid': '3ohfk46bf7o', - name: 'prmmf3kg8rx', - type: 'string', - title: '{{t("Nickname")}}', - 'x-component': 'Input', - }, - }, - { - key: 'u6cvmn45o6a', - name: 'email', - type: 'string', - interface: 'email', - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: '69ywpwux1zh', - uiSchema: { - 'x-uid': '69ywpwux1zh', - name: 'u8djuprwttj', - type: 'string', - title: '{{t("Email")}}', - 'x-component': 'Input', - require: true, - }, - unique: true, - }, - { - key: 'jwaky9982f2', - name: 'password', - type: 'password', - interface: 'password', - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'qs374baqkh0', - uiSchema: { - 'x-uid': 'qs374baqkh0', - name: 'tf5dolxh2i4', - type: 'string', - title: '{{t("Password")}}', - 'x-component': 'Password', - }, - hidden: true, - }, - { - key: '4g5nics20go', - name: 'roles', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'lpkacakd4my', - uiSchema: { - 'x-uid': 'lpkacakd4my', - name: '3oylvillmwu', - type: 'array', - title: '{{t("Roles")}}', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: true, fieldNames: { label: 'title', value: 'name' } }, - }, - target: 'roles', - foreignKey: 'userId', - otherKey: 'roleName', - sourceKey: 'id', - targetKey: 'name', - through: 'rolesUsers', - }, - { - key: 'cqqhyq32tvf', - name: 'appLang', - type: 'string', - interface: null, - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - }, - { - key: 't7t97s1rwid', - name: 'token', - type: 'string', - interface: null, - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - unique: true, - hidden: true, - }, - { - key: '5myliungho1', - name: 'resetToken', - type: 'string', - interface: null, - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - unique: true, - hidden: true, - }, - { - key: 'q2eg83quxls', - name: 'sort', - type: 'sort', - interface: null, - collectionName: 'users', - parentKey: null, - reverseKey: null, - uiSchemaUid: null, - uiSchema: {}, - hidden: true, - }, - { - key: 's5w3l6pl1hn', - name: 'f_xd4v2uljqcu', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 'users', - parentKey: null, - reverseKey: 'kwdiruosgsb', - uiSchemaUid: 'zv4gvihowwm', - uiSchema: { - 'x-uid': 'zv4gvihowwm', - name: 'mjjpnphkkhf', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, - title: '负责人', - }, - target: 't_j6omof6tza8', - through: 't_7476m1wwsfe', - sourceKey: 'id', - foreignKey: 'f_q84aphtx7eb', - targetKey: 'id', - otherKey: 'f_9zwkbo7dd18', - }, - { - key: 'tvwwt24vukv', - name: 'f_qpsqy5rtc8t', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 'users', - parentKey: null, - reverseKey: 'y91qig4eyzm', - uiSchemaUid: '5ksz03zw47c', - uiSchema: { - 'x-uid': '5ksz03zw47c', - name: '8ukjiawzduz', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, - title: '负责人', - }, - target: 't_ab12qiwruwk', - through: 't_gsv43y8ebt8', - sourceKey: 'id', - foreignKey: 'f_bhj1xy7uyc8', - targetKey: 'id', - otherKey: 'f_hbbvlsbe9gs', - }, - ], - sortable: 'sort', - }, - { - key: 'tyztw0ulriv', - name: 't_94rsj6kbzvn', - title: '迭代', - inherit: false, - fields: [ - { - key: 'nq4mp00jwip', - name: 'f_zio9ewkxss7', - type: 'string', - interface: 'input', - collectionName: 't_94rsj6kbzvn', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'q7vois7ptlt', - uiSchema: { - 'x-uid': 'q7vois7ptlt', - name: 'o9ue1s4tu8k', - type: 'string', - 'x-component': 'Input', - title: '名称', - enum: [], - }, - }, - { - key: 'ec2833af7n1', - name: 'f_ojboh2wxpju', - type: 'text', - interface: 'textarea', - collectionName: 't_94rsj6kbzvn', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'pco1f8sq2jq', - uiSchema: { - 'x-uid': 'pco1f8sq2jq', - name: 'lb2hdydextn', - type: 'string', - 'x-component': 'Input.TextArea', - title: '描述', - enum: [], - }, - }, - { - key: '82uqmdjr3v4', - name: 'f_nunmzapigvk', - type: 'date', - interface: 'datetime', - collectionName: 't_94rsj6kbzvn', - parentKey: null, - reverseKey: null, - uiSchemaUid: '2gawk8arctt', - uiSchema: { - 'x-uid': '2gawk8arctt', - name: 'j9j7c2wyev2', - 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: false }, - type: 'datetime', - 'x-component': 'DatePicker', - title: '开始日期', - enum: [], - }, - }, - { - key: 'mdx2eqz9ei8', - name: 'f_rberbnphu9u', - type: 'date', - interface: 'datetime', - collectionName: 't_94rsj6kbzvn', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'pj0znpff63y', - uiSchema: { - 'x-uid': 'pj0znpff63y', - name: 'c5h7agr2qy4', - 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: false }, - type: 'datetime', - 'x-component': 'DatePicker', - title: '结束日期', - enum: [], - }, - }, - { - key: 'z70jtfabrm7', - name: 'f_rabhmdetc3p', - type: 'belongsToMany', - interface: 'linkTo', - collectionName: 't_94rsj6kbzvn', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'aun2xsfua8d', - uiSchema: { - 'x-uid': 'aun2xsfua8d', - name: 'i508c1outz2', - 'x-component': 'RecordPicker', - 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, - title: '任务', - enum: [], - }, - target: 't_j6omof6tza8', - through: 't_ewdf2dsjlu3', - sourceKey: 'id', - foreignKey: 'f_8do8o1wsavk', - targetKey: 'id', - otherKey: 'f_72tnpdz6kfg', - }, - ], - createdBy: true, - updatedBy: true, - sortable: true, - }, - { - key: 'vv8umfa9592', - name: 'test_sheet', - title: '测试表', - inherit: false, - fields: [ - { - key: 'q1xye1ooeol', - name: 'f_7mh6k6re0ey', - type: 'string', - interface: 'phone', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 't9ddc5n5pv8', - uiSchema: { - 'x-uid': 't9ddc5n5pv8', - name: 'd3hwsg020u8', - type: 'string', - 'x-component': 'Input', - 'x-validator': 'phone', - title: '手机', - }, - }, - { - key: '25icwn35oin', - name: 'f_turkjlzi52z', - type: 'string', - interface: 'email', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: '3bkgd97f63v', - uiSchema: { - 'x-uid': '3bkgd97f63v', - name: 'zkvhu5cm4no', - type: 'string', - 'x-component': 'Input', - 'x-validator': 'email', - title: '邮箱', - }, - }, - { - key: '3cqe0mpcrmg', - name: 'f_c14whhblhtd', - type: 'float', - interface: 'number', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: '4bajzziz060', - uiSchema: { - 'x-uid': '4bajzziz060', - name: '366t9rvl34b', - 'x-component-props': { step: '0.01', stringMode: true }, - type: 'number', - 'x-component': 'InputNumber', - title: '数字', - }, - }, - { - key: 'y39vi1z69pw', - name: 'f_z1b674d907e', - type: 'float', - interface: 'percent', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'vbnoib14uzl', - uiSchema: { - 'x-uid': 'vbnoib14uzl', - name: 'rumohzj4lh6', - 'x-component-props': { step: '0.1', stringMode: true, addonAfter: '%' }, - type: 'string', - 'x-component': 'InputNumber', - title: '百分比', - }, - }, - { - key: 'eouuwoag6ka', - name: 'f_4tzp4nhmvt2', - type: 'string', - interface: 'icon', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'qmmw3zc8l60', - uiSchema: { - 'x-uid': 'qmmw3zc8l60', - name: 'aivg5c51gc9', - type: 'string', - 'x-component': 'IconPicker', - title: '图标', - }, - }, - { - key: 'qurfmfe2hfi', - name: 'f_z0s4m3hgadd', - type: 'password', - interface: 'password', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'tkp46kn682m', - uiSchema: { - 'x-uid': 'tkp46kn682m', - name: '7q7yeobot0j', - type: 'string', - 'x-component': 'Password', - title: '密码', - }, - }, - { - key: 'ka4k5tfh3k5', - name: 'f_q5qnozezx9s', - type: 'boolean', - interface: 'checkbox', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'wgyf4ozsvdi', - uiSchema: { - 'x-uid': 'wgyf4ozsvdi', - name: 'x6agce8s18w', - type: 'boolean', - 'x-component': 'Checkbox', - title: '勾选', - }, - }, - { - key: '3dhczyw3ye2', - name: 'f_jbzwvldpyaa', + }, + { + key: '9x87w5z0ea6', + name: 'f_jj9cyhron1d', + type: 'hasMany', + interface: 'subTable', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'pndvx008mmn', + uiSchema: { + 'x-uid': 'pndvx008mmn', + name: 'l8xqzpkxj3p', type: 'array', - interface: 'multipleSelect', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'hlmfjs2pu9t', - uiSchema: { - 'x-uid': 'hlmfjs2pu9t', - name: 'ao52nx5pune', - enum: [ - { value: '6mbqdwuzfca', label: '选项1', color: 'red' }, - { value: '9zi6s2fbj0q', label: '选项2', color: 'geekblue' }, - ], - type: 'array', - 'x-component': 'Select', - 'x-component-props': { mode: 'multiple' }, - title: '多选', - }, - defaultValue: [], + 'x-component': 'Table', + 'x-component-props': {}, + enum: [], + title: '子任务', }, - { - key: 'erdrp1gi587', - name: 'f_04krym08wxq', + targetKey: 'id', + sourceKey: 'id', + foreignKey: 'f_yzivojrp6l8', + target: 't_ab12qiwruwk', + }, + { + key: '3f4y1iq16ux', + name: 'f_ooar0pto2ko', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: '5xf7izxjny5', + uiSchema: { + 'x-uid': '5xf7izxjny5', + name: '9az9003ijcm', + 'x-component-props': { multiple: true, action: 'attachments:create' }, type: 'array', - interface: 'checkboxGroup', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: '6has8wyzohq', - uiSchema: { - 'x-uid': '6has8wyzohq', - name: 'fvwsjt58xx4', - enum: [ - { value: '4lsgdvfl7xq', label: '复选2', color: 'cyan' }, - { value: 'qzuki8bmilg', label: '复选1', color: 'purple' }, - ], - type: 'string', - 'x-component': 'Checkbox.Group', - title: '复选', - }, - defaultValue: [], + 'x-component': 'Upload.Attachment', + title: '附件', + enum: [], }, - { - key: 'rykbub69xu7', - name: 'f_xclbl3htmxs', - type: 'belongsToMany', - interface: 'chinaRegion', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'yml5yqzgvn8', - uiSchema: { - 'x-uid': 'yml5yqzgvn8', - name: '2ye7y09agup', - 'x-component-props': { - maxLevel: 5, - useDataSource: '{{ useChinaRegionDataSource }}', - useLoadData: '{{ useChinaRegionLoadData }}', - changeOnSelectLast: true, - labelInValue: true, - fieldNames: { label: 'name', value: 'code', children: 'children' }, - }, - type: 'array', - 'x-component': 'Cascader', - title: '中国地区', - }, - target: 'chinaRegions', - targetKey: 'code', - sortBy: 'level', - sourceKey: 'id', - through: 't_o9ry49u6xez', - foreignKey: 'f_44r8nsvdvz7', - otherKey: 'f_l0tzoymin3i', + target: 'attachments', + targetKey: 'id', + sourceKey: 'id', + through: 't_5a7wh2qhk4l', + foreignKey: 'f_tqfsxclrexu', + otherKey: 'f_j2krlyq6oka', + }, + { + key: '4um5urxskg0', + name: 'f_f7txg1oc3nt', + type: 'date', + interface: 'createdAt', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'jjax6r7c84m', + uiSchema: { + 'x-uid': 'jjax6r7c84m', + name: 'clidfmw96u3', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true, timeFormat: 'HH:mm:ss' }, + type: 'datetime', + title: '创建时间', + 'x-component': 'DatePicker', + 'x-read-pretty': true, + enum: [], }, - { - key: 'acm789iz922', - name: 'f_v4cgx7l5hwm', - type: 'text', - interface: 'markdown', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: '8a2erdhwcvb', - uiSchema: { - 'x-uid': '8a2erdhwcvb', - name: 'rqeiz26vuns', - type: 'string', - 'x-component': 'Markdown', - title: 'Markdown', - }, + field: 'createdAt', + }, + { + key: 'dnwqg2s3oph', + name: 'f_2dpc76bszit', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'po3y2pc112z', + uiSchema: { + 'x-uid': 'po3y2pc112z', + name: 'ke2rte2zikm', + type: 'object', + title: '创建人', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + enum: [], }, - { - key: 'zmip3swglzv', - name: 'f_ztaop411cdw', - type: 'time', - interface: 'time', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'r6s6rrjzfml', - uiSchema: { - 'x-uid': 'r6s6rrjzfml', - name: 'ct893ay5apv', - 'x-component-props': { format: 'HH:mm:ss' }, - type: 'string', - 'x-component': 'TimePicker', - title: '时间', - }, + target: 'users', + foreignKey: 'createdById', + targetKey: 'id', + }, + { + key: '1sayjktagk3', + name: 'f_z27302tl2bf', + type: 'string', + interface: 'select', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: '0a28rxnov8o', + uiSchema: { + 'x-uid': '0a28rxnov8o', + name: '2vg44ojdq4j', + enum: [ + { value: 'mkvgt7ndsqd', label: '缺陷', color: 'volcano' }, + { value: '9yyv2tawmry', label: '交互', color: 'green' }, + { value: 'vx4bhmtsuus', label: '需求', color: 'cyan' }, + ], + type: 'string', + 'x-component': 'Select', + title: '类型', }, - { - key: 'nx1p69b6g96', - name: 'f_mf8ccm0pjmh', - type: 'date', - interface: 'datetime', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: '08p9oztyjf2', - uiSchema: { - 'x-uid': '08p9oztyjf2', - name: 'bkdnndmfpeo', - 'x-component-props': { dateFormat: 'DD/MM/YYYY', showTime: true, timeFormat: 'HH:mm:ss' }, - type: 'datetime', - 'x-component': 'DatePicker', - title: '日期', - enum: [], - }, + }, + { + key: 'zhvtzwta7bz', + name: 'f_yc8jbfiqfvh', + type: 'string', + interface: 'radioGroup', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'jijqs397op9', + uiSchema: { + 'x-uid': 'jijqs397op9', + name: '99v9hnujiuh', + enum: [ + { value: 's7hocw6twfk', label: '高', color: 'red' }, + { value: 'v25527dxseu', label: '中', color: 'blue' }, + { value: 'c4hobfb5k07', label: '低', color: 'lime' }, + ], + type: 'string', + 'x-component': 'Radio.Group', + title: '优先级', }, - { - key: 'ge57kma4gue', - name: 'f_dqq0xjkdqbo', - type: 'belongsTo', - interface: 'createdBy', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'zzmst1r01gc', - uiSchema: { - 'x-uid': 'zzmst1r01gc', - name: 'def1ngennlx', - type: 'object', - title: '创建人', - 'x-component': 'RecordPicker', - 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, - 'x-read-pretty': true, - }, - target: 'users', - foreignKey: 'createdById', - targetKey: 'id', + }, + { + key: 'nobsmkp6ypg', + name: 'f_ksgzy9vmgce', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: 'z70jtfabrm7', + uiSchemaUid: '3gbviwfd0cv', + uiSchema: { + 'x-uid': '3gbviwfd0cv', + name: '6sabm3win42', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '迭代', + enum: [], }, - { - key: 'yqye22n1f1c', - name: 'f_7ukoar9jevs', - type: 'date', - interface: 'createdAt', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'lgnqb28lb91', - uiSchema: { - 'x-uid': 'lgnqb28lb91', - name: 'jdjz5cngm3j', - 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true, timeFormat: 'HH:mm:ss' }, - type: 'datetime', - title: '创建日期', - 'x-component': 'DatePicker', - 'x-read-pretty': true, - }, - field: 'createdAt', + target: 't_94rsj6kbzvn', + targetKey: 'id', + sourceKey: 'id', + through: 't_ewdf2dsjlu3', + foreignKey: 'f_72tnpdz6kfg', + otherKey: 'f_8do8o1wsavk', + }, + { + key: 'rwtqeecnbst', + name: 'f_zek99qhv0vc', + type: 'date', + interface: 'updatedAt', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'df0kmwka9ra', + uiSchema: { + 'x-uid': 'df0kmwka9ra', + name: 'e3hmz8upyle', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true, timeFormat: 'HH:mm:ss' }, + type: 'datetime', + title: '更新时间', + 'x-component': 'DatePicker', + 'x-read-pretty': true, }, - { - key: 'n4ap9l1l4wd', - name: 'f_81orjgxlbuo', - type: 'date', - interface: 'updatedAt', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'z19egimonh9', - uiSchema: { - 'x-uid': 'z19egimonh9', - name: 'xtzu6cpnsm4', - 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true }, - type: 'datetime', - title: '修改日期', - 'x-component': 'DatePicker', - 'x-read-pretty': true, - }, - field: 'updatedAt', + field: 'updatedAt', + }, + { + key: 'tm66hbii6zz', + name: 'f_cht6rsiiiko', + type: 'string', + interface: 'select', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'tkfjlde4ppl', + uiSchema: { + 'x-uid': 'tkfjlde4ppl', + name: 'p0rccyurzle', + enum: [ + { value: 'uduxfqpr5t2', label: '菜单' }, + { value: 'dnphxkwat35', label: '权限' }, + { value: '5cso9lpizog', label: '数据表' }, + { value: 'wlg329nsu3a', label: '字段' }, + { value: 'm8z7r06vk9z', label: '表格' }, + { value: 'ftfccbha25a', label: '表单' }, + { value: 'o33ljfkje2h', label: '详情' }, + { value: 'ym9wwk3aqbu', label: '日历' }, + { value: 'wge57qtiz14', label: '看板' }, + { value: 'm4xoc8rbafg', label: '操作' }, + { value: 'r6l2wg1snxc', label: '配置' }, + { value: 'j1cv1vf16fm', label: '附件' }, + { value: 'l464jdsy7vr', label: '容器' }, + ], + type: 'string', + 'x-component': 'Select', + title: '分类', }, - { - key: 'oqy67fm6af8', - name: 'f_e31b9oqe9ej', - type: 'belongsTo', - interface: 'updatedBy', - collectionName: 'test_sheet', - parentKey: null, - reverseKey: null, - uiSchemaUid: 'tm4f7z0nyso', - uiSchema: { - 'x-uid': 'tm4f7z0nyso', - name: '19srjtwyce1', - type: 'object', - title: '修改人', - 'x-component': 'RecordPicker', - 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, - 'x-read-pretty': true, - }, - target: 'users', - foreignKey: 'updatedById', - targetKey: 'id', + }, + { + key: 'c9hzonl1hzq', + name: 'f_47f2d9wgofm', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: '7mufig9muag', + uiSchemaUid: 'rbl27ngs563', + uiSchema: { + 'x-uid': 'rbl27ngs563', + name: 'xrvwttiv064', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '相关任务', }, - ], - createdBy: true, - updatedBy: true, - sortable: true, - }, - ], -}; + target: 't_j6omof6tza8', + targetKey: 'id', + sourceKey: 'id', + through: 't_qhgbwomd2t7', + foreignKey: 'f_jes256zqwr1', + otherKey: 'f_gtgjj059mye', + }, + { + key: '7mufig9muag', + name: 'f_qmlomqm7lvb', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: 'c9hzonl1hzq', + uiSchemaUid: 'vgy9cgq9v6b', + uiSchema: { + 'x-uid': 'vgy9cgq9v6b', + name: 'sf99arn65jj', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '任务', + }, + target: 't_j6omof6tza8', + through: 't_qhgbwomd2t7', + sourceKey: 'id', + foreignKey: 'f_gtgjj059mye', + targetKey: 'id', + otherKey: 'f_jes256zqwr1', + }, + { + key: 'hv3kx2z8edn', + name: 'f_hpmvdltzs6m_sort', + type: 'sort', + interface: null, + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + hidden: true, + scopeKey: 'f_hpmvdltzs6m', + }, + { + key: 'q6wy6jcpdfr', + name: 'f_a4z4h45vi5b', + type: 'string', + interface: 'select', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'lx4k023vm7k', + uiSchema: { + 'x-uid': 'lx4k023vm7k', + name: 'e9u95lm0c2q', + enum: [ + { value: 'hgobsqbfnd4', label: 'SchemaInitializer', color: 'red' }, + { value: 't8prrpfk7kl', label: 'SchemaSettings', color: 'magenta' }, + { value: 'r3fxlrunwd8', label: 'SchemaComponent', color: 'lime' }, + { value: 'bidogljo0l3', label: 'CollectionField', color: 'blue' }, + { value: 'ygy1zfdr1z6', label: 'ACL', color: 'purple' }, + { value: 'ef9qf0wzpt5', label: 'DndContext', color: 'cyan' }, + { value: '45sfwd7ie30', label: 'useRequest', color: 'volcano' }, + ], + type: 'string', + 'x-component': 'Select', + title: '开发分类', + }, + }, + { + key: '936iis76zdx', + name: 'f_a4z4h45vi5b_sort', + type: 'sort', + interface: null, + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + hidden: true, + scopeKey: 'f_a4z4h45vi5b', + }, + { + key: 'zre21o0a5a9', + name: 'f_d93g4r08krl', + type: 'string', + interface: 'input', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: '96geljdh9j6', + uiSchema: { + 'x-uid': '96geljdh9j6', + name: 'zplxa37mb0y', + type: 'string', + 'x-component': 'Input', + title: '评估', + enum: [], + }, + }, + { + key: 'jasdf0kcqbs', + name: 'f_1ckuegfab9s', + type: 'text', + interface: 'textarea', + collectionName: 't_j6omof6tza8', + parentKey: null, + reverseKey: null, + uiSchemaUid: '61h9pserdqr', + uiSchema: { + 'x-uid': '61h9pserdqr', + name: 'uepfpdv289y', + type: 'string', + 'x-component': 'Input.TextArea', + title: '评估备注', + }, + }, + ], + createdBy: true, + updatedBy: true, + sortable: true, + }, + { + key: 'nlxapox70a3', + name: 't_ab12qiwruwk', + title: null, + inherit: true, + fields: [ + { + key: 'q9xx9ixxxyb', + name: 'f_m7ibo1vrvnm', + type: 'string', + interface: 'input', + collectionName: 't_ab12qiwruwk', + parentKey: '9x87w5z0ea6', + reverseKey: null, + uiSchemaUid: 'ucn6wm03zrq', + uiSchema: { + 'x-uid': 'ucn6wm03zrq', + name: 'k07s9nhhj6c', + type: 'string', + 'x-component': 'Input', + title: '名称', + }, + }, + { + key: 'y91qig4eyzm', + name: 'f_kukaw9kddyj', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_ab12qiwruwk', + parentKey: '9x87w5z0ea6', + reverseKey: 'tvwwt24vukv', + uiSchemaUid: '7c9ch1fknbr', + uiSchema: { + 'x-uid': '7c9ch1fknbr', + name: 'gv1k2nhucte', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: false, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人', + }, + target: 'users', + targetKey: 'id', + sourceKey: 'id', + through: 't_gsv43y8ebt8', + foreignKey: 'f_hbbvlsbe9gs', + otherKey: 'f_bhj1xy7uyc8', + }, + { + key: 'gg0xx1vln6w', + name: 'f_4mpiovytw4d', + type: 'text', + interface: 'textarea', + collectionName: 't_ab12qiwruwk', + parentKey: '9x87w5z0ea6', + reverseKey: null, + uiSchemaUid: '3xgmf0ee5fn', + uiSchema: { + 'x-uid': '3xgmf0ee5fn', + name: '28sf67whpfs', + type: 'string', + 'x-component': 'Input.TextArea', + title: '描述', + }, + }, + { + key: 'zpz6o74z9u4', + name: 'f_lxsum89wkzd', + type: 'belongsToMany', + interface: 'attachment', + collectionName: 't_ab12qiwruwk', + parentKey: '9x87w5z0ea6', + reverseKey: null, + uiSchemaUid: 'wosew16td91', + uiSchema: { + 'x-uid': 'wosew16td91', + name: 'p82ihvtkxtf', + 'x-component-props': { multiple: true, action: 'attachments:create' }, + type: 'array', + 'x-component': 'Upload.Attachment', + title: '附件', + }, + target: 'attachments', + targetKey: 'id', + sourceKey: 'id', + through: 't_cn6cweinuw7', + foreignKey: 'f_r824sp05l43', + otherKey: 'f_8k3e4i0d04y', + }, + ], + createdBy: true, + updatedBy: true, + sortable: true, + }, + { + key: 'oftbzt8nm2o', + name: 'users', + title: '{{t("Users")}}', + inherit: false, + fields: [ + { + key: 'khov1egnsur', + name: 'nickname', + type: 'string', + interface: 'input', + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: '3ohfk46bf7o', + uiSchema: { + 'x-uid': '3ohfk46bf7o', + name: 'prmmf3kg8rx', + type: 'string', + title: '{{t("Nickname")}}', + 'x-component': 'Input', + }, + }, + { + key: 'u6cvmn45o6a', + name: 'email', + type: 'string', + interface: 'email', + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: '69ywpwux1zh', + uiSchema: { + 'x-uid': '69ywpwux1zh', + name: 'u8djuprwttj', + type: 'string', + title: '{{t("Email")}}', + 'x-component': 'Input', + require: true, + }, + unique: true, + }, + { + key: 'jwaky9982f2', + name: 'password', + type: 'password', + interface: 'password', + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'qs374baqkh0', + uiSchema: { + 'x-uid': 'qs374baqkh0', + name: 'tf5dolxh2i4', + type: 'string', + title: '{{t("Password")}}', + 'x-component': 'Password', + }, + hidden: true, + }, + { + key: '4g5nics20go', + name: 'roles', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'lpkacakd4my', + uiSchema: { + 'x-uid': 'lpkacakd4my', + name: '3oylvillmwu', + type: 'array', + title: '{{t("Roles")}}', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'title', value: 'name' } }, + }, + target: 'roles', + foreignKey: 'userId', + otherKey: 'roleName', + sourceKey: 'id', + targetKey: 'name', + through: 'rolesUsers', + }, + { + key: 'cqqhyq32tvf', + name: 'appLang', + type: 'string', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + }, + { + key: 't7t97s1rwid', + name: 'token', + type: 'string', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + unique: true, + hidden: true, + }, + { + key: '5myliungho1', + name: 'resetToken', + type: 'string', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + unique: true, + hidden: true, + }, + { + key: 'q2eg83quxls', + name: 'sort', + type: 'sort', + interface: null, + collectionName: 'users', + parentKey: null, + reverseKey: null, + uiSchemaUid: null, + uiSchema: {}, + hidden: true, + }, + { + key: 's5w3l6pl1hn', + name: 'f_xd4v2uljqcu', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 'users', + parentKey: null, + reverseKey: 'kwdiruosgsb', + uiSchemaUid: 'zv4gvihowwm', + uiSchema: { + 'x-uid': 'zv4gvihowwm', + name: 'mjjpnphkkhf', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人', + }, + target: 't_j6omof6tza8', + through: 't_7476m1wwsfe', + sourceKey: 'id', + foreignKey: 'f_q84aphtx7eb', + targetKey: 'id', + otherKey: 'f_9zwkbo7dd18', + }, + { + key: 'tvwwt24vukv', + name: 'f_qpsqy5rtc8t', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 'users', + parentKey: null, + reverseKey: 'y91qig4eyzm', + uiSchemaUid: '5ksz03zw47c', + uiSchema: { + 'x-uid': '5ksz03zw47c', + name: '8ukjiawzduz', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '负责人', + }, + target: 't_ab12qiwruwk', + through: 't_gsv43y8ebt8', + sourceKey: 'id', + foreignKey: 'f_bhj1xy7uyc8', + targetKey: 'id', + otherKey: 'f_hbbvlsbe9gs', + }, + ], + sortable: 'sort', + }, + { + key: 'tyztw0ulriv', + name: 't_94rsj6kbzvn', + title: '迭代', + inherit: false, + fields: [ + { + key: 'nq4mp00jwip', + name: 'f_zio9ewkxss7', + type: 'string', + interface: 'input', + collectionName: 't_94rsj6kbzvn', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'q7vois7ptlt', + uiSchema: { + 'x-uid': 'q7vois7ptlt', + name: 'o9ue1s4tu8k', + type: 'string', + 'x-component': 'Input', + title: '名称', + enum: [], + }, + }, + { + key: 'ec2833af7n1', + name: 'f_ojboh2wxpju', + type: 'text', + interface: 'textarea', + collectionName: 't_94rsj6kbzvn', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'pco1f8sq2jq', + uiSchema: { + 'x-uid': 'pco1f8sq2jq', + name: 'lb2hdydextn', + type: 'string', + 'x-component': 'Input.TextArea', + title: '描述', + enum: [], + }, + }, + { + key: '82uqmdjr3v4', + name: 'f_nunmzapigvk', + type: 'date', + interface: 'datetime', + collectionName: 't_94rsj6kbzvn', + parentKey: null, + reverseKey: null, + uiSchemaUid: '2gawk8arctt', + uiSchema: { + 'x-uid': '2gawk8arctt', + name: 'j9j7c2wyev2', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: false }, + type: 'datetime', + 'x-component': 'DatePicker', + title: '开始日期', + enum: [], + }, + }, + { + key: 'mdx2eqz9ei8', + name: 'f_rberbnphu9u', + type: 'date', + interface: 'datetime', + collectionName: 't_94rsj6kbzvn', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'pj0znpff63y', + uiSchema: { + 'x-uid': 'pj0znpff63y', + name: 'c5h7agr2qy4', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: false }, + type: 'datetime', + 'x-component': 'DatePicker', + title: '结束日期', + enum: [], + }, + }, + { + key: 'z70jtfabrm7', + name: 'f_rabhmdetc3p', + type: 'belongsToMany', + interface: 'linkTo', + collectionName: 't_94rsj6kbzvn', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'aun2xsfua8d', + uiSchema: { + 'x-uid': 'aun2xsfua8d', + name: 'i508c1outz2', + 'x-component': 'RecordPicker', + 'x-component-props': { multiple: true, fieldNames: { label: 'id', value: 'id' } }, + title: '任务', + enum: [], + }, + target: 't_j6omof6tza8', + through: 't_ewdf2dsjlu3', + sourceKey: 'id', + foreignKey: 'f_8do8o1wsavk', + targetKey: 'id', + otherKey: 'f_72tnpdz6kfg', + }, + ], + createdBy: true, + updatedBy: true, + sortable: true, + }, + { + key: 'vv8umfa9592', + name: 'test_sheet', + title: '测试表', + inherit: false, + fields: [ + { + key: 'q1xye1ooeol', + name: 'f_7mh6k6re0ey', + type: 'string', + interface: 'phone', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 't9ddc5n5pv8', + uiSchema: { + 'x-uid': 't9ddc5n5pv8', + name: 'd3hwsg020u8', + type: 'string', + 'x-component': 'Input', + 'x-validator': 'phone', + title: '手机', + }, + }, + { + key: '25icwn35oin', + name: 'f_turkjlzi52z', + type: 'string', + interface: 'email', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: '3bkgd97f63v', + uiSchema: { + 'x-uid': '3bkgd97f63v', + name: 'zkvhu5cm4no', + type: 'string', + 'x-component': 'Input', + 'x-validator': 'email', + title: '邮箱', + }, + }, + { + key: '3cqe0mpcrmg', + name: 'f_c14whhblhtd', + type: 'float', + interface: 'number', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: '4bajzziz060', + uiSchema: { + 'x-uid': '4bajzziz060', + name: '366t9rvl34b', + 'x-component-props': { step: '0.01', stringMode: true }, + type: 'number', + 'x-component': 'InputNumber', + title: '数字', + }, + }, + { + key: 'y39vi1z69pw', + name: 'f_z1b674d907e', + type: 'float', + interface: 'percent', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'vbnoib14uzl', + uiSchema: { + 'x-uid': 'vbnoib14uzl', + name: 'rumohzj4lh6', + 'x-component-props': { step: '0.1', stringMode: true, addonAfter: '%' }, + type: 'string', + 'x-component': 'InputNumber', + title: '百分比', + }, + }, + { + key: 'eouuwoag6ka', + name: 'f_4tzp4nhmvt2', + type: 'string', + interface: 'icon', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'qmmw3zc8l60', + uiSchema: { + 'x-uid': 'qmmw3zc8l60', + name: 'aivg5c51gc9', + type: 'string', + 'x-component': 'IconPicker', + title: '图标', + }, + }, + { + key: 'qurfmfe2hfi', + name: 'f_z0s4m3hgadd', + type: 'password', + interface: 'password', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'tkp46kn682m', + uiSchema: { + 'x-uid': 'tkp46kn682m', + name: '7q7yeobot0j', + type: 'string', + 'x-component': 'Password', + title: '密码', + }, + }, + { + key: 'ka4k5tfh3k5', + name: 'f_q5qnozezx9s', + type: 'boolean', + interface: 'checkbox', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'wgyf4ozsvdi', + uiSchema: { + 'x-uid': 'wgyf4ozsvdi', + name: 'x6agce8s18w', + type: 'boolean', + 'x-component': 'Checkbox', + title: '勾选', + }, + }, + { + key: '3dhczyw3ye2', + name: 'f_jbzwvldpyaa', + type: 'array', + interface: 'multipleSelect', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'hlmfjs2pu9t', + uiSchema: { + 'x-uid': 'hlmfjs2pu9t', + name: 'ao52nx5pune', + enum: [ + { value: '6mbqdwuzfca', label: '选项1', color: 'red' }, + { value: '9zi6s2fbj0q', label: '选项2', color: 'geekblue' }, + ], + type: 'array', + 'x-component': 'Select', + 'x-component-props': { mode: 'multiple' }, + title: '多选', + }, + defaultValue: [], + }, + { + key: 'erdrp1gi587', + name: 'f_04krym08wxq', + type: 'array', + interface: 'checkboxGroup', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: '6has8wyzohq', + uiSchema: { + 'x-uid': '6has8wyzohq', + name: 'fvwsjt58xx4', + enum: [ + { value: '4lsgdvfl7xq', label: '复选2', color: 'cyan' }, + { value: 'qzuki8bmilg', label: '复选1', color: 'purple' }, + ], + type: 'string', + 'x-component': 'Checkbox.Group', + title: '复选', + }, + defaultValue: [], + }, + { + key: 'rykbub69xu7', + name: 'f_xclbl3htmxs', + type: 'belongsToMany', + interface: 'chinaRegion', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'yml5yqzgvn8', + uiSchema: { + 'x-uid': 'yml5yqzgvn8', + name: '2ye7y09agup', + 'x-component-props': { + maxLevel: 5, + useDataSource: '{{ useChinaRegionDataSource }}', + useLoadData: '{{ useChinaRegionLoadData }}', + changeOnSelectLast: true, + labelInValue: true, + fieldNames: { label: 'name', value: 'code', children: 'children' }, + }, + type: 'array', + 'x-component': 'Cascader', + title: '中国地区', + }, + target: 'chinaRegions', + targetKey: 'code', + sortBy: 'level', + sourceKey: 'id', + through: 't_o9ry49u6xez', + foreignKey: 'f_44r8nsvdvz7', + otherKey: 'f_l0tzoymin3i', + }, + { + key: 'acm789iz922', + name: 'f_v4cgx7l5hwm', + type: 'text', + interface: 'markdown', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: '8a2erdhwcvb', + uiSchema: { + 'x-uid': '8a2erdhwcvb', + name: 'rqeiz26vuns', + type: 'string', + 'x-component': 'Markdown', + title: 'Markdown', + }, + }, + { + key: 'zmip3swglzv', + name: 'f_ztaop411cdw', + type: 'time', + interface: 'time', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'r6s6rrjzfml', + uiSchema: { + 'x-uid': 'r6s6rrjzfml', + name: 'ct893ay5apv', + 'x-component-props': { format: 'HH:mm:ss' }, + type: 'string', + 'x-component': 'TimePicker', + title: '时间', + }, + }, + { + key: 'nx1p69b6g96', + name: 'f_mf8ccm0pjmh', + type: 'date', + interface: 'datetime', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: '08p9oztyjf2', + uiSchema: { + 'x-uid': '08p9oztyjf2', + name: 'bkdnndmfpeo', + 'x-component-props': { dateFormat: 'DD/MM/YYYY', showTime: true, timeFormat: 'HH:mm:ss' }, + type: 'datetime', + 'x-component': 'DatePicker', + title: '日期', + enum: [], + }, + }, + { + key: 'ge57kma4gue', + name: 'f_dqq0xjkdqbo', + type: 'belongsTo', + interface: 'createdBy', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'zzmst1r01gc', + uiSchema: { + 'x-uid': 'zzmst1r01gc', + name: 'def1ngennlx', + type: 'object', + title: '创建人', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + target: 'users', + foreignKey: 'createdById', + targetKey: 'id', + }, + { + key: 'yqye22n1f1c', + name: 'f_7ukoar9jevs', + type: 'date', + interface: 'createdAt', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'lgnqb28lb91', + uiSchema: { + 'x-uid': 'lgnqb28lb91', + name: 'jdjz5cngm3j', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true, timeFormat: 'HH:mm:ss' }, + type: 'datetime', + title: '创建日期', + 'x-component': 'DatePicker', + 'x-read-pretty': true, + }, + field: 'createdAt', + }, + { + key: 'n4ap9l1l4wd', + name: 'f_81orjgxlbuo', + type: 'date', + interface: 'updatedAt', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'z19egimonh9', + uiSchema: { + 'x-uid': 'z19egimonh9', + name: 'xtzu6cpnsm4', + 'x-component-props': { dateFormat: 'YYYY-MM-DD', showTime: true }, + type: 'datetime', + title: '修改日期', + 'x-component': 'DatePicker', + 'x-read-pretty': true, + }, + field: 'updatedAt', + }, + { + key: 'oqy67fm6af8', + name: 'f_e31b9oqe9ej', + type: 'belongsTo', + interface: 'updatedBy', + collectionName: 'test_sheet', + parentKey: null, + reverseKey: null, + uiSchemaUid: 'tm4f7z0nyso', + uiSchema: { + 'x-uid': 'tm4f7z0nyso', + name: '19srjtwyce1', + type: 'object', + title: '修改人', + 'x-component': 'RecordPicker', + 'x-component-props': { fieldNames: { value: 'id', label: 'nickname' } }, + 'x-read-pretty': true, + }, + target: 'users', + foreignKey: 'updatedById', + targetKey: 'id', + }, + ], + createdBy: true, + updatedBy: true, + sortable: true, + }, +]; diff --git a/packages/core/client/src/schema-component/antd/kanban/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/kanban/demos/demo1.tsx index d610dbc049..9535c96c7d 100644 --- a/packages/core/client/src/schema-component/antd/kanban/demos/demo1.tsx +++ b/packages/core/client/src/schema-component/antd/kanban/demos/demo1.tsx @@ -1,18 +1,25 @@ import { ISchema } from '@formily/react'; import { AntdSchemaComponentProvider, - APIClient, APIClientProvider, BlockSchemaComponentProvider, CollectionManagerProvider, SchemaComponent, SchemaComponentProvider, } from '@nocobase/client'; -import MockAdapter from 'axios-mock-adapter'; import React from 'react'; +import { mockAPIClient } from '../../../../test'; import collections from './collections'; import data from './data'; +const { apiClient, mockRequest } = mockAPIClient(); +const sleep = (value: number) => new Promise((resolve) => setTimeout(resolve, value)); + +mockRequest.onGet('/t_j6omof6tza8:list').reply(async (config) => { + await sleep(200); + return [200, data]; +}); + const schema: ISchema = { type: 'object', properties: { @@ -59,27 +66,11 @@ const schema: ISchema = { }, }; -const sleep = (value: number) => new Promise((resolve) => setTimeout(resolve, value)); - -const apiClient = new APIClient({ - baseURL: 'http://localhost:3000/api', -}); - -const mock = (api: APIClient) => { - const mock = new MockAdapter(api.axios); - mock.onGet('/t_j6omof6tza8:list').reply(async (config) => { - await sleep(200); - return [200, data]; - }); -}; - -mock(apiClient); - export default () => { return ( - + diff --git a/packages/core/client/src/schema-component/antd/kanban/index.md b/packages/core/client/src/schema-component/antd/kanban/index.md index 6164202f77..b7a4cf2289 100644 --- a/packages/core/client/src/schema-component/antd/kanban/index.md +++ b/packages/core/client/src/schema-component/antd/kanban/index.md @@ -7,6 +7,6 @@ group: # Kanban -## 示例 +## Example diff --git a/packages/core/client/src/schema-component/antd/list/__tests__/list.test.tsx b/packages/core/client/src/schema-component/antd/list/__tests__/list.test.tsx new file mode 100644 index 0000000000..65ff5c4441 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/list/__tests__/list.test.tsx @@ -0,0 +1,9 @@ +import React from 'react'; +import { render } from 'testUtils'; +import App1 from '../demos/demo1'; + +describe('List', () => { + it('should render correctly', () => { + render(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/list/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/list/demos/demo1.tsx new file mode 100644 index 0000000000..f001a37786 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/list/demos/demo1.tsx @@ -0,0 +1,5 @@ +import React from 'react'; + +export default () => { + return
TODO
; +}; diff --git a/packages/core/client/src/schema-component/antd/list/index.md b/packages/core/client/src/schema-component/antd/list/index.md new file mode 100644 index 0000000000..9cf4735060 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/list/index.md @@ -0,0 +1,12 @@ +--- +nav: + path: /client +group: + path: /schema-components +--- + +# List + +## Example + + diff --git a/packages/core/client/src/schema-component/antd/markdown/__tests__/markdown.test.tsx b/packages/core/client/src/schema-component/antd/markdown/__tests__/markdown.test.tsx new file mode 100644 index 0000000000..bb56676c0f --- /dev/null +++ b/packages/core/client/src/schema-component/antd/markdown/__tests__/markdown.test.tsx @@ -0,0 +1,29 @@ +import React from 'react'; +import { act, fireEvent, render } from 'testUtils'; +import App1 from '../demos/demo1'; +import App2 from '../demos/demo2'; + +describe('Markdown', () => { + it('should display the value of user input', () => { + const { container } = render(); + const textarea = container.querySelector('.ant-input') as HTMLTextAreaElement; + act(() => { + fireEvent.change(textarea, { target: { value: '## Hello World' } }); + }); + expect(textarea.value).toBe('## Hello World'); + }); +}); + +describe('Markdown.Void', () => { + it('should display the value of user input', async () => { + const { container } = render(); + const button = container.querySelector('.ant-btn') as HTMLButtonElement; + + expect(button).not.toBeNull(); + expect(container.querySelector('.ant-input')).toBeNull(); + + // TODO: fix this test + // await userEvent.click(button); + // expect(document.querySelector('.ant-input')).not.toBeNull(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/markdown/util.ts b/packages/core/client/src/schema-component/antd/markdown/util.ts index c41705c500..86c829c042 100644 --- a/packages/core/client/src/schema-component/antd/markdown/util.ts +++ b/packages/core/client/src/schema-component/antd/markdown/util.ts @@ -27,5 +27,5 @@ export function convertToText(markdownText: string) { temp.innerHTML = content; const text = temp.innerText; temp = null; - return text.replace(/[\n\r]/g, ''); + return text?.replace(/[\n\r]/g, '') || ''; } diff --git a/packages/core/client/src/schema-component/antd/menu/Menu.tsx b/packages/core/client/src/schema-component/antd/menu/Menu.tsx index a2a0a6e322..01dd709781 100644 --- a/packages/core/client/src/schema-component/antd/menu/Menu.tsx +++ b/packages/core/client/src/schema-component/antd/menu/Menu.tsx @@ -115,6 +115,16 @@ const designerCss = css` } `; +const antdMenuClass = css` + .ant-menu-item:hover { + > .ant-menu-title-content > div { + .general-schema-designer { + display: block; + } + } + } +`; + type ComposedMenu = React.FC & { Item?: React.FC; URL?: React.FC; @@ -155,6 +165,7 @@ export const Menu: ComposedMenu = observer( const api = useAPIClient(); const { render } = useSchemaInitializer(schema['x-initializer']); const sideMenuRef = useSideMenuRef(); + const [selectedKeys, setSelectedKeys] = useState(); const [defaultSelectedKeys, setDefaultSelectedKeys] = useState(() => { if (dSelectedKeys) { return dSelectedKeys; @@ -182,8 +193,12 @@ export const Menu: ComposedMenu = observer( return null; }); useEffect(() => { + if (!selectedUid) { + return; + } + const keys = findKeysByUid(schema, selectedUid); - setDefaultSelectedKeys(keys); + setSelectedKeys(keys); if (['inline', 'mix'].includes(mode)) { setDefaultOpenKeys(dOpenKeys || keys); } @@ -218,20 +233,7 @@ export const Menu: ComposedMenu = observer( .ant-menu-title-content > div { - .general-schema-designer { - display: block; - } - } - } - `} + className={antdMenuClass} onSelect={(info: any) => { const s = schema.properties[info.key]; if (mode === 'mix') { @@ -267,7 +269,7 @@ export const Menu: ComposedMenu = observer( mode={mode === 'mix' ? 'horizontal' : mode} defaultOpenKeys={defaultOpenKeys} defaultSelectedKeys={defaultSelectedKeys} - selectedKeys={defaultSelectedKeys} + selectedKeys={selectedKeys} > {designable && ( @@ -279,18 +281,18 @@ export const Menu: ComposedMenu = observer( {loading ? null : mode === 'mix' && - sideMenuSchema?.['x-component'] === 'Menu.SubMenu' && - sideMenuRef?.current?.firstChild && - createPortal( - - { - onSelect && onSelect(info); - }} - className={css` + sideMenuSchema?.['x-component'] === 'Menu.SubMenu' && + sideMenuRef?.current?.firstChild && + createPortal( + + { + onSelect && onSelect(info); + }} + className={css` height: 100%; overflow-y: auto; overflow-x: hidden; @@ -322,25 +324,25 @@ export const Menu: ComposedMenu = observer( } } `} - > - - {render({ - style: { margin: 8 }, - insert: (s) => { - const dn = createDesignable({ - t, - api, - refresh, - current: sideMenuSchema, - }); - dn.loadAPIClientEvents(); - dn.insertAdjacent('beforeEnd', s); - }, - })} - - , - sideMenuRef.current.firstChild, - )} + > + + {render({ + style: { margin: 8 }, + insert: (s) => { + const dn = createDesignable({ + t, + api, + refresh, + current: sideMenuSchema, + }); + dn.loadAPIClientEvents(); + dn.insertAdjacent('beforeEnd', s); + }, + })} + + , + sideMenuRef.current.firstChild, + )} diff --git a/packages/core/client/src/schema-component/antd/menu/__tests__/menu.test.tsx b/packages/core/client/src/schema-component/antd/menu/__tests__/menu.test.tsx new file mode 100644 index 0000000000..77dca1f0e6 --- /dev/null +++ b/packages/core/client/src/schema-component/antd/menu/__tests__/menu.test.tsx @@ -0,0 +1,58 @@ +import React from 'react'; +import { render, screen, userEvent, within } from 'testUtils'; +import App1 from '../demos/demo1'; +import App2 from '../demos/demo2'; +import App3 from '../demos/demo3'; + +describe('Menu', () => { + it('mode: "horizontal"', async () => { + render(); + + // 默认选中 menu item 1 + expect( + within(document.querySelector('.ant-menu-item-selected') as HTMLElement).getByText(/menu item 1/i), + ).toBeInTheDocument(); + expect(screen.getByText(/menu item 2/i)).toBeInTheDocument(); + expect(screen.getByText(/submenu 1/i)).toBeInTheDocument(); + + // 选中 menu item 2 + await userEvent.click(screen.getByText(/menu item 2/i)); + expect( + within(document.querySelector('.ant-menu-item-selected') as HTMLElement).getByText(/menu item 2/i), + ).toBeInTheDocument(); + }); + + it('mode: "inline"', async () => { + render(); + + // 默认选中 menu item 1 + expect( + within(document.querySelector('.ant-menu-item-selected') as HTMLElement).getByText(/menu item 1/i), + ).toBeInTheDocument(); + expect(screen.getByText(/menu item 2/i)).toBeInTheDocument(); + expect(screen.getByText(/submenu 1/i)).toBeInTheDocument(); + + // 选中 menu item 2 + await userEvent.click(screen.getByText(/menu item 2/i)); + expect( + within(document.querySelector('.ant-menu-item-selected') as HTMLElement).getByText(/menu item 2/i), + ).toBeInTheDocument(); + }); + + it('mode: "mix"', async () => { + render(); + + // 默认选中 menu item 1 + expect( + within(document.querySelector('.ant-menu-item-selected') as HTMLElement).getByText(/menu item 1/i), + ).toBeInTheDocument(); + expect(screen.getByText(/menu item 2/i)).toBeInTheDocument(); + expect(screen.getByText(/submenu 1/i)).toBeInTheDocument(); + + // 选中 menu item 2 + await userEvent.click(screen.getByText(/menu item 2/i)); + expect( + within(document.querySelector('.ant-menu-item-selected') as HTMLElement).getByText(/menu item 2/i), + ).toBeInTheDocument(); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/menu/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/menu/demos/demo1.tsx index 01de323a9f..8d658a7205 100644 --- a/packages/core/client/src/schema-component/antd/menu/demos/demo1.tsx +++ b/packages/core/client/src/schema-component/antd/menu/demos/demo1.tsx @@ -1,9 +1,9 @@ /** * title: Menu */ -import React from 'react'; -import { Menu, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; import { ISchema } from '@formily/react'; +import { Menu, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; +import React from 'react'; const schema: ISchema = { type: 'object', @@ -13,10 +13,7 @@ const schema: ISchema = { 'x-component': 'Menu', 'x-component-props': { mode: 'horizontal', - defaultSelectedUid: 'u8', - // style: { - // width: 260, - // }, + defaultSelectedUid: 'u1', }, properties: { item1: { @@ -63,14 +60,14 @@ const schema: ISchema = { properties: { item7: { type: 'void', - title: 'Menu Item 11', + title: 'Menu Item 12', 'x-uid': 'u7', 'x-component': 'Menu.Item', 'x-component-props': {}, }, item8: { type: 'void', - title: 'Menu Item 12', + title: 'Menu Item 13', 'x-uid': 'u8', 'x-component': 'Menu.Item', 'x-component-props': {}, diff --git a/packages/core/client/src/schema-component/antd/menu/demos/demo2.tsx b/packages/core/client/src/schema-component/antd/menu/demos/demo2.tsx index d813452c6a..d6636c6eb2 100644 --- a/packages/core/client/src/schema-component/antd/menu/demos/demo2.tsx +++ b/packages/core/client/src/schema-component/antd/menu/demos/demo2.tsx @@ -1,9 +1,9 @@ /** * title: Menu */ -import React from 'react'; -import { Menu, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; import { ISchema } from '@formily/react'; +import { Menu, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; +import React from 'react'; const schema: ISchema = { type: 'object', @@ -13,7 +13,7 @@ const schema: ISchema = { 'x-component': 'Menu', 'x-component-props': { mode: 'inline', - defaultSelectedUid: 'u8', + defaultSelectedUid: 'u1', style: { width: 260, }, diff --git a/packages/core/client/src/schema-component/antd/menu/demos/demo3.tsx b/packages/core/client/src/schema-component/antd/menu/demos/demo3.tsx index 782c561f11..723a0c0e94 100644 --- a/packages/core/client/src/schema-component/antd/menu/demos/demo3.tsx +++ b/packages/core/client/src/schema-component/antd/menu/demos/demo3.tsx @@ -1,10 +1,10 @@ /** * title: Menu */ -import React, { useRef } from 'react'; -import { Menu, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; import { ISchema } from '@formily/react'; +import { Menu, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; import { Layout } from 'antd'; +import React, { useRef } from 'react'; const schema: ISchema = { type: 'object', @@ -15,7 +15,7 @@ const schema: ISchema = { 'x-component-props': { mode: 'mix', theme: 'dark', - defaultSelectedUid: 'u8', + defaultSelectedUid: 'u1', sideMenuRefScopeKey: 'sideMenuRef', }, properties: { diff --git a/packages/core/client/src/schema-component/antd/page/__tests__/page.test.tsx b/packages/core/client/src/schema-component/antd/page/__tests__/page.test.tsx new file mode 100644 index 0000000000..62d903161b --- /dev/null +++ b/packages/core/client/src/schema-component/antd/page/__tests__/page.test.tsx @@ -0,0 +1,16 @@ +import React from 'react'; +import { render, screen, sleep } from 'testUtils'; +import App1 from '../demos/demo1'; + +describe('Page', () => { + it('should render correctly', async () => { + render(); + + // 等待 document.title 更新 + await sleep(100); + + expect(screen.getByText(/page title/i)).toBeInTheDocument(); + expect(screen.getByText(/page content/i)).toBeInTheDocument(); + expect(document.title).toBe('Page Title - NocoBase'); + }); +}); diff --git a/packages/core/client/src/schema-component/antd/page/demos/demo1.tsx b/packages/core/client/src/schema-component/antd/page/demos/demo1.tsx index a0b3a560ed..f4a6ed27d2 100644 --- a/packages/core/client/src/schema-component/antd/page/demos/demo1.tsx +++ b/packages/core/client/src/schema-component/antd/page/demos/demo1.tsx @@ -1,6 +1,7 @@ -import React from 'react'; import { ISchema } from '@formily/react'; -import { Page, DocumentTitleProvider, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; +import { DocumentTitleProvider, Page, SchemaComponent, SchemaComponentProvider } from '@nocobase/client'; +import React from 'react'; +import { BrowserRouter } from 'react-router-dom'; const schema: ISchema = { type: 'object', @@ -24,7 +25,9 @@ export default () => { return ( - + + + ); diff --git a/packages/core/client/src/schema-component/antd/pagination/__tests__/pagination.test.tsx b/packages/core/client/src/schema-component/antd/pagination/__tests__/pagination.test.tsx new file mode 100644 index 0000000000..8a4eeb940a --- /dev/null +++ b/packages/core/client/src/schema-component/antd/pagination/__tests__/pagination.test.tsx @@ -0,0 +1,15 @@ +import React from 'react'; +import { render } from 'testUtils'; +import { Pagination } from '../index'; + +describe('Pagination', () => { + it('should render correctly', () => { + render(); + expect(document.querySelector('.ant-pagination')).toBeInTheDocument(); + }); + + it('hidden', () => { + render(