fl-web-component 1.1.11 → 1.2.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.
- package/README.md +3 -0
- package/dist/fl-web-component.common.js +235 -97
- package/dist/fl-web-component.css +1 -1
- package/package.json +1 -1
- package/packages/components/com-flcanvas/components/entityFormatting.js +4 -4
- package/packages/components/com-flcanvas/index.vue +129 -26
- package/packages/components/com-graphics/index.vue +41 -5
- package/src/utils/flgltf-parser.js +1 -1
- package/src/utils/instance-parser.js +2 -2
package/README.md
CHANGED
|
@@ -3121,13 +3121,6 @@ Factory_1.Factory.addGetterSetter(Node_1.Node, 'pixelSize', 8, (0, Validators_1.
|
|
|
3121
3121
|
|
|
3122
3122
|
/***/ }),
|
|
3123
3123
|
|
|
3124
|
-
/***/ "40ae":
|
|
3125
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
3126
|
-
|
|
3127
|
-
// extracted by mini-css-extract-plugin
|
|
3128
|
-
|
|
3129
|
-
/***/ }),
|
|
3130
|
-
|
|
3131
3124
|
/***/ "4546":
|
|
3132
3125
|
/***/ (function(module, exports, __webpack_require__) {
|
|
3133
3126
|
|
|
@@ -3338,6 +3331,17 @@ Factory_1.Factory.addGetterSetter(Node_1.Node, 'hue', 0, (0, Validators_1.getNum
|
|
|
3338
3331
|
Factory_1.Factory.addGetterSetter(Node_1.Node, 'saturation', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);
|
|
3339
3332
|
Factory_1.Factory.addGetterSetter(Node_1.Node, 'value', 0, (0, Validators_1.getNumberValidator)(), Factory_1.Factory.afterSetFilter);
|
|
3340
3333
|
|
|
3334
|
+
/***/ }),
|
|
3335
|
+
|
|
3336
|
+
/***/ "46ca":
|
|
3337
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
3338
|
+
|
|
3339
|
+
"use strict";
|
|
3340
|
+
/* 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_07e32868_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("92c4");
|
|
3341
|
+
/* 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_07e32868_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_07e32868_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
|
|
3342
|
+
/* unused harmony reexport * */
|
|
3343
|
+
|
|
3344
|
+
|
|
3341
3345
|
/***/ }),
|
|
3342
3346
|
|
|
3343
3347
|
/***/ "4971":
|
|
@@ -6253,17 +6257,6 @@ Rect.prototype.className = 'Rect';
|
|
|
6253
6257
|
(0, Global_1._registerNode)(Rect);
|
|
6254
6258
|
Factory_1.Factory.addGetterSetter(Rect, 'cornerRadius', 0, (0, Validators_1.getNumberOrArrayOfNumbersValidator)(4));
|
|
6255
6259
|
|
|
6256
|
-
/***/ }),
|
|
6257
|
-
|
|
6258
|
-
/***/ "6266":
|
|
6259
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
6260
|
-
|
|
6261
|
-
"use strict";
|
|
6262
|
-
/* 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_090a926a_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("40ae");
|
|
6263
|
-
/* 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_090a926a_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_090a926a_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
|
|
6264
|
-
/* unused harmony reexport * */
|
|
6265
|
-
|
|
6266
|
-
|
|
6267
6260
|
/***/ }),
|
|
6268
6261
|
|
|
6269
6262
|
/***/ "6b7e":
|
|
@@ -22241,17 +22234,6 @@ Factory_1.Factory.addGetterSetter(Node_1.Node, 'green', 0, function (val) {
|
|
|
22241
22234
|
});
|
|
22242
22235
|
Factory_1.Factory.addGetterSetter(Node_1.Node, 'blue', 0, Validators_1.RGBComponent, Factory_1.Factory.afterSetFilter);
|
|
22243
22236
|
|
|
22244
|
-
/***/ }),
|
|
22245
|
-
|
|
22246
|
-
/***/ "8e95":
|
|
22247
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
22248
|
-
|
|
22249
|
-
"use strict";
|
|
22250
|
-
/* 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_0a4da738_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f24d");
|
|
22251
|
-
/* 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_0a4da738_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_0a4da738_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
|
|
22252
|
-
/* unused harmony reexport * */
|
|
22253
|
-
|
|
22254
|
-
|
|
22255
22237
|
/***/ }),
|
|
22256
22238
|
|
|
22257
22239
|
/***/ "926b":
|
|
@@ -22304,6 +22286,13 @@ exports.HSL = HSL;
|
|
|
22304
22286
|
|
|
22305
22287
|
/***/ }),
|
|
22306
22288
|
|
|
22289
|
+
/***/ "92c4":
|
|
22290
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
22291
|
+
|
|
22292
|
+
// extracted by mini-css-extract-plugin
|
|
22293
|
+
|
|
22294
|
+
/***/ }),
|
|
22295
|
+
|
|
22307
22296
|
/***/ "9470":
|
|
22308
22297
|
/***/ (function(module, exports, __webpack_require__) {
|
|
22309
22298
|
|
|
@@ -23540,6 +23529,17 @@ Factory_1.Factory.backCompat(Sprite, {
|
|
|
23540
23529
|
setIndex: 'setFrameIndex'
|
|
23541
23530
|
});
|
|
23542
23531
|
|
|
23532
|
+
/***/ }),
|
|
23533
|
+
|
|
23534
|
+
/***/ "a988":
|
|
23535
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
23536
|
+
|
|
23537
|
+
"use strict";
|
|
23538
|
+
/* 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_4b99f9dc_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cfb3");
|
|
23539
|
+
/* 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_4b99f9dc_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_4b99f9dc_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
|
|
23540
|
+
/* unused harmony reexport * */
|
|
23541
|
+
|
|
23542
|
+
|
|
23543
23543
|
/***/ }),
|
|
23544
23544
|
|
|
23545
23545
|
/***/ "af55":
|
|
@@ -24961,6 +24961,13 @@ exports.Grayscale = Grayscale;
|
|
|
24961
24961
|
|
|
24962
24962
|
/***/ }),
|
|
24963
24963
|
|
|
24964
|
+
/***/ "cfb3":
|
|
24965
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
24966
|
+
|
|
24967
|
+
// extracted by mini-css-extract-plugin
|
|
24968
|
+
|
|
24969
|
+
/***/ }),
|
|
24970
|
+
|
|
24964
24971
|
/***/ "d488":
|
|
24965
24972
|
/***/ (function(module, exports, __webpack_require__) {
|
|
24966
24973
|
|
|
@@ -28357,13 +28364,6 @@ exports.Factory = {
|
|
|
28357
28364
|
|
|
28358
28365
|
/***/ }),
|
|
28359
28366
|
|
|
28360
|
-
/***/ "f24d":
|
|
28361
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
28362
|
-
|
|
28363
|
-
// extracted by mini-css-extract-plugin
|
|
28364
|
-
|
|
28365
|
-
/***/ }),
|
|
28366
|
-
|
|
28367
28367
|
/***/ "f35c":
|
|
28368
28368
|
/***/ (function(module, exports, __webpack_require__) {
|
|
28369
28369
|
|
|
@@ -29241,8 +29241,8 @@ if (typeof window !== 'undefined') {
|
|
|
29241
29241
|
// Indicate to webpack that this file can be concatenated
|
|
29242
29242
|
/* harmony default export */ var setPublicPath = (null);
|
|
29243
29243
|
|
|
29244
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
29245
|
-
var
|
|
29244
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"213d84a7-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=07e32868&scoped=true
|
|
29245
|
+
var com_graphicsvue_type_template_id_07e32868_scoped_true_render = function render() {
|
|
29246
29246
|
var _vm = this,
|
|
29247
29247
|
_c = _vm._self._c;
|
|
29248
29248
|
return _c('div', {
|
|
@@ -29253,7 +29253,7 @@ var com_graphicsvue_type_template_id_090a926a_scoped_true_render = function rend
|
|
|
29253
29253
|
};
|
|
29254
29254
|
var staticRenderFns = [];
|
|
29255
29255
|
|
|
29256
|
-
// CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=template&id=
|
|
29256
|
+
// CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=template&id=07e32868&scoped=true
|
|
29257
29257
|
|
|
29258
29258
|
// CONCATENATED MODULE: ./node_modules/camera-controls/dist/camera-controls.module.js
|
|
29259
29259
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
@@ -57208,7 +57208,7 @@ function parseData(input) {
|
|
|
57208
57208
|
drawObjs: Array.from(drawObjMap.values()),
|
|
57209
57209
|
instances: formatInstances
|
|
57210
57210
|
};
|
|
57211
|
-
console.log('parseData', map);
|
|
57211
|
+
// console.log('parseData', map);
|
|
57212
57212
|
return map;
|
|
57213
57213
|
}
|
|
57214
57214
|
|
|
@@ -59486,8 +59486,8 @@ function handleInstancedMeshModel(instances, drawObjs, type, scene, customColor,
|
|
|
59486
59486
|
for (var _i = 0; _i < instances.length; _i++) {
|
|
59487
59487
|
_loop(_i);
|
|
59488
59488
|
}
|
|
59489
|
-
console.log('modelGroup', modelGroup);
|
|
59490
|
-
console.log('drawObjMapInstance', drawObjMapInstance);
|
|
59489
|
+
// console.log('modelGroup', modelGroup);
|
|
59490
|
+
// console.log('drawObjMapInstance', drawObjMapInstance);
|
|
59491
59491
|
return modelGroup;
|
|
59492
59492
|
// timeRender();
|
|
59493
59493
|
// console.log('scene', scene)
|
|
@@ -61069,11 +61069,32 @@ var guiParams = {
|
|
|
61069
61069
|
this.initControl();
|
|
61070
61070
|
this.initLight();
|
|
61071
61071
|
this.initLabelRender();
|
|
61072
|
-
|
|
61073
|
-
|
|
61072
|
+
// 判断是设备是手机还是电脑
|
|
61073
|
+
var isMobileDevice = this.isMobileDevice();
|
|
61074
|
+
if (isMobileDevice) {
|
|
61075
|
+
com_graphicsvue_type_script_lang_js_renderer.domElement.addEventListener('pointerup', this.mouseClick, false);
|
|
61076
|
+
com_graphicsvue_type_script_lang_js_renderer.domElement.addEventListener('pointerdown', this.mouseDown, false);
|
|
61077
|
+
} else {
|
|
61078
|
+
com_graphicsvue_type_script_lang_js_renderer.domElement.addEventListener('mouseup', this.mouseClick, false);
|
|
61079
|
+
com_graphicsvue_type_script_lang_js_renderer.domElement.addEventListener('mousedown', this.mouseDown, false);
|
|
61080
|
+
}
|
|
61074
61081
|
this.animate();
|
|
61075
61082
|
},
|
|
61076
61083
|
methods: {
|
|
61084
|
+
// 判断是设备是手机还是电脑
|
|
61085
|
+
isMobileDevice: function isMobileDevice() {
|
|
61086
|
+
var userAgent = navigator.userAgent || navigator.vendor || window.opera;
|
|
61087
|
+
if (/windows phone/i.test(userAgent)) {
|
|
61088
|
+
return true;
|
|
61089
|
+
}
|
|
61090
|
+
if (/android/i.test(userAgent)) {
|
|
61091
|
+
return true;
|
|
61092
|
+
}
|
|
61093
|
+
if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
|
|
61094
|
+
return true;
|
|
61095
|
+
}
|
|
61096
|
+
return false;
|
|
61097
|
+
},
|
|
61077
61098
|
initRender: function initRender() {
|
|
61078
61099
|
com_graphicsvue_type_script_lang_js_renderer = new this.THREE.WebGLRenderer({
|
|
61079
61100
|
antialias: true,
|
|
@@ -61349,8 +61370,6 @@ var guiParams = {
|
|
|
61349
61370
|
});
|
|
61350
61371
|
break;
|
|
61351
61372
|
case 'opacity':
|
|
61352
|
-
// obj.material.opacity = ele.attr[key];
|
|
61353
|
-
// obj.material.transparent = true;
|
|
61354
61373
|
targetObj.forEach(function (children) {
|
|
61355
61374
|
if (children.isMesh) {
|
|
61356
61375
|
var opacity = children.geometry.attributes.opacity.array;
|
|
@@ -61440,7 +61459,6 @@ var guiParams = {
|
|
|
61440
61459
|
} else if (obj.isMesh) {
|
|
61441
61460
|
this.setModelCenter(obj.parent);
|
|
61442
61461
|
}
|
|
61443
|
-
// cameraControls.fitToBox( obj, true);
|
|
61444
61462
|
}
|
|
61445
61463
|
},
|
|
61446
61464
|
// 根据自定义参数修改模型
|
|
@@ -62264,6 +62282,24 @@ var guiParams = {
|
|
|
62264
62282
|
}
|
|
62265
62283
|
scenePass = null;
|
|
62266
62284
|
},
|
|
62285
|
+
// 获取中心点
|
|
62286
|
+
getCenter: function getCenter(obj) {
|
|
62287
|
+
console.log(obj);
|
|
62288
|
+
var center = new this.THREE.Vector3();
|
|
62289
|
+
obj.boundingBox.getCenter(center);
|
|
62290
|
+
var mat4 = new this.THREE.Matrix4();
|
|
62291
|
+
mat4.makeRotationX(-Math.PI / 2);
|
|
62292
|
+
center.applyMatrix4(mat4);
|
|
62293
|
+
return center;
|
|
62294
|
+
},
|
|
62295
|
+
getSize: function getSize(obj) {
|
|
62296
|
+
var size = new this.THREE.Vector3();
|
|
62297
|
+
obj.boundingBox.getSize(size);
|
|
62298
|
+
var mat4 = new this.THREE.Matrix4();
|
|
62299
|
+
mat4.makeRotationX(-Math.PI / 2);
|
|
62300
|
+
size.applyMatrix4(mat4);
|
|
62301
|
+
return size;
|
|
62302
|
+
},
|
|
62267
62303
|
animate: function animate() {
|
|
62268
62304
|
var delta = fpsClock.getDelta();
|
|
62269
62305
|
timeStamp += delta;
|
|
@@ -62291,8 +62327,8 @@ var guiParams = {
|
|
|
62291
62327
|
});
|
|
62292
62328
|
// CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=script&lang=js
|
|
62293
62329
|
/* harmony default export */ var components_com_graphicsvue_type_script_lang_js = (com_graphicsvue_type_script_lang_js);
|
|
62294
|
-
// EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=
|
|
62295
|
-
var
|
|
62330
|
+
// EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=07e32868&prod&lang=scss&scoped=true
|
|
62331
|
+
var com_graphicsvue_type_style_index_0_id_07e32868_prod_lang_scss_scoped_true = __webpack_require__("46ca");
|
|
62296
62332
|
|
|
62297
62333
|
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
|
|
62298
62334
|
/* globals __VUE_SSR_CONTEXT__ */
|
|
@@ -62403,18 +62439,18 @@ function normalizeComponent(
|
|
|
62403
62439
|
|
|
62404
62440
|
var component = normalizeComponent(
|
|
62405
62441
|
components_com_graphicsvue_type_script_lang_js,
|
|
62406
|
-
|
|
62442
|
+
com_graphicsvue_type_template_id_07e32868_scoped_true_render,
|
|
62407
62443
|
staticRenderFns,
|
|
62408
62444
|
false,
|
|
62409
62445
|
null,
|
|
62410
|
-
"
|
|
62446
|
+
"07e32868",
|
|
62411
62447
|
null
|
|
62412
62448
|
|
|
62413
62449
|
)
|
|
62414
62450
|
|
|
62415
62451
|
/* harmony default export */ var com_graphics = (component.exports);
|
|
62416
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
62417
|
-
var
|
|
62452
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"213d84a7-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=4b99f9dc&scoped=true
|
|
62453
|
+
var com_flcanvasvue_type_template_id_4b99f9dc_scoped_true_render = function render() {
|
|
62418
62454
|
var _vm = this,
|
|
62419
62455
|
_c = _vm._self._c;
|
|
62420
62456
|
return _c('div', {
|
|
@@ -62427,9 +62463,9 @@ var com_flcanvasvue_type_template_id_0a4da738_scoped_true_render = function rend
|
|
|
62427
62463
|
}
|
|
62428
62464
|
});
|
|
62429
62465
|
};
|
|
62430
|
-
var
|
|
62466
|
+
var com_flcanvasvue_type_template_id_4b99f9dc_scoped_true_staticRenderFns = [];
|
|
62431
62467
|
|
|
62432
|
-
// CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=template&id=
|
|
62468
|
+
// CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=template&id=4b99f9dc&scoped=true
|
|
62433
62469
|
|
|
62434
62470
|
// EXTERNAL MODULE: ./node_modules/konva/lib/index.js
|
|
62435
62471
|
var lib = __webpack_require__("362d");
|
|
@@ -64793,7 +64829,7 @@ function getColors() {
|
|
|
64793
64829
|
return colors;
|
|
64794
64830
|
}
|
|
64795
64831
|
// 居中定位
|
|
64796
|
-
function
|
|
64832
|
+
function entityFormatting_centering(obj, container, konvaStage, scaleBy) {
|
|
64797
64833
|
// 由于图纸结构解析的变更 可能最外层的group x y 都是0所以 需要拿到x y有值的group
|
|
64798
64834
|
var filterGroup = obj.filter(function (item) {
|
|
64799
64835
|
return item.attrs.isGroup && !item.attrs.isMix;
|
|
@@ -65002,7 +65038,7 @@ function drawLine(recordDxf, entity, group, key, configParams) {
|
|
|
65002
65038
|
entityId: key,
|
|
65003
65039
|
isGroup: false,
|
|
65004
65040
|
stroke: configParams ? configParams.color : "#000",
|
|
65005
|
-
customColor: configParams ? configParams.color : "",
|
|
65041
|
+
customColor: configParams ? configParams.color : "#000",
|
|
65006
65042
|
strokeWidth: width,
|
|
65007
65043
|
visible: configParams ? configParams.visible : true,
|
|
65008
65044
|
oldstrokeLength: width
|
|
@@ -65046,7 +65082,7 @@ function entityFormatting_drawText(recordDxf, entity, group, key, configParams)
|
|
|
65046
65082
|
text: text,
|
|
65047
65083
|
fontSize: fontSize,
|
|
65048
65084
|
fill: configParams ? configParams.color : "#000",
|
|
65049
|
-
customColor: configParams ? configParams.color : "",
|
|
65085
|
+
customColor: configParams ? configParams.color : "#000",
|
|
65050
65086
|
name: key.replace(/\s*/g, ""),
|
|
65051
65087
|
entityId: key,
|
|
65052
65088
|
fontFamily: "SimSun",
|
|
@@ -65100,7 +65136,7 @@ function drawLwLine(recordDxf, entity, group, key, configParams) {
|
|
|
65100
65136
|
name: key.replace(/\s*/g, ""),
|
|
65101
65137
|
entityId: key,
|
|
65102
65138
|
stroke: configParams ? configParams.color : "#000",
|
|
65103
|
-
customColor: configParams ? configParams.color : "",
|
|
65139
|
+
customColor: configParams ? configParams.color : "#000",
|
|
65104
65140
|
strokeWidth: width,
|
|
65105
65141
|
visible: configParams ? configParams.visible : true,
|
|
65106
65142
|
oldstrokeLength: width
|
|
@@ -65136,7 +65172,7 @@ function drawSpline(recordDxf, entity, group, key, configParams) {
|
|
|
65136
65172
|
entityId: key,
|
|
65137
65173
|
isGroup: false,
|
|
65138
65174
|
stroke: configParams ? configParams : "#000",
|
|
65139
|
-
customColor: configParams ? configParams.color : "",
|
|
65175
|
+
customColor: configParams ? configParams.color : "#000",
|
|
65140
65176
|
strokeWidth: width,
|
|
65141
65177
|
visible: configParams ? configParams.visible : true,
|
|
65142
65178
|
oldstrokeLength: width
|
|
@@ -65212,6 +65248,8 @@ function drawInsert(recordDxf, entities, group, key, configParams, konvaLayer) {
|
|
|
65212
65248
|
}
|
|
65213
65249
|
}
|
|
65214
65250
|
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./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=script&lang=js
|
|
65251
|
+
var inspectionRect = null;
|
|
65252
|
+
var preTarget = [];
|
|
65215
65253
|
function base64ToBlob(base64) {
|
|
65216
65254
|
var byteCharacters = atob(base64);
|
|
65217
65255
|
var byteArrays = [];
|
|
@@ -65248,7 +65286,6 @@ function downloadPDF(base64, fileName) {
|
|
|
65248
65286
|
|
|
65249
65287
|
var konvaStage = null,
|
|
65250
65288
|
konvaLayer = null;
|
|
65251
|
-
var recordLayerConfig = {};
|
|
65252
65289
|
/* harmony default export */ var com_flcanvasvue_type_script_lang_js = ({
|
|
65253
65290
|
name: 'Fl2dcanvas',
|
|
65254
65291
|
components: {},
|
|
@@ -65259,6 +65296,7 @@ var recordLayerConfig = {};
|
|
|
65259
65296
|
var _this = this;
|
|
65260
65297
|
//resize方法
|
|
65261
65298
|
window.addEventListener('resize', function () {
|
|
65299
|
+
console.log('resize');
|
|
65262
65300
|
if (konvaStage) {
|
|
65263
65301
|
var obj = document.getElementById('konva-container');
|
|
65264
65302
|
konvaStage.setWidth(obj.clientWidth);
|
|
@@ -65289,7 +65327,6 @@ var recordLayerConfig = {};
|
|
|
65289
65327
|
var scaleBy = 1.5;
|
|
65290
65328
|
//初始化缩放方法
|
|
65291
65329
|
konvaStage.on('wheel', function (e) {
|
|
65292
|
-
console.log(e);
|
|
65293
65330
|
e.evt.preventDefault();
|
|
65294
65331
|
var oldScale = konvaStage.scaleX();
|
|
65295
65332
|
var pointer = konvaStage.getPointerPosition();
|
|
@@ -65317,6 +65354,28 @@ var recordLayerConfig = {};
|
|
|
65317
65354
|
};
|
|
65318
65355
|
konvaStage.position(newPos);
|
|
65319
65356
|
});
|
|
65357
|
+
// 点击事件
|
|
65358
|
+
konvaStage.on('click', function (e) {
|
|
65359
|
+
var clickObj = null;
|
|
65360
|
+
var position = konvaStage.getPointerPosition();
|
|
65361
|
+
var x = (position.x - konvaStage.getX()) / konvaStage.scaleX();
|
|
65362
|
+
var y = (position.y - konvaStage.getY()) / konvaStage.scaleY();
|
|
65363
|
+
inspectionRect.setX(x);
|
|
65364
|
+
inspectionRect.setY(y);
|
|
65365
|
+
position = null;
|
|
65366
|
+
if (e.target.attrs.hasOwnProperty("className") && e.target.attrs.className === "stage") {
|
|
65367
|
+
var obj = _this.getIntersects(inspectionRect.getClientRect());
|
|
65368
|
+
console.log(obj);
|
|
65369
|
+
clickObj = obj.length > 0 ? obj[obj.length - 1] : null;
|
|
65370
|
+
} else {
|
|
65371
|
+
clickObj = e.target.attrs;
|
|
65372
|
+
}
|
|
65373
|
+
if (e.evt.button === 0) {
|
|
65374
|
+
_this.$emit('leftClick', clickObj);
|
|
65375
|
+
} else if (e.evt.button === 2) {
|
|
65376
|
+
_this.$emit('rightClick', clickObj);
|
|
65377
|
+
}
|
|
65378
|
+
});
|
|
65320
65379
|
});
|
|
65321
65380
|
|
|
65322
65381
|
//create方法结束
|
|
@@ -65325,25 +65384,40 @@ var recordLayerConfig = {};
|
|
|
65325
65384
|
|
|
65326
65385
|
methods: {
|
|
65327
65386
|
loadDxf: function loadDxf(data) {
|
|
65328
|
-
|
|
65387
|
+
var layerConfigs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
65388
|
+
konvaLayer.destroyChildren();
|
|
65389
|
+
konvaStage.scale({
|
|
65390
|
+
x: 1,
|
|
65391
|
+
y: 1
|
|
65392
|
+
});
|
|
65393
|
+
konvaStage.setX(0);
|
|
65394
|
+
konvaStage.setY(0);
|
|
65395
|
+
inspectionRect = null;
|
|
65396
|
+
inspectionRect = new lib_default.a.Rect({
|
|
65397
|
+
width: 1.5,
|
|
65398
|
+
height: 1.5,
|
|
65399
|
+
x: 0,
|
|
65400
|
+
y: 0,
|
|
65401
|
+
stroke: "#000",
|
|
65402
|
+
strokeWidth: 0.2,
|
|
65403
|
+
name: "intersect-rect",
|
|
65404
|
+
visible: false,
|
|
65405
|
+
opacity: 0
|
|
65406
|
+
});
|
|
65407
|
+
konvaLayer.add(inspectionRect);
|
|
65329
65408
|
var parser = new dxf_parser_dist();
|
|
65330
65409
|
var dxf = parser.parse(data);
|
|
65331
65410
|
var entities = formatEntity(dxf.entities);
|
|
65332
|
-
console.log(entities);
|
|
65333
65411
|
var layers = dxf.tables.layer.layers;
|
|
65334
|
-
//加载图纸
|
|
65335
|
-
|
|
65336
|
-
console.log('layers');
|
|
65337
|
-
console.log(layers);
|
|
65338
65412
|
var _loop = function _loop() {
|
|
65339
65413
|
if (entities[key]) {
|
|
65340
65414
|
var group = [];
|
|
65341
65415
|
var l = entities[key].length;
|
|
65342
|
-
var layerConfig =
|
|
65416
|
+
var layerConfig = layerConfigs[key];
|
|
65343
65417
|
var configParams = layerConfig && Object.keys(layerConfig).length > 0 ? layerConfig : null;
|
|
65344
65418
|
for (var i = 0; i < l; i++) {
|
|
65345
65419
|
var type = entities[key][i].type;
|
|
65346
|
-
handleFn(type, dxf, entities[key][i], group, key, configParams, konvaLayer,
|
|
65420
|
+
handleFn(type, dxf, entities[key][i], group, key, configParams, konvaLayer, layerConfigs);
|
|
65347
65421
|
}
|
|
65348
65422
|
if (!konvaLayer) return {
|
|
65349
65423
|
v: void 0
|
|
@@ -65361,7 +65435,7 @@ var recordLayerConfig = {};
|
|
|
65361
65435
|
name: key.replace(/\s*/g, ''),
|
|
65362
65436
|
entityId: key,
|
|
65363
65437
|
stroke: configParams ? configParams.color : '#000',
|
|
65364
|
-
customColor: configParams ? configParams.color : '',
|
|
65438
|
+
customColor: configParams ? configParams.color : '#000',
|
|
65365
65439
|
visible: configParams ? configParams.visible : true,
|
|
65366
65440
|
sceneFunc: function sceneFunc(context, shape) {
|
|
65367
65441
|
context.beginPath();
|
|
@@ -65420,21 +65494,22 @@ var recordLayerConfig = {};
|
|
|
65420
65494
|
scale = Number((boundingRect.width / boundingRect.height).toFixed(1));
|
|
65421
65495
|
scale = scale < 2 ? 2 : scale;
|
|
65422
65496
|
}
|
|
65423
|
-
|
|
65424
|
-
|
|
65425
|
-
|
|
65426
|
-
|
|
65427
|
-
})*/
|
|
65497
|
+
konvaStage.scale({
|
|
65498
|
+
x: scale,
|
|
65499
|
+
y: scale
|
|
65500
|
+
});
|
|
65428
65501
|
var boundingScale = konvaLayer.getClientRect();
|
|
65429
65502
|
//平移视口
|
|
65430
65503
|
var x = this.$refs.svgDraw.clientWidth / 2 - (Math.ceil(boundingScale.width) / 2 + boundingScale.x / 2);
|
|
65431
65504
|
var y = this.$refs.svgDraw.clientHeight / 2 - (Math.ceil(boundingScale.height) / 2 + boundingScale.y);
|
|
65432
|
-
|
|
65433
|
-
|
|
65434
|
-
|
|
65435
|
-
|
|
65436
|
-
//
|
|
65437
|
-
konvaStage.
|
|
65505
|
+
|
|
65506
|
+
// konvaStage.scale({
|
|
65507
|
+
// x: 2,
|
|
65508
|
+
// y: 2,
|
|
65509
|
+
// });
|
|
65510
|
+
konvaStage.setX(x);
|
|
65511
|
+
konvaStage.setY(y); // 750
|
|
65512
|
+
this.$emit('loaded');
|
|
65438
65513
|
},
|
|
65439
65514
|
toPdf: function toPdf(name) {
|
|
65440
65515
|
// get data URL with default settings
|
|
@@ -65467,6 +65542,69 @@ var recordLayerConfig = {};
|
|
|
65467
65542
|
konvaLayer = null;
|
|
65468
65543
|
konvaStage = null;
|
|
65469
65544
|
},
|
|
65545
|
+
getIntersects: function getIntersects(rect) {
|
|
65546
|
+
var l = konvaLayer.children.length;
|
|
65547
|
+
var intersects = [];
|
|
65548
|
+
for (var index = 0; index < l; index++) {
|
|
65549
|
+
var ele = konvaLayer.children[index];
|
|
65550
|
+
if (ele.attrs.name !== "intersect-rect") {
|
|
65551
|
+
var boundingRect = ele.getClientRect();
|
|
65552
|
+
if (!(rect.x + rect.width < boundingRect.x || boundingRect.x + boundingRect.width < rect.x || rect.y + rect.height < boundingRect.y || boundingRect.y + boundingRect.height < rect.y)) {
|
|
65553
|
+
intersects.push(ele);
|
|
65554
|
+
}
|
|
65555
|
+
}
|
|
65556
|
+
}
|
|
65557
|
+
return intersects;
|
|
65558
|
+
},
|
|
65559
|
+
// 参数说明arr数组,每个元素为一个对象,对象包含id, color属性
|
|
65560
|
+
highLight: function highLight(arr) {
|
|
65561
|
+
for (var index = 0; index < arr.length; index++) {
|
|
65562
|
+
var element = arr[index];
|
|
65563
|
+
var name = element.id.replace(/\s*/g, "");
|
|
65564
|
+
var obj = konvaStage.find("." + name);
|
|
65565
|
+
if (obj.length > 0) {
|
|
65566
|
+
var lists = obj.filter(function (item) {
|
|
65567
|
+
return !item.attrs.isGroup;
|
|
65568
|
+
});
|
|
65569
|
+
for (var i = 0; i < lists.length; i++) {
|
|
65570
|
+
preTarget.push(lists[i]);
|
|
65571
|
+
var ele = lists[i];
|
|
65572
|
+
if (ele.className === "Text") {
|
|
65573
|
+
ele.setFill(element.color);
|
|
65574
|
+
ele.setStroke(element.color);
|
|
65575
|
+
} else {
|
|
65576
|
+
ele.setStroke(element.color);
|
|
65577
|
+
}
|
|
65578
|
+
}
|
|
65579
|
+
}
|
|
65580
|
+
}
|
|
65581
|
+
},
|
|
65582
|
+
resetHighLight: function resetHighLight() {
|
|
65583
|
+
for (var index = 0; index < preTarget.length; index++) {
|
|
65584
|
+
var element = preTarget[index];
|
|
65585
|
+
if (element.className === "Text") {
|
|
65586
|
+
element.setFill(element.attrs.customColor);
|
|
65587
|
+
element.setStroke(element.attrs.customColor);
|
|
65588
|
+
} else {
|
|
65589
|
+
element.setStroke(element.attrs.customColor);
|
|
65590
|
+
}
|
|
65591
|
+
}
|
|
65592
|
+
preTarget.splice(0);
|
|
65593
|
+
},
|
|
65594
|
+
// 居中定位
|
|
65595
|
+
centering: function centering(id) {
|
|
65596
|
+
var entityId = id.replace(/\s*/g, "");
|
|
65597
|
+
var obj = konvaStage.find("." + entityId);
|
|
65598
|
+
var scaleBy = 8;
|
|
65599
|
+
if (obj.length > 0) {
|
|
65600
|
+
konvaStage.scale({
|
|
65601
|
+
x: scaleBy,
|
|
65602
|
+
y: scaleBy
|
|
65603
|
+
});
|
|
65604
|
+
entityFormatting_centering(obj, this.$refs.svgDraw, konvaStage, scaleBy);
|
|
65605
|
+
obj = null;
|
|
65606
|
+
}
|
|
65607
|
+
},
|
|
65470
65608
|
beforeDestroy: function beforeDestroy() {
|
|
65471
65609
|
this.clearCache();
|
|
65472
65610
|
}
|
|
@@ -65474,8 +65612,8 @@ var recordLayerConfig = {};
|
|
|
65474
65612
|
});
|
|
65475
65613
|
// CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=script&lang=js
|
|
65476
65614
|
/* harmony default export */ var components_com_flcanvasvue_type_script_lang_js = (com_flcanvasvue_type_script_lang_js);
|
|
65477
|
-
// EXTERNAL MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=style&index=0&id=
|
|
65478
|
-
var
|
|
65615
|
+
// EXTERNAL MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=style&index=0&id=4b99f9dc&prod&lang=scss&scoped=true
|
|
65616
|
+
var com_flcanvasvue_type_style_index_0_id_4b99f9dc_prod_lang_scss_scoped_true = __webpack_require__("a988");
|
|
65479
65617
|
|
|
65480
65618
|
// CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue
|
|
65481
65619
|
|
|
@@ -65488,17 +65626,17 @@ var com_flcanvasvue_type_style_index_0_id_0a4da738_prod_lang_scss_scoped_true =
|
|
|
65488
65626
|
|
|
65489
65627
|
var com_flcanvas_component = normalizeComponent(
|
|
65490
65628
|
components_com_flcanvasvue_type_script_lang_js,
|
|
65491
|
-
|
|
65492
|
-
|
|
65629
|
+
com_flcanvasvue_type_template_id_4b99f9dc_scoped_true_render,
|
|
65630
|
+
com_flcanvasvue_type_template_id_4b99f9dc_scoped_true_staticRenderFns,
|
|
65493
65631
|
false,
|
|
65494
65632
|
null,
|
|
65495
|
-
"
|
|
65633
|
+
"4b99f9dc",
|
|
65496
65634
|
null
|
|
65497
65635
|
|
|
65498
65636
|
)
|
|
65499
65637
|
|
|
65500
65638
|
/* harmony default export */ var com_flcanvas = (com_flcanvas_component.exports);
|
|
65501
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
65639
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"213d84a7-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
|
|
65502
65640
|
var per_controlvue_type_template_id_f547d5c6_scoped_true_render = function render() {
|
|
65503
65641
|
var _vm = this,
|
|
65504
65642
|
_c = _vm._self._c;
|
|
@@ -65606,7 +65744,7 @@ var per_control_component = normalizeComponent(
|
|
|
65606
65744
|
)
|
|
65607
65745
|
|
|
65608
65746
|
/* harmony default export */ var per_control = (per_control_component.exports);
|
|
65609
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
65747
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"213d84a7-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=09d5c9d8&scoped=true
|
|
65610
65748
|
var pidvue_type_template_id_09d5c9d8_scoped_true_render = function render() {
|
|
65611
65749
|
var _vm = this,
|
|
65612
65750
|
_c = _vm._self._c;
|
|
@@ -65635,7 +65773,7 @@ var preTargetCon = [],
|
|
|
65635
65773
|
preTargetStyle = [];
|
|
65636
65774
|
var pidvue_type_script_lang_js_firstTime = 0,
|
|
65637
65775
|
pidvue_type_script_lang_js_lastTime = 0;
|
|
65638
|
-
var
|
|
65776
|
+
var pidvue_type_script_lang_js_inspectionRect = null,
|
|
65639
65777
|
pointerRect = null;
|
|
65640
65778
|
/* harmony default export */ var pidvue_type_script_lang_js = ({
|
|
65641
65779
|
name: 'FlSvg',
|
|
@@ -65676,9 +65814,9 @@ var inspectionRect = null,
|
|
|
65676
65814
|
svgCon = svgEmbed.getSVGDocument().querySelector('svg');
|
|
65677
65815
|
svgCon.style = 'cursor: pointer;user-select: none;';
|
|
65678
65816
|
svgCon.setAttribute('viewBox', '0 0 ' + svgEmbed.offsetWidth + ' ' + svgEmbed.offsetHeight);
|
|
65679
|
-
|
|
65680
|
-
|
|
65681
|
-
|
|
65817
|
+
pidvue_type_script_lang_js_inspectionRect = svgCon.createSVGRect();
|
|
65818
|
+
pidvue_type_script_lang_js_inspectionRect.width = 10;
|
|
65819
|
+
pidvue_type_script_lang_js_inspectionRect.height = 10;
|
|
65682
65820
|
pointerRect = svgCon.createSVGPoint();
|
|
65683
65821
|
_this.onWindowResize();
|
|
65684
65822
|
// 禁止右键菜单栏
|
|
@@ -65719,9 +65857,9 @@ var inspectionRect = null,
|
|
|
65719
65857
|
pointerRect.x = evt.clientX;
|
|
65720
65858
|
pointerRect.y = evt.clientY;
|
|
65721
65859
|
var tp = pointerRect.matrixTransform(svgCon.getScreenCTM());
|
|
65722
|
-
|
|
65723
|
-
|
|
65724
|
-
var intersectionList = svgCon.getIntersectionList(
|
|
65860
|
+
pidvue_type_script_lang_js_inspectionRect.x = tp.x;
|
|
65861
|
+
pidvue_type_script_lang_js_inspectionRect.y = tp.y;
|
|
65862
|
+
var intersectionList = svgCon.getIntersectionList(pidvue_type_script_lang_js_inspectionRect, null);
|
|
65725
65863
|
targetElement = intersectionList.length > 0 ? intersectionList[intersectionList.length - 1] : null;
|
|
65726
65864
|
}
|
|
65727
65865
|
if (evt.button === 0) {
|
|
@@ -65796,7 +65934,7 @@ var inspectionRect = null,
|
|
|
65796
65934
|
this.$set(this, 'currentSvg', url);
|
|
65797
65935
|
preTargetCon.splice(0);
|
|
65798
65936
|
preTargetStyle.splice(0);
|
|
65799
|
-
|
|
65937
|
+
pidvue_type_script_lang_js_inspectionRect = null;
|
|
65800
65938
|
pointerRect = null;
|
|
65801
65939
|
}
|
|
65802
65940
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";#fl-model[data-v-
|
|
1
|
+
@charset "UTF-8";#fl-model[data-v-07e32868],#konva-container[data-v-4b99f9dc]{width:100%;height:100%;cursor:pointer}#konva-container[data-v-4b99f9dc]{z-index:3;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-09d5c9d8]{cursor:pointer;height:100%;width:100%}
|
package/package.json
CHANGED
|
@@ -290,7 +290,7 @@ function drawLine(recordDxf, entity, group, key, configParams) {
|
|
|
290
290
|
entityId: key,
|
|
291
291
|
isGroup: false,
|
|
292
292
|
stroke: configParams ? configParams.color : "#000",
|
|
293
|
-
customColor: configParams ? configParams.color : "",
|
|
293
|
+
customColor: configParams ? configParams.color : "#000",
|
|
294
294
|
strokeWidth: width,
|
|
295
295
|
visible: configParams ? configParams.visible : true,
|
|
296
296
|
oldstrokeLength:width,
|
|
@@ -334,7 +334,7 @@ function drawText(recordDxf, entity, group, key, configParams) {
|
|
|
334
334
|
text: text,
|
|
335
335
|
fontSize: fontSize,
|
|
336
336
|
fill: configParams ? configParams.color : "#000",
|
|
337
|
-
customColor: configParams ? configParams.color : "",
|
|
337
|
+
customColor: configParams ? configParams.color : "#000",
|
|
338
338
|
name: key.replace(/\s*/g, ""),
|
|
339
339
|
entityId: key,
|
|
340
340
|
fontFamily: "SimSun",
|
|
@@ -393,7 +393,7 @@ function drawLwLine(recordDxf, entity, group, key, configParams) {
|
|
|
393
393
|
name: key.replace(/\s*/g, ""),
|
|
394
394
|
entityId: key,
|
|
395
395
|
stroke: configParams ? configParams.color : "#000",
|
|
396
|
-
customColor: configParams ? configParams.color : "",
|
|
396
|
+
customColor: configParams ? configParams.color : "#000",
|
|
397
397
|
strokeWidth: width,
|
|
398
398
|
visible: configParams ? configParams.visible : true,
|
|
399
399
|
oldstrokeLength:width,
|
|
@@ -434,7 +434,7 @@ function drawSpline(recordDxf, entity, group, key, configParams) {
|
|
|
434
434
|
entityId: key,
|
|
435
435
|
isGroup: false,
|
|
436
436
|
stroke: configParams ? configParams : "#000",
|
|
437
|
-
customColor: configParams ? configParams.color : "",
|
|
437
|
+
customColor: configParams ? configParams.color : "#000",
|
|
438
438
|
strokeWidth: width,
|
|
439
439
|
visible: configParams ? configParams.visible : true,
|
|
440
440
|
oldstrokeLength: width
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
</template>
|
|
4
4
|
|
|
5
5
|
<script>
|
|
6
|
+
var inspectionRect = null;
|
|
7
|
+
var preTarget = [];
|
|
6
8
|
function base64ToBlob(base64) {
|
|
7
9
|
const byteCharacters = atob(base64);
|
|
8
10
|
const byteArrays = [];
|
|
@@ -40,7 +42,6 @@
|
|
|
40
42
|
import { formatEntity, handleFn, centering } from './components/entityFormatting';
|
|
41
43
|
var konvaStage = null,
|
|
42
44
|
konvaLayer = null;
|
|
43
|
-
var recordLayerConfig = {};
|
|
44
45
|
export default {
|
|
45
46
|
name: 'Fl2dcanvas',
|
|
46
47
|
components: {},
|
|
@@ -50,6 +51,7 @@
|
|
|
50
51
|
mounted() {
|
|
51
52
|
//resize方法
|
|
52
53
|
window.addEventListener('resize', () => {
|
|
54
|
+
console.log('resize');
|
|
53
55
|
if (konvaStage) {
|
|
54
56
|
const obj = document.getElementById('konva-container');
|
|
55
57
|
konvaStage.setWidth(obj.clientWidth);
|
|
@@ -81,7 +83,6 @@
|
|
|
81
83
|
var scaleBy = 1.5;
|
|
82
84
|
//初始化缩放方法
|
|
83
85
|
konvaStage.on('wheel', e => {
|
|
84
|
-
console.log(e);
|
|
85
86
|
e.evt.preventDefault();
|
|
86
87
|
var oldScale = konvaStage.scaleX();
|
|
87
88
|
var pointer = konvaStage.getPointerPosition();
|
|
@@ -106,6 +107,31 @@
|
|
|
106
107
|
};
|
|
107
108
|
konvaStage.position(newPos);
|
|
108
109
|
});
|
|
110
|
+
// 点击事件
|
|
111
|
+
konvaStage.on('click', e => {
|
|
112
|
+
let clickObj = null;
|
|
113
|
+
let position = konvaStage.getPointerPosition();
|
|
114
|
+
let x = (position.x- konvaStage.getX()) / konvaStage.scaleX();
|
|
115
|
+
let y = (position.y- konvaStage.getY()) / konvaStage.scaleY();
|
|
116
|
+
inspectionRect.setX(x);
|
|
117
|
+
inspectionRect.setY(y);
|
|
118
|
+
position = null;
|
|
119
|
+
if (
|
|
120
|
+
e.target.attrs.hasOwnProperty("className") &&
|
|
121
|
+
e.target.attrs.className === "stage"
|
|
122
|
+
) {
|
|
123
|
+
let obj = this.getIntersects(inspectionRect.getClientRect());
|
|
124
|
+
console.log(obj);
|
|
125
|
+
clickObj = obj.length > 0 ? obj[obj.length - 1] : null;
|
|
126
|
+
} else {
|
|
127
|
+
clickObj = e.target.attrs;
|
|
128
|
+
}
|
|
129
|
+
if (e.evt.button === 0) {
|
|
130
|
+
this.$emit('leftClick', clickObj);
|
|
131
|
+
} else if (e.evt.button === 2) {
|
|
132
|
+
this.$emit('rightClick', clickObj);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
109
135
|
});
|
|
110
136
|
|
|
111
137
|
//create方法结束
|
|
@@ -113,26 +139,37 @@
|
|
|
113
139
|
//销毁方法
|
|
114
140
|
|
|
115
141
|
methods: {
|
|
116
|
-
loadDxf(data) {
|
|
117
|
-
|
|
118
|
-
|
|
142
|
+
loadDxf(data, layerConfigs = {}) {
|
|
143
|
+
konvaLayer.destroyChildren();
|
|
144
|
+
konvaStage.scale({
|
|
145
|
+
x: 1,
|
|
146
|
+
y: 1,
|
|
147
|
+
});
|
|
148
|
+
konvaStage.setX(0);
|
|
149
|
+
konvaStage.setY(0);
|
|
150
|
+
inspectionRect = null;
|
|
151
|
+
inspectionRect = new Konva.Rect({
|
|
152
|
+
width: 1.5,
|
|
153
|
+
height: 1.5,
|
|
154
|
+
x: 0,
|
|
155
|
+
y: 0,
|
|
156
|
+
stroke: "#000",
|
|
157
|
+
strokeWidth: 0.2,
|
|
158
|
+
name: "intersect-rect",
|
|
159
|
+
visible: false,
|
|
160
|
+
opacity: 0
|
|
161
|
+
});
|
|
162
|
+
konvaLayer.add(inspectionRect);
|
|
119
163
|
const parser = new DxfParser();
|
|
120
164
|
let dxf = parser.parse(data);
|
|
121
165
|
let entities = formatEntity(dxf.entities);
|
|
122
|
-
|
|
123
|
-
console.log(entities);
|
|
124
|
-
|
|
125
166
|
let layers = dxf.tables.layer.layers;
|
|
126
|
-
//加载图纸
|
|
127
|
-
|
|
128
|
-
console.log('layers');
|
|
129
|
-
console.log(layers);
|
|
130
167
|
|
|
131
168
|
for (let key in layers) {
|
|
132
169
|
if (entities[key]) {
|
|
133
170
|
let group = [];
|
|
134
171
|
let l = entities[key].length;
|
|
135
|
-
let layerConfig =
|
|
172
|
+
let layerConfig = layerConfigs[key];
|
|
136
173
|
let configParams =
|
|
137
174
|
layerConfig && Object.keys(layerConfig).length > 0 ? layerConfig : null;
|
|
138
175
|
for (let i = 0; i < l; i++) {
|
|
@@ -145,7 +182,7 @@
|
|
|
145
182
|
key,
|
|
146
183
|
configParams,
|
|
147
184
|
konvaLayer,
|
|
148
|
-
|
|
185
|
+
layerConfigs
|
|
149
186
|
);
|
|
150
187
|
}
|
|
151
188
|
if (!konvaLayer) return;
|
|
@@ -163,7 +200,7 @@
|
|
|
163
200
|
name: key.replace(/\s*/g, ''),
|
|
164
201
|
entityId: key,
|
|
165
202
|
stroke: configParams ? configParams.color : '#000',
|
|
166
|
-
customColor: configParams ? configParams.color : '',
|
|
203
|
+
customColor: configParams ? configParams.color : '#000',
|
|
167
204
|
visible: configParams ? configParams.visible : true,
|
|
168
205
|
sceneFunc(context, shape) {
|
|
169
206
|
context.beginPath();
|
|
@@ -221,11 +258,10 @@
|
|
|
221
258
|
scale = Number((boundingRect.width / boundingRect.height).toFixed(1));
|
|
222
259
|
scale = scale < 2 ? 2 : scale;
|
|
223
260
|
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
})*/
|
|
261
|
+
konvaStage.scale({
|
|
262
|
+
x: scale,
|
|
263
|
+
y: scale,
|
|
264
|
+
})
|
|
229
265
|
const boundingScale = konvaLayer.getClientRect();
|
|
230
266
|
//平移视口
|
|
231
267
|
const x =
|
|
@@ -235,12 +271,13 @@
|
|
|
235
271
|
this.$refs.svgDraw.clientHeight / 2 -
|
|
236
272
|
(Math.ceil(boundingScale.height) / 2 + boundingScale.y);
|
|
237
273
|
|
|
238
|
-
konvaStage.scale({
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
});
|
|
242
|
-
|
|
243
|
-
konvaStage.setY(
|
|
274
|
+
// konvaStage.scale({
|
|
275
|
+
// x: 2,
|
|
276
|
+
// y: 2,
|
|
277
|
+
// });
|
|
278
|
+
konvaStage.setX(x);
|
|
279
|
+
konvaStage.setY(y); // 750
|
|
280
|
+
this.$emit('loaded')
|
|
244
281
|
},
|
|
245
282
|
toPdf(name) {
|
|
246
283
|
// get data URL with default settings
|
|
@@ -282,6 +319,72 @@
|
|
|
282
319
|
konvaLayer = null;
|
|
283
320
|
konvaStage = null;
|
|
284
321
|
},
|
|
322
|
+
getIntersects(rect) {
|
|
323
|
+
let l = konvaLayer.children.length;
|
|
324
|
+
let intersects = [];
|
|
325
|
+
for (let index = 0; index < l; index++) {
|
|
326
|
+
const ele = konvaLayer.children[index];
|
|
327
|
+
if (ele.attrs.name !== "intersect-rect") {
|
|
328
|
+
const boundingRect = ele.getClientRect();
|
|
329
|
+
if (
|
|
330
|
+
!(
|
|
331
|
+
rect.x + rect.width < boundingRect.x ||
|
|
332
|
+
boundingRect.x + boundingRect.width < rect.x ||
|
|
333
|
+
rect.y + rect.height < boundingRect.y ||
|
|
334
|
+
boundingRect.y + boundingRect.height < rect.y
|
|
335
|
+
)
|
|
336
|
+
) {
|
|
337
|
+
|
|
338
|
+
intersects.push(ele);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
return intersects;
|
|
343
|
+
},
|
|
344
|
+
// 参数说明arr数组,每个元素为一个对象,对象包含id, color属性
|
|
345
|
+
highLight(arr) {
|
|
346
|
+
for (let index = 0; index < arr.length; index++) {
|
|
347
|
+
const element = arr[index];
|
|
348
|
+
let name = element.id.replace(/\s*/g, "")
|
|
349
|
+
let obj = konvaStage.find("." + name)
|
|
350
|
+
if (obj.length > 0) {
|
|
351
|
+
let lists = obj.filter((item) => !item.attrs.isGroup);
|
|
352
|
+
for (let i = 0; i < lists.length; i++) {
|
|
353
|
+
preTarget.push(lists[i]);
|
|
354
|
+
const ele = lists[i];
|
|
355
|
+
if (ele.className === "Text") {
|
|
356
|
+
ele.setFill(element.color);
|
|
357
|
+
ele.setStroke(element.color)
|
|
358
|
+
} else {
|
|
359
|
+
ele.setStroke(element.color);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
},
|
|
365
|
+
resetHighLight() {
|
|
366
|
+
for (let index = 0; index < preTarget.length; index++) {
|
|
367
|
+
const element = preTarget[index];
|
|
368
|
+
if (element.className === "Text") {
|
|
369
|
+
element.setFill(element.attrs.customColor);
|
|
370
|
+
element.setStroke(element.attrs.customColor)
|
|
371
|
+
} else {
|
|
372
|
+
element.setStroke(element.attrs.customColor);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
preTarget.splice(0);
|
|
376
|
+
},
|
|
377
|
+
// 居中定位
|
|
378
|
+
centering(id) {
|
|
379
|
+
let entityId = id.replace(/\s*/g, "");
|
|
380
|
+
let obj = konvaStage.find("." + entityId);
|
|
381
|
+
let scaleBy = 8;
|
|
382
|
+
if (obj.length > 0) {
|
|
383
|
+
konvaStage.scale({ x: scaleBy, y: scaleBy });
|
|
384
|
+
centering(obj, this.$refs.svgDraw, konvaStage, scaleBy)
|
|
385
|
+
obj = null;
|
|
386
|
+
}
|
|
387
|
+
},
|
|
285
388
|
beforeDestroy() {
|
|
286
389
|
this.clearCache();
|
|
287
390
|
},
|
|
@@ -119,11 +119,32 @@
|
|
|
119
119
|
this.initControl();
|
|
120
120
|
this.initLight();
|
|
121
121
|
this.initLabelRender();
|
|
122
|
-
|
|
123
|
-
|
|
122
|
+
// 判断是设备是手机还是电脑
|
|
123
|
+
let isMobileDevice = this.isMobileDevice();
|
|
124
|
+
if (isMobileDevice) {
|
|
125
|
+
renderer.domElement.addEventListener('pointerup', this.mouseClick, false);
|
|
126
|
+
renderer.domElement.addEventListener('pointerdown', this.mouseDown, false);
|
|
127
|
+
} else {
|
|
128
|
+
renderer.domElement.addEventListener('mouseup', this.mouseClick, false);
|
|
129
|
+
renderer.domElement.addEventListener('mousedown', this.mouseDown, false);
|
|
130
|
+
}
|
|
124
131
|
this.animate();
|
|
125
132
|
},
|
|
126
133
|
methods: {
|
|
134
|
+
// 判断是设备是手机还是电脑
|
|
135
|
+
isMobileDevice() {
|
|
136
|
+
const userAgent = navigator.userAgent || navigator.vendor || window.opera;
|
|
137
|
+
if (/windows phone/i.test(userAgent)) {
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
if (/android/i.test(userAgent)) {
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
return false;
|
|
147
|
+
},
|
|
127
148
|
initRender() {
|
|
128
149
|
renderer = new this.THREE.WebGLRenderer({
|
|
129
150
|
antialias: true,
|
|
@@ -443,8 +464,6 @@
|
|
|
443
464
|
});
|
|
444
465
|
break;
|
|
445
466
|
case 'opacity':
|
|
446
|
-
// obj.material.opacity = ele.attr[key];
|
|
447
|
-
// obj.material.transparent = true;
|
|
448
467
|
targetObj.forEach(children => {
|
|
449
468
|
if (children.isMesh) {
|
|
450
469
|
const opacity = children.geometry.attributes.opacity.array;
|
|
@@ -533,7 +552,6 @@
|
|
|
533
552
|
} else if (obj.isMesh) {
|
|
534
553
|
this.setModelCenter(obj.parent);
|
|
535
554
|
}
|
|
536
|
-
// cameraControls.fitToBox( obj, true);
|
|
537
555
|
}
|
|
538
556
|
},
|
|
539
557
|
// 根据自定义参数修改模型
|
|
@@ -1431,6 +1449,24 @@
|
|
|
1431
1449
|
}
|
|
1432
1450
|
scenePass = null;
|
|
1433
1451
|
},
|
|
1452
|
+
// 获取中心点
|
|
1453
|
+
getCenter(obj) {
|
|
1454
|
+
console.log(obj)
|
|
1455
|
+
let center = new this.THREE.Vector3();
|
|
1456
|
+
obj.boundingBox.getCenter(center);
|
|
1457
|
+
const mat4 = new this.THREE.Matrix4();
|
|
1458
|
+
mat4.makeRotationX(-Math.PI / 2);
|
|
1459
|
+
center.applyMatrix4(mat4)
|
|
1460
|
+
return center;
|
|
1461
|
+
},
|
|
1462
|
+
getSize(obj) {
|
|
1463
|
+
let size = new this.THREE.Vector3();
|
|
1464
|
+
obj.boundingBox.getSize(size);
|
|
1465
|
+
const mat4 = new this.THREE.Matrix4();
|
|
1466
|
+
mat4.makeRotationX(-Math.PI / 2);
|
|
1467
|
+
size.applyMatrix4(mat4)
|
|
1468
|
+
return size;
|
|
1469
|
+
},
|
|
1434
1470
|
animate() {
|
|
1435
1471
|
const delta = fpsClock.getDelta();
|
|
1436
1472
|
timeStamp += delta;
|
|
@@ -112,8 +112,8 @@ function handleInstancedMeshModel(
|
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
console.log('modelGroup', modelGroup);
|
|
116
|
-
console.log('drawObjMapInstance', drawObjMapInstance);
|
|
115
|
+
// console.log('modelGroup', modelGroup);
|
|
116
|
+
// console.log('drawObjMapInstance', drawObjMapInstance);
|
|
117
117
|
return modelGroup;
|
|
118
118
|
// timeRender();
|
|
119
119
|
// console.log('scene', scene)
|