linkmore-design 1.1.5 → 1.1.7

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 (61) hide show
  1. package/dist/LmEditTable/util.d.ts +6 -0
  2. package/dist/LmFilter/filterFns/index.d.ts +1 -0
  3. package/dist/LmUpload/fns/index.d.ts +1 -1
  4. package/dist/index.umd.css +93 -93
  5. package/dist/index.umd.js +351 -170
  6. package/dist/index.umd.min.css +1 -1
  7. package/dist/index.umd.min.js +7 -7
  8. package/dist/variables.css +22 -8
  9. package/es/Button/index.js +4 -1
  10. package/es/Button/style/index.css +0 -4
  11. package/es/Button/style/variables.css +0 -4
  12. package/es/CardTable/style/index.css +19 -4
  13. package/es/CardTable/style/variables.css +19 -4
  14. package/es/CustomTableOption/index.js +0 -10
  15. package/es/Input/index.js +3 -3
  16. package/es/LmEditTable/EditTable.js +189 -116
  17. package/es/LmEditTable/style/index.css +3 -0
  18. package/es/LmEditTable/style/variables.css +3 -0
  19. package/es/LmEditTable/util.d.ts +6 -0
  20. package/es/LmEditTable/util.js +29 -1
  21. package/es/LmFilter/clearFilter/index.js +3 -1
  22. package/es/LmFilter/components/EmptyFilter.js +2 -2
  23. package/es/LmFilter/filterFns/index.d.ts +1 -0
  24. package/es/LmFilter/filterFns/index.js +6 -1
  25. package/es/LmFilter/wrapper/FilterRoot.js +1 -1
  26. package/es/LmTable/Table.js +1 -1
  27. package/es/LmUpload/LmUpload.js +1 -0
  28. package/es/LmUpload/fns/index.d.ts +1 -1
  29. package/es/LmUpload/fns/index.js +105 -33
  30. package/es/message/index.js +4 -1
  31. package/es/styles/variables.css +22 -8
  32. package/lib/Button/index.js +6 -1
  33. package/lib/Button/style/index.css +0 -4
  34. package/lib/Button/style/variables.css +0 -4
  35. package/lib/CardTable/style/index.css +19 -4
  36. package/lib/CardTable/style/variables.css +19 -4
  37. package/lib/CustomTableOption/index.js +0 -9
  38. package/lib/Input/index.js +3 -3
  39. package/lib/LmEditTable/EditTable.js +188 -115
  40. package/lib/LmEditTable/style/index.css +3 -0
  41. package/lib/LmEditTable/style/variables.css +3 -0
  42. package/lib/LmEditTable/util.d.ts +6 -0
  43. package/lib/LmEditTable/util.js +40 -1
  44. package/lib/LmFilter/clearFilter/index.js +3 -1
  45. package/lib/LmFilter/components/EmptyFilter.js +2 -2
  46. package/lib/LmFilter/filterFns/index.d.ts +1 -0
  47. package/lib/LmFilter/filterFns/index.js +6 -1
  48. package/lib/LmFilter/wrapper/FilterRoot.js +1 -1
  49. package/lib/LmTable/Table.js +1 -1
  50. package/lib/LmUpload/LmUpload.js +1 -0
  51. package/lib/LmUpload/fns/index.d.ts +1 -1
  52. package/lib/LmUpload/fns/index.js +105 -31
  53. package/lib/message/index.js +6 -1
  54. package/lib/styles/variables.css +22 -8
  55. package/package.json +1 -1
  56. package/es/CustomTableOption/assets/option1.png +0 -0
  57. package/es/CustomTableOption/assets/option2.png +0 -0
  58. package/es/CustomTableOption/assets/option3.png +0 -0
  59. package/lib/CustomTableOption/assets/option1.png +0 -0
  60. package/lib/CustomTableOption/assets/option2.png +0 -0
  61. package/lib/CustomTableOption/assets/option3.png +0 -0
@@ -57,6 +57,8 @@ var useCoreOptions = function useCoreOptions(_ref) {
57
57
  onChange = props.onChange,
58
58
  type = props.type,
59
59
  fileSize = props.fileSize,
60
+ fileSizeType = props.fileSizeType,
61
+ fileAreaSize = props.fileAreaSize,
60
62
  enabledOss = props.enabledOss,
61
63
  enableCrop = props.enableCrop,
62
64
  ossConfig = props.ossConfig; // 获取当前的文件列表
@@ -240,12 +242,12 @@ var useCoreOptions = function useCoreOptions(_ref) {
240
242
  value: getFileList(),
241
243
  onChange: uploadSuccess
242
244
  });
243
- }, [props.fileUpload, getFileList, uploadSuccess]); // 上传文件
245
+ }, [props.fileUpload, getFileList, uploadSuccess]); // 调用上传方法: 执行 uploadOss && customUpload事件
244
246
 
