fl-web-component 2.0.12 → 2.0.13

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.
@@ -1 +1 @@
1
- @charset "UTF-8";.fl-model-containor[data-v-18f6bdf0]{width:100%;height:100%;position:relative;cursor:pointer}[data-v-18f6bdf0] .tips-label{width:60px;color:#000;font:12px Helvetica;margin-top:-3em;padding:5px;text-align:center;vertical-align:middle;background-color:khaki}[data-v-18f6bdf0] .measure-label{max-width:100px;margin-top:-1em;border:10px;border-radius:5px;padding:3px 10px;cursor:pointer;color:#009bea;background-color:#f4f4f4;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.25);box-shadow:0 1px 3px 1px rgba(0,0,0,.25)}[data-v-18f6bdf0] .circle-tag{width:10px;height:10px;margin-top:5px;border-radius:50%;background-color:#ff5000}[data-v-18f6bdf0] .measure-label-font{word-break:break-all}[data-v-18f6bdf0] .mark-label-img{padding-top:5px;width:20px;height:20px}.loading-overlay[data-v-18f6bdf0]{position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.7);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;-webkit-transition:opacity .3s ease,visibility .3s ease;transition:opacity .3s ease,visibility .3s ease}.loading-overlay--visible[data-v-18f6bdf0]{opacity:1;visibility:visible}.loading-content[data-v-18f6bdf0]{background:#fff;border-radius:12px;padding:30px;text-align:center;-webkit-box-shadow:0 8px 32px rgba(0,0,0,.3);box-shadow:0 8px 32px rgba(0,0,0,.3);min-width:300px;max-width:400px}.loading-spinner[data-v-18f6bdf0]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #409eff;border-radius:50%;-webkit-animation:spin-18f6bdf0 1s linear infinite;animation:spin-18f6bdf0 1s linear infinite;margin:0 auto 20px}@-webkit-keyframes spin-18f6bdf0{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin-18f6bdf0{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-text[data-v-18f6bdf0]{font-size:16px;font-weight:500;color:#333;margin-bottom:20px}.loading-this.progress-bar[data-v-18f6bdf0]{width:100%;height:8px;background-color:#f0f0f0;border-radius:4px;overflow:hidden;margin-bottom:15px}.loading-this.progress-fill[data-v-18f6bdf0]{height:100%;background:-webkit-gradient(linear,left top,right top,from(#409eff),to(#67c23a));background:linear-gradient(90deg,#409eff,#67c23a);border-radius:4px;-webkit-transition:width .3s ease;transition:width .3s ease}.loading-details[data-v-18f6bdf0]{font-size:12px;color:#666;line-height:1.5}.lil-this.gui{background:hsla(0,0%,100%,.95)!important;border:1px solid #e0e0e0!important;border-radius:8px!important;-webkit-box-shadow:0 4px 12px rgba(0,0,0,.15)!important;box-shadow:0 4px 12px rgba(0,0,0,.15)!important;backdrop-filter:blur(10px)!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important}.lil-this.gui .title{background:linear-gradient(135deg,#f8f9fa,#e9ecef)!important;color:#495057!important;border-bottom:1px solid #dee2e6!important;font-weight:600!important;padding:0 12px!important;border-radius:8px 8px 0 0!important}.lil-this.gui .controller{border-bottom:1px solid #f1f3f4!important;background:transparent!important}.lil-this.gui .controller:last-child{border-bottom:none!important}.lil-this.gui .controller .name{color:#495057!important;font-weight:500!important;font-size:12px!important}.lil-this.gui .controller .widget{background:#f8f9fa!important;border:1px solid #ced4da!important;border-radius:4px!important;color:#495057!important}.lil-this.gui .controller .widget:focus,.lil-this.gui .controller .widget:hover{border-color:#80bdff!important;-webkit-box-shadow:0 0 0 2px rgba(0,123,255,.25)!important;box-shadow:0 0 0 2px rgba(0,123,255,.25)!important}.lil-this.gui .controller .widget:focus{outline:none!important}.lil-this.gui .controller input[type=range]{background:#e9ecef!important;height:4px!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;border-radius:2px!important}.lil-this.gui .controller.number .fill{border-right:solid #008de9}.lil-this.gui .controller input[type=range]::-webkit-slider-thumb{background:#007bff!important;border:2px solid #fff!important;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.2)!important;box-shadow:0 2px 4px rgba(0,0,0,.2)!important;width:16px!important;height:16px!important;border-radius:50%!important;-webkit-appearance:none!important;appearance:none!important;cursor:pointer!important}.lil-this.gui .controller input[type=range]::-moz-range-thumb{background:#007bff!important;border:2px solid #fff!important;box-shadow:0 2px 4px rgba(0,0,0,.2)!important;width:16px!important;height:16px!important;border-radius:50%!important;cursor:pointer!important}.lil-this.gui .controller .option{background:#fff!important;color:#495057!important;border-bottom:1px solid #f1f3f4!important}.lil-this.gui .controller .option:hover{background:#f8f9fa!important}.lil-this.gui .controller .option:last-child{border-bottom:none!important}.lil-this.gui input:active{background:#e6eff4}.lil-this.gui .controller button{background:linear-gradient(135deg,#007bff,#0056b3)!important;color:#fff!important;border:none!important;border-radius:4px!important;font-weight:500!important;-webkit-transition:all .2s ease!important;transition:all .2s ease!important}.lil-this.gui .controller button:hover{background:linear-gradient(135deg,#0056b3,#004085)!important;-webkit-transform:translateY(-1px)!important;transform:translateY(-1px)!important;-webkit-box-shadow:0 4px 8px rgba(0,123,255,.3)!important;box-shadow:0 4px 8px rgba(0,123,255,.3)!important}.lil-this.gui .controller .color{border:2px solid #fff!important;border-radius:4px!important;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.1)!important;box-shadow:0 2px 4px rgba(0,0,0,.1)!important}.lil-this.gui .controller.number .slider,.lil-this.gui .controller.number .slider:hover{background-color:#e6eff4}.lil-this.gui input,.lil-this.gui input:hover,.lil-this.gui input[type=number]:focus,.lil-this.gui input[type=text]:focus{background:#e6eff4}.lil-this.gui .controller>.name{min-width:25px}.lil-this.gui .controller.number input{color:#2e3136}.lil-this.gui .controller.number .slider:active{background-color:#e6eff4}.lil-this.gui .folder>.title{background:linear-gradient(135deg,#f1f3f4,#e9ecef)!important;color:#495057!important;border-bottom:1px solid #dee2e6!important}.lil-this.gui .folder>.title:before{color:#6c757d!important}.lil-this.gui .folder.closed>.children{display:none!important}#konva-container[data-v-21bcf2d9]{z-index:3;width:100%;height:100%;cursor:pointer;overflow:hidden}span[data-v-f547d5c6]{font-weight:bolder}.text[data-v-f547d5c6]{margin-top:20px}.line[data-v-f547d5c6]{border-bottom:1px solid #dcdfe6;margin:20px 0}.center[data-v-f547d5c6]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.center .cen span[data-v-f547d5c6],.center .top span[data-v-f547d5c6]{color:"#53a8ff";display:inline-block;width:30px;height:30px;text-align:center;line-height:30px;border:1px solid;padding:5px;margin-bottom:10px;background-color:#e9f3ff}.center .cen span[data-v-f547d5c6]{margin:10px}.button[data-v-f547d5c6]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:end;margin-top:20px}@font-face{font-family:iconfont;src:url(//at.alicdn.com/t/font_3226805_qqvo3ag3r8.woff2?t=1646635700216) format("woff2"),url(//at.alicdn.com/t/font_3226805_qqvo3ag3r8.woff?t=1646635700216) format("woff"),url(//at.alicdn.com/t/font_3226805_qqvo3ag3r8.ttf?t=1646635700216) format("truetype")}.iconfont[data-v-f547d5c6]{font-family:iconfont!important;font-size:50px;font-style:normal;color:"#53a8ff";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-shubiao[data-v-f547d5c6]:before{content:""}.main_body[data-v-4b17bce0]{position:relative;width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.classification_title[data-v-4b17bce0]{margin:0 0 10px 0;color:#fff;font-size:14px;cursor:default}.toolbar[data-v-4b17bce0]{z-index:10;position:absolute;width:520px;padding:8px 16px;border-radius:6px;-webkit-box-shadow:0 2px 10px 0 rgba(6,29,44,.25);box-shadow:0 2px 10px 0 rgba(6,29,44,.25);background-color:#fff;top:10px;left:50%;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform:translateX(-50%);transform:translateX(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around}.icon_toolbar[data-v-4b17bce0],.text_toolbar[data-v-4b17bce0]{float:left;width:32px;height:32px;padding:0!important;background-repeat:no-repeat;background-size:24px;background-position:50%}.icon_active[data-v-4b17bce0],.icon_toolbar[data-v-4b17bce0]:hover,.text_toolbar[data-v-4b17bce0]:hover{background-color:#eee}[data-v-4b17bce0].icon_color .el-color-picker__trigger{height:24px;margin-top:4px;width:24px!important}[data-v-4b17bce0].el-color-picker--medium,[data-v-4b17bce0].el-color-picker--medium .el-color-picker__trigger{width:24px!important;height:24px!important}.canvas_container[data-v-4b17bce0]{position:relative;width:100%;height:100%;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.canvas_container canvas[data-v-4b17bce0]{position:absolute;left:0}.canvas_container #ctx_front[data-v-4b17bce0]{z-index:5;background-color:transparent}.canvas_container #ctx_back[data-v-4b17bce0]{z-index:3}.canvas_container #ctx_base[data-v-4b17bce0]{z-index:1}#text[data-v-4b17bce0]{position:absolute;z-index:-1;resize:none;outline:none;border:1px dashed #9c9c9c;overflow:hidden;background:transparent;line-height:30px;display:none}#text[data-v-4b17bce0]:hover{border:1px dashed #53a8ff}#svg-component[data-v-2572c0e2],#svg-tigger[data-v-2572c0e2]{cursor:pointer;height:100%;width:100%;position:relative}#toolbar-show[data-v-2572c0e2]{z-index:20;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden;background:#fff}
1
+ @charset "UTF-8";.fl-model-containor[data-v-45f83ec2]{width:100%;height:100%;position:relative;cursor:pointer}[data-v-45f83ec2] .tips-label{width:60px;color:#000;font:12px Helvetica;margin-top:-3em;padding:5px;text-align:center;vertical-align:middle;background-color:khaki}[data-v-45f83ec2] .measure-label{max-width:100px;margin-top:-1em;border:10px;border-radius:5px;padding:3px 10px;cursor:pointer;color:#009bea;background-color:#f4f4f4;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.25);box-shadow:0 1px 3px 1px rgba(0,0,0,.25)}[data-v-45f83ec2] .circle-tag{width:10px;height:10px;margin-top:5px;border-radius:50%;background-color:#ff5000}[data-v-45f83ec2] .measure-label-font{word-break:break-all}[data-v-45f83ec2] .mark-label-img{padding-top:5px;width:20px;height:20px}.loading-overlay[data-v-45f83ec2]{position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.7);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;-webkit-transition:opacity .3s ease,visibility .3s ease;transition:opacity .3s ease,visibility .3s ease}.loading-overlay--visible[data-v-45f83ec2]{opacity:1;visibility:visible}.loading-content[data-v-45f83ec2]{background:#fff;border-radius:12px;padding:30px;text-align:center;-webkit-box-shadow:0 8px 32px rgba(0,0,0,.3);box-shadow:0 8px 32px rgba(0,0,0,.3);min-width:300px;max-width:400px}.loading-spinner[data-v-45f83ec2]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #409eff;border-radius:50%;-webkit-animation:spin-45f83ec2 1s linear infinite;animation:spin-45f83ec2 1s linear infinite;margin:0 auto 20px}@-webkit-keyframes spin-45f83ec2{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin-45f83ec2{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-text[data-v-45f83ec2]{font-size:16px;font-weight:500;color:#333;margin-bottom:20px}.loading-this.progress-bar[data-v-45f83ec2]{width:100%;height:8px;background-color:#f0f0f0;border-radius:4px;overflow:hidden;margin-bottom:15px}.loading-this.progress-fill[data-v-45f83ec2]{height:100%;background:-webkit-gradient(linear,left top,right top,from(#409eff),to(#67c23a));background:linear-gradient(90deg,#409eff,#67c23a);border-radius:4px;-webkit-transition:width .3s ease;transition:width .3s ease}.loading-details[data-v-45f83ec2]{font-size:12px;color:#666;line-height:1.5}.lil-this.gui{background:hsla(0,0%,100%,.95)!important;border:1px solid #e0e0e0!important;border-radius:8px!important;-webkit-box-shadow:0 4px 12px rgba(0,0,0,.15)!important;box-shadow:0 4px 12px rgba(0,0,0,.15)!important;backdrop-filter:blur(10px)!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important}.lil-this.gui .title{background:linear-gradient(135deg,#f8f9fa,#e9ecef)!important;color:#495057!important;border-bottom:1px solid #dee2e6!important;font-weight:600!important;padding:0 12px!important;border-radius:8px 8px 0 0!important}.lil-this.gui .controller{border-bottom:1px solid #f1f3f4!important;background:transparent!important}.lil-this.gui .controller:last-child{border-bottom:none!important}.lil-this.gui .controller .name{color:#495057!important;font-weight:500!important;font-size:12px!important}.lil-this.gui .controller .widget{background:#f8f9fa!important;border:1px solid #ced4da!important;border-radius:4px!important;color:#495057!important}.lil-this.gui .controller .widget:focus,.lil-this.gui .controller .widget:hover{border-color:#80bdff!important;-webkit-box-shadow:0 0 0 2px rgba(0,123,255,.25)!important;box-shadow:0 0 0 2px rgba(0,123,255,.25)!important}.lil-this.gui .controller .widget:focus{outline:none!important}.lil-this.gui .controller input[type=range]{background:#e9ecef!important;height:4px!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;border-radius:2px!important}.lil-this.gui .controller.number .fill{border-right:solid #008de9}.lil-this.gui .controller input[type=range]::-webkit-slider-thumb{background:#007bff!important;border:2px solid #fff!important;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.2)!important;box-shadow:0 2px 4px rgba(0,0,0,.2)!important;width:16px!important;height:16px!important;border-radius:50%!important;-webkit-appearance:none!important;appearance:none!important;cursor:pointer!important}.lil-this.gui .controller input[type=range]::-moz-range-thumb{background:#007bff!important;border:2px solid #fff!important;box-shadow:0 2px 4px rgba(0,0,0,.2)!important;width:16px!important;height:16px!important;border-radius:50%!important;cursor:pointer!important}.lil-this.gui .controller .option{background:#fff!important;color:#495057!important;border-bottom:1px solid #f1f3f4!important}.lil-this.gui .controller .option:hover{background:#f8f9fa!important}.lil-this.gui .controller .option:last-child{border-bottom:none!important}.lil-this.gui input:active{background:#e6eff4}.lil-this.gui .controller button{background:linear-gradient(135deg,#007bff,#0056b3)!important;color:#fff!important;border:none!important;border-radius:4px!important;font-weight:500!important;-webkit-transition:all .2s ease!important;transition:all .2s ease!important}.lil-this.gui .controller button:hover{background:linear-gradient(135deg,#0056b3,#004085)!important;-webkit-transform:translateY(-1px)!important;transform:translateY(-1px)!important;-webkit-box-shadow:0 4px 8px rgba(0,123,255,.3)!important;box-shadow:0 4px 8px rgba(0,123,255,.3)!important}.lil-this.gui .controller .color{border:2px solid #fff!important;border-radius:4px!important;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.1)!important;box-shadow:0 2px 4px rgba(0,0,0,.1)!important}.lil-this.gui .controller.number .slider,.lil-this.gui .controller.number .slider:hover{background-color:#e6eff4}.lil-this.gui input,.lil-this.gui input:hover,.lil-this.gui input[type=number]:focus,.lil-this.gui input[type=text]:focus{background:#e6eff4}.lil-this.gui .controller>.name{min-width:25px}.lil-this.gui .controller.number input{color:#2e3136}.lil-this.gui .controller.number .slider:active{background-color:#e6eff4}.lil-this.gui .folder>.title{background:linear-gradient(135deg,#f1f3f4,#e9ecef)!important;color:#495057!important;border-bottom:1px solid #dee2e6!important}.lil-this.gui .folder>.title:before{color:#6c757d!important}.lil-this.gui .folder.closed>.children{display:none!important}#konva-container[data-v-21bcf2d9]{z-index:3;width:100%;height:100%;cursor:pointer;overflow:hidden}span[data-v-f547d5c6]{font-weight:bolder}.text[data-v-f547d5c6]{margin-top:20px}.line[data-v-f547d5c6]{border-bottom:1px solid #dcdfe6;margin:20px 0}.center[data-v-f547d5c6]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.center .cen span[data-v-f547d5c6],.center .top span[data-v-f547d5c6]{color:"#53a8ff";display:inline-block;width:30px;height:30px;text-align:center;line-height:30px;border:1px solid;padding:5px;margin-bottom:10px;background-color:#e9f3ff}.center .cen span[data-v-f547d5c6]{margin:10px}.button[data-v-f547d5c6]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:end;margin-top:20px}@font-face{font-family:iconfont;src:url(//at.alicdn.com/t/font_3226805_qqvo3ag3r8.woff2?t=1646635700216) format("woff2"),url(//at.alicdn.com/t/font_3226805_qqvo3ag3r8.woff?t=1646635700216) format("woff"),url(//at.alicdn.com/t/font_3226805_qqvo3ag3r8.ttf?t=1646635700216) format("truetype")}.iconfont[data-v-f547d5c6]{font-family:iconfont!important;font-size:50px;font-style:normal;color:"#53a8ff";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-shubiao[data-v-f547d5c6]:before{content:""}.main_body[data-v-4b17bce0]{position:relative;width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.classification_title[data-v-4b17bce0]{margin:0 0 10px 0;color:#fff;font-size:14px;cursor:default}.toolbar[data-v-4b17bce0]{z-index:10;position:absolute;width:520px;padding:8px 16px;border-radius:6px;-webkit-box-shadow:0 2px 10px 0 rgba(6,29,44,.25);box-shadow:0 2px 10px 0 rgba(6,29,44,.25);background-color:#fff;top:10px;left:50%;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform:translateX(-50%);transform:translateX(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around}.icon_toolbar[data-v-4b17bce0],.text_toolbar[data-v-4b17bce0]{float:left;width:32px;height:32px;padding:0!important;background-repeat:no-repeat;background-size:24px;background-position:50%}.icon_active[data-v-4b17bce0],.icon_toolbar[data-v-4b17bce0]:hover,.text_toolbar[data-v-4b17bce0]:hover{background-color:#eee}[data-v-4b17bce0].icon_color .el-color-picker__trigger{height:24px;margin-top:4px;width:24px!important}[data-v-4b17bce0].el-color-picker--medium,[data-v-4b17bce0].el-color-picker--medium .el-color-picker__trigger{width:24px!important;height:24px!important}.canvas_container[data-v-4b17bce0]{position:relative;width:100%;height:100%;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.canvas_container canvas[data-v-4b17bce0]{position:absolute;left:0}.canvas_container #ctx_front[data-v-4b17bce0]{z-index:5;background-color:transparent}.canvas_container #ctx_back[data-v-4b17bce0]{z-index:3}.canvas_container #ctx_base[data-v-4b17bce0]{z-index:1}#text[data-v-4b17bce0]{position:absolute;z-index:-1;resize:none;outline:none;border:1px dashed #9c9c9c;overflow:hidden;background:transparent;line-height:30px;display:none}#text[data-v-4b17bce0]:hover{border:1px dashed #53a8ff}#svg-component[data-v-2572c0e2],#svg-tigger[data-v-2572c0e2]{cursor:pointer;height:100%;width:100%;position:relative}#toolbar-show[data-v-2572c0e2]{z-index:20;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden;background:#fff}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fl-web-component",
3
- "version": "2.0.12",
3
+ "version": "2.0.13",
4
4
  "scripts": {
5
5
  "postinstall": "patch-package",
6
6
  "tip1": "仅调试本组件不涉及业务组件,请执行dev",
@@ -4888,13 +4888,15 @@ export default {
4888
4888
  }
4889
4889
  this.labelRenderer = null;
4890
4890
 
4891
- this.renderer.forceContextLoss();
4892
- this.renderer.dispose();
4893
- this.camera = null;
4894
- this.cameraControls = null;
4895
- this.pointControls = null;
4896
- this.renderer.domElement = null;
4897
- this.renderer = null;
4891
+ if (this.renderer) {
4892
+ this.renderer.forceContextLoss && this.renderer.forceContextLoss();
4893
+ this.renderer.dispose && this.renderer.dispose();
4894
+ this.renderer.domElement = null;
4895
+ }
4896
+ this.camera = null;
4897
+ this.cameraControls = null;
4898
+ this.pointControls = null;
4899
+ this.renderer = null;
4898
4900
  },
4899
4901
  // 绘制曲线
4900
4902
  /*
@@ -6266,11 +6268,11 @@ export default {
6266
6268
  * @param {Array} drawObjs - 绘制对象数组
6267
6269
  * @returns {Array} 批次数组
6268
6270
  */
6269
- createBatches(instances, drawObjs) {
6270
- const batches = [];
6271
- const loadingState = this.noObserver
6272
- ? this.noObserver.batchLoadingState
6273
- : this.batchLoadingState;
6271
+ createBatches(instances, drawObjs) {
6272
+ const batches = [];
6273
+ const loadingState = this.noObserver
6274
+ ? this.noObserver.batchLoadingState
6275
+ : this.batchLoadingState;
6274
6276
  const batchSize = loadingState.batchSize;
6275
6277
 
6276
6278
  // 按drawObject分组
@@ -6344,21 +6346,36 @@ export default {
6344
6346
  drawObjs: currentBatch.map(item => item.drawObj),
6345
6347
  });
6346
6348
  }
6347
-
6348
- return batches;
6349
- },
6350
-
6351
- /**
6352
- * 加载下一批数据
6353
- */
6354
- async loadNextBatch() {
6355
- const loadingState = this.noObserver
6356
- ? this.noObserver.batchLoadingState
6357
- : this.batchLoadingState;
6358
- if (!loadingState.isLoading || loadingState.currentBatch >= loadingState.pendingData.length) {
6359
- this.completeBatchLoading();
6360
- return;
6361
- }
6349
+
6350
+ return batches;
6351
+ },
6352
+
6353
+ isBatchLoadingSceneReady() {
6354
+ return !!(
6355
+ this.scene &&
6356
+ typeof this.scene.add === 'function' &&
6357
+ this.modelGroup &&
6358
+ this.THREE &&
6359
+ !this._isDestroyed &&
6360
+ !this._isBeingDestroyed
6361
+ );
6362
+ },
6363
+
6364
+ /**
6365
+ * 加载下一批数据
6366
+ */
6367
+ async loadNextBatch() {
6368
+ const loadingState = this.noObserver
6369
+ ? this.noObserver.batchLoadingState
6370
+ : this.batchLoadingState;
6371
+ if (!this.isBatchLoadingSceneReady()) {
6372
+ this.stopBatchLoading('scene_unavailable');
6373
+ return;
6374
+ }
6375
+ if (!loadingState.isLoading || loadingState.currentBatch >= loadingState.pendingData.length) {
6376
+ this.completeBatchLoading();
6377
+ return;
6378
+ }
6362
6379
 
6363
6380
  // 检查是否需要暂停渲染
6364
6381
  if (loadingState.isPaused) {
@@ -6376,17 +6393,26 @@ export default {
6376
6393
  this.loadNextBatch();
6377
6394
  });
6378
6395
  return;
6379
- }
6380
-
6381
- const batch = loadingState.pendingData[loadingState.currentBatch];
6382
-
6383
- try {
6384
- console.log('加载批次:', loadingState.currentBatch);
6385
- await this.processWithMainThread(batch);
6386
-
6387
- // 更新进度
6388
- loadingState.loadedCount += batch.instances.length;
6389
- loadingState.currentBatch++;
6396
+ }
6397
+
6398
+ const batch = loadingState.pendingData[loadingState.currentBatch];
6399
+ if (!batch) {
6400
+ this.completeBatchLoading();
6401
+ return;
6402
+ }
6403
+
6404
+ try {
6405
+ console.log('加载批次:', loadingState.currentBatch);
6406
+ await this.processWithMainThread(batch);
6407
+ if (!loadingState.isLoading) return;
6408
+ if (!this.isBatchLoadingSceneReady()) {
6409
+ this.stopBatchLoading('scene_unavailable');
6410
+ return;
6411
+ }
6412
+
6413
+ // 更新进度
6414
+ loadingState.loadedCount += batch.instances.length;
6415
+ loadingState.currentBatch++;
6390
6416
 
6391
6417
  // 同步到响应式状态
6392
6418
  this.batchLoadingState.loadedCount = loadingState.loadedCount;
@@ -6451,15 +6477,19 @@ export default {
6451
6477
  /**
6452
6478
  * 完成批量加载
6453
6479
  */
6454
- completeBatchLoading() {
6455
- const loadingState = this.noObserver
6456
- ? this.noObserver.batchLoadingState
6457
- : this.batchLoadingState;
6458
- if (!loadingState.isLoading) return;
6459
-
6460
- // if (this.modelGroup) {
6461
- // if (firstDraw) {
6462
- // if (this.scene) this.scene.add(this.modelGroup);
6480
+ completeBatchLoading() {
6481
+ const loadingState = this.noObserver
6482
+ ? this.noObserver.batchLoadingState
6483
+ : this.batchLoadingState;
6484
+ if (!loadingState.isLoading) return;
6485
+ if (!this.isBatchLoadingSceneReady()) {
6486
+ this.stopBatchLoading('scene_unavailable');
6487
+ return;
6488
+ }
6489
+
6490
+ // if (this.modelGroup) {
6491
+ // if (firstDraw) {
6492
+ // if (this.scene) this.scene.add(this.modelGroup);
6463
6493
  // firstDraw = false;
6464
6494
  // }
6465
6495
  // if (!rotatedSceneFlag) {
@@ -6518,18 +6548,18 @@ export default {
6518
6548
  this.batchLoadingState.isLoading = false;
6519
6549
 
6520
6550
  // 调用完成回调
6521
- if (loadingState.onComplete) {
6522
- loadingState.onComplete({
6523
- totalLoaded: loadingState.loadedCount,
6524
- totalBatches: loadingState.totalBatches,
6525
- });
6526
-
6527
- if (isDebug) {
6528
- var axesHelper = new this.THREE.AxesHelper(10000);
6529
- this.scene.add(axesHelper);
6530
- }
6531
- // this.showSceneBoundingBox();
6532
- }
6551
+ if (loadingState.onComplete) {
6552
+ loadingState.onComplete({
6553
+ totalLoaded: loadingState.loadedCount,
6554
+ totalBatches: loadingState.totalBatches,
6555
+ });
6556
+
6557
+ if (isDebug && this.scene) {
6558
+ var axesHelper = new this.THREE.AxesHelper(10000);
6559
+ this.scene.add(axesHelper);
6560
+ }
6561
+ // this.showSceneBoundingBox();
6562
+ }
6533
6563
 
6534
6564
  // 触发事件
6535
6565
  // this.$emit('modelLoaded');
@@ -443,10 +443,10 @@ export class StreamLoader {
443
443
  // 数据处理与渲染
444
444
  // ----------------------------------------------------------------
445
445
 
446
- async processBatchData(meshes, primitives, list, range, abortSignal = null) {
447
- try {
448
- if (abortSignal && abortSignal.aborted) {
449
- throw new DOMException('Request was aborted', 'AbortError');
446
+ async processBatchData(meshes, primitives, list, range, abortSignal = null) {
447
+ try {
448
+ if (abortSignal && abortSignal.aborted) {
449
+ throw new DOMException('Request was aborted', 'AbortError');
450
450
  }
451
451
  const renderResult = await this.renderModelData(meshes, primitives, list, range, null, undefined, {
452
452
  suppressLoadComplete: true,
@@ -457,13 +457,16 @@ export class StreamLoader {
457
457
  }
458
458
  if (abortSignal && abortSignal.aborted) {
459
459
  throw new DOMException('Request was aborted', 'AbortError');
460
- }
461
- return renderResult;
462
- } catch (error) {
463
- console.error('Failed to render batch data:', error);
464
- throw error;
465
- }
466
- }
460
+ }
461
+ return renderResult;
462
+ } catch (error) {
463
+ if (error && error.name === 'AbortError') {
464
+ throw error;
465
+ }
466
+ console.error('Failed to render batch data:', error);
467
+ throw error;
468
+ }
469
+ }
467
470
 
468
471
  // ----------------------------------------------------------------
469
472
  // 请求管理