openxiangda 1.0.34 → 1.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/README.md +16 -0
  2. package/lib/cli.js +409 -0
  3. package/lib/workspace-init.js +1 -0
  4. package/openxiangda-skills/SKILL.md +4 -2
  5. package/openxiangda-skills/references/best-practices.md +11 -6
  6. package/openxiangda-skills/references/connector-resources.md +3 -0
  7. package/openxiangda-skills/references/data-views.md +217 -0
  8. package/openxiangda-skills/references/forms/component-registry.md +4 -3
  9. package/openxiangda-skills/references/forms/form-schema.md +31 -2
  10. package/openxiangda-skills/references/pages/page-sdk.md +43 -0
  11. package/openxiangda-skills/references/workspace-state.md +9 -0
  12. package/openxiangda-skills/skills/openxiangda-form/SKILL.md +3 -3
  13. package/openxiangda-skills/skills/openxiangda-permission-settings/SKILL.md +1 -1
  14. package/package.json +1 -1
  15. package/packages/sdk/dist/components/index.cjs +944 -765
  16. package/packages/sdk/dist/components/index.cjs.map +1 -1
  17. package/packages/sdk/dist/components/index.d.mts +18 -2
  18. package/packages/sdk/dist/components/index.d.ts +18 -2
  19. package/packages/sdk/dist/components/index.mjs +938 -761
  20. package/packages/sdk/dist/components/index.mjs.map +1 -1
  21. package/packages/sdk/dist/runtime/index.cjs +47 -0
  22. package/packages/sdk/dist/runtime/index.cjs.map +1 -1
  23. package/packages/sdk/dist/runtime/index.d.mts +18 -1
  24. package/packages/sdk/dist/runtime/index.d.ts +18 -1
  25. package/packages/sdk/dist/runtime/index.mjs +47 -0
  26. package/packages/sdk/dist/runtime/index.mjs.map +1 -1
  27. package/packages/sdk/src/build-source/scripts/utils/form-api.mjs +1 -0
  28. package/templates/sy-lowcode-app-workspace/examples/best-practices/decision-guide.md +4 -3
  29. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/domain/role-governance/permissions.test.ts +1 -1
  30. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/forms/app-role/schema.ts +36 -18
  31. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/forms/service-ticket/schema.ts +36 -18
  32. package/templates/sy-lowcode-app-workspace/src/shared/form-schema.ts +0 -1
