fl-web-component 2.0.10 → 2.0.11

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/README.md CHANGED
@@ -46,6 +46,8 @@ Vue.use(FlWebComponent)
46
46
  欢迎贡献代码和问题反馈。
47
47
 
48
48
  ## 更新日志
49
+ - 2.0.10 2026年5月27日
50
+ - 处理校审bug
49
51
  - 2.0.9 2026年5月26日
50
52
  - 处理测量容器偏移计算问题
51
53
  - 2.0.8 2026年5月25日
@@ -966,6 +966,17 @@ module.exports = function (delay, atBegin, callback) {
966
966
  return callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);
967
967
  };
968
968
 
969
+ /***/ }),
970
+
971
+ /***/ "0eb9":
972
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
973
+
974
+ "use strict";
975
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_bfae141c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("3139");
976
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_bfae141c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_bfae141c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
977
+ /* unused harmony reexport * */
978
+
979
+
969
980
  /***/ }),
970
981
 
971
982
  /***/ "0ff5":
@@ -4106,6 +4117,13 @@ __webpack_require__("e198")('asyncIterator');
4106
4117
 
4107
4118
  /***/ }),
4108
4119
 
4120
+ /***/ "3139":
4121
+ /***/ (function(module, exports, __webpack_require__) {
4122
+
4123
+ // extracted by mini-css-extract-plugin
4124
+
4125
+ /***/ }),
4126
+
4109
4127
  /***/ "31b9":
4110
4128
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4111
4129
 
@@ -56489,7 +56507,7 @@ module.exports = document && document.documentElement;
56489
56507
  /***/ "9224":
