amis 1.8.0-beta.13 → 1.8.0-beta.15

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 (84) hide show
  1. package/lib/WithStore.js +1 -1
  2. package/lib/WithStore.js.map +2 -2
  3. package/lib/components/DatePicker.js +3 -1
  4. package/lib/components/DatePicker.js.map +2 -2
  5. package/lib/components/Tree.js +3 -1
  6. package/lib/components/Tree.js.map +2 -2
  7. package/lib/helper.css +1 -1
  8. package/lib/helper.css.map +1 -1
  9. package/lib/index.js +1 -1
  10. package/lib/renderers/Date.js +6 -1
  11. package/lib/renderers/Date.js.map +2 -2
  12. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  13. package/lib/renderers/Nav.d.ts +21 -20
  14. package/lib/renderers/Nav.js +8 -1
  15. package/lib/renderers/Nav.js.map +2 -2
  16. package/lib/renderers/Page.js +1 -1
  17. package/lib/renderers/Page.js.map +2 -2
  18. package/lib/renderers/Service.js +1 -1
  19. package/lib/renderers/Service.js.map +2 -2
  20. package/lib/renderers/Table/exportExcel.d.ts +6 -0
  21. package/lib/renderers/Table/exportExcel.js +288 -0
  22. package/lib/renderers/Table/exportExcel.js.map +13 -0
  23. package/lib/renderers/Table/index.d.ts +1 -1
  24. package/lib/renderers/Table/index.js +4 -251
  25. package/lib/renderers/Table/index.js.map +2 -2
  26. package/lib/themes/ang-ie11.css +18 -15
  27. package/lib/themes/ang.css +4 -0
  28. package/lib/themes/ang.css.map +1 -1
  29. package/lib/themes/antd-ie11.css +18 -15
  30. package/lib/themes/antd.css +4 -0
  31. package/lib/themes/antd.css.map +1 -1
  32. package/lib/themes/cxd-ie11.css +3 -0
  33. package/lib/themes/cxd.css +4 -0
  34. package/lib/themes/cxd.css.map +1 -1
  35. package/lib/themes/dark-ie11.css +18 -15
  36. package/lib/themes/dark.css +4 -0
  37. package/lib/themes/dark.css.map +1 -1
  38. package/lib/themes/default-ie11.css +3 -0
  39. package/lib/themes/default.css +4 -0
  40. package/lib/themes/default.css.map +1 -1
  41. package/lib/utils/api.js +28 -6
  42. package/lib/utils/api.js.map +2 -2
  43. package/package.json +1 -1
  44. package/scss/_properties.scss +1 -0
  45. package/scss/components/form/_date.scss +1 -0
  46. package/scss/helper/layout/_display.scss +1 -1
  47. package/sdk/ang-ie11.css +19 -15
  48. package/sdk/ang.css +5 -0
  49. package/sdk/antd-ie11.css +19 -15
  50. package/sdk/antd.css +5 -0
  51. package/sdk/barcode.js +51 -51
  52. package/sdk/charts.js +14 -14
  53. package/sdk/codemirror.js +7 -7
  54. package/sdk/color-picker.js +65 -65
  55. package/sdk/cropperjs.js +2 -2
  56. package/sdk/cxd-ie11.css +4 -0
  57. package/sdk/cxd.css +5 -0
  58. package/sdk/dark-ie11.css +19 -15
  59. package/sdk/dark.css +5 -0
  60. package/sdk/exceljs.js +1 -1
  61. package/sdk/helper.css +1 -1
  62. package/sdk/helper.css.map +1 -1
  63. package/sdk/markdown.js +69 -69
  64. package/sdk/papaparse.js +1 -1
  65. package/sdk/renderers/Form/CityDB.js +1 -1
  66. package/sdk/rest.js +17 -17
  67. package/sdk/rich-text.js +62 -62
  68. package/sdk/sdk-ie11.css +4 -0
  69. package/sdk/sdk.css +5 -0
  70. package/sdk/sdk.js +1269 -1267
  71. package/sdk/thirds/hls.js/hls.js +1 -1
  72. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  73. package/sdk/tinymce.js +57 -57
  74. package/src/WithStore.tsx +1 -1
  75. package/src/components/DatePicker.tsx +2 -1
  76. package/src/components/Tree.tsx +3 -1
  77. package/src/renderers/Date.tsx +14 -1
  78. package/src/renderers/Form/TreeSelect.tsx +15 -12
  79. package/src/renderers/Nav.tsx +7 -1
  80. package/src/renderers/Page.tsx +9 -2
  81. package/src/renderers/Service.tsx +8 -2
  82. package/src/renderers/Table/exportExcel.ts +289 -0
  83. package/src/renderers/Table/index.tsx +5 -252
  84. package/src/utils/api.ts +36 -10
