@zgfe/business-lib 1.0.9 → 1.0.12

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 (79) hide show
  1. package/es/addToPanel/components/addPanel.d.ts +7 -0
  2. package/es/addToPanel/components/addPanel.js +101 -0
  3. package/es/addToPanel/components/radioGroup.d.ts +7 -0
  4. package/es/addToPanel/components/radioGroup.js +29 -0
  5. package/es/addToPanel/components/styleList.d.ts +5 -0
  6. package/es/{dialog/components/tab.js → addToPanel/components/styleList.js} +12 -7
  7. package/es/{dialog/demo/index2.d.ts → addToPanel/demo/edit.d.ts} +0 -0
  8. package/es/{dialog/components/list.js → addToPanel/demo/edit.js} +64 -44
  9. package/es/{dialog/demo/index3.d.ts → addToPanel/demo/index.d.ts} +0 -0
  10. package/es/addToPanel/demo/index.js +78 -0
  11. package/es/addToPanel/index.d.ts +6 -0
  12. package/es/addToPanel/index.js +268 -0
  13. package/es/addToPanel/styles/addPanel.less +25 -0
  14. package/es/addToPanel/styles/index.less +6 -0
  15. package/es/{dialog/components/styles/tab.less → addToPanel/styles/style.less} +7 -2
  16. package/es/addToPanel/types.d.ts +57 -0
  17. package/es/addToPanel/types.js +1 -0
  18. package/es/addToScene/addGroup.d.ts +11 -0
  19. package/es/addToScene/addGroup.js +34 -0
  20. package/es/addToScene/demo/index.d.ts +2 -0
  21. package/es/addToScene/demo/index.js +34 -0
  22. package/es/addToScene/index.d.ts +6 -0
  23. package/es/addToScene/index.js +195 -0
  24. package/es/addToScene/styles/index.less +23 -0
  25. package/es/addToScene/types.d.ts +29 -0
  26. package/es/addToScene/types.js +1 -0
  27. package/es/analysisLayout/demo/index.d.ts +1 -0
  28. package/es/analysisLayout/demo/index.js +1 -0
  29. package/es/analysisLayout/index.js +1 -1
  30. package/es/analysisLayout/index.less +3 -2
  31. package/es/assets/iconfont/demo_index.html +49 -3
  32. package/es/assets/iconfont/iconfont.css +11 -3
  33. package/es/assets/iconfont/iconfont.js +1 -1
  34. package/es/assets/iconfont/iconfont.json +14 -0
  35. package/es/assets/iconfont/iconfont.ttf +0 -0
  36. package/es/assets/iconfont/iconfont.woff +0 -0
  37. package/es/assets/iconfont/iconfont.woff2 +0 -0
  38. package/es/assets/styles/chunks.less +17 -1
  39. package/es/assets/styles/resetAntd.less +61 -20
  40. package/es/assets/styles/variable.less +8 -1
  41. package/es/assets/theme.d.ts +3 -0
  42. package/es/assets/theme.js +4 -1
  43. package/es/attrConditions/components/stringList.js +4 -3
  44. package/es/attributeSelector/styles/index.less +2 -0
  45. package/es/config.d.ts +15 -0
  46. package/es/config.js +8 -0
  47. package/es/constants/apis.d.ts +9 -0
  48. package/es/constants/apis.js +9 -0
  49. package/es/datePicker/styles/index.less +4 -0
  50. package/es/dialog/demo/index.d.ts +0 -29
  51. package/es/dialog/demo/index.js +6 -130
  52. package/es/dialog/index.d.ts +1 -2
  53. package/es/dialog/index.js +15 -183
  54. package/es/dialog/types.d.ts +2 -74
  55. package/es/eventSelector/listPanel.js +8 -0
  56. package/es/eventSelector/styles/index.less +11 -5
  57. package/es/index.d.ts +4 -1
  58. package/es/index.js +4 -1
  59. package/es/select/index.js +1 -0
  60. package/es/select/overlay.js +3 -1
  61. package/es/select/styles/handle.less +2 -0
  62. package/es/select/styles/index.less +0 -3
  63. package/es/select/types.d.ts +1 -0
  64. package/es/targetSelector/styles/index.less +3 -1
  65. package/es/utils/ajax.d.ts +33 -7
  66. package/es/utils/ajax.js +212 -111
  67. package/package.json +4 -3
  68. package/es/dialog/components/itemNode.d.ts +0 -10
  69. package/es/dialog/components/itemNode.js +0 -109
  70. package/es/dialog/components/list.d.ts +0 -5
  71. package/es/dialog/components/selectToInput.d.ts +0 -6
  72. package/es/dialog/components/selectToInput.js +0 -175
  73. package/es/dialog/components/styles/handle.less +0 -39
  74. package/es/dialog/components/styles/list.less +0 -60
  75. package/es/dialog/components/tab.d.ts +0 -5
  76. package/es/dialog/data/data.d.ts +0 -20
  77. package/es/dialog/data/data.js +0 -73
  78. package/es/dialog/demo/index2.js +0 -109
  79. package/es/dialog/demo/index3.js +0 -61
