ls-pro-common 1.0.62 → 1.0.63

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 (47) hide show
  1. package/CHANGELOG.md +746 -746
  2. package/README.md +22 -22
  3. package/dist/common.css +101 -22
  4. package/dist/common.js +1 -1
  5. package/dist/common.min.css +101 -22
  6. package/dist/common.min.js +1 -1
  7. package/es/components/IconSelector.d.ts +2 -8
  8. package/es/components/IconSelector.js +114 -207
  9. package/es/components/ImageSelector.d.ts +3 -0
  10. package/es/components/ImageSelector.js +128 -24
  11. package/es/components/InputMultiLine.js +1 -1
  12. package/es/components/InputTable.d.ts +5 -0
  13. package/es/components/InputTable.js +26 -4
  14. package/es/components/common.less +176 -119
  15. package/es/hooks/useDtl/index.d.ts +13 -0
  16. package/es/hooks/useDtl/index.js +388 -235
  17. package/es/hooks/usePermission/index.d.ts +1 -0
  18. package/es/hooks/usePermission/index.js +23 -1
  19. package/es/hooks/useSingle/index.d.ts +1 -0
  20. package/es/hooks/useSingle/index.js +3 -1
  21. package/es/http/index.js +26 -7
  22. package/es/service/BaseService.d.ts +8 -0
  23. package/es/service/BaseService.js +69 -26
  24. package/es/typing.d.ts +4 -0
  25. package/es/utils/index.d.ts +49 -0
  26. package/es/utils/index.js +142 -1
  27. package/lib/components/IconSelector.d.ts +2 -8
  28. package/lib/components/IconSelector.js +112 -214
  29. package/lib/components/ImageSelector.d.ts +3 -0
  30. package/lib/components/ImageSelector.js +125 -24
  31. package/lib/components/InputMultiLine.js +1 -1
  32. package/lib/components/InputTable.d.ts +5 -0
  33. package/lib/components/InputTable.js +26 -4
  34. package/lib/components/common.less +176 -119
  35. package/lib/hooks/useDtl/index.d.ts +13 -0
  36. package/lib/hooks/useDtl/index.js +388 -235
  37. package/lib/hooks/usePermission/index.d.ts +1 -0
  38. package/lib/hooks/usePermission/index.js +23 -0
  39. package/lib/hooks/useSingle/index.d.ts +1 -0
  40. package/lib/hooks/useSingle/index.js +3 -1
  41. package/lib/http/index.js +24 -6
  42. package/lib/service/BaseService.d.ts +8 -0
  43. package/lib/service/BaseService.js +69 -26
  44. package/lib/typing.d.ts +4 -0
  45. package/lib/utils/index.d.ts +49 -0
  46. package/lib/utils/index.js +163 -3
  47. package/package.json +2 -2
@@ -17,12 +17,6 @@ require("antd/es/card/style");
17
17
 
18
18
  var _card = _interopRequireDefault(require("antd/es/card"));
19
19
 
20
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
21
-
22
- require("antd/es/upload/style");
23
-
24
- var _upload = _interopRequireDefault(require("antd/es/upload"));
25
-
26
20
  require("antd/es/button/style");
27
21
 
28
22
  var _button = _interopRequireDefault(require("antd/es/button"));
@@ -33,9 +27,7 @@ var _input = _interopRequireDefault(require("antd/es/input"));
33
27
 
34
28
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
35
29
 
36
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
37
-
38
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
30
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
39
31
 
40
32
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
41
33
 
@@ -47,13 +39,8 @@ var _lsProForm = require("ls-pro-form");
47
39
 
48
40
  var _icons = require("@ant-design/icons");
49
41
 
50
- var _http = require("../http");
51
-
52
- var _utils = require("../utils");
53
-
54
- var _excluded = ["type", "uploadable", "readonly", "allowClear", "title", "modalWidth", "name", "maxSize", "modalProps"];
55
- var fileCenter = (0, _utils.getCache)('file-center-api') || '/zuul/petrel-file-center-api/';
56
- var pageSize = 16;
42
+ var _excluded = ["readonly", "allowClear", "title", "modalWidth", "name", "isInput", "modalProps", "defaultValue"];
43
+ var iconList = ['icon-Menu1', 'icon-Menu2', 'icon-Menu3', 'icon-Menu4', 'icon-Menu5', 'icon-Menu6', 'icon-Menu7', 'icon-Menu8', 'icon-Menu9', 'icon-Menu10', 'icon-Menu11', 'icon-Menu12', 'icon-Menu13', 'icon-Menu14', 'icon-Menu15', 'icon-Menu16', 'icon-Menu17', 'icon-Menu18', 'icon-Menu19', 'icon-Menu20', 'icon-Menu21', 'icon-Menu22', 'icon-Menu23', 'icon-Menu24', 'icon-Menu25', 'icon-Menu26', 'icon-Menu27', 'icon-Menu28', 'icon-Menu29', 'icon-Menu30', 'icon-Menu31', 'icon-Menu32', 'icon-Menu33', 'icon-Menu34', 'icon-Menu35', 'icon-Menu36', 'icon-Menu37', 'icon-Menu38', 'icon-Menu39', 'icon-Menu40', 'icon-Menu41', 'icon-Menu42', 'icon-Menu43', 'icon-Menu44', 'icon-Menu45', 'icon-Menu46', 'icon-Menu47'];
57
44
 