56490
56508
  /***/ (function(module) {
56491
56509
 
56492
- module.exports = JSON.parse("{\"name\":\"fl-web-component\",\"version\":\"2.0.10\",\"scripts\":{\"postinstall\":\"patch-package\",\"tip1\":\"仅调试本组件不涉及业务组件,请执行dev\",\"dev\":\"vue-cli-service serve\",\"lint\":\"eslint \\\"{src,packages}/**/*.{vue,js}\\\" --fix\",\"prettier\":\"prettier --write \\\"packages/**/*.{js,css,less,scss,vue,html}\\\"\",\"=\":\"=============================================================\",\"tip2\":\"同时调试本组件与业务组件,请执行watch\",\"watch\":\"vue-cli-service build --watch --mode production --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"build\":\"npm run lint && vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"build:test\":\"vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"publish:base\":\"npm run build && npm publish --registry https://registry.npmjs.org/\",\"publish:beta:base\":\"npm run build && npm publish --tag beta --registry https://registry.npmjs.org/\",\"==\":\"=============================================================\",\"tip3\":\"发版注意: 【测试版执行publish:beta】【修改bug执行publish:fix】【新增功能执行publish:feat】【新特性执行publish:perf】\",\"publish:beta\":\"npm version prerelease --preid=beta && npm run publish:beta:base\",\"publish:fix\":\"npm version patch && npm run publish:base\",\"publish:feat\":\"npm version minor && npm run publish:base\",\"publish:perf\":\"npm version major && npm run publish:base\"},\"files\":[\"dist\",\"packages\",\"src\"],\"main\":\"dist/fl-web-component.common.js\",\"dependencies\":{\"camera-controls\":\"2.9.0\",\"core-js\":\"^3.42.0\",\"dxf-parser\":\"^1.1.2\",\"element-ui\":\"2.15.14\",\"fflate\":\"^0.8.2\",\"html2canvas\":\"^1.4.1\",\"jspdf\":\"^3.0.1\",\"konva\":\"^9.3.12\",\"lodash\":\"^4.17.21\",\"meshline\":\"^3.3.1\",\"regenerator-runtime\":\"^0.14.1\",\"svg-pan-zoom\":\"^3.6.2\",\"three\":\"^0.176.0\",\"three.path\":\"^1.0.1\",\"vue\":\"^2.6.11\"},\"devDependencies\":{\"@babel/core\":\"^7.12.16\",\"@babel/plugin-proposal-nullish-coalescing-operator\":\"^7.18.6\",\"@babel/plugin-proposal-optional-chaining\":\"^7.21.0\",\"@babel/preset-env\":\"^7.0.0\",\"@babel/runtime-corejs3\":\"^7.27.1\",\"@vue/cli-plugin-babel\":\"~4.4.0\",\"@vue/cli-plugin-eslint\":\"~4.4.0\",\"@vue/cli-service\":\"~4.4.0\",\"babel-eslint\":\"^10.1.0\",\"babel-loader\":\"^8.0.0\",\"copy-webpack-plugin\":\"^4.0.1\",\"eslint\":\"^6.7.2\",\"eslint-config-prettier\":\"^6.15.0\",\"eslint-plugin-prettier\":\"^3.4.1\",\"eslint-plugin-vue\":\"^6.2.2\",\"patch-package\":\"^6.4.7\",\"prettier\":\"^2.8.8\",\"sass\":\"1.32.13\",\"sass-loader\":\"10.1.1\",\"vue-template-compiler\":\"^2.6.11\",\"worker-loader\":\"^3.0.8\"},\"browserslist\":[\"> 1%\",\"last 2 versions\"]}");
56510
+ module.exports = JSON.parse("{\"name\":\"fl-web-component\",\"version\":\"2.0.11\",\"scripts\":{\"postinstall\":\"patch-package\",\"tip1\":\"仅调试本组件不涉及业务组件,请执行dev\",\"dev\":\"vue-cli-service serve\",\"lint\":\"eslint \\\"{src,packages}/**/*.{vue,js}\\\" --fix\",\"prettier\":\"prettier --write \\\"packages/**/*.{js,css,less,scss,vue,html}\\\"\",\"=\":\"=============================================================\",\"tip2\":\"同时调试本组件与业务组件,请执行watch\",\"watch\":\"vue-cli-service build --watch --mode production --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"build\":\"npm run lint && vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"build:test\":\"vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"publish:base\":\"npm run build && npm publish --registry https://registry.npmjs.org/\",\"publish:beta:base\":\"npm run build && npm publish --tag beta --registry https://registry.npmjs.org/\",\"==\":\"=============================================================\",\"tip3\":\"发版注意: 【测试版执行publish:beta】【修改bug执行publish:fix】【新增功能执行publish:feat】【新特性执行publish:perf】\",\"publish:beta\":\"npm version prerelease --preid=beta && npm run publish:beta:base\",\"publish:fix\":\"npm version patch && npm run publish:base\",\"publish:feat\":\"npm version minor && npm run publish:base\",\"publish:perf\":\"npm version major && npm run publish:base\"},\"files\":[\"dist\",\"packages\",\"src\"],\"main\":\"dist/fl-web-component.common.js\",\"dependencies\":{\"camera-controls\":\"2.9.0\",\"core-js\":\"^3.42.0\",\"dxf-parser\":\"^1.1.2\",\"element-ui\":\"2.15.14\",\"fflate\":\"^0.8.2\",\"html2canvas\":\"^1.4.1\",\"jspdf\":\"^3.0.1\",\"konva\":\"^9.3.12\",\"lodash\":\"^4.17.21\",\"meshline\":\"^3.3.1\",\"regenerator-runtime\":\"^0.14.1\",\"svg-pan-zoom\":\"^3.6.2\",\"three\":\"^0.176.0\",\"three.path\":\"^1.0.1\",\"vue\":\"^2.6.11\"},\"devDependencies\":{\"@babel/core\":\"^7.12.16\",\"@babel/plugin-proposal-nullish-coalescing-operator\":\"^7.18.6\",\"@babel/plugin-proposal-optional-chaining\":\"^7.21.0\",\"@babel/preset-env\":\"^7.0.0\",\"@babel/runtime-corejs3\":\"^7.27.1\",\"@vue/cli-plugin-babel\":\"~4.4.0\",\"@vue/cli-plugin-eslint\":\"~4.4.0\",\"@vue/cli-service\":\"~4.4.0\",\"babel-eslint\":\"^10.1.0\",\"babel-loader\":\"^8.0.0\",\"copy-webpack-plugin\":\"^4.0.1\",\"eslint\":\"^6.7.2\",\"eslint-config-prettier\":\"^6.15.0\",\"eslint-plugin-prettier\":\"^3.4.1\",\"eslint-plugin-vue\":\"^6.2.2\",\"patch-package\":\"^6.4.7\",\"prettier\":\"^2.8.8\",\"sass\":\"1.32.13\",\"sass-loader\":\"10.1.1\",\"vue-template-compiler\":\"^2.6.11\",\"worker-loader\":\"^3.0.8\"},\"browserslist\":[\"> 1%\",\"last 2 versions\"]}");
56493
56511
 
56494
56512
  /***/ }),
56495
56513
 