@@ -0,0 +1,268 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+
3
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+
5
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
+
7
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
8
+
9
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
10
+
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+
13
+ import { Button, Form, Input, notification, Skeleton } from 'antd';
14
+ import React, { useContext, useEffect, useRef, useState } from 'react';
15
+ import BizDialog from '../dialog';
16
+ import BizSelect from '../select';
17
+ import './styles/index.less';
18
+ import StyleList from './components/styleList';
19
+ import RadioGroup from './components/radioGroup';
20
+ import IconFont from '../icon/iconFont';
21
+ import AddPanel from './components/addPanel';
22
+ import request from '../utils/ajax';
23
+ import Apis from '../constants/apis';
24
+ import BizGlobalDataContext from '../context';
25
+ import _ from 'lodash';
26
+ export var classPrefix = 'biz-addtopanel';
27
+
28
+ var BizAddToPanel = function BizAddToPanel(props) {
29
+ var refForm = useRef();
30
+
31
+ var _useState = useState(false),
32
+ _useState2 = _slicedToArray(_useState, 2),
33
+ addMode = _useState2[0],
34
+ setAddMode = _useState2[1];
35
+
36
+ var _useState3 = useState([]),
37
+ _useState4 = _slicedToArray(_useState3, 2),
38
+ groupList = _useState4[0],
39
+ setGroupList = _useState4[1];
40
+
41
+ var _useState5 = useState(),
42
+ _useState6 = _slicedToArray(_useState5, 2),
43
+ formData = _useState6[0],
44
+ setFormData = _useState6[1];
45
+
46
+ var _useState7 = useState(true),
47
+ _useState8 = _slicedToArray(_useState7, 2),
48
+ ready = _useState8[0],
49
+ setReady = _useState8[1];
50
+
51
+ var _useState9 = useState(false),
52
+ _useState10 = _slicedToArray(_useState9, 2),
53
+ loading = _useState10[0],
54
+ setLoading = _useState10[1];
55
+
56
+ var _useContext = useContext(BizGlobalDataContext),
57
+ currentApp = _useContext.currentApp;
58
+
59
+ useEffect(function () {
60
+ if (props.defaultValue) {
61
+ setFormData(props.defaultValue);
62
+ }
63
+
64
+ queryGroups();
65
+ }, []);
66
+
67
+ function queryGroups() {
68
+ request(Apis.queryPanelGroup, {
69
+ method: 'post',
70
+ data: {
71
+ app_id: currentApp === null || currentApp === void 0 ? void 0 : currentApp.appId,
72
+ platform: (currentApp === null || currentApp === void 0 ? void 0 : currentApp.platform) || 0,
73
+ role_type: 3
74
+ }
75
+ }).then(function (res) {
76
+ if (!res) {
77
+ notification.error({
78
+ message: '获取看板列表失败'
79
+ });
80
+ setReady(false);
81
+ return;
82
+ }
83
+
84
+ setGroupList(res.panels);
85
+ setReady(false);
86
+ }).catch(function () {
87
+ setReady(false);
88
+ });
89
+ }
90
+
91
+ function toCreatePanel() {
92
+ var _refForm$current;
93
+
94
+ (_refForm$current = refForm.current) === null || _refForm$current === void 0 ? void 0 : _refForm$current.resetFields(['panel']);
95
+ setAddMode(true);
96
+ }
97
+
98
+ function onBack() {
99
+ var _refForm$current2;
100
+
101
+ (_refForm$current2 = refForm.current) === null || _refForm$current2 === void 0 ? void 0 : _refForm$current2.resetFields(['panel']);
102
+ setAddMode(false);
103
+ }
104
+
105
+ function onAdd() {
106
+ var _refForm$current3;
107
+
108
+ (_refForm$current3 = refForm.current) === null || _refForm$current3 === void 0 ? void 0 : _refForm$current3.submit();
109
+ }
110
+
111
+ function onSubmit(form) {
112
+ setLoading(true);
113
+
114
+ var searchParam = _.cloneDeep(props.params);
115
+
116
+ searchParam.chartType = form.chartType;
117
+ var resData = {
118
+ data: searchParam,
119
+ chosen_data: form.showList && form.showList === 'dynamic' ? [] : props.showList
120
+ };
121
+ var data = {},
122
+ url = Apis.updatePanelTarget,
123
+ msgType = '保存';
124
+
125
+ if (props.type === 'edit') {
126
+ data = {
127
+ panel_id: form.panel.id,
128
+ element_id: props.elementId,
129
+ web_data: JSON.stringify(resData)
130
+ };
131
+ } else {
132
+ data = {
133
+ name: form.name,
134
+ panel_id: form.panel.id,
135
+ web_data: JSON.stringify(resData),
136
+ mobile_data: JSON.stringify(resData)
137
+ };
138
+
139
+ if (form.panel.id === 0) {
140
+ data.app_id = currentApp === null || currentApp === void 0 ? void 0 : currentApp.appId;
141
+ data.platform = (currentApp === null || currentApp === void 0 ? void 0 : currentApp.platform) || 0;
142
+ data.panel_name = form.panel.name;
143
+ data.open_type = form.panel.open_type;
144
+ }
145
+
146
+ url = Apis.addPanel;
147
+ msgType = '添加';
148
+ }
149
+
150
+ request(url, {
151
+ method: 'post',
152
+ data: data
153
+ }).then(function (res) {
154
+ setLoading(false);
155
+ var result = res;
156
+
157
+ if (result.flag === 101) {
158
+ notification.success({
159
+ message: "".concat(msgType, "\u6210\u529F")
160
+ });
161
+ if (props.onOk) props.onOk(props.type === 'edit' ? data : result.panel_element);
162
+ } else if (result.flag === -101) {
163
+ notification.error({
164
+ message: '添加失败',
165
+ description: data.panel_id === 0 ? '看板已存在' : '看板名称已存在'
166
+ });
167
+ } else {
168
+ notification.error({
169
+ message: "".concat(msgType, "\u5931\u8D25")
170
+ });
171
+ }
172
+ }).catch(function () {
173
+ setLoading(false);
174
+ });
175
+ }
176
+
177
+ return /*#__PURE__*/React.createElement(BizDialog, {
178
+ visible: true,
179
+ title: props.type === 'edit' ? '修改当前看板指标' : '向看板添加指标',
180
+ width: 520,
181
+ maskClosable: false,
182
+ onCancel: props.onCancel,
183
+ onOk: onAdd,
184
+ confirmLoading: loading
185
+ }, /*#__PURE__*/React.createElement(Skeleton, {
186
+ loading: ready
187
+ }, /*#__PURE__*/React.createElement(Form, {
188
+ ref: refForm,
189
+ onFinish: onSubmit,
190
+ initialValues: formData,
191
+ requiredMark: false
192
+ }, /*#__PURE__*/React.createElement(Form.Item, {
193
+ label: "\u770B\u677F",
194
+ name: "panel",
195
+ hidden: props.type === 'edit',
196
+ rules: [{
197
+ validator: function validator(_, value) {
198
+ if (!value || !/\S+/.test(value.name)) return Promise.reject("\u8BF7".concat(addMode ? '输入' : '选择', "\u770B\u677F!"));
199
+ if (!/^[\S\s]{1,20}$/.test(value.name)) return Promise.reject('看板名称最多为20个字符!');
200
+ return Promise.resolve();
201
+ }
202
+ }]
203
+ }, addMode ? /*#__PURE__*/React.createElement(AddPanel, {
204
+ onBack: onBack
205
+ }) : /*#__PURE__*/React.createElement(BizSelect, {
206
+ options: groupList,
207
+ enableSearch: true,
208
+ placeholder: "\u9009\u62E9\u770B\u677F",
209
+ keyField: "id",
210
+ labelField: "name",
211
+ dropdownExtra: /*#__PURE__*/React.createElement(Button, {
212
+ className: "".concat(classPrefix, "-btn-add"),
213
+ type: "ghost",
214
+ onClick: toCreatePanel
215
+ }, /*#__PURE__*/React.createElement(IconFont, {
216
+ className: "".concat(classPrefix, "-icon-add"),
217
+ type: 'tianjia1'
218
+ }), " \u521B\u5EFA\u770B\u677F")
219
+ })), /*#__PURE__*/React.createElement(Form.Item, {
220
+ label: "\u540D\u79F0",
221
+ name: "name",
222
+ hidden: props.type === 'edit',
223
+ rules: [{
224
+ validator: function validator(_, value) {
225
+ if (!value || !/\S+/.test(value)) return Promise.reject('请输入指标名称!');
226
+ if (!/^[\S\s]{1,20}$/.test(value)) return Promise.reject('指标名称最多为20个字符!');
227
+ return Promise.resolve();
228
+ }
229
+ }]
230
+ }, /*#__PURE__*/React.createElement(Input, {
231
+ placeholder: "\u6307\u6807\u540D\u79F0",
232
+ allowClear: {
233
+ clearIcon: /*#__PURE__*/React.createElement(IconFont, {
234
+ type: 'qingchu'
235
+ })
236
+ }
237
+ })), /*#__PURE__*/React.createElement(Form.Item, {
238
+ label: "\u6837\u5F0F",
239
+ name: "chartType",
240
+ rules: [{
241
+ required: true,
242
+ message: '请选择样式'
243
+ }]
244
+ }, /*#__PURE__*/React.createElement(StyleList, {
245
+ options: props.styleOptions
246
+ })), /*#__PURE__*/React.createElement(Form.Item, {
247
+ noStyle: true,
248
+ shouldUpdate: true
249
+ }, function (_ref) {
250
+ var getFieldValue = _ref.getFieldValue;
251
+ var type = getFieldValue('chartType');
252
+ return type === 'line' || type === 'bar' ? /*#__PURE__*/React.createElement(Form.Item, {
253
+ label: "\u663E\u793A",
254
+ name: "showList",
255
+ rules: [{
256
+ required: true,
257
+ message: '请选择显示'
258
+ }]
259
+ }, /*#__PURE__*/React.createElement(RadioGroup, {
260
+ options: props.showOptions
261
+ })) : null;
262
+ }))));
263
+ };
264
+
265
+ BizAddToPanel.defaultProps = {
266
+ showList: []
267
+ };
268
+ export default BizAddToPanel;
@@ -0,0 +1,25 @@
1
+ @import '../../assets/styles/inner.less';
2
+
3
+ .biz-addpanel {
4
+ &-input-row {
5
+ display: flex;
6
+ align-items: center;
7
+ }
8
+
9
+ &-switch {
10
+ margin-left: 8px;
11
+ cursor: pointer;
12
+
13
+ &:hover {
14
+ color: @primary-color;
15
+ }
16
+ }
17
+
18
+ &-icon-add {
19
+ cursor: pointer;
20
+ }
21
+
22
+ &-radio {
23
+ margin-top: 12px;
24
+ }
25
+ }
@@ -0,0 +1,6 @@
1
+ @import '../../assets/styles/inner.less';
2
+ .biz-addtopanel {
3
+ &-btn-add.ant-btn-ghost {
4
+ .__text-btn();
5
+ }
6
+ }
@@ -1,6 +1,6 @@
1
- @import '../../../assets/styles/inner.less';
1
+ @import '../../assets/styles/inner.less';
2
2
 
