fl-web-component 2.0.18 → 2.0.19-beta.0

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-7fad0c6c]{width:100%;height:100%;position:relative;cursor:pointer}[data-v-7fad0c6c] .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-7fad0c6c] .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-7fad0c6c] .circle-tag{width:10px;height:10px;margin-top:5px;border-radius:50%;background-color:#ff5000}[data-v-7fad0c6c] .measure-label-font{word-break:break-all}[data-v-7fad0c6c] .mark-label-img{padding-top:5px;width:20px;height:20px}.loading-overlay[data-v-7fad0c6c]{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-7fad0c6c]{opacity:1;visibility:visible}.loading-content[data-v-7fad0c6c]{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-7fad0c6c]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #409eff;border-radius:50%;-webkit-animation:spin-7fad0c6c 1s linear infinite;animation:spin-7fad0c6c 1s linear infinite;margin:0 auto 20px}@-webkit-keyframes spin-7fad0c6c{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin-7fad0c6c{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-text[data-v-7fad0c6c]{font-size:16px;font-weight:500;color:#333;margin-bottom:20px}.loading-this.progress-bar[data-v-7fad0c6c]{width:100%;height:8px;background-color:#f0f0f0;border-radius:4px;overflow:hidden;margin-bottom:15px}.loading-this.progress-fill[data-v-7fad0c6c]{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-7fad0c6c]{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-b313ab6c]{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-a4813dca]{width:100%;height:100%;position:relative;cursor:pointer}[data-v-a4813dca] .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-a4813dca] .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-a4813dca] .circle-tag{width:10px;height:10px;margin-top:5px;border-radius:50%;background-color:#ff5000}[data-v-a4813dca] .measure-label-font{word-break:break-all}[data-v-a4813dca] .mark-label-img{padding-top:5px;width:20px;height:20px}.loading-overlay[data-v-a4813dca]{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-a4813dca]{opacity:1;visibility:visible}.loading-content[data-v-a4813dca]{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-a4813dca]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #409eff;border-radius:50%;-webkit-animation:spin-a4813dca 1s linear infinite;animation:spin-a4813dca 1s linear infinite;margin:0 auto 20px}@-webkit-keyframes spin-a4813dca{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin-a4813dca{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-text[data-v-a4813dca]{font-size:16px;font-weight:500;color:#333;margin-bottom:20px}.loading-this.progress-bar[data-v-a4813dca]{width:100%;height:8px;background-color:#f0f0f0;border-radius:4px;overflow:hidden;margin-bottom:15px}.loading-this.progress-fill[data-v-a4813dca]{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-a4813dca]{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-b313ab6c]{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.18",
3
+ "version": "2.0.19-beta.0",
4
4
  "scripts": {
5
5
  "postinstall": "patch-package",
6
6
  "tip1": "仅调试本组件不涉及业务组件,请执行dev",
@@ -8,8 +8,9 @@
8
8
  "lint": "eslint \"{src,packages}/**/*.{vue,js}\" --fix",
9
9
  "prettier": "prettier --write \"packages/**/*.{js,css,less,scss,vue,html}\"",
10
10
  "=": "=============================================================",
11
- "tip2": "同时调试本组件与业务组件,请执行watch",
12
- "watch": "vue-cli-service build --watch --mode production --target lib --name fl-web-component --formats commonjs ./src/main.js",
11
+ "tip2": "同时调试本组件与业务组件,请执行watch,生产模式监听请执行watch:prod",
12
+ "watch": "vue-cli-service build --watch --mode development --target lib --name fl-web-component --formats commonjs ./src/main.js",
13
+ "watch:prod": "vue-cli-service build --watch --mode production --target lib --name fl-web-component --formats commonjs ./src/main.js",
13
14
  "build": "npm run lint && vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js",
14
15
  "build:test": "vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js",
15
16
  "publish:base": "npm run build && npm publish --registry https://registry.npmjs.org/",
@@ -138,6 +138,7 @@ import MeasureHeight from '@/utils/threejs/measure-height.js';
138
138
  import MeasureClearDistance from '@/utils/threejs/measure-clear-distance.js';
139
139
  import { parseData, processMeshData, processNodeData } from '@/utils/flgltf-parser';
140
140
  import {
141
+ GEOM_TYPES,
141
142
  handleInstancedMeshModel,
142
143
  resetProcessingState,
143
144
  PRIMITIVE_TYPE,
@@ -154,7 +155,7 @@ import { OutlinePass } from 'three/examples/jsm/postprocessing/OutlinePass.js';
154
155
  import { OutputPass } from 'three/examples/jsm/postprocessing/OutputPass.js';
155
156
  import Stats from 'three/examples/jsm/libs/stats.module.js';
156
157
  import { OBB } from 'three/examples/jsm/math/OBB.js';
157
- import boxJson from './box.json';
158
+ // import boxJson from './box.json';
158
159
  import { StreamLoader } from '../../utils/StreamLoader.js';
159
160
  import StreamLoaderParserWorker from '../../utils/StreamLoaderParser.worker.js';
160
161
  import SceneCommandService from '@/utils/threejs/editor/scene-command-service.js';
@@ -1535,8 +1536,12 @@ export default {
1535
1536
  if (isAdd && boxJson) {
1536
1537
  const arr = boxJson ? boxJson : [];
1537
1538
  const modelIds = new Set();
1539
+ const validGeomTypes = new Set(Object.values(GEOM_TYPES));
1538
1540
  for (let i = 0; i < arr.length; i++) {
1539
1541
  const it = arr[i];
1542
+ if (!validGeomTypes.has(it.geomType)) {
1543
+ continue;
1544
+ }
1540
1545
  if (it.obb.length == 0) {
1541
1546
  continue;
1542
1547
  }
@@ -1548,10 +1553,22 @@ export default {
1548
1553
  // 构造 AABB
1549
1554
  const boxThree = new this.THREE.Box3(min, max);
1550
1555
 
1551
- const hasMatrix = Array.isArray(it.matrix);
1552
- if (hasMatrix && it.matrix.length >= 16) {
1553
- const matrix = new this.THREE.Matrix4().fromArray(it.matrix);
1554
- const worldMatrix = matrix.clone();
1556
+ const hasMatrix = Array.isArray(it.matrix) && it.matrix.length >= 16;
1557
+ const hasMeshMatrix = Array.isArray(it.meshMatrix) && it.meshMatrix.length >= 16;
1558
+ let localMatrix = null;
1559
+ if (hasMatrix || hasMeshMatrix) {
1560
+ localMatrix = new this.THREE.Matrix4();
1561
+ if (hasMeshMatrix) {
1562
+ localMatrix.fromArray(it.meshMatrix);
1563
+ } else {
1564
+ localMatrix.identity();
1565
+ }
1566
+ if (hasMatrix) {
1567
+ const matrix = new this.THREE.Matrix4().fromArray(it.matrix);
1568
+ localMatrix.multiply(matrix);
1569
+ }
1570
+
1571
+ const worldMatrix = localMatrix.clone();
1555
1572
  if (this.bizToThreeMatrix) {
1556
1573
  worldMatrix.premultiply(this.bizToThreeMatrix);
1557
1574
  }
@@ -1563,14 +1580,18 @@ export default {
1563
1580
 
1564
1581
  const userData = {
1565
1582
  flag: it.flag || 1, // 默认为 1
1583
+ geomType: it.geomType,
1566
1584
  obbData: it.obb, // 存储原始 OBB 数据
1567
1585
  transparent: it.transp > 0,
1568
1586
  sourceVisible: it.visible === false ? false : true,
1569
1587
  visible: it.visible === false ? false : true, // 默认显示
1588
+ occlusionEnabled:
1589
+ it.geomType === GEOM_TYPES.geom_3d || it.geomType === GEOM_TYPES.geom_3d_obj,
1570
1590
  };
1571
1591
  if (it.flag === 1) {
1572
1592
  userData.indices = it.indices;
1573
- userData.matrix = it.matrix;
1593
+ userData.matrix = localMatrix ? localMatrix.toArray() : it.matrix;
1594
+ userData.meshMatrix = it.meshMatrix;
1574
1595
  // userData.matrix = new this.THREE.Matrix4().identity();
1575
1596
  }
1576
1597
  // 如果是 flag=3,解析并存储中心点、半轴长、旋转矩阵
@@ -1588,6 +1609,9 @@ export default {
1588
1609
  center.z
1589
1610
  );
1590
1611
  obbMatrix.multiply(rotationMatrix4);
1612
+ if (localMatrix) {
1613
+ obbMatrix.premultiply(localMatrix);
1614
+ }
1591
1615
 
1592
1616
  userData.obb = {
1593
1617
  matrix: obbMatrix,
@@ -1632,6 +1656,9 @@ export default {
1632
1656
  this.buildOctreeFromBoxIndex();
1633
1657
  console.log('time end', Date.now());
1634
1658
  },
1659
+ shouldApplyOcclusionByBox(box) {
1660
+ return !!(box && box.userData && box.userData.occlusionEnabled);
1661
+ },
1635
1662
  tryInitialCenterAfterBoundsReady() {
1636
1663
  if (this.hasExecutedCentering || this.userInteracting) return;
1637
1664
  if (
@@ -2224,6 +2251,10 @@ export default {
2224
2251
  for (let i = 0; i < hits.length; i++) {
2225
2252
  if (hits[i].box && hits[i].box.userData && hits[i].box.userData.visible === false)
2226
2253
  continue;
2254
+ if (!this.shouldApplyOcclusionByBox(hits[i].box)) {
2255
+ visibleIdSet.add(this.formatModelId(hits[i].modelId));
2256
+ continue;
2257
+ }
2227
2258
  candidates.push(hits[i]);
2228
2259
  }
2229
2260
  } else if (this._boxIndex && this._boxIndex.size > 0) {
@@ -2231,6 +2262,10 @@ export default {
2231
2262
  if (bypassList && bypassList.size > 0 && bypassList.has(modelId)) return;
2232
2263
  if (box.userData && box.userData.visible === false) return;
2233
2264
  if (this.isBoxInFrustum(box)) {
2265
+ if (!this.shouldApplyOcclusionByBox(box)) {
2266
+ visibleIdSet.add(this.formatModelId(modelId));
2267
+ return;
2268
+ }
2234
2269
  candidates.push({ modelId, box });
2235
2270
  }
2236
2271
  });
@@ -2906,6 +2941,16 @@ export default {
2906
2941
  instanceInfo && typeof instanceInfo.instanceIndex === 'number'
2907
2942
  ? instanceInfo.instanceIndex
2908
2943
  : null;
2944
+ const box =
2945
+ this._boxIndex && this._boxIndex.has(String(modelId))
2946
+ ? this._boxIndex.get(String(modelId))
2947
+ : this._boxIndex && this._boxIndex.has(modelId)
2948
+ ? this._boxIndex.get(modelId)
2949
+ : null;
2950
+ if (!this.shouldApplyOcclusionByBox(box)) {
2951
+ allInactive = false;
2952
+ continue;
2953
+ }
2909
2954
 
2910
2955
  const inFrustum = this.isModelInFrustum(child, instanceIndex, globalFrustum);
2911
2956
  const modelInVisible = toLoadSet.has(modelId);
@@ -2919,6 +2964,18 @@ export default {
2919
2964
 
2920
2965
  // 第二遍遍历:同步状态并决定是否卸载
2921
2966
  for (const modelId of modelIds) {
2967
+ const box =
2968
+ this._boxIndex && this._boxIndex.has(String(modelId))
2969
+ ? this._boxIndex.get(String(modelId))
2970
+ : this._boxIndex && this._boxIndex.has(modelId)
2971
+ ? this._boxIndex.get(modelId)
2972
+ : null;
2973
+ if (!this.shouldApplyOcclusionByBox(box)) {
2974
+ if (toLoadSet.has(modelId)) {
2975
+ toLoadSet.delete(modelId);
2976
+ }
2977
+ continue;
2978
+ }
2922
2979
  // 无论是否卸载,只要模型已在场景中,就从待加载集合中移除
2923
2980
  if (toLoadSet.has(modelId)) {
2924
2981
  toLoadSet.delete(modelId);
@@ -2940,6 +2997,18 @@ export default {
2940
2997
  ? child.parent.userData.instanceId
2941
2998
  : child.uuid;
2942
2999
  if (bypassList && bypassList.size > 0 && bypassList.has(modelId)) return;
3000
+ const box =
3001
+ this._boxIndex && this._boxIndex.has(String(modelId))
3002
+ ? this._boxIndex.get(String(modelId))
3003
+ : this._boxIndex && this._boxIndex.has(modelId)
3004
+ ? this._boxIndex.get(modelId)
3005
+ : null;
3006
+ if (!this.shouldApplyOcclusionByBox(box)) {
3007
+ if (toLoadSet.has(modelId)) {
3008
+ toLoadSet.delete(modelId);
3009
+ }
3010
+ return;
3011
+ }
2943
3012
 
2944
3013
  const inFrustum = this.isModelInFrustum(child, null, globalFrustum);
2945
3014
  let modelInVisible = toLoadSet.has(modelId);
@@ -0,0 +1,115 @@
1
+ {
2
+ "material": [
3
+ {
4
+ "id": "2:33ffd3ca-2567-48fe-9651-c8db640f4414",
5
+ "color": [0, 0, 0, 1],
6
+ "visible": true,
7
+ "transp": 0,
8
+ "documentId": "33ffd3ca-2567-48fe-9651-c8db640f4414"
9
+ },
10
+ {
11
+ "id": "5:33ffd3ca-2567-48fe-9651-c8db640f4414",
12
+ "color": [0, 0, 0, 1],
13
+ "visible": true,
14
+ "transp": 0,
15
+ "documentId": "33ffd3ca-2567-48fe-9651-c8db640f4414"
16
+ }
17
+ ],
18
+ "mergeMaterial": [],
19
+ "primitive": [
20
+ {
21
+ "id": "5_0:33ffd3ca-2567-48fe-9651-c8db640f4414",
22
+ "documentId": "33ffd3ca-2567-48fe-9651-c8db640f4414",
23
+ "material": "5:33ffd3ca-2567-48fe-9651-c8db640f4414",
24
+ "geomText": "",
25
+ "isCompressed": 0,
26
+ "position": [40, 1030, 0, 40, -970, 0],
27
+ "normal": [],
28
+ "indices": [],
29
+ "dataType": "00111",
30
+ "min": [40, -970, 0],
31
+ "max": [40, 1030, 0],
32
+ "geomType": 57351
33
+ },
34
+ {
35
+ "id": "5_1:33ffd3ca-2567-48fe-9651-c8db640f4414",
36
+ "documentId": "33ffd3ca-2567-48fe-9651-c8db640f4414",
37
+ "material": "5:33ffd3ca-2567-48fe-9651-c8db640f4414",
38
+ "geomText": "",
39
+ "isCompressed": 0,
40
+ "position": [-460, 30, 0, 540, 30, 0],
41
+ "normal": [],
42
+ "indices": [],
43
+ "dataType": "00111",
44
+ "min": [-460, -970, 0],
45
+ "max": [540, 1030, 0],
46
+ "geomType": 57351
47
+ },
48
+ {
49
+ "id": "5_2:33ffd3ca-2567-48fe-9651-c8db640f4414",
50
+ "documentId": "33ffd3ca-2567-48fe-9651-c8db640f4414",
51
+ "material": "5:33ffd3ca-2567-48fe-9651-c8db640f4414",
52
+ "geomText": "",
53
+ "isCompressed": 0,
54
+ "position": [40, 1030, 0, 35, 990, 0],
55
+ "normal": [],
56
+ "indices": [],
57
+ "dataType": "00111",
58
+ "min": [-460, -970, 0],
59
+ "max": [540, 1030, 0],
60
+ "geomType": 57351
61
+ },
62
+ {
63
+ "id": "5_3:33ffd3ca-2567-48fe-9651-c8db640f4414",
64
+ "documentId": "33ffd3ca-2567-48fe-9651-c8db640f4414",
65
+ "material": "5:33ffd3ca-2567-48fe-9651-c8db640f4414",
66
+ "geomText": "",
67
+ "isCompressed": 0,
68
+ "position": [40, 1030, 0, 45, 990, 0],
69
+ "normal": [],
70
+ "indices": [],
71
+ "dataType": "00111",
72
+ "min": [-460, -970, 0],
73
+ "max": [540, 1030, 0],
74
+ "geomType": 57351
75
+ }
76
+ ],
77
+ "mesh": [
78
+ {
79
+ "id": "5:33ffd3ca-2567-48fe-9651-c8db640f4414",
80
+ "documentId": "33ffd3ca-2567-48fe-9651-c8db640f4414",
81
+ "primitives": [
82
+ {
83
+ "prmid": "5_0:33ffd3ca-2567-48fe-9651-c8db640f4414",
84
+ "matrix": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1],
85
+ "min": [-460, -970, 0],
86
+ "max": [540, 1030, 0]
87
+ },
88
+ {
89
+ "prmid": "5_1:33ffd3ca-2567-48fe-9651-c8db640f4414",
90
+ "matrix": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1],
91
+ "min": [-460, -970, 0],
92
+ "max": [540, 1030, 0]
93
+ },
94
+ {
95
+ "prmid": "5_2:33ffd3ca-2567-48fe-9651-c8db640f4414",
96
+ "matrix": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1],
97
+ "min": [-460, -970, 0],
98
+ "max": [540, 1030, 0]
99
+ },
100
+ {
101
+ "prmid": "5_3:33ffd3ca-2567-48fe-9651-c8db640f4414",
102
+ "matrix": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1],
103
+ "min": [-460, -970, 0],
104
+ "max": [540, 1030, 0]
105
+ },
106
+ {
107
+ "prmid": "5_4:33ffd3ca-2567-48fe-9651-c8db640f4414",
108
+ "matrix": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1],
109
+ "min": [-460, -970, 0],
110
+ "max": [540, 1030, 0]
111
+ }
112
+ ]
113
+ }
114
+ ]
115
+ }