@@ -11,7 +11,6 @@ require("./ColumnToggler");
11
11
  var Checkbox_1 = (0, tslib_1.__importDefault)(require("../../components/Checkbox"));
12
12
  var Button_1 = (0, tslib_1.__importDefault)(require("../../components/Button"));
13
13
  var table_1 = require("../../store/table");
14
- var file_saver_1 = require("file-saver");
15
14
  var helper_1 = require("../../utils/helper");
16
15
  var tpl_builtin_1 = require("../../utils/tpl-builtin");
17
16
  var debounce_1 = (0, tslib_1.__importDefault)(require("lodash/debounce"));
@@ -24,24 +23,12 @@ Object.defineProperty(exports, "TableCell", { enumerable: true, get: function ()
24
23
  var HeadCellFilterDropdown_1 = require("./HeadCellFilterDropdown");
25
24
  var HeadCellSearchDropdown_1 = require("./HeadCellSearchDropdown");
26
25
  var TableContent_1 = require("./TableContent");
27
- var image_1 = require("../../utils/image");
28
26
  var TableBody_1 = require("./TableBody");
29
27
  var mobx_state_tree_1 = require("mobx-state-tree");
30
28
  var ColumnToggler_1 = (0, tslib_1.__importDefault)(require("./ColumnToggler"));
31
29
  var offset_1 = (0, tslib_1.__importDefault)(require("../../utils/offset"));
32
30
  var dom_1 = require("../../utils/dom");
33
- /**
34
- * 将 url 转成绝对地址
35
- */
36
- var getAbsoluteUrl = (function () {
37
- var link;
38
- return function (url) {
39
- if (!link)
40
- link = document.createElement('a');
41
- link.href = url;
42
- return link.href;
43
- };
44
- })();
31
+ var exportExcel_1 = require("./exportExcel");
45
32
  var Table = /** @class */ (function (_super) {
46
33
  (0, tslib_1.__extends)(Table, _super);
47
34
  function Table(props) {
@@ -1101,243 +1088,9 @@ var Table = /** @class */ (function (_super) {
1101
1088
  return render('exportExcel', (0, tslib_1.__assign)((0, tslib_1.__assign)({ label: __('CRUD.exportExcel') }, toolbar), { type: 'button' }), {
1102
1089
  onAction: function () {
1103
1090
  Promise.resolve().then(function () { return new Promise(function(resolve){require(['exceljs'], function(ret) {resolve(tslib_1.__importStar(ret));})}); }).then(function (ExcelJS) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
1104
- var rows, tmpStore, filename, res, workbook, worksheet, exportColumnNames, filteredColumns, firstRowLabels, firstRow, remoteMappingCache, rowIndex, _i, rows_1, row, sheetRow, columIndex, _a, filteredColumns_1, column, name, value, type, imageData, imageDimensions, imageWidth, imageHeight, imageMaxSize, imageMatch, imageExt, imageId, linkURL, e_1, linkURL, map, source, sourceValue, mapKey, res, viewValue, buffer, blob;
1105
- var _b, _c;
1106
- return (0, tslib_1.__generator)(this, function (_d) {
1107
- switch (_d.label) {
1108
- case 0:
1109
- rows = [];
1110
- filename = 'data';
1111
- if (!(typeof toolbar === 'object' && toolbar.api)) return [3 /*break*/, 2];
1112
- return [4 /*yield*/, env.fetcher(toolbar.api, data)];
1113
- case 1:
1114
- res = _d.sent();
1115
- if (!res.data) {
1116
- env.notify('warning', __('placeholder.noData'));
1117
- return [2 /*return*/];
1118
- }
1119
- if (Array.isArray(res.data)) {
1120
- rows = res.data;
1121
- }
1122
- else {
1123
- rows = res.data.rows || res.data.items;
1124
- }
1125
- // 因为很多方法是 store 里的,所以需要构建 store 来处理
1126
- tmpStore = table_1.TableStore.create((0, mobx_state_tree_1.getSnapshot)(store));
1127
- tmpStore.initRows(rows);
1128
- rows = tmpStore.rows;
1129
- return [3 /*break*/, 3];
1130
- case 2:
1131
- rows = store.rows;
1132
- _d.label = 3;
1133
- case 3:
1134
- if (typeof toolbar === 'object' && toolbar.filename) {
1135
- filename = (0, tpl_1.filter)(toolbar.filename, data, '| raw');
1136
- }
1137
- if (rows.length === 0) {
1138
- env.notify('warning', __('placeholder.noData'));
1139
- return [2 /*return*/];
1140
- }
1141
- workbook = new ExcelJS.Workbook();
1142
- worksheet = workbook.addWorksheet('sheet', {
1143
- properties: { defaultColWidth: 15 }
1144
- });
1145
- worksheet.views = [{ state: 'frozen', xSplit: 0, ySplit: 1 }];
1146
- exportColumnNames = toolbar.columns;
1147
- if ((0, tpl_builtin_1.isPureVariable)(exportColumnNames)) {
1148
- exportColumnNames = (0, tpl_builtin_1.resolveVariableAndFilter)(exportColumnNames, data, '| raw');
1149
- }
1150
- // 自定义导出列配置
1151
- if (toolbar.exportColumns && Array.isArray(toolbar.exportColumns)) {
1152
- columns = toolbar.exportColumns;
1153
- }
1154
- filteredColumns = exportColumnNames
1155
- ? columns.filter(function (column) {
1156
- var filterColumnsNames = exportColumnNames;
1157
- if (column.name &&
1158
- filterColumnsNames.indexOf(column.name) !== -1) {
1159
- return true;
1160
- }
1161
- return false;
1162
- })
1163
- : columns;
1164
- firstRowLabels = filteredColumns.map(function (column) {
1165
- return column.label;
1166
- });
1167
- firstRow = worksheet.getRow(1);
1168
- firstRow.values = firstRowLabels;
1169
- worksheet.autoFilter = {
1170
- from: {
1171
- row: 1,
1172
- column: 1
1173
- },
1174
- to: {
1175
- row: 1,
1176
- column: firstRowLabels.length
1177
- }
1178
- };
1179
- remoteMappingCache = {};
1180
- rowIndex = 1;
1181
- _i = 0, rows_1 = rows;
1182
- _d.label = 4;
1183
- case 4:
1184
- if (!(_i < rows_1.length)) return [3 /*break*/, 19];
1185
- row = rows_1[_i];
1186
- rowIndex += 1;
1187
- sheetRow = worksheet.getRow(rowIndex);
1188
- columIndex = 0;
1189
- _a = 0, filteredColumns_1 = filteredColumns;
1190
- _d.label = 5;
1191
- case 5:
1192
- if (!(_a < filteredColumns_1.length)) return [3 /*break*/, 18];
1193
- column = filteredColumns_1[_a];
1194
- columIndex += 1;
1195
- name = column.name;
1196
- value = (0, helper_1.getVariable)(row.data, name);
1197
- if (typeof value === 'undefined' &&
1198
- !column.tpl) {
1199
- return [3 /*break*/, 17];
1200
- }
1201
- // 处理合并单元格
1202
- if (name in row.rowSpans) {
1203
- if (row.rowSpans[name] === 0) {
1204
- return [3 /*break*/, 17];
1205
- }
1206
- else {
1207
- // start row, start column, end row, end column
1208
- worksheet.mergeCells(rowIndex, columIndex, rowIndex + row.rowSpans[name] - 1, columIndex);
1209
- }
1210
- }
1211
- type = column.type || 'plain';
1212
- if (!(type === 'image' && value)) return [3 /*break*/, 11];
1213
- _d.label = 6;
1214
- case 6:
1215
- _d.trys.push([6, 9, , 10]);
1216
- return [4 /*yield*/, (0, image_1.toDataURL)(value)];
1217
- case 7:
1218
- imageData = _d.sent();
1219
- return [4 /*yield*/, (0, image_1.getImageDimensions)(imageData)];
1220
- case 8:
1221
- imageDimensions = _d.sent();
1222
- imageWidth = imageDimensions.width;
1223
- imageHeight = imageDimensions.height;
1224
- imageMaxSize = 100;
1225
- if (imageWidth > imageHeight) {
1226
- if (imageWidth > imageMaxSize) {
1227
- imageHeight = (imageMaxSize * imageHeight) / imageWidth;
1228
- imageWidth = imageMaxSize;
1229
- }
1230
- }
1231
- else {
1232
- if (imageHeight > imageMaxSize) {
1233
- imageWidth = (imageMaxSize * imageWidth) / imageHeight;
1234
- imageHeight = imageMaxSize;
1235
- }
1236
- }
1237
- imageMatch = imageData.match(/data:image\/(.*);/);
1238
- imageExt = 'png';
1239
- if (imageMatch) {
1240
- imageExt = imageMatch[1];
1241
- }
1242
- // 目前 excel 只支持这些格式,所以其它格式直接输出 url
1243
- if (imageExt != 'png' &&
1244
- imageExt != 'jpeg' &&
1245
- imageExt != 'gif') {
1246
- sheetRow.getCell(columIndex).value = value;
1247
- return [3 /*break*/, 17];
1248
- }
1249
- imageId = workbook.addImage({
1250
- base64: imageData,
1251
- extension: imageExt
1252
- });
1253
- linkURL = getAbsoluteUrl(value);
1254
- worksheet.addImage(imageId, {
1255
- // 这里坐标位置是从 0 开始的,所以要减一
1256
- tl: { col: columIndex - 1, row: rowIndex - 1 },
1257
- ext: {
1258
- width: imageWidth,
1259
- height: imageHeight
1260
- },
1261
- hyperlinks: {
1262
- tooltip: linkURL
1263
- }
1264
- });
1265
- return [3 /*break*/, 10];
1266
- case 9:
1267
- e_1 = _d.sent();
1268
- console.warn(e_1.stack);
1269
- return [3 /*break*/, 10];
1270
- case 10: return [3 /*break*/, 17];
1271
- case 11:
1272
- if (!(type == 'link')) return [3 /*break*/, 12];
1273
- linkURL = getAbsoluteUrl(value);
1274
- sheetRow.getCell(columIndex).value = {
1275
- text: value,
1276
- hyperlink: linkURL
1277
- };
1278
- return [3 /*break*/, 17];
1279
- case 12:
1280
- if (!(type === 'mapping')) return [3 /*break*/, 16];
1281
- map = column.map;
1282
- source = column.source;
1283
- if (!source) return [3 /*break*/, 15];
1284
- sourceValue = source;
1285
- if ((0, tpl_builtin_1.isPureVariable)(source)) {
1286
- sourceValue = (0, tpl_builtin_1.resolveVariableAndFilter)(source, data, '| raw');
1287
- }
1288
- mapKey = JSON.stringify(source);
1289
- if (!(mapKey in remoteMappingCache)) return [3 /*break*/, 13];
1290
- map = remoteMappingCache[mapKey];
1291
- return [3 /*break*/, 15];
1292
- case 13: return [4 /*yield*/, env.fetcher(sourceValue, data)];
1293
- case 14:
1294
- res = _d.sent();
1295
- if (res.data) {
1296
- remoteMappingCache[mapKey] = res.data;
1297
- map = res.data;
1298
- }
1299
- _d.label = 15;
1300
- case 15:
1301
- if (typeof value !== 'undefined' &&
1302
- map &&
1303
- ((_b = map[value]) !== null && _b !== void 0 ? _b : map['*'])) {
1304
- viewValue = (_c = map[value]) !== null && _c !== void 0 ? _c : (value === true && map['1']
1305
- ? map['1']
1306
- : value === false && map['0']
1307
- ? map['0']
1308
- : map['*']);
1309
- sheetRow.getCell(columIndex).value =
1310
- (0, helper_1.removeHTMLTag)(viewValue);
1311
- }
1312
- else {
1313
- sheetRow.getCell(columIndex).value = (0, helper_1.removeHTMLTag)(value);
1314
- }
1315
- return [3 /*break*/, 17];
1316
- case 16:
1317
- if (column.tpl) {
1318
- sheetRow.getCell(columIndex).value = (0, helper_1.removeHTMLTag)((0, tpl_1.filter)(column.tpl, (0, helper_1.createObject)(data, row.data)));
1319
- }
1320
- else {
1321
- sheetRow.getCell(columIndex).value = value;
1322
- }
1323
- _d.label = 17;
1324
- case 17:
1325
- _a++;
1326
- return [3 /*break*/, 5];
1327
- case 18:
1328
- _i++;
1329
- return [3 /*break*/, 4];
1330
- case 19: return [4 /*yield*/, workbook.xlsx.writeBuffer()];
1331
- case 20:
1332
- buffer = _d.sent();
1333
- if (buffer) {
1334
- blob = new Blob([buffer], {
1335
- type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
1336
- });
1337
- (0, file_saver_1.saveAs)(blob, filename + '.xlsx');
1338
- }
1339
- return [2 /*return*/];
1340
- }
1091
+ return (0, tslib_1.__generator)(this, function (_a) {
1092
+ (0, exportExcel_1.exportExcel)(ExcelJS, this.props, toolbar);
1093
+ return [2 /*return*/];
1341
1094
  });
1342
1095
  }); });
1343
1096
  }