245
247
  var uploadFile = (0, _react.useCallback)(function (file) {
246
248
  enabledOss && uploadOss(file);
247
249
  customUpload(file);
248
- }, [enabledOss, uploadOss, customUpload]); // 检测完成 file
250
+ }, [enabledOss, uploadOss, customUpload]); // 检测完成, 执行外部 `beforeUpload` 事件
249
251
 
250
252
  var checkOver = (0, _react.useCallback)(function (file) {
251
253
  return __awaiter(void 0, void 0, void 0, /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2() {
@@ -307,51 +309,123 @@ var useCoreOptions = function useCoreOptions(_ref) {
307
309
  }
308
310
  }, _callee2, null, [[5, 12]]);
309
311
  }));
310
- }, [props.beforeUpload, getFileList, uploadFile]); // 上传前的检测
312
+ }, [props.beforeUpload, getFileList, uploadFile]); // 单个文件异步校验
311
313
 
312
- var beforeUpload = (0, _react.useCallback)(function (e) {
313
- var files = e.target.files; // 循环文件检查是否存在不符合要求的文件
314
+ var fileCheckAsync = (0, _react.useCallback)(function (file) {
315
+ return new Promise(function (resolve, reject) {
316
+ // 文件类型校验是否通过 | 存在通配符或符合规定类型
317
+ var isCheckType = type.includes('*') || type.includes(file.name.replace(/.*\./, '').toLowerCase()); // 大小校验是否通过
314
318
 
315
- for (var i = 0, len = files.length; i < len; i += 1) {
316
- var item = files[i];
319
+ var isCheckSize = file.size / 1024 / (fileSizeType.toLowerCase().includes('m') ? 1024 : 1) <= fileSize;
317
320
 
318
- if (!type.includes(item.name.replace(/.*\./, '').toLowerCase())) {
321
+ if (!isCheckType) {
319
322
  var content = type.join('、');
320
- return _linkmoreDesign.message.warning("\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25\uFF01\u4EC5\u652F\u6301".concat(content, "\u7684\u6587\u4EF6\u7C7B\u578B\uFF01"), 1.5);
323
+ reject(new Error("\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25\uFF01\u4EC5\u652F\u6301".concat(content, "\u7684\u6587\u4EF6\u7C7B\u578B\uFF01")));
321
324
  }
322
325
 
323
- if (item.size / 1024 / 1024 > fileSize) {
324
- return _linkmoreDesign.message.warning("\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25\uFF01\u9644\u4EF6\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7".concat(fileSize, "M\uFF01"), 1.5);
325
- } // 可剪裁时单独处理文件
326
-
327
-
328
- if (enableCrop) {
329
- dispatch({
330
- type: 'changeCropFile',
331
- cropFile: item
332
- });
326
+ if (!isCheckSize) {
327
+ reject(new Error("\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25\uFF01\u9644\u4EF6\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7".concat(fileSize).concat(fileSizeType, "\uFF01")));
328
+ } // 是否需要校验图片宽高
329
+
330
+
331
+ if (fileAreaSize) {
332
+ var reader = new FileReader();
333
+ reader.readAsDataURL(file);
334
+
335
+ reader.onload = function (evt) {
336
+ var res = evt.target.result;
337
+ var imageObj = new Image();
338
+ imageObj.src = res;
339
+
340
+ imageObj.onload = function () {
341
+ var maxWidth = fileAreaSize.maxWidth,
342
+ maxHeight = fileAreaSize.maxHeight;
343
+ var isCheckAreaSizeMaxWidth = !maxWidth || imageObj.width <= maxWidth;
344
+ var isCheckAreaSizeMaxHeight = !maxHeight || imageObj.height <= maxHeight;
345
+
346
+ if (!isCheckAreaSizeMaxWidth || !isCheckAreaSizeMaxHeight) {
347
+ reject(new Error("\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25\uFF01\u56FE\u7247\u5C3A\u5BF8\u4E0D\u7B26\u5408"));
348
+ } else {
349
+ resolve(file);
350
+ }
351
+ };
352
+ };
333
353
  } else {
334
- // 单个文件上传
335
- checkOver(item);
354
+ resolve(file);
336
355
  }
337
- }
356
+ });
357
+ }, [type, fileSize, fileSizeType, fileAreaSize]); // 文件循环校验,返回校验后的文件数组
358
+
359
+ var filesLoopCheck = (0, _react.useCallback)(function (files) {
360
+ return Promise.all(files.map(fileCheckAsync));
361
+ }, []);
362
+ /*
363
+ * 上传前: 先校验 => 全部校验通过后开始上传
364
+ * 事件执行顺序:
365
+ * beforeUpload => filesLoopCheck => checkOver
366
+ * => uploadFile => uploadOss && customUpload
367
+ * => uploadProgress => uploadSuccess || uploadError
368
+ * => Props.onChange && (Props.onSuccess || Props.onError)
369
+ */
370
+
371
+ var beforeUpload = (0, _react.useCallback)(function (e) {
372
+ return __awaiter(void 0, void 0, void 0, /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee3() {
373
+ var files, res;
374
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee3$(_context3) {
375
+ while (1) {
376
+ switch (_context3.prev = _context3.next) {
377
+ case 0:
378
+ files = Array.from(e.target.files);
379
+ _context3.prev = 1;
380
+ _context3.next = 4;
381
+ return filesLoopCheck(files);
338
382
 
339
- return false;
340
- }, [type, fileSize, enableCrop, checkOver]); // 删除事件
383
+ case 4:
384
+ res = _context3.sent;
385
+
386
+ // 仅单文件上传时可剪裁
387
+ if (enableCrop) {
388
+ dispatch({
389
+ type: 'changeCropFile',
390
+ cropFile: res[0]
391
+ });
392
+ } else {
393
+ // 校验完成开始执行上传
394
+ res.forEach(checkOver);
395
+ }
396
+
397
+ _context3.next = 12;
398
+ break;
399
+
400
+ case 8:
401
+ _context3.prev = 8;
402
+ _context3.t0 = _context3["catch"](1);
403
+ console.log('文件校验未通过!', _context3.t0.message);
404
+
405
+ _linkmoreDesign.message.warning(_context3.t0.message, 1.5);
406
+
407
+ case 12:
408
+ case "end":
409
+ return _context3.stop();
410
+ }
411
+ }
412
+ }, _callee3, null, [[1, 8]]);
413
+ }));
414
+ }, [filesLoopCheck, enableCrop, checkOver]); // 删除事件
341
415
 
