ls-pro-common 1.0.53 → 1.0.56

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.
@@ -0,0 +1,369 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ require("antd/es/modal/style");
13
+
14
+ var _modal = _interopRequireDefault(require("antd/es/modal"));
15
+
16
+ require("antd/es/empty/style");
17
+
18
+ var _empty = _interopRequireDefault(require("antd/es/empty"));
19
+
20
+ require("antd/es/card/style");
21
+
22
+ var _card = _interopRequireDefault(require("antd/es/card"));
23
+
24
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
25
+
26
+ require("antd/es/upload/style");
27
+
28
+ var _upload = _interopRequireDefault(require("antd/es/upload"));
29
+
30
+ require("antd/es/button/style");
31
+
32
+ var _button = _interopRequireDefault(require("antd/es/button"));
33
+
34
+ require("antd/es/input/style");
35
+
36
+ var _input = _interopRequireDefault(require("antd/es/input"));
37
+
38
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
39
+
40
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
41
+
42
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
43
+
44
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
45
+
46
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
47
+
48
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
49
+
50
+ var _react = _interopRequireWildcard(require("react"));
51
+
52
+ var _lsProForm = require("ls-pro-form");
53
+
54
+ var _icons = require("@ant-design/icons");
55
+
56
+ var _http = require("../http");
57
+
58
+ var _utils = require("../utils");
59
+
60
+ var _excluded = ["type", "uploadable", "readonly", "allowClear", "title", "modalWidth", "name", "maxSize", "modalProps", "code"];
61
+ var fileCenter = (0, _utils.getCache)('ossPath') || '/petrel/petrel-file-center-api/lesoon/oss/file/';
62
+
63
+ function ImageSelector(prop) {
64
+ //@ts-ignore?
65
+ var _useContext = (0, _react.useContext)(_lsProForm.ProFormContext),
66
+ formRef = _useContext.formRef;
67
+
68
+ var _useState = (0, _react.useState)(false),
69
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
70
+ visible = _useState2[0],
71
+ setVisible = _useState2[1];
72
+
73
+ var _useState3 = (0, _react.useState)(''),
74
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
75
+ imgUrl = _useState4[0],
76
+ setImgUrl = _useState4[1];
77
+
78
+ var _useState5 = (0, _react.useState)([]),
79
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
80
+ list = _useState6[0],
81
+ setList = _useState6[1];
82
+
83
+ var _useState7 = (0, _react.useState)(''),
84
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
85
+ searchKey = _useState8[0],
86
+ setSearchKey = _useState8[1];
87
+
88
+ var _useState9 = (0, _react.useState)(''),
89
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
90
+ nextMarker = _useState10[0],
91
+ setNextMarker = _useState10[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,
97
+ readonly = _prop$readonly === void 0 ? true : _prop$readonly,
98
+ allowClear = prop.allowClear,
99
+ _prop$title = prop.title,
100
+ title = _prop$title === void 0 ? "选择图标" : _prop$title,
101
+ _prop$modalWidth = prop.modalWidth,
102
+ modalWidth = _prop$modalWidth === void 0 ? '600px' : _prop$modalWidth,
103
+ name = prop.name,
104
+ _prop$maxSize = prop.maxSize,
105
+ maxSize = _prop$maxSize === void 0 ? 5 : _prop$maxSize,
106
+ modalProps = prop.modalProps,
107
+ _prop$code = prop.code,
108
+ code = _prop$code === void 0 ? 'RETAIL' : _prop$code,
109
+ rest = (0, _objectWithoutProperties2.default)(prop, _excluded); // 上传地址
110
+
111
+ var uploadImgApi = (0, _react.useMemo)(function () {
112
+ return fileCenter + 'upload/' + code + '?catalogName=' + type;
113
+ }, [code, type]); // 分页加载列表地址
114
+
115
+ var pageImgApi = (0, _react.useMemo)(function () {
116
+ return fileCenter + 'page/' + code;
117
+ }, [code]); // 展示地址
118
+
119
+ var showImgApi = (0, _react.useMemo)(function () {
120
+ return fileCenter + 'show/' + code;
121
+ }, [code]);
122
+
123
+ var loadData = /*#__PURE__*/function () {
124
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(keys) {
125
+ var _result$data, _result$data2;
126
+
127
+ var url, param, result, rows;
128
+ return _regenerator.default.wrap(function _callee$(_context) {
129
+ while (1) {
130
+ switch (_context.prev = _context.next) {
131
+ case 0:
132
+ url = pageImgApi;
133
+ param = {
134
+ prefix: type,
135
+ maxKeys: 16
136
+ };
137
+
138
+ if (keys) {
139
+ param.prefix = param.prefix + '/' + keys;
140
+ }
141
+
142
+ if (nextMarker) {
143
+ param.nextMarker = nextMarker;
144
+ }
145
+
146
+ _context.next = 6;
147
+ return (0, _http.httpGet)(url, param, false);
148
+
149
+ case 6:
150
+ result = _context.sent;
151
+ rows = (((_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.objectList) || []).filter(function (o) {
152
+ return o.dir == false && (!nextMarker || !list.find(function (e) {
153
+ return e.path === o.path;
154
+ }));
155
+ });
156
+ rows.forEach(function (row) {
157
+ row.url = showImgApi + '?fileName=' + row.path;
158
+ });
159
+
160
+ if (!nextMarker) {
161
+ setList(rows);
162
+ } else {
163
+ setList([].concat((0, _toConsumableArray2.default)(list), (0, _toConsumableArray2.default)(rows)));
164
+ }
165
+
166
+ setNextMarker((_result$data2 = result.data) === null || _result$data2 === void 0 ? void 0 : _result$data2.nextMarker);
167
+
168
+ case 11:
169
+ case "end":
170
+ return _context.stop();
171
+ }
172
+ }
173
+ }, _callee);
174
+ }));
175
+
176
+ return function loadData(_x) {
177
+ return _ref.apply(this, arguments);
178
+ };
179
+ }();
180
+
181
+ (0, _react.useEffect)(function () {
182
+ if (!visible) {
183
+ setNextMarker('');
184
+ setSearchKey('');
185
+ return;
186
+ }
187
+
188
+ loadData(searchKey);
189
+ }, [visible, searchKey]);
190
+ (0, _react.useEffect)(function () {
191
+ var val = formRef.current.getFieldsValue();
192
+
193
+ if (val && val[name]) {
194
+ setImgUrl(val[name]);
195
+ }
196
+ }, []); // 验证上传文件大小
197
+
198
+ var beforeUpload = function beforeUpload(file) {
199
+ var sizeLimit = file.size / 1024 / 1024 >= maxSize;
200
+
201
+ if (sizeLimit) {
202
+ (0, _utils.showError)("\u4E0A\u4F20\u7684\u6587\u4EF6\u4E0D\u80FD\u5927\u4E8E".concat(maxSize, "M"));
203
+ }
204
+
205
+ return !sizeLimit;
206
+ }; // 上传图片
207
+
208
+
209
+ var onUpload = function onUpload(info) {
210
+ if (info.file.status === 'done') {
211
+ var _result$flag;
212
+
213
+ var result = info.file.response;
214
+
215
+ if ((result === null || result === void 0 ? void 0 : (_result$flag = result.flag) === null || _result$flag === void 0 ? void 0 : _result$flag.retCode) === '0') {
216
+ (0, _utils.showSuccess)(result.flag.retMsg);
217
+ } else {
218
+ var _result$flag2;
219
+
220
+ (0, _utils.showError)((result === null || result === void 0 ? void 0 : (_result$flag2 = result.flag) === null || _result$flag2 === void 0 ? void 0 : _result$flag2.retMsg) || '上传图片失败,请联系管理员');
221
+ }
222
+ } else if (info.file.status === 'error') {
223
+ (0, _utils.showError)('上传数据失败,请联系管理员');
224
+ }
225
+
226
+ if (!info.fileList.filter(function (o) {
227
+ return o.status === 'uploading';
228
+ }).length) {
229
+ loadData(searchKey);
230
+ }
231
+ };
232
+
233
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_lsProForm.ProFormText, (0, _extends2.default)({
234
+ name: name
235
+ }, rest), /*#__PURE__*/_react.default.createElement(_input.default, (0, _extends2.default)({
236
+ addonAfter: imgUrl ? /*#__PURE__*/_react.default.createElement("img", {
237
+ style: {
238
+ maxWidth: 22,
239
+ maxHeight: 22
240
+ },
241
+ src: imgUrl,
242
+ onClick: function onClick() {
243
+ return setVisible(true);
244
+ }
245
+ }) : /*#__PURE__*/_react.default.createElement(_icons.PlusOutlined, {
246
+ onClick: function onClick() {
247
+ var _rest$fieldProps;
248
+
249
+ 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)) {
250
+ return;
251
+ }
252
+
253
+ setVisible(true);
254
+ }
255
+ })
256
+ }, rest.fieldProps, {
257
+ readOnly: readonly,
258
+ allowClear: allowClear
259
+ }))), /*#__PURE__*/_react.default.createElement(_modal.default, (0, _extends2.default)({
260
+ title: /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("span", null, title), /*#__PURE__*/_react.default.createElement("span", {
261
+ style: {
262
+ display: 'inline-block',
263
+ width: 230,
264
+ marginLeft: 30
265
+ }
266
+ }, /*#__PURE__*/_react.default.createElement(_input.default, {
267
+ suffix: /*#__PURE__*/_react.default.createElement(_icons.SearchOutlined, null),
268
+ placeholder: "\u8F93\u5165\u56FE\u7247\u540D\u67E5\u8BE2",
269
+ onPressEnter: function onPressEnter(e) {
270
+ setNextMarker('');
271
+ setTimeout(function () {
272
+ setSearchKey(e.target.value || '');
273
+ }, 1);
274
+ }
275
+ }))),
276
+ visible: visible,
277
+ width: modalWidth,
278
+ destroyOnClose: true,
279
+ onCancel: function onCancel() {
280
+ return setVisible(false);
281
+ },
282
+ bodyStyle: {
283
+ padding: 8
284
+ },
285
+ footer: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
286
+ style: {
287
+ display: 'inline-block',
288
+ marginRight: 8
289
+ }
290
+ }, /*#__PURE__*/_react.default.createElement(_upload.default, {
291
+ beforeUpload: beforeUpload,
292
+ onChange: onUpload,
293
+ action: uploadImgApi,
294
+ showUploadList: false,
295
+ name: "file",
296
+ maxCount: 20,
297
+ multiple: true,
298
+ headers: {
299
+ token: localStorage.getItem('token') || ''
300
+ },
301
+ accept: ".png,.gif,.jpg,.jpeg,.bmp"
302
+ }, /*#__PURE__*/_react.default.createElement(_button.default, {
303
+ icon: /*#__PURE__*/_react.default.createElement(_icons.UploadOutlined, null)
304
+ }, "\u4E0A\u4F20\u65B0\u56FE"))), /*#__PURE__*/_react.default.createElement(_button.default, {
305
+ onClick: function onClick() {
306
+ return loadData(searchKey);
307
+ }
308
+ }, nextMarker ? '加载更多' : '刷新')),
309
+ getContainer: function getContainer() {
310
+ return document.body;
311
+ }
312
+ }, modalProps), /*#__PURE__*/_react.default.createElement("div", {
313
+ style: {
314
+ minHeight: '120px'
315
+ }
316
+ }, list.map(function (o) {
317
+ return /*#__PURE__*/_react.default.createElement(_card.default, {
318
+ hoverable: true,
319
+ style: {
320
+ width: '125px',
321
+ height: '130px',
322
+ display: 'inline-block',
323
+ margin: '10px',
324
+ verticalAlign: 'middle'
325
+ },
326
+ bodyStyle: {
327
+ padding: '15px 8px',
328
+ textAlign: 'center'
329
+ },
330
+ onDoubleClick: function onDoubleClick() {
331
+ if (!name) {
332
+ (0, _utils.showWarn)('选择图标组件未设置name属性');
333
+ return;
334
+ }
335
+
336
+ var formVal = formRef.current.getFieldsValue();
337
+ var val = (0, _objectSpread2.default)({}, formVal); //@ts-ignore
338
+
339
+ val[name] = o.url;
340
+ formRef.current.setFieldsValue(val);
341
+ setImgUrl(o.url);
342
+ setVisible(false);
343
+ },
344
+ key: o.path
345
+ }, /*#__PURE__*/_react.default.createElement("div", {
346
+ style: {
347
+ height: 80
348
+ }
349
+ }, /*#__PURE__*/_react.default.createElement("img", {
350
+ title: o.name,
351
+ style: {
352
+ maxWidth: '80px',
353
+ maxHeight: '80px'
354
+ },
355
+ src: showImgApi + '?fileName=' + o.path
356
+ })), /*#__PURE__*/_react.default.createElement("div", {
357
+ style: {
358
+ whiteSpace: 'nowrap',
359
+ textOverflow: 'ellipsis',
360
+ overflow: 'hidden'
361
+ }
362
+ }, o.name));
363
+ }), list.length === 0 && /*#__PURE__*/_react.default.createElement(_empty.default, {
364
+ image: _empty.default.PRESENTED_IMAGE_SIMPLE
365
+ }))));
366
+ }
367
+
368
+ var _default = ImageSelector;
369
+ exports.default = _default;
@@ -72,7 +72,7 @@ var InputMultiLine = /*#__PURE__*/_react.default.forwardRef(function (prop, ref)
72
72
  allowClear = _prop$allowClear === void 0 ? true : _prop$allowClear,
73
73
  _prop$getPopupContain = prop.getPopupContainer,
74
74
  getPopupContainer = _prop$getPopupContain === void 0 ? function (triggerNode) {
75
- return triggerNode.parentNode;
75
+ return document.body;
76
76
  } : _prop$getPopupContain,
77
77
  rest = (0, _objectWithoutProperties2.default)(prop, _excluded); // 设置初始值
78
78
 
@@ -108,7 +108,7 @@ var InputTable = /*#__PURE__*/_react.default.forwardRef(function (prop, ref) {
108
108
  triggerCheck = _prop$triggerCheck === void 0 ? 'entry' : _prop$triggerCheck,
109
109
  _prop$getPopupContain = prop.getPopupContainer,
110
110
  getPopupContainer = _prop$getPopupContain === void 0 ? function (triggerNode) {
111
- return triggerNode.parentNode;
111
+ return document.body;
112
112
  } : _prop$getPopupContain,
113
113
  rest = (0, _objectWithoutProperties2.default)(prop, _excluded); //显示输入框绑定的name,如果不设置textName,设置为$name__text
114
114
 
package/lib/index.d.ts CHANGED
@@ -3,6 +3,7 @@ import InputTable from './components/InputTable';
3
3
  import Page404 from './components/404';
4
4
  import Loading from './components/Loading';
5
5
  import IconSelector from './components/IconSelector';
6
+ import ImageSelector from './components/ImageSelector';
6
7
  import InputMultiLine from './components/InputMultiLine';
7
8
  import AreaCascader from './components/AreaCascader';
8
9
  import BaseService from './service/BaseService';
@@ -16,4 +17,4 @@ import usePermission from './hooks/usePermission';
16
17
  import type { ApiResponse, TableToolbar, BaseApiType, MethodType } from './typing';
17
18
  import type { DtlLyaoutProps } from './components/DtlLayout';
18
19
  export type { ApiResponse, TableToolbar, BaseApiType, MethodType, DtlLyaoutProps };
19
- export { DtlLayout, InputTable, Page404, Loading, IconSelector, InputMultiLine, AreaCascader, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl, usePermission };
20
+ export { DtlLayout, InputTable, Page404, Loading, IconSelector, ImageSelector, InputMultiLine, AreaCascader, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl, usePermission };
package/lib/index.js CHANGED
@@ -31,6 +31,12 @@ Object.defineProperty(exports, "IconSelector", {
31
31
  return _IconSelector.default;
32
32
  }
33
33
  });
34
+ Object.defineProperty(exports, "ImageSelector", {
35
+ enumerable: true,
36
+ get: function get() {
37
+ return _ImageSelector.default;
38
+ }
39
+ });
34
40
  Object.defineProperty(exports, "InputMultiLine", {
35
41
  enumerable: true,
36
42
  get: function get() {
@@ -127,6 +133,8 @@ var _Loading = _interopRequireDefault(require("./components/Loading"));
127
133
 
128
134
  var _IconSelector = _interopRequireDefault(require("./components/IconSelector"));
129
135
 
136
+ var _ImageSelector = _interopRequireDefault(require("./components/ImageSelector"));
137
+
130
138
  var _InputMultiLine = _interopRequireDefault(require("./components/InputMultiLine"));
131
139
 
132
140
  var _AreaCascader = _interopRequireDefault(require("./components/AreaCascader"));
@@ -1,4 +1,4 @@
1
- export { getUrlQuery, setUrlQuery, toGatewayUrl, dateFormat, getResourceProps } from 'ls-pro-table/lib/utils';
1
+ export { getUrlQuery, setUrlQuery, toGatewayUrl, dateFormat, getResourceProps } from 'ls-pro-table';
2
2
  /**
3
3
  * 设置文档title
4
4
  * @param {*} title
@@ -9,34 +9,34 @@ exports.dateAdd = exports.appPath = void 0;
9
9
  Object.defineProperty(exports, "dateFormat", {
10
10
  enumerable: true,
11
11
  get: function get() {
12
- return _utils.dateFormat;
12
+ return _lsProTable.dateFormat;
13
13
  }
14
14
  });
15
15
  exports.getLoginName = exports.getCookie = exports.getCompanyId = exports.getCache = exports.formatMoney = exports.formatDate = void 0;
16
16
  Object.defineProperty(exports, "getResourceProps", {
17
17
  enumerable: true,
18
18
  get: function get() {
19
- return _utils.getResourceProps;
19
+ return _lsProTable.getResourceProps;
20
20
  }
21
21
  });
22
22
  Object.defineProperty(exports, "getUrlQuery", {
23
23
  enumerable: true,
24
24
  get: function get() {
25
- return _utils.getUrlQuery;
25
+ return _lsProTable.getUrlQuery;
26
26
  }
27
27
  });
28
28
  exports.setTitle = exports.setCookie = exports.setCache = exports.reLogin = exports.rangeToSearch = exports.nowAdd = exports.now = exports.isLogin = exports.isDev = exports.handleSizeCols = exports.getUserName = exports.getUserInfo = void 0;
29
29
  Object.defineProperty(exports, "setUrlQuery", {
30
30
  enumerable: true,
31
31
  get: function get() {
32
- return _utils.setUrlQuery;
32
+ return _lsProTable.setUrlQuery;
33
33
  }
34
34
  });
35
35
  exports.statusList = exports.showWarn = exports.showSuccess = exports.showError = exports.showConfirm = void 0;
36
36
  Object.defineProperty(exports, "toGatewayUrl", {
37
37
  enumerable: true,
38
38
  get: function get() {
39
- return _utils.toGatewayUrl;
39
+ return _lsProTable.toGatewayUrl;
40
40
  }
41
41
  });
42
42
  exports.yesnoList = exports.treeFind = exports.treeEach = exports.todayAdd = exports.today = void 0;
@@ -57,7 +57,7 @@ var _react = _interopRequireDefault(require("react"));
57
57
 
58
58
  var _icons = require("@ant-design/icons");
59
59
 
60
- var _utils = require("ls-pro-table/lib/utils");
60
+ var _lsProTable = require("ls-pro-table");
61
61
 
62
62
  /**
63
63
  * 设置文档title
@@ -77,7 +77,7 @@ var setTitle = function setTitle(title) {
77
77
 
78
78
 
79
79
  exports.setTitle = setTitle;
80
- var formatDate = _utils.dateFormat;
80
+ var formatDate = _lsProTable.dateFormat;
81
81
  /**
82
82
  * 返回当前日期
83
83
  * @returns YYYY-MM-DD
@@ -86,7 +86,7 @@ var formatDate = _utils.dateFormat;
86
86
  exports.formatDate = formatDate;
87
87
 
88
88
  var today = function today() {
89
- return (0, _utils.dateFormat)(null, false);
89
+ return (0, _lsProTable.dateFormat)(null, false);
90
90
  };
91
91
  /**
92
92
  * 返回当前日期时间
@@ -97,7 +97,7 @@ var today = function today() {
97
97
  exports.today = today;
98
98
 
99
99
  var now = function now() {
100
- return (0, _utils.dateFormat)(null, true);
100
+ return (0, _lsProTable.dateFormat)(null, true);
101
101
  };
102
102
  /**
103
103
  * 当前日期加减
@@ -163,7 +163,7 @@ var dateAdd = function dateAdd(dt, addDay) {
163
163
  dt.setFullYear(dt.getFullYear() + addYear);
164
164
  }
165
165
 
166
- return (0, _utils.dateFormat)(dt, true);
166
+ return (0, _lsProTable.dateFormat)(dt, true);
167
167
  };
168
168
  /**
169
169
  * 千位符格式化数值
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ls-pro-common",
3
- "version": "1.0.53",
3
+ "version": "1.0.56",
4
4
  "description": "ls-pro-common",
5
5
  "keywords": [
6
6
  "antd",
@@ -28,8 +28,8 @@
28
28
  ],
29
29
  "dependencies": {
30
30
  "@ant-design/icons": "^4.3.0",
31
- "ls-pro-table": "2.62.40",
32
- "ls-pro-form": "1.52.28",
31
+ "ls-pro-table": "2.62.42",
32
+ "ls-pro-form": "1.52.29",
33
33
  "@babel/runtime": "^7.16.3",
34
34
  "classnames": "^2.2.6",
35
35
  "moment": "^2.27.0",