fl-web-component 2.0.0 → 2.0.2

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,11 @@ Vue.use(FlWebComponent)
46
46
  欢迎贡献代码和问题反馈。
47
47
 
48
48
  ## 更新日志
49
+ - 2.0.1 2026-04-22
50
+ 1. 首次加载看不见模型问题
51
+ 2. 测量点位不准
52
+ - 2.0.0 2026-04-20
53
+ 升级渲染引擎新架构2.0,大幅提升场景模型加载性能
49
54
  - 1.4.8 2026-02-28
50
55
  pid 垂直居中调整
51
56
  - 1.4.7 2026-02-02
@@ -2304,17 +2304,6 @@ exports.Kaleidoscope = Kaleidoscope;
2304
2304
  Factory_1.Factory.addGetterSetter(Node_1.Node, 'kaleidoscopePower', 2, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);
2305
2305
  Factory_1.Factory.addGetterSetter(Node_1.Node, 'kaleidoscopeAngle', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);
2306
2306
 
2307
- /***/ }),
2308
-
2309
- /***/ "1ec4":
2310
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
2311
-
2312
- "use strict";
2313
- /* 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_5a054a9b_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("c956");
2314
- /* 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_5a054a9b_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_5a054a9b_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__);
2315
- /* unused harmony reexport * */
2316
-
2317
-
2318
2307
  /***/ }),
2319
2308
 
2320
2309
  /***/ "1f21":
@@ -13551,6 +13540,13 @@ module.exports = {
13551
13540
 
13552
13541
  /***/ }),
13553
13542
 
13543
+ /***/ "3ff7":
13544
+ /***/ (function(module, exports, __webpack_require__) {
13545
+
13546
+ // extracted by mini-css-extract-plugin
13547
+
13548
+ /***/ }),
13549
+
13554
13550
  /***/ "4010":
13555
13551
  /***/ (function(module, exports, __webpack_require__) {
13556
13552
 
@@ -30009,6 +30005,13 @@ root._=_;}}).call(undefined);
30009
30005
 
30010
30006
  /***/ }),
30011
30007
 
30008
+ /***/ "589f":
30009
+ /***/ (function(module, exports, __webpack_require__) {
30010
+
30011
+ // extracted by mini-css-extract-plugin
30012
+
30013
+ /***/ }),
30014
+
30012
30015
  /***/ "5924":
30013
30016
  /***/ (function(module, exports, __webpack_require__) {
30014
30017
 
@@ -30356,13 +30359,6 @@ module.exports = function (key) {
30356
30359
 
30357
30360
  /***/ }),
30358
30361
 
30359
- /***/ "5c04":
30360
- /***/ (function(module, exports, __webpack_require__) {
30361
-
30362
- // extracted by mini-css-extract-plugin
30363
-
30364
- /***/ }),
30365
-
30366
30362
  /***/ "5c7d":
30367
30363
  /***/ (function(module, exports, __webpack_require__) {
30368
30364
 
@@ -56470,7 +56466,7 @@ module.exports = document && document.documentElement;
56470
56466
  /***/ "9224":
56471
56467
  /***/ (function(module) {
56472
56468
 
56473
- module.exports = JSON.parse("{\"name\":\"fl-web-component\",\"version\":\"2.0.0\",\"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\":{\"3d-tiles-renderer\":\"^0.4.14\",\"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\"]}");
56469
+ module.exports = JSON.parse("{\"name\":\"fl-web-component\",\"version\":\"2.0.2\",\"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\":{\"3d-tiles-renderer\":\"^0.4.14\",\"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\"]}");
56474
56470
 
56475
56471
  /***/ }),
56476
56472
 
@@ -59217,6 +59213,17 @@ var ExecutionEnvironment = {
59217
59213
  };
59218
59214
  module.exports = ExecutionEnvironment;
59219
59215
 
59216
+ /***/ }),
59217
+
59218
+ /***/ "a4b9":
59219
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
59220
+
59221
+ "use strict";
59222
+ /* 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_4b02d5a5_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("589f");
59223
+ /* 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_4b02d5a5_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_4b02d5a5_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
59224
+ /* unused harmony reexport * */
59225
+
59226
+
59220
59227
  /***/ }),