342
416
  var remove = (0, _react.useCallback)(function (file) {
343
- return __awaiter(void 0, void 0, void 0, /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee3() {
417
+ return __awaiter(void 0, void 0, void 0, /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee4() {
344
418
  var _a, _b, res, fileList;
345
419
 
346
- return (0, _regeneratorRuntime2.default)().wrap(function _callee3$(_context3) {
420
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee4$(_context4) {
347
421
  while (1) {
348
- switch (_context3.prev = _context3.next) {
422
+ switch (_context4.prev = _context4.next) {
349
423
  case 0:
350
- _context3.next = 2;
424
+ _context4.next = 2;
351
425
  return (_a = props.onRemove) === null || _a === void 0 ? void 0 : _a.call(props, file);
352
426
 
353
427
  case 2:
354
- res = _context3.sent;
428
+ res = _context4.sent;
355
429
 
356
430
  if (res) {
357
431
  fileList = (_b = getFileList()) === null || _b === void 0 ? void 0 : _b.filter(function (v) {
@@ -369,10 +443,10 @@ var useCoreOptions = function useCoreOptions(_ref) {
369
443
 
370
444
  case 4:
371
445
  case "end":
372
- return _context3.stop();
446
+ return _context4.stop();
373
447
  }
374
448
  }
375
- }, _callee3);
449
+ }, _callee4);
376
450
  }));
377
451
  }, [props.onRemove, getFileList, onChange, dispatch, uid]); // 点击文件链接或预览图标时的回调
378
452
 
@@ -12,6 +12,10 @@ exports.getInstance = exports.default = void 0;
12
12
  exports.getKeyThenIncreaseKey = getKeyThenIncreaseKey;
13
13
  exports.typeList = void 0;
14
14
 
15
+ require("antd/es/message/style");
16
+
17
+ var _message2 = _interopRequireDefault(require("antd/es/message"));
18
+
15
19
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
20
 
17
21
  var _icons = require("@ant-design/icons");
@@ -229,7 +233,8 @@ var api = {
229
233
  messageInstance = null;
230
234
  }
231
235
  }
232
- }
236
+ },
237
+ antdMessage: _message2.default
233
238
  };
234
239
 
235
240
  function attachTypeApi(originalApi, type) {
@@ -761,7 +761,6 @@ p {
761
761
  margin-left: 4px;
762
762
  overflow: hidden;
763
763
  white-space: nowrap;
764
- max-width: 96px;
765
764
  }
766
765
  .ant-btn.lm-button > span:not(.anticon) {
767
766
  display: inline-block;
@@ -779,12 +778,10 @@ p {
779
778
  .ant-btn.lm-button > span:not(.anticon) {
780
779
  font-size: 12px;
781
780
  line-height: 20px;
782
- max-width: 96px;
783
781
  }
784
782
  .ant-btn.lm-button-small {
785
783
  height: 24px;
786
784
  padding: 2px 8px;
787
- max-width: 112px;
788
785
  font-size: 12px;
789
786
  }
790
787
  .ant-btn.lm-button-small.lm-button-icon-only .anticon {
@@ -793,7 +790,6 @@ p {
793
790
  .ant-btn.lm-button-middle {
794
791
  height: 32px;
795
792
  padding: 6px 12px;
796
- max-width: 142px;
797
793
  }
798
794
  .ant-btn.lm-button-middle .anticon {
799
795
  font-size: 16px;
@@ -1157,6 +1153,7 @@ p {
1157
1153
  overflow: hidden;
1158
1154
  }
1159
1155
  .card_PTR .card_PTR_container .card_PTR_body .card_PTR_left {
1156
+ flex: 0 0 auto;
1160
1157
  width: 35%;
1161
1158
  min-width: 126px;
1162
1159
  border-radius: 2px;
@@ -1176,6 +1173,7 @@ p {
1176
1173
  flex: 1;
1177
1174
  display: flex;
1178
1175
  flex-flow: column;
1176
+ overflow: hidden;
1179
1177
  }
1180
1178
  .card_PTR .card_PTR_container .card_PTR_body .card_PTR_right .card_title {
1181
1179
  overflow: hidden;
@@ -1204,8 +1202,8 @@ p {
1204
1202
  }
1205
1203
  .card_PTR .card_PTR_container .card_PTR_body .card_PTR_right .PTR_column .PTR_column_box {
1206
1204
  font-size: 12px;
1207
- display: grid;
1208
- grid-template-columns: repeat(2, 1fr);
1205
+ display: flex;
1206
+ flex-flow: wrap;
1209
1207
  column-gap: 8px;
1210
1208
  color: var(--color-65);
1211
1209
  margin-top: 8px;
@@ -1214,6 +1212,7 @@ p {
1214
1212
  display: inline-flex;
1215
1213
  align-items: center;
1216
1214
  min-height: 20px;
1215
+ width: calc(50% - 4px);
1217
1216
  }
1218
1217
  .card_PTR .card_PTR_container .card_PTR_body .card_PTR_right .PTR_column .PTR_column_box .ellipsis {
1219
1218
  flex: 1 1 0;
@@ -1284,6 +1283,7 @@ p {
1284
1283
  overflow: hidden;
1285
1284
  }
1286
1285
  .card_PTRO .card_PTRO_container .card_PTRO_body .card_PTRO_left {
1286
+ flex: 0 0 auto;
1287
1287
  width: 40%;
1288
1288
  min-width: 126px;
1289
1289
  border-radius: 2px;
@@ -1303,8 +1303,10 @@ p {
1303
1303
  flex: 1;
1304
1304
  display: flex;
1305
1305
  flex-flow: column;
1306
+ overflow: hidden;
1306
1307
  }
1307
1308
  .card_PTRO .card_PTRO_container .card_PTRO_body .card_PTRO_right .card_title {
1309
+ flex: 0 0 auto;
1308
1310
  overflow: hidden;
1309
1311
  text-overflow: ellipsis;
1310
1312
  white-space: nowrap;
@@ -1325,10 +1327,19 @@ p {
1325
1327
  color: var(--success-color);
1326
1328
  }
1327
1329
  .card_PTRO .card_PTRO_container .card_PTRO_body .card_PTRO_right .PTRO_column {
1328
- display: grid;
1329
- grid-template-columns: repeat(2, 1fr);
1330
+ display: flex;
1331
+ flex-flow: wrap;
1332
+ column-gap: 8px;
1330
1333
  font-size: 12px;
1331
1334
  color: var(--color-65);
1335
+ margin-top: 8px;
1336
+ }
1337
+ .card_PTRO .card_PTRO_container .card_PTRO_body .card_PTRO_right .PTRO_column > span {
1338
+ min-height: 20px;
1339
+ width: calc(50% - 4px);
1340
+ text-overflow: ellipsis;
1341
+ white-space: nowrap;
1342
+ overflow: hidden;
1332
1343
  }
1333
1344
  .card_PTRO .card_PTRO_container .card_PTRO_body .card_PTRO_right .PTRO_extend {
1334
1345
  font-size: 12px;
@@ -9733,6 +9744,9 @@ p {
9733
9744
  flex: 1;
9734
9745
  max-width: 100%;
9735
9746
  }
9747
+ .lm_editTable_warpper .lm_custom_cell_td .ant-table-row-expand-icon {
9748
+ margin-top: 6px;
9749
+ }
9736
9750
  .lm_editTable_warpper .lm_editTable_cell_edit {
9737
9751
  height: 40px;
9738
9752
  padding: 8px 8px !important;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linkmore-design",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "author": {
5
5
  "name": "nowthen",
6
6
  "email": "rnlvwyx@gmail.com"