neo-cmp-cli 1.8.1 → 1.8.3

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 (201) hide show
  1. package/README.md +91 -7
  2. package/bin/neo.js +1 -1
  3. package/package.json +6 -5
  4. package/src/{module/index.js → index.js} +14 -14
  5. package/src/{module/main.js → main.js} +18 -18
  6. package/src/module/neoInitByCopy.js +6 -6
  7. package/src/neo/webpack.mf.js +1 -1
  8. package/src/oss/publish2oss.js +1 -1
  9. package/src/utils/cmpUtils/createCmpByZip.js +7 -5
  10. package/src/utils/cmpUtils/pullCmp.js +1 -1
  11. package/src/utils/cmpUtils/pushCmp.js +9 -7
  12. package/src/utils/projectUtils/updatePublishLog.js +1 -1
  13. package/test/demo.js +1 -1
  14. package/test/demo3.js +1 -1
  15. package/test/neo.config.js +77 -0
  16. package/src/template/antd-custom-cmp-template/.prettierrc.js +0 -12
  17. package/src/template/antd-custom-cmp-template/README.md +0 -153
  18. package/src/template/antd-custom-cmp-template/commitlint.config.js +0 -59
  19. package/src/template/antd-custom-cmp-template/neo.config.js +0 -144
  20. package/src/template/antd-custom-cmp-template/package.json +0 -60
  21. package/src/template/antd-custom-cmp-template/public/css/base.css +0 -283
  22. package/src/template/antd-custom-cmp-template/public/scripts/app/bluebird.js +0 -6679
  23. package/src/template/antd-custom-cmp-template/public/template.html +0 -13
  24. package/src/template/antd-custom-cmp-template/src/assets/css/common.scss +0 -127
  25. package/src/template/antd-custom-cmp-template/src/assets/css/mixin.scss +0 -47
  26. package/src/template/antd-custom-cmp-template/src/assets/img/NeoCRM.jpg +0 -0
  27. package/src/template/antd-custom-cmp-template/src/assets/img/custom-widget.svg +0 -1
  28. package/src/template/antd-custom-cmp-template/src/assets/img/favicon.png +0 -0
  29. package/src/template/antd-custom-cmp-template/src/components/dataDashboard/README.md +0 -39
  30. package/src/template/antd-custom-cmp-template/src/components/dataDashboard/index.tsx +0 -462
  31. package/src/template/antd-custom-cmp-template/src/components/dataDashboard/model.ts +0 -75
  32. package/src/template/antd-custom-cmp-template/src/components/dataDashboard/style.scss +0 -1667
  33. package/src/template/antd-custom-cmp-template/src/components/infoCard/index.tsx +0 -87
  34. package/src/template/antd-custom-cmp-template/src/components/infoCard/model.ts +0 -80
  35. package/src/template/antd-custom-cmp-template/src/components/infoCard/style.scss +0 -105
  36. package/src/template/antd-custom-cmp-template/tsconfig.json +0 -68
  37. package/src/template/develop/neo-custom-cmp-template/.prettierrc.js +0 -12
  38. package/src/template/develop/neo-custom-cmp-template/README.md +0 -48
  39. package/src/template/develop/neo-custom-cmp-template/commitlint.config.js +0 -59
  40. package/src/template/develop/neo-custom-cmp-template/docs/README.md +0 -13
  41. package/src/template/develop/neo-custom-cmp-template/neo.config.js +0 -121
  42. package/src/template/develop/neo-custom-cmp-template/package.json +0 -63
  43. package/src/template/develop/neo-custom-cmp-template/public/css/base.css +0 -283
  44. package/src/template/develop/neo-custom-cmp-template/public/scripts/app/bluebird.js +0 -6679
  45. package/src/template/develop/neo-custom-cmp-template/public/template.html +0 -13
  46. package/src/template/develop/neo-custom-cmp-template/src/assets/css/common.scss +0 -127
  47. package/src/template/develop/neo-custom-cmp-template/src/assets/css/mixin.scss +0 -47
  48. package/src/template/develop/neo-custom-cmp-template/src/assets/img/NeoCRM.jpg +0 -0
  49. package/src/template/develop/neo-custom-cmp-template/src/assets/img/custom-widget.svg +0 -1
  50. package/src/template/develop/neo-custom-cmp-template/src/assets/img/favicon.png +0 -0
  51. package/src/template/develop/neo-custom-cmp-template/src/assets/img/table.svg +0 -1
  52. package/src/template/develop/neo-custom-cmp-template/src/components/contactCardList/README.md +0 -65
  53. package/src/template/develop/neo-custom-cmp-template/src/components/contactCardList/index.tsx +0 -180
  54. package/src/template/develop/neo-custom-cmp-template/src/components/contactCardList/model.ts +0 -50
  55. package/src/template/develop/neo-custom-cmp-template/src/components/contactCardList/style.scss +0 -260
  56. package/src/template/develop/neo-custom-cmp-template/src/components/contactForm/README.md +0 -94
  57. package/src/template/develop/neo-custom-cmp-template/src/components/contactForm/index.tsx +0 -251
  58. package/src/template/develop/neo-custom-cmp-template/src/components/contactForm/model.ts +0 -56
  59. package/src/template/develop/neo-custom-cmp-template/src/components/contactForm/style.scss +0 -120
  60. package/src/template/develop/neo-custom-cmp-template/src/components/neoEntityGrid/README.md +0 -115
  61. package/src/template/develop/neo-custom-cmp-template/src/components/neoEntityGrid/index.tsx +0 -304
  62. package/src/template/develop/neo-custom-cmp-template/src/components/neoEntityGrid/model.ts +0 -87
  63. package/src/template/develop/neo-custom-cmp-template/src/components/neoEntityGrid/style.scss +0 -127
  64. package/src/template/develop/neo-custom-cmp-template/src/utils/axiosFetcher.ts +0 -29
  65. package/src/template/develop/neo-custom-cmp-template/src/utils/queryObjectData.ts +0 -39
  66. package/src/template/develop/neo-custom-cmp-template/src/utils/xobjects.ts +0 -203
  67. package/src/template/develop/neo-custom-cmp-template/tsconfig.json +0 -68
  68. package/src/template/echarts-custom-cmp-template/.prettierrc.js +0 -12
  69. package/src/template/echarts-custom-cmp-template/README.md +0 -198
  70. package/src/template/echarts-custom-cmp-template/commitlint.config.js +0 -59
  71. package/src/template/echarts-custom-cmp-template/neo.config.js +0 -140
  72. package/src/template/echarts-custom-cmp-template/package.json +0 -61
  73. package/src/template/echarts-custom-cmp-template/public/css/base.css +0 -283
  74. package/src/template/echarts-custom-cmp-template/public/scripts/app/bluebird.js +0 -6679
  75. package/src/template/echarts-custom-cmp-template/public/template.html +0 -13
  76. package/src/template/echarts-custom-cmp-template/src/assets/css/common.scss +0 -127
  77. package/src/template/echarts-custom-cmp-template/src/assets/css/mixin.scss +0 -47
  78. package/src/template/echarts-custom-cmp-template/src/assets/img/NeoCRM.jpg +0 -0
  79. package/src/template/echarts-custom-cmp-template/src/assets/img/chart.svg +0 -1
  80. package/src/template/echarts-custom-cmp-template/src/assets/img/custom-widget.svg +0 -1
  81. package/src/template/echarts-custom-cmp-template/src/assets/img/favicon.png +0 -0
  82. package/src/template/echarts-custom-cmp-template/src/components/chartWidget/README.md +0 -186
  83. package/src/template/echarts-custom-cmp-template/src/components/chartWidget/index.tsx +0 -724
  84. package/src/template/echarts-custom-cmp-template/src/components/chartWidget/model.ts +0 -151
  85. package/src/template/echarts-custom-cmp-template/src/components/chartWidget/style.scss +0 -209
  86. package/src/template/echarts-custom-cmp-template/src/components/mapWidget/README.md +0 -125
  87. package/src/template/echarts-custom-cmp-template/src/components/mapWidget/USAGE.md +0 -190
  88. package/src/template/echarts-custom-cmp-template/src/components/mapWidget/index.tsx +0 -385
  89. package/src/template/echarts-custom-cmp-template/src/components/mapWidget/model.ts +0 -107
  90. package/src/template/echarts-custom-cmp-template/src/components/mapWidget/style.scss +0 -192
  91. package/src/template/echarts-custom-cmp-template/src/utils/url.ts +0 -82
  92. package/src/template/echarts-custom-cmp-template/tsconfig.json +0 -68
  93. package/src/template/empty-cmp/index.tsx +0 -58
  94. package/src/template/empty-cmp/model.ts +0 -79
  95. package/src/template/empty-cmp/style.scss +0 -72
  96. package/src/template/empty-custom-cmp-template/.prettierrc.js +0 -12
  97. package/src/template/empty-custom-cmp-template/README.md +0 -154
  98. package/src/template/empty-custom-cmp-template/commitlint.config.js +0 -59
  99. package/src/template/empty-custom-cmp-template/neo.config.js +0 -138
  100. package/src/template/empty-custom-cmp-template/package.json +0 -58
  101. package/src/template/empty-custom-cmp-template/public/css/base.css +0 -283
  102. package/src/template/empty-custom-cmp-template/public/scripts/app/bluebird.js +0 -6679
  103. package/src/template/empty-custom-cmp-template/public/template.html +0 -13
  104. package/src/template/empty-custom-cmp-template/src/assets/css/common.scss +0 -127
  105. package/src/template/empty-custom-cmp-template/src/assets/css/mixin.scss +0 -47
  106. package/src/template/empty-custom-cmp-template/src/assets/img/NeoCRM.jpg +0 -0
  107. package/src/template/empty-custom-cmp-template/src/assets/img/custom-widget.svg +0 -1
  108. package/src/template/empty-custom-cmp-template/src/assets/img/favicon.png +0 -0
  109. package/src/template/empty-custom-cmp-template/src/assets/img/map.svg +0 -1
  110. package/src/template/empty-custom-cmp-template/src/components/README.md +0 -3
  111. package/src/template/empty-custom-cmp-template/tsconfig.json +0 -68
  112. package/src/template/neo-custom-cmp-template/.prettierrc.js +0 -12
  113. package/src/template/neo-custom-cmp-template/README.md +0 -155
  114. package/src/template/neo-custom-cmp-template/commitlint.config.js +0 -59
  115. package/src/template/neo-custom-cmp-template/docs/README.md +0 -244
  116. package/src/template/neo-custom-cmp-template/neo.config.js +0 -140
  117. package/src/template/neo-custom-cmp-template/package.json +0 -66
  118. package/src/template/neo-custom-cmp-template/public/css/base.css +0 -283
  119. package/src/template/neo-custom-cmp-template/public/scripts/app/bluebird.js +0 -6679
  120. package/src/template/neo-custom-cmp-template/public/template.html +0 -13
  121. package/src/template/neo-custom-cmp-template/src/assets/css/common.scss +0 -127
  122. package/src/template/neo-custom-cmp-template/src/assets/css/mixin.scss +0 -47
  123. package/src/template/neo-custom-cmp-template/src/assets/img/NeoCRM.jpg +0 -0
  124. package/src/template/neo-custom-cmp-template/src/assets/img/card-list.svg +0 -1
  125. package/src/template/neo-custom-cmp-template/src/assets/img/contact-form.svg +0 -1
  126. package/src/template/neo-custom-cmp-template/src/assets/img/custom-form.svg +0 -1
  127. package/src/template/neo-custom-cmp-template/src/assets/img/custom-widget.svg +0 -1
  128. package/src/template/neo-custom-cmp-template/src/assets/img/data-list.svg +0 -1
  129. package/src/template/neo-custom-cmp-template/src/assets/img/detail.svg +0 -1
  130. package/src/template/neo-custom-cmp-template/src/assets/img/table.svg +0 -1
  131. package/src/template/neo-custom-cmp-template/src/components/entityCardList/README.md +0 -61
  132. package/src/template/neo-custom-cmp-template/src/components/entityCardList/index.tsx +0 -202
  133. package/src/template/neo-custom-cmp-template/src/components/entityCardList/model.ts +0 -74
  134. package/src/template/neo-custom-cmp-template/src/components/entityCardList/style.scss +0 -260
  135. package/src/template/neo-custom-cmp-template/src/components/entityDetail/README.md +0 -176
  136. package/src/template/neo-custom-cmp-template/src/components/entityDetail/index.tsx +0 -334
  137. package/src/template/neo-custom-cmp-template/src/components/entityDetail/model.ts +0 -123
  138. package/src/template/neo-custom-cmp-template/src/components/entityDetail/style.scss +0 -292
  139. package/src/template/neo-custom-cmp-template/src/components/entityForm/README.md +0 -176
  140. package/src/template/neo-custom-cmp-template/src/components/entityForm/index.tsx +0 -615
  141. package/src/template/neo-custom-cmp-template/src/components/entityForm/model.ts +0 -107
  142. package/src/template/neo-custom-cmp-template/src/components/entityForm/style.scss +0 -370
  143. package/src/template/neo-custom-cmp-template/src/components/entityTable/README.md +0 -92
  144. package/src/template/neo-custom-cmp-template/src/components/entityTable/index.tsx +0 -784
  145. package/src/template/neo-custom-cmp-template/src/components/entityTable/model.ts +0 -134
  146. package/src/template/neo-custom-cmp-template/src/components/entityTable/style.scss +0 -304
  147. package/src/template/neo-custom-cmp-template/src/utils/axiosFetcher.ts +0 -37
  148. package/src/template/neo-custom-cmp-template/src/utils/queryObjectData.ts +0 -76
  149. package/src/template/neo-custom-cmp-template/src/utils/xobjects.ts +0 -162
  150. package/src/template/neo-custom-cmp-template/tsconfig.json +0 -49
  151. package/src/template/react-custom-cmp-template/.prettierrc.js +0 -12
  152. package/src/template/react-custom-cmp-template/README.md +0 -154
  153. package/src/template/react-custom-cmp-template/commitlint.config.js +0 -59
  154. package/src/template/react-custom-cmp-template/neo.config.js +0 -137
  155. package/src/template/react-custom-cmp-template/package.json +0 -57
  156. package/src/template/react-custom-cmp-template/public/css/base.css +0 -283
  157. package/src/template/react-custom-cmp-template/public/scripts/app/bluebird.js +0 -6679
  158. package/src/template/react-custom-cmp-template/public/template.html +0 -13
  159. package/src/template/react-custom-cmp-template/src/assets/css/common.scss +0 -127
  160. package/src/template/react-custom-cmp-template/src/assets/css/mixin.scss +0 -47
  161. package/src/template/react-custom-cmp-template/src/assets/img/NeoCRM.jpg +0 -0
  162. package/src/template/react-custom-cmp-template/src/assets/img/custom-widget.svg +0 -1
  163. package/src/template/react-custom-cmp-template/src/assets/img/favicon.png +0 -0
  164. package/src/template/react-custom-cmp-template/src/components/infoCard/index.jsx +0 -45
  165. package/src/template/react-custom-cmp-template/src/components/infoCard/model.js +0 -81
  166. package/src/template/react-custom-cmp-template/src/components/infoCard/style.scss +0 -67
  167. package/src/template/react-ts-custom-cmp-template/.prettierrc.js +0 -12
  168. package/src/template/react-ts-custom-cmp-template/README.md +0 -154
  169. package/src/template/react-ts-custom-cmp-template/commitlint.config.js +0 -59
  170. package/src/template/react-ts-custom-cmp-template/neo.config.js +0 -138
  171. package/src/template/react-ts-custom-cmp-template/package.json +0 -59
  172. package/src/template/react-ts-custom-cmp-template/public/css/base.css +0 -283
  173. package/src/template/react-ts-custom-cmp-template/public/scripts/app/bluebird.js +0 -6679
  174. package/src/template/react-ts-custom-cmp-template/public/template.html +0 -13
  175. package/src/template/react-ts-custom-cmp-template/src/assets/css/common.scss +0 -127
  176. package/src/template/react-ts-custom-cmp-template/src/assets/css/mixin.scss +0 -47
  177. package/src/template/react-ts-custom-cmp-template/src/assets/img/NeoCRM.jpg +0 -0
  178. package/src/template/react-ts-custom-cmp-template/src/assets/img/custom-widget.svg +0 -1
  179. package/src/template/react-ts-custom-cmp-template/src/assets/img/favicon.png +0 -0
  180. package/src/template/react-ts-custom-cmp-template/src/assets/img/map.svg +0 -1
  181. package/src/template/react-ts-custom-cmp-template/src/components/listWidget/README.md +0 -2
  182. package/src/template/react-ts-custom-cmp-template/src/components/listWidget/index.tsx +0 -208
  183. package/src/template/react-ts-custom-cmp-template/src/components/listWidget/model.ts +0 -92
  184. package/src/template/react-ts-custom-cmp-template/src/components/listWidget/style.scss +0 -350
  185. package/src/template/react-ts-custom-cmp-template/tsconfig.json +0 -68
  186. package/src/template/vue2-custom-cmp-template/.prettierrc.js +0 -12
  187. package/src/template/vue2-custom-cmp-template/README.md +0 -154
  188. package/src/template/vue2-custom-cmp-template/commitlint.config.js +0 -59
  189. package/src/template/vue2-custom-cmp-template/neo.config.js +0 -146
  190. package/src/template/vue2-custom-cmp-template/package.json +0 -59
  191. package/src/template/vue2-custom-cmp-template/public/css/base.css +0 -283
  192. package/src/template/vue2-custom-cmp-template/public/scripts/app/bluebird.js +0 -6679
  193. package/src/template/vue2-custom-cmp-template/public/template.html +0 -13
  194. package/src/template/vue2-custom-cmp-template/src/assets/css/common.scss +0 -126
  195. package/src/template/vue2-custom-cmp-template/src/assets/css/mixin.scss +0 -47
  196. package/src/template/vue2-custom-cmp-template/src/assets/img/NeoCRM.jpg +0 -0
  197. package/src/template/vue2-custom-cmp-template/src/assets/img/custom-widget.svg +0 -1
  198. package/src/template/vue2-custom-cmp-template/src/assets/img/favicon.png +0 -0
  199. package/src/template/vue2-custom-cmp-template/src/components/vueInfoCard/index.vue +0 -131
  200. package/src/template/vue2-custom-cmp-template/src/components/vueInfoCard/model.js +0 -81
  201. package/src/utils/getConfigObj.js +0 -18
