@bit-sun/business-component 2.2.49 → 2.3.1

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 (31) hide show
  1. package/dist/common/ENUM.d.ts +40 -0
  2. package/dist/components/Functional/BsAntdSula/BsCascader/index.d.ts +18 -0
  3. package/dist/components/Functional/BsAntdSula/index.d.ts +1 -0
  4. package/dist/components/Solution/RuleComponent/Formula.d.ts +8 -0
  5. package/dist/components/Solution/RuleComponent/services.d.ts +1 -0
  6. package/dist/index.d.ts +3 -0
  7. package/dist/index.esm.js +10513 -11455
  8. package/dist/index.js +10827 -11765
  9. package/dist/utils/index.d.ts +1 -0
  10. package/dist/utils/utils.d.ts +7 -0
  11. package/package.json +2 -1
  12. package/src/common/ENUM.ts +41 -0
  13. package/src/components/Business/JsonQueryTable/components/FieldsSettingsTable.tsx +4 -0
  14. package/src/components/Business/JsonQueryTable/index.tsx +248 -33
  15. package/src/components/Functional/BsAntdSula/BsCascader/index.md +62 -0
  16. package/src/components/Functional/BsAntdSula/BsCascader/index.tsx +178 -0
  17. package/src/components/Functional/BsAntdSula/index.ts +2 -0
  18. package/src/components/Functional/EllipsisTooltip/index.d.ts +5 -0
  19. package/src/components/Functional/EllipsisTooltip/index.js +36 -0
  20. package/src/components/Functional/EllipsisTooltip/index.md +30 -0
  21. package/src/components/Solution/RuleComponent/Formula.tsx +335 -0
  22. package/src/components/Solution/RuleComponent/index.d.ts +29 -0
  23. package/src/components/Solution/RuleComponent/index.js +2028 -0
  24. package/src/components/Solution/RuleComponent/index.less +230 -0
  25. package/src/components/Solution/RuleComponent/renderSpecificAction.js +99 -0
  26. package/src/components/Solution/RuleComponent/ruleFiled.js +2074 -0
  27. package/src/components/Solution/RuleComponent/services.ts +13 -0
  28. package/src/components/Solution/RuleComponent/util.js +139 -0
  29. package/src/index.ts +4 -0
  30. package/src/utils/index.ts +1 -0
  31. package/src/utils/utils.ts +29 -0