@@ -70513,6 +70531,13 @@ module.exports = normalizeWheel;
70513
70531
 
70514
70532
  /***/ }),
70515
70533
 
70534
+ /***/ "d501":
70535
+ /***/ (function(module, exports, __webpack_require__) {
70536
+
70537
+ // extracted by mini-css-extract-plugin
70538
+
70539
+ /***/ }),
70540
+
70516
70541
  /***/ "d777":
70517
70542
  /***/ (function(module, exports, __webpack_require__) {
70518
70543
 
@@ -72336,13 +72361,6 @@ module.exports = function (name) {
72336
72361
 
72337
72362
  /***/ }),
72338
72363
 
72339
- /***/ "e2af":
72340
- /***/ (function(module, exports, __webpack_require__) {
72341
-
72342
- // extracted by mini-css-extract-plugin
72343
-
72344
- /***/ }),
72345
-
72346
72364
  /***/ "e34a":
72347
72365
  /***/ (function(module, exports, __webpack_require__) {
72348
72366
 
@@ -74001,6 +74019,17 @@ module.exports = /******/function (modules) {
74001
74019
  /******/
74002
74020
  });
74003
74021
 
74022
+ /***/ }),
74023
+
74024
+ /***/ "e884":
74025
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
74026
+
74027
+ "use strict";
74028
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_bfae141c_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("d501");
74029
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_bfae141c_prod_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_bfae141c_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__);
74030
+ /* unused harmony reexport * */
74031
+
74032
+
74004
74033
  /***/ }),
74005
74034
 
74006
74035
  /***/ "e974":
@@ -76063,13 +76092,6 @@ if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
76063
76092
 
76064
76093
  /***/ }),
76065
76094
 
76066
- /***/ "efb3":
76067
- /***/ (function(module, exports, __webpack_require__) {
76068
-
76069
- // extracted by mini-css-extract-plugin
76070
-
76071
- /***/ }),
76072
-
76073
76095
  /***/ "f0b4":
76074
76096
  /***/ (function(module, exports, __webpack_require__) {
76075
76097
 
@@ -76336,17 +76358,6 @@ exports.default = {
76336
76358
  }
76337
76359
  };
76338
76360
 
76339
- /***/ }),
76340
-
76341
- /***/ "f2c8":
76342
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
76343
-
76344
- "use strict";
76345
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_482a990d_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("efb3");
76346
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_482a990d_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_482a990d_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
76347
- /* unused harmony reexport * */
76348
-
76349
-
76350
76361
  /***/ }),
76351
76362
 
76352
76363
  /***/ "f35c":
@@ -77279,17 +77290,6 @@ module.exports = /******/function (modules) {
77279
77290
  /******/
77280
77291
  });
77281
77292
 
77282
- /***/ }),
77283
-
77284
- /***/ "f478":
77285
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
77286
-
77287
- "use strict";
77288
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_482a990d_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e2af");
77289
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_482a990d_prod_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_482a990d_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__);
77290
- /* unused harmony reexport * */
77291
-
77292
-
77293
77293
  /***/ }),
77294
77294
 
77295
77295
  /***/ "f494":
