@bit-sun/business-component 4.0.0-alpha.3 → 4.0.2

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 (241) hide show
  1. package/.editorconfig +16 -0
  2. package/.fatherrc.ts +5 -0
  3. package/.gitlab-ci.yml +179 -0
  4. package/.prettierignore +7 -0
  5. package/.prettierrc +11 -0
  6. package/.umirc.ts +74 -0
  7. package/dist/components/Business/BsSulaQueryTable/setting.d.ts +1 -1
  8. package/dist/components/Business/BsSulaQueryTable/utils.d.ts +1 -1
  9. package/dist/components/Business/columnSettingTable/columnSetting.d.ts +1 -1
  10. package/dist/components/Business/columnSettingTable/index.d.ts +1 -0
  11. package/dist/components/Common/ParagraphCopier/index.d.ts +8 -0
  12. package/dist/components/Solution/RuleComponent/CustomPlugin/CustomSelector/CustomSelectorModal.d.ts +3 -0
  13. package/dist/components/Solution/RuleComponent/CustomPlugin/CustomSelector/helps.d.ts +2 -0
  14. package/dist/components/Solution/RuleComponent/CustomPlugin/CustomSelector/index.d.ts +3 -0
  15. package/dist/index.d.ts +1 -0
  16. package/dist/index.esm.js +1901 -639
  17. package/dist/index.js +1903 -636
  18. package/dist/utils/requestUtils.d.ts +1 -0
  19. package/dist/utils/utils.d.ts +3 -0
  20. package/docs/index.md +21 -0
  21. package/package.json +9 -14
  22. package/src/assets/32.svg +28 -0
  23. package/src/assets/addIcon.svg +18 -0
  24. package/src/assets/allfunc.svg +28 -0
  25. package/src/assets/arrowRight.svg +25 -0
  26. package/src/assets/arrow_top.png +0 -0
  27. package/src/assets/arrow_top.svg +18 -0
  28. package/src/assets/btn-delete.svg +30 -0
  29. package/src/assets/btn-edit.svg +20 -0
  30. package/src/assets/btn-more.svg +18 -0
  31. package/src/assets/btn-submit.svg +20 -0
  32. package/src/assets/caidan.svg +12 -0
  33. package/src/assets/close.svg +26 -0
  34. package/src/assets/closeicon.png +0 -0
  35. package/src/assets/drag.svg +17 -0
  36. package/src/assets/exportFail.svg +38 -0
  37. package/src/assets/exportProcessing.svg +29 -0
  38. package/src/assets/exportSuccess.svg +35 -0
  39. package/src/assets/exportlogo.png +0 -0
  40. package/src/assets/fixed-left-active.svg +12 -0
  41. package/src/assets/fixed-left.svg +16 -0
  42. package/src/assets/fixed-right-active.svg +12 -0
  43. package/src/assets/fixed-right.svg +16 -0
  44. package/src/assets/guanbi.svg +16 -0
  45. package/src/assets/icon-quanping.svg +16 -0
  46. package/src/assets/icon-shezhi.svg +18 -0
  47. package/src/assets/label_icon_bottom.svg +26 -0
  48. package/src/assets/list-no-img.svg +22 -0
  49. package/src/assets/morentouxiang-32.svg +24 -0
  50. package/src/assets/right.png +0 -0
  51. package/src/assets/scanning.svg +25 -0
  52. package/src/assets/upExport.svg +23 -0
  53. package/src/assets/xinglan-icon-out.png +0 -0
  54. package/src/common/ENUM.ts +41 -0
  55. package/src/components/Business/AddSelectBusiness/index.md +398 -0
  56. package/src/components/Business/AddSelectBusiness/index.tsx +1116 -0
  57. package/src/components/Business/BsLayouts/Components/AllFunc/drawContent.tsx +112 -0
  58. package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -0
  59. package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -0
  60. package/src/components/Business/BsLayouts/Components/ChooseStore/index.less +0 -0
  61. package/src/components/Business/BsLayouts/Components/ChooseStore/index.tsx +193 -0
  62. package/src/components/Business/BsLayouts/Components/ChooseStore/services.ts +10 -0
  63. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -0
  64. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +38 -0
  65. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +243 -0
  66. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +385 -0
  67. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +286 -0
  68. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +75 -0
  69. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +171 -0
  70. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +65 -0
  71. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +154 -0
  72. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +73 -0
  73. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +163 -0
  74. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -0
  75. package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -0
  76. package/src/components/Business/BsLayouts/Components/RightContent/i18n.ts +9 -0
  77. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +172 -0
  78. package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +161 -0
  79. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +76 -0
  80. package/src/components/Business/BsLayouts/index.less +80 -0
  81. package/src/components/Business/BsLayouts/index.tsx +1602 -0
  82. package/src/components/Business/BsLayouts/service.ts +11 -0
  83. package/src/components/Business/BsLayouts/utils.tsx +205 -0
  84. package/src/components/Business/BsSulaQueryTable/SearchItemSetting.tsx +566 -0
  85. package/src/components/Business/BsSulaQueryTable/bssulaquerytable.less +5 -0
  86. package/src/components/Business/BsSulaQueryTable/index.less +228 -0
  87. package/src/components/Business/BsSulaQueryTable/index.tsx +817 -0
  88. package/src/components/Business/BsSulaQueryTable/setting.tsx +937 -0
  89. package/src/components/Business/BsSulaQueryTable/utils.less +65 -0
  90. package/src/components/Business/BsSulaQueryTable/utils.tsx +709 -0
  91. package/src/components/Business/CommodityEntry/index.md +84 -0
  92. package/src/components/Business/CommodityEntry/index.tsx +82 -0
  93. package/src/components/Business/CommonAlert/index.less +0 -0
  94. package/src/components/Business/CommonAlert/index.tsx +23 -0
  95. package/src/components/Business/CommonGuideWrapper/index.less +156 -0
  96. package/src/components/Business/CommonGuideWrapper/index.md +61 -0
  97. package/src/components/Business/CommonGuideWrapper/index.tsx +108 -0
  98. package/src/components/Business/DetailPageWrapper/index.less +89 -0
  99. package/src/components/Business/DetailPageWrapper/index.tsx +306 -0
  100. package/src/components/Business/DetailPageWrapper/utils.tsx +166 -0
  101. package/src/components/Business/HomePageWrapper/index.less +36 -0
  102. package/src/components/Business/HomePageWrapper/index.md +45 -0
  103. package/src/components/Business/HomePageWrapper/index.tsx +130 -0
  104. package/src/components/Business/JsonQueryTable/components/FieldsModifyModal.tsx +823 -0
  105. package/src/components/Business/JsonQueryTable/components/FieldsSettingsTable.tsx +206 -0
  106. package/src/components/Business/JsonQueryTable/components/Formula.tsx +205 -0
  107. package/src/components/Business/JsonQueryTable/components/MaintainOptions.tsx +127 -0
  108. package/src/components/Business/JsonQueryTable/configButton/index.js +20 -0
  109. package/src/components/Business/JsonQueryTable/configTree/component/compactArrayView.js +25 -0
  110. package/src/components/Business/JsonQueryTable/configTree/component/compactObjectView.js +30 -0
  111. package/src/components/Business/JsonQueryTable/configTree/index.js +82 -0
  112. package/src/components/Business/JsonQueryTable/configTree/index.less +44 -0
  113. package/src/components/Business/JsonQueryTable/configTree/parser/highlight.js +57 -0
  114. package/src/components/Business/JsonQueryTable/configTree/parser/index.js +124 -0
  115. package/src/components/Business/JsonQueryTable/configTree/render/iconRender.js +29 -0
  116. package/src/components/Business/JsonQueryTable/configTree/render/nameRender.js +22 -0
  117. package/src/components/Business/JsonQueryTable/configTree/treeNode.js +116 -0
  118. package/src/components/Business/JsonQueryTable/drawer/index.tsx +12 -0
  119. package/src/components/Business/JsonQueryTable/function.ts +62 -0
  120. package/src/components/Business/JsonQueryTable/index.less +17 -0
  121. package/src/components/Business/JsonQueryTable/index.md +328 -0
  122. package/src/components/Business/JsonQueryTable/index.tsx +534 -0
  123. package/src/components/Business/JsonQueryTable/jsonEditor/index.js +346 -0
  124. package/src/components/Business/JsonQueryTable/jsonEditor/index.less +22 -0
  125. package/src/components/Business/JsonQueryTable/jsonEditor/lint/basicType.js +147 -0
  126. package/src/components/Business/JsonQueryTable/jsonEditor/lint/index.js +389 -0
  127. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/actions.js +118 -0
  128. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/dependency.js +22 -0
  129. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/index.js +21 -0
  130. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/request.js +65 -0
  131. package/src/components/Business/JsonQueryTable/static.ts +450 -0
  132. package/src/components/Business/SearchSelect/BusinessUtils.tsx +2207 -0
  133. package/src/components/Business/SearchSelect/common.ts +134 -0
  134. package/src/components/Business/SearchSelect/index.md +1570 -0
  135. package/src/components/Business/SearchSelect/index.tsx +55 -0
  136. package/src/components/Business/SearchSelect/utils.ts +125 -0
  137. package/src/components/Business/StateFlow/index.less +131 -0
  138. package/src/components/Business/StateFlow/index.md +60 -0
  139. package/src/components/Business/StateFlow/index.tsx +30 -0
  140. package/src/components/Business/TreeSearchSelect/index.md +239 -0
  141. package/src/components/Business/TreeSearchSelect/index.tsx +33 -0
  142. package/src/components/Business/TreeSearchSelect/utils.ts +115 -0
  143. package/src/components/Business/columnSettingTable/columnSetting.tsx +869 -0
  144. package/src/components/Business/columnSettingTable/index.less +253 -0
  145. package/src/components/Business/columnSettingTable/index.md +373 -0
  146. package/src/components/Business/columnSettingTable/index.tsx +235 -0
  147. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +232 -0
  148. package/src/components/Business/columnSettingTable/utils.tsx +88 -0
  149. package/src/components/Business/moreTreeTable/FixedScrollBar.tsx +87 -0
  150. package/src/components/Business/moreTreeTable/hooks/useSticky.ts +21 -0
  151. package/src/components/Business/moreTreeTable/index.less +100 -0
  152. package/src/components/Business/moreTreeTable/index.md +448 -0
  153. package/src/components/Business/moreTreeTable/index.tsx +387 -0
  154. package/src/components/Business/moreTreeTable/utils.ts +127 -0
  155. package/src/components/Common/ExtendedCollapse/ExtendedPanel.tsx +51 -0
  156. package/src/components/Common/ExtendedCollapse/index.less +33 -0
  157. package/src/components/Common/ExtendedCollapse/index.md +136 -0
  158. package/src/components/Common/ExtendedCollapse/index.tsx +25 -0
  159. package/src/components/Common/ParagraphCopier/index.md +81 -0
  160. package/src/components/Common/ParagraphCopier/index.tsx +56 -0
  161. package/src/components/Common/Section/index.md +120 -0
  162. package/src/components/Common/Section/index.module.less +16 -0
  163. package/src/components/Common/Section/index.tsx +70 -0
  164. package/src/components/Functional/AccessWrapper/index.tsx +34 -0
  165. package/src/components/Functional/AddSelect/helps.ts +81 -0
  166. package/src/components/Functional/AddSelect/index.less +367 -0
  167. package/src/components/Functional/AddSelect/index.md +155 -0
  168. package/src/components/Functional/AddSelect/index.tsx +1072 -0
  169. package/src/components/Functional/AuthButton/index.tsx +15 -0
  170. package/src/components/Functional/BillEntry/index.less +371 -0
  171. package/src/components/Functional/BillEntry/index.md +39 -0
  172. package/src/components/Functional/BillEntry/index.tsx +771 -0
  173. package/src/components/Functional/BsAntdSula/BsCascader/index.md +62 -0
  174. package/src/components/Functional/BsAntdSula/BsCascader/index.tsx +178 -0
  175. package/src/components/Functional/BsAntdSula/index.ts +2 -0
  176. package/src/components/Functional/DataImport/index.less +63 -0
  177. package/src/components/Functional/DataImport/index.md +44 -0
  178. package/src/components/Functional/DataImport/index.tsx +782 -0
  179. package/src/components/Functional/DataValidation/index.less +63 -0
  180. package/src/components/Functional/DataValidation/index.md +52 -0
  181. package/src/components/Functional/DataValidation/index.tsx +788 -0
  182. package/src/components/Functional/EllipsisTooltip/index.d.ts +5 -0
  183. package/src/components/Functional/EllipsisTooltip/index.js +36 -0
  184. package/src/components/Functional/EllipsisTooltip/index.md +30 -0
  185. package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -0
  186. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +65 -0
  187. package/src/components/Functional/QueryMutipleInput/index.less +37 -0
  188. package/src/components/Functional/QueryMutipleInput/index.md +33 -0
  189. package/src/components/Functional/QueryMutipleInput/index.tsx +129 -0
  190. package/src/components/Functional/SearchSelect/index.less +121 -0
  191. package/src/components/Functional/SearchSelect/index.md +141 -0
  192. package/src/components/Functional/SearchSelect/index.tsx +1041 -0
  193. package/src/components/Functional/SearchSelect/utils.ts +3 -0
  194. package/src/components/Functional/TreeSearchSelect/index.md +47 -0
  195. package/src/components/Functional/TreeSearchSelect/index.tsx +224 -0
  196. package/src/components/Solution/RuleComponent/CustomPlugin/CustomSelector/CustomSelectorModal.tsx +358 -0
  197. package/src/components/Solution/RuleComponent/CustomPlugin/CustomSelector/function.js +255 -0
  198. package/src/components/Solution/RuleComponent/CustomPlugin/CustomSelector/helps.tsx +58 -0
  199. package/src/components/Solution/RuleComponent/CustomPlugin/CustomSelector/index.tsx +129 -0
  200. package/src/components/Solution/RuleComponent/Formula.tsx +335 -0
  201. package/src/components/Solution/RuleComponent/InnerSelect.tsx +62 -0
  202. package/src/components/Solution/RuleComponent/RenderCompItem.tsx +743 -0
  203. package/src/components/Solution/RuleComponent/index.d.ts +29 -0
  204. package/src/components/Solution/RuleComponent/index.js +1614 -0
  205. package/src/components/Solution/RuleComponent/index.less +247 -0
  206. package/src/components/Solution/RuleComponent/renderSpecificAction.js +99 -0
  207. package/src/components/Solution/RuleComponent/ruleFiled.js +2587 -0
  208. package/src/components/Solution/RuleComponent/services.ts +13 -0
  209. package/src/components/Solution/RuleComponent/util.js +143 -0
  210. package/src/components/Solution/RuleSetter/RuleInstance.tsx +6 -0
  211. package/src/components/Solution/RuleSetter/baseRule.tsx +394 -0
  212. package/src/components/Solution/RuleSetter/function.ts +437 -0
  213. package/src/components/Solution/RuleSetter/index.less +221 -0
  214. package/src/components/Solution/RuleSetter/index.tsx +208 -0
  215. package/src/components/Solution/RuleSetter/service.js +276 -0
  216. package/src/index.ts +46 -0
  217. package/src/plugin/TableColumnSetting/index.less +247 -0
  218. package/src/plugin/TableColumnSetting/index.md +50 -0
  219. package/src/plugin/TableColumnSetting/index.tsx +725 -0
  220. package/src/plugin/TableColumnSetting/utils.ts +19 -0
  221. package/src/styles/bsDefault.less +32 -12
  222. package/src/utils/CheckOneUser/index.md +39 -0
  223. package/src/utils/CheckOneUser/index.ts +52 -0
  224. package/src/utils/CustomLoginInfo.ts +55 -0
  225. package/src/utils/LocalstorageUtils.ts +134 -0
  226. package/src/utils/TableUtils.less +52 -0
  227. package/src/utils/TableUtils.tsx +691 -0
  228. package/src/utils/auth.ts +39 -0
  229. package/src/utils/businessUtils.ts +434 -0
  230. package/src/utils/checkUtils.ts +39 -0
  231. package/src/utils/constant.ts +38 -0
  232. package/src/utils/enumConfig.ts +17 -0
  233. package/src/utils/getFormMode.js +12 -0
  234. package/src/utils/index.ts +19 -0
  235. package/src/utils/request.ts +53 -0
  236. package/src/utils/requestUtils.ts +197 -0
  237. package/src/utils/serialize.js +7 -0
  238. package/src/utils/utils.ts +267 -0
  239. package/src/utils/xlsxUtil.tsx +146 -0
  240. package/tsconfig.json +29 -0
  241. package/typings.d.ts +5 -0
