fl-web-component 1.3.5 → 1.3.6

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[data-v-e9c014d6]{width:100%;height:100%;cursor:pointer}[data-v-e9c014d6] .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-e9c014d6] .measure-label{max-width:100px;margin-top:-1em;border:10px;border-radius:5px;padding:3px 10px;cursor:pointer;color:#009bea;background-color:#f4f4f4;box-shadow:0 1px 3px 1px rgba(0,0,0,.25)}[data-v-e9c014d6] .circle-tag{width:10px;height:10px;margin-top:5px;border-radius:50%;background-color:#ff5000}[data-v-e9c014d6] .measure-label-font{word-break:break-all}[data-v-e9c014d6] .mark-label-img{padding-top:5px;width:20px;height:20px}#konva-container[data-v-32dc6e8c]{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:flex;flex-direction:column;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:flex;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:""}#svg-tigger[data-v-0ec35ee4]{cursor:pointer;height:100%;width:100%}
1
+ @charset "UTF-8";#fl-model[data-v-2d99390c]{width:100%;height:100%;cursor:pointer}[data-v-2d99390c] .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-2d99390c] .measure-label{max-width:100px;margin-top:-1em;border:10px;border-radius:5px;padding:3px 10px;cursor:pointer;color:#009bea;background-color:#f4f4f4;box-shadow:0 1px 3px 1px rgba(0,0,0,.25)}[data-v-2d99390c] .circle-tag{width:10px;height:10px;margin-top:5px;border-radius:50%;background-color:#ff5000}[data-v-2d99390c] .measure-label-font{word-break:break-all}[data-v-2d99390c] .mark-label-img{padding-top:5px;width:20px;height:20px}#konva-container[data-v-32dc6e8c]{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:flex;flex-direction:column;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:flex;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:""}#svg-tigger[data-v-0ec35ee4]{cursor:pointer;height:100%;width:100%}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fl-web-component",
3
- "version": "1.3.5",
3
+ "version": "1.3.6",
4
4
  "scripts": {
5
5
  "tip1": "仅调试本组件不涉及业务组件,请执行dev",
6
6
  "dev": "vue-cli-service serve",
@@ -26,7 +26,7 @@
26
26
  outlineComposer,
27
27
  renderTarget,
28
28
  sceneClock,
29
- mat4
29
+ mat4,
30
30
  ] = (function* (v) {
31
31
  while (true) yield v;
32
32
  })(null);
@@ -166,10 +166,10 @@
166
166
  renderer.outputEncoding = this.THREE.sRGBEncoding;
167
167
  instructions.appendChild(renderer.domElement);
168
168
  renderer.setClearAlpha(0);
169
-
169
+
170
170
  // 与校审截图功能冲突,暂时先注释掉
171
171
  // -----------
172
- // renderer.autoClear = false;
172
+ // renderer.autoClear = false;
173
173
  // renderer.autoClearColor = false;
174
174
  // renderer.autoClearDepth = false;
175
175
  // renderer.autoClearStencil = false;
@@ -226,7 +226,8 @@
226
226
  }
227
227
  const { instances, drawObjs } = parseData(data);
228
228
  if (instances.length > 0) {
229
- handleInstancedMeshModel(modelGroup,
229
+ handleInstancedMeshModel(
230
+ modelGroup,
230
231
  instances,
231
232
  drawObjs,
232
233
  '',
@@ -278,8 +279,8 @@
278
279
  });
279
280
  // cameraControls.fitToSphere(scene, true); // TODO 待处理,先用 setModelCenter 进行定位
280
281
  this.setModelCenter(modelGroup);
281
- console.log(modelGroup)
282
- this.$emit('modelLoaded')
282
+ console.log(modelGroup);
283
+ this.$emit('modelLoaded');
283
284
  // cameraControls.saveState();
284
285
  }
285
286
  },
@@ -302,14 +303,15 @@
302
303
  event,
303
304
  firstTime,
304
305
  };
305
- intersects.length && (params.v3Position = {
306
- x: intersects[0].point.x,
307
- y: intersects[0].point.y,
308
- z: intersects[0].point.z,
309
- });
306
+ intersects.length &&
307
+ (params.v3Position = {
308
+ x: intersects[0].point.x,
309
+ y: intersects[0].point.y,
310
+ z: intersects[0].point.z,
311
+ });
310
312
  this.$emit('leftMouseDown', params);
311
313
  },
312
- getRaycasterObjects(event){
314
+ getRaycasterObjects(event) {
313
315
  // 获取元素在页面中的偏移位置
314
316
  const rect = renderer.domElement.getBoundingClientRect();
315
317
  const x = event.clientX - rect.left;
@@ -548,7 +550,7 @@
548
550
  } else if (obj.isMesh) {
549
551
  let center = this.getCenter(obj);
550
552
  let size = this.getSize(obj);
551
- this.locateByCenterBox(center, size)
553
+ this.locateByCenterBox(center, size);
552
554
  }
553
555
  }
554
556
  },
@@ -621,7 +623,7 @@
621
623
  Math.abs((maxDim * 1.0) / Math.sin(fov / 2))
622
624
  );
623
625
  let direction = new this.THREE.Vector3(1, 1, 1).normalize();
624
- let p = (new this.THREE.Vector3().copy(center)).add(direction.multiplyScalar(distance));
626
+ let p = new this.THREE.Vector3().copy(center).add(direction.multiplyScalar(distance));
625
627
  let cameraCenter = new this.THREE.Vector3(p.x, p.y, p.z).addScalar(
626
628
  Math.max(size.x, size.y, size.z)
627
629
  );
@@ -693,19 +695,19 @@
693
695
  },
