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.
- package/lib/WithStore.js +1 -1
- package/lib/WithStore.js.map +2 -2
- package/lib/components/DatePicker.js +3 -1
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/Tree.js +3 -1
- package/lib/components/Tree.js.map +2 -2
- package/lib/helper.css +1 -1
- package/lib/helper.css.map +1 -1
- package/lib/index.js +1 -1
- package/lib/renderers/Date.js +6 -1
- package/lib/renderers/Date.js.map +2 -2
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Nav.d.ts +21 -20
- package/lib/renderers/Nav.js +8 -1
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Page.js +1 -1
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Service.js +1 -1
- package/lib/renderers/Service.js.map +2 -2
- package/lib/renderers/Table/exportExcel.d.ts +6 -0
- package/lib/renderers/Table/exportExcel.js +288 -0
- package/lib/renderers/Table/exportExcel.js.map +13 -0
- package/lib/renderers/Table/index.d.ts +1 -1
- package/lib/renderers/Table/index.js +4 -251
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/themes/ang-ie11.css +18 -15
- package/lib/themes/ang.css +4 -0
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +18 -15
- package/lib/themes/antd.css +4 -0
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +3 -0
- package/lib/themes/cxd.css +4 -0
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +18 -15
- package/lib/themes/dark.css +4 -0
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +3 -0
- package/lib/themes/default.css +4 -0
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/api.js +28 -6
- package/lib/utils/api.js.map +2 -2
- package/package.json +1 -1
- package/scss/_properties.scss +1 -0
- package/scss/components/form/_date.scss +1 -0
- package/scss/helper/layout/_display.scss +1 -1
- package/sdk/ang-ie11.css +19 -15
- package/sdk/ang.css +5 -0
- package/sdk/antd-ie11.css +19 -15
- package/sdk/antd.css +5 -0
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +4 -0
- package/sdk/cxd.css +5 -0
- package/sdk/dark-ie11.css +19 -15
- package/sdk/dark.css +5 -0
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +17 -17
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +4 -0
- package/sdk/sdk.css +5 -0
- package/sdk/sdk.js +1269 -1267
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/WithStore.tsx +1 -1
- package/src/components/DatePicker.tsx +2 -1
- package/src/components/Tree.tsx +3 -1
- package/src/renderers/Date.tsx +14 -1
- package/src/renderers/Form/TreeSelect.tsx +15 -12
- package/src/renderers/Nav.tsx +7 -1
- package/src/renderers/Page.tsx +9 -2
- package/src/renderers/Service.tsx +8 -2
- package/src/renderers/Table/exportExcel.ts +289 -0
- package/src/renderers/Table/index.tsx +5 -252
- 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
|
-
|
1105
|
-
|
1106
|
-
|
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
|
}
|