@@ -0,0 +1,230 @@
1
+ .base_rule {
2
+ p {
3
+ margin: 0;
4
+ }
5
+
6
+ .base_rule_content {
7
+ min-height: 80px;
8
+ margin-bottom: 20px;
9
+ }
10
+
11
+ .base_rule_line_title {
12
+ position: relative;
13
+ height: 40px;
14
+ .rule_title {
15
+ height: 35px;
16
+ padding: 0 10px;
17
+ font-weight: bold;
18
+ font-size: 16px;
19
+ line-height: 35px;
20
+ }
21
+ .base_rule_btn_style {
22
+ position: absolute;
23
+ right: 0px;
24
+ }
25
+ :global {
26
+ .ant-btn-link {
27
+ color: #008fe0;
28
+ font-weight: bold;
29
+ border: 0px !important;
30
+ }
31
+
32
+ .ant-btn-link:hover,
33
+ .ant-btn-link:focus {
34
+ color: #008fe0;
35
+ background-color: transparent;
36
+ border: 0px;
37
+ border-color: #008fe0;
38
+ }
39
+
40
+ .ant-btn:not(.ant-btn-primary .ant-btn-danger):hover,
41
+ .ant-btn:not(.ant-btn-primary .ant-btn-danger):active,
42
+ .ant-btn:not(.ant-btn-primary .ant-btn-danger):focus {
43
+ color: #008fe0;
44
+ }
45
+ }
46
+ }
47
+
48
+ .base_rule_line_content {
49
+ display: flex;
50
+ // border-bottom: 1px solid #d9d9d9;
51
+ padding: 15px;
52
+ overflow-x: auto;
53
+ .base_rule_icon_btn {
54
+ margin-right: 10px;
55
+ color: #89b9cf;
56
+ font-size: 20px;
57
+ }
58
+
59
+ .base_rule_icon_btn:hover {
60
+ cursor: pointer;
61
+ }
62
+
63
+ .base_rule_item_desc_content {
64
+ height: 45px;
65
+ line-height: 45px;
66
+ }
67
+
68
+ .base_rule_item_desc {
69
+ margin-right: 15px;
70
+ }
71
+
72
+ .base_rule_item1 {
73
+ align-items: center;
74
+ width: 120px;
75
+ color: #f8ab3c;
76
+ font-size: 16px;
77
+ }
78
+
79
+ .base_rule_item2 {
80
+ width: 1200px;
81
+ }
82
+
83
+ .base_rule_item3 {
84
+ //width: calc(100% - 600px);
85
+ display: flex;
86
+ align-items: center;
87
+ justify-content: space-around;
88
+ margin-top: -20px;
89
+ padding-left: 20px;
90
+ }
91
+
92
+ .line_color_red {
93
+ color: #ed869b;
94
+ }
95
+
96
+ .base_rule_item4 {
97
+ width: 80px;
98
+ }
99
+ }
100
+
101
+ .footer_line {
102
+ & > span {
103
+ color: #008fe0;
104
+ font-weight: bold;
105
+ font-size: 16px;
106
+ }
107
+ }
108
+ }
109
+
110
+ .rule_name_title {
111
+ display: inline-block;
112
+ height: 30px;
113
+ margin-right: 10px;
114
+ margin-bottom: 10px;
115
+ padding-left: 10px;
116
+ color: #f8ab3c;
117
+ font-size: 16px;
118
+ line-height: 30px;
119
+ }
120
+
121
+ .logical_operate_content {
122
+ position: relative;
123
+ .top_line {
124
+ position: absolute;
125
+ top: 0;
126
+ left: 50%;
127
+ z-index: 999;
128
+ width: 15px;
129
+ height: 2px;
130
+ background-color: #d6efe8;
131
+ }
132
+ .bottom_line {
133
+ position: absolute;
134
+ bottom: 0;
135
+ left: 50%;
136
+ z-index: 999;
137
+ width: 15px;
138
+ height: 2px;
139
+ background-color: #d6efe8;
140
+ }
141
+ }
142
+
143
+ .logical_operate_content::before {
144
+ position: absolute;
145
+ top: 0;
146
+ left: 50%;
147
+ z-index: 998;
148
+ width: 2px;
149
+ height: 100%;
150
+ overflow: hidden;
151
+ background: #d6efe8;
152
+ content: ' ';
153
+ }
154
+
155
+ .logical_item_btn {
156
+ position: absolute !important;
157
+ top: 50%;
158
+ left: 50%;
159
+ z-index: 999;
160
+ display: flex !important;
161
+ align-items: center;
162
+ width: 50px;
163
+ height: 30px !important;
164
+ margin-top: -15px;
165
+ margin-left: -25px;
166
+ padding: 0px !important;
167
+ color: #008fe0 !important;
168
+ line-height: 30px !important;
169
+ text-align: center !important;
170
+ background-color: #ffffff !important;
171
+ cursor: pointer !important;
172
+ }
173
+
174
+ .logical_item_btn1 {
175
+ position: absolute;
176
+ bottom: 0;
177
+ left: 50%;
178
+ z-index: 999;
179
+ display: inline-block;
180
+ width: 30px;
181
+ height: 30px;
182
+ margin-left: -15px;
183
+ color: #008fe0;
184
+ line-height: 30px;
185
+ text-align: center;
186
+ background-color: #ffffff;
187
+ cursor: pointer;
188
+ }
189
+
190
+ .rule_field_style {
191
+ display: inline-block;
192
+ }
193
+
194
+ .icon_btn_style {
195
+ margin-right: 10px;
196
+ font-size: 20px;
197
+ }
198
+
199
+ .choose_logical_type {
200
+ height: 25px;
201
+ margin: 0px;
202
+ padding: 0 10px;
203
+ line-height: 25px;
204
+ cursor: pointer;
205
+ }
206
+
207
+ .choose_logical_type:first-child {
208
+ border-bottom: 1px solid #d9d9d9;
209
+ }
210
+
211
+ .choose_logical_type:hover {
212
+ color: white;
213
+ background-color: #008fe0;
214
+ }
215
+
216
+ .action_list_item {
217
+ display: flex;
218
+ justify-content: space-between;
219
+ margin-bottom: 10px;
220
+ padding: 10px;
221
+ border: 1px solid #e1e1f0;
222
+ border-radius: 2px;
223
+ cursor: pointer;
224
+ }
225
+
226
+ :global {
227
+ .ant-popover-inner-content {
228
+ padding: 0px;
229
+ }
230
+ }
@@ -0,0 +1,99 @@
1
+ import React, { Component } from 'react';
2
+ import { MinusCircleOutlined, EditOutlined } from '@ant-design/icons';
3
+ import { Space, Tooltip } from 'antd';
4
+ import styles from './index.less';
5
+ import ENUM from '../../../common/ENUM';
6
+
7
+ const {
8
+ EXCUSE_ACTION_TEXT: { SEND_MESSAGE, PUSH_TODO_TASK },
9
+ } = ENUM;
10
+
11
+ function handleRTypeData(props) {
12
+ const list =
13
+ props?.extraInfo?.execute?.filter((i) => i.isSelected).map((i) => i.code) ||
14
+ [];
15
+ const result = list?.length
16
+ ? props.ruleTypeData.filter((i) => list.includes(i.code))
17
+ : [];
18
+ return result;
19
+ }
20
+
21
+ export default class RuleField extends Component {
22
+ constructor(props) {
23
+ super(props);
24
+ this.state = {
25
+ ruleTypeData: handleRTypeData(props),
26
+ extraInfo: props?.extraInfo?.execute || [],
27
+ };
28
+ }
29
+
30
+ componentDidMount() {
31
+ const {} = this.props;
32
+ }
33
+
34
+ componentWillUnmount() {}
35
+
36
+ componentWillReceiveProps(nextProps) {
37
+ const { ruleTypeData, extraInfo } = this.state;
38
+ const isRuleTypeDataChange =
39
+ nextProps.ruleTypeData &&
40
+ this.props.ruleTypeData != nextProps.ruleTypeData &&
41
+ JSON.stringify(nextProps.ruleTypeData) != JSON.stringify(ruleTypeData);
42
+ const isExtraInfoChange =
43
+ nextProps.extraInfo &&
44
+ this.props.extraInfo != nextProps.extraInfo &&
45
+ JSON.stringify(nextProps.extraInfo) != JSON.stringify(extraInfo);
46
+ if (isRuleTypeDataChange || isExtraInfoChange) {
47
+ this.setState({
48
+ ruleTypeData: handleRTypeData(nextProps),
49
+ extraInfo: nextProps?.extraInfo?.execute || [],
50
+ });
51
+ }
52
+ }
53
+
54
+ handleActionName = (functionDetail) => {
55
+ let result = functionDetail.functionName;
56
+ const code = functionDetail.functionInfo.code;
57
+ if (code.indexOf('MassageCenter') > -1) {
58
+ result = SEND_MESSAGE;
59
+ }
60
+ if (code.indexOf('TaskCenter') > -1) {
61
+ result = PUSH_TODO_TASK;
62
+ }
63
+ return result;
64
+ };
65
+
66
+ render() {
67
+ const { ruleTypeData } = this.state;
68
+ const { handleOperatingAction, disabled } = this.props;
69
+ return (
70
+ <div>
71
+ {ruleTypeData.map((i) => (
72
+ <div className={styles.action_list_item}>
73
+ {/*向 {i.actionHandler} {i.actionName} {i.actionContent}*/}
74
+ <div onClick={() => handleOperatingAction(i.code, 'view')}>
75
+ {this.handleActionName(i)}
76
+ </div>
77
+ {(!disabled && (
78
+ <div>
79
+ <Space>
80
+ <Tooltip title={'编辑执行动作'}>
81
+ <EditOutlined
82
+ onClick={() => handleOperatingAction(i.code, 'edit')}
83
+ />
84
+ </Tooltip>
85
+ <Tooltip title={'移除执行动作'}>
86
+ <MinusCircleOutlined
87
+ onClick={() => handleOperatingAction(i.code, 'delete')}
88
+ />
89
+ </Tooltip>
90
+ </Space>
91
+ </div>
92
+ )) ||
93
+ null}
94
+ </div>
95
+ ))}
96
+ </div>
97
+ );
98
+ }
99
+ }