@@ -0,0 +1,206 @@
1
+ import React, { useRef, useState } from 'react';
2
+ import BsSulaQueryTable from './../../BsSulaQueryTable';
3
+ import FieldsModifyModal from './FieldsModifyModal';
4
+ import { inputType, choiceType, valueType } from "./../static"
5
+ import _ from 'lodash';
6
+
7
+ // @ts-nocheck
8
+ export default (props:any)=>{
9
+ const {
10
+ businessType,
11
+ fieldGroup='',
12
+ codeProps='',
13
+ moduleType,
14
+ moduleRelationId,
15
+ tableFlag = false
16
+ } = props;
17
+
18
+ const ref = useRef(null);
19
+ const [fieldsModify, setFieldsModify] = useState({
20
+ visible: false,
21
+ inputType,
22
+ choiceType,
23
+ valueType,
24
+ title: '',
25
+ lineDetail:{},
26
+ mode: 'create',
27
+ record: {},
28
+ onParentOk: () => {
29
+ // @ts-ignore
30
+ ref?.current?.tableRef?.current?.refreshTable();
31
+ fieldsModify.onCancel();
32
+ },
33
+ onCancel: () =>
34
+ setFieldsModify({
35
+ ...fieldsModify,
36
+ visible: false,
37
+ }),
38
+ });
39
+ const searchableFlag = codeProps?.columns?true:false; //列表只查询 查询项为是得自定义字段
40
+
41
+ const renderTrueOrFalse = [
42
+ {
43
+ type: 'text',
44
+ props: {
45
+ children: '#{text ? "是" : "否" }',
46
+ },
47
+ },
48
+ ];
49
+
50
+ const tableConfig = {
51
+ needPageHeader: false,
52
+ noConditionOpts: true,
53
+ remoteDataSource: {
54
+ url: `/basic/flow/businessField?sorter=asc-priority&qp-businessType-eq=${businessType}&qp-fieldGroup-eq=${fieldGroup}`+(searchableFlag?`&qp-searchableFlag-eq=true`:''),
55
+ convertParams: 'bs-tableConvertParamsType',
56
+ converter: 'bs-tableConvertType',
57
+ },
58
+ actionsRender: [
59
+ {
60
+ type: 'button',
61
+ props: {
62
+ children: '新增',
63
+ type: 'primary',
64
+ },
65
+ action: () => {
66
+ setFieldsModify({
67
+ ...fieldsModify,
68
+ visible: true,
69
+ record: {
70
+ fieldGroup,
71
+ businessType,
72
+ },
73
+ lineDetail: {},
74
+ mode: 'create',
75
+ title: `新增字段`,
76
+ });
77
+ }
78
+ },
79
+ ],
80
+ fields: [
81
+ {
82
+ name: 'qp-name-like',
83
+ label: '字段名称',
84
+ field: 'input',
85
+ },
86
+ ],
87
+ columns: [
88
+ {
89
+ key: 'code',
90
+ title: '字段编号',
91
+ width: 75
92
+ },
93
+ {
94
+ key: 'name',
95
+ title: '字段名称',
96
+ width: 100
97
+ },
98
+ {
99
+ key: 'isUse',
100
+ title: '是否使用',
101
+ width: 70,
102
+ render: ({text}:any) => {
103
+ const jsonEditorVal=localStorage.getItem('jsonEditorVal')||'';
104
+ console.log('jsonEditorVal',jsonEditorVal);
105
+ return jsonEditorVal.indexOf(text) >= 0 ? '是' : "否"
106
+ }
107
+ },
108
+ {
109
+ key: 'codeSnippet',
110
+ title: '代码片段',
111
+ render: ({text,record}:any) => {
112
+ if(tableFlag){
113
+ return <div> 列表:{`{"key": "extensionFields,${record.code}","dataIndex": "extensionFields,${record.code}","title": "${record.name}"},`}</div>
114
+ }
115
+ if (!codeProps.columns) {
116
+ return <div>表单:{`{"name": "extensionFields,${record.code}","label": "${record.name}"},`}</div>
117
+ }
118
+ return (
119
+ <>
120
+ <div>列表:{`{"key": "extensionFields,${record.code}","title": "${record.name}"},`}</div>
121
+ <div>表单:{`{"name": "extensionFields,${record.code}","label": "${record.name}"},`}</div>
122
+ </>
123
+ )
124
+ },
125
+ },
126
+ {
127
+ key: 'requiredFlag',
128
+ title: '是否必填',
129
+ render: renderTrueOrFalse,
130
+ width: 70
131
+ },
132
+ {
133
+ key: 'searchableFlag',
134
+ title: '是否查询项',
135
+ render: renderTrueOrFalse,
136
+ width: 80
137
+ },
138
+ {
139
+ key: 'inputType',
140
+ title: '显示类型',
141
+ render: ({ text }: any) => {
142
+ return inputType[text] || '-'
143
+ } ,
144
+ width: 80
145
+ },
146
+ {
147
+ key: 'valueType',
148
+ title: '字段类型',
149
+ render: ({ text }: any) => valueType[text] || '-',
150
+ width: 80
151
+ },
152
+ {
153
+ key: 'operation',
154
+ title: '操作',
155
+ render: [
156
+ {
157
+ type: 'link',
158
+ props: {
159
+ children: '编辑',
160
+ },
161
+ action: ({ record: rec }: any) => {
162
+ setFieldsModify({
163
+ ...fieldsModify,
164
+ visible: true,
165
+ mode: 'edit',
166
+ lineDetail: {
167
+ moduleType,
168
+ moduleRelationId
169
+ },
170
+ title: `编辑字段`,
171
+ record: rec,
172
+ });
173
+ },
174
+ },
175
+ {
176
+ type: 'link',
177
+ props: {
178
+ children: '删除',
179
+ danger: true,
180
+ },
181
+ action: [
182
+ {
183
+ url: `/basic/flow/businessField`,
184
+ method: 'DELETE',
185
+ data: {
186
+ id: '#{record.id}',
187
+ },
188
+ successMessage: '删除成功!',
189
+ },
190
+ 'refreshTable',
191
+ ],
192
+ },
193
+ ],
194
+ },
195
+ ],
196
+ size: "small",
197
+ tableCode: "customerFieldsTable"
198
+ };
199
+
200
+ return (
201
+ <>
202
+ <BsSulaQueryTable {...tableConfig} forwardedRef={ref} />
203
+ {fieldsModify.visible && <FieldsModifyModal {...fieldsModify} />}
204
+ </>
205
+ )
206
+ }
@@ -0,0 +1,205 @@
1
+ import { Button, Modal, Row, Col, Input } from 'antd';
2
+ import React, { useState, useEffect } from 'react';
3
+ import { CloseCircleOutlined } from '@ant-design/icons';
4
+ import {
5
+ SortableContainer,
6
+ SortableElement,
7
+ SortableHandle,
8
+ } from 'react-sortable-hoc';
9
+ import { arrayMoveImmutable } from 'array-move';
10
+ import { ModalForm, request } from 'bssula';
11
+ import { judgeIsRequestSuccess } from '@/utils/requestUtils';
12
+
13
+
14
+ const App = ({
15
+ record,
16
+ setValue,
17
+ formula
18
+ }:{
19
+ record:any,
20
+ setValue:any,
21
+ formula:any,
22
+ }) => {
23
+ const [formul, setFormul] = useState(record.formula)
24
+ const [state, UpdateState]:any = useState([])
25
+ const [fieldList, UpdateFiedList] = useState([])
26
+
27
+ useEffect(() => {
28
+ request({
29
+ url: '/basic/flow/businessField/listNoPage',
30
+ params: {
31
+ 'qp-businessType-eq': record.businessType,
32
+ 'qp-fieldGroup-eq': record.fieldGroup,
33
+ },
34
+ converter: ({ response, data }:any) => {
35
+ if (judgeIsRequestSuccess(response)) {
36
+ // UpdateFiedList(data.filter(item => item.valueType == 20 || item.valueType == 21 || item.valueType == 22))
37
+ const resData = data.filter((item:any) => item.inputType != 40 && (item.valueType == 20 || item.valueType == 21 || item.valueType == 22)).map((item:any) => ({value: item.code, name: item.name}))
38
+ UpdateFiedList(resData)
39
+ let res:any = [];
40
+ formul && formul.replace(/(\w+|\+|\-|\*|\/|\(|\))/g, (item:any) => {
41
+ if (resData.filter((initem:any) => initem.value === item).length) {
42
+ res = res.concat(resData.filter((initem:any) => initem.value === item))
43
+ } else {
44
+ res = res.concat(['+', '-', '*', '/', '(', ')'].filter(initem => initem === item).map(item => ({value: item, name: item})))
45
+ }
46
+ })
47
+
48
+ UpdateState(res)
49
+ }
50
+ }
51
+ })
52
+ }, [])
53
+
54
+ const [isModalVisible, setIsModalVisible] = useState(false);
55
+
56
+ const showModal = () => {
57
+ setIsModalVisible(true);
58
+ };
59
+
60
+ const handleOk = () => {
61
+ setIsModalVisible(false);
62
+ setValue(state);
63
+ setFormul(state.map((item:any) => {
64
+ if (['+', '-', '*', '/', '(', ')'].indexOf(item.value) == -1) {
65
+ return `{${item.value}}`
66
+ }
67
+ return item.value;
68
+ }).join(''))
69
+ };
70
+
71
+ const handleCancel = () => {
72
+ setIsModalVisible(false);
73
+ };
74
+
75
+
76
+ const onSortEnd = ({ oldIndex, newIndex }:any) => {
77
+ UpdateState(arrayMoveImmutable(state, oldIndex, newIndex))
78
+ };
79
+
80
+ const deleteItem = (value:any, indexOrder:any) => {
81
+ UpdateState([].concat(state).filter((item, index) => index !== indexOrder))
82
+
83
+ }
84
+
85
+ const SortableItem = SortableElement(({ value, sortIndex }:any) => {
86
+ return <span style={{
87
+ // height: '100px',
88
+ padding: '5px 10px',
89
+ margin: '10px',
90
+ height: '40px',
91
+ lineHeight: '30px',
92
+ flexBasis: '1',
93
+ border: '1px solid #e8eaee',
94
+ borderRadius: '5px',
95
+ cursor: 'pointer',
96
+ }}>{value} &nbsp; <CloseCircleOutlined onClick={(e) => {
97
+ deleteItem(value, sortIndex)
98
+ }} /></span>
99
+ });
100
+
101
+ const SortableList = SortableContainer(({ items }:any) => {
102
+ return (
103
+ <div style={{ display: 'flex', flexWrap: 'wrap' }}>
104
+ {items.map((value:any, index:any) => (
105
+ <>
106
+ {/* @ts-ignore */}
107
+ <SortableItem key={`item-${value.value}`} sortIndex={index} index={index} value={value.name} />
108
+ </>
109
+ ))}
110
+ </div>
111
+ );
112
+ });
113
+
114
+ const add = ((item:any) => {
115
+ UpdateState([...state, item])
116
+ })
117
+
118
+ const formatFormul = () => {
119
+ if (!fieldList.length || !formul) return '';
120
+ let res = formul.replace(/\w+/g, (item:any) => {
121
+ // @ts-ignore
122
+ return fieldList.filter((inneritem:any) => inneritem.value === item)[0].name
123
+ })
124
+
125
+ return res.replace(/(\{|\})/g, '')
126
+ }
127
+
128
+
129
+ return (
130
+ <>
131
+ <>
132
+ <Input value={formatFormul()} style={{width: '540px'}} disabled />
133
+ <Button type="primary" onClick={showModal}>
134
+ 编辑表达式
135
+ </Button>
136
+ <Modal title="编辑表达式" visible={isModalVisible} onOk={handleOk} onCancel={handleCancel} width={1000}>
137
+ <div style={{ height: '600px' }}>
138
+ <Row>
139
+ <Col span={6}>
140
+ <div style={{
141
+ border: '1px solid #e8eaee',
142
+ padding: '10px',
143
+ display: 'flex',
144
+ justifyContent: 'space-around',
145
+ borderRadius: '5px',
146
+ flexWrap: 'wrap',
147
+ overflow: 'auto',
148
+ maxHeight: '600px'
149
+ }}
150
+ >
151
+ {[...fieldList].map((item:any) => (
152
+ <span onClick={() => { add(item) }} style={{
153
+ width: '80px',
154
+ // height: '100px',
155
+ padding: '10px',
156
+ margin: '10px 0px',
157
+ flexBasis: '1',
158
+ border: '1px solid #e8eaee',
159
+ borderRadius: '5px',
160
+ cursor: 'pointer',
161
+ }}>{item.name}</span>
162
+ ))}
163
+ </div>
164
+ </Col>
165
+ <Col span={18}>
166
+ <Row>
167
+ <div>
168
+ {['+', '-', '*', '/', '(', ')'].map(item => <span onClick={() => { add({name: item, value: item}) }} style={{
169
+ width: '50px',
170
+ textAlign: 'center',
171
+ display: 'inline-block',
172
+ padding: '5px 10px',
173
+ margin: '10px',
174
+ height: '40px',
175
+ lineHeight: '30px',
176
+ flexBasis: '1',
177
+ border: '1px solid #e8eaee',
178
+ borderRadius: '5px',
179
+ cursor: 'pointer',
180
+ }}>{item}</span>)}
181
+ </div>
182
+ </Row>
183
+ <Row>
184
+ <div style={{
185
+ width: '700px',
186
+ padding: '10px',
187
+ marginLeft: '10px',
188
+ flexBasis: '1',
189
+ border: '1px solid #e8eaee',
190
+ minHeight: '560px'
191
+ }}>
192
+ {/* @ts-ignore */}
193
+ <SortableList distance={20} helperClass="row-dragging" items={state} axis='xy' onSortEnd={onSortEnd} />
194
+ </div>
195
+ </Row>
196
+ </Col>
197
+ </Row>
198
+ </div>
199
+ </Modal>
200
+ </>
201
+ </>
202
+ );
203
+ };
204
+
205
+ export default App;
@@ -0,0 +1,127 @@
1
+ import React, { useRef } from 'react';
2
+ import { Button, Input, Modal } from 'antd';
3
+ import { Table } from 'bssula';
4
+ import { uuid } from '@/utils/utils';
5
+
6
+ export default (props: any) => {
7
+ const tableRef:any = useRef(null);
8
+ const { onParentOk, record } = props;
9
+ const config = {
10
+ initialDataSource:
11
+ Object.keys(record.choiceInfo || {})?.map((d: any) => ({
12
+ text: record.choiceInfo[d],
13
+ value: d,
14
+ id: uuid(),
15
+ })) || [],
16
+ columns: [
17
+ {
18
+ key: 'value',
19
+ title: '值',
20
+ render: ({ text, record }: any) => {
21
+ return (
22
+ <Input
23
+ onChange={(e) => {
24
+ record['value'] = e.target.value;
25
+ }}
26
+ value={text}
27
+ />
28
+ );
29
+ },
30
+ },
31
+ {
32
+ key: 'text',
33
+ title: '文本',
34
+ render: ({ record, text }: any) => {
35
+ return (
36
+ <Input
37
+ onChange={(e) => {
38
+ record['text'] = e.target.value;
39
+ }}
40
+ value={text}
41
+ />
42
+ );
43
+ },
44
+ },
45
+ {
46
+ key: 'operation',
47
+ title: '操作',
48
+ render: [
49
+ {
50
+ type: 'link',
51
+ props: {
52
+ children: '删除',
53
+ },
54
+ action: ({ record, table }: any) => {
55
+ table.setDataSource(
56
+ table.getDataSource().filter((d: any) => d.id !== record.id),
57
+ );
58
+ },
59
+ },
60
+ ],
61
+ },
62
+ ],
63
+ rowKey: 'id',
64
+ onChange: (pag:any) => {
65
+ tableRef?.current?.setPagination(pag);
66
+ },
67
+ footer: () => {
68
+ return (
69
+ <div>
70
+ <Button
71
+ type={'primary'}
72
+ onClick={() => {
73
+ const data = tableRef?.current?.getDataSource();
74
+ tableRef?.current?.setDataSource([
75
+ ...data,
76
+ {
77
+ id: uuid(),
78
+ },
79
+ ]);
80
+ }}
81
+ >
82
+ 添加一行
83
+ </Button>
84
+ <Button
85
+ onClick={() => {
86
+ const data = tableRef?.current?.getDataSource();
87
+ tableRef?.current?.setDataSource([
88
+ ...data,
89
+ {
90
+ id: uuid(),
91
+ },
92
+ {
93
+ id: uuid(),
94
+ },
95
+ {
96
+ id: uuid(),
97
+ },
98
+ {
99
+ id: uuid(),
100
+ },
101
+ {
102
+ id: uuid(),
103
+ },
104
+ ]);
105
+ }}
106
+ >
107
+ 添加五行
108
+ </Button>
109
+ </div>
110
+ );
111
+ },
112
+ };
113
+ return (
114
+ <Modal
115
+ {...props}
116
+ maskClosable={false}
117
+ onOk={() => {
118
+ onParentOk(
119
+ tableRef?.current?.getDataSource().filter((d: any) => d.text && d.value),
120
+ );
121
+ }}
122
+ >
123
+ <Table {...config} style={{ width: '500px' }} ref={tableRef} />
124
+ </Modal>
125
+ );
126
+ };
127
+
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { Affix, Button } from 'antd';
3
+ import { SettingOutlined } from '@ant-design/icons';
4
+
5
+ export default props => {
6
+ const { onClick } = props;
7
+
8
+ const style = { position: 'fixed', top: 360, right: 24, zIndex: 1001 };
9
+
10
+ return (
11
+ <Affix style={style}>
12
+ <Button
13
+ style={{ width: 50, height: 50, lineHeight: '57px' }}
14
+ icon={<SettingOutlined style={{ fontSize: 30 }} />}
15
+ type="primary"
16
+ onClick={onClick}
17
+ />
18
+ </Affix>
19
+ );
20
+ };
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+
3
+ const prefixCls = 'tree-compact';
4
+
5
+ export default class CompactArrayView extends React.Component {
6
+ shouldComponentUpdate(nextProps) {
7
+ return nextProps.array.length !== this.props.array.length;
8
+ }
9
+
10
+ render() {
11
+ let { array } = this.props;
12
+ let count = array.length;
13
+
14
+ if (count === 0) {
15
+ return <span>{'[ ]'}</span>;
16
+ }
17
+ return (
18
+ <span className={prefixCls}>
19
+ <span>{'['}</span>
20
+ <span>{count + ' element' + (count > 1 ? 's' : '')}</span>
21
+ <span>{']'}</span>
22
+ </span>
23
+ );
24
+ }
25
+ }
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+
3
+ const prefixCls = 'tree-compact';
4
+
5
+ export default class CompactObjectView extends React.Component {
6
+ shouldComponentUpdate(nextProps) {
7
+ const nextLength = Object.keys(nextProps.object).length;
8
+ const prevLength = Object.keys(this.props.object).length;
9
+ return nextLength !== prevLength;
10
+ }
11
+
12
+ render() {
13
+ let keys = this.props.object.map(v => v.name);
14
+ let count = keys.length;
15
+
16
+ if (count === 0) {
17
+ return <span>{'{ }'}</span>;
18
+ }
19
+ if (count > 2) {
20
+ keys = keys.slice(0, 2).concat([`... +${count - 2}`]);
21
+ }
22
+ return (
23
+ <span className={prefixCls}>
24
+ <span>{'{'}</span>
25
+ <span>{keys.join(', ')}</span>
26
+ <span>{'}'}</span>
27
+ </span>
28
+ );
29
+ }
30
+ }
@@ -0,0 +1,82 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import castArray from 'lodash/castArray';
3
+ import createTreeData, { getConfigNode } from './parser';
4
+ import { createHighLightTreeData, clearActiveNode } from './parser/highlight';
5
+ import TreeNode from './treeNode';
6
+ import iconRender from './render/iconRender';
7
+ import nameRender from './render/nameRender';
8
+
9
+ import './index.less';
10
+
11
+ export { iconRender, nameRender };
12
+
13
+ function parseData(data) {
14
+ let res;
15
+ try {
16
+ res = createTreeData(getConfigNode(data));
17
+ } catch (e) {}
18
+
19
+ return res;
20
+ }
21
+
22
+ export default props => {
23
+ const {
24
+ data,
25
+ onToggle,
26
+ onSelect,
27
+ nameRender,
28
+ iconRender,
29
+ contextMenuRender,
30
+ style,
31
+ level = 0,
32
+ currentLine,
33
+ } = props;
34
+ const [treeData, setTreeData] = useState(parseData(data));
35
+ const [activeLine, setActiveLine] = useState(-1);
36
+
37
+ useEffect(() => {
38
+ setTreeData(parseData(data));
39
+ }, [data]);
40
+
41
+ useEffect(() => {
42
+ if (!treeData || !treeData[0]) {
43
+ setActiveLine(-1);
44
+ } else {
45
+ setActiveLine(currentLine);
46
+ }
47
+ }, [treeData, currentLine]);
48
+
49
+ useEffect(() => {
50
+ setTimeout(() => {
51
+ setTreeData(createHighLightTreeData(treeData, activeLine));
52
+ });
53
+ }, [activeLine]);
54
+
55
+ const handleSelect = (node, hasChildren) => {
56
+ const noActiveData = clearActiveNode(treeData);
57
+ setTreeData(noActiveData);
58
+ onSelect(node, hasChildren);
59
+ };
60
+
61
+ return (
62
+ <div className="si-tree" style={style}>
63
+ {castArray(treeData).map((node, index) => {
64
+ if (!node) return;
65
+
66
+ return (
67
+ <TreeNode
68
+ data={node}
69
+ onToggle={onToggle}
70
+ onSelect={handleSelect}
71
+ nameRender={nameRender}
72
+ iconRender={iconRender}
73
+ contextMenuRender={contextMenuRender}
74
+ key={node.name || index}
75
+ level={level}
76
+ activeLine={activeLine}
77
+ />
78
+ );
79
+ })}
80
+ </div>
81
+ );
82
+ };