59221
59228
 
59222
59229
  /***/ "a742":
@@ -59659,6 +59666,17 @@ var Enhance = function Enhance(imageData) {
59659
59666
  exports.Enhance = Enhance;
59660
59667
  Factory_1.Factory.addGetterSetter(Node_1.Node, 'enhance', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);
59661
59668
 
59669
+ /***/ }),
59670
+
59671
+ /***/ "bd66":
59672
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
59673
+
59674
+ "use strict";
59675
+ /* 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_4b02d5a5_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("3ff7");
59676
+ /* 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_4b02d5a5_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_4b02d5a5_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__);
59677
+ /* unused harmony reexport * */
59678
+
59679
+
59662
59680
  /***/ }),
59663
59681
 
59664
59682
  /***/ "bdee":
@@ -69105,13 +69123,6 @@ module.exports = function (it) {
69105
69123
 
69106
69124
  /***/ }),
69107
69125
 
69108
- /***/ "c956":
69109
- /***/ (function(module, exports, __webpack_require__) {
69110
-
69111
- // extracted by mini-css-extract-plugin
69112
-
69113
- /***/ }),
69114
-
69115
69126
  /***/ "cbf5":
69116
69127
  /***/ (function(module) {
69117
69128
 
@@ -72177,17 +72188,6 @@ if (Global_1.Konva.isBrowser) {
72177
72188
 
72178
72189
 
72179
72190
 
72180
- /***/ }),
72181
-
72182
- /***/ "dff9":
72183
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
72184
-
72185
- "use strict";
72186
- /* 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_5a054a9b_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5c04");
72187
- /* 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_5a054a9b_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_5a054a9b_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
72188
- /* unused harmony reexport * */
72189
-
72190
-
72191
72191
  /***/ }),
72192
72192
 
72193
72193
  /***/ "e0ed":
@@ -78611,8 +78611,8 @@ if (typeof window !== 'undefined') {
78611
78611
  // Indicate to webpack that this file can be concatenated
78612
78612
  /* harmony default export */ var setPublicPath = (null);
78613
78613
 
78614
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"513e8eb8-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=5a054a9b&scoped=true
78615
- var com_graphicsvue_type_template_id_5a054a9b_scoped_true_render = function render() {
78614
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"13e2c7b8-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=4b02d5a5&scoped=true
78615
+ var com_graphicsvue_type_template_id_4b02d5a5_scoped_true_render = function render() {
78616
78616
  var _vm = this,
78617
78617
  _c = _vm._self._c;
78618
78618
  return _c('div', {
@@ -78623,7 +78623,7 @@ var com_graphicsvue_type_template_id_5a054a9b_scoped_true_render = function rend
78623
78623
  };
78624
78624
  var staticRenderFns = [];
78625
78625
 
78626
- // CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=template&id=5a054a9b&scoped=true
78626
+ // CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=template&id=4b02d5a5&scoped=true
78627
78627
 
78628
78628
  // CONCATENATED MODULE: ./node_modules/camera-controls/dist/camera-controls.module.js
78629
78629
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
@@ -106133,7 +106133,7 @@ measure_area_MeasureArea.prototype = {
106133
106133
  measure_area_this.tempLine = undefined;
106134
106134
  measure_area_this.pointArray.push(point);
106135
106135
  }
106136
- }, 100);
106136
+ }, 0);
106137
106137
  }
106138
106138
  },
