neo-cmp-cli 1.12.8 → 1.12.9

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 (132) hide show
  1. package/README.md +204 -6
  2. package/dist/index2.js +1 -1
  3. package/dist/neo/env.js +1 -1
  4. package/dist/package.json.js +1 -1
  5. package/package.json +1 -1
  6. package/template/antd-custom-cmp-template/package.json +1 -1
  7. package/template/{neo-bi-cmps → asset-manage-template}/README.md +65 -10
  8. package/template/asset-manage-template/docs/README.md +244 -0
  9. package/template/asset-manage-template/neo.config.js +60 -0
  10. package/template/{neo-bi-cmps → asset-manage-template}/package.json +28 -16
  11. package/template/asset-manage-template/src/assets/img/chart.svg +1 -0
  12. package/template/asset-manage-template/src/components/README.md +3 -0
  13. package/template/asset-manage-template/src/components/assetManage__c/assetApi.ts +70 -0
  14. package/template/asset-manage-template/src/components/assetManage__c/cmps/AssetCreateModal.tsx +260 -0
  15. package/template/asset-manage-template/src/components/assetManage__c/cmps/AssetGrid.tsx +48 -0
  16. package/template/asset-manage-template/src/components/assetManage__c/cmps/AssetSidebar.tsx +74 -0
  17. package/template/asset-manage-template/src/components/assetManage__c/cmps/AssetToolbar.tsx +79 -0
  18. package/template/asset-manage-template/src/components/assetManage__c/cmps/assetDisplay.tsx +72 -0
  19. package/template/asset-manage-template/src/components/assetManage__c/constants.ts +28 -0
  20. package/template/asset-manage-template/src/components/assetManage__c/index.tsx +258 -0
  21. package/template/asset-manage-template/src/components/assetManage__c/model.ts +75 -0
  22. package/template/asset-manage-template/src/components/assetManage__c/style.scss +425 -0
  23. package/template/asset-manage-template/src/components/assetManage__c/types.ts +60 -0
  24. package/template/asset-manage-template/src/components/bidList__c/cmps/BidCard.tsx +47 -0
  25. package/template/asset-manage-template/src/components/bidList__c/constants.ts +6 -0
  26. package/template/asset-manage-template/src/components/bidList__c/formatUtils.ts +14 -0
  27. package/template/asset-manage-template/src/components/bidList__c/index.tsx +194 -0
  28. package/template/asset-manage-template/src/components/bidList__c/model.ts +57 -0
  29. package/template/asset-manage-template/src/components/bidList__c/style.scss +179 -0
  30. package/template/asset-manage-template/src/components/bidList__c/types.ts +10 -0
  31. package/template/asset-manage-template/src/components/bidPackage__c/cmps/BidPackageHeader.tsx +140 -0
  32. package/template/asset-manage-template/src/components/bidPackage__c/cmps/PackageItemTable.tsx +148 -0
  33. package/template/asset-manage-template/src/components/bidPackage__c/index.tsx +394 -0
  34. package/template/asset-manage-template/src/components/bidPackage__c/mainTableColumns.tsx +57 -0
  35. package/template/asset-manage-template/src/components/bidPackage__c/model.ts +86 -0
  36. package/template/asset-manage-template/src/components/bidPackage__c/style.scss +256 -0
  37. package/template/asset-manage-template/src/components/bidPackage__c/types.ts +35 -0
  38. package/template/asset-manage-template/src/components/bidPackage__c/utils.ts +19 -0
  39. package/template/{neo-bi-cmps → asset-manage-template}/src/utils/axiosFetcher.ts +0 -0
  40. package/template/{neo-bi-cmps → asset-manage-template}/src/utils/queryObjectData.ts +0 -0
  41. package/template/asset-manage-template/src/utils/url.ts +82 -0
  42. package/template/{neo-bi-cmps → asset-manage-template}/src/utils/xobjects.ts +0 -0
  43. package/template/{neo-bi-cmps → asset-manage-template}/tsconfig.json +1 -1
  44. package/template/echarts-custom-cmp-template/package.json +1 -1
  45. package/template/empty-custom-cmp-template/package.json +2 -2
  46. package/template/neo-custom-cmp-template/package.json +2 -2
  47. package/template/neo-custom-cmp-template/src/components/entityTable__c/index.tsx +62 -6
  48. package/template/neo-h5-cmps/package.json +2 -2
  49. package/template/neo-order-cmps/package.json +2 -2
  50. package/template/react-custom-cmp-template/package.json +1 -1
  51. package/template/react-ts-custom-cmp-template/package.json +1 -1
  52. package/template/vue2-custom-cmp-template/package.json +1 -1
  53. package/template/develop/BI /351/241/271/347/233/256/345/210/206/346/236/220/346/212/245/345/221/212.md" +0 -562
  54. package/template/develop/ChatPage /347/273/204/344/273/266/344/275/277/347/224/250/350/257/264/346/230/216/346/226/207/346/241/243.md" +0 -507
  55. package/template/develop/EntityGrid Web /347/273/204/344/273/266/347/232/204/350/257/246/347/273/206/345/210/206/346/236/220/346/226/207/346/241/243.md" +0 -868
  56. package/template/develop/EntityList H5 /347/273/204/344/273/266/347/232/204/350/257/246/347/273/206/345/210/206/346/236/220/346/226/207/346/241/243.md" +0 -1386
  57. package/template/develop/GlobalSearch/347/273/204/344/273/266/345/257/271/346/257/224/345/210/206/346/236/220.md +0 -866
  58. package/template/develop/Neo /344/270/255/345/217/257/347/224/250 amis /347/273/204/344/273/266.md" +0 -1490
  59. package/template/develop/cmpEventFunctions.ts +0 -257
  60. package/template/develop/cmpEvents.ts +0 -864
  61. package/template/develop/comTree/347/224/237/346/210/220/350/277/207/347/250/213/345/210/206/346/236/220.md +0 -469
  62. package/template/develop/commonModules.js +0 -55
  63. package/template/develop/components-table.md +0 -50
  64. package/template/develop/neo-custom-cmp-template/README.md +0 -48
  65. package/template/develop/neo-custom-cmp-template/docs/README.md +0 -13
  66. package/template/develop/neo-custom-cmp-template/neo.config.js +0 -121
  67. package/template/develop/neo-custom-cmp-template/package.json +0 -63
  68. package/template/develop/neo-custom-cmp-template/src/components/contactCardList/README.md +0 -65
  69. package/template/develop/neo-custom-cmp-template/src/components/contactCardList/index.tsx +0 -180
  70. package/template/develop/neo-custom-cmp-template/src/components/contactCardList/model.ts +0 -50
  71. package/template/develop/neo-custom-cmp-template/src/components/contactCardList/style.scss +0 -260
  72. package/template/develop/neo-custom-cmp-template/src/components/contactForm/README.md +0 -94
  73. package/template/develop/neo-custom-cmp-template/src/components/contactForm/index.tsx +0 -252
  74. package/template/develop/neo-custom-cmp-template/src/components/contactForm/model.ts +0 -56
  75. package/template/develop/neo-custom-cmp-template/src/components/contactForm/style.scss +0 -120
  76. package/template/develop/neo-custom-cmp-template/src/components/neoEntityGrid/README.md +0 -115
  77. package/template/develop/neo-custom-cmp-template/src/components/neoEntityGrid/index.tsx +0 -304
  78. package/template/develop/neo-custom-cmp-template/src/components/neoEntityGrid/model.ts +0 -87
  79. package/template/develop/neo-custom-cmp-template/src/components/neoEntityGrid/style.scss +0 -127
  80. package/template/develop/neo-custom-cmp-template/src/utils/axiosFetcher.ts +0 -29
  81. package/template/develop/neo-custom-cmp-template/src/utils/queryObjectData.ts +0 -39
  82. package/template/develop/neo-custom-cmp-template/src/utils/xobjects.ts +0 -203
  83. package/template/develop/neo-custom-cmp-template/tsconfig.json +0 -68
  84. package/template/develop/neo-ui-component-h5.md +0 -105
  85. package/template/develop/neo-ui-component-web-xregister.md +0 -31
  86. package/template/develop/neo-ui-component-web.md +0 -292
  87. package/template/develop/neoCmps.ts +0 -7508
  88. package/template/develop/neoGlobalSearchInput /347/273/204/344/273/266/347/232/204/350/257/246/347/273/206/345/210/206/346/236/220/346/226/207/346/241/243.md" +0 -497
  89. package/template/develop/pageSchema1.json +0 -744
  90. package/template/develop//344/272/213/344/273/266/345/212/250/344/275/234/344/277/235/345/255/230/346/265/201/347/250/213/345/210/206/346/236/220.md +0 -390
  91. package/template/develop//345/215/225/345/205/203/346/265/213/350/257/225/344/275/277/347/224/250/350/257/264/346/230/216.md +0 -1139
  92. package/template/develop//345/261/236/346/200/247/351/205/215/347/275/256/351/241/271/347/261/273/345/236/213/346/261/207/346/200/273.md +0 -558
  93. package/template/neo-bi-cmps/.prettierrc.js +0 -12
  94. package/template/neo-bi-cmps/commitlint.config.js +0 -59
  95. package/template/neo-bi-cmps/neo.config.js +0 -124
  96. package/template/neo-bi-cmps/public/css/base.css +0 -283
  97. package/template/neo-bi-cmps/public/scripts/app/bluebird.js +0 -6679
  98. package/template/neo-bi-cmps/public/template.html +0 -13
  99. package/template/neo-bi-cmps/src/assets/css/common.scss +0 -127
  100. package/template/neo-bi-cmps/src/assets/css/mixin.scss +0 -47
  101. package/template/neo-bi-cmps/src/assets/img/NeoCRM.jpg +0 -0
  102. package/template/neo-bi-cmps/src/assets/img/custom-widget.svg +0 -1
  103. package/template/neo-bi-cmps/src/assets/img/favicon.png +0 -0
  104. package/template/neo-bi-cmps/src/assets/img/table.svg +0 -1
  105. package/template/neo-bi-cmps/src/components/targetNumber__c/README.md +0 -100
  106. package/template/neo-bi-cmps/src/components/targetNumber__c/customStyleConfig/configSchema.ts +0 -253
  107. package/template/neo-bi-cmps/src/components/targetNumber__c/customStyleConfig/index.scss +0 -76
  108. package/template/neo-bi-cmps/src/components/targetNumber__c/customStyleConfig/index.tsx +0 -148
  109. package/template/neo-bi-cmps/src/components/targetNumber__c/index.tsx +0 -440
  110. package/template/neo-bi-cmps/src/components/targetNumber__c/model.ts +0 -128
  111. package/template/neo-bi-cmps/src/components/targetNumber__c/style.scss +0 -173
  112. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/.prettierrc.js +0 -0
  113. /package/template/{neo-bi-cmps → asset-manage-template}/@types/neo-ui-common.d.ts +0 -0
  114. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/commitlint.config.js +0 -0
  115. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/public/css/base.css +0 -0
  116. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/public/scripts/app/bluebird.js +0 -0
  117. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/public/template.html +0 -0
  118. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/src/assets/css/common.scss +0 -0
  119. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/src/assets/css/mixin.scss +0 -0
  120. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/AIBtn.gif +0 -0
  121. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/src/assets/img/NeoCRM.jpg +0 -0
  122. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/aiLogo.png +0 -0
  123. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/card-list.svg +0 -0
  124. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/contact-form.svg +0 -0
  125. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/custom-form.svg +0 -0
  126. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/src/assets/img/custom-widget.svg +0 -0
  127. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/data-list.svg +0 -0
  128. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/detail.svg +0 -0
  129. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/src/assets/img/favicon.png +0 -0
  130. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/map.svg +0 -0
  131. /package/template/{neo-bi-cmps → asset-manage-template}/src/assets/img/search.svg +0 -0
  132. /package/template/{develop/neo-custom-cmp-template → asset-manage-template}/src/assets/img/table.svg +0 -0
@@ -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
- iconUrl: string = 'https://custom-widgets.bj.bcebos.com/table.svg';
22
- // iconUrl: string = 'https://neo-widgets.bj.bcebos.com/custom-widget.svg';
23
- // iconUrl = '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: 'panelSelect',
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: 'panelSelect',
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: 'panelSwitch',
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;