@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.
- package/es/addToPanel/components/addPanel.d.ts +7 -0
- package/es/addToPanel/components/addPanel.js +101 -0
- package/es/addToPanel/components/radioGroup.d.ts +7 -0
- package/es/addToPanel/components/radioGroup.js +29 -0
- package/es/addToPanel/components/styleList.d.ts +5 -0
- package/es/{dialog/components/tab.js → addToPanel/components/styleList.js} +12 -7
- package/es/{dialog/demo/index2.d.ts → addToPanel/demo/edit.d.ts} +0 -0
- package/es/{dialog/components/list.js → addToPanel/demo/edit.js} +64 -44
- package/es/{dialog/demo/index3.d.ts → addToPanel/demo/index.d.ts} +0 -0
- package/es/addToPanel/demo/index.js +78 -0
- package/es/addToPanel/index.d.ts +6 -0
- package/es/addToPanel/index.js +268 -0
- package/es/addToPanel/styles/addPanel.less +25 -0
- package/es/addToPanel/styles/index.less +6 -0
- package/es/{dialog/components/styles/tab.less → addToPanel/styles/style.less} +7 -2
- package/es/addToPanel/types.d.ts +57 -0
- package/es/addToPanel/types.js +1 -0
- package/es/addToScene/addGroup.d.ts +11 -0
- package/es/addToScene/addGroup.js +34 -0
- package/es/addToScene/demo/index.d.ts +2 -0
- package/es/addToScene/demo/index.js +34 -0
- package/es/addToScene/index.d.ts +6 -0
- package/es/addToScene/index.js +195 -0
- package/es/addToScene/styles/index.less +23 -0
- package/es/addToScene/types.d.ts +29 -0
- package/es/addToScene/types.js +1 -0
- package/es/analysisLayout/demo/index.d.ts +1 -0
- package/es/analysisLayout/demo/index.js +1 -0
- package/es/analysisLayout/index.js +1 -1
- package/es/analysisLayout/index.less +3 -2
- package/es/assets/iconfont/demo_index.html +49 -3
- package/es/assets/iconfont/iconfont.css +11 -3
- package/es/assets/iconfont/iconfont.js +1 -1
- package/es/assets/iconfont/iconfont.json +14 -0
- package/es/assets/iconfont/iconfont.ttf +0 -0
- package/es/assets/iconfont/iconfont.woff +0 -0
- package/es/assets/iconfont/iconfont.woff2 +0 -0
- package/es/assets/styles/chunks.less +17 -1
- package/es/assets/styles/resetAntd.less +61 -20
- package/es/assets/styles/variable.less +8 -1
- package/es/assets/theme.d.ts +3 -0
- package/es/assets/theme.js +4 -1
- package/es/attrConditions/components/stringList.js +4 -3
- package/es/attributeSelector/styles/index.less +2 -0
- package/es/config.d.ts +15 -0
- package/es/config.js +8 -0
- package/es/constants/apis.d.ts +9 -0
- package/es/constants/apis.js +9 -0
- package/es/datePicker/styles/index.less +4 -0
- package/es/dialog/demo/index.d.ts +0 -29
- package/es/dialog/demo/index.js +6 -130
- package/es/dialog/index.d.ts +1 -2
- package/es/dialog/index.js +15 -183
- package/es/dialog/types.d.ts +2 -74
- package/es/eventSelector/listPanel.js +8 -0
- package/es/eventSelector/styles/index.less +11 -5
- package/es/index.d.ts +4 -1
- package/es/index.js +4 -1
- package/es/select/index.js +1 -0
- package/es/select/overlay.js +3 -1
- package/es/select/styles/handle.less +2 -0
- package/es/select/styles/index.less +0 -3
- package/es/select/types.d.ts +1 -0
- package/es/targetSelector/styles/index.less +3 -1
- package/es/utils/ajax.d.ts +33 -7
- package/es/utils/ajax.js +212 -111
- package/package.json +4 -3
- package/es/dialog/components/itemNode.d.ts +0 -10
- package/es/dialog/components/itemNode.js +0 -109
- package/es/dialog/components/list.d.ts +0 -5
- package/es/dialog/components/selectToInput.d.ts +0 -6
- package/es/dialog/components/selectToInput.js +0 -175
- package/es/dialog/components/styles/handle.less +0 -39
- package/es/dialog/components/styles/list.less +0 -60
- package/es/dialog/components/tab.d.ts +0 -5
- package/es/dialog/data/data.d.ts +0 -20
- package/es/dialog/data/data.js +0 -73
- package/es/dialog/demo/index2.js +0 -109
- 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
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
@import '
|
|
1
|
+
@import '../../assets/styles/inner.less';
|
|
2
2
|
|
|
3
|
-
.biz-
|
|
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,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,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,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;
|