@vtx/ol-map 2.0.0-beta.16 → 2.0.0-beta.17

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.
@@ -19,6 +19,9 @@ var _Draw = require("ol/interaction/Draw");
19
19
  var _Draw2 = require("../../Utils/Draw");
20
20
  var _useProps2 = _interopRequireDefault(require("../../../use-props"));
21
21
  var _olMap = require("@vtx/ol-map");
22
+ var _FeatureLayer = _interopRequireDefault(require("../../../feature-layer/FeatureLayer"));
23
+ var _ImageLayer = _interopRequireDefault(require("../../../image-layer/ImageLayer"));
24
+ var _lock = _interopRequireDefault(require("./assets/lock.png"));
22
25
  require("./index.less");
23
26
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
24
27
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
@@ -286,7 +289,7 @@ var syncBusinessLayers = function syncBusinessLayers(sourceMap, targetMap, exclu
286
289
  if (layer.get('key') === '__TDT_TILE' || layer.get('key') === '__TDT_MARK') {
287
290
  return false;
288
291
  }
289
- return layer instanceof _Vector["default"] || layer instanceof _Tile["default"] || layer instanceof _Image["default"];
292
+ return true;
290
293
  }).forEach(function (layer) {
291
294
  var clonedLayer = cloneLayer(layer);
292
295
  if (clonedLayer) {
@@ -321,6 +324,122 @@ var waitMapRender = function waitMapRender(mapInstance) {
321
324
  (_mapInstance$renderSy = mapInstance.renderSync) === null || _mapInstance$renderSy === void 0 || _mapInstance$renderSy.call(mapInstance);
322
325
  });
323
326
  };
327
+
328
+ // 业务图层经常是 WMS/WFS 异步请求,rendercomplete 加上固定 600ms 还不够稳。
329
+ // 这里额外等待图层 source 进入一段“空闲期”后再截图,避免外面图层还在加载时就提前截空白图。
330
+ var waitLayerSourcesSettled = function waitLayerSourcesSettled(mapInstance) {
331
+ var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4000;
332
+ return new Promise(function (resolve) {
333
+ var _mapInstance$renderSy3;
334
+ if (!mapInstance) {
335
+ resolve();
336
+ return;
337
+ }
338
+ var disposers = [];
339
+ var pending = 0;
340
+ var done = false;
341
+ var idleTimer = null;
342
+ var finish = function finish() {
343
+ if (done) {
344
+ return;
345
+ }
346
+ done = true;
347
+ if (idleTimer) {
348
+ clearTimeout(idleTimer);
349
+ }
350
+ disposers.forEach(function (dispose) {
351
+ return dispose();
352
+ });
353
+ resolve();
354
+ };
355
+ var scheduleFinish = function scheduleFinish(delay) {
356
+ if (idleTimer) {
357
+ clearTimeout(idleTimer);
358
+ }
359
+ idleTimer = setTimeout(function () {
360
+ if (pending <= 0) {
361
+ finish();
362
+ }
363
+ }, delay);
364
+ };
365
+ var onStart = function onStart() {
366
+ pending += 1;
367
+ if (idleTimer) {
368
+ clearTimeout(idleTimer);
369
+ idleTimer = null;
370
+ }
371
+ };
372
+ var onEnd = function onEnd() {
373
+ pending = Math.max(0, pending - 1);
374
+ if (pending === 0) {
375
+ scheduleFinish(250);
376
+ }
377
+ };
378
+ var bind = function bind(target, type, handler) {
379
+ if (!(target !== null && target !== void 0 && target.on)) {
380
+ return;
381
+ }
382
+ target.on(type, handler);
383
+ disposers.push(function () {
384
+ var _target$un;
385
+ return (_target$un = target.un) === null || _target$un === void 0 ? void 0 : _target$un.call(target, type, handler);
386
+ });
387
+ };
388
+ mapInstance.getLayers().getArray().filter(function (layer) {
389
+ return layer.get('__sheetPrintClone');
390
+ }).forEach(function (layer) {
391
+ var _layer$getSource;
392
+ var source = (_layer$getSource = layer.getSource) === null || _layer$getSource === void 0 ? void 0 : _layer$getSource.call(layer);
393
+ if (!source) {
394
+ return;
395
+ }
396
+ ['tileloadstart', 'imageloadstart', 'featuresloadstart', 'vectorloadstart'].forEach(function (type) {
397
+ return bind(source, type, onStart);
398
+ });
399
+ ['tileloadend', 'tileloaderror', 'imageloadend', 'imageloaderror', 'featuresloadend', 'featuresloaderror', 'vectorloadend', 'vectorloaderror'].forEach(function (type) {
400
+ return bind(source, type, onEnd);
401
+ });
402
+
403
+ // 业务 ImageLayer 第一次进入预览时,经常是 source 已经创建但首张 WMS 图还没真正画进地图。
404
+ // 这里额外盯一下当前 image state,等它从 idle/loading 走到可用状态后再继续截图。
405
+ if (layer instanceof _ImageLayer["default"] && typeof source.getImage === 'function') {
406
+ var _mapInstance$getView, _mapInstance$getSize, _view$calculateExtent, _view$getResolution, _view$getProjection, _image$getState;
407
+ var view = (_mapInstance$getView = mapInstance.getView) === null || _mapInstance$getView === void 0 ? void 0 : _mapInstance$getView.call(mapInstance);
408
+ var size = (_mapInstance$getSize = mapInstance.getSize) === null || _mapInstance$getSize === void 0 ? void 0 : _mapInstance$getSize.call(mapInstance);
409
+ var extent = view === null || view === void 0 || (_view$calculateExtent = view.calculateExtent) === null || _view$calculateExtent === void 0 ? void 0 : _view$calculateExtent.call(view, size);
410
+ var resolution = view === null || view === void 0 || (_view$getResolution = view.getResolution) === null || _view$getResolution === void 0 ? void 0 : _view$getResolution.call(view);
411
+ var projection = view === null || view === void 0 || (_view$getProjection = view.getProjection) === null || _view$getProjection === void 0 ? void 0 : _view$getProjection.call(view);
412
+ var image = extent && resolution && projection ? source.getImage(extent, resolution, 1, projection) : null;
413
+ var imageState = image === null || image === void 0 || (_image$getState = image.getState) === null || _image$getState === void 0 ? void 0 : _image$getState.call(image);
414
+ if (image && (imageState === 0 || imageState === 1)) {
415
+ var _image$on;
416
+ onStart();
417
+ var _handleImageChange = function handleImageChange() {
418
+ var _image$getState2, _image$un, _mapInstance$renderSy2;
419
+ var nextState = (_image$getState2 = image.getState) === null || _image$getState2 === void 0 ? void 0 : _image$getState2.call(image);
420
+ if (nextState === 0 || nextState === 1) {
421
+ return;
422
+ }
423
+ (_image$un = image.un) === null || _image$un === void 0 || _image$un.call(image, 'change', _handleImageChange);
424
+ onEnd();
425
+ (_mapInstance$renderSy2 = mapInstance.renderSync) === null || _mapInstance$renderSy2 === void 0 || _mapInstance$renderSy2.call(mapInstance);
426
+ };
427
+ (_image$on = image.on) === null || _image$on === void 0 || _image$on.call(image, 'change', _handleImageChange);
428
+ disposers.push(function () {
429
+ var _image$un2;
430
+ return (_image$un2 = image.un) === null || _image$un2 === void 0 ? void 0 : _image$un2.call(image, 'change', _handleImageChange);
431
+ });
432
+ if (imageState === 0 && image.load) {
433
+ image.load();
434
+ }
435
+ }
436
+ }
437
+ });
438
+ scheduleFinish(500);
439
+ setTimeout(finish, timeout);
440
+ (_mapInstance$renderSy3 = mapInstance.renderSync) === null || _mapInstance$renderSy3 === void 0 || _mapInstance$renderSy3.call(mapInstance);
441
+ });
442
+ };
324
443
  var parseCanvasTransform = function parseCanvasTransform(canvas) {
325
444
  var transformText = canvas.style.transform || window.getComputedStyle(canvas).transform || '';
326
445
  var match = transformText.match(/^matrix\(([^)]+)\)$/);
@@ -501,22 +620,26 @@ function _default(props) {
501
620
  _useState16 = _slicedToArray(_useState15, 2),
502
621
  previewReady = _useState16[0],
503
622
  setPreviewReady = _useState16[1];
504
- var _useState17 = (0, _react.useState)(''),
623
+ var _useState17 = (0, _react.useState)(TextEnum.generatingPreviewText),
505
624
  _useState18 = _slicedToArray(_useState17, 2),
506
- previewImage = _useState18[0],
507
- setPreviewImage = _useState18[1];
508
- var _useState19 = (0, _react.useState)([]),
625
+ previewLoadingText = _useState18[0],
626
+ setPreviewLoadingText = _useState18[1];
627
+ var _useState19 = (0, _react.useState)(''),
509
628
  _useState20 = _slicedToArray(_useState19, 2),
510
- sheetImages = _useState20[0],
511
- setSheetImages = _useState20[1];
629
+ previewImage = _useState20[0],
630
+ setPreviewImage = _useState20[1];
512
631
  var _useState21 = (0, _react.useState)([]),
513
632
  _useState22 = _slicedToArray(_useState21, 2),
514
- selectedSheetIds = _useState22[0],
515
- setSelectedSheetIds = _useState22[1];
516
- var _useState23 = (0, _react.useState)(false),
633
+ sheetImages = _useState22[0],
634
+ setSheetImages = _useState22[1];
635
+ var _useState23 = (0, _react.useState)([]),
517
636
  _useState24 = _slicedToArray(_useState23, 2),
518
- generating = _useState24[0],
519
- setGenerating = _useState24[1];
637
+ selectedSheetIds = _useState24[0],
638
+ setSelectedSheetIds = _useState24[1];
639
+ var _useState25 = (0, _react.useState)(false),
640
+ _useState26 = _slicedToArray(_useState25, 2),
641
+ generating = _useState26[0],
642
+ setGenerating = _useState26[1];
520
643
  var drawTool = (0, _react.useRef)(null);
521
644
  var boxExtentRef = (0, _react.useRef)(null);
522
645
  var boxLayerRef = (0, _react.useRef)(null);
@@ -528,13 +651,13 @@ function _default(props) {
528
651
  var renderLayersSyncedRef = (0, _react.useRef)(false);
529
652
  var previewRenderSeqRef = (0, _react.useRef)(0);
530
653
  var previewRenderTimerRef = (0, _react.useRef)(null);
531
- var _useState25 = (0, _react.useState)({
654
+ var _useState27 = (0, _react.useState)({
532
655
  width: 1,
533
656
  height: 1
534
657
  }),
535
- _useState26 = _slicedToArray(_useState25, 2),
536
- exportSize = _useState26[0],
537
- setExportSize = _useState26[1];
658
+ _useState28 = _slicedToArray(_useState27, 2),
659
+ exportSize = _useState28[0],
660
+ setExportSize = _useState28[1];
538
661
  (0, _react.useEffect)(function () {
539
662
  form.setFieldsValue({
540
663
  range: '1',
@@ -568,6 +691,9 @@ function _default(props) {
568
691
  var extent = event.feature.getGeometry().getExtent();
569
692
  boxExtentRef.current = extent;
570
693
  map.showTip(TextEnum.leftClickToStart);
694
+ map.getView().fit(extent, {
695
+ duration: 500
696
+ });
571
697
  });
572
698
  map.addLayer(boxLayer);
573
699
  map.addInteraction(tool);
@@ -592,6 +718,24 @@ function _default(props) {
592
718
  var previewFrameExtent = (0, _react.useMemo)(function () {
593
719
  return buildPreviewFrameExtent(splitPlan, metrics === null || metrics === void 0 ? void 0 : metrics.extent);
594
720
  }, [splitPlan, metrics === null || metrics === void 0 ? void 0 : metrics.extent]);
721
+ var mapProjection = (0, _react.useMemo)(function () {
722
+ try {
723
+ var _map$getView, _map$getView$getProje, _map$getView$getProje2;
724
+ return (map === null || map === void 0 || (_map$getView = map.getView) === null || _map$getView === void 0 || (_map$getView = _map$getView.call(map)) === null || _map$getView === void 0 || (_map$getView$getProje = _map$getView.getProjection) === null || _map$getView$getProje === void 0 || (_map$getView$getProje = _map$getView$getProje.call(_map$getView)) === null || _map$getView$getProje === void 0 || (_map$getView$getProje2 = _map$getView$getProje.getCode) === null || _map$getView$getProje2 === void 0 ? void 0 : _map$getView$getProje2.call(_map$getView$getProje)) || 'EPSG:4326';
725
+ } catch (error) {
726
+ return 'EPSG:4326';
727
+ }
728
+ }, [map]);
729
+ var inheritedMapProps = (0, _react.useMemo)(function () {
730
+ var baseLayerParams = (map === null || map === void 0 ? void 0 : map.baseLayerParams) || {};
731
+ return {
732
+ projection: mapProjection,
733
+ mapStyle: baseLayerParams.mapStyle,
734
+ baseMapStyle: baseLayerParams.baseMapStyle,
735
+ dark: baseLayerParams.dark,
736
+ tk: (map === null || map === void 0 ? void 0 : map.tk) || baseLayerParams.tk || '1adbb6e47668cb33757cd799548bf1f4'
737
+ };
738
+ }, [map, mapProjection]);
595
739
 
596
740
  // 预览里的“单张纸大小”应该只由纸张尺寸本身决定,
597
741
  // 不应该因为修改总宽高而把 A4/A3 的纸张框一起缩放掉。
@@ -658,11 +802,10 @@ function _default(props) {
658
802
  };
659
803
  var handleExportMapCreated = function handleExportMapCreated(exportMap) {
660
804
  exportMapRef.current = exportMap;
661
- syncBusinessLayers(map, exportMap, boxLayerRef.current);
805
+ renderLayersSyncedRef.current = false;
662
806
  };
663
807
  var handlePreviewMapCreated = function handlePreviewMapCreated(previewMap) {
664
808
  previewMapRef.current = previewMap;
665
- syncBusinessLayers(map, previewMap, boxLayerRef.current);
666
809
  };
667
810
 
668
811
  // 隐藏导出地图只在第一次真正需要时补同步业务图层,
@@ -688,7 +831,7 @@ function _default(props) {
688
831
  // 点击“执行分幅”时,直接读取外部主地图当前层级,
689
832
  // 也就是“外面地图是什么层级,进去就按什么层级算”。
690
833
  var handleSubmit = function handleSubmit(values) {
691
- var _values$overlapMargin, _map$getView$getZoom, _map$getView;
834
+ var _values$overlapMargin, _map$getView$getZoom, _map$getView2;
692
835
  var pageSize = values.pageSize || form.getFieldValue('pageSize');
693
836
  var overlapMargin = Number((_values$overlapMargin = values.overlapMargin) !== null && _values$overlapMargin !== void 0 ? _values$overlapMargin : form.getFieldValue('overlapMargin')) || 0;
694
837
  // const overlapMargin = 10
@@ -698,7 +841,7 @@ function _default(props) {
698
841
  if (!isValidExtent(extent)) {
699
842
  return;
700
843
  }
701
- var zoom = Math.round(((_map$getView$getZoom = (_map$getView = map.getView()).getZoom) === null || _map$getView$getZoom === void 0 ? void 0 : _map$getView$getZoom.call(_map$getView)) || 0);
844
+ var zoom = Math.round(((_map$getView$getZoom = (_map$getView2 = map.getView()).getZoom) === null || _map$getView$getZoom === void 0 ? void 0 : _map$getView$getZoom.call(_map$getView2)) || 0);
702
845
  var nextMetrics = calcMetricsFromZoom(extent, map.getView(), zoom);
703
846
  if (!nextMetrics) {
704
847
  return;
@@ -730,6 +873,7 @@ function _default(props) {
730
873
  setTotalWidthMm(Number(nextMetrics.widthMm.toFixed(3)));
731
874
  setTotalHeightMm(Number(nextMetrics.heightMm.toFixed(3)));
732
875
  setPreviewReady(false);
876
+ setPreviewLoadingText(TextEnum.generatingPreviewText);
733
877
  setPreviewImage('');
734
878
  previewMasterCanvasRef.current = null;
735
879
  previewMasterFramePixelsRef.current = null;
@@ -856,6 +1000,7 @@ function _default(props) {
856
1000
  } : null
857
1001
  });
858
1002
  setPreviewReady(false);
1003
+ setPreviewLoadingText(TextEnum.syncingLayersText);
859
1004
  _context4.n = 2;
860
1005
  return waitNextFrame();
861
1006
  case 2:
@@ -898,32 +1043,39 @@ function _default(props) {
898
1043
  _context4.n = 7;
899
1044
  return waitMapRender(exportMapRef.current);
900
1045
  case 7:
901
- if (!previewMapRef.current) {
902
- _context4.n = 8;
903
- break;
904
- }
1046
+ setPreviewLoadingText(TextEnum.waitingBusinessLayersText);
905
1047
  _context4.n = 8;
906
- return waitMapRender(previewMapRef.current);
1048
+ return waitLayerSourcesSettled(exportMapRef.current);
907
1049
  case 8:
908
1050
  _context4.n = 9;
909
- return waitNextFrame();
1051
+ return waitMapRender(exportMapRef.current);
910
1052
  case 9:
911
- if (!(seq !== previewRenderSeqRef.current)) {
1053
+ if (!previewMapRef.current) {
912
1054
  _context4.n = 10;
913
1055
  break;
914
1056
  }
915
- return _context4.a(2);
1057
+ _context4.n = 10;
1058
+ return waitMapRender(previewMapRef.current);
916
1059
  case 10:
917
1060
  _context4.n = 11;
918
- return captureDomCanvas(exportStageRef.current, captureWidthPx, captureHeightPx);
1061
+ return waitNextFrame();
919
1062
  case 11:
920
- sourceCanvas = _context4.v;
921
1063
  if (!(seq !== previewRenderSeqRef.current)) {
922
1064
  _context4.n = 12;
923
1065
  break;
924
1066
  }
925
1067
  return _context4.a(2);
926
1068
  case 12:
1069
+ _context4.n = 13;
1070
+ return captureDomCanvas(exportStageRef.current, captureWidthPx, captureHeightPx);
1071
+ case 13:
1072
+ sourceCanvas = _context4.v;
1073
+ if (!(seq !== previewRenderSeqRef.current)) {
1074
+ _context4.n = 14;
1075
+ break;
1076
+ }
1077
+ return _context4.a(2);
1078
+ case 14:
927
1079
  previewCanvas = document.createElement('canvas');
928
1080
  previewCanvas.width = Math.max(1, Math.round(previewFramePixels.width));
929
1081
  previewCanvas.height = Math.max(1, Math.round(previewFramePixels.height));
@@ -947,7 +1099,8 @@ function _default(props) {
947
1099
  ctx.drawImage(previewMasterCanvas, 0, 0, previewCanvas.width, previewCanvas.height);
948
1100
  setPreviewImage(previewCanvas.toDataURL('image/png'));
949
1101
  setPreviewReady(true);
950
- case 13:
1102
+ setPreviewLoadingText(TextEnum.generatingPreviewText);
1103
+ case 15:
951
1104
  return _context4.a(2);
952
1105
  }
953
1106
  }, _callee4);
@@ -1095,16 +1248,16 @@ function _default(props) {
1095
1248
  },
1096
1249
  onFinish: handleSubmit
1097
1250
  }, /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, {
1098
- label: TextEnum.mapTitle,
1251
+ label: TextEnum.mapPrintTitle,
1099
1252
  name: "title",
1100
1253
  rules: [{
1101
1254
  required: true,
1102
- message: TextEnum.pleaseInputTitle
1255
+ message: TextEnum.pleaseInput
1103
1256
  }]
1104
1257
  }, /*#__PURE__*/_react["default"].createElement(_antd.Input, {
1105
1258
  placeholder: TextEnum.pleaseInput
1106
1259
  })), /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, {
1107
- label: TextEnum.downloadRange,
1260
+ label: TextEnum.printRange,
1108
1261
  name: "range",
1109
1262
  rules: [{
1110
1263
  required: true,
@@ -1121,8 +1274,16 @@ function _default(props) {
1121
1274
  value: '2',
1122
1275
  label: TextEnum.manualBoxSelect
1123
1276
  }]
1124
- })), /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, {
1125
- label: "\u7EB8\u5F20\u5C3A\u5BF8",
1277
+ })), /*#__PURE__*/_react["default"].createElement("div", {
1278
+ style: {
1279
+ marginLeft: 12,
1280
+ marginBottom: 12,
1281
+ color: '#333',
1282
+ fontSize: 14,
1283
+ fontWeight: 500
1284
+ }
1285
+ }, TextEnum.sheetPrintParams), /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, {
1286
+ label: TextEnum.pageSize,
1126
1287
  name: "pageSize",
1127
1288
  rules: [{
1128
1289
  required: true,
@@ -1139,18 +1300,43 @@ function _default(props) {
1139
1300
  };
1140
1301
  })
1141
1302
  })), /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, {
1142
- label: "\u91CD\u53E0\u8FB9\u8DDD"
1303
+ label: TextEnum.overlapMargin,
1304
+ required: true
1305
+ }, /*#__PURE__*/_react["default"].createElement("div", {
1306
+ style: {
1307
+ display: 'flex',
1308
+ alignItems: 'center',
1309
+ gap: 8
1310
+ }
1143
1311
  }, /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, {
1144
1312
  name: "overlapMargin",
1145
- noStyle: true
1313
+ rules: [{
1314
+ required: true,
1315
+ message: TextEnum.pleaseInput
1316
+ }, {
1317
+ type: 'integer',
1318
+ transform: function transform(value) {
1319
+ return value === undefined || value === null || value === '' ? value : Number(value);
1320
+ },
1321
+ message: TextEnum.pleaseInputInteger
1322
+ }],
1323
+ style: {
1324
+ flex: 1,
1325
+ marginBottom: 0
1326
+ }
1146
1327
  }, /*#__PURE__*/_react["default"].createElement(_antd.InputNumber, {
1147
1328
  min: 0,
1148
1329
  precision: 0,
1149
1330
  changeOnBlur: false,
1331
+ step: 1,
1332
+ style: {
1333
+ width: '100%'
1334
+ }
1335
+ })), /*#__PURE__*/_react["default"].createElement("span", {
1150
1336
  style: {
1151
- width: 'calc(100% - 40px)'
1337
+ whiteSpace: 'nowrap'
1152
1338
  }
1153
- })), /*#__PURE__*/_react["default"].createElement("span", null, "\uFF08mm\uFF09")), /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, {
1339
+ }, "\uFF08mm\uFF09"))), /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, {
1154
1340
  wrapperCol: {
1155
1341
  offset: 8,
1156
1342
  span: 16
@@ -1158,14 +1344,14 @@ function _default(props) {
1158
1344
  }, /*#__PURE__*/_react["default"].createElement(_antd.Button, {
1159
1345
  type: "primary",
1160
1346
  htmlType: "submit"
1161
- }, "\u6267\u884C\u5206\u5E45"))), /*#__PURE__*/_react["default"].createElement(_antd.Modal, {
1347
+ }, TextEnum.executeSheetPrint))), /*#__PURE__*/_react["default"].createElement(_antd.Modal, {
1162
1348
  open: previewVisible,
1163
1349
  title: TextEnum.preview,
1164
1350
  onCancel: function onCancel() {
1165
1351
  return setPreviewVisible(false);
1166
1352
  },
1167
1353
  onOk: handleGenerateSheets,
1168
- okText: "\u786E\u5B9A",
1354
+ okText: TextEnum.ok,
1169
1355
  cancelText: TextEnum.cancel,
1170
1356
  width: map.getViewport().clientWidth - 80,
1171
1357
  centered: true,
@@ -1179,18 +1365,23 @@ function _default(props) {
1179
1365
  alignItems: 'center',
1180
1366
  marginBottom: 12
1181
1367
  }
1182
- }, /*#__PURE__*/_react["default"].createElement("span", null, "\u5BBD"), /*#__PURE__*/_react["default"].createElement(_antd.InputNumber, {
1368
+ }, /*#__PURE__*/_react["default"].createElement("span", null, TextEnum.widthText), /*#__PURE__*/_react["default"].createElement(_antd.InputNumber, {
1183
1369
  min: 0.001,
1184
1370
  precision: 3,
1185
1371
  value: totalWidthMm,
1186
1372
  onChange: handleWidthChange
1187
- }), /*#__PURE__*/_react["default"].createElement("span", null, "mm"), /*#__PURE__*/_react["default"].createElement("span", {
1373
+ }), /*#__PURE__*/_react["default"].createElement("span", null, "mm"), /*#__PURE__*/_react["default"].createElement("img", {
1374
+ src: _lock["default"],
1375
+ alt: TextEnum.fixedRatioText,
1188
1376
  style: {
1189
- color: '#999'
1377
+ width: 16,
1378
+ height: 16,
1379
+ objectFit: 'contain'
1190
1380
  }
1191
- }, "\u56FA\u5B9A\u6BD4\u4F8B"), /*#__PURE__*/_react["default"].createElement("span", null, "\u9AD8"), /*#__PURE__*/_react["default"].createElement(_antd.InputNumber, {
1192
- min: 0.001,
1193
- precision: 3,
1381
+ }), /*#__PURE__*/_react["default"].createElement("span", null, TextEnum.heightText), /*#__PURE__*/_react["default"].createElement(_antd.InputNumber, {
1382
+ precision: 0,
1383
+ step: 1,
1384
+ min: 0,
1194
1385
  value: totalHeightMm,
1195
1386
  onChange: handleHeightChange
1196
1387
  }), /*#__PURE__*/_react["default"].createElement("span", null, "mm"), splitPlan && /*#__PURE__*/_react["default"].createElement("span", {
@@ -1198,7 +1389,7 @@ function _default(props) {
1198
1389
  marginLeft: 'auto',
1199
1390
  color: '#666'
1200
1391
  }
1201
- }, splitPlan.cols, " \u5217 x ", splitPlan.rows, " \u884C\uFF0C\u5171 ", splitPlan.totalSheets, " \u5E45")), /*#__PURE__*/_react["default"].createElement("div", {
1392
+ }, splitPlan.cols, " ", TextEnum.colText, " x ", splitPlan.rows, " ", TextEnum.rowText, "\uFF0C", TextEnum.totalText, " ", splitPlan.totalSheets, " ", TextEnum.sheetText)), /*#__PURE__*/_react["default"].createElement("div", {
1202
1393
  style: {
1203
1394
  position: 'relative',
1204
1395
  height: PREVIEW_HEIGHT,
@@ -1209,14 +1400,25 @@ function _default(props) {
1209
1400
  }, !previewReady && /*#__PURE__*/_react["default"].createElement("div", {
1210
1401
  style: {
1211
1402
  position: 'absolute',
1212
- inset: 0,
1403
+ left: 0,
1404
+ top: 0,
1405
+ right: 0,
1406
+ bottom: 0,
1213
1407
  display: 'flex',
1408
+ flexDirection: 'column',
1214
1409
  alignItems: 'center',
1215
1410
  justifyContent: 'center',
1216
- zIndex: 2,
1217
- background: 'rgba(255,255,255,0.72)'
1411
+ zIndex: 10,
1412
+ background: 'rgba(255,255,255,0.82)',
1413
+ gap: 12,
1414
+ pointerEvents: 'none'
1415
+ }
1416
+ }, /*#__PURE__*/_react["default"].createElement(_antd.Spin, null), /*#__PURE__*/_react["default"].createElement("div", {
1417
+ style: {
1418
+ color: '#666',
1419
+ fontSize: 13
1218
1420
  }
1219
- }, /*#__PURE__*/_react["default"].createElement(_antd.Spin, null)), metrics && previewFramePixels && splitPlan && selectedMapPixels && /*#__PURE__*/_react["default"].createElement("div", {
1421
+ }, previewLoadingText)), metrics && previewFramePixels && splitPlan && selectedMapPixels && /*#__PURE__*/_react["default"].createElement("div", {
1220
1422
  style: {
1221
1423
  position: 'relative',
1222
1424
  width: previewFramePixels.width,
@@ -1237,7 +1439,11 @@ function _default(props) {
1237
1439
  }, /*#__PURE__*/_react["default"].createElement(_olMap.Map, {
1238
1440
  width: "".concat(Math.max(1, Math.round(selectedMapPixels.width)), "px"),
1239
1441
  height: "".concat(Math.max(1, Math.round(selectedMapPixels.height)), "px"),
1240
- tk: "1adbb6e47668cb33757cd799548bf1f4",
1442
+ projection: inheritedMapProps.projection,
1443
+ mapStyle: inheritedMapProps.mapStyle,
1444
+ baseMapStyle: inheritedMapProps.baseMapStyle,
1445
+ dark: inheritedMapProps.dark,
1446
+ tk: inheritedMapProps.tk,
1241
1447
  hidePopupTable: true,
1242
1448
  createdMap: handlePreviewMapCreated
1243
1449
  })), /*#__PURE__*/_react["default"].createElement("div", {
@@ -1320,12 +1526,12 @@ function _default(props) {
1320
1526
  }, sheet.index));
1321
1527
  })))), /*#__PURE__*/_react["default"].createElement(_antd.Modal, {
1322
1528
  open: sheetVisible,
1323
- title: "\u56FE\u5E45\u7ED3\u679C",
1529
+ title: TextEnum.sheetResultText,
1324
1530
  onCancel: function onCancel() {
1325
1531
  return setSheetVisible(false);
1326
1532
  },
1327
1533
  onOk: handleExportPdf,
1328
- okText: "\u6253\u5370",
1534
+ okText: TextEnum.printText,
1329
1535
  cancelText: TextEnum.cancel,
1330
1536
  width: map.getViewport().clientWidth - 80,
1331
1537
  centered: true,
@@ -1342,7 +1548,7 @@ function _default(props) {
1342
1548
  return item.id;
1343
1549
  }) : []);