106139
106139
  rightClick: function rightClick(e) {
@@ -112084,9 +112084,9 @@ function StreamLoader_toPrimitive(t, r) { if ("object" != StreamLoader_typeof(t)
112084
112084
 
112085
112085
 
112086
112086
 
112087
- /**
112088
- * StreamLoader 类
112089
- * 封装流式加载、解析与渲染调度的核心逻辑
112087
+ /**
112088
+ * StreamLoader 类
112089
+ * 封装流式加载、解析与渲染调度的核心逻辑
112090
112090
  */
112091
112091
  var StreamLoader_StreamLoader = /*#__PURE__*/function () {
112092
112092
  function StreamLoader() {
@@ -112159,11 +112159,11 @@ var StreamLoader_StreamLoader = /*#__PURE__*/function () {
112159
112159
  }
112160
112160
  }
112161
112161
 
112162
- /**
112163
- * 为对象或对象数组应用prefixId前缀
112164
- * @param {Object|Array<Object>} target - 单个对象或对象数组
112165
- * @param {string} propKey - 需要应用prefixId前缀的属性键名
112166
- * @param {string} customPrefixId - 自定义prefixId,可选
112162
+ /**
112163
+ * 为对象或对象数组应用prefixId前缀
112164
+ * @param {Object|Array<Object>} target - 单个对象或对象数组
112165
+ * @param {string} propKey - 需要应用prefixId前缀的属性键名
112166
+ * @param {string} customPrefixId - 自定义prefixId,可选
112167
112167
  */
112168
112168
  return StreamLoader_createClass(StreamLoader, [{
112169
112169
  key: "_applyPrefixId",
@@ -112183,13 +112183,13 @@ var StreamLoader_StreamLoader = /*#__PURE__*/function () {
112183
112183
  }
112184
112184
  }
112185
112185
 
112186
- /**
112187
- * 将合并材质数据覆盖到原材质数据中(仅覆盖 merge 中明确提供的字段)
112188
- * 规则:mergeMaterialData 中 id 在 materialData 出现过的,覆盖其 color/transp
112189
- * 注意:应在 _applyPrefixId(materialData, 'id') 之前调用(使用原始 id 对比)
112190
- * @param {Array<Object>|Object|null} materialData
112191
- * @param {Array<Object>|Object|null} mergeMaterialData
112192
- * @returns {Array<Object>|Object|null} materialData(原地修改后返回)
112186
+ /**
112187
+ * 将合并材质数据覆盖到原材质数据中(仅覆盖 merge 中明确提供的字段)
112188
+ * 规则:mergeMaterialData 中 id 在 materialData 出现过的,覆盖其 color/transp
112189
+ * 注意:应在 _applyPrefixId(materialData, 'id') 之前调用(使用原始 id 对比)
112190
+ * @param {Array<Object>|Object|null} materialData
112191
+ * @param {Array<Object>|Object|null} mergeMaterialData
112192
+ * @returns {Array<Object>|Object|null} materialData(原地修改后返回)
112193
112193
  */
112194
112194
  }, {
112195
112195
  key: "_mergeMaterialDataOverrides",
@@ -114320,10 +114320,10 @@ var StreamLoader_StreamLoader = /*#__PURE__*/function () {
114320
114320
  }
114321
114321
  }
114322
114322
 
114323
- /**
114324
- * 将复合 ID 数组解析为 documentId 到 modelId 列表的映射
114325
- * @param {Array<string>} loadedModels - 复合 ID 数组 (如 ["288:docId"])
114326
- * @returns {Object} - 映射对象 (如 {"docId": [288]})
114323
+ /**
114324
+ * 将复合 ID 数组解析为 documentId 到 modelId 列表的映射
114325
+ * @param {Array<string>} loadedModels - 复合 ID 数组 (如 ["288:docId"])
114326
+ * @returns {Object} - 映射对象 (如 {"docId": [288]})
114327
114327
  */
114328
114328
  }, {
114329
114329
  key: "parseModelDocumentMappings",
@@ -115204,7 +115204,7 @@ var isDebug = false || false === true;
115204
115204
  if (this.noObserver && this.noObserver.sceneBoxes) {
115205
115205
  this.noObserver.sceneBoxes.clear();
115206
115206
  }
115207
- sceneBoundingBox = new this.THREE.Box3();
115207
+ this.updateGlobalSceneBoundingBox();
115208
115208
  return;
115209
115209
  }
115210
115210
  if (isAdd && boundingBox) {
@@ -115219,16 +115219,56 @@ var isDebug = false || false === true;
115219
115219
  } else {
115220
115220
  this.noObserver.sceneBoxes.delete(documentId);
115221
115221
  }
115222
- var boxes = Array.from(this.noObserver.sceneBoxes.values());
115222
+ this.updateGlobalSceneBoundingBox();
115223
+ },
115224
+ updateGlobalSceneBoundingBox: function updateGlobalSceneBoundingBox() {
115225
+ var state = this.noObserver || {};
115226
+ var occScene = state.occlusionState && state.occlusionState._occScene;
115227
+
115228
+ // 优先使用由 boxIndex 构建出的离屏全场景,作为整体居中与 home 的统一范围
115229
+ if (occScene && occScene.children && occScene.children.length > 0) {
115230
+ var occBox = new this.THREE.Box3().setFromObject(occScene);
115231
+ if (!occBox.isEmpty()) {
115232
+ sceneBoundingBox = occBox;
115233
+ return sceneBoundingBox;
115234
+ }
115235
+ }
115236
+
115237
+ // 离屏场景尚未完成时,回退到 boxIndex 联合包围盒,确保每次 add boxIndex 都能更新全场景范围
115238
+ if (this._boxIndex && this._boxIndex.size > 0) {
115239
+ var minX = Infinity,
115240
+ minY = Infinity,
115241
+ minZ = Infinity;
115242
+ var maxX = -Infinity,
115243
+ maxY = -Infinity,
115244
+ maxZ = -Infinity;
115245
+ this._boxIndex.forEach(function (box) {
115246
+ if (!box || !box.isBox3 || box.isEmpty()) return;
115247
+ var mn = box.min;
115248
+ var mx = box.max;
115249
+ if (mn.x < minX) minX = mn.x;
115250
+ if (mn.y < minY) minY = mn.y;
115251
+ if (mn.z < minZ) minZ = mn.z;
115252
+ if (mx.x > maxX) maxX = mx.x;
115253
+ if (mx.y > maxY) maxY = mx.y;
115254
+ if (mx.z > maxZ) maxZ = mx.z;
115255
+ });
115256
+ if (Number.isFinite(minX) && Number.isFinite(minY) && Number.isFinite(minZ) && Number.isFinite(maxX) && Number.isFinite(maxY) && Number.isFinite(maxZ)) {
115257
+ sceneBoundingBox = new this.THREE.Box3(new this.THREE.Vector3(minX, minY, minZ), new this.THREE.Vector3(maxX, maxY, maxZ));
115258
+ return sceneBoundingBox;
115259
+ }
115260
+ }
115261
+ var boxes = Array.from(state.sceneBoxes && state.sceneBoxes.values() || []);
115223
115262
  if (boxes.length > 0) {
115224
115263
  var firstBox = boxes[0].clone();
115225
115264
  for (var i = 1; i < boxes.length; i++) {
115226
115265
  firstBox.union(boxes[i]);
115227
115266
  }
115228
115267
  sceneBoundingBox = firstBox;
115229
- } else {
115230
- sceneBoundingBox = new this.THREE.Box3();
115268
+ return sceneBoundingBox;
115231
115269
  }
115270
+ sceneBoundingBox = new this.THREE.Box3();
115271
+ return sceneBoundingBox;
115232
115272
  },
115233
115273
  setBoxIndex: function setBoxIndex(boxJson, documentId) {
115234
115274
  var _this3 = this;
@@ -115335,10 +115375,17 @@ var isDebug = false || false === true;
115335
115375
  this.buildOctreeFromBoxIndex();
115336
115376
  console.log('time end', Date.now());
115337
115377
  },
115378
+ tryInitialCenterAfterBoundsReady: function tryInitialCenterAfterBoundsReady() {
115379
+ if (hasExecutedCentering || userInteracting) return;
115380
+ if (!sceneBoundingBox || !sceneBoundingBox.isBox3 || sceneBoundingBox.isEmpty()) return;
115381
+ if (!this._boxIndex || this._boxIndex.size === 0) return;
115382
+ this.smartModelCenter(sceneBoundingBox, 0);
115383
+ },
115338
115384
  buildOctreeFromBoxIndex: function buildOctreeFromBoxIndex() {
115339
115385
  var _this4 = this;
115340
115386
  if (!this._boxIndex || this._boxIndex.size === 0) {
115341
115387
  this._octree = null;
115388
+ this.updateGlobalSceneBoundingBox();
115342
115389
  return;
115343
115390
  }
115344
115391
  var minX = Infinity,
@@ -115359,6 +115406,7 @@ var isDebug = false || false === true;
115359
115406
  if (mx.z > maxZ) maxZ = mx.z;
115360
115407
  });
115361
115408
  var rootBox = new this.THREE.Box3(new this.THREE.Vector3(minX, minY, minZ), new this.THREE.Vector3(maxX, maxY, maxZ));
115409
+ sceneBoundingBox = rootBox.clone();
115362
115410
  this._octreeMaxItems = 64;
115363
115411
  this._octreeMaxDepth = 12;
115364
115412
  this._octree = {
@@ -115370,6 +115418,7 @@ var isDebug = false || false === true;
115370
115418
  this._boxIndex.forEach(function (box, id) {
115371
115419
  _this4._octreeInsert(_this4._octree, String(id), box);
115372
115420
  });
115421
+ this.updateGlobalSceneBoundingBox();
115373
115422
  },
115374
115423
  _octreeSubdivide: function _octreeSubdivide(node) {
115375
115424
  var min = node.box.min;
@@ -116374,7 +116423,7 @@ var isDebug = false || false === true;
116374
116423
  com_graphicsvue_type_script_lang_js_renderer.clear(true, true, false);
116375
116424
  com_graphicsvue_type_script_lang_js_camera.updateMatrixWorld(true);
116376
116425
  com_graphicsvue_type_script_lang_js_renderer.render(state._occScene, com_graphicsvue_type_script_lang_js_camera);
116377
- sceneBoundingBox = new _this6.THREE.Box3().setFromObject(state._occScene);
116426
+ _this6.updateGlobalSceneBoundingBox();
116378
116427
  // const t1 = performance.now();
116379
116428
  // 从响应式对象读取 previewEnabled
116380
116429
  _this6.$emit('updateBoundingBox');
@@ -116848,6 +116897,7 @@ var isDebug = false || false === true;
116848
116897
  if (res && res.boxIndex) {
116849
116898
  _this1.setBoxIndex(res.boxIndex, item.id, true);
116850
116899
  }
116900
+ _this1.tryInitialCenterAfterBoundsReady();
116851
116901
  // this.setBoxIndex(boxJson.data, item.id, true);
116852
116902
  }
116853
116903
  (_options$onComplete = options.onComplete) === null || _options$onComplete === void 0 || _options$onComplete.call(options);
@@ -119839,11 +119889,11 @@ var isDebug = false || false === true;
119839
119889
  });