694
696
  // 删除场景中所有的实体
695
697
  removeAll() {
696
- return new Promise((resolve) => {
698
+ return new Promise(resolve => {
697
699
  if (scene) {
698
- this.removeTraverse()
699
- resolve()
700
+ this.removeTraverse();
701
+ resolve();
700
702
  } else {
701
- resolve()
703
+ resolve();
702
704
  }
703
- })
705
+ });
704
706
  },
705
707
  removeTraverse() {
706
- let length = modelGroup.children.length
708
+ let length = modelGroup.children.length;
707
709
  if (length > 0) {
708
- let list = modelGroup.children[0]
710
+ let list = modelGroup.children[0];
709
711
  list.traverse(item => {
710
712
  if (item.isMesh) {
711
713
  item.material.dispose();
@@ -1075,7 +1077,7 @@
1075
1077
  });
1076
1078
  },
1077
1079
  // 开启第一视角
1078
- startFirstPer({moveSpeed = 200, jumpSpeed = 200}) {
1080
+ startFirstPer({ moveSpeed = 200, jumpSpeed = 200 }) {
1079
1081
  removeSpeed = moveSpeed;
1080
1082
  upSpeed = jumpSpeed;
1081
1083
 
@@ -1478,7 +1480,7 @@
1478
1480
  let center = new this.THREE.Vector3();
1479
1481
  obj.boundingBox.getCenter(center);
1480
1482
  if (obj.userData.is3D) {
1481
- center.applyMatrix4(mat4)
1483
+ center.applyMatrix4(mat4);
1482
1484
  }
1483
1485
  return center;
1484
1486
  },
@@ -1486,7 +1488,7 @@
1486
1488
  let size = new this.THREE.Vector3();
1487
1489
  obj.boundingBox.getSize(size);
1488
1490
  if (obj.userData.is3D) {
1489
- size.applyMatrix4(mat4)
1491
+ size.applyMatrix4(mat4);
1490
1492
  }
1491
1493
  return size;
1492
1494
  },
@@ -1515,21 +1517,21 @@
1515
1517
  },
1516
1518
  // 暴露个别参数让业务自己做特殊业务。
1517
1519
  // 后续若多个业务有相同使用场景,再抽象至公共组件中。
1518
- exportParmas(){
1520
+ exportParmas() {
1519
1521
  return {
1520
1522
  renderer,
1521
1523
  camera,
1522
1524
  cameraControls,
1523
1525
  scene,
1524
- }
1526
+ };
1525
1527
  },
1526
1528
  setMouseAction(btn) {
1527
1529
  const ACTION_ENUM = {
1528
- 'none': 0,
1529
- 'rotate': 1,
1530
- 'drag': 2,
1531
- }
1532
- const {left, right} = btn;
1530
+ none: 0,
1531
+ rotate: 1,
1532
+ drag: 2,
1533
+ };
1534
+ const { left, right } = btn;
1533
1535
 
1534
1536
  left && (cameraControls.mouseButtons.left = ACTION_ENUM[left]);
1535
1537
  right && (cameraControls.mouseButtons.right = ACTION_ENUM[right]);
@@ -1544,41 +1546,41 @@
1544
1546
  cursor: pointer;
1545
1547
  }
1546
1548
  ::v-deep .tips-label {
1547
- width: 60px;
1548
- color: #000;
1549
- font: 12px Helvetica;
1550
- margin-top: -3em;
1551
- padding: 5px;
1552
- text-align: center;
1553
- vertical-align: middle;
1554
- background-color: khaki;
1555
- }
1549
+ width: 60px;
1550
+ color: #000;
1551
+ font: 12px Helvetica;
1552
+ margin-top: -3em;
1553
+ padding: 5px;
1554
+ text-align: center;
1555
+ vertical-align: middle;
1556
+ background-color: khaki;
1557
+ }
1556
1558
 
1557
- ::v-deep .measure-label {
1558
- max-width: 100px;
1559
- margin-top: -1em;
1560
- border: 10px;
1561
- border-radius: 5px;
1562
- padding: 3px 10px;
1563
- cursor: pointer;
1564
- color: rgb(0, 155, 234);
1565
- background-color: rgb(244, 244, 244);
1566
- box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.25);
1567
- }
1568
- ::v-deep .circle-tag {
1569
- width: 10px;
1570
- height: 10px;
1571
- margin-top: 5px;
1572
- border-radius: 50%;
1573
- background-color: #ff5000;
1574
- }
1575
- ::v-deep .measure-label-font {
1576
- word-break: break-all;
1577
- }
1559
+ ::v-deep .measure-label {
1560
+ max-width: 100px;
1561
+ margin-top: -1em;
1562
+ border: 10px;
1563
+ border-radius: 5px;
1564
+ padding: 3px 10px;
1565
+ cursor: pointer;
1566
+ color: rgb(0, 155, 234);
1567
+ background-color: rgb(244, 244, 244);
1568
+ box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.25);
1569
+ }
1570
+ ::v-deep .circle-tag {
1571
+ width: 10px;
1572
+ height: 10px;
1573
+ margin-top: 5px;
1574
+ border-radius: 50%;
1575
+ background-color: #ff5000;
1576
+ }
1577
+ ::v-deep .measure-label-font {
1578
+ word-break: break-all;
1579
+ }
1578
1580
 
1579
- ::v-deep .mark-label-img {
1580
- padding-top: 5px;
1581
- width: 20px;
1582
- height: 20px;
1583
- }
1581
+ ::v-deep .mark-label-img {
1582
+ padding-top: 5px;
1583
+ width: 20px;
1584
+ height: 20px;
1585
+ }
1584
1586
  </style>