@@ -1,120 +0,0 @@
1
- .contact-form-container {
2
- .contact-form-card {
3
- .ant-card-head {
4
- border-bottom: 1px solid #f0f0f0;
5
-
6
- .ant-card-head-title {
7
- font-size: 18px;
8
- font-weight: 600;
9
- color: #262626;
10
- }
11
- }
12
-
13
- .contact-form {
14
- .ant-form-item {
15
- margin-bottom: 20px;
16
-
17
- .ant-form-item-label {
18
- padding-bottom: 4px;
19
-
20
- label {
21
- font-weight: 500;
22
- color: #262626;
23
-
24
- &.ant-form-item-required::before {
25
- color: #ff4d4f;
26
- }
27
- }
28
- }
29
-
30
- .ant-input,
31
- .ant-select-selector {
32
- border-radius: 6px;
33
- border-color: #d9d9d9;
34
-
35
- &:hover {
36
- border-color: #40a9ff;
37
- }
38
-
39
- &:focus,
40
- &.ant-select-focused .ant-select-selector {
41
- border-color: #1890ff;
42
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
43
- }
44
- }
45
-
46
- .ant-select {
47
- .ant-select-selector {
48
- height: 40px;
49
-
50
- .ant-select-selection-item {
51
- line-height: 38px;
52
- }
53
- }
54
- }
55
-
56
- .ant-input {
57
- height: 40px;
58
- }
59
- }
60
-
61
- .form-actions {
62
- margin-bottom: 0;
63
- padding-top: 16px;
64
- border-top: 1px solid #f0f0f0;
65
- text-align: right;
66
-
67
- .ant-btn {
68
- height: 40px;
69
- padding: 8px 24px;
70
- border-radius: 6px;
71
- font-weight: 500;
72
-
73
- &.ant-btn-primary {
74
- background-color: #1890ff;
75
- border-color: #1890ff;
76
-
77
- &:hover {
78
- background-color: #40a9ff;
79
- border-color: #40a9ff;
80
- }
81
-
82
- &:active {
83
- background-color: #096dd9;
84
- border-color: #096dd9;
85
- }
86
- }
87
-
88
- &:not(.ant-btn-primary) {
89
- color: #262626;
90
- background-color: #fff;
91
- border-color: #d9d9d9;
92
-
93
- &:hover {
94
- color: #1890ff;
95
- border-color: #1890ff;
96
- }
97
- }
98
- }
99
- }
100
- }
101
- }
102
- }
103
-
104
- // 响应式设计
105
- @media (max-width: 768px) {
106
- .contact-form-container {
107
- .contact-form-card {
108
- .contact-form {
109
- .form-actions {
110
- text-align: center;
111
-
112
- .ant-btn {
113
- width: 100%;
114
- margin: 4px 0;
115
- }
116
- }
117
- }
118
- }
119
- }
120
- }
@@ -1,115 +0,0 @@
1
- # Neo Entity Grid 组件
2
-
3
- 这是一个基于 neo-ui-component-web 的 EntityGrid 和 EntityGridStore 的自定义组件。
4
-
5
- ## 功能特性
6
-
7
- - 支持实体表格的展示和操作
8
- - 可配置实体 API Key、表格类型、选择模式等
9
- - 支持多选和单选模式
10
- - 集成 neo-ui-component-web 的 EntityGrid 组件
11
-
12
- ## 使用方法
13
-
14
- ### 基本用法
15
-
16
- ```tsx
17
- import NeoEntityGrid from './components/neo-entity-grid';
18
-
19
- <NeoEntityGrid
20
- title="产品列表"
21
- objectApiKey="account"
22
- tableType="lookup"
23
- selectionMode="multiple"
24
- backgroundImage="https://example.com/image.jpg"
25
- imgCount={3}
26
- commentCount={2025}
27
- />
28
- ```
29
-
30
- ### 属性配置
31
-
32
- | 属性名 | 类型 | 默认值 | 说明 |
33
- |--------|------|--------|------|
34
- | title | string | - | 组件标题 |
35
- | objectApiKey | string | 'account' | 实体API Key |
36
- | tableType | string | 'lookup' | 表格类型 (lookup/list/related) |
37
- | selectionMode | string | 'multiple' | 选择模式 (single/multiple/none) |
38
- | showHeader | boolean | true | 是否显示头部 (工具栏、筛选等) |
39
- | data | any | - | 组件数据 |
40
-
41
- ### 选择模式说明
42
-
43
- - **single**: 单选模式
44
- - **multiple**: 多选模式
45
- - **none**: 无选择模式
46
-
47
- ### 显示控制说明
48
- - **showHeader**: 控制是否显示表格头部,包括工具栏、筛选条件等
49
-
50
- ### 使用示例
51
-
52
- #### 1. 完整表格(默认)
53
- ```tsx
54
- <NeoEntityGrid
55
- title="账户列表"
56
- objectApiKey="account"
57
- tableType="lookup"
58
- selectionMode="multiple"
59
- showHeader={true}
60
- />
61
- ```
62
-
63
- #### 2. 不带底部的表格
64
- ```tsx
65
- <NeoEntityGrid
66
- title="账户列表"
67
- objectApiKey="account"
68
- tableType="list"
69
- selectionMode="none"
70
- showHeader={true}
71
- />
72
- ```
73
-
74
- #### 3. 纯数据表格(无头部和底部)
75
- ```tsx
76
- <NeoEntityGrid
77
- title="账户列表"
78
- objectApiKey="account"
79
- tableType="list"
80
- selectionMode="none"
81
- showHeader={false}
82
- />
83
- ```
84
-
85
- ## 技术实现
86
-
87
- ### EntityGridStore 配置
88
-
89
- 组件内部会自动创建 EntityGridStore 实例,配置如下:
90
-
91
- ```typescript
92
- const entityGridStore = EntityGridStore.create({
93
- objectApiKey: 'account',
94
- pattern: 'pickView',
95
- tableType: 'lookup',
96
- selectionMode: 'multiple',
97
- skipExt: true,
98
- funPermission: true,
99
- height: '100%',
100
- className: 'neo-entity-view',
101
- entity: {
102
- objectId: 1,
103
- apiKey: objectApiKey,
104
- custom: false
105
- },
106
- items: [],
107
- currentPage: 1,
108
- pageSize: 20,
109
- totalSize: 0,
110
- });
111
- ```
112
-
113
- ## 注意事项
114
- 1. 组件需要在 Neo 环境中使用,需要相应的上下文支持
115
- 3. 确保有相应的权限配置
@@ -1,304 +0,0 @@
1
- import * as React from 'react';
2
- // @ts-ignore
3
- import { EntityGrid, EntityGridStore } from 'neo-ui-component-web';
4
- import axiosFetcher from '../../utils/axiosFetcher';
5
- import './style.scss'; // 组件内容样式
6
-
7
- interface NeoEntityGridProps {
8
- title: string;
9
- objectApiKey?: string;
10
- tableType?: string;
11
- selectionMode?: string;
12
- data?: any;
13
- env?: any;
14
- showFooter?: boolean; // 是否显示 footer
15
- showHeader?: boolean; // 是否显示 header
16
- }
17
-
18
- export default class NeoEntityGrid extends React.PureComponent<NeoEntityGridProps> {
19
- private entityGridStore: any;
20
-
21
- private entityGridRef: React.RefObject<EntityGrid>;
22
-
23
- constructor(props: NeoEntityGridProps) {
24
- super(props);
25
- this.entityGridRef = React.createRef();
26
- this.onSelectedCall = this.onSelectedCall.bind(this);
27
- this.initStore();
28
- }
29
-
30
- shouldComponentUpdate(nextProps: Readonly<NeoEntityGridProps>): boolean {
31
- if (nextProps.objectApiKey !== this.props.objectApiKey) {
32
- // this.initStore();
33
- }
34
- const entityGridRef = this.entityGridRef.current || {};
35
- const nexObj = entityGridRef.nexObj;
36
-
37
- const {
38
- title,
39
- objectApiKey = 'account',
40
- tableType = 'lookup',
41
- selectionMode = 'multiple',
42
- showFooter = false,
43
- showHeader = true,
44
- ...restProps
45
- } = this.props;
46
-
47
- entityGridRef.resetGrid({
48
- // ...restProps,
49
- pattern: 'pickView',
50
- objectApiKey,
51
- name: `${objectApiKey}Picker`,
52
- tableType,
53
- selectionMode,
54
- skipExt: true,
55
- onSelectedCall: this.onSelectedCall,
56
- funPermission: true,
57
- nexObj,
58
- // store: this.entityGridStore,
59
- });
60
-
61
- // 不重新渲染整个组件
62
- return false;
63
- }
64
-
65
- initStore() {
66
- const {
67
- objectApiKey = 'account',
68
- tableType = 'lookup',
69
- selectionMode = 'multiple',
70
- env,
71
- showFooter = false,
72
- showHeader = true,
73
- } = this.props;
74
-
75
- try {
76
- // 生成唯一的实例ID
77
- const instanceId = `entityGrid_${objectApiKey}_${Date.now()}_${Math.random()
78
- .toString(36)
79
- .substr(2, 9)}`;
80
-
81
- // 创建真正的 EntityGridStore 实例
82
- this.entityGridStore = EntityGridStore.create({
83
- id: instanceId,
84
- objectApiKey,
85
- pattern: 'pickView',
86
- tableType,
87
- selectionMode,
88
- skipExt: true,
89
- funPermission: true,
90
- height: '100%',
91
- className: 'neo-entity-view',
92
- entity: {
93
- objectId: 1,
94
- apiKey: objectApiKey,
95
- custom: false,
96
- },
97
- items: [
98
- { apiKey: 'name', label: '名称', type: 'text' },
99
- { apiKey: 'code', label: '编码', type: 'text' },
100
- { apiKey: 'status', label: '状态', type: 'select' },
101
- ],
102
- currentPage: 1,
103
- pageSize: 20,
104
- totalSize: 0,
105
- rowData: [],
106
- selectedData: [],
107
- selectedIds: [],
108
- filterModel: [],
109
- sortModel: [],
110
- displayMode: 'list',
111
- loading: false,
112
- error: null,
113
- hasPermission: true,
114
- gridFooterVisible: false, // 控制 footer 显示
115
- headerBottomVisible: showHeader, // 控制 header 显示
116
- gridAmisJson: {
117
- type: 'neoGrid',
118
- name: 'list',
119
- height: '100%',
120
- },
121
- fetcher: axiosFetcher,
122
- env: env || {},
123
- uniqueName: instanceId,
124
- apiKey: objectApiKey,
125
- // 添加其他必要的配置
126
- requestConfig: {
127
- url: '/api/entity/list',
128
- method: 'POST',
129
- data: {},
130
- },
131
- // 添加必要的方法
132
- getFooterAmis: (options: any) => ({
133
- type: 'container',
134
- body: '分页信息',
135
- ...options,
136
- }),
137
- getSelectedData: () => this.entityGridStore?.selectedData || [],
138
- setSelectedRowsId: (ids: any) => {
139
- this.entityGridStore.selectedIds = ids;
140
- },
141
- getGridStatus: () => ({ loading: false, error: null }),
142
- deselectAll: () => {
143
- this.entityGridStore.selectedData = [];
144
- this.entityGridStore.selectedIds = [];
145
- },
146
- });
147
-
148
- console.log('EntityGridStore 创建成功:', this.entityGridStore);
149
- } catch (error) {
150
- console.error('EntityGridStore 创建失败:', error);
151
- // 创建一个简单的 fallback store
152
- this.entityGridStore = EntityGridStore.create({
153
- id: 'fallback_store',
154
- objectApiKey,
155
- pattern: 'pickView',
156
- tableType: 'lookup',
157
- selectionMode: 'multiple',
158
- skipExt: true,
159
- funPermission: true,
160
- height: '100%',
161
- className: 'neo-entity-view',
162
- entity: {
163
- objectId: 1,
164
- apiKey: objectApiKey,
165
- custom: false,
166
- },
167
- items: [],
168
- currentPage: 1,
169
- pageSize: 20,
170
- totalSize: 0,
171
- rowData: [],
172
- selectedData: [],
173
- selectedIds: [],
174
- filterModel: [],
175
- sortModel: [],
176
- displayMode: 'list',
177
- loading: false,
178
- error: error.message,
179
- hasPermission: true,
180
- gridFooterVisible: false,
181
- headerBottomVisible: showHeader, // 控制 header 显示
182
- gridAmisJson: {
183
- type: 'neoGrid',
184
- name: 'list',
185
- height: '100%',
186
- },
187
- fetcher: axiosFetcher,
188
- env: {},
189
- uniqueName: 'fallback_store',
190
- apiKey: this.props.objectApiKey || 'account',
191
- requestConfig: {
192
- url: '/api/entity/list',
193
- method: 'POST',
194
- data: {},
195
- },
196
- // 添加必要的方法
197
- getFooterAmis: (options: any) => ({
198
- type: 'container',
199
- body: '分页信息',
200
- ...options,
201
- }),
202
- getSelectedData: () => this.entityGridStore?.selectedData || [],
203
- setSelectedRowsId: (ids: any) => {
204
- this.entityGridStore.selectedIds = ids;
205
- },
206
- getGridStatus: () => ({ loading: false, error: null }),
207
- deselectAll: () => {
208
- this.entityGridStore.selectedData = [];
209
- this.entityGridStore.selectedIds = [];
210
- },
211
- });
212
- }
213
- }
214
-
215
- onSelectedCall(item: any) {
216
- console.log('onSelectedCall:', item);
217
- }
218
-
219
- componentWillUnmount() {
220
- // 清理 store 实例
221
- if (this.entityGridStore) {
222
- this.entityGridStore = null;
223
- }
224
- }
225
-
226
- render() {
227
- const {
228
- title,
229
- objectApiKey = 'account',
230
- tableType = 'lookup',
231
- selectionMode = 'multiple',
232
- showFooter = false,
233
- showHeader = true,
234
- ...restProps
235
- } = this.props;
236
- console.log('当前自定义组件:', this.props, this, this.entityGridStore);
237
- const curAmisData = this.props.data || {};
238
-
239
- const userInfo = curAmisData.__NeoCurrentUser;
240
- const systemInfo = curAmisData.__NeoSystemInfo || {};
241
-
242
- // 如果 store 创建失败,显示错误信息
243
- if (this.entityGridStore?.error) {
244
- return (
245
- <div className="neo-entity-grid-container">
246
- <div className="news-title">
247
- {title ||
248
- '营销服全场景智能CRM,帮助企业搭建数字化客户经营平台,实现业绩高质量增长。'}
249
- {systemInfo.tenantName ? `【${systemInfo.tenantName}】` : ''}
250
- </div>
251
- <div className="entity-grid-wrapper">
252
- <div
253
- style={{
254
- padding: '20px',
255
- textAlign: 'center',
256
- color: '#ff4d4f',
257
- backgroundColor: '#fff2f0',
258
- border: '1px solid #ffccc7',
259
- borderRadius: '4px',
260
- }}
261
- >
262
- <div style={{ fontSize: '16px', marginBottom: '10px' }}>
263
- ⚠️ 组件初始化失败
264
- </div>
265
- <div style={{ fontSize: '14px' }}>
266
- 错误信息: {this.entityGridStore.error}
267
- </div>
268
- <div
269
- style={{ fontSize: '12px', marginTop: '10px', color: '#666' }}
270
- >
271
- 请检查 neo-ui-component-web 依赖是否正确安装
272
- </div>
273
- </div>
274
- </div>
275
- </div>
276
- );
277
- }
278
-
279
- return (
280
- <div className="neo-entity-grid-container">
281
- <div className="news-title">
282
- {title ||
283
- '营销服全场景智能CRM,帮助企业搭建数字化客户经营平台,实现业绩高质量增长。'}
284
- {systemInfo.tenantName ? `【${systemInfo.tenantName}】` : ''}
285
- </div>
286
- <div className="entity-grid-wrapper">
287
- <EntityGrid
288
- ref={this.entityGridRef}
289
- {...restProps}
290
- pattern="pickView"
291
- objectApiKey={objectApiKey}
292
- name={`${objectApiKey}Picker`}
293
- tableType={tableType}
294
- selectionMode={selectionMode}
295
- skipExt={true}
296
- onSelectedCall={this.onSelectedCall}
297
- funPermission={true}
298
- store={this.entityGridStore}
299
- />
300
- </div>
301
- </div>
302
- );
303
- }
304
- }
@@ -1,87 +0,0 @@
1
- /**
2
- * @file 自定义组件对接编辑器的描述文件
3
- */
4
- export class NeoEntityGridModel {
5
- /**
6
- * cmpType 为自定义组件名称,用于标识组件的唯一性
7
- * 在构建时根据当前组件目录名称自动生成
8
- */
9
- // cmpType: string = 'neo-entity-grid';
10
-
11
- // 组件名称,用于设置在编辑器左侧组件面板中展示的名称
12
- label: string = 'Neo实体表格';
13
-
14
- // 组件描述,用于设置在编辑器左侧组件面板中展示的描述
15
- description: string = 'Neo 实体表格组件';
16
-
17
- // 分类标签,用于设置在编辑器左侧组件面板哪个分类中展示(可设置多个分类标签)
18
- // tags: string[] = ['自定义组件'];
19
-
20
- // 组件图标,用于设置在编辑器左侧组件面板中展示的图标
21
- iconSrc: string = 'https://custom-widgets.bj.bcebos.com/table.svg';
22
- // iconSrc: string = 'https://neo-widgets.bj.bcebos.com/custom-widget.svg';
23
- // iconSrc = 'https://neo-widgets.bj.bcebos.com/favicon.png';
24
-
25
- // 初次插入页面的默认属性数据
26
- defaultComProps = {
27
- title:
28
- '营销服全场景智能CRM,帮助企业搭建数字化客户经营平台,实现业绩高质量增长。',
29
- label: 'Neo实体表格',
30
- objectApiKey: 'account',
31
- tableType: 'list',
32
- selectionMode: 'multiple',
33
- showHeader: true,
34
- };
35
-
36
- // 设计器端预览时展示的默认数据
37
- previewComProps = {
38
- label: 'Neo实体表格',
39
- };
40
-
41
- /**
42
- * 组件面板配置,用于生成编辑器右侧属性配置面板内容
43
- */
44
- propsSchema = [
45
- {
46
- type: 'select',
47
- name: 'objectApiKey',
48
- label: '实体API Key',
49
- value: 'account',
50
- creatable: true,
51
- options: [
52
- { label: '客户', value: 'account' },
53
- { label: '产品', value: 'product' },
54
- { label: '商品', value: 'goods' },
55
- { label: '联系人', value: 'contact' },
56
- { label: '商机明细', value: 'opportunityProduct' },
57
- { label: '合同', value: 'contract' }
58
- ],
59
- },
60
- {
61
- type: 'select',
62
- name: 'selectionMode',
63
- label: '选择模式',
64
- value: 'multiple',
65
- options: [
66
- { label: 'single', value: 'single' },
67
- { label: 'multiple', value: 'multiple' },
68
- { label: 'none', value: 'none' },
69
- ],
70
- },
71
- {
72
- type: 'switch',
73
- name: 'showHeader',
74
- label: '显示头部',
75
- value: true,
76
- },
77
- ];
78
-
79
- // 支持 函数式写法:propsSchemaCreator,com 为组件实例。优先级比 propsSchema 高
80
- /*
81
- propsSchemaCreator = (com: any) => {
82
- return [];
83
- };
84
- */
85
- }
86
-
87
- export default NeoEntityGridModel;