119840
119890
  // CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=script&lang=js
119841
119891
  /* harmony default export */ var components_com_graphicsvue_type_script_lang_js = (com_graphicsvue_type_script_lang_js);
119842
- // EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=5a054a9b&prod&lang=scss&scoped=true
119843
- var com_graphicsvue_type_style_index_0_id_5a054a9b_prod_lang_scss_scoped_true = __webpack_require__("dff9");
119892
+ // EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=4b02d5a5&prod&lang=scss&scoped=true
119893
+ var com_graphicsvue_type_style_index_0_id_4b02d5a5_prod_lang_scss_scoped_true = __webpack_require__("a4b9");
119844
119894
 
119845
- // EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=1&id=5a054a9b&prod&lang=css
119846
- var com_graphicsvue_type_style_index_1_id_5a054a9b_prod_lang_css = __webpack_require__("1ec4");
119895
+ // EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=1&id=4b02d5a5&prod&lang=css
119896
+ var com_graphicsvue_type_style_index_1_id_4b02d5a5_prod_lang_css = __webpack_require__("bd66");
119847
119897
 
119848
119898
  // CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
119849
119899
  /* globals __VUE_SSR_CONTEXT__ */
@@ -119955,17 +120005,17 @@ function normalizeComponent(
119955
120005
 
119956
120006
  var component = normalizeComponent(
119957
120007
  components_com_graphicsvue_type_script_lang_js,
119958
- com_graphicsvue_type_template_id_5a054a9b_scoped_true_render,
120008
+ com_graphicsvue_type_template_id_4b02d5a5_scoped_true_render,
119959
120009
  staticRenderFns,
119960
120010
  false,
119961
120011
  null,
119962
- "5a054a9b",
120012
+ "4b02d5a5",
119963
120013
  null
119964
120014
 
119965
120015
  )
119966
120016
 
119967
120017
  /* harmony default export */ var com_graphics = (component.exports);
119968
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"513e8eb8-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=58f9d282&scoped=true
120018
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"13e2c7b8-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=58f9d282&scoped=true
119969
120019
  var com_flcanvasvue_type_template_id_58f9d282_scoped_true_render = function render() {
119970
120020
  var _vm = this,
119971
120021
  _c = _vm._self._c;
@@ -123752,7 +123802,7 @@ var com_flcanvas_component = normalizeComponent(
123752
123802
  )
123753
123803
 
123754
123804
  /* harmony default export */ var com_flcanvas = (com_flcanvas_component.exports);
123755
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"513e8eb8-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
123805
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"13e2c7b8-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
123756
123806
  var per_controlvue_type_template_id_f547d5c6_scoped_true_render = function render() {
123757
123807
  var _vm = this,
123758
123808
  _c = _vm._self._c;
@@ -123860,7 +123910,7 @@ var per_control_component = normalizeComponent(
123860
123910
  )
123861
123911
 
123862
123912
  /* harmony default export */ var per_control = (per_control_component.exports);
123863
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"513e8eb8-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
123913
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"13e2c7b8-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
123864
123914
  var pidvue_type_template_id_2572c0e2_scoped_true_render = function render() {
123865
123915
  var _vm = this,
123866
123916
  _c = _vm._self._c;
@@ -123907,7 +123957,7 @@ var browserify_default = /*#__PURE__*/__webpack_require__.n(browserify);
123907
123957
  var html2canvas = __webpack_require__("c0e9");
123908
123958
  var html2canvas_default = /*#__PURE__*/__webpack_require__.n(html2canvas);
123909
123959
 
123910
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"513e8eb8-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
123960
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"13e2c7b8-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
123911
123961
  var ann_toolvue_type_template_id_4b17bce0_scoped_true_render = function render() {
123912
123962
  var _vm = this,
123913
123963
  _c = _vm._self._c;
@@ -124878,7 +124928,7 @@ var pid_component = normalizeComponent(
124878
124928
  )
124879
124929
 
124880
124930
  /* harmony default export */ var pid = (pid_component.exports);
124881
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"513e8eb8-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-tiles/index.vue?vue&type=template&id=717610b8&scoped=true
124931
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"13e2c7b8-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-tiles/index.vue?vue&type=template&id=717610b8&scoped=true
124882
124932
  var com_tilesvue_type_template_id_717610b8_scoped_true_render = function render() {
124883
124933
  var _vm = this,
124884
124934
  _c = _vm._self._c;