1344
1550
  }
1345
- }, "\u5168\u9009")), /*#__PURE__*/_react["default"].createElement("div", {
1551
+ }, TextEnum.selectAllText)), /*#__PURE__*/_react["default"].createElement("div", {
1346
1552
  style: {
1347
1553
  display: 'grid',
1348
1554
  gridTemplateColumns: 'repeat(auto-fill, minmax(240px, 1fr))',
@@ -1376,7 +1582,7 @@ function _default(props) {
1376
1582
  });
1377
1583
  });
1378
1584
  }
1379
- }), /*#__PURE__*/_react["default"].createElement("span", null, "\u7B2C ", item.index, " \u5E45 (", item.row, "-", item.col, ")")), /*#__PURE__*/_react["default"].createElement("img", {
1585
+ }), /*#__PURE__*/_react["default"].createElement("span", null, TextEnum.sheetIndexPrefix, " ", item.index, " ", TextEnum.sheetText, " (", item.row, "-", item.col, ")")), /*#__PURE__*/_react["default"].createElement("img", {
1380
1586
  src: item.url,
1381
1587
  alt: "sheet-".concat(item.index),
1382
1588
  style: {
@@ -1403,7 +1609,11 @@ function _default(props) {
1403
1609
  }, /*#__PURE__*/_react["default"].createElement(_olMap.Map, {
1404
1610
  width: "".concat(exportSize.width, "px"),
1405
1611
  height: "".concat(exportSize.height, "px"),
1406
- tk: "1adbb6e47668cb33757cd799548bf1f4",
1612
+ projection: inheritedMapProps.projection,
1613
+ mapStyle: inheritedMapProps.mapStyle,
1614
+ baseMapStyle: inheritedMapProps.baseMapStyle,
1615
+ dark: inheritedMapProps.dark,
1616
+ tk: inheritedMapProps.tk,
1407
1617
  hidePopupTable: true,
1408
1618
  createdMap: handleExportMapCreated
1409
1619
  }))));