3
- .biz-tab {
3
+ .biz-style {
4
4
  display: flex;
5
5
  color: @text-color-secondary;
6
6
 
@@ -45,6 +45,7 @@
45
45
  margin-right: 7px;
46
46
  font-size: 18px;
47
47
  }
48
+
48
49
  &-radio-icon {
49
50
  font-size: 18px;
50
51
  }
@@ -53,3 +54,7 @@
53
54
  .__select-panel();
54
55
  }
55
56
  }
57
+
58
+ .ant-radio-wrapper {
59
+ margin-right: 0;
60
+ }
@@ -0,0 +1,57 @@
1
+ declare namespace AddToPanel {
2
+ export interface Option {
3
+ label: string;
4
+ value: string;
5
+ }
6
+ export interface PanelOption {
7
+ id: number;
8
+ name: string;
9
+ [prop: string]: any;
10
+ }
11
+ export interface Props {
12
+ defaultValue?: Value;
13
+ params: Record<string, any>;
14
+ type?: string;
15
+ styleOptions: TabItem[];
16
+ showOptions?: Option[];
17
+ showList?: string[];
18
+ elementId?: number;
19
+ onOk?: (responseData: any) => void;
20
+ onCancel?: () => void;
21
+ }
22
+ interface PanelValue {
23
+ id: number;
24
+ name: string;
25
+ open_type: number;
26
+ }
27
+ export interface Value {
28
+ panel: PanelValue;
29
+ name: string;
30
+ chartType: string;
31
+ showList?: 'dynamic' | 'fix';
32
+ }
33
+ export interface AddPanelParam {
34
+ appId: number;
35
+ platform: number;
36
+ name: string;
37
+ panelId: number;
38
+ panelName?: string;
39
+ openType?: number;
40
+ webData: Record<string, any>;
41
+ mobileData: Record<string, any>;
42
+ }
43
+ export interface StyleProps {
44
+ value?: string;
45
+ options?: Array<TabItem>;
46
+ onChange?: (value: string) => void;
47
+ }
48
+ export interface TabItemChild extends Option {
49
+ icon: string;
50
+ disabled?: boolean;
51
+ }
52
+ export interface TabItem extends TabItemChild {
53
+ children?: Array<TabItemChild>;
54
+ }
55
+ export {};
56
+ }
57
+ export default AddToPanel;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ interface Val {
3
+ groupName: string;
4
+ groupId: number;
5
+ }
6
+ declare const AddGroup: React.FC<{
7
+ value?: Val;
8
+ onChange?: (val: Val) => void;
9
+ onBack: () => void;
10
+ }>;
11
+ export default AddGroup;
@@ -0,0 +1,34 @@
1
+ import { Button, Input } from 'antd';
2
+ import React from 'react';
3
+ import { classPrefix } from '.';
4
+ import IconFont from '../icon/iconFont';
5
+
6
+ var AddGroup = function AddGroup(props) {
7
+ var onBack = props.onBack;
8
+
9
+ function onInput(e) {
10
+ e.persist();
11
+ if (props.onChange) props.onChange({
12
+ groupName: e.target.value,
13
+ groupId: 0
14
+ });
15
+ }
16
+
17
+ return /*#__PURE__*/React.createElement("div", {
18
+ className: "".concat(classPrefix, "-addgroup")
19
+ }, /*#__PURE__*/React.createElement(Input, {
20
+ placeholder: "\u6DFB\u52A0\u5206\u7C7B",
21
+ autoFocus: true,
22
+ onInput: onInput,
23
+ allowClear: true
24
+ }), /*#__PURE__*/React.createElement(Button, {
25
+ onClick: onBack,
26
+ icon: /*#__PURE__*/React.createElement(IconFont, {
27
+ type: "shurukuang_fanhui"
28
+ }),
29
+ className: "btn-back",
30
+ type: "ghost"
31
+ }));
32
+ };
33
+
34
+ export default AddGroup;
@@ -0,0 +1,2 @@
1
+ declare const _default: () => JSX.Element;
2
+ export default _default;
@@ -0,0 +1,34 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+
3
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+
5
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
+
7
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
8
+
9
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
10
+
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+
13
+ import { Button } from 'antd';
14
+ import React, { useState } from 'react';
15
+ import { BizAddToScene } from '@zgfe/business-lib';
16
+ export default (function () {
17
+ var _useState = useState(false),
18
+ _useState2 = _slicedToArray(_useState, 2),
19
+ showDialog = _useState2[0],
20
+ setShowDialog = _useState2[1];
21
+
22
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
23
+ onClick: function onClick() {
24
+ setShowDialog(true);
25
+ }
26
+ }, "\u6DFB\u52A0\u5E38\u7528\u573A\u666F"), showDialog && /*#__PURE__*/React.createElement(BizAddToScene, {
27
+ onOk: function onOk() {
28
+ setShowDialog(false);
29
+ },
30
+ onCancel: function onCancel() {
31
+ setShowDialog(false);
32
+ }
33
+ }));
34
+ });
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import AddToScene from './types';
3
+ import './styles/index.less';
4
+ export declare const classPrefix = "biz-addtoscene";
5
+ declare const BizAddToScene: React.FC<AddToScene.Props>;
6
+ export default BizAddToScene;
@@ -0,0 +1,195 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+
3
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+
5
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
+
7
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
8
+
9
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
10
+
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+
13
+ import { Button, Form, Input, notification } from 'antd';
14
+ import React, { useContext, useEffect, useRef, useState } from 'react';
15
+ import BizDialog from '../dialog';
16
+ import BizSelect from '../select';
17
+ import './styles/index.less';
18
+ import AddGroup from './addGroup';
19
+ import BizGlobalDataContext from '../context';
20
+ import Apis from '../constants/apis';
21
+ import request from '../utils/ajax';
22
+ import IconFont from '../icon/iconFont';
23
+ export var classPrefix = 'biz-addtoscene';
24
+
25
+ var BizAddToScene = function BizAddToScene(props) {
26
+ var params = props.params;
27
+
28
+ var _useState = useState([]),
29
+ _useState2 = _slicedToArray(_useState, 2),
30
+ groupList = _useState2[0],
31
+ setGroupList = _useState2[1];
32
+
33
+ var _useState3 = useState(false),
34
+ _useState4 = _slicedToArray(_useState3, 2),
35
+ addMode = _useState4[0],
36
+ setAddMode = _useState4[1];
37
+
38
+ var _useState5 = useState(false),
39
+ _useState6 = _slicedToArray(_useState5, 2),
40
+ loading = _useState6[0],
41
+ setLoading = _useState6[1];
42
+
43
+ var _useContext = useContext(BizGlobalDataContext),
44
+ currentApp = _useContext.currentApp;
45
+
46
+ var refForm = useRef();
47
+
48
+ function toAddGroup() {
49
+ var _refForm$current;
50
+
51
+ (_refForm$current = refForm.current) === null || _refForm$current === void 0 ? void 0 : _refForm$current.resetFields(['group']);
52
+ setAddMode(true);
53
+ }
54
+
55
+ function onBack() {
56
+ var _refForm$current2;
57
+
58
+ (_refForm$current2 = refForm.current) === null || _refForm$current2 === void 0 ? void 0 : _refForm$current2.resetFields(['group']);
59
+ setAddMode(false);
60
+ }
61
+
62
+ function onSave() {
63
+ var _refForm$current3;
64
+
65
+ (_refForm$current3 = refForm.current) === null || _refForm$current3 === void 0 ? void 0 : _refForm$current3.submit();
66
+ }
67
+
68
+ function onCancel() {
69
+ if (props.onCancel) props.onCancel();
70
+ }
71
+
72
+ function onSubmit(form) {
73
+ setLoading(true);
74
+ var data = {
75
+ appId: currentApp === null || currentApp === void 0 ? void 0 : currentApp.appId,
76
+ platform: 0,
77
+ groupId: form.group.groupId,
78
+ json: JSON.stringify({
79
+ chosen_data: [],
80
+ data: params
81
+ }),
82
+ name: form.name
83
+ };
84
+
85
+ if (form.group.groupId === 0) {
86
+ data.groupName = form.group.groupName;
87
+ }
88
+
89
+ request(Apis.addScene, {
90
+ method: 'post',
91
+ data: data
92
+ }).then(function (res) {
93
+ setLoading(false);
94
+ var result = res;
95
+
96
+ if (result.code === 10001) {
97
+ notification.success({
98
+ message: '添加成功'
99
+ });
100
+ if (props.onOk) props.onOk();
101
+ } else if (result.code === -10010) {
102
+ notification.error({
103
+ message: '添加失败',
104
+ description: data.groupId === 0 ? '场景分类已存在' : '场景名称已存在'
105
+ });
106
+ } else {
107
+ notification.error({
108
+ message: '添加失败'
109
+ });
110
+ }
111
+ }).catch(function () {
112
+ setLoading(false);
113
+ });
114
+ }
115
+
116
+ function queryGroups() {
117
+ request(Apis.querySceneGroup, {
118
+ method: 'post',
119
+ data: {
120
+ appId: currentApp === null || currentApp === void 0 ? void 0 : currentApp.appId,
121
+ platform: 0
122
+ }
123
+ }).then(function (res) {
124
+ if (!res) {
125
+ notification.error({
126
+ message: '获取常用场景分类列表失败'
127
+ });
128
+ return;
129
+ }
130
+
131
+ setGroupList(res.groups);
132
+ });
133
+ }
134
+
135
+ useEffect(function () {
136
+ queryGroups();
137
+ }, []);
138
+ return /*#__PURE__*/React.createElement(BizDialog, {
139
+ title: "\u6DFB\u52A0\u5230\u5E38\u7528\u573A\u666F",
140
+ visible: true,
141
+ maskClosable: false,
142
+ onOk: onSave,
143
+ onCancel: onCancel,
144
+ confirmLoading: loading
145
+ }, /*#__PURE__*/React.createElement(Form, {
146
+ autoComplete: "off",
147
+ ref: refForm,
148
+ onFinish: onSubmit,
149
+ requiredMark: false
150
+ }, /*#__PURE__*/React.createElement(Form.Item, {
151
+ label: "\u573A\u666F\u5206\u7C7B",
152
+ name: "group",
153
+ rules: [{
154
+ validator: function validator(_, value) {
155
+ if (!value || !/\S+/.test(value.groupName)) return Promise.reject("\u8BF7".concat(addMode ? '输入' : '选择', "\u573A\u666F\u5206\u7C7B!"));
156
+ if (!/^[\S\s]{1,20}$/.test(value.groupName)) return Promise.reject('场景分类最多为20个字符!');
157
+ return Promise.resolve();
158
+ }
159
+ }]
160
+ }, addMode ? /*#__PURE__*/React.createElement(AddGroup, {
161
+ onBack: onBack
162
+ }) : /*#__PURE__*/React.createElement(BizSelect, {
163
+ options: groupList,
164
+ enableSearch: true,
165
+ keyField: "groupId",
166
+ labelField: "groupName",
167
+ dropdownExtra: /*#__PURE__*/React.createElement(Button, {
168
+ className: "".concat(classPrefix, "-btn-add"),
169
+ type: "ghost",
170
+ onClick: toAddGroup
171
+ }, /*#__PURE__*/React.createElement(IconFont, {
172
+ className: "".concat(classPrefix, "-icon-add"),
173
+ type: 'tianjia1'
174
+ }), " \u6DFB\u52A0\u5206\u7C7B")
175
+ })), /*#__PURE__*/React.createElement(Form.Item, {
176
+ label: "\u573A\u666F\u540D\u79F0",
177
+ name: "name",
178
+ rules: [{
179
+ validator: function validator(_, value) {
180
+ if (!value || !/\S+/.test(value)) return Promise.reject('请输入场景名称!');
181
+ if (!/^[\S\s]{1,20}$/.test(value)) return Promise.reject('场景名称最多为20个字符!');
182
+ return Promise.resolve();
183
+ }
184
+ }]
185
+ }, /*#__PURE__*/React.createElement(Input, {
186
+ placeholder: "\u573A\u666F\u540D\u79F0",
187
+ allowClear: {
188
+ clearIcon: /*#__PURE__*/React.createElement(IconFont, {
189
+ type: 'qingchu'
190
+ })
191
+ }
192
+ }))));
193
+ };
194
+
195
+ export default BizAddToScene;