@@ -30,32 +30,50 @@ export default createFormSchema({
30
30
  },
31
31
  {
32
32
  fieldId: "collegeScope",
33
- componentName: "AssociationFormField",
33
+ componentName: "SelectField",
34
34
  label: "适用学院",
35
35
  placeholder: "请选择适用学院",
36
- associationForm: {
37
- appType: process.env.OPENXIANGDA_APP_TYPE || "APP_XXXX",
38
- formUuid: "FORM_COLLEGE_PROFILE",
39
- mainFieldId: "collegeName",
40
- selectorColumns: [
41
- { title: "学院名称", dataIndex: "collegeName" },
42
- { title: "学院编码", dataIndex: "collegeCode" },
43
- ],
36
+ showSearch: true,
37
+ allowClear: true,
38
+ options: [],
39
+ valueSync: [{ targetFieldId: "collegeScopeKey", valuePath: "value" }],
40
+ optionSource: {
41
+ type: "linkedForm",
42
+ linkedForm: {
43
+ formUuid: "FORM_COLLEGE_PROFILE",
44
+ fieldId: "collegeName",
45
+ labelFieldId: "collegeName",
46
+ valueFieldId: "collegeCode",
47
+ searchFieldId: "collegeName",
48
+ sortField: "collegeName",
49
+ pageSize: 20,
50
+ remoteSearch: true,
51
+ deduplicate: true,
52
+ },
44
53
  },
45
54
  },
46
55
  {
47
56
  fieldId: "classScope",
48
- componentName: "AssociationFormField",
57
+ componentName: "SelectField",
49
58
  label: "适用班级",
50
59
  placeholder: "请选择适用班级",
51
- associationForm: {
52
- appType: process.env.OPENXIANGDA_APP_TYPE || "APP_XXXX",
53
- formUuid: "FORM_CLASS_PROFILE",
54
- mainFieldId: "className",
55
- selectorColumns: [
56
- { title: "班级名称", dataIndex: "className" },
57
- { title: "所属学院", dataIndex: "collegeName" },
58
- ],
60
+ showSearch: true,
61
+ allowClear: true,
62
+ options: [],
63
+ valueSync: [{ targetFieldId: "classScopeKey", valuePath: "value" }],
64
+ optionSource: {
65
+ type: "linkedForm",
66
+ linkedForm: {
67
+ formUuid: "FORM_CLASS_PROFILE",
68
+ fieldId: "className",
69
+ labelFieldId: "className",
70
+ valueFieldId: "classCode",
71
+ searchFieldId: "className",
72
+ sortField: "className",
73
+ pageSize: 20,
74
+ remoteSearch: true,
75
+ deduplicate: true,
76
+ },
59
77
  },
60
78
  },
61
79
  {
@@ -52,32 +52,50 @@ export default createFormSchema({
52
52
  },
53
53
  {
54
54
  fieldId: "college",
55
- componentName: "AssociationFormField",
55
+ componentName: "SelectField",
56
56
  label: "所属学院",
57
57
  placeholder: "请选择所属学院",
58
- associationForm: {
59
- appType: process.env.OPENXIANGDA_APP_TYPE || "APP_XXXX",
60
- formUuid: "FORM_COLLEGE_PROFILE",
61
- mainFieldId: "collegeName",
62
- selectorColumns: [
63
- { title: "学院名称", dataIndex: "collegeName" },
64
- { title: "学院编码", dataIndex: "collegeCode" },
65
- ],
58
+ showSearch: true,
59
+ allowClear: true,
60
+ options: [],
61
+ valueSync: [{ targetFieldId: "collegeScopeKey", valuePath: "value" }],
62
+ optionSource: {
63
+ type: "linkedForm",
64
+ linkedForm: {
65
+ formUuid: "FORM_COLLEGE_PROFILE",
66
+ fieldId: "collegeName",
67
+ labelFieldId: "collegeName",
68
+ valueFieldId: "collegeCode",
69
+ searchFieldId: "collegeName",
70
+ sortField: "collegeName",
71
+ pageSize: 20,
72
+ remoteSearch: true,
73
+ deduplicate: true,
74
+ },
66
75
  },
67
76
  },
68
77
  {
69
78
  fieldId: "classGroup",
70
- componentName: "AssociationFormField",
79
+ componentName: "SelectField",
71
80
  label: "所属班级",
72
81
  placeholder: "请选择所属班级",
73
- associationForm: {
74
- appType: process.env.OPENXIANGDA_APP_TYPE || "APP_XXXX",
75
- formUuid: "FORM_CLASS_PROFILE",
76
- mainFieldId: "className",
77
- selectorColumns: [
78
- { title: "班级名称", dataIndex: "className" },
79
- { title: "所属学院", dataIndex: "collegeName" },
80
- ],
82
+ showSearch: true,
83
+ allowClear: true,
84
+ options: [],
85
+ valueSync: [{ targetFieldId: "classScopeKey", valuePath: "value" }],
86
+ optionSource: {
87
+ type: "linkedForm",
88
+ linkedForm: {
89
+ formUuid: "FORM_CLASS_PROFILE",
90
+ fieldId: "className",
91
+ labelFieldId: "className",
92
+ valueFieldId: "classCode",
93
+ searchFieldId: "className",
94
+ sortField: "className",
95
+ pageSize: 20,
96
+ remoteSearch: true,
97
+ deduplicate: true,
98
+ },
81
99
  },
82
100
  },
83
101
  {
@@ -16,7 +16,6 @@ export type FormComponentName =
16
16
  | "ImageField"
17
17
  | "AddressField"
18
18
  | "CascadeSelectField"
19
- | "AssociationFormField"
20
19
  | "LocationField"
21
20
  | "EditorField"
22
21
  | "JSONField"