58
45
  function IconSelector(prop) {
59
46
  //@ts-ignore?
@@ -67,185 +54,123 @@ function IconSelector(prop) {
67
54
 
68
55
  var _useState3 = (0, _react.useState)(''),
69
56
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
70
- imgUrl = _useState4[0],
71
- setImgUrl = _useState4[1];
57
+ icon = _useState4[0],
58
+ setIcon = _useState4[1];
72
59
 
73
- var _useState5 = (0, _react.useState)(1),
60
+ var _useState5 = (0, _react.useState)(''),
74
61
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
75
- page = _useState6[0],
76
- setPage = _useState6[1];
77
-
78
- var _useState7 = (0, _react.useState)(0),
79
- _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
80
- total = _useState8[0],
81
- setTotal = _useState8[1];
82
-
83
- var _useState9 = (0, _react.useState)([]),
84
- _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
85
- list = _useState10[0],
86
- setList = _useState10[1];
87
-
88
- var _useState11 = (0, _react.useState)(''),
89
- _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
90
- searchKey = _useState12[0],
91
- setSearchKey = _useState12[1];
92
-
93
- var type = prop.type,
94
- _prop$uploadable = prop.uploadable,
95
- uploadable = _prop$uploadable === void 0 ? true : _prop$uploadable,
96
- _prop$readonly = prop.readonly,
62
+ searchKey = _useState6[0],
63
+ setSearchKey = _useState6[1];
64
+
65
+ var inputRef = (0, _react.useRef)();
66
+ var list = (0, _react.useMemo)(function () {
67
+ if (!searchKey) return [].concat(iconList);
68
+ return iconList.filter(function (o) {
69
+ return o.includes(searchKey);
70
+ });
71
+ }, [searchKey]);
72
+ var _prop$readonly = prop.readonly,
97
73
  readonly = _prop$readonly === void 0 ? true : _prop$readonly,
98
- allowClear = prop.allowClear,
74
+ _prop$allowClear = prop.allowClear,
75
+ allowClear = _prop$allowClear === void 0 ? true : _prop$allowClear,
99
76
  _prop$title = prop.title,
100
77
  title = _prop$title === void 0 ? "选择图标" : _prop$title,
101
78
  _prop$modalWidth = prop.modalWidth,
102
- modalWidth = _prop$modalWidth === void 0 ? '600px' : _prop$modalWidth,
79
+ modalWidth = _prop$modalWidth === void 0 ? '630px' : _prop$modalWidth,
103
80
  name = prop.name,
104
- _prop$maxSize = prop.maxSize,
105
- maxSize = _prop$maxSize === void 0 ? 2 : _prop$maxSize,
81
+ _prop$isInput = prop.isInput,
82
+ isInput = _prop$isInput === void 0 ? true : _prop$isInput,
106
83
  modalProps = prop.modalProps,
84
+ defaultValue = prop.defaultValue,
107
85
  rest = (0, _objectWithoutProperties2.default)(prop, _excluded);
108
- var uploadImgApi = (0, _react.useMemo)(function () {
109
- return (0, _utils.toGatewayUrl)(fileCenter + 'file/upload/' + type);
110
- }, [type]);
111
- var showImgApi = (0, _react.useMemo)(function () {
112
- return fileCenter + 'file/show/' + type;
113
- }, [type]);
114
-
115
- var loadData = /*#__PURE__*/function () {
116
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(pageIndex, keys) {
117
- var url, param, result, rows;
118
- return _regenerator.default.wrap(function _callee$(_context) {
119
- while (1) {
120
- switch (_context.prev = _context.next) {
121
- case 0:
122
- url = "/petrel-itg-api/sysMongo/page";
123
- param = {
124
- "search.status": 1,
125
- "search.collectName": type,
126
- "page.pn": pageIndex,
127
- "page.size": pageSize
128
- };
129
-
130
- if (keys) {
131
- param['search.mongoName_like'] = keys;
132
- }
133
-
134
- _context.next = 5;
135
- return (0, _http.httpGet)(url, param);
136
-
137
- case 5:
138
- result = _context.sent;
139
- rows = result.rows || [];
140
- setList(rows);
141
- setTotal(result.total || 0);
142
-
143
- case 9:
144
- case "end":
145
- return _context.stop();
146
- }
147
- }
148
- }, _callee);
149
- }));
150
-
151
- return function loadData(_x, _x2) {
152
- return _ref.apply(this, arguments);
153
- };
154
- }();
155
-
156
- (0, _react.useEffect)(function () {
157
- if (!visible) return;
158
- loadData(page, searchKey);
159
- }, [visible, page, searchKey]);
160
- var totalPage = (0, _react.useMemo)(function () {
161
- if (total === 0) return 1;
162
- return Math.ceil(total / pageSize);
163
- }, [total]);
164
86
  (0, _react.useEffect)(function () {
165
- var val = formRef.current.getFieldsValue();
87
+ var _formRef$current;
88
+
89
+ var val = (_formRef$current = formRef.current) === null || _formRef$current === void 0 ? void 0 : _formRef$current.getFieldsValue();
166
90
 
167
91
  if (val && val[name]) {
168
- setImgUrl((0, _utils.toGatewayUrl)(val[name]));
92
+ setIcon(val[name]);
169
93
  }
170
- }, []); // 验证上传文件大小
94
+ }, []);
95
+ (0, _react.useEffect)(function () {
96
+ if (defaultValue) {
97
+ setIcon(defaultValue);
98
+ }
99
+ }, [defaultValue]);
100
+ (0, _react.useEffect)(function () {
101
+ var _rest$fieldProps;
171
102
 
172
- var beforeUpload = function beforeUpload(file) {
173
- var sizeLimit = file.size / 1024 / 1024 >= maxSize;
103
+ if ((rest === null || rest === void 0 ? void 0 : rest.disabled) || (rest === null || rest === void 0 ? void 0 : (_rest$fieldProps = rest.fieldProps) === null || _rest$fieldProps === void 0 ? void 0 : _rest$fieldProps.disabled)) return;
174
104
 
175
- if (sizeLimit) {
176
- (0, _utils.showError)("\u4E0A\u4F20\u7684\u6587\u4EF6\u4E0D\u80FD\u5927\u4E8E".concat(maxSize, "M"));
177
- }
105
+ try {
106
+ if (!inputRef.current) return;
107
+ var el = inputRef.current.clearableInput.containerRef.current.querySelector('.ant-input-clear-icon');
108
+ if (!el) return;
178
109
 
179
- return !sizeLimit;
180
- }; // 上传图片并调用 sysMongo 接口保存
181
-
182
-
183
- var onUpload = function onUpload(info) {
184
- if (info.file.status === 'done') {
185
- var _result$flag;
186
-
187
- var result = info.file.response;
188
-
189
- if ((result === null || result === void 0 ? void 0 : (_result$flag = result.flag) === null || _result$flag === void 0 ? void 0 : _result$flag.retCode) === '0') {
190
- var f = result.data[0];
191
- var data = {
192
- collectName: type,
193
- mongoUrl: showImgApi + "/" + f.fileId,
194
- mongoName: f.fileName || "",
195
- remarks: "",
196
- status: 1
197
- };
198
- var url = "/petrel/petrel-itg-api/sysMongo";
199
- (0, _http.httpPost)(url, data, true, false).then(function (res) {
200
- if (res.flag.retCode === "0") {
201
- (0, _utils.showSuccess)("上传成功");
202
-
203
- if (page !== totalPage) {
204
- setPage(totalPage);
205
- } else {
206
- loadData(totalPage, searchKey);
207
- }
208
- } else {
209
- (0, _utils.showSuccess)(result.flag.retMsg);
210
- }
211
- });
110
+ if (icon) {
111
+ el.classList.remove('ant-input-clear-icon-hidden');
212
112
  } else {
213
- var _result$flag2;
214
-
215
- (0, _utils.showError)((result === null || result === void 0 ? void 0 : (_result$flag2 = result.flag) === null || _result$flag2 === void 0 ? void 0 : _result$flag2.retMsg) || '上传图片失败,请联系管理员');
113
+ el.classList.add('ant-input-clear-icon-hidden');
216
114
  }
217
- } else if (info.file.status === 'error') {
218
- (0, _utils.showError)('上传数据失败,请联系管理员');
115
+ } catch (e) {}
116
+ }, [icon]);
117
+
118
+ var showSelector = function showSelector(flag) {
119
+ var _rest$fieldProps2;
120
+
121
+ if ((rest === null || rest === void 0 ? void 0 : rest.disabled) || (rest === null || rest === void 0 ? void 0 : (_rest$fieldProps2 = rest.fieldProps) === null || _rest$fieldProps2 === void 0 ? void 0 : _rest$fieldProps2.disabled)) return;
122
+ setVisible(flag);
123
+ };
124
+
125
+ var clearValue = function clearValue(e) {
126
+ if (!e || !e.target.value) {
127
+ var _formRef$current2;
128
+
129
+ setIcon('');
130
+ var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current2 = formRef.current) === null || _formRef$current2 === void 0 ? void 0 : _formRef$current2.getFieldsValue();
131
+ formValue[name] = '';
132
+ formRef.current.setFieldsValue((0, _objectSpread2.default)({}, formValue));
219
133
  }
220
134
  };
221
135
 
222
136
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_lsProForm.ProFormText, (0, _extends2.default)({
223
137
  name: name
224
- }, rest), /*#__PURE__*/_react.default.createElement(_input.default, (0, _extends2.default)({
225
- addonAfter: imgUrl ? /*#__PURE__*/_react.default.createElement("img", {
138
+ }, rest), isInput ? /*#__PURE__*/_react.default.createElement(_input.default, (0, _extends2.default)({
139
+ addonAfter: icon ? /*#__PURE__*/_react.default.createElement("span", {
226
140
  style: {
227
- maxWidth: 22,
228
- maxHeight: 22
141
+ fontSize: '14px'
229
142
  },
230
- src: imgUrl,
143
+ className: icon,
144
+ title: title,
231
145
  onClick: function onClick() {
232
- return setVisible(true);
146
+ return showSelector(true);
233
147
  }
234
148
  }) : /*#__PURE__*/_react.default.createElement(_icons.PlusOutlined, {
149
+ title: title,
235
150
  onClick: function onClick() {
236
- var _rest$fieldProps;
237
-
238
- if ((rest === null || rest === void 0 ? void 0 : rest.disabled) || (rest === null || rest === void 0 ? void 0 : (_rest$fieldProps = rest.fieldProps) === null || _rest$fieldProps === void 0 ? void 0 : _rest$fieldProps.disabled)) {
239
- return;
240
- }
241
-
242
- setVisible(true);
151
+ return showSelector(true);
243
152
  }
244
153
  })
245
154
  }, rest.fieldProps, {
246
155
  readOnly: readonly,
247
- allowClear: allowClear
248
- }))), /*#__PURE__*/_react.default.createElement(_modal.default, (0, _extends2.default)({
156
+ allowClear: allowClear,
157
+ ref: inputRef,
158
+ onChange: clearValue
159
+ })) : icon ? /*#__PURE__*/_react.default.createElement("span", {
160
+ style: {
161
+ fontSize: '14px'
162
+ },
163
+ className: icon,
164
+ title: title,
165
+ onClick: function onClick() {
166
+ return showSelector(true);
167
+ }
168
+ }) : /*#__PURE__*/_react.default.createElement("a", {
169
+ title: title,
170
+ onClick: function onClick() {
171
+ return showSelector(true);
172
+ }
173
+ }, "\u8BF7\u9009\u62E9")), /*#__PURE__*/_react.default.createElement(_modal.default, (0, _extends2.default)({
249
174
  title: /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("span", null, title), /*#__PURE__*/_react.default.createElement("span", {
250
175
  style: {
251
176
  display: 'inline-block',
@@ -254,9 +179,8 @@ function IconSelector(prop) {
254
179
  }
255
180
  }, /*#__PURE__*/_react.default.createElement(_input.default, {
256
181
  suffix: /*#__PURE__*/_react.default.createElement(_icons.SearchOutlined, null),
257
- placeholder: "\u8F93\u5165\u56FE\u7247\u540D\u67E5\u8BE2",
182
+ placeholder: "\u56FE\u6807\u540D\u79F0",
258
183
  onPressEnter: function onPressEnter(e) {
259
- setPage(1);
260
184
  setSearchKey(e.target.value || '');
261
185
  }
262
186
  }))),
@@ -266,49 +190,22 @@ function IconSelector(prop) {
266
190
  onCancel: function onCancel() {
267
191
  return setVisible(false);
268
192
  },
269
- bodyStyle: {
270
- padding: 8
193
+ className: "icon-selector",
194
+ centered: true,
195
+ getContainer: function getContainer() {
196
+ return document.body;
271
197
  },
272
- footer: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
273
- style: {
274
- display: 'inline-block',
275
- marginRight: 8
276
- }
277
- }, /*#__PURE__*/_react.default.createElement(_upload.default, {
278
- beforeUpload: beforeUpload,
279
- onChange: onUpload,
280
- action: uploadImgApi,
281
- showUploadList: false,
282
- name: "file",
283
- maxCount: 1,
284
- headers: {
285
- token: localStorage.getItem('token') || ''
286
- },
287
- accept: ".png,.gif,.jpg,.jpeg,.bmp"
288
- }, /*#__PURE__*/_react.default.createElement(_button.default, {
289
- icon: /*#__PURE__*/_react.default.createElement(_icons.UploadOutlined, null)
290
- }, "\u4E0A\u4F20\u65B0\u56FE"))), /*#__PURE__*/_react.default.createElement(_button.default, {
291
- disabled: page === 1,
292
- onClick: function onClick() {
293
- setPage(page - 1);
294
- }
295
- }, "\u4E0A\u4E00\u9875"), /*#__PURE__*/_react.default.createElement("span", {
296
- style: {
297
- padding: 8
298
- }
299
- }, page, "/", totalPage), /*#__PURE__*/_react.default.createElement(_button.default, {
300
- disabled: page === totalPage,
301
- onClick: function onClick() {
302
- setPage(page + 1);
303
- }
304
- }, "\u4E0B\u4E00\u9875"), /*#__PURE__*/_react.default.createElement(_button.default, {
198
+ footer: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_button.default, {
305
199
  onClick: function onClick() {
306
- return loadData(page, searchKey);
200
+ var formVal = formRef.current.getFieldsValue();
201
+ var val = (0, _objectSpread2.default)({}, formVal); //@ts-ignore
202
+
203
+ val[name] = '';
204
+ formRef.current.setFieldsValue(val);
205
+ setIcon('');
206
+ setVisible(false);
307
207
  }
308
- }, "\u5237\u65B0")),
309
- getContainer: function getContainer() {
310
- return document.body;
311
- }
208
+ }, "\u6E05\u7A7A"))
312
209
  }, modalProps), /*#__PURE__*/_react.default.createElement("div", {
313
210
  style: {
314
211
  minHeight: '120px'
@@ -329,37 +226,38 @@ function IconSelector(prop) {
329
226
  },
330
227
  onDoubleClick: function onDoubleClick() {
331
228
  if (!name) {
332
- (0, _utils.showWarn)('选择图标组件未设置name属性');
229
+ console.log('选择图标组件未设置name属性');
333
230
  return;
334
231
  }
335
232
 
336
233
  var formVal = formRef.current.getFieldsValue();
337
234
  var val = (0, _objectSpread2.default)({}, formVal); //@ts-ignore
338
235
 
339
- val[name] = o.mongoUrl;
236
+ val[name] = o;
340
237
  formRef.current.setFieldsValue(val);
341
- setImgUrl((0, _utils.toGatewayUrl)(o.mongoUrl));
238
+ setIcon(o);
342
239
  setVisible(false);
343
240
  },
344
- key: o.id
241
+ key: o
345
242
  }, /*#__PURE__*/_react.default.createElement("div", {
346
243
  style: {
347
244
  height: 80
348
245
  }
349
- }, /*#__PURE__*/_react.default.createElement("img", {
350
- title: o.mongoName,
246
+ }, /*#__PURE__*/_react.default.createElement("div", {
247
+ title: o,
351
248
  style: {
352
- maxWidth: '80px',
353
- maxHeight: '80px'
249
+ paddingTop: '20px',
250
+ height: '80px',
251
+ fontSize: '20px'
354
252
  },
355
- src: (0, _utils.toGatewayUrl)(o.mongoUrl)
253
+ className: o
356
254
  })), /*#__PURE__*/_react.default.createElement("div", {
357
255
  style: {
358
256
  whiteSpace: 'nowrap',
359
257
  textOverflow: 'ellipsis',
360
258
  overflow: 'hidden'
361
259
  }
362
- }, o.mongoName));
260
+ }, o));
363
261
  }))));
364
262
  }
365
263
 
@@ -17,6 +17,9 @@ export declare type ImageSelectorProps = ProFormItemProps<InputProps> & {
17
17
  */
18
18
  maxSize?: number;
19
19
  modalProps?: ModalProps;
20
+ isInput?: boolean;
21
+ desc?: string;
22
+ imageClass?: string;
20
23
  };
21
24
  declare function ImageSelector(prop: ImageSelectorProps): JSX.Element;
22
25
  export default ImageSelector;