@@ -78641,8 +78641,8 @@ if (typeof window !== 'undefined') {
78641
78641
  // Indicate to webpack that this file can be concatenated
78642
78642
  /* harmony default export */ var setPublicPath = (null);
78643
78643
 
78644
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"25a2ae8c-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/index.vue?vue&type=template&id=482a990d&scoped=true
78645
- var com_graphicsvue_type_template_id_482a990d_scoped_true_render = function render() {
78644
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"5f0ec2c6-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/index.vue?vue&type=template&id=bfae141c&scoped=true
78645
+ var com_graphicsvue_type_template_id_bfae141c_scoped_true_render = function render() {
78646
78646
  var _vm = this,
78647
78647
  _c = _vm._self._c;
78648
78648
  return _c('div', {
@@ -78654,7 +78654,7 @@ var com_graphicsvue_type_template_id_482a990d_scoped_true_render = function rend
78654
78654
  };
78655
78655
  var staticRenderFns = [];
78656
78656
 
78657
- // CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=template&id=482a990d&scoped=true
78657
+ // CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=template&id=bfae141c&scoped=true
78658
78658
 
78659
78659
  // CONCATENATED MODULE: ./node_modules/camera-controls/dist/camera-controls.module.js
78660
78660
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
@@ -125053,19 +125053,44 @@ var isDebug = false || false === true;
125053
125053
  },
125054
125054
  getFirstPersonMoveSpeed: function getFirstPersonMoveSpeed(customMoveSpeed) {
125055
125055
  var defaultMoveSpeed = 800;
125056
- var minMoveSpeed = 300;
125057
- var maxMoveSpeed = 2500;
125058
125056
  var optionMoveSpeed = Number.isFinite(customMoveSpeed) && customMoveSpeed > 0 ? customMoveSpeed : defaultMoveSpeed;
125059
- var nextMoveSpeed = defaultMoveSpeed;
125057
+ var minMoveSpeed = Math.max(450, optionMoveSpeed * 0.1);
125058
+ var maxMoveSpeed = Math.max(16000, optionMoveSpeed * 2);
125059
+ var nextMoveSpeed = optionMoveSpeed;
125060
125060
  if (this.sceneBoundingBox && this.sceneBoundingBox.isBox3 && !this.sceneBoundingBox.isEmpty()) {
125061
125061
  var size = this.sceneBoundingBox.getSize(new this.THREE.Vector3());
125062
125062
  var horizontalSpan = Math.max(size.x, size.z);
125063
125063
  if (Number.isFinite(horizontalSpan) && horizontalSpan > 0) {
125064
- // 第一视角主要在水平面移动,优先使用场景水平范围估算移动速度
125065
- nextMoveSpeed = horizontalSpan * 0.8;
125064
+ var moveScale = Math.sqrt(horizontalSpan / 2500);
125065
+ // 使用平方根缩放,避免小场景过快,同时让大场景提升更明显
125066
+ nextMoveSpeed = optionMoveSpeed * Math.min(Math.max(moveScale, 0.1), 2);
125066
125067
  }
125067
125068
  }
125068
- return Math.min(Math.max(nextMoveSpeed, minMoveSpeed), Math.min(maxMoveSpeed, optionMoveSpeed));
125069
+ return Math.min(Math.max(nextMoveSpeed, minMoveSpeed), maxMoveSpeed);
125070
+ },
125071
+ getFirstPersonJumpConfig: function getFirstPersonJumpConfig(customJumpSpeed) {
125072
+ var defaultJumpSpeed = 350;
125073
+ var optionJumpSpeed = Number.isFinite(customJumpSpeed) && customJumpSpeed > 0 ? customJumpSpeed : defaultJumpSpeed;
125074
+ var minJumpSpeed = Math.max(220, optionJumpSpeed * 0.45);
125075
+ var maxJumpSpeed = Math.max(1800, optionJumpSpeed * 3.6);
125076
+ var defaultGravity = 980;
125077
+ var nextJumpSpeed = optionJumpSpeed;
125078
+ if (this.sceneBoundingBox && this.sceneBoundingBox.isBox3 && !this.sceneBoundingBox.isEmpty()) {
125079
+ var size = this.sceneBoundingBox.getSize(new this.THREE.Vector3());
125080
+ var verticalSpan = size.y;
125081
+ var horizontalSpan = Math.max(size.x, size.z);
125082
+ var dominantSpan = Math.max(verticalSpan, horizontalSpan * 0.5);
125083
+ if (Number.isFinite(dominantSpan) && dominantSpan > 0) {
125084
+ var jumpScale = Math.sqrt(dominantSpan / 1000);
125085
+ // 跳跃也按场景尺寸平滑缩放,避免小场景过高、大场景过低
125086
+ nextJumpSpeed = optionJumpSpeed * Math.min(Math.max(jumpScale, 0.45), 3.6);
125087
+ }
125088
+ }
125089
+ nextJumpSpeed = Math.min(Math.max(nextJumpSpeed, minJumpSpeed), maxJumpSpeed);
125090
+ return {
125091
+ jumpSpeed: nextJumpSpeed,
125092
+ gravity: Math.max(nextJumpSpeed * 2.2, defaultGravity)
125093
+ };
125069
125094
  },
125070
125095
  // 开启第一视角
125071
125096
  startFirstPer: function startFirstPer(options) {
@@ -125075,7 +125100,9 @@ var isDebug = false || false === true;
125075
125100
  _ref5$jumpSpeed = _ref5.jumpSpeed,
125076
125101
  jumpSpeed = _ref5$jumpSpeed === void 0 ? 200 : _ref5$jumpSpeed;
125077
125102
  this.removeSpeed = this.getFirstPersonMoveSpeed(moveSpeed);
125078
- this.upSpeed = jumpSpeed;
125103
+ var jumpConfig = this.getFirstPersonJumpConfig(jumpSpeed);
125104
+ this.upSpeed = jumpConfig.jumpSpeed;
125105
+ this.firstPersonGravity = jumpConfig.gravity;
125079
125106
  this.clock = new this.THREE.Clock();
125080
125107
  this.downRaycaster = new this.THREE.Raycaster(new this.THREE.Vector3(), new this.THREE.Vector3(0, -1, 0), 0, 10);
125081
125108
  this.velocity = new this.THREE.Vector3(); //移动速度变量
@@ -125106,7 +125133,9 @@ var isDebug = false || false === true;
125106
125133
  // 锁定
125107
125134
  _this46.pointControls.addEventListener('lock', function () {
125108
125135
  _this46.detachTransformControls();
125109
- _this46.cameraControls.enabled = false;
125136
+ if (_this46.cameraControls) {
125137
+ _this46.cameraControls.enabled = false;
125138
+ }
125110
125139
  window.addEventListener('keydown', _this46.onKeyDown, false);
125111
125140
  window.addEventListener('keyup', _this46.onKeyUp, false);
125112
125141
  _this46.unbindScenePointerEvents();
@@ -125117,10 +125146,13 @@ var isDebug = false || false === true;
125117
125146
  // 解锁
125118
125147
  _this46.pointControls.addEventListener('unlock', function () {
125119
125148
  _this46.firstPerSign = false;
125120
- _this46.cameraControls.enabled = true;
125121
- console.log(_this46.cameraControls);
125149
+ if (_this46.cameraControls) {
125150
+ _this46.cameraControls.enabled = true;
125151
+ }
125122
125152
  // 返回初始视角
125123
- _this46.home();
125153
+ if (_this46.cameraControls && _this46.camera && _this46.sceneBoundingBox) {
125154
+ _this46.home();
125155
+ }
125124
125156
  try {
125125
125157
  if (_this46._onFirstPersonChange && _this46.pointControls) {
125126
125158
  _this46.pointControls.removeEventListener('change', _this46._onFirstPersonChange);
@@ -125132,8 +125164,12 @@ var isDebug = false || false === true;
125132
125164
  setTimeout(function () {
125133
125165
  window.removeEventListener('keydown', _this46.onKeyDown);
125134
125166
  window.removeEventListener('keyup', _this46.onKeyUp);
125135
- _this46.bindScenePointerEvents();
125136
- _this46.ensureTransformSelectionValid();
125167
+ if (_this46.renderer && _this46.renderer.domElement) {
125168
+ _this46.bindScenePointerEvents();
125169
+ }
125170
+ if (_this46.scene) {
125171
+ _this46.ensureTransformSelectionValid();
125172
+ }
125137
125173
  // this.timeRender()
125138
125174
  }, 0);
125139
125175
  if (typeof _this46._cameraChangeObserver === 'function') {
@@ -125150,16 +125186,17 @@ var isDebug = false || false === true;
125150
125186
  var control = this.pointControls.object;
125151
125187
  // 获取刷新时间
125152
125188
  var delta = this.clock.getDelta();
125189
+ var forwardMoveScale = 0.35;
125153
125190
  // velocity每次的速度,为了保证有过渡
125154
125191
  this.velocity.x -= this.velocity.x * 10.0 * delta;
125155
125192
  this.velocity.z -= this.velocity.z * 10.0 * delta;
125156
- this.velocity.y -= 9.8 * 100.0 * delta; // 默认下降的速度
125193
+ this.velocity.y -= (this.firstPersonGravity || 9.8 * 100.0) * delta; // 默认下降的速度
125157
125194
  // 获取当前按键的方向并获取朝哪个方向移动
125158
125195
  this.direction.z = Number(this.moveForward) - Number(this.moveBackward);
125159
125196
  this.direction.x = Number(this.moveRight) - Number(this.moveLeft);
125160
125197
  // 将法向量的值归一化
125161
125198
  this.direction.normalize();
125162
- if (this.moveForward || this.moveBackward) this.velocity.z -= this.direction.z * this.removeSpeed * delta;
125199
+ if (this.moveForward || this.moveBackward) this.velocity.z -= this.direction.z * this.removeSpeed * forwardMoveScale * delta;
125163
125200
  if (this.moveLeft || this.moveRight) this.velocity.x -= this.direction.x * this.removeSpeed * delta;
125164
125201
  // }
125165
125202
  // 复制相机的位置
@@ -126377,11 +126414,11 @@ var isDebug = false || false === true;
126377
126414
  });
126378
126415
  // CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=script&lang=js
126379
126416
  /* harmony default export */ var components_com_graphicsvue_type_script_lang_js = (com_graphicsvue_type_script_lang_js);
126380
- // EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=482a990d&prod&lang=scss&scoped=true
126381
- var com_graphicsvue_type_style_index_0_id_482a990d_prod_lang_scss_scoped_true = __webpack_require__("f2c8");
126417
+ // EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=bfae141c&prod&lang=scss&scoped=true
126418
+ var com_graphicsvue_type_style_index_0_id_bfae141c_prod_lang_scss_scoped_true = __webpack_require__("0eb9");
126382
126419
 
126383
- // EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=1&id=482a990d&prod&lang=css
126384
- var com_graphicsvue_type_style_index_1_id_482a990d_prod_lang_css = __webpack_require__("f478");
126420
+ // EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=1&id=bfae141c&prod&lang=css
126421
+ var com_graphicsvue_type_style_index_1_id_bfae141c_prod_lang_css = __webpack_require__("e884");
126385
126422
 
126386
126423
  // CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
126387
126424
  /* globals __VUE_SSR_CONTEXT__ */
@@ -126493,17 +126530,17 @@ function normalizeComponent(
126493
126530
 
126494
126531
  var component = normalizeComponent(
126495
126532
  components_com_graphicsvue_type_script_lang_js,
126496
- com_graphicsvue_type_template_id_482a990d_scoped_true_render,
126533
+ com_graphicsvue_type_template_id_bfae141c_scoped_true_render,
126497
126534
  staticRenderFns,
126498
126535
  false,
126499
126536
  null,
126500
- "482a990d",
126537
+ "bfae141c",
126501
126538
  null
126502
126539
 
126503
126540
  )
126504
126541
 
126505
126542
  /* harmony default export */ var com_graphics = (component.exports);
126506
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"25a2ae8c-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-flcanvas/index.vue?vue&type=template&id=21bcf2d9&scoped=true
126543
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"5f0ec2c6-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-flcanvas/index.vue?vue&type=template&id=21bcf2d9&scoped=true
126507
126544
  var com_flcanvasvue_type_template_id_21bcf2d9_scoped_true_render = function render() {
126508
126545
  var _vm = this,
126509
126546
  _c = _vm._self._c;
@@ -130423,7 +130460,7 @@ var com_flcanvas_component = normalizeComponent(
130423
130460
  )
130424
130461
 
130425
130462
  /* harmony default export */ var com_flcanvas = (com_flcanvas_component.exports);
130426
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"25a2ae8c-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/per-control.vue?vue&type=template&id=f547d5c6&scoped=true
130463
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"5f0ec2c6-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/per-control.vue?vue&type=template&id=f547d5c6&scoped=true
130427
130464
  var per_controlvue_type_template_id_f547d5c6_scoped_true_render = function render() {
130428
130465
  var _vm = this,
130429
130466
  _c = _vm._self._c;
@@ -130531,7 +130568,7 @@ var per_control_component = normalizeComponent(
130531
130568
  )
130532
130569
 
130533
130570
  /* harmony default export */ var per_control = (per_control_component.exports);
130534
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"25a2ae8c-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/pid.vue?vue&type=template&id=2572c0e2&scoped=true
130571
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"5f0ec2c6-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/pid.vue?vue&type=template&id=2572c0e2&scoped=true
130535
130572
  var pidvue_type_template_id_2572c0e2_scoped_true_render = function render() {
130536
130573
  var _vm = this,
130537
130574
  _c = _vm._self._c;
@@ -130578,7 +130615,7 @@ var browserify_default = /*#__PURE__*/__webpack_require__.n(browserify);
130578
130615
  var html2canvas = __webpack_require__("c0e9");
130579
130616
  var html2canvas_default = /*#__PURE__*/__webpack_require__.n(html2canvas);
130580
130617
 
130581
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"25a2ae8c-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/component/ann-tool.vue?vue&type=template&id=4b17bce0&scoped=true
130618
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"5f0ec2c6-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/component/ann-tool.vue?vue&type=template&id=4b17bce0&scoped=true
130582
130619
  var ann_toolvue_type_template_id_4b17bce0_scoped_true_render = function render() {
130583
130620
  var _vm = this,
130584
130621
  _c = _vm._self._c;