/* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ /******/ (function() { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=script&lang=js&": /*!*******************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_localStorage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils/localStorage */ \"./src/utils/localStorage.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"App\",\n provide() {\n return {\n reload: this.reload\n };\n },\n data() {\n return {\n themeColor: \"rgba(0,97,232,1)\",\n themeColor2: \"rgba(0,97,232,0.2)\",\n isRouterAlive: true,\n showAccountView: false,\n //是否显示用户账号列表\n acountList: [],\n //弹出层账号列表数据\n selectAccount: null //选中的账号\n };\n },\n\n created() {\n document.addEventListener('visibilitychange', event => {\n console.warn(\"***pageshow-handle***\", event, document.hidden, document.visibilityState);\n //外链回退到vue应用要执行的代码\n if (document.visibilityState == 'visible') {\n //页面显示\n this.accountHandle();\n }\n });\n this.accountHandle(true);\n },\n watch: {\n loading: {\n handler(newVal) {\n if (!newVal) {\n this.$store.state.loadingMsg = '';\n }\n }\n }\n },\n computed: {\n loading() {\n return this.$store.state.loading;\n },\n loadingMsg() {\n if (this.$store.state.loadingMsg) {\n return this.$store.state.loadingMsg;\n } else {\n return \"正在查询,请耐心等待\";\n }\n }\n },\n mounted() {\n // 禁止图片单机事件,防止出现图片点击浏览器自动预览功能\n document.body.addEventListener(\"click\", function (e) {\n if (e.target.nodeName.toLowerCase() == \"img\") {\n e.preventDefault();\n }\n });\n },\n methods: {\n reload() {\n this.isRouterAlive = false;\n this.$nextTick(function () {\n this.isRouterAlive = true;\n });\n },\n //账号获取\n accountHandle(type = false) {\n var acountList = (0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_0__.getStorage)('acountList') ? JSON.parse((0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_0__.getStorage)('acountList')) : null;\n console.warn(\"***acountList***\", acountList);\n if (acountList) {\n if (acountList.length > 1) {\n this.selectAccount = null;\n this.acountList = acountList;\n this.showAccountView = true;\n } else {\n this.showAccountView = false;\n this.selectAccount = acountList[0];\n (0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_0__.removeItem)('acountList'); //移除待选择列表的账号数据\n if (type) {\n //页面加载时触发\n setTimeout(() => {\n //等待其他组件创建好对应的事件监听\n window.$bus.$emit(\"projectUpdate\", this.$route.query.projectId, this.selectAccount);\n window.$bus.$emit(\"setAccount\", this.selectAccount);\n }, 5000);\n } else {\n //页面出现时触发-非初次加载\n window.$bus.$emit(\"projectUpdate\", this.$route.query.projectId, this.selectAccount);\n window.$bus.$emit(\"setAccount\", this.selectAccount);\n }\n }\n } else {\n this.showAccountView = false;\n }\n },\n closeFun() {\n this.showAccountView = false;\n },\n //账号选择\n accountChange(item) {\n if (!item) {\n return false;\n }\n this.selectAccount = item;\n },\n //确认账号选择\n async accountConfirm() {\n if (!this.selectAccount) {\n this.$message.warning(\"请选择关联账号!\");\n return false;\n }\n // let userInfo = window.userInfo;\n // userInfo['userAccount'] = this.selectAccount;\n (0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_0__.removeItem)('acountList'); //选择好后,移除待选择列表的账号数据\n this.showAccountView = false;\n let res = await requestConfig('bindAdvertiser', {\n \"advertiserId\": this.selectAccount.advertiserId,\n \"companyId\": window.userCompanyModel.companyId,\n \"name\": this.selectAccount.name,\n \"platform\": this.selectAccount.platform || '',\n \"oauthType\": this.getAuthType()\n }, false, false);\n if (res.success) {\n // this.$store.dispatch('setAccount',this.selectAccount);\n window.$bus.$emit(\"projectUpdate\", this.$route.query.projectId, this.selectAccount);\n window.$bus.$emit(\"setAccount\", this.selectAccount);\n (0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_0__.removeItem)(\"OAUTHTYPE\");\n }\n },\n getAuthType() {\n const oauthType = JSON.parse(window.localStorage.getItem('OAUTHTYPE')) || '';\n if (oauthType) {\n return oauthType.accountType;\n } else {\n return \"2\"; //默认是2\n }\n }\n }\n});\n\n//# sourceURL=webpack://hello-world/./src/App.vue?./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options"); /***/ }), /***/ "./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/components/mapComponent/mapComponent.vue?vue&type=script&lang=js&": /*!****************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/components/mapComponent/mapComponent.vue?vue&type=script&lang=js& ***! \****************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_typed_array_to_reversed_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.typed-array.to-reversed.js */ \"./node_modules/_core-js@3.31.1@core-js/modules/es.typed-array.to-reversed.js\");\n/* harmony import */ var core_js_modules_es_typed_array_to_reversed_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_to_reversed_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_typed_array_to_sorted_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.typed-array.to-sorted.js */ \"./node_modules/_core-js@3.31.1@core-js/modules/es.typed-array.to-sorted.js\");\n/* harmony import */ var core_js_modules_es_typed_array_to_sorted_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_to_sorted_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_typed_array_with_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.typed-array.with.js */ \"./node_modules/_core-js@3.31.1@core-js/modules/es.typed-array.with.js\");\n/* harmony import */ var core_js_modules_es_typed_array_with_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_with_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/_core-js@3.31.1@core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var three__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! three */ \"./node_modules/_three@0.154.0@three/build/three.module.js\");\n/* harmony import */ var three_addons_libs_stats_module_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! three/addons/libs/stats.module.js */ \"./node_modules/_three@0.154.0@three/examples/jsm/libs/stats.module.js\");\n/* harmony import */ var three_addons_controls_OrbitControls_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! three/addons/controls/OrbitControls.js */ \"./node_modules/_three@0.154.0@three/examples/jsm/controls/OrbitControls.js\");\n/* harmony import */ var three_addons_loaders_GLTFLoader_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! three/addons/loaders/GLTFLoader.js */ \"./node_modules/_three@0.154.0@three/examples/jsm/loaders/GLTFLoader.js\");\n/* harmony import */ var three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! three/addons/libs/tween.module.js */ \"./node_modules/_three@0.154.0@three/examples/jsm/libs/tween.module.js\");\n/* harmony import */ var _static_wallData_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/static/wallData.js */ \"./src/static/wallData.js\");\n/* harmony import */ var _static_wallData_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_static_wallData_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _mixins_screenshot_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/mixins/screenshot.js */ \"./src/mixins/screenshot.js\");\n/* harmony import */ var _mixins_floorMethod_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/mixins/floorMethod.js */ \"./src/mixins/floorMethod.js\");\n/* harmony import */ var _mixins_wallMethod_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/mixins/wallMethod.js */ \"./src/mixins/wallMethod.js\");\n/* harmony import */ var _mixins_loadModel_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/mixins/loadModel.js */ \"./src/mixins/loadModel.js\");\n\n\n\n\n\n\n\n\n\nvar requestId = \"\";\n// const util = require('@/static/utils/util.js');\nconst config = __webpack_require__(/*! @/services/urlConfig.js */ \"./src/services/urlConfig.js\");\n\n// import modelData from '@/webgl/static/layoutModelData.js';\n// import requestConfig from '@/services/requestConfig.js';\n// import viewShell from'@/webgl/components/newBottomCom/viewShell/viewShell.vue';\n// import * as BufferGeometryUtils from '@/webgl/jsm/utils/BufferGeometryUtils.js';\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // components:{viewShell},\n mixins: [_mixins_screenshot_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"], _mixins_floorMethod_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"], _mixins_wallMethod_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"], _mixins_loadModel_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]],\n /**\r\n * 页面的初始数据\r\n */\n data() {\n return {\n pvCurPageName: \"home_show\",\n locusBehaviorName: \"主界面\",\n pvCurPageParams: null,\n houseId: \"100296\",\n pvId: 'p_2cmina_23080401',\n canvas: null,\n navbar: {\n showCapsule: 1,\n title: '',\n titleColor: '#000',\n navPadding: 0,\n navPaddingBg: 'transparent',\n navBarColor: 'transparent',\n navBackColor: 'transparent',\n haveCallback: false,\n fromShare: false,\n fromProject: 0,\n shareToken: \"\",\n pageName: this.pvCurPageName\n },\n id: '232',\n // 户型编号\n spaceList: [],\n // 空间列表\n gltfSpaces: [],\n // 场景中地板模型数组\n curSpaceObj: null,\n // 当前选中的空间\n // curSpaceIndex:-1, // 当前选中的空间索引\n curWallDirection: \"\",\n // 当前选中的墙面\n curWallValue: 0,\n // 当前墙面的滑动值\n curWallMaxValue: 300,\n curWallHidden: false,\n // 当前墙面的状态\n wallIds: [],\n // 空间墙体id\n wallList: [],\n // 墙体数据\n gltfWalls: [],\n // 场景中墙体模型数组\n gltfAutoWalls: [],\n // 空间自动补墙模型数组\n // lastWallPosition:0, // 当面墙中墙体模型的开始位置\n tempSpaceList: [],\n // 全部空间临时数组\n leftSpaces: [],\n // 移动空间左边数组\n rightSpaces: [],\n // 移动空间右边数组\n loader: null,\n scene: null,\n sky: null,\n camera: null,\n houseList: [],\n //当前户型所有的户型详情,可以切换\n curHouseType: null,\n //当前选中的户型类型\n curHouseName: '',\n //当前选中的户型类型名称\n curHouseFloor: null,\n //当前选中的户型楼层\n curHouseObj: null,\n controlStarPosition: {\n x: 0,\n y: 0,\n z: 0\n },\n //控制器初始位置\n cameraStarPosition: {\n x: 0,\n y: 20,\n z: 0\n },\n //摄像头初始位置\n // cameraLastPosition: null,\t\t//摄像头上一次移动到的位置\n // controlLastPosition: null,\t\t//观察点上一次移动到的位置\n // canvasHeight:200,\t//canvas视图的高度-计算得出\n chooseMesh: null,\n //标记鼠标拾取到的mesh\n // chooseMeshColor:'',\t//拾取到的mesh的原始颜色;\n chooseWallMeshColor: '',\n // 拾取墙体原始颜色\n curWallArr: [],\n // 当前空间选中墙面的墙体模型\n isManyou: false,\n //当前是否处在漫游状态\n pageShowIndex: 2,\n // 默认户型列表页面\n aleadyLoaderModel: [],\n //已经加载的墙体元数据模型列表\n // fontLabelGroup: [],\n shottingImg: [],\n progress: 1,\n //进度条\n myLoadingStatus: false,\n // textGeoList:[],\n repeatFlag: false,\n //重复点击\n skyPlan: null,\n // 天空盒子\n instancedMeshList: [],\n lableItem: [],\n showLables: false,\n loadOver: false,\n voiceMaskShow: false,\n //录音时的蒙层是否显示\n postAIData: [],\n //提交的数据\n\n minspace1: null,\n minspace2: null,\n minspace3: null,\n minspace4: null,\n spaces1: [],\n spaces2: [],\n spaces3: [],\n spaces4: [],\n layoutIds: [],\n // 空间墙体id\n layoutLists: [],\n // 墙体数据\n gltfLayouts: [],\n // 场景中墙体模型数组\n screenshotResolve: null,\n curLayoutStruct: null,\n //当前户型大类下所有楼层数据-用于提交\n overChange: false,\n //是否形变中\n isIos: false,\n //是否ios手机。默认不是\n currentChangeSpaceId: null,\n //当前变化的空间id\n styleType: 1,\n controls: null\n };\n },\n watch: {\n curSpaceObj(newVal, oldVal) {\n if (!newVal || newVal == oldVal) {\n return;\n }\n console.log(\"切换空间\", newVal, oldVal);\n // this.curSpaceIndex = this.spaceList.findIndex((item)=>{\n // \treturn item.spaceId == newVal.spaceId\n // })\n // TODO 切换空间埋点...\n },\n\n curWallValue(newVal, oldVal) {\n if (!newVal || newVal == oldVal) {\n return;\n }\n console.log(\"当前墙体值变化\", newVal, oldVal);\n }\n },\n onUnload() {\n cancelAnimationFrame(requestId, this.canvas);\n this.worker && this.worker.terminate();\n setTimeout(() => {\n if (this.renderer instanceof three__WEBPACK_IMPORTED_MODULE_9__.WebGLRenderer) {\n this.renderer.dispose();\n this.renderer.forceContextLoss();\n this.renderer.context = null;\n this.renderer.domElement = null;\n this.renderer = null;\n this.clearEvent();\n }\n this.gltfWalls = [];\n this.gltfSpaces = [];\n this.instancedMeshList = [];\n this.instancedSpaceMeshList = [];\n this.lableItem = [];\n this.gltfLayouts = [];\n this.instancedFurList = [];\n this.wallList = [];\n three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"] && three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"].removeAll(); //清除所有的tween;\n }, 0);\n },\n mounted() {\n this.houseId = '100296'; //\n this.childLayout = '0';\n var that = this;\n const container = this.$refs.webgl;\n const canvas3d = this.canvas = this.$refs.glcanvas;\n let camera = null,\n renderer = null,\n controls = null;\n // let trackballControls = null;\n console.warn(\"***loader0***\", this.loader);\n let loader = null;\n loader = this.loader = new three_addons_loaders_GLTFLoader_js__WEBPACK_IMPORTED_MODULE_11__.GLTFLoader();\n // if(this.childLayout){\n this.getInitData(); //请求获取页面模型数据等\n // }\n let scene = this.scene = new three__WEBPACK_IMPORTED_MODULE_9__.Scene();\n let chooseMesh = this.chooseMesh; //标记鼠标拾取到的mesh\n let isUserContorl = false;\n let tweenCameraAnma = false; //表示当前是否处在动画过程中\n let needRender = false; //是否需要渲染 false表示不需要渲染;true 表示需要渲染\n let frustumSize = 30; //正交相机的视窗宽度距离\n let stats;\n init();\n // render();\n // this.$refs.myLoading.showLoading(\"加载中...\" + this.progress+\"%\")\n // this.myLoadingStatus = true;\n this.progress = 1;\n this.clearEvent = clearEvent;\n this.attendEvent = attendEvent;\n this.enableRenderHandle = enableRender;\n this.tweenCameraAnmaChange = tweenCameraAnmaChange;\n this.gradientResize = gradientResize;\n this.moveMeshCenterHandle = moveMeshCenterHandle;\n this.starRender = starRender; //对外暴露启动渲染的方法\n function init() {\n scene.background = new three__WEBPACK_IMPORTED_MODULE_9__.Color(\"#FFFFFF\");\n // scene.environment = new THREE.Color(\"#F2F2F2\");\n\n // 创建相机位置-投影相机\n camera = new three__WEBPACK_IMPORTED_MODULE_9__.PerspectiveCamera(80, window.innerWidth / window.innerHeight, 0.1, 10000);\n // let aspect = window.innerWidth / window.innerHeight;\n // camera = new THREE.OrthographicCamera( frustumSize * aspect / - 2, frustumSize * aspect / 2, frustumSize / 2, frustumSize / - 2, 0.1,1000);\n camera.up.set(0, 1, 0); //俯视状态,将相机的up向量设置为z轴负方向\n camera.position.set(that.cameraStarPosition.x, that.cameraStarPosition.y, that.cameraStarPosition.z);\n scene.add(camera);\n that.camera = camera;\n // 辅助方格\n // const axesHelper = new THREE.AxesHelper( 50 );\n // scene.add( axesHelper );\n // const gridHelper = new THREE.GridHelper(50, 10, 0xcccccc, 0xcccccc);\n // gridHelper.position.y = 0;\n // gridHelper.position.x = 0;\n // scene.add(gridHelper);\n\n // 环境光会均匀的照亮场景中的所有物体\n const ambientLight = new three__WEBPACK_IMPORTED_MODULE_9__.AmbientLight(0xFFEFE0, 2);\n scene.add(ambientLight);\n //平行光\n const light = new three__WEBPACK_IMPORTED_MODULE_9__.DirectionalLight(0xFFF8E5, 2.2);\n light.position.set(-14.8, 9.188, -7.448); //default; light shining from top\n scene.add(light);\n // 从一个点向各个方向发射的光源。一个常见的例子是模拟一个灯泡发出的光。\n // const pointLight = new THREE.PointLight( 0xffffff, 0.3 );\n // camera.add( pointLight );\n\n //antialias 这个值得设置为false,不然IOS上截图会失效\n renderer = that.renderer = new three__WEBPACK_IMPORTED_MODULE_9__.WebGLRenderer({\n canvas: canvas3d,\n alpha: true,\n antialias: false,\n // 如果想保存three.js canvas画布上的信息,注意设置preserveDrawingBuffer\n preserveDrawingBuffer: true\n });\n // renderer.shadowMap.enabled = true;//产生阴影\n // renderer.shadowMap.type = THREE.PCFSoftShadowMap; // 阴影属性\n renderer.outputEncoding = three__WEBPACK_IMPORTED_MODULE_9__.sRGBEncoding;\n renderer.outputColorSpace = three__WEBPACK_IMPORTED_MODULE_9__.SRGBColorSpace;\n // renderer.toneMappingExposure = 0.1;//色调映射的曝光级别。默认是1\n renderer.toneMapping = three__WEBPACK_IMPORTED_MODULE_9__.NoToneMapping; //色调映射\n renderer.physicallyCorrectLights = true; //关键参数,模拟物理光照影响,必须设置为true\n\n renderer.setPixelRatio(window.devicePixelRatio);\n renderer.setSize(window.innerWidth, window.innerHeight);\n container.appendChild(renderer.domElement);\n controls = new three_addons_controls_OrbitControls_js__WEBPACK_IMPORTED_MODULE_12__.OrbitControls(camera, renderer.domElement);\n controls.screenSpacePanning = true;\n controls.enableDamping = true;\n controls.minDistance = 1;\n controls.maxDistance = 400;\n controls.minPolarAngle = 0; // 默认0\n controls.maxPolarAngle = Math.PI / 2; // 默认Math.PI,即可以向下旋转到的视角。\n controls.target.set(that.controlStarPosition.x, that.controlStarPosition.y, that.controlStarPosition.z);\n controls.enableZoom = true; //启用摄像机的缩放\n\n // that.controls = controls;\n // controls.target = new THREE.Vector3( that.controlStarPosition.x, that.controlStarPosition.y, that.controlStarPosition.z );;\n camera.lookAt(that.controlStarPosition.x, that.controlStarPosition.y, that.controlStarPosition.z);\n // 监听\n // renderer.domElement.addEventListener('resize', onWindowResize );\n stats = new three_addons_libs_stats_module_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]();\n container.appendChild(stats.dom);\n attendEvent(); //注册监听事件\n starRender(); //启动渲染\n }\n\n function attendEvent() {\n document.addEventListener('touchstart', onPointerStart, false);\n document.addEventListener('touchmove', onPointerMove, false);\n document.addEventListener('touchend', onPointerUp, false);\n }\n function tweenCameraAnmaChange(value) {\n tweenCameraAnma = value;\n }\n //开启渲染-帧率优化,不触发时停止渲染\n function enableRender() {}\n //取消事件监听-避免二次进入时触发多次事件\n function clearEvent() {\n console.warn(\"**clearEvent****\");\n document.removeEventListener('touchstart', onPointerStart);\n document.removeEventListener('touchmove', onPointerMove);\n document.removeEventListener('touchend', onPointerUp);\n }\n // 手指移动开始\n function onPointerStart(event) {\n console.log('开始触摸事件:', that.overChange);\n if (that.overChange) {\n //形变中,不能相应用户操作\n return false;\n }\n }\n //持续触摸中\n function onPointerMove(event) {\n if (that.overChange) {\n //形变中,不能相应用户操作\n return false;\n }\n // enableRender();\n that.showLables = false;\n }\n //触摸结束\n function onPointerUp(event) {\n if (that.overChange) {\n //形变中,不能相应用户操作\n return false;\n }\n // enableRender();\n if (event.touches.length == 0) {}\n }\n //把摄像机移动的选中模型的正上方,观察点也变更为模型中心点,同时选中模型\n function moveMeshCenterHandle(mesh = null, noChangeColor = true) {\n if (mesh) {\n //如果传入了模型,则取模型\n let spaceId = mesh.spaceId; //空间id\n if (chooseMesh && spaceId == chooseMesh.spaceId) {\n console.warn(\"**moveMeshCenterHandle-重复选中了***\");\n return false;\n }\n chooseMesh = mesh;\n }\n if (!chooseMesh) {\n console.warn(\"**moveMeshCenterHandle-没有数据***\");\n return false;\n }\n that.showLables = false; //隐藏\n controls.enable = false; //控制器不响应用户的操作\n\n let spaceObj = chooseMesh; //获取空间模型的相关数据\n let cameraNewPosition = {};\n let targetNewPosition = {};\n let oldUp = {};\n let newUp = {};\n if (isUserContorl === false) {\n // 非漫游状态\n cameraNewPosition = {\n x: spaceObj.centerX / 100,\n y: camera.position.y,\n z: -spaceObj.centerY / 100\n };\n //新的观察点的位置-取模型的中心点坐标,加上高度,由于模型都是贴地的,所以高度设置为0\n targetNewPosition = {\n x: spaceObj.centerX / 100,\n y: 0,\n z: -spaceObj.centerY / 100\n };\n oldUp = camera.up; //俯视状态\n newUp = camera.up;\n // that.cameraLastPosition = cameraNewPosition;//记录下上一次摄像头位置\n // that.controlLastPosition = targetNewPosition;//记录下上一次观察点位置\n }\n\n console.warn(\"**moveMeshCenter***\", isUserContorl, spaceObj, JSON.stringify(camera.position), JSON.stringify(controls.target), cameraNewPosition, targetNewPosition, JSON.stringify(camera.up));\n tweenCamera(camera.position, controls.target, cameraNewPosition, targetNewPosition, oldUp, newUp, 600);\n setTimeout(() => {\n that.showLables = true;\n }, 601); //动画结束后回复原始状态\n }\n\n // oldP 相机原来的位置\n // oldT target原来的位置\n // newP 相机新的位置\n // newT target新的位置\n function tweenCamera(oldP, oldT, newP, newT, oldUp, newUp, time = 1000) {\n if (JSON.stringify(oldP) == JSON.stringify(newP) && JSON.stringify(oldT) == JSON.stringify(newT)) {\n return false;\n }\n if (!chooseMesh) {\n return false;\n }\n tweenCameraAnma = true;\n var tween = new three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"].Tween({\n x1: oldP.x,\n // 相机x\n y1: oldP.y,\n // 相机y\n z1: oldP.z,\n // 相机z\n x2: oldT.x,\n // 控制点的中心点x\n y2: oldT.y,\n // 控制点的中心点y\n z2: oldT.z,\n // 控制点的中心点z\n x3: oldUp.x,\n // 控制点的中心点x\n y3: oldUp.y,\n // 控制点的中心点y\n z3: oldUp.z // 控制点的中心点z\n }).to({\n x1: newP.x,\n y1: newP.y,\n z1: newP.z,\n x2: newT.x,\n y2: newT.y,\n z2: newT.z,\n x3: newUp.x,\n // up向量\n y3: newUp.y,\n // 控制点的中心点y\n z3: newUp.z // 控制点的中心点z\n }, time).easing(three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"].Easing.Quadratic.InOut).onUpdate(object => {\n camera.position.x = object.x1;\n camera.position.y = object.y1;\n camera.position.z = object.z1;\n let newTarget = new three__WEBPACK_IMPORTED_MODULE_9__.Vector3(object.x3, object.y3, object.z3);\n camera.up.copy(newTarget);\n camera.lookAt(object.x2, object.y2, object.z2);\n // controls.target.x = object.x2;\n // controls.target.y = object.y2;\n // controls.target.z = object.z2;\n // controls.update();\n // console.warn(\"****onUpdate**\",object.x1,object.y1,object.z1,object.x2,object.y2,object.z2)\n }).onComplete(() => {\n controls.target.x = newT.x;\n controls.target.y = newT.y;\n controls.target.z = newT.z;\n //修正最后的视角\n let up = new three__WEBPACK_IMPORTED_MODULE_9__.Vector3(newUp.x, newUp.y, newUp.z);\n camera.up.copy(up);\n camera.lookAt(controls.target.x, controls.target.y, controls.target.z);\n tweenCameraAnma = false;\n });\n // 开始动画\n tween.start();\n }\n //高度持续变化处理 time 动画持续时间 单位秒\n function gradientResize(time, startHeight, endHeight) {\n let _timeStep = 20; //单位 毫秒\n let unit = app.globalData.systemInfo.screenWidth / 750; //单位rpx 对应 px 的值\n let _height = startHeight - endHeight; //高度变化-单位rpx\n let _jisua = that.canvasHeight;\n let lastHeight = _jisua + _height * unit; //动画结束时的高度值; 单位 px\n that.canvasHeight = lastHeight; //触发css动画\n let step = _height * unit / (time * 1000 / _timeStep); //真实大小 单位px\n console.warn(\"***gradientResize***\", step, lastHeight, _jisua, startHeight, endHeight);\n that.showLables = false;\n // let canvas_webgl = document.getElementById('canvas_webgl');\n var tween = new three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"].Tween({\n h1: _jisua\n }).to({\n h1: lastHeight\n }, 1000).easing(three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"].Easing.Linear.None).onUpdate(object => {\n if (camera.isOrthographicCamera) {\n //正交相机\n let aspect = window.innerWidth / object.h1;\n camera.left = frustumSize * aspect / -2;\n camera.right = frustumSize * aspect / 2;\n camera.top = frustumSize / 2;\n camera.bottom = frustumSize / -2;\n camera.updateProjectionMatrix();\n // that.canvasHeight = object.h1;\n } else if (camera.isPerspectiveCamera) {\n //透视相机\n camera.aspect = window.innerWidth / object.h1;\n camera.updateProjectionMatrix();\n renderer.setSize(window.innerWidth, object.h1);\n // that.canvasHeight = object.h1;\n }\n }).onComplete(() => {\n camera.aspect = window.innerWidth / that.canvasHeight;\n camera.updateProjectionMatrix();\n renderer.setSize(window.innerWidth, that.canvasHeight);\n tweenCameraAnma = false;\n });\n // 开始动画\n tween.start();\n tweenCameraAnma = true;\n }\n //更新lables\n function updateLables() {\n if (!that.showLables) {\n return false;\n }\n that.lableItem.forEach(lable => {\n if (!that.gltfSpaces[lable.cubeIndex] || !that.gltfSpaces[lable.cubeIndex].instancedMeshIndexList) {\n return false;\n }\n let item = that.gltfSpaces[lable.cubeIndex].instancedMeshIndexList[0]; //获取地板模型的第一个geometry实例\n let _index = item.instancedMeshIndex; //第一个geometry实例 在 全局InstancedMesh实例的位置\n let instancedMesh = that.instancedSpaceMeshList[_index]; //获取具体的网格实例\n let stratMatrix = new three__WEBPACK_IMPORTED_MODULE_9__.Matrix4(); //定义一个四维矩阵\n instancedMesh.getMatrixAt(item.instancedAtIndex, stratMatrix); //获取当前几何体的四维矩阵到stratMatrix里面\n let position = new three__WEBPACK_IMPORTED_MODULE_9__.Vector3(); //当前几何体的位置参数\n position.setFromMatrixPosition(stratMatrix); //从四维向量中提取位置信息\n // console.warn(\"***updateLables***\",item.instancedAtIndex,JSON.stringify(position));\n position.project(camera);\n const x = (position.x * .5 + .5) * window.innerWidth;\n const y = (position.y * -.5 + .5) * window.innerHeight;\n lable.transform = `translate(-50%, -50%) translate(${x}px,${y}px)`;\n });\n }\n function stopRender() {\n needRender = false;\n }\n function starRender() {\n if (needRender == true) {\n //如果已经在渲染中了,则不能再次开启,避免渲染过多\n false;\n }\n needRender = true;\n render(); //开始渲染\n }\n\n function render() {\n if (needRender == false) {\n return false;\n }\n three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"] && three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"].update();\n stats.update();\n //不处在动画过程中,则可以处理移动等动作\n if (tweenCameraAnma == false) {\n controls.update();\n }\n requestId = requestAnimationFrame(render, canvas3d);\n renderer.render(scene, camera); //单次渲染\n if (that.screenshotResolve) {\n if (that.isIos) {\n //IOS手机\n stopRender();\n that.screenshotResolve();\n that.screenshotResolve = null; //释放Promise\n } else {\n //安卓手机\n let gl = renderer.getContext();\n let frameBuffer = new three__WEBPACK_IMPORTED_MODULE_9__.Vector2();\n renderer.getDrawingBufferSize(frameBuffer);\n let pixelData = new Uint8Array(frameBuffer.x * frameBuffer.y * 4);\n //参考 Threejs WebGLRenderer.readRenderTargetPixels\n if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) === gl.FRAMEBUFFER_COMPLETE) {\n gl.readPixels(0, 0, frameBuffer.x, frameBuffer.y, gl.RGBA, gl.UNSIGNED_BYTE, pixelData);\n // 确保有像素,微信小程序安卓在进入子页面返回本页面后,再一次readPixels稳定无像素\n if (pixelData.some(i => i !== 0)) {\n stopRender();\n console.warn(\"***screenshotResolve-pixelData***\");\n that.screenshotResolve([pixelData, frameBuffer.x, frameBuffer.y]);\n that.screenshotResolve = null; //释放Promise\n frameBuffer = null; //清空内存中的数据\n pixelData = null; //清空内存中的数据\n }\n }\n }\n }\n }\n\n // const eventChannel = this.getOpenerEventChannel();\n // // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据\n // eventChannel && eventChannel.hasOwnProperty('on') && eventChannel.on('acceptDataFromOpenerPage', (dataList) => {\n // \tconsole.log('监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据',dataList)\n // \tthis.setHouseDetail(dataList)\n // })\n },\n\n onShow() {\n if (this.attendEvent) {\n this.attendEvent();\n }\n },\n onHide() {\n this.clearEvent();\n },\n methods: {\n voiceMaskChange(voiceMask) {\n this.voiceMaskShow = voiceMask;\n },\n async submitHouse() {\n if (this.overChange) {\n return uni.showToast({\n title: \"空间正在调整\",\n icon: \"none\",\n duration: 3000\n });\n }\n // this.$refs.myLoading.showLoading(\"提交中...\")\n let shottingImg = (await this.shottingAction()) + \"?imageMogr2/auto-orient/format/webp/blur/1x0/quality/75\"; //开始截图\n console.warn(\"***shottingImg***\", shottingImg);\n let userId = app.globalData.single && app.globalData.single.id ? app.globalData.single.id : '';\n let param = {\n \"brandId\": 94,\n \"houseId\": this.curHouseObj.houseId,\n \"userId\": userId,\n \"floot\": this.curHouseObj.houseFloor,\n \"spaceName\": this.curHouseName,\n \"spaceStructure\": this.curHouseType,\n \"curFloor\": this.curHouseFloor,\n // \"layoutImgCustomized\": shottingImg,\n // \"style\": \"\",\n layoutStruct: []\n };\n //处理每一个楼层\n this.curLayoutStruct.forEach((layoutStruct, index) => {\n let houseData = {\n \"layoutId\": layoutStruct.id,\n \"layoutName\": layoutStruct.name,\n \"layoutArea\": layoutStruct.houseArea,\n \"floor\": layoutStruct.houseFloor,\n \"layoutImgCustomized\": layoutStruct.houseFloor == this.curHouseFloor ? shottingImg : '',\n \"style\": \"\",\n \"houseJson\": []\n };\n let spaceList = JSON.parse(layoutStruct.houseJson);\n let styleList = [];\n //遍历当前户型下的每一个空间\n spaceList.forEach(item => {\n let space = JSON.parse(JSON.stringify(item));\n //找到当前空间对象对应的AI数据对象\n let AISpace = this.postAIData.find(it => {\n return it.houseFloor == layoutStruct.houseFloor && it.spaceId == space.spaceId;\n });\n if (AISpace) {\n let list = AISpace.aiImagesList.filter(it => it.checked == true); //过滤选中的\n list.forEach(it => {\n styleList.push(it.aiStyleName);\n });\n list = list.map(it => {\n return it.image;\n });\n space.hardboundEffect = list;\n console.warn(\"submitHouse: \", list, space);\n }\n houseData.houseJson.push(space);\n });\n //寻找styleList里面出现最多次数的风格\n if (styleList && styleList.length > 0) {\n let maxEle = styleList[0];\n let maxNum = 1;\n styleList.reduce((p, k) => {\n p[k] ? p[k]++ : p[k] = 1;\n if (p[k] > maxNum) {\n maxEle = k;\n maxNum++;\n }\n return p;\n }, {});\n houseData.style = maxEle;\n }\n param.layoutStruct.push(houseData);\n });\n console.warn(\"submitHouse-param: \", param);\n let trackparam = {\n type: 'CLK',\n //埋点类型\n clkId: 'clk_2cmina_23080409',\n //点击ID\n clkName: 'submit_clk',\n //点击前往的页面名称\n clkParams: {\n locusName: \"数据提交\",\n postAIData: this.postAIData\n }\n };\n util.trackRequest(trackparam);\n let res = await requestConfig(\"saveCustomizedRecord\", param);\n // this.$refs.myLoading.hideLoading();\n if (res && res.success && res.single) {//提交成功\n // uni.redirectTo({\n // url: '/webgl/pages/webgl_rxdz_customize/webgl_rxdz_customize?houseId='+this.houseId + \"&id=\" + res.single,\n // \tsuccess: function(res) {\n // \t},\n // fail: function(res) {\n // console.log(res)\n // },\n // });\n }\n },\n enableRender() {\n this.enableRenderHandle();\n },\n /**\r\n * 选中墙体触发\r\n */\n selectWall(wallIndex) {\n console.log(\"index\", wallIndex);\n if (this.chooseWallMeshColor) {\n for (let index = 0; index < this.curWallArr.length; index++) {\n const element = this.curWallArr[index];\n const cube = element.obj;\n this.chooseWallMeshColor.convertSRGBToLinear(); // 将颜色值转换为线性颜色值\n if (cube && cube.children[0].children[0] && cube.children[0].children[0].material) {\n cube.children[0].children[0].material.color = this.chooseWallMeshColor; //修改选中模型的颜色-高亮显示 当前选中的模型\n } else {//新版逻辑\n // element.instancedMeshIndexList.forEach(item=>{\n // \tlet _index = item.instancedMeshIndex;\n // \tlet instancedMesh = this.instancedMeshList[_index];//网格实例\n // \tinstancedMesh.instanceColor.needsUpdate = true;//打开颜色修改开关,不开,颜色是不能修改额\n // \tinstancedMesh.setColorAt(item.instancedAtIndex, this.chooseWallMeshColor);//修改这个几何体的颜色\n // })\n }\n }\n }\n switch (wallIndex) {\n case 1:\n this.curWallDirection = \"N\";\n break;\n case 2:\n this.curWallDirection = \"S\";\n break;\n case 3:\n this.curWallDirection = \"W\";\n break;\n case 4:\n this.curWallDirection = \"E\";\n break;\n }\n this.selectedWall(this.curWallDirection);\n this.curWallArr = [];\n if (wallIndex != 0) {\n const wallMoveValues = this.curSpaceObj.wallMoveValue;\n console.log;\n const values = JSON.parse(wallMoveValues);\n if (this.curWallValue == 150) {\n this.curWallValue = values[wallIndex - 1];\n } else {\n let wallIndex = 0;\n switch (this.curWallDirection) {\n case \"N\":\n wallIndex = 0;\n values[wallIndex] = this.curWallValue;\n values[1] = this.curWallValue;\n break;\n case \"S\":\n wallIndex = 1;\n values[wallIndex] = this.curWallValue;\n values[0] = this.curWallValue;\n break;\n case \"W\":\n wallIndex = 2;\n values[wallIndex] = this.curWallValue;\n values[3] = this.curWallValue;\n break;\n case \"E\":\n wallIndex = 3;\n values[wallIndex] = this.curWallValue;\n values[2] = this.curWallValue;\n break;\n }\n }\n this.curSpaceObj.wallMoveValue = JSON.stringify(values);\n console.log(\"墙体可移动数据:\", this.curSpaceObj.wallMoveValue, this.spaceList);\n const wallStatus = this.curSpaceObj.wallStatus || \"[false,false,false,false]\";\n const status = JSON.parse(wallStatus);\n this.curWallHidden = status[wallIndex - 1];\n console.log(\"当前墙面数据:\", wallStatus, status, wallIndex);\n const curSpaceGltfWall = this.gltfWalls.filter(item => {\n return this.curSpaceObj.spaceId == item.spaceId && item.wallDirection == this.curWallDirection;\n });\n if (curSpaceGltfWall.length != 0) {\n this.curWallArr.push(...curSpaceGltfWall);\n } else {\n let rightWallD = \"\";\n switch (wallIndex - 1) {\n case 0:\n rightWallD = \"S\";\n break;\n case 1:\n rightWallD = \"N\";\n break;\n case 2:\n rightWallD = \"E\";\n break;\n case 3:\n rightWallD = \"W\";\n break;\n }\n for (let index = 0; index < this.leftSpaces.length; index++) {\n const element = this.leftSpaces[index];\n const gltfWall = this.gltfWalls.filter(item => {\n return element.spaceId == item.spaceId && item.wallDirection == this.curWallDirection;\n });\n if (gltfWall) {\n this.curWallArr.push(...gltfWall);\n }\n }\n for (let index = 0; index < this.rightSpaces.length; index++) {\n const element = this.rightSpaces[index];\n const gltfWall = this.gltfWalls.filter(item => {\n return element.spaceId == item.spaceId && item.wallDirection == rightWallD;\n });\n if (gltfWall) {\n this.curWallArr.push(...gltfWall);\n }\n }\n }\n for (let index = 0; index < this.curWallArr.length; index++) {\n const element = this.curWallArr[index];\n const cube = element.obj;\n if (cube && cube.children[0].children[0] && cube.children[0].children[0].material) {\n this.chooseWallMeshColor = cube.children[0].children[0].material.color.clone();\n let color = new three__WEBPACK_IMPORTED_MODULE_9__.Color(0xff0000); // 使用sRGB颜色值\n color.convertSRGBToLinear(); // 将颜色值转换为线性颜色值\n cube.children[0].children[0].material.color = color; //修改选中模型的颜色-高亮显示 当前选中的模型\n } else {//新版逻辑\n // element.instancedMeshIndexList.forEach(item=>{\n // \tlet _index = item.instancedMeshIndex;\n // \tlet instancedMesh = this.instancedMeshList[_index];//网格实例\n\n // \tthis.chooseWallMeshColor = instancedMesh.material.color.clone();;\n // \tlet color = new THREE.Color(0xff0000); // 使用sRGB颜色值\n // \tcolor.convertSRGBToLinear(); // 将颜色值转换为线性颜色值\n // \tinstancedMesh.instanceColor.needsUpdate = true;//打开颜色修改开关,不开,颜色是不能修改额\n // \tinstancedMesh.setColorAt(item.instancedAtIndex, color);//修改这个几何体的颜色\n // })\n }\n }\n }\n },\n //具体空间面积变化-拖动产生的\n //data = {\n //\t\tspaceId:245,\n //\t\tarea:12, //正负值 单位平方米\n //\t}\n curSpaceChange(data) {\n console.warn(\"***空间面积变化***\", this.overChange, data);\n this.overChange = true; //变形开始 防止在形变结束前,再次形变\n this.currentChangeSpaceId = data.spaceId;\n this.changCurSpaceArea(data);\n },\n // 旧版本空间移动,\n changCurSpaceArea(data) {\n console.log(\"当前户型的核心点\", this.curHouseObj.houseCore, this.overChange);\n const houseCore = this.curHouseObj.houseCore.split(',');\n const coreX = houseCore[0] | 0;\n const coreY = houseCore[1] | 0;\n // 根据核心点计算空间所在象限\n this.spaces1 = [];\n this.spaces2 = [];\n this.spaces3 = [];\n this.spaces4 = [];\n let curSpace = null;\n for (let index = 0; index < this.spaceList.length; index++) {\n const element = this.spaceList[index];\n if (element.centerX > coreX) {\n // 2 3象限\n if (element.centerY > coreY) {\n // 2象限\n console.log(`象限2 ${element}`);\n element.quadrant = 2;\n this.spaces2.push(element);\n } else {\n // 3象限\n console.log(`象限3 ${element}`);\n element.quadrant = 3;\n this.spaces3.push(element);\n }\n } else {\n // 1 4象限\n if (element.centerY > coreY) {\n // 1象限\n console.log(`象限1 ${element}`);\n element.quadrant = 1;\n this.spaces1.push(element);\n } else {\n // 4象限\n console.log(`象限4 ${element}`);\n element.quadrant = 4;\n this.spaces4.push(element);\n }\n }\n if (element.spaceId == data.spaceId) {\n curSpace = element;\n }\n }\n console.log(\"当前space所在象限\", data.spaceId, curSpace.spaceId, curSpace.quadrant);\n console.log(\"象限\", this.spaces1, this.spaces2, this.spaces3, this.spaces4);\n this.calculateSpaceData(curSpace, data);\n },\n calculateSpaceData(curSpace, data) {\n let that = this;\n this.curSpaceObj = curSpace;\n\n // 计算宽高移动数值 \n const changeArea = data.area;\n const isZoomIn = data.isZoomIn;\n const oldArea = curSpace.spaceWidth / 100 * (curSpace.spaceHeight / 100);\n const newArea = oldArea + changeArea * (data.isZoomIn ? 1 : -1);\n const sizeScale = Math.sqrt(newArea / oldArea);\n let newWidth = curSpace.spaceWidth * sizeScale;\n let newHeight = curSpace.spaceHeight * sizeScale;\n let changeWidth = Math.abs(newWidth - curSpace.spaceWidth);\n let changeHeight = Math.abs(newHeight - curSpace.spaceHeight);\n console.log(\"变化的尺寸\", changeWidth, changeHeight, data, curSpace.spaceWidth, curSpace.spaceHeight);\n if (curSpace.quadrant == 1) {\n // 默认往南 往西移动\n this.moveSpace(curSpace, 1, 3, isZoomIn, newArea, newWidth, newHeight, changeWidth, changeHeight);\n }\n if (curSpace.quadrant == 2) {\n // 默认往南 往西移动\n this.moveSpace(curSpace, 1, 4, isZoomIn, newArea, newWidth, newHeight, changeWidth, changeHeight);\n }\n if (curSpace.quadrant == 3) {\n // this.selectWall(4);\n // \t\t// // 移动墙面\n // this.moveSpaceWall(this.curWallDirection, isZoomIn, changeWidth);\n // 默认往南 往东移动\n this.moveSpace(curSpace, 2, 4, isZoomIn, newArea, newWidth, newHeight, changeWidth, changeHeight);\n }\n if (curSpace.quadrant == 4) {\n // 默认往南 往西移动\n this.moveSpace(curSpace, 2, 3, isZoomIn, newArea, newWidth, newHeight, changeWidth, changeHeight);\n }\n setTimeout(() => {\n that.updataPageData();\n that.overChange = false;\n that.callBackFun && that.callBackFun(true);\n that.calculateLayoutModelSize(); //重新计算家具位置\n that.updateWallModels(); // 替换墙体模型\n }, 4200);\n },\n moveSpace(curSpace, directionIndex, directionIndex01, isZoomIn, newArea, newWidth, newHeight, changeWidth, changeHeight) {\n let that = this;\n const wallLock = this.currWallLock(directionIndex, curSpace); //南边\n const wallLock01 = this.currWallLock(directionIndex01, curSpace); //东边\n\n console.log(\"移动空间\", wallLock, wallLock01);\n if (wallLock == -1 && wallLock01 == -1) {\n return uni.showToast({\n title: \"空间尺寸已锁定\",\n icon: \"none\",\n duration: 3000\n });\n }\n let changeValue = changeHeight;\n if (wallLock == -1) {\n if (wallLock01 == 0) {\n directionIndex01 = directionIndex01 == 4 ? 3 : 4; // 往西移动\n }\n\n // 南北锁死,重新计算移动的方向\n newWidth = newArea / (curSpace.spaceHeight / 100) * 100;\n changeWidth = newWidth / 100 - curSpace.spaceWidth / 100;\n changeWidth = Math.abs(changeWidth * 100);\n directionIndex = directionIndex01; // 往东移动\n\n changeValue = changeWidth;\n console.log(\"高度锁死不能拉伸, 宽度变化1\", newWidth, directionIndex, curSpace.spaceWidth, curSpace.spaceHeight, changeValue);\n that.selectWall(directionIndex);\n that.moveSpaceWall(that.curWallDirection, isZoomIn, changeValue);\n that.autoCreateWall(directionIndex, curSpace);\n return;\n } else {\n if (wallLock == 0) {\n directionIndex = directionIndex == 2 ? 1 : 2; // 往北边移动\n }\n\n if (wallLock01 == -1) {\n // 东西锁死,重新计算移动方向\n newHeight = newArea / (curSpace.spaceWidth / 100) * 100;\n changeHeight = newHeight / 100 - curSpace.spaceHeight / 100;\n changeHeight = Math.abs(changeHeight * 100);\n changeValue = changeHeight;\n that.selectWall(directionIndex);\n that.moveSpaceWall(that.curWallDirection, isZoomIn, changeValue);\n // 自动补墙逻辑\n that.autoCreateWall(directionIndex, curSpace);\n return;\n }\n if (wallLock01 == 0) {\n directionIndex01 = directionIndex01 == 4 ? 3 : 4; // 往西移动\n }\n\n console.log(\"要变化的宽度\", newWidth, newHeight);\n // 目标宽度\n if (newHeight > curSpace.spaceHeightMax) {\n newHeight = curSpace.spaceHeightMax;\n changeHeight = Math.abs(newHeight - curSpace.spaceHeight);\n // 重新计算宽度值\n newWidth = newArea / (newHeight / 100) * 100;\n changeWidth = (newWidth / 100 - curSpace.spaceWidth / 100) * 100;\n console.log(\"高度达到最大值,重新计算宽度\", newWidth, newHeight, changeWidth, changeHeight);\n }\n if (newHeight < curSpace.spaceHeightMin) {\n newHeight = curSpace.spaceHeightMin;\n changeHeight = Math.abs(newHeight - curSpace.spaceHeight);\n // 重新计算宽度值\n newWidth = newArea / (newHeight / 100) * 100;\n changeWidth = Math.abs((newWidth / 100 - curSpace.spaceWidth / 100) * 100);\n console.log(\"高度达到最小值,重新计算宽度\", newWidth, newHeight, changeWidth, changeHeight);\n }\n if (newWidth > curSpace.spaceWidthMax) {\n newWidth = curSpace.spaceWidthMax;\n changeWidth = Math.abs(newWidth - curSpace.spaceWidth);\n // 重新计算宽度值\n newHeight = newArea / (newWidth / 100) * 100;\n changeHeight = (newHeight / 100 - curSpace.spaceHeight / 100) * 100;\n console.log(\"宽度达到最大值,重新计算高度\", newWidth, newHeight, changeWidth, changeHeight);\n }\n if (newWidth < curSpace.spaceWidthMin) {\n newWidth = curSpace.spaceWidthMin;\n changeWidth = Math.abs(newWidth - curSpace.spaceWidth);\n // 重新计算宽度值\n newHeight = newArea / (newWidth / 100) * 100;\n changeHeight = Math.abs((newHeight / 100 - curSpace.spaceHeight / 100) * 100);\n console.log(\"宽度达到最小值,重新计算高度\", newWidth, newHeight, changeWidth, changeHeight);\n }\n\n // let checkWidth = this.checkRightSpace(!isZoomIn, changeHeight, true)\n // let checkHeight = this.checkRightSpace(!isZoomIn, changeWidth, false)\n\n // console.log(\"达到极限值++++++++++++++\", checkWidth, checkHeight, changeWidth,changeHeight)\n // if(!checkWidth || !checkHeight){\n // \treturn\n // }\n\n if (changeHeight > 0) {\n that.selectWall(directionIndex);\n that.moveSpaceWall(that.curWallDirection, isZoomIn, changeHeight);\n // 自动补墙逻辑\n that.autoCreateWall(directionIndex, curSpace);\n }\n let timeout = 0;\n if (changeWidth > 0 && changeHeight > 0) {\n timeout = 2100;\n }\n console.log(\"改变尺寸\", changeWidth, changeHeight, newWidth, newHeight, timeout, directionIndex, directionIndex01, wallLock, wallLock01);\n if (changeWidth > 0) {\n setTimeout(() => {\n // // 选中墙面\n that.selectWall(directionIndex01);\n // // 移动墙面\n that.moveSpaceWall(that.curWallDirection, isZoomIn, changeWidth);\n // 自动补墙逻辑\n that.autoCreateWall(directionIndex01, curSpace);\n }, timeout);\n }\n }\n },\n currWallLock(direction, curSpace) {\n let curDirection = \"\";\n let faceDirection = \"\";\n switch (direction) {\n case 1:\n curDirection = \"N\";\n faceDirection = \"S\";\n break;\n case 2:\n curDirection = \"S\";\n faceDirection = \"N\";\n break;\n case 3:\n curDirection = \"W\";\n faceDirection = \"E\";\n break;\n case 4:\n curDirection = \"E\";\n faceDirection = \"W\";\n break;\n }\n const wallInfo = this.wallList.find(item => {\n let element = JSON.parse(item.wallJson);\n return element.spaceId == curSpace.spaceId;\n });\n let walls = JSON.parse(wallInfo.wallJson).wallData;\n const wall = walls.find(item => {\n // 当前墙面锁定\n return item.wallDirection == curDirection && item.isLocked == \"true\";\n });\n const faceWall = walls.find(item => {\n // 对面墙面锁定\n return item.wallDirection == faceDirection && item.isLocked == \"true\";\n });\n if (wall) {\n if (faceWall) {\n return -1; // 当前对面同时锁定\n }\n\n return 0; // 当前锁定\n } else {\n return 1; // 不锁定,可以移动\n }\n },\n\n checkRightSpace(isZoomIn, changeValue, isNS) {\n let n = isZoomIn ? 1 : -1;\n let l = isZoomIn ? -1 : 1;\n let result = true;\n let space = null;\n for (let index = 0; index < this.leftSpaces.length; index++) {\n const element = this.leftSpaces[index];\n let newWidth = element.spaceWidth + l * changeValue;\n let newHeight = element.spaceHeight + l * changeValue;\n console.log(\"关联左空间排查\", isZoomIn, changeValue, isNS, newWidth, newHeight);\n if (isNS) {\n if (newHeight > element.spaceHeightMax || newHeight < element.spaceHeightMin) {\n result = false;\n space = element;\n break;\n }\n } else {\n if (newWidth > element.spaceWidthMax || newWidth < element.spaceWidthMin) {\n result = false;\n space = element;\n break;\n }\n }\n }\n for (let index = 0; index < this.rightSpaces.length; index++) {\n const element = this.rightSpaces[index];\n let newWidth = element.spaceWidth + n * changeValue;\n let newHeight = element.spaceHeight + n * changeValue;\n console.log(\"关联右空间排查\", isZoomIn, changeValue, isNS, newWidth, newHeight);\n if (isNS) {\n if (newHeight > element.spaceHeightMax || newHeight < element.spaceHeightMin) {\n result = false;\n space = element;\n break;\n }\n } else {\n if (newWidth > element.spaceWidthMax || newWidth < element.spaceWidthMin) {\n result = false;\n space = element;\n break;\n }\n }\n }\n console.log(\"空间排查\", this.leftSpaces, this.rightSpaces, result, space);\n if (!result) {\n uni.showToast({\n title: `关联空间[${space && space.spaceName || ''}]达到极限值`,\n icon: \"none\",\n duration: 3000\n });\n }\n return result;\n },\n checkSpaceSize(isZoomIn, changeWidth, changeHeight) {\n console.log(\"检查尺寸\", isZoomIn, changeWidth, changeHeight, this.leftSpaces, this.rightSpaces);\n for (let index = 0; index < this.leftSpaces.length; index++) {\n const element = this.leftSpaces[index];\n if (isZoomIn) {\n if (element.spaceWidth + changeWidth > element.spaceWidthMax || element.spaceHeight + changeHeight > element.spaceHeightMax) {\n console.log(\"++++++++++移动空间达到极大值1\", element.spaceId, element.spaceWidth + changeWidth > element.spaceWidthMax, element.spaceHeight + changeHeight > element.spaceHeightMax);\n console.log(\"++++++++++移动空间达到极大值宽\", element.spaceWidth, changeWidth, element.spaceWidthMax);\n console.log(\"++++++++++移动空间达到极大值高\", element.spaceHeight, changeHeight, element.spaceHeightMax);\n return false;\n }\n } else {\n if (element.spaceWidth - changeWidth < element.spaceWidthMin || element.spaceHeight - changeHeight < element.spaceHeightMin) {\n console.log(\"++++++++++移动空间达到极小值2\", element.spaceId);\n console.log(\"++++++++++移动空间达到极大值宽\", element.spaceWidth, changeWidth, element.spaceWidthMin);\n console.log(\"++++++++++移动空间达到极大值高\", element.spaceHeight, changeHeight, element.spaceHeightMin);\n return false;\n }\n }\n }\n for (let index = 0; index < this.rightSpaces.length; index++) {\n const element = this.rightSpaces[index];\n if (!isZoomIn) {\n if (element.spaceWidth - changeWidth < element.spaceWidthMin || element.spaceHeight - changeHeight < element.spaceHeightMin) {\n console.log(\"++++++++++其他空间达到极小值4\", element.spaceId);\n console.log(\"++++++++++移动空间达到极大值宽\", element.spaceWidth, changeWidth, element.spaceWidthMin);\n console.log(\"++++++++++移动空间达到极大值高\", element.spaceHeight, changeHeight, element.spaceHeightMin);\n return false;\n }\n } else {\n if (element.spaceWidth + changeWidth > element.spaceWidthMax || element.spaceHeight + changeHeight > element.spaceHeightMax) {\n console.log(\"++++++++++其他空间达到极大值3\", element.spaceId);\n console.log(\"++++++++++移动空间达到极大值宽\", element.spaceWidth, changeWidth, element.spaceWidthMax);\n console.log(\"++++++++++移动空间达到极大值高\", element.spaceHeight, changeHeight, element.spaceHeightMax);\n return false;\n }\n }\n }\n return true;\n },\n // 新版本空间移动计算\n changeCurSpaceSize(curSpace, changeArea, isZoomIn) {\n // 计算当前空间的变化\n // 1.原先面积\n const oldArea = curSpace.spaceWidth / 100 * (curSpace.spaceHeight / 100);\n const newArea = oldArea + changeArea * isZoomIn;\n const sizeScale = Math.sqrt(newArea / oldArea);\n console.log(`新面积:${newArea} 老面积:${oldArea}缩放比例:${sizeScale} 改变的面积:${changeArea} 是否放大:${isZoomIn} 中心点:${curSpace.centerX} ${curSpace.centerX}`);\n console.log(`改变前:尺寸:${curSpace.spaceWidth} ${curSpace.spaceHeight} 中心点:${curSpace.centerX} ${curSpace.centerY}`);\n curSpace.toScaleX = curSpace.spaceWidth * sizeScale / 300;\n curSpace.toScaleZ = curSpace.spaceHeight * sizeScale / 300;\n if (this.minspace1 && this.minspace1.spaceId == curSpace.spaceId) {\n curSpace.toPx = (curSpace.spaceWidth * sizeScale - curSpace.spaceWidth) / 2 / 100 * -1;\n curSpace.toPz = (curSpace.spaceHeight * sizeScale - curSpace.spaceHeight) / 2 / 100 * -1;\n console.log(\"XXXXXXXX-计算空间变化信息1\", curSpace.toScaleX, curSpace.toScaleZ, curSpace.toPx, curSpace.toPz);\n } else if (this.minspace2 && this.minspace2.spaceId == curSpace.spaceId) {\n curSpace.toPx = (curSpace.spaceWidth * sizeScale - curSpace.spaceWidth) / 2 / 100;\n curSpace.toPz = (curSpace.spaceHeight * sizeScale - curSpace.spaceHeight) / 2 / 100 * -1;\n console.log(\"XXXXXXXX-计算空间变化信息2\", curSpace.toScaleX, curSpace.toScaleZ, curSpace.toPx, curSpace.toPz);\n } else if (this.minspace3 && this.minspace3.spaceId == curSpace.spaceId) {\n curSpace.toPx = (curSpace.spaceWidth * sizeScale - curSpace.spaceWidth) / 2 / 100;\n curSpace.toPz = (curSpace.spaceHeight * sizeScale - curSpace.spaceHeight) / 2 / 100;\n console.log(\"XXXXXXXX-计算空间变化信息3\", curSpace.toScaleX, curSpace.toScaleZ, curSpace.toPx, curSpace.toPz);\n } else if (this.minspace4 && this.minspace4.spaceId == curSpace.spaceId) {\n curSpace.toPx = (curSpace.spaceWidth * sizeScale - curSpace.spaceWidth) / 2 / 100 * -1;\n curSpace.toPz = (curSpace.spaceHeight * sizeScale - curSpace.spaceHeight) / 2 / 100;\n console.log(\"XXXXXXXX-计算空间变化信息4\", curSpace.toScaleX, curSpace.toScaleZ, curSpace.toPx, curSpace.toPz);\n } else {\n return;\n }\n\n // 更新数据:\n\n curSpace.spaceWidth = curSpace.spaceWidth * sizeScale;\n curSpace.spaceHeight = curSpace.spaceHeight * sizeScale;\n curSpace.centerX = curSpace.centerX + curSpace.toPx * 100;\n curSpace.centerY = curSpace.centerY + curSpace.toPz * 100;\n const spaceIndex = this.spaceList.findIndex(item => {\n return item.spaceId == curSpace.spaceId;\n });\n if (spaceIndex != -1) {\n this.spaceList[spaceIndex] = curSpace;\n }\n console.log(`改变后:尺寸:${curSpace.spaceWidth} ${curSpace.spaceHeight} 中心点:${curSpace.centerX} ${curSpace.centerY} `, curSpace.toPx, curSpace.toPz);\n },\n findxxSpace(manSpace, changeArea, xiangxian, isZoomIn) {\n if (xiangxian == 1) {\n const spaceE = this.spaces1.find(item => {\n return item.spaceId == manSpace.eastId;\n });\n const spaceS = this.spaces1.find(item => {\n return item.spaceId == manSpace.southId;\n });\n const oldArea = manSpace.spaceWidth / 100 * (manSpace.spaceHeight / 100);\n const newArea = oldArea + changeArea * isZoomIn;\n const sizeScale = Math.sqrt(newArea / oldArea);\n manSpace.toScaleX = manSpace.spaceWidth * sizeScale / 300;\n manSpace.toScaleZ = manSpace.spaceHeight * sizeScale / 300;\n if (spaceE) {\n manSpace.toPx = (manSpace.spaceWidth * sizeScale - manSpace.spaceWidth) / 2 / 100 * -1 + spaceE.toPx * 2;\n console.log(\"XXXXXXXX东边有空间\", manSpace.spaceId, spaceE.toPx);\n } else {\n manSpace.toPx = (manSpace.spaceWidth * sizeScale - manSpace.spaceWidth) / 2 / 100 * -1;\n console.log(\"XXXXXXXX东边没空间\", manSpace.spaceId);\n }\n if (spaceS) {\n manSpace.toPz = (manSpace.spaceHeight * sizeScale - manSpace.spaceHeight) / 2 / 100 * -1 + spaceS.toPz * 2;\n console.log(\"XXXXXXXX南边有空间\", manSpace.spaceId, spaceS.toPz);\n } else {\n manSpace.toPz = (manSpace.spaceHeight * sizeScale - manSpace.spaceHeight) / 2 / 100 * -1;\n console.log(\"XXXXXXXX南边没空间\", manSpace.spaceId);\n }\n console.log(\"XXXXXXXX-前象限1的其他空间\", manSpace.spaceId, manSpace.spaceWidth, manSpace.spaceHeight, manSpace.centerX, manSpace.centerY, manSpace.toPx);\n manSpace.spaceWidth = manSpace.spaceWidth * sizeScale;\n manSpace.spaceHeight = manSpace.spaceHeight * sizeScale;\n manSpace.centerX += manSpace.toPx * 100;\n manSpace.centerY += manSpace.toPz * 100;\n console.log(\"XXXXXXXX-后象限1的其他空间\", manSpace.spaceId, manSpace.spaceWidth, manSpace.spaceHeight, manSpace.centerX, manSpace.centerY);\n const spaceIndex = this.spaceList.findIndex(item => {\n return item.spaceId == manSpace.spaceId;\n });\n if (spaceIndex != -1) {\n this.spaceList[spaceIndex] = manSpace;\n }\n const spacesIndex = this.spaces1.findIndex(item => {\n return item.spaceId == manSpace.spaceId;\n });\n if (spacesIndex != -1) {\n this.spaces1[spacesIndex] = manSpace;\n }\n }\n if (xiangxian == 2) {\n const spaceW = this.spaces2.find(item => {\n return item.spaceId == manSpace.westId;\n });\n const spaceS = this.spaces2.find(item => {\n return item.spaceId == manSpace.southId;\n });\n const oldArea = manSpace.spaceWidth / 100 * (manSpace.spaceHeight / 100);\n const newArea = oldArea + changeArea * isZoomIn;\n const sizeScale = Math.sqrt(newArea / oldArea);\n manSpace.toScaleX = manSpace.spaceWidth * sizeScale / 300;\n manSpace.toScaleZ = manSpace.spaceHeight * sizeScale / 300;\n if (spaceW) {\n manSpace.toPx = (manSpace.spaceWidth * sizeScale - manSpace.spaceWidth) / 2 / 100 + spaceW.toPx * 2;\n console.log(\"XXXXXXXX西边有空间\", manSpace.spaceId, spaceW.toPx);\n } else {\n manSpace.toPx = (manSpace.spaceWidth * sizeScale - manSpace.spaceWidth) / 2 / 100;\n console.log(\"XXXXXXXX西边没空间\", manSpace.spaceId);\n }\n if (spaceS) {\n manSpace.toPz = (manSpace.spaceHeight * sizeScale - manSpace.spaceHeight) / 2 / 100 * -1 + spaceS.toPz * 2;\n console.log(\"XXXXXXXX南边有空间\", manSpace.spaceId, spaceS.toPz);\n } else {\n manSpace.toPz = (manSpace.spaceHeight * sizeScale - manSpace.spaceHeight) / 2 / 100 * -1;\n console.log(\"XXXXXXXX南边没空间\", manSpace.spaceId);\n }\n console.log(\"XXXXXXXX-前象限2的其他空间\", manSpace.spaceId, manSpace.spaceWidth, manSpace.spaceHeight, manSpace.centerX, manSpace.centerY, manSpace.toPx);\n manSpace.spaceWidth = manSpace.spaceWidth * sizeScale;\n manSpace.spaceHeight = manSpace.spaceHeight * sizeScale;\n manSpace.centerX += manSpace.toPx * 100;\n manSpace.centerY += manSpace.toPz * 100;\n console.log(\"XXXXXXXX-后象限2的其他空间\", manSpace.spaceId, manSpace.spaceWidth, manSpace.spaceHeight, manSpace.centerX, manSpace.centerY);\n const spaceIndex = this.spaceList.findIndex(item => {\n return item.spaceId == manSpace.spaceId;\n });\n if (spaceIndex != -1) {\n this.spaceList[spaceIndex] = manSpace;\n }\n const spacesIndex = this.spaces2.findIndex(item => {\n return item.spaceId == manSpace.spaceId;\n });\n if (spacesIndex != -1) {\n this.spaces2[spacesIndex] = manSpace;\n }\n }\n if (xiangxian == 3) {\n const spaceW = this.spaces3.find(item => {\n return item.spaceId == manSpace.westId;\n });\n const spaceN = this.spaces3.find(item => {\n return item.spaceId == manSpace.northId;\n });\n const oldArea = manSpace.spaceWidth / 100 * (manSpace.spaceHeight / 100);\n const newArea = oldArea + changeArea * isZoomIn;\n const sizeScale = Math.sqrt(newArea / oldArea);\n manSpace.toScaleX = manSpace.spaceWidth * sizeScale / 300;\n manSpace.toScaleZ = manSpace.spaceHeight * sizeScale / 300;\n if (spaceW) {\n manSpace.toPx = (manSpace.spaceWidth * sizeScale - manSpace.spaceWidth) / 2 / 100 + spaceW.toPx * 2;\n console.log(\"XXXXXXXX西边有空间\", manSpace.spaceId, spaceW.toPx);\n } else {\n manSpace.toPx = (manSpace.spaceWidth * sizeScale - manSpace.spaceWidth) / 2 / 100;\n console.log(\"XXXXXXXX西边没空间\", manSpace.spaceId);\n }\n if (spaceN) {\n manSpace.toPz = (manSpace.spaceHeight * sizeScale - manSpace.spaceHeight) / 2 / 100 + spaceN.toPz * 2;\n console.log(\"XXXXXXXX北边有空间\", manSpace.spaceId, spaceN.toPz);\n } else {\n manSpace.toPz = (manSpace.spaceHeight * sizeScale - manSpace.spaceHeight) / 2 / 100;\n console.log(\"XXXXXXXX北边没空间\", manSpace.spaceId);\n }\n console.log(\"XXXXXXXX-前象限3的其他空间\", manSpace.spaceId, manSpace.spaceWidth, manSpace.spaceHeight, manSpace.centerX, manSpace.centerY, manSpace.toPx);\n manSpace.spaceWidth = manSpace.spaceWidth * sizeScale;\n manSpace.spaceHeight = manSpace.spaceHeight * sizeScale;\n manSpace.centerX += manSpace.toPx * 100;\n manSpace.centerY += manSpace.toPz * 100;\n console.log(\"XXXXXXXX-后象限3的其他空间\", manSpace.spaceId, manSpace.spaceWidth, manSpace.spaceHeight, manSpace.centerX, manSpace.centerY);\n const spaceIndex = this.spaceList.findIndex(item => {\n return item.spaceId == manSpace.spaceId;\n });\n if (spaceIndex != -1) {\n this.spaceList[spaceIndex] = manSpace;\n }\n const spacesIndex = this.spaces3.findIndex(item => {\n return item.spaceId == manSpace.spaceId;\n });\n if (spacesIndex != -1) {\n this.spaces3[spacesIndex] = manSpace;\n }\n }\n if (xiangxian == 4) {\n const spaceE = this.spaces4.find(item => {\n return item.spaceId == manSpace.eastId;\n });\n const spaceN = this.spaces4.find(item => {\n return item.spaceId == manSpace.northId;\n });\n const oldArea = manSpace.spaceWidth / 100 * (manSpace.spaceHeight / 100);\n const newArea = oldArea + changeArea * isZoomIn;\n const sizeScale = Math.sqrt(newArea / oldArea);\n manSpace.toScaleX = manSpace.spaceWidth * sizeScale / 300;\n manSpace.toScaleZ = manSpace.spaceHeight * sizeScale / 300;\n if (spaceE) {\n manSpace.toPx = (manSpace.spaceWidth * sizeScale - manSpace.spaceWidth) / 2 / 100 * -1 + spaceE.toPx * 2;\n console.log(\"XXXXXXXX东边有空间\", manSpace.spaceId, spaceE.toPx);\n } else {\n manSpace.toPx = (manSpace.spaceWidth * sizeScale - manSpace.spaceWidth) / 2 / 100 * -1;\n console.log(\"XXXXXXXX东边没空间\", manSpace.spaceId);\n }\n if (spaceN) {\n manSpace.toPz = (manSpace.spaceHeight * sizeScale - manSpace.spaceHeight) / 2 / 100 + spaceN.toPz * 2;\n console.log(\"XXXXXXXX北边有空间\", manSpace.spaceId, spaceN.toPz);\n } else {\n manSpace.toPz = (manSpace.spaceHeight * sizeScale - manSpace.spaceHeight) / 2 / 100;\n console.log(\"XXXXXXXX北边没空间\", manSpace.spaceId);\n }\n console.log(\"XXXXXXXX-前象限4的其他空间\", manSpace.spaceId, manSpace.spaceWidth, manSpace.spaceHeight, manSpace.centerX, manSpace.centerY, manSpace.toPx);\n manSpace.spaceWidth = manSpace.spaceWidth * sizeScale;\n manSpace.spaceHeight = manSpace.spaceHeight * sizeScale;\n manSpace.centerX += manSpace.toPx * 100;\n manSpace.centerY += manSpace.toPz * 100;\n console.log(\"XXXXXXXX-后象限4的其他空间\", manSpace.spaceId, manSpace.spaceWidth, manSpace.spaceHeight, manSpace.centerX, manSpace.centerY);\n const spaceIndex = this.spaceList.findIndex(item => {\n return item.spaceId == manSpace.spaceId;\n });\n if (spaceIndex != -1) {\n this.spaceList[spaceIndex] = manSpace;\n }\n const spacesIndex = this.spaces4.findIndex(item => {\n return item.spaceId == manSpace.spaceId;\n });\n if (spacesIndex != -1) {\n this.spaces4[spacesIndex] = manSpace;\n }\n }\n },\n //空间面积等变更后-同步更新其他数据对象\n updataPageData() {\n let str = JSON.stringify(this.spaceList);\n //更新当前空间对象\n this.curHouseObj.houseJson = str;\n //更新提交的数据\n let layoutStruct = this.curLayoutStruct.find(it => {\n return it.houseFloor == this.curHouseFloor;\n });\n layoutStruct.houseJson = str;\n this.currentChangeSpaceId = null; //变化结束后\n console.warn(\"***curLayoutStruct-updataPageData***\", this.curHouseFloor, this.curHouseObj, layoutStruct);\n },\n //户型大类发生了变更\n curHouseTypeChange(item) {\n this.curHouseType = item.spaceStructure; //当前选中的户型类型\n this.curHouseName = item.spaceName; //当前选中的户型类型名称\n //获取当前户型大类下的所有户型信息-用于用户提交\n this.curLayoutStruct = this.houseList.find(it => it.spaceStructure == this.curHouseType).layoutStruct;\n console.warn(\"***curLayoutStruct***\", this.curLayoutStruct);\n },\n //户型楼层发生了变更\n curHouseFloorChange(item) {\n let that = this;\n this.curHouseFloor = item.houseFloor; //当前选中的户型楼层\n this.curHouseObj = item; //更新当前具体的户型数据\n this.id = this.curHouseObj.id;\n // 遍历场景中的所有子对象,找到类型为Mesh的对象并移除\n let deleList = that.scene && that.scene.children.filter(object => {\n if (object.userType == \"mesh\" || object.userType == \"layoutMesh\") {\n return object;\n }\n });\n // console.warn(\"***deleList***\",deleList)\n if (deleList && deleList.length > 0) {\n that.showLables = false; //隐藏lable\n that.scene.remove(...deleList);\n }\n this.gltfWalls = [];\n this.gltfSpaces = [];\n this.instancedMeshList = [];\n this.instancedSpaceMeshList = [];\n this.lableItem = [];\n this.gltfLayouts = [];\n this.instancedFurList = [];\n this.wallList = [];\n //恢复初始视角\n this.camera.position.set(that.cameraStarPosition.x, that.cameraStarPosition.y, that.cameraStarPosition.z);\n // this.controls.target = new THREE.Vector3( that.controlStarPosition.x, that.controlStarPosition.y, that.controlStarPosition.z );;\n this.camera.lookAt(that.controlStarPosition.x, that.controlStarPosition.y, that.controlStarPosition.z);\n setTimeout(() => {\n that.loadSpace();\n }, 100);\n console.warn(\"***curHouseObj***\", this.curHouseObj, that.postAIData);\n this.navbar.title = this.curHouseObj.name + \" \" + this.curHouseObj.houseArea + \"㎡\";\n },\n async getInitData() {\n let parmas = {\n childLayout: this.childLayout || 0,\n houseId: this.houseId\n };\n const res = await requestConfig('getHouseTypeSpaceDetailsV2', parmas, true);\n console.log(\"户型详情数据:\", res);\n if (res.success && res.list) {\n let list = res.list || [];\n list && list.forEach((single, index) => {\n single.layoutStruct.forEach(item => {\n if (item.houseJson) {\n let spaceList = JSON.parse(item.houseJson);\n // 交换centerX, centerY\n for (let index = 0; index < spaceList.length; index++) {\n var element = spaceList[index];\n const {\n centerX,\n centerY\n } = element;\n element.centerX = centerY;\n element.centerY = centerX;\n }\n item.houseJson = JSON.stringify(spaceList);\n }\n });\n });\n console.log(\"户型详情列表: \", list);\n this.houseList = list; //数据会同步到组件中-进而反馈更新页面数据\n this.curHouseObj = this.houseList[0].layoutStruct[0];\n // 加载户型\n this.loadSpace();\n }\n },\n onMouseMove(e) {\n return false;\n },\n webgl_touch(e) {\n const web_e = Event.fix(e);\n window.dispatchEvent(web_e);\n let web_e2 = Object.assign(e, web_e);\n document.dispatchEvent(web_e2);\n this.canvas.dispatchEvent(web_e);\n },\n goRoam1(spaceId) {\n let gltf = this.lableItem.find(it => it.spaceId == spaceId);\n if (gltf) {\n this.goRoam(gltf);\n }\n },\n //物体漫游-切换页面的方式进入\n goRoam(gltf) {\n // console.log('是否漫游',this.isManyou ? '漫游' : '俯视',isManyou,this.repeatFlag);\n if (gltf.spaceType == 13) {\n //楼梯不能跳转\n return false;\n }\n let spaceId = gltf.spaceId; //具体的空间Id\n let data = {\n spaceId: spaceId,\n curHouseObj: this.curHouseObj\n };\n if (this.repeatFlag) {\n return false;\n }\n this.repeatFlag = true;\n // uni.navigateTo({\n // url: '/webgl/pages/webgl_rxdz_roam/webgl_rxdz_roam?houseId='+this.houseId,\n // \tsuccess: (res)=> {\n // \t\t// 通过eventChannel向被打开页面传送数据\n // \t\tres.eventChannel.emit('acceptDataFromOpenerPage', {\n // \t\t\tdata: data\n // \t\t})\n // \t\tthis.showLables = true;\n // \t},\n // fail: (res) =>{\n // console.log(res)\n // },\n // \tcomplete: (res) => {\n // \t\tthis.repeatFlag = false;\n // \t}\n // });\n },\n\n //obj 物体对象,type 是否改变颜色\n moveMeshCenter(obj, type) {\n console.warn(\"**moveMeshCenter***\", obj);\n if (obj && this.gltfSpaces && this.gltfSpaces.length > 0) {\n this.moveMeshCenterHandle(obj, type);\n }\n },\n // 绘制地板\n async loadSpace() {\n this.spaceList = [];\n this.wallIds = [];\n this.layoutIds = [];\n this.gltfSpaces = [];\n this.curWallArr = [];\n this.progress = 0;\n if (!this.curHouseObj) {\n //减少重复请求\n return false;\n }\n let type = [];\n if (this.curHouseObj) {\n const spaceDetail = this.curHouseObj;\n const spaceList = JSON.parse(spaceDetail.houseJson);\n // 交换centerX, centerY;上一页面已经处理过了,这里不在需要处理\n for (let index = 0; index < spaceList.length; index++) {\n var element = spaceList[index];\n // const centerX = JSON.parse(JSON.stringify(element.centerX))\n // element.centerX = element.centerY;\n // element.centerY = centerX;\n element.wallMoveValue = \"[0,0,0,0]\";\n this.spaceList.push(element);\n this.wallIds.push(element.wallId);\n this.layoutIds.push(element.layoutId);\n type.push(element.spaceType);\n if (element.isSelected) {\n // 默认选中空间\n this.curSpaceObj = element;\n }\n }\n if (!this.curSpaceObj && this.spaceList.length > 0) {\n this.curSpaceObj = this.spaceList[0];\n }\n }\n console.log(\"该户型空间数据:\", this.spaceList, this.layoutIds, type);\n console.log(\"当前选中的空间:\", this.curSpaceObj, this.curHouseObj);\n this.loaderSpaceArr(this.spaceList);\n // 绘制墙体\n this.getHouseTypeSpaceWalls();\n this.getOverallArrangementDetailsList(2);\n },\n // 添加文字标签\n addWordLabel() {\n if (!this.gltfSpaces || this.gltfSpaces.length <= 0) {\n return false;\n }\n // 方案二\n this.lableItem = [];\n this.gltfSpaces.forEach((cube, index) => {\n // 给地板加上空间类型标注, 空间为链接空间的不显示\n if (cube.spaceName && !cube.isSizeLock) {\n let spaceIndex = this.spaceList.filter(it => it.spaceName && !it.isSizeLock).findIndex(item => item.spaceId == cube.spaceId);\n this.lableItem.push({\n text: cube.spaceName,\n spaceId: cube.spaceId,\n spaceType: cube.spaceType,\n transform: '',\n spaceIndex: spaceIndex,\n cubeIndex: index\n });\n }\n });\n },\n // 获取墙体数据\n async getHouseTypeSpaceWalls() {\n let data = {\n id: this.wallIds\n };\n const res = await requestConfig('getHouseTypeSpaceWalls', data, true);\n console.log(\"墙体数据:\", res.list);\n let wallList = [];\n if (res.success) {\n wallList = this.wallList = res.list;\n }\n let wallArr = [];\n for (let index = 0; index < wallList.length; index++) {\n //每个空间对应一个数据\n let element = JSON.parse(wallList[index].wallJson);\n let space = this.spaceList.find(space => space.spaceId == element.spaceId);\n this.computeWallHandleOld(space, element); //提前计算\n for (let i = 0; i < element.wallData.length; i++) {\n //对应空间里面的4个方向的墙壁数据\n let wallData = element.wallData[i];\n //对应方向的墙壁的墙体模型数据列表,每一面墙可能有多个模型\n for (let j = 0; j < wallData.wallModelData.length; j++) {\n let wallModelData = wallData.wallModelData[j];\n wallArr.push({\n spaceId: element.spaceId,\n wallModelData: wallModelData,\n wallDirection: wallData.wallDirection\n });\n // console.log(\"wallModelData\", element,wallData.wallDirection, wallModelData.wallType );\n }\n }\n }\n\n this.loadSpaceObjWalls(wallArr, wallList);\n },\n // 加载单个空间墙体资源\n async loadSpaceObjWalls(wallArr, wallList) {\n // 加载远程墙体模型资源\n let startTime = new Date().getTime();\n // console.log(\"wallArr:\", wallArr)\n let promise_list = [];\n let realWallArr = this.preWallData(wallArr);\n let arrLength = realWallArr.length;\n realWallArr && realWallArr.forEach((item, index) => {\n promise_list.push(new Promise((resolve, reject) => {\n this.loadWallModels(item, wallList, arrLength, resolve);\n }));\n });\n Promise.all(promise_list).then(() => {\n let endTime = new Date().getTime();\n console.log(\"模型全部加载完成,时间:\", endTime - startTime);\n this.progress = 100;\n // this.$refs.myLoading.showLoading(\"加载中...\" + this.progress + '%')\n // 设置空间数组的墙体信息\n this.setSpaceListWallInfo();\n this.$nextTick(() => {\n this.moveMeshCenter(this.curSpaceObj);\n // this.myLoadingStatus = false;\n // this.$refs.myLoading.hideLoading();\n // setTimeout(()=>{\n // \tthis.addWordLabel(); // 添加文字标签\n // }, 610);\n // 设置空间数组的墙体信息 \n // 绘制布局\n // this.getOverallArrangementDetailsList();\n });\n });\n },\n\n // 选择墙体\n selectedWall(direction) {\n if (!direction || direction == \"\") {\n return;\n }\n console.log(`当前空间的id:${this.curSpaceObj.spaceId};墙面方向:${direction};宽度:${this.curSpaceObj.spaceWidth};宽度:${this.curSpaceObj.spaceHeight}`);\n console.log(\"当前空间的:\", this.curSpaceObj);\n this.leftSpaces = [];\n this.rightSpaces = [];\n this.tempSpaceList = JSON.parse(JSON.stringify(this.spaceList));\n // 计算关联空间\n this.findLeftRelateSpace(this.curSpaceObj, direction);\n console.log(\"空间数组:\", this.leftSpaces, this.rightSpaces);\n\n // 计算墙体的可移动范围\n var min = 0;\n var max = 300;\n // 计算最小值\n for (let index = 0; index < this.leftSpaces.length; index++) {\n const element = this.leftSpaces[index];\n console.log(\"左边空间数据:\", element);\n var spaceMoveNW = element.spaceWidth;\n var spaceMoveSW = element.spaceWidth;\n var spaceMoveEH = element.spaceHeight;\n var spaceMoveWH = element.spaceHeight;\n var curSpaceWall = [];\n for (let index = 0; index < this.gltfWalls.length; index++) {\n const wall = this.gltfWalls[index];\n if (element.spaceId == wall.spaceId && wall.wallDirection != direction) {\n curSpaceWall.push(wall);\n if ((direction == \"W\" || direction == \"E\") && wall.wallDirection != direction) {\n if (wall.wallDirection == \"N\") {\n spaceMoveNW -= wall.wallModelData.wallWidth;\n console.log(\"北边墙:\", spaceMoveNW, wall.wallModelData.wallWidth, wall.id);\n }\n if (wall.wallDirection == \"S\") {\n spaceMoveSW -= wall.wallModelData.wallWidth;\n console.log(\"南边墙:\", spaceMoveSW, wall.wallModelData.wallWidth, wall.id);\n }\n this.curWallValue = Math.floor(Math.min(Math.min(spaceMoveNW, spaceMoveSW), this.curWallValue));\n }\n if ((direction == \"N\" || direction == \"S\") && wall.wallDirection != direction) {\n if (wall.wallDirection == \"E\") {\n spaceMoveEH -= wall.wallModelData.wallWidth;\n console.log(\"东边墙:\", spaceMoveNW, wall.wallModelData.wallWidth, wall.id);\n }\n if (wall.wallDirection == \"W\") {\n spaceMoveWH -= wall.wallModelData.wallWidth;\n console.log(\"西边墙:\", spaceMoveSW, wall.wallModelData.wallWidth, wall.id);\n }\n this.curWallValue = Math.floor(Math.min(Math.min(spaceMoveEH, spaceMoveWH), this.curWallValue));\n }\n }\n }\n\n // 排序墙体数据\n curSpaceWall.sort(function (a, b) {\n return a.wallModelData.id - b.wallModelData.id;\n });\n curSpaceWall.sort(function (a, b) {\n return a.wallDirection.localeCompare(b.wallDirection);\n });\n console.log(\"墙体模型:\", curSpaceWall, spaceMoveNW, spaceMoveSW);\n console.log(\"可缩小的最小值:\", Math.floor(Math.min(spaceMoveNW, spaceMoveSW)));\n if ((direction == \"W\" || direction == \"E\") && element.spaceWidth == this.curWallValue) {\n this.curWallValue = 149;\n }\n if ((direction == \"N\" || direction == \"S\") && element.spaceHeight == this.curWallValue) {\n this.curWallValue = 149;\n }\n // this.curWallValue = Math.floor(Math.min(spaceMoveNW, spaceMoveSW));\n }\n\n // 计算最大值\n\n for (let index = 0; index < this.rightSpaces.length; index++) {\n const element = this.rightSpaces[index];\n console.log(\"右边空间数据:\", element);\n var spaceMoveNW = element.spaceWidth;\n var spaceMoveSW = element.spaceWidth;\n var spaceMoveEH = element.spaceHeight;\n var spaceMoveWH = element.spaceHeight;\n var curSpaceWall = [];\n for (let index = 0; index < this.gltfWalls.length; index++) {\n const wall = this.gltfWalls[index];\n if (element.spaceId == wall.spaceId && wall.wallDirection != direction) {\n curSpaceWall.push(wall);\n if ((direction == \"W\" || direction == \"E\") && wall.wallDirection != direction) {\n if (wall.wallDirection == \"N\") {\n spaceMoveNW -= wall.wallModelData.wallWidth;\n console.log(\"北边墙:\", spaceMoveNW, wall.wallModelData.wallWidth, wall.id);\n }\n if (wall.wallDirection == \"S\") {\n spaceMoveSW -= wall.wallModelData.wallWidth;\n console.log(\"南边墙:\", spaceMoveSW, wall.wallModelData.wallWidth, wall.id);\n }\n this.curWallMaxValue = Math.floor(Math.min(spaceMoveNW, spaceMoveSW)) + this.curWallValue;\n }\n if ((direction == \"N\" || direction == \"S\") && wall.wallDirection != direction) {\n if (wall.wallDirection == \"E\") {\n spaceMoveEH -= wall.wallModelData.wallWidth;\n console.log(\"东边墙:\", spaceMoveNW, wall.wallModelData.wallWidth, wall.id);\n }\n if (wall.wallDirection == \"W\") {\n spaceMoveWH -= wall.wallModelData.wallWidth;\n console.log(\"西边墙:\", spaceMoveSW, wall.wallModelData.wallWidth, wall.id);\n }\n this.curWallMaxValue = Math.floor(Math.min(spaceMoveEH, spaceMoveWH)) + this.curWallValue;\n }\n }\n }\n\n // 排序墙体数据\n curSpaceWall.sort(function (a, b) {\n return a.wallModelData.id - b.wallModelData.id;\n });\n curSpaceWall.sort(function (a, b) {\n return a.wallDirection.localeCompare(b.wallDirection);\n });\n console.log(\"墙体模型:\", curSpaceWall, spaceMoveNW, spaceMoveSW);\n console.log(\"可缩小的最小值:\", Math.floor(Math.min(spaceMoveNW, spaceMoveSW)));\n }\n console.log(`当前墙面的最大值:${this.curWallMaxValue}, 最小值:${this.curWallValue}`);\n },\n // 递归寻找左边->右边关联空间\n findLeftRelateSpace(spaceObj, direction) {\n const {\n eastId,\n westId,\n northId,\n southId,\n spaceId\n } = spaceObj;\n const leftIndex = this.tempSpaceList.findIndex(item => {\n return item.spaceId == spaceId;\n });\n if (leftIndex != -1) {\n const spaceObj = this.tempSpaceList[leftIndex];\n this.leftSpaces.push(spaceObj);\n this.tempSpaceList.splice(leftIndex, 1);\n const leftNextIndex = this.tempSpaceList.findIndex(item => {\n if (direction == \"E\") {\n return item.spaceId == eastId;\n } else if (direction == \"W\") {\n return item.spaceId == westId;\n } else if (direction == \"S\") {\n return item.spaceId == southId;\n } else if (direction == \"N\") {\n return item.spaceId == northId;\n }\n });\n if (leftNextIndex != -1) {\n const nextSpaceObj = this.tempSpaceList[leftNextIndex];\n console.log(\"递归再一次\", nextSpaceObj);\n this.findRightRelateSpace(nextSpaceObj, direction);\n }\n const rightArr = this.tempSpaceList.filter(item => {\n if (direction == \"E\") {\n return item.westId == spaceId;\n } else if (direction == \"W\") {\n return item.eastId == spaceId;\n } else if (direction == \"S\") {\n return item.northId == spaceId;\n } else if (direction == \"N\") {\n return item.southId == spaceId;\n }\n });\n for (let index = 0; index < rightArr.length; index++) {\n const nextSpaceObj = rightArr[index];\n // const nextSpaceObj = this.tempSpaceList[rightNextIndex];\n console.log(\"递归再一次\", nextSpaceObj);\n this.findRightRelateSpace(nextSpaceObj, direction);\n }\n }\n },\n // 递归寻找右边->左边关联空间\n findRightRelateSpace(spaceObj, direction) {\n const {\n eastId,\n westId,\n northId,\n southId,\n spaceId\n } = spaceObj;\n const rightIndex = this.tempSpaceList.findIndex(item => {\n return item.spaceId == spaceId;\n });\n if (rightIndex != -1) {\n const spaceObj = this.tempSpaceList[rightIndex];\n this.rightSpaces.push(spaceObj);\n this.tempSpaceList.splice(rightIndex, 1);\n console.log(\"当前空间数组:\", this.tempSpaceList);\n const leftNextIndex = this.tempSpaceList.findIndex(item => {\n if (direction == \"E\") {\n return item.spaceId == westId;\n } else if (direction == \"W\") {\n return item.spaceId == eastId;\n } else if (direction == \"N\") {\n return item.spaceId == southId;\n } else if (direction == \"S\") {\n return item.spaceId == northId;\n }\n });\n if (leftNextIndex != -1) {\n const nextSpaceObj = this.tempSpaceList[leftNextIndex];\n console.log(\"递归再一次\", nextSpaceObj);\n this.findLeftRelateSpace(nextSpaceObj, direction);\n }\n const rightArr = this.tempSpaceList.filter(item => {\n if (direction == \"E\") {\n return item.eastId == spaceId;\n } else if (direction == \"W\") {\n return item.westId == spaceId;\n } else if (direction == \"N\") {\n return item.northId == spaceId;\n } else if (direction == \"S\") {\n return item.southId == spaceId;\n }\n });\n for (let index = 0; index < rightArr.length; index++) {\n const nextSpaceObj = rightArr[index];\n console.log(\"递归再一次\", nextSpaceObj);\n this.findLeftRelateSpace(nextSpaceObj, direction);\n }\n }\n },\n moveSpaceWall(direction, moveOut, moveValue) {\n // let isNS = (direction == \"N\" || direction == \"S\")\n // if(!this.checkRightSpace(!moveOut, moveValue, isNS)){\n // \treturn\n // }\n console.log(\"关联空间XXXXX\", this.leftSpaces, this.rightSpaces);\n for (let index = 0; index < this.leftSpaces.length; index++) {\n const element = this.leftSpaces[index];\n const space = this.spaceList.find(item => {\n return item.spaceId == element.spaceId;\n });\n this.moveWall(space, direction, moveOut, moveValue);\n // this.wallTransform(space, direction, moveOut, moveValue);\n }\n\n let otherdirection = \"\";\n switch (direction) {\n case \"E\":\n otherdirection = \"W\";\n break;\n case \"W\":\n otherdirection = \"E\";\n break;\n case \"N\":\n otherdirection = \"S\";\n break;\n case \"S\":\n otherdirection = \"N\";\n break;\n }\n for (let index = 0; index < this.rightSpaces.length; index++) {\n const element = this.rightSpaces[index];\n this.moveWall(element, otherdirection, !moveOut, moveValue);\n }\n console.log(`当前空间的后id:${this.curSpaceObj.spaceId};墙面方向:${direction};宽度:${this.curSpaceObj.spaceWidth};高度:${this.curSpaceObj.spaceHeight}`);\n },\n // 调整大小\n // direction:方向\n // moveOut:是否外移\n // moveValue: 移动距离\n moveWall(spaceObj, direction, moveOut, moveValue) {\n console.log(`移动的空间的id-------:${spaceObj.spaceId};移动方向:${direction};是否外移:${moveOut};移动距离:${moveValue}`);\n const oldSpaceObj = JSON.parse(JSON.stringify(spaceObj));\n const cube = this.gltfSpaces.find(item => {\n return item.spaceId == spaceObj.spaceId;\n });\n if (!cube) {\n return;\n }\n if (!moveOut) {\n moveValue = moveValue * -1;\n }\n const {\n position,\n scale\n } = cube;\n // 重新计算缩放 和 位置\n let toScaleX = scale.x;\n let toScaleZ = scale.z;\n let toPx = position.x;\n let toPz = position.z;\n if (direction == 'E' || direction == 'W') {\n let spaceWidth = scale.x * 300;\n toScaleX = (spaceWidth + moveValue) / 300;\n if (direction == 'W') {\n toPx = position.x - moveValue / 2 / 100;\n } else {\n toPx = position.x + moveValue / 2 / 100;\n }\n spaceObj.spaceWidth += moveValue;\n spaceObj.centerX = toPx * 100;\n }\n if (direction == 'N' || direction == 'S') {\n let spaceHeight = scale.z * 300;\n toScaleZ = (spaceHeight + moveValue) / 300;\n if (direction == 'N') {\n toPz = position.z - moveValue / 2 / 100;\n } else {\n toPz = position.z + moveValue / 2 / 100;\n }\n spaceObj.spaceHeight += moveValue;\n spaceObj.centerY = toPz * 100 * -1;\n }\n console.log(\"curSpaceObj\", this.curSpaceObj.spaceId, spaceObj.spaceId, spaceObj.centerX, spaceObj.centerY, toScaleX, toScaleZ, toPx, toPz);\n console.log(\"当前空间变化后的尺寸\", spaceObj.spaceWidth, spaceObj.spaceHeight, spaceObj.spaceId);\n\n // 更新数据\n const spaceIndex = this.spaceList.findIndex(item => {\n return item.spaceId == spaceObj.spaceId;\n });\n if (spaceIndex != -1) {\n this.spaceList[spaceIndex] = spaceObj;\n if (this.curSpaceObj.spaceId == spaceObj.spaceId) {\n this.curSpaceObj = spaceObj;\n }\n }\n this.curHouseObj.houseJson = JSON.stringify(this.spaceList);\n //空间动画处理-提取到floorMethod.js中\n this.changeSpacesAnim({\n spaceId: spaceObj.spaceId,\n toScaleX,\n toScaleZ,\n toPx,\n toPz\n });\n // 墙体动画处理\n //// 根据空间尺寸,更新前提数据\n const wallObj = this.wallList.find(item => {\n return item.id == spaceObj.wallId;\n });\n if (wallObj) {\n let element = JSON.parse(wallObj.wallJson);\n console.warn(\"****wallObj**\", element);\n this.computeWallHandle(oldSpaceObj, spaceObj, element, moveOut, direction); // 重新计算-并把空间的计算结果同步到gltfWalls中\n }\n\n // 移动墙体\n let curSpaceWall = [];\n for (let index = 0; index < this.gltfWalls.length; index++) {\n const element = this.gltfWalls[index];\n if (spaceObj.spaceId == element.spaceId) {\n curSpaceWall.push(element);\n }\n }\n\n //移动的是西方的墙壁 和 南方的墙壁,该空间的几何体中心测移动变化\n if (direction == 'W' || direction == 'S') {\n spaceObj.rightCenter = true;\n }\n //移动的是东方的墙壁 和 北方的墙壁,该空间的几何体中心测不移动变化\n if (direction == 'E' || direction == 'N') {\n spaceObj.rightCenter = false;\n }\n // 排序墙体数据\n curSpaceWall.sort(function (a, b) {\n return a.wallModelData.id - b.wallModelData.id;\n });\n curSpaceWall.sort(function (a, b) {\n return a.wallDirection.localeCompare(b.wallDirection);\n });\n console.log(\"移动的墙体:\", spaceObj, direction, curSpaceWall);\n // return;\n\n for (let index = 0; index < curSpaceWall.length; index++) {\n const element = curSpaceWall[index];\n // console.log(\"重新计算墙体-墙体数据:\",element, spaceObj);\n this.drawModel(element.wallModelData, spaceObj, element, true);\n }\n },\n // 空隙自动补签逻辑\n autoCreateWall(directionIndex, spaceObj) {\n let direction = \"\";\n switch (directionIndex) {\n case 1:\n direction = \"N\";\n break;\n case 2:\n direction = \"S\";\n break;\n case 3:\n direction = \"W\";\n break;\n case 4:\n direction = \"E\";\n break;\n default:\n break;\n }\n\n // 东西墙 检查 南北墙关联空间 南北墙 检查 东西墙关联空间\n if (direction == \"E\" || direction == \"W\") {\n if (spaceObj.quadrant == 3 || spaceObj.quadrant == 4) {\n // 南边空间\n console.log(\"南北朝向墙自动补齐\", this.leftSpaces, this.rightSpaces);\n this.selectedWall(\"N\");\n this.checkIsAutoCreateWall(\"N\", spaceObj);\n this.selectedWall(\"S\");\n this.checkIsAutoCreateWall(\"S\", spaceObj);\n let autoWall = this.gltfAutoWalls.find(item => {\n return item.spaceId == spaceObj.spaceId;\n });\n if (autoWall) {\n console.log(\"南北朝向墙自动补齐---\", autoWall, this.gltfAutoWalls);\n if (autoWall.wallDirection == \"E\") {\n autoWall.obj.position.x = (spaceObj.centerX + spaceObj.spaceWidth / 2 - 5) / 100;\n }\n }\n } else {// 北边关联空间\n }\n } else {\n if (spaceObj.quadrant == 3 || spaceObj.quadrant == 4) {\n // 南边空间\n\n console.log(\"东西朝向墙自动补齐\", this.leftSpaces, this.rightSpaces);\n this.selectedWall(\"E\");\n this.checkIsAutoCreateWall(\"E\", spaceObj);\n this.selectedWall(\"W\");\n this.checkIsAutoCreateWall(\"W\", spaceObj);\n } else {// 北边关联空间\n }\n }\n },\n // 检测是否需要补强\n checkIsAutoCreateWall(direction, spaceObj) {\n var that = this;\n // 判断南边墙是否需要补充\n if (this.rightSpaces.length == 0) {\n console.log(\"不需要补墙1\", direction, this.gltfAutoWalls);\n return;\n }\n const n = direction == \"S\" || direction == \"E\" ? 1 : -1; // 南北方向计算系数\n\n console.log(\"自动补墙\", this.leftSpaces, this.rightSpaces);\n let px = 0;\n let pz = 0;\n let sx = 1;\n let sz = 1;\n let rightids = [];\n if (spaceObj.quadrant == 3) {\n // 左边空间的最大值\n let leftMaxValue = 0;\n for (let index = 0; index < this.leftSpaces.length; index++) {\n const element = this.leftSpaces[index];\n if (direction == \"S\" || direction == \"N\") {\n const curvalue = element.centerX + element.spaceWidth / 2;\n if (leftMaxValue < curvalue) {\n leftMaxValue = curvalue;\n }\n } else {\n leftMaxValue += -element.centerY + element.spaceHeight / 2;\n }\n }\n // rightSpaces右边最大值\n let rightMaxValue = 0;\n for (let index = 0; index < this.rightSpaces.length; index++) {\n const element = this.rightSpaces[index];\n if (direction == \"S\" || direction == \"N\") {\n const curvalue = element.centerX + element.spaceWidth / 2;\n if (rightMaxValue < curvalue) {\n rightMaxValue = curvalue;\n }\n } else {\n rightMaxValue += -element.centerY + element.spaceHeight / 2;\n }\n rightids.push(element.spaceId);\n }\n\n // 是否有墙\n const index = this.gltfWalls.findIndex(item => {\n console.log(\"墙面模型\", item);\n return spaceObj.spaceId == item.spaceId && item.wallDirection == direction;\n });\n\n // 有墙,左边墙>右边墙,计算南北墙\n if (index != -1 && leftMaxValue > rightMaxValue && (direction == \"S\" || direction == \"N\")) {\n console.log(\"不需要补墙251\", index, leftMaxValue, rightMaxValue);\n // 是否补过墙\n const autoWall = this.gltfAutoWalls.find(item => {\n return item.rightids.indexOf(spaceObj.spaceId) != -1 && item.wallDirection == (direction == \"S\" ? \"N\" : \"S\");\n });\n if (autoWall) {\n let cube = autoWall.obj;\n if (cube) {\n cube.scale.set(0, 0, 0);\n }\n }\n return;\n }\n // 有墙,左边墙>右边墙,计算东西墙\n if (index != -1 && leftMaxValue > rightMaxValue && (direction == \"E\" || direction == \"W\")) {\n console.log(\"不需要补墙252\", index, leftMaxValue, rightMaxValue, spaceObj.spaceId, direction, this.gltfAutoWalls);\n const autoWall = this.gltfAutoWalls.find(item => {\n return item.rightids.indexOf(spaceObj.spaceId) != -1 && item.wallDirection == (direction == \"E\" ? \"W\" : \"E\");\n });\n if (autoWall) {\n let cube = autoWall.obj;\n if (cube) {\n cube.scale.set(0, 0, 0);\n }\n }\n return;\n }\n let wallOffset = index != -1 ? -5 : 5;\n console.log(\"空间最大值\", leftMaxValue, rightMaxValue, direction, index);\n const cubeW = Math.abs(leftMaxValue - rightMaxValue);\n if (direction == \"S\" || direction == \"N\") {\n px = (Math.min(leftMaxValue, rightMaxValue) + cubeW / 2) / 100;\n pz = (-spaceObj.centerY + spaceObj.spaceHeight * n / 2 + wallOffset * n) / 100;\n sx = cubeW / 10;\n // 长边有墙\n } else {\n px = (spaceObj.centerX + spaceObj.spaceWidth * n / 2 + wallOffset * n) / 100;\n pz = (Math.max(leftMaxValue, rightMaxValue) - cubeW / 2) / 100;\n sz = cubeW / 10;\n }\n } else {\n let leftMinValue = 0;\n for (let index = 0; index < this.leftSpaces.length; index++) {\n const element = this.leftSpaces[index];\n if (direction == \"S\" || direction == \"N\") {\n leftMinValue += element.centerX - element.spaceWidth / 2;\n } else {\n leftMinValue += -element.centerY + element.spaceHeight / 2;\n }\n }\n // rightSpaces右边最大值\n let rightMinValue = 0;\n for (let index = 0; index < this.rightSpaces.length; index++) {\n const element = this.rightSpaces[index];\n if (direction == \"S\" || direction == \"N\") {\n rightMinValue += element.centerX - element.spaceWidth / 2;\n } else {\n rightMinValue = -element.centerY + element.spaceHeight / 2;\n }\n rightids.push(element.spaceId);\n }\n const index = this.gltfWalls.findIndex(item => {\n console.log(\"墙面模型\", item);\n return spaceObj.spaceId == item.spaceId && item.wallDirection == direction;\n });\n if (index != -1 && leftMinValue < rightMinValue && (direction == \"S\" || direction == \"N\")) {\n console.log(\"不需要补墙251\");\n return;\n }\n if (index != -1 && leftMinValue > rightMinValue && (direction == \"E\" || direction == \"W\")) {\n console.log(\"不需要补墙252\");\n return;\n }\n let wallOffset = index != -1 ? -5 : 5;\n console.log(\"空间最大值\", leftMinValue, rightMinValue);\n const cubeW = Math.abs(leftMinValue - rightMinValue);\n if (leftMinValue > rightMinValue && index == -1 && (direction == \"S\" || direction == \"N\")) {\n console.log(\"不需要补墙241\", leftMinValue, rightMinValue);\n const autoWall = this.gltfAutoWalls.find(item => {\n return item.rightids.indexOf(spaceObj.spaceId) != -1 && item.wallDirection == (direction == \"S\" ? \"N\" : \"S\");\n });\n if (autoWall) {\n let cube = autoWall.obj;\n if (cube) {\n cube.scale.set(0, 0, 0);\n }\n }\n return;\n }\n if (leftMinValue < rightMinValue && index == -1 && (direction == \"E\" || direction == \"W\")) {\n console.log(\"不需要补墙242\", leftMinValue, rightMinValue);\n const autoWall = this.gltfAutoWalls.find(item => {\n return item.rightids.indexOf(spaceObj.spaceId) != -1 && item.wallDirection == (direction == \"W\" ? \"E\" : \"W\");\n });\n if (autoWall) {\n let cube = autoWall.obj;\n if (cube) {\n cube.scale.set(0, 0, 0);\n }\n }\n return;\n }\n if (direction == \"S\" || direction == \"N\") {\n px = (Math.max(leftMinValue, rightMinValue) - cubeW / 2) / 100;\n pz = (-spaceObj.centerY + spaceObj.spaceHeight * n / 2 + wallOffset * n) / 100;\n sx = cubeW / 10;\n } else {\n px = (spaceObj.centerX + spaceObj.spaceWidth * n / 2 + wallOffset * n) / 100;\n pz = (Math.max(leftMinValue, rightMinValue) - cubeW / 2) / 100;\n sz = cubeW / 10;\n }\n }\n console.log(\"空间最大值\", px, pz, sx, sz, this.gltfAutoWalls);\n\n // 寻找是否已添加过墙面\n const autoWall = this.gltfAutoWalls.find(item => {\n return item.spaceId == spaceObj.spaceId && item.wallDirection == direction || (item.rightids.findIndex(it => {\n return it == spaceObj.spaceId;\n }) != -1 && item.wallDirection == direction == \"S\" ? \"N\" : \"S\") || (item.rightids.findIndex(it => {\n return it == spaceObj.spaceId;\n }) != -1 && item.wallDirection == direction == \"E\" ? \"W\" : \"E\");\n });\n if (this.curWallDirection == \"S\") {\n if (spaceObj.southId > 0) {\n return;\n }\n }\n if (this.curWallDirection == \"E\") {\n if (spaceObj.eastId > 0) {\n return;\n }\n }\n if (this.curWallDirection == \"N\") {\n if (spaceObj.northId > 0) {\n return;\n }\n }\n if (this.curWallDirection == \"W\") {\n if (spaceObj.westId > 0) {\n return;\n }\n }\n if (autoWall) {\n console.log(\"修改补墙的信息\", px, pz, sx, sz);\n let cube = autoWall.obj;\n cube.position.set(px, 0, pz);\n cube.scale.set(sx, 1, sz);\n } else {\n console.log(\"添加补墙的信息\", px, pz, sx, sz);\n that.loader.load((_static_wallData_js__WEBPACK_IMPORTED_MODULE_4___default()[0]).url, gltf => {\n let cube = gltf.scene;\n cube.position.set(px, 0, pz);\n cube.scale.set(sx, 1, sz);\n that.scene.add(cube);\n let md = {\n obj: cube,\n wallDirection: direction,\n spaceId: spaceObj.spaceId,\n quadrant: spaceObj.quadrant,\n rightids: rightids\n };\n that.gltfAutoWalls.push(md);\n // console.log(\"模型加载成功\", that.gltfAutoWalls, spaceObj.spaceId);\n });\n }\n },\n\n // 墙体缩放逻辑\n wallTransform(spaceObj, direction, moveOut, moveValue) {\n console.log(`移动的空间的id:${spaceObj.spaceId};移动方向:${direction};是否外移:${moveOut};移动距离:${moveValue}`);\n },\n updateWallModels() {\n let that = this;\n console.log(\"开始替换墙体模型\", this.leftSpaces, this.rightSpaces, this.gltfWalls);\n let promise_list = [];\n\n // const gltfWalls = JSON.parse(JSON.stringify(this.gltfWalls))\n this.gltfWalls.forEach((item, index) => {\n promise_list.push(new Promise((resolve, reject) => {\n this.loadChangeWallModels(item, resolve);\n }));\n });\n Promise.all(promise_list).then(() => {\n this.$nextTick(() => {\n let newArr = [];\n const newWalls = that.gltfWalls.filter(it => {\n return !it.isDidWall;\n });\n that.gltfWalls = newWalls;\n console.log(\"加载完成2\", newWalls, newArr, that.gltfWalls, that.wallList);\n });\n });\n }\n }\n});\n\n//# sourceURL=webpack://hello-world/./src/components/mapComponent/mapComponent.vue?./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options"); /***/ }), /***/ "./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/pages/mainView/mainView.vue?vue&type=script&lang=js&": /*!***************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/pages/mainView/mainView.vue?vue&type=script&lang=js& ***! \***************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/_core-js@3.31.1@core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/util */ \"./src/utils/util.js\");\n/* harmony import */ var _utils_localStorage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/utils/localStorage */ \"./src/utils/localStorage.js\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/router */ \"./src/router/index.js\");\n/* harmony import */ var _components_mapComponent_mapComponent_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/mapComponent/mapComponent.vue */ \"./src/components/mapComponent/mapComponent.vue\");\n\n\n\n\n// import elabComponet from '@/components/elabComponet/elabComponet.vue'\n\n// import footComponent from '@/components/footComponent/footComponent.vue'\n// import myProjectComp from '@/components/myProjectComp/myProjectComp.vue'\n// import addProjectComp from '@/components/addProjectComp/addProjectComp.vue'\n// import previewComp from '@/components/previewComp/previewComp.vue'\n// import addCompeteComp from '@/components/addCompeteComp/addCompeteComp.vue'\n\n// import tencentAuthComponent from \"@/components/tencentAuthComponent/tencentAuthComponent.vue\";\n// import createMarkLoading from '@/components/createMarkLoading/createMarkLoading.vue'\n// import authSuccess from '@/components/authSuccess/authSuccess.vue'\n// import openCityComp from '@/components/openCityComp/openCityComp.vue'\n// import userNextComp from '@/components/userNextComp/userNextComp.vue'\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n data() {\n return {\n showMainView: false,\n isShowAuthPage: false,\n //授权窗口展示\n tencentAuthState: {},\n isNext: false,\n landId: null //新建地块时获知的新建地块id\n };\n },\n\n components: {\n mapComponent: _components_mapComponent_mapComponent_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n },\n mounted() {\n let that = this;\n console.warn(\"***mounted1**5*\", this.$route.query);\n this.showMainView = true;\n window.$bus.$off('openTencentAuth');\n // 监听授权页面\n window.$bus.$on('openTencentAuth', data => {\n console.log('打开授权页面', data);\n if (data && data.isShowAuthPage) {\n if (data.state) {\n this.tencentAuthState = data.state;\n }\n if (data.landId) {\n this.landId = data.landId;\n }\n that.isShowAuthPage = true;\n configTemp[\"page\"] = data.state.page;\n this.isNext = data.isNext || false;\n (0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_2__.setStorage)('CONFIG', configTemp);\n } else {\n that.isShowAuthPage = false;\n }\n });\n window.$bus.$on('selectedProjectItem', project => {\n console.log(\"路由\", this.$route.path, project);\n if (project && project.id) {\n //存在项目地块\n // var newurl = this.updateQueryStringParameter(window.location.href, 'projectId', project.id);\n //向当前url添加参数\n //路由切换项目id\n this.$router.push({\n path: this.$route.path,\n query: {\n projectId: project.id\n }\n });\n (0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_2__.setStorage)(\"currentProject_\" + project.id, project);\n } else {\n this.$router.push({\n path: this.$route.path,\n query: {\n noProject: 1\n }\n });\n }\n });\n },\n methods: {\n anthClose() {\n this.isShowAuthPage = false;\n },\n /**\r\n * 已授权回调\r\n */\n async alreadyAuth(param, page) {\n this.isShowAuthPage = false;\n // 请求提交\n window.$bus.$emit(\"authed\", this.isNext);\n // console.log('授权',this.tencentAuthState)\n // if(!param || !param['authorization_code']){\n // return ;\n // }\n // let config = getStorage('CONFIG') ? JSON.parse(getStorage('CONFIG')) : '';\n // let redirectUri = config.redirectUri\n // let data = {\n // \"authorizationCode\": param['authorization_code'] || \"\",\n // \"companyId\": window.userCompanyModel.companyId,\n // \"grantType\": \"authorization_code\",\n // \"redirectUri\": redirectUri || \"\",\n // \"refreshToken\": \"\"\n // }\n // let res = await requestConfig('authCallback',data)\n },\n\n updateQueryStringParameter(uri, key, value) {\n if (!value) {\n return uri;\n }\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|$)\", \"i\");\n var separator = uri.indexOf('?') !== -1 ? \"&\" : \"?\";\n if (uri.match(re)) {\n return uri.replace(re, '$1' + key + \"=\" + value + '$2');\n } else {\n return uri + separator + key + \"=\" + value;\n }\n },\n getNewUrl() {\n let url = window.location.href;\n if (url.indexOf(\"?\") != -1) {\n //判断是否存在参数\n url = url.split('?')[0];\n }\n return url;\n }\n }\n});\n\n//# sourceURL=webpack://hello-world/./src/pages/mainView/mainView.vue?./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options"); /***/ }), /***/ "./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true&": /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true& ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; },\n/* harmony export */ staticRenderFns: function() { return /* binding */ staticRenderFns; }\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n attrs: {\n id: \"app\"\n }\n }, [_vm.isRouterAlive ? _c(\"router-view\") : _vm._e(), _c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.loading,\n expression: \"loading\"\n }],\n staticClass: \"loadingShadow\"\n }, [_c(\"div\", {\n staticClass: \"loadData\"\n }, [_c(\"img\", {\n attrs: {\n src: \"https://skyforest.static.elaber.cn/detail/loading.gif\",\n alt: \"\"\n }\n }), _c(\"div\", {\n staticClass: \"loadingMsg\"\n }, [_vm._v(_vm._s(_vm.loadingMsg))])])]), _c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showAccountView,\n expression: \"showAccountView\"\n }],\n staticClass: \"loadingShadow rows justify-center\"\n }, [_c(\"div\", {\n staticClass: \"account-view\"\n }, [_c(\"div\", {\n staticClass: \"title rows rows-between\"\n }, [_vm._m(0), _c(\"div\", {\n staticClass: \"close\",\n on: {\n click: _vm.closeFun\n }\n }, [_c(\"i\", {\n staticClass: \"el-icon-close close-img\"\n })])]), _c(\"div\", {\n staticClass: \"content\",\n staticStyle: {\n \"margin-top\": \"20rem\"\n }\n }, [_c(\"div\", {}, [_vm._v(\"选择关联账号\")]), _c(\"div\", {\n staticClass: \"content-main-view\",\n staticStyle: {\n \"margin-top\": \"10rem\"\n }\n }, _vm._l(_vm.acountList, function (item, index) {\n return _c(\"div\", {\n key: index,\n staticClass: \"rows rows-between\",\n staticStyle: {\n \"margin-bottom\": \"20rem\",\n cursor: \"pointer\"\n },\n on: {\n click: function ($event) {\n return _vm.accountChange(item);\n }\n }\n }, [_c(\"div\", {\n staticClass: \"rows\"\n }, [_c(\"div\", {\n staticStyle: {\n \"margin-right\": \"18rem\"\n }\n }, [_vm.selectAccount && _vm.selectAccount.advertiserId == item.advertiserId ? _c(\"div\", {\n staticClass: \"selcect-view\"\n }) : _c(\"div\", {\n staticClass: \"unselcect-view\"\n })]), _c(\"div\", [_vm._v(_vm._s(item.name) + _vm._s(\" ID\" + item.advertiserId) + \")\")])]), _vm.selectAccount && _vm.selectAccount.advertiserId == item.advertiserId ? _c(\"div\", {\n staticClass: \"icon-gougou iconfont gougou-icon\"\n }) : _vm._e()]);\n }), 0)]), _c(\"div\", {\n staticClass: \"auth-btn-view rows justify-center\",\n staticStyle: {\n \"margin-top\": \"35rem\"\n }\n }, [_c(\"div\", {\n staticClass: \"auth-btn style2 rows justify-center\",\n on: {\n click: _vm.accountConfirm\n }\n }, [_vm._v(\"确定\")])])])])], 1);\n};\nvar staticRenderFns = [function () {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"rows\",\n staticStyle: {\n \"margin-right\": \"10rem\"\n }\n }, [_c(\"img\", {\n staticClass: \"title-icon\",\n attrs: {\n src: \"https://dm.static.elab-plus.com/thing/ty/zhsq.png\"\n }\n }), _vm._v(\" 账号选择 \")]);\n}];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack://hello-world/./src/App.vue?./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options"); /***/ }), /***/ "./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./src/components/mapComponent/mapComponent.html?vue&type=template&id=68cc5822&scoped=true&": /*!*****************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./src/components/mapComponent/mapComponent.html?vue&type=template&id=68cc5822&scoped=true& ***! \*****************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; },\n/* harmony export */ staticRenderFns: function() { return /* binding */ staticRenderFns; }\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"map\",\n staticStyle: {\n position: \"absolute\",\n width: \"100%\",\n height: \"100vh\",\n \"z-index\": \"1\"\n }\n }, [_c(\"div\", {\n ref: \"webgl\",\n attrs: {\n id: \"mapDiv\"\n }\n }), _c(\"canvas\", {\n ref: \"glcanvas\",\n attrs: {\n id: \"glcanvas\",\n width: \"100vw\",\n height: \"100vh\"\n }\n }, [_vm._v(\" 你的浏览器似乎不支持或者禁用了 HTML5 \"), _c(\"code\", [_vm._v(\"\")]), _vm._v(\" 元素。 \")])]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack://hello-world/./src/components/mapComponent/mapComponent.html?./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D"); /***/ }), /***/ "./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./src/pages/mainView/mainView.html?vue&type=template&id=5c95f99b&scoped=true&": /*!****************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./src/pages/mainView/mainView.html?vue&type=template&id=5c95f99b&scoped=true& ***! \****************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; },\n/* harmony export */ staticRenderFns: function() { return /* binding */ staticRenderFns; }\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _vm.showMainView ? _c(\"div\", {\n staticClass: \"mainView\"\n }, [_c(\"mapComponent\"), _c(\"router-view\")], 1) : _vm._e();\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack://hello-world/./src/pages/mainView/mainView.html?./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D"); /***/ }), /***/ "./src/main.js": /*!*********************!*\ !*** ./src/main.js ***! \*********************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! vue */ \"./node_modules/_vue@2.7.14@vue/dist/vue.esm.js\");\n/* harmony import */ var _App_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue */ \"./src/App.vue\");\n/* harmony import */ var _store_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/store/index.js */ \"./src/store/index.js\");\n/* harmony import */ var _services_urlConfig_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/services/urlConfig.js */ \"./src/services/urlConfig.js\");\n/* harmony import */ var _services_urlConfig_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_services_urlConfig_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/router */ \"./src/router/index.js\");\n/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! element-ui */ \"./node_modules/_element-ui@2.15.8@element-ui/lib/element-ui.common.js\");\n/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(element_ui__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var element_ui_lib_theme_chalk_index_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! element-ui/lib/theme-chalk/index.css */ \"./node_modules/_element-ui@2.15.8@element-ui/lib/theme-chalk/index.css\");\n/* harmony import */ var element_ui_lib_theme_chalk_index_css__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_theme_chalk_index_css__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! jquery */ \"./node_modules/_jquery@3.7.0@jquery/dist/jquery.js\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _services_request_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/services/request.js */ \"./src/services/request.js\");\n/* harmony import */ var _services_requestConfig_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/services/requestConfig.js */ \"./src/services/requestConfig.js\");\n/* harmony import */ var _utils_common_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/utils/common.js */ \"./src/utils/common.js\");\n/* harmony import */ var _utils_rem_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/utils/rem.js */ \"./src/utils/rem.js\");\n/* harmony import */ var _utils_rem_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_utils_rem_js__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _assets_common_css__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/assets/common.css */ \"./src/assets/common.css\");\n/* harmony import */ var _assets_common_css__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_assets_common_css__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _assets_font_iconfont_css__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/assets/font/iconfont.css */ \"./src/assets/font/iconfont.css\");\n/* harmony import */ var _assets_font_iconfont_css__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_assets_font_iconfont_css__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var _utils_command_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/utils/command.js */ \"./src/utils/command.js\");\n/* harmony import */ var _utils_resetMessage__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/utils/resetMessage */ \"./src/utils/resetMessage.js\");\n/* harmony import */ var echarts__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! echarts */ \"./node_modules/_echarts@4.9.0@echarts/index.js\");\n/* harmony import */ var echarts__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(echarts__WEBPACK_IMPORTED_MODULE_16__);\n\n\n\n //导入请求的环境地址配置\n\n\n //导入ele-ui 的样式\n //引入JQuery\n //重新定义axios,向里面添加一些参数\n //导入请求的拦截器\n //引入公共函数\n //rem单位的使用\n\n //公共样式\n //引用公共icon库\n// import popUpComponent from \"@/components/popUpComponent/popUpComponent.js\"; // 公共弹框样式\n// import previewComponent from \"@/components/previewComponent/previewComponent.js\"; // 公共图片视频预览\n // 自定义指令\n\n// import checkPermission from \"@/utils/permission\";\n\nvue__WEBPACK_IMPORTED_MODULE_15__[\"default\"].use((element_ui__WEBPACK_IMPORTED_MODULE_4___default())); //导入ele-ui\n// Vue.prototype.$popUp = popUpComponent;\n// Vue.prototype.$preview = previewComponent;\nwindow.$bus = new vue__WEBPACK_IMPORTED_MODULE_15__[\"default\"](); //定义一个事件总线对象-方便组件通讯\nwindow.axios = _services_request_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\nwindow.common = _utils_common_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\nwindow.$ = (jquery__WEBPACK_IMPORTED_MODULE_6___default());\nvue__WEBPACK_IMPORTED_MODULE_15__[\"default\"].prototype.axios = _services_request_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\n// Vue.prototype.checkPermission = checkPermission; // 权限校验\nvue__WEBPACK_IMPORTED_MODULE_15__[\"default\"].config.productionTip = false; //阻止启动生产消息\nvue__WEBPACK_IMPORTED_MODULE_15__[\"default\"].prototype.$message = _utils_resetMessage__WEBPACK_IMPORTED_MODULE_14__.message; //重写提示\n\n// 引入echarts\n\nwindow.echarts = echarts__WEBPACK_IMPORTED_MODULE_16__;\nconsole.log('***process.env***', ({\"NODE_ENV\":\"test2\",\"BASE_URL\":\"\"}));\nwindow.env = \"test2\";\nenv = env == 'development' ? 'test2' : env;\nwindow.$config = _services_urlConfig_js__WEBPACK_IMPORTED_MODULE_2___default()(env);\nconsole.log(\"window.$config\", window.$config);\n\n// runtime模式-运行时\n// new Vue({\n// render: h => h(App),\n// }).$mount('#app')\n\n// compiler(模板)\nwindow.mapVue = new vue__WEBPACK_IMPORTED_MODULE_15__[\"default\"]({\n el: '#app',\n router: _router__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n store: _store_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n components: {\n App: _App_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n },\n template: ''\n});\n\n//# sourceURL=webpack://hello-world/./src/main.js?"); /***/ }), /***/ "./src/mixins/floorMethod.js": /*!***********************************!*\ !*** ./src/mixins/floorMethod.js ***! \***********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/_core-js@3.31.1@core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ \"./node_modules/_three@0.154.0@three/build/three.module.js\");\n/* harmony import */ var three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! three/addons/libs/tween.module.js */ \"./node_modules/_three@0.154.0@three/examples/jsm/libs/tween.module.js\");\n\n// var app = getApp(); //获取应用实例\n// const util = require('@/static/utils/util.js');\n// const config = require('@/services/urlConfig.js');\n// import requestConfig from '@/services/requestConfig.js';\n\n\nlet glbWidth = 300; //空间地板模型的真实尺寸\nlet glbHeight = 300;\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n data() {\n return {\n gltfSpaceUrl: \"https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_WoodFloor3.glb\",\n //模型地址\n // gltfSpaceUrl: \"https://dm.static.elab-plus.com/3d/model/20230607/diban/diban.gltf\", //模型地址\n // gltfSpaceUrl: \"https://dm.static.elab-plus.com/miniProgram/model/BP_L_carpet01-1.gltf\", //模型地址\n // gltfSpace1Url: \"https://dm.static.elab-plus.com/miniProgram/model/BP_G_tiles01_1.gltf\", //模型地址\n gltfSpace1Url: \"https://dm.static.elab-plus.com/miniProgram/model/BP_G_tiles01_3.gltf\",\n //模型地址\n instancedSpaceMeshList: [],\n //地板实例对象 当地板复杂是就会存在多个\n spaceTypes: [\"卧室\", \"客厅\", \"餐厅\", \"厨房\", \"玄关\", \"卫生间\", \"衣帽间\", \"收纳\", \"阳台\", \"飘窗\", \"链接空间\", \"自定义\", \"楼梯\", \"花园\"]\n };\n },\n watch: {},\n methods: {\n // 加载地板模型\n loaderSpaceArr(list) {\n if (!list || list.length == 0) {\n return false;\n }\n this.instancedSpaceMeshList = [];\n this.gltfSpaces = [];\n let comlist = list.filter(it => it.spaceType != 14); //过滤花园的空间\n this.loaderCommonSpace(this.gltfSpaceUrl, comlist, 1);\n let arrlist = list.filter(it => it.spaceType == 14); //花园的空间\n this.loaderCommonSpace(this.gltfSpace1Url, arrlist, 2);\n },\n loaderCommonSpace(gltfSpaceUrl, list, type = 1) {\n var that = this;\n this.loader.load(gltfSpaceUrl, gltf => {\n console.log(\"地板模型加载成功\", list);\n // gltf.scene.receiveShadow = true;//材质是否接收阴影\n gltf.scene.traverse(child => {\n if (child.isMesh && child.visible) {\n let instancedMesh = new three__WEBPACK_IMPORTED_MODULE_1__.InstancedMesh(child.geometry.clone(), child.material.clone(), list.length);\n this.instancedSpaceMeshList.push(instancedMesh);\n //设置每一块地板的实例值\n list.forEach((obj, i) => {\n let positionX = obj.centerX / 100;\n let positionY = obj.centerY / 100;\n if (type == 1) {\n // glbWidth = glbHeight = 1500;\n }\n let scaleX = obj.spaceWidth / glbWidth;\n let scaleY = obj.spaceHeight / glbHeight;\n gltf.scene.position.set(positionX, 0, -positionY);\n gltf.scene.scale.set(scaleX, 1, scaleY);\n gltf.scene.updateMatrixWorld(); //更新世界坐标-这样,子模型也同步更新了\n\n instancedMesh.setMatrixAt(i, child.matrixWorld);\n instancedMesh.instanceMatrix.needsUpdate = true;\n let gltfSpace = that.gltfSpaces.find(gltfSpace => gltfSpace.spaceId == obj.spaceId); //判断是否已经添加过\n if (!gltfSpace) {\n let position = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(); //当前几何体的位置参数\n let scale = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(); //当前几何体的缩放参数\n position.set(positionX, 0, -positionY);\n scale.set(scaleX, 1, scaleY);\n let md = {\n spaceId: obj.spaceId,\n //模型实例的唯一标识\n instancedMeshIndexList: [\n //标识网格实例数组的序号 以及 当前几何体 在网格实例的序号\n {\n instancedMeshIndex: this.instancedSpaceMeshList.length - 1,\n instancedAtIndex: i\n }],\n spaceName: obj.spaceName,\n //几何体的id\n spaceType: obj.spaceType,\n position: position,\n scale: scale,\n isSizeLock: obj.isSizeLock\n };\n that.gltfSpaces.push(md);\n } else {\n //添加另外一组实例\n gltfSpace.instancedMeshIndexList.push({\n instancedMeshIndex: this.instancedSpaceMeshList.length - 1,\n instancedAtIndex: i\n });\n }\n });\n instancedMesh.userType = \"mesh\";\n if (type == 2) {\n //花园\n instancedMesh.name = \"花园\";\n } else {\n //室内\n instancedMesh.name = \"地板\";\n }\n instancedMesh.receiveShadow = true; //材质是否接收阴影\n that.scene.add(instancedMesh);\n }\n });\n if (false) {}\n });\n },\n //修改当前空间的面积大小\n changeSpacesAnimOld(curSpace) {\n // 寻找地板\n const cube = this.gltfSpaces.find(item => {\n return item.spaceId == curSpace.spaceId;\n });\n console.log(\"空间移动目标\", cube.spaceId, JSON.stringify(cube.position), JSON.stringify(cube.scale), curSpace.toScaleX, curSpace.toScaleZ, curSpace.toPx, curSpace.toPz);\n //获取地板模型的geometry实例\n cube.instancedMeshIndexList.forEach(instanced => {\n let _index = instanced.instancedMeshIndex; //第一个geometry实例 在 全局InstancedMesh实例的位置\n let instancedMesh = this.instancedSpaceMeshList[_index]; //获取具体的网格实例\n let stratMatrix = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4(); //定义一个四维矩阵\n instancedMesh.getMatrixAt(instanced.instancedAtIndex, stratMatrix); //获取当前几何体的四维矩阵到stratMatrix里面\n\n let endMatrix = stratMatrix.clone(); //复制一个四维矩阵 \n let scaleMatrix = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4(); //定义一个缩放变化矩阵\n let panMatrix = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4(); //定义一个平移变化矩阵\n\n scaleMatrix.makeScale(curSpace.toScaleX / cube.scale.x, 1, curSpace.toScaleZ / cube.scale.z); //获得缩放变化矩阵\n panMatrix.makeTranslation(curSpace.toPx - cube.position.x, 0, curSpace.toPz - cube.position.z); //获得平移变化矩阵\n endMatrix.multiply(scaleMatrix).premultiply(panMatrix); //通过矩阵计算获得最终的矩阵\n // console.warn(\"***drawModel-isAnimate-space***\",JSON.stringify(endMatrix1),JSON.stringify(endMatrix),JSON.stringify(stratMatrix));\n var tween = new three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_2__.TWEEN.Tween(stratMatrix.elements).to(endMatrix.elements, 2000).easing(three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_2__.TWEEN.Easing.Quadratic.InOut).onUpdate(matrixWorld => {\n let m4 = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4(); //定义一个四维矩阵\n m4.set(...matrixWorld); //注意:四维矩阵的显示和实际计算的行列优先规则不同\n instancedMesh.instanceMatrix.needsUpdate = true; //更新之前,必须开启开关\n instancedMesh.setMatrixAt(instanced.instancedAtIndex, m4.transpose()); //更新几何体的世界矩阵\n }).onComplete(() => {\n instancedMesh.setMatrixAt(instanced.instancedAtIndex, endMatrix); //更新几何体的世界矩阵\n this.tweenCameraAnmaChange(false);\n });\n // 开始动画\n tween.start();\n this.tweenCameraAnmaChange(true);\n cube.position.x = curSpace.toPx;\n cube.position.z = curSpace.toPz;\n cube.scale.x = curSpace.toScaleX;\n cube.scale.z = curSpace.toScaleZ;\n });\n },\n //修改当前空间的面积大小-动画方案2\n changeSpacesAnim(curSpace) {\n // 寻找地板\n const cube = this.gltfSpaces.find(item => {\n return item.spaceId == curSpace.spaceId;\n });\n console.log(\"空间移动目标\", cube.spaceId, JSON.stringify(cube.position), JSON.stringify(cube.scale), curSpace.toPx, curSpace.toPz, curSpace.toScaleX, curSpace.toScaleZ);\n //初始形变值\n let x = cube.position.x;\n let z = cube.position.z;\n let scaleX = cube.scale.x;\n let scaleZ = cube.scale.z;\n //最终形变值\n let toPx = curSpace.toPx;\n let toPz = curSpace.toPz;\n let toScaleX = curSpace.toScaleX;\n let toScaleZ = curSpace.toScaleZ;\n let spaceInitMatrix = []; //空间动画时的初始变换矩阵\n cube.instancedMeshIndexList.forEach(instanced => {\n let _index = instanced.instancedMeshIndex; //geometry实例 在 全局InstancedMesh实例的位置\n let instancedMesh = this.instancedSpaceMeshList[_index]; //获取具体的网格实例\n let startMatrix = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4(); //定义一个四维矩阵\n instancedMesh.getMatrixAt(instanced.instancedAtIndex, startMatrix); //获取当前几何体的四维矩阵到stratMatrix里面\n spaceInitMatrix.push({\n index: _index,\n matrix: startMatrix.clone()\n });\n });\n // console.warn(\"***cube***\",cube.spaceId,Date.now(),JSON.stringify(spaceInitMatrix[0].matrix))\n var tween = new three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_2__.TWEEN.Tween({\n x: cube.position.x,\n z: cube.position.z,\n sx: cube.scale.x,\n sz: cube.scale.z\n }).to({\n x: curSpace.toPx,\n z: curSpace.toPz,\n sx: curSpace.toScaleX,\n sz: curSpace.toScaleZ\n }, 2000).easing(three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_2__.TWEEN.Easing.Quadratic.InOut).onUpdate(object => {\n //获取地板模型的geometry实例\n cube.instancedMeshIndexList.forEach(instanced => {\n let _index = instanced.instancedMeshIndex; //第一个geometry实例 在 全局InstancedMesh实例的位置\n let instancedMesh = this.instancedSpaceMeshList[_index]; //获取具体的网格实例\n //获取对象实例的初始变换矩阵\n let tmp = spaceInitMatrix.find(it => it.index == _index);\n let stratMatrix = tmp.matrix.clone(); //获取初始变换矩阵\n let scaleMatrix = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4(); //定义一个缩放变化矩阵\n let panMatrix = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4(); //定义一个平移变化矩阵\n\n scaleMatrix.makeScale(object.sx / scaleX, 1, object.sz / scaleZ); //获得缩放变化矩阵\n panMatrix.makeTranslation(object.x - x, 0, object.z - z); //获得平移变化矩阵\n stratMatrix.multiply(scaleMatrix).premultiply(panMatrix); //通过矩阵计算获得最终的形变矩阵\n instancedMesh.instanceMatrix.needsUpdate = true; //更新之前,必须开启开关\n instancedMesh.setMatrixAt(instanced.instancedAtIndex, stratMatrix); //更新几何体的世界矩阵\n });\n }).onComplete(() => {\n //这个回调很可能会很慢\n this.tweenCameraAnmaChange(false);\n console.warn(\"***changeSpacesAnim-over***\");\n });\n // 开始动画\n tween.start();\n this.tweenCameraAnmaChange(true);\n cube.position.x = curSpace.toPx;\n cube.position.z = curSpace.toPz;\n cube.scale.x = curSpace.toScaleX;\n cube.scale.z = curSpace.toScaleZ;\n },\n //所有空间整体缩放-同时同步到数据里面\n allSpaceScale() {\n const centerOffset = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(0, 0, 0); // 假设中心点在几何体的正中心\n const scale = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(0.9, 1, 0.9); // 缩放尺度\n //实例化的默认中心是就原点也就是0 0 0 这个点,所以centerOffset也必须是原点\n // this.instancedMeshList.forEach((mesh)=>{\n // \tmesh.scale.copy(scale);\n // \tmesh.updateMatrix();\n // \tmesh.updateMatrixWorld();\n // \tmesh.updateMorphTargets();\n // \tmesh.geometry.computeVertexNormals();\n // })\n // this.instancedSpaceMeshList.forEach((mesh)=>{\n // \tmesh.scale.copy(scale);\n // \tmesh.updateMatrix();\n // \tmesh.updateMatrixWorld();\n // \tmesh.updateMorphTargets();\n // \tmesh.geometry.computeVertexNormals();\n // })\n // this.gltfLayouts.forEach((mesh)=>{\n // \t// mesh.scale.copy(scale);\n // })\n\n this.gltfSpaces.forEach(cube => {\n let dis = centerOffset.clone().sub(cube.position); //获得差值向量\n // console.warn(\"***dis***\",JSON.stringify(dis),JSON.stringify(cube.position),cube.spaceId);\n let x = dis.x * (1 - scale.x); //x轴需要移动的距离\n let y = dis.y * (1 - scale.y); //y轴需要移动的距离\n let z = dis.z * (1 - scale.z); //z轴需要移动的距离\n\n let pi = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(); //新的中心点位置\n pi.x = cube.position.x + x;\n pi.y = cube.position.y + y;\n pi.z = cube.position.z + z;\n cube.scale.x = cube.scale.x * scale.x; //修改真实的比例\n cube.scale.z = cube.scale.z * scale.z; //\n cube.position.copy(pi);\n //同步信息到空间列表中\n let sapce = this.spaceList.find(it => {\n return it.spaceId == cube.spaceId;\n });\n if (sapce) {\n //更新空间中心点值\n sapce.centerX = pi.x * 100;\n sapce.centerY = -1 * pi.z * 100;\n //更新空间宽度高度值\n sapce.spaceWidth = cube.scale.x * glbWidth;\n sapce.spaceHeight = cube.scale.z * glbHeight;\n }\n // let dir = new THREE.Vector3( 0, 10, 0 );;//当前几何体的位置参数\n // console.warn(\"***dis1***\",JSON.stringify(pi),JSON.stringify(dir));\n // let length = 3;\n // let hex = 0xff0000;\n // let arrowHelper = new THREE.ArrowHelper( dir, pi, length, hex );\n // this.scene.add( arrowHelper );\n\n //这是矩阵运算处理缩放的方法-此为数学上的方案\n cube.instancedMeshIndexList.forEach(instanced => {\n let _index = instanced.instancedMeshIndex; //第一个geometry实例 在 全局InstancedMesh实例的位置\n let instancedMesh = this.instancedSpaceMeshList[_index]; //获取具体的网格实例\n let stratMatrix = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4(); //定义一个四维矩阵\n instancedMesh.getMatrixAt(instanced.instancedAtIndex, stratMatrix); //获取当前几何体的四维矩阵到stratMatrix里面\n let scaleMatrix = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4().makeScale(scale.x, scale.y, scale.z);\n let inverseTranslationMatrix = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4().makeTranslation(x, y, z);\n stratMatrix.premultiply(inverseTranslationMatrix);\n stratMatrix.multiply(scaleMatrix);\n instancedMesh.instanceMatrix.needsUpdate = true;\n instancedMesh.setMatrixAt(instanced.instancedAtIndex, stratMatrix); //更新几何体的世界矩阵\n });\n });\n\n this.$nextTick(() => {\n this.updateAllWallHandle();\n });\n setTimeout(() => {\n this.updataPageData(); //更新数据到各个对象里面\n this.calculateLayoutModelSize(); //重新计算家具位置\n this.updateLables(); //更新lable\n this.$nextTick(() => {\n this.updateCareFul(); //更新精细调整里面的空间\n this.updateSpanceData(); //更新语音组件里面的空间\n });\n }, 100);\n }\n }\n});\n\n//# sourceURL=webpack://hello-world/./src/mixins/floorMethod.js?"); /***/ }), /***/ "./src/mixins/loadModel.js": /*!*********************************!*\ !*** ./src/mixins/loadModel.js ***! \*********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/_core-js@3.31.1@core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _static_layoutModelData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/static/layoutModelData.js */ \"./src/static/layoutModelData.js\");\n/* harmony import */ var _static_layoutModelData_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_static_layoutModelData_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _static_globlShowModel_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/static/globlShowModel.js */ \"./src/static/globlShowModel.js\");\n/* harmony import */ var _static_globlShowModel_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_static_globlShowModel_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var three_addons_loaders_DRACOLoader_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! three/addons/loaders/DRACOLoader.js */ \"./node_modules/_three@0.154.0@three/examples/jsm/loaders/DRACOLoader.js\");\n/* harmony import */ var three__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! three */ \"./node_modules/_three@0.154.0@three/build/three.module.js\");\n\n// const util = require('@/static/utils/util.js');\nconst config = __webpack_require__(/*! @/services/urlConfig.js */ \"./src/services/urlConfig.js\");\n\n\n// import requestConfig from '@/services/requestConfig.js';\n\n\n// import { TWEEN } from '@/webgl/jsm/libs/tween.module.min.js';\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n data() {\n return {\n gltfLayouts: [],\n instancedFurList: [],\n arrFrunList: [],\n promise_list: [],\n loadFurPromise: new Promise(resolve => {\n this.loadedCompleteFun = function () {\n console.log('家具模型接口结束');\n resolve();\n };\n }),\n dracoLoader: null,\n type: 1,\n tmpList: [],\n realList: []\n };\n },\n watch: {},\n mounted() {\n console.warn(\"***loadmodel-mounted****\");\n this.dracoLoader = new three_addons_loaders_DRACOLoader_js__WEBPACK_IMPORTED_MODULE_3__.DRACOLoader();\n this.dracoLoader.setDecoderPath('/gltf/');\n this.dracoLoader.setDecoderConfig({\n type: 'js'\n });\n this.dracoLoader.preload();\n },\n methods: {\n // 设置空间数组的墙体信息 \n async setSpaceListWallInfo() {\n for (let index = 0; index < this.spaceList.length; index++) {\n let spaceWallInfo = {\n wallN: false,\n wallS: false,\n wallW: false,\n wallE: false\n };\n const element = this.spaceList[index];\n const wallWIndex = this.gltfWalls.findIndex(item => {\n return element.spaceId == item.spaceId && item.wallDirection == \"W\";\n });\n spaceWallInfo.wallW = wallWIndex == -1 ? false : true;\n const wallEIndex = this.gltfWalls.findIndex(item => {\n return element.spaceId == item.spaceId && item.wallDirection == \"E\";\n });\n spaceWallInfo.wallE = wallEIndex == -1 ? false : true;\n const wallNIndex = this.gltfWalls.findIndex(item => {\n return element.spaceId == item.spaceId && item.wallDirection == \"N\";\n });\n spaceWallInfo.wallN = wallNIndex == -1 ? false : true;\n const wallSIndex = this.gltfWalls.findIndex(item => {\n return element.spaceId == item.spaceId && item.wallDirection == \"S\";\n });\n spaceWallInfo.wallS = wallSIndex == -1 ? false : true;\n element.spaceWallInfo = spaceWallInfo;\n }\n await this.loadFurPromise; //等待解析分享者参数结束\n this.$nextTick(() => {\n this.calculateLayoutModelSize(); // 计算模型的位置\n });\n },\n\n // 批量获取空间模型信息\n async getOverallArrangementDetailsList(type = 1) {\n // 设置空间数组的墙体信息\n // this.setSpaceListWallInfo();\n this.type = type; //加载类型,1空间加载 2 全局精简加载\n let arr = this.spaceList.map(it => it.layoutId).filter(it => it != 0);\n let parmas = {\n ids: arr\n };\n this.loadFurPromise = new Promise((resolve, reject) => {\n this.loadedCompleteFun = function () {\n console.log('家具模型接口结束');\n resolve();\n };\n });\n let res = await requestConfig(\"getOverallArrangementDetailsList\", parmas);\n if (!res.success || !res.list || res.list.length == 0) {\n return false;\n }\n this.promise_list = [];\n this.arrFrunList = res.list;\n this.furnHandle();\n },\n //拆分家具模型加载逻辑\n furnHandle() {\n let startTime = new Date().getTime();\n let tmpList = []; //临时数据\n this.gltfLayouts = []; //模型列表,所有空间里面的每个模型(家具)对应一条记录\n\n let allowSpaceId = [this.curSpaceObj.spaceId];\n if (this.type == 2) {\n //全局精简模型;需要的是所有空间的模型\n allowSpaceId = this.spaceList.map(it => it.spaceId);\n } else {\n //空间模型模式\n allowSpaceId = [this.curSpaceObj.spaceId];\n if (this.curSpaceObj.spaceId == 758) {\n //二层主卧特殊处理\n allowSpaceId.push(735); //休闲小客厅\n }\n //花园类型的添加到家具加载目录里面\n // this.spaceList.forEach(it=>{\n // \tif(it.spaceType==14){\n // \t\tallowSpaceId.push(it.spaceId);\n // \t}\n // })\n }\n // allowSpaceId = [285];//模型有警告,需要看下\n this.arrFrunList.forEach(signel => {\n let spaceId = this.spaceList.find(it => it.layoutId == signel.id).spaceId;\n if (allowSpaceId.includes(spaceId)) {\n //只加载允许的空间的布局,其他不加载\n let md = JSON.parse(signel.modelJson); //获取布局里面的模型信息\n console.warn(\"***布局***\", md, signel.id);\n //遍历模型信息,获取模型列表\n for (let i = 0; i < md.modelData.length; i++) {\n let item = md.modelData[i];\n item.spaceId = spaceId;\n item.layoutId = signel.id;\n item.h5Id = signel.id + \"\" + item.id; //唯一标识\n if (item.modelName == 'BP_furnitureBase_C') {\n continue;\n } else {\n tmpList.push(item);\n }\n // this.promise_list.push(\n // \tnew Promise((resolve, reject) => {\n // \t\tthis.loadLayoutModelsOld(item , resolve);\n // \t})\n // )\n }\n }\n });\n\n this.tmpList = tmpList;\n if (this.type == 2) {\n //全局精简模型;需要的是所有空间的模型\n this.fliterList(tmpList);\n console.warn(\"***fliterList***\", this.realList.length, this.realList);\n tmpList = this.realList;\n }\n let realFurArr = this.preFurnitureData(tmpList); //统一处理家具模型\n let arrLength = realFurArr.length;\n console.log(\"***realFurArr***\", realFurArr);\n realFurArr && realFurArr.forEach((item, index) => {\n this.promise_list.push(new Promise((resolve, reject) => {\n this.loadLayoutModels(item, arrLength, resolve);\n }));\n });\n Promise.all(this.promise_list).then(() => {\n let endTime = new Date().getTime();\n console.log(\"家具模型全部加载完成,时间:\", endTime - startTime);\n this.loadedCompleteFun();\n // this.$nextTick(() => {\n // \tthis.calculateLayoutModelSize() // 计算模型的位置\n // })\n });\n },\n\n //过滤掉不需要的家具\n fliterList(list) {\n this.realList = [];\n //找到直接的家具模型\n list && list.forEach(mod => {\n let name = mod.modelName.substring(0, mod.modelName.length - 2);\n if (_static_globlShowModel_js__WEBPACK_IMPORTED_MODULE_2___default().includes(name)) {\n this.realList.push(mod);\n }\n });\n this.realList.forEach(ref => {\n this.recursionFliter(ref);\n });\n },\n //递归处理不需要的家具\n recursionFliter(item) {\n let _list = []; //\n if (parseInt(item.referenceModelBottom) > 0) {\n _list.push(item.referenceModelBottom);\n }\n if (parseInt(item.referenceModelLeft) > 0) {\n _list.push(item.referenceModelLeft);\n }\n if (parseInt(item.referenceModelRight) > 0) {\n _list.push(item.referenceModelRight);\n }\n if (parseInt(item.referenceModelTop) > 0) {\n _list.push(item.referenceModelTop);\n }\n if (_list.length == 0) {\n return false;\n } else {\n this.tmpList.forEach(tmp => {\n if (_list.includes(tmp.id)) {\n if (!this.realList.find(it => it.h5Id == tmp.h5Id)) {\n this.realList.push(tmp);\n this.recursionFliter(tmp);\n }\n }\n });\n }\n },\n //预处理需要加载墙体模型的数据-减少模型请求数\n preFurnitureData(list) {\n let realFurnitureArr = []; //家具列表\n let dataList = [];\n dataList = list.map(item => {\n let curSpace = this.spaceList.find(space => space.spaceId == item.spaceId);\n return this.resetModelParameters(curSpace, item);\n });\n dataList && dataList.forEach((item, index) => {\n item.uniId = Date.now() + index; //唯一标识\n //获取墙体对应的gltb模型的相关信息\n let modelName = item.modelName;\n // console.log(\"布局模型名称\", modelName);\n let layoutModel = _static_layoutModelData_js__WEBPACK_IMPORTED_MODULE_1___default().find(it => modelName.indexOf(it.modelName) == 0); //模型地址\n if (layoutModel && layoutModel.url) {\n //该数据存在模型地址\n let object = realFurnitureArr.find(it => it.url == layoutModel.url);\n //列表中还没有这个数据\n if (!object) {\n let it = {\n url: layoutModel.url,\n name: layoutModel.modelName,\n list: [item]\n };\n realFurnitureArr.push(it);\n } else {\n object.list.push(item);\n }\n }\n });\n return realFurnitureArr;\n },\n //加载家具模型-实例化方案\n loadLayoutModels(realData, arrLength, resolve) {\n var that = this;\n if (!realData.url) {\n console.warn(\"***家具模型不存在***\", realData);\n resolve();\n return false;\n }\n that.loader.setDRACOLoader(this.dracoLoader);\n // if(realData.url.endsWith('.glb')){\n // \trealData.url = realData.url.replace('/model/',/dracomodel/);\n // }\n that.loader.load(realData.url, gltf => {\n // that.progress = parseInt(100/arrLength) + that.progress;\n // if(that.progress>100){\n // \tthat.progress = 100;\n // }\n // that.$refs.myLoading.showLoading(\"加载中...\" + that.progress+'%')\n // console.log(\"家具加载成功\",that.progress,realData,gltf);\n // gltf.scene.castShadow = true; \n gltf.scene.traverse(child => {\n if (child.isMesh && child.visible) {\n let instancedMesh = new three__WEBPACK_IMPORTED_MODULE_4__.InstancedMesh(child.geometry.clone(), child.material.clone(), realData.list.length);\n this.instancedFurList.push(instancedMesh);\n //realData 该模型被重复使用时的每一次的形变参数等\n realData.list && realData.list.forEach((it, i) => {\n let rotationY = Math.PI / 2;\n if (parseFloat(it.rotation) == 90) {\n rotationY = 0;\n }\n if (parseFloat(it.rotation) == 180) {\n rotationY = -Math.PI / 2;\n }\n if (parseFloat(it.rotation) == -90) {\n rotationY = -Math.PI;\n }\n gltf.scene.rotation.y = rotationY;\n gltf.scene.updateMatrixWorld(); //更新世界坐标-这样,子模型也同步更新了\n instancedMesh.setMatrixAt(i, child.matrixWorld);\n instancedMesh.instanceMatrix.needsUpdate = true;\n // instancedMesh.setColorAt(i, child.material.color);\n // instancedMesh.instanceColor.needsUpdate = true;\n let gltfFurn = that.gltfLayouts.find(itme => itme.uniId == it.uniId); //判断是否已经添加过\n if (!gltfFurn) {\n let position = new three__WEBPACK_IMPORTED_MODULE_4__.Vector3(); //当前几何体的位置参数\n let scale = new three__WEBPACK_IMPORTED_MODULE_4__.Vector3(); //当前几何体的缩放参数\n let rotation = new three__WEBPACK_IMPORTED_MODULE_4__.Vector3(); //当前几何体的缩放参数\n let md = {\n uniId: it.uniId,\n //家具模型实例的唯一标识\n spaceId: it.spaceId,\n id: it.id,\n instancedMeshIndexList: [\n //标识网格实例数组的序号 以及 当前几何体 在网格实例的序号\n {\n instancedMeshIndex: this.instancedFurList.length - 1,\n instancedAtIndex: i\n }],\n userData: it,\n position: position,\n scale: scale,\n rotation: rotation,\n loaded: false\n };\n that.gltfLayouts.push(md);\n } else {\n gltfFurn.instancedMeshIndexList.push({\n instancedMeshIndex: this.instancedFurList.length - 1,\n instancedAtIndex: i\n });\n }\n });\n instancedMesh.userType = \"layoutMesh\";\n if (realData.name.includes(\"BP_L_carpet01\")) {\n //地毯接收阴影\n instancedMesh.receiveShadow = true; //对象是否接收阴影\n } else {\n instancedMesh.castShadow = true; //对象是否产生阴影\n }\n }\n });\n\n resolve();\n });\n },\n //加载模型\n loadLayoutModelsOld(modelObj, resolve) {\n let that = this;\n const modelName = modelObj.modelName;\n console.log(\"布局模型名称\", modelName);\n let layoutModel = _static_layoutModelData_js__WEBPACK_IMPORTED_MODULE_1___default().find(it => modelName.indexOf(it.modelName) == 0); //模型地址\n if (!layoutModel || !layoutModel.url) {\n resolve();\n return false;\n }\n let url = layoutModel.url;\n console.log(\"布局模型数据\", layoutModel);\n that.loader.load(url, gltf => {\n // console.log(\"布局模型加载成功\", gltf);\n let model = gltf.scene; // 获取模型\n\n model.name = layoutModel.modelName;\n model.userType = \"layoutMesh\";\n model.userData = modelObj;\n\n // model.rotation.y = Math.PI / 2 ; // 旋转 90 度\n this.gltfLayouts.push(model);\n resolve();\n });\n },\n // 计算家具的位置\n calculateLayoutModelSize() {\n console.log(\"计算家具的位置\", this.gltfLayouts);\n for (let index = 0; index < this.spaceList.length; index++) {\n const element = this.spaceList[index];\n const gltfLayoutModels = this.gltfLayouts.filter(item => {\n return element.layoutId == item.userData.layoutId && element.spaceId == item.userData.spaceId;\n });\n //空间下不存在家具模型,则该空间不需要进行下一步处理\n if (!gltfLayoutModels || gltfLayoutModels.length == 0) {\n continue;\n }\n gltfLayoutModels.sort(function (a, b) {\n return a.userData.level - b.userData.level;\n });\n // console.log(\"对应空间ID的模型数组\", this.gltfLayouts, element.spaceId, gltfLayoutModels)\n for (let j = 0; j < gltfLayoutModels.length; j++) {\n const cube = gltfLayoutModels[j];\n this.drawLayoutModel(element, cube);\n }\n }\n },\n // 绘制模型\n drawLayoutModel(curSpace, cube) {\n const {\n centerX,\n spaceId\n } = curSpace;\n // const cubeInfo = this.resetModelParameters(curSpace, cube.userData);\n const cubeInfo = cube.userData;\n let centerY = curSpace.centerY * -1; // UE和ThreeJS坐标做相反\n // 默认空间中心点\n let positionX = centerX;\n let positionY = centerY;\n // let rotationY = Math.PI / 2\n let scaleX = 1;\n let scaleY = 1;\n\n // 空间尺寸\n let spaceWidth = curSpace.spaceWidth;\n let spaceHeight = curSpace.spaceHeight;\n // 模型尺寸\n let modelWidth = cubeInfo.modelWidth;\n let modelHeight = cubeInfo.modelHeight;\n\n // // 判断旋转\n // if (parseFloat(cubeInfo.rotation) == 90) {\n // \trotationY = 0;\n // \t// 交换尺寸\n // \t// modelWidth = cubeInfo.modelHeight;\n // \t// modelHeight = cubeInfo.modelWidth;\n // }\n // if (parseFloat(cubeInfo.rotation) == 180) {\n // \trotationY = -Math.PI / 2;\n // \t// modelWidth = cubeInfo.modelHeight;\n // \t// modelHeight = cubeInfo.modelWidth;\n // }\n\n // if (parseFloat(cubeInfo.rotation) == -90) {\n // \trotationY = -Math.PI;\n // \t// 交换尺寸\n // \t// modelWidth = cubeInfo.modelHeight;\n // \t// modelHeight = cubeInfo.modelWidth;\n // }\n // 判断靠墙\n if (cubeInfo.isStepAsideLeft == 'true') {\n positionX = centerX - (spaceWidth / 2 - modelWidth / 2);\n if (parseFloat(cubeInfo.rotation) == 90 || parseFloat(cubeInfo.rotation) == -90) {\n positionX = centerX - (spaceWidth / 2 - modelWidth / 2);\n }\n positionX += parseFloat(cubeInfo.marginLeft);\n positionX += curSpace.spaceWallInfo.wallW ? 10 : 0;\n }\n if (cubeInfo.isStepAsideRight == 'true') {\n positionX = centerX + (spaceWidth / 2 - modelWidth / 2);\n if (parseFloat(cubeInfo.rotation) == 90 || parseFloat(cubeInfo.rotation) == -90) {\n positionX = centerX + (spaceWidth / 2 - modelWidth / 2);\n }\n positionX -= parseFloat(cubeInfo.marginRight);\n positionX -= curSpace.spaceWallInfo.wallE ? 10 : 0;\n }\n if (cubeInfo.isStepAsideTop == 'true') {\n positionY = centerY - (spaceHeight / 2 - modelHeight / 2);\n if (parseFloat(cubeInfo.rotation) == 90 || parseFloat(cubeInfo.rotation) == -90) {\n positionY = centerY - (spaceHeight / 2 - modelHeight / 2);\n }\n positionY += parseFloat(cubeInfo.marginTop);\n positionY += curSpace.spaceWallInfo.wallN ? 10 : 0;\n }\n if (cubeInfo.isStepAsideBottom == 'true') {\n positionY = centerY + (spaceHeight / 2 - modelHeight / 2);\n if (parseFloat(cubeInfo.rotation) == 90 || parseFloat(cubeInfo.rotation) == -90) {\n positionY = centerY + (spaceHeight / 2 - modelHeight / 2);\n }\n positionY -= parseFloat(cubeInfo.marginBottom);\n positionY -= curSpace.spaceWallInfo.wallS ? 10 : 0;\n }\n // 参照物\n if (parseInt(cubeInfo.referenceModelTop) > 0) {\n const referenceModel = this.gltfLayouts.find(item => {\n const layoutModelData = item.userData;\n return layoutModelData.id == parseInt(cubeInfo.referenceModelTop) && layoutModelData.spaceId == cubeInfo.spaceId && layoutModelData.layoutId == cubeInfo.layoutId;\n });\n if (!referenceModel) {\n console.warn(\"***no-data***\", cubeInfo.referenceModelTop, cubeInfo);\n return false;\n }\n positionY = referenceModel.position.z * 100 + (referenceModel.userData.modelHeight / 2 + cubeInfo.modelHeight / 2);\n positionY = positionY + parseFloat(cubeInfo.marginTop);\n }\n if (parseInt(cubeInfo.referenceModelBottom) > 0) {\n const referenceModel = this.gltfLayouts.find(item => {\n const layoutModelData = item.userData;\n return layoutModelData.id == parseInt(cubeInfo.referenceModelBottom) && layoutModelData.spaceId == cubeInfo.spaceId && layoutModelData.layoutId == cubeInfo.layoutId;\n });\n if (!referenceModel) {\n console.warn(\"***no-data***\", cubeInfo.referenceModelBottom, cubeInfo);\n return false;\n }\n positionY = referenceModel.position.z * 100 - (referenceModel.userData.modelHeight / 2 + cubeInfo.modelHeight / 2);\n positionY = positionY - parseFloat(cubeInfo.marginBottom);\n }\n if (parseInt(cubeInfo.referenceModelLeft) > 0) {\n const referenceModel = this.gltfLayouts.find(item => {\n const layoutModelData = item.userData;\n return layoutModelData.id == parseInt(cubeInfo.referenceModelLeft) && layoutModelData.spaceId == cubeInfo.spaceId && layoutModelData.layoutId == cubeInfo.layoutId;\n });\n if (!referenceModel) {\n console.warn(\"***no-data***\", cubeInfo.referenceModelLeft, cubeInfo);\n return false;\n }\n positionX = referenceModel.position.x * 100 + (referenceModel.userData.modelWidth / 2 + cubeInfo.modelWidth / 2);\n positionX = positionX + parseFloat(cubeInfo.marginLeft);\n }\n if (parseInt(cubeInfo.referenceModelRight) > 0) {\n const referenceModel = this.gltfLayouts.find(item => {\n const layoutModelData = item.userData;\n return layoutModelData.id == parseInt(cubeInfo.referenceModelRight) && layoutModelData.spaceId == cubeInfo.spaceId && layoutModelData.layoutId == cubeInfo.layoutId;\n });\n if (!referenceModel) {\n console.warn(\"***no-data***\", cubeInfo.referenceModelRight, cubeInfo);\n return false;\n }\n positionX = referenceModel.position.x * 100 - (referenceModel.userData.modelWidth / 2 + cubeInfo.modelWidth / 2);\n positionX = positionX - parseFloat(cubeInfo.marginRight);\n }\n if (cubeInfo.isFixedWidth == \"false\" || cubeInfo.isFixedHeight == \"false\") {\n // 固定尺寸\n // 靠墙拉伸\n if (cubeInfo.isStepAsideTop == 'true' && cubeInfo.isStepAsideBottom == 'true') {\n // console.log(\"高度拉伸\", spaceHeight / modelHeight)\n\n positionY = centerY;\n if (curSpace.spaceWallInfo.wallN && curSpace.spaceWallInfo.wallS) {\n spaceHeight -= 20 + parseFloat(cubeInfo.marginTop) + parseFloat(cubeInfo.marginBottom);\n } else if (curSpace.spaceWallInfo.wallN) {\n spaceHeight -= 10 + parseFloat(cubeInfo.marginTop);\n positionY += 10 / 2;\n positionY += parseFloat(cubeInfo.marginTop) / 2;\n } else if (curSpace.spaceWallInfo.wallS) {\n spaceHeight -= 10 + parseFloat(cubeInfo.marginBottom);\n positionY -= 10 / 2;\n positionY -= parseFloat(cubeInfo.marginBottom) / 2;\n } else {\n spaceHeight -= parseFloat(cubeInfo.marginTop) + parseFloat(cubeInfo.marginBottom);\n positionY += parseFloat(cubeInfo.marginTop) / 2;\n positionY -= parseFloat(cubeInfo.marginBottom) / 2;\n }\n\n // 计算缩放\n if (parseFloat(cubeInfo.rotation) == 90 || parseFloat(cubeInfo.rotation) == -90) {\n scaleY = spaceHeight / modelHeight;\n } else {\n scaleX = spaceHeight / modelHeight;\n }\n }\n if (cubeInfo.isStepAsideLeft == 'true' && cubeInfo.isStepAsideRight == 'true') {\n // console.log(\"宽度拉伸11111\", spaceWidth / modelWidth)\n positionX = centerX;\n if (curSpace.spaceWallInfo.wallW && curSpace.spaceWallInfo.wallE) {\n spaceWidth -= 20 + parseFloat(cubeInfo.marginLeft) + parseFloat(cubeInfo.marginRight);\n ;\n } else if (curSpace.spaceWallInfo.wallW) {\n spaceWidth -= 10 + parseFloat(cubeInfo.marginLeft);\n positionX += 10 / 2;\n positionX += parseFloat(cubeInfo.marginLeft) / 2;\n } else if (curSpace.spaceWallInfo.wallE) {\n spaceWidth -= 10 + parseFloat(cubeInfo.marginRight);\n positionX -= 10 / 2;\n positionX -= parseFloat(cubeInfo.marginRight) / 2;\n } else {\n spaceWidth -= parseFloat(cubeInfo.marginLeft) + parseFloat(cubeInfo.marginRight);\n positionX += parseFloat(cubeInfo.marginLeft) / 2;\n positionX -= parseFloat(cubeInfo.marginRight) / 2;\n }\n // console.log(\"模型计算位置\" , parseFloat(cubeInfo.rotation))\n // 计算缩放\n if (parseFloat(cubeInfo.rotation) == 90 || parseFloat(cubeInfo.rotation) == -90) {\n scaleX = spaceWidth / modelWidth;\n } else {\n scaleY = spaceWidth / modelWidth;\n }\n }\n\n // 单个参照物和墙面拉伸\n if (cubeInfo.isStepAsideTop == 'true' && parseInt(cubeInfo.referenceModelBottom) > 0) {\n const referenceModel = this.gltfLayouts.find(item => {\n const layoutModelData = item.userData;\n return layoutModelData.id == parseInt(cubeInfo.referenceModelBottom) && layoutModelData.spaceId == cubeInfo.spaceId && layoutModelData.layoutId == cubeInfo.layoutId;\n });\n const referenceModelPositionY = referenceModel.position.z * 100 - referenceModel.userData.modelHeight / 2 - parseFloat(cubeInfo.marginBottom);\n const wallPositionY = centerY - spaceHeight / 2 + (curSpace.spaceWallInfo.wallN ? 10 : 0) + parseFloat(cubeInfo.marginTop);\n const newModelHeight = Math.abs(referenceModelPositionY - wallPositionY);\n // console.log(\"上边拉伸\", referenceModelPositionY, wallPositionY, newModelHeight)\n if (Math.abs(parseFloat(cubeInfo.rotation)) == 90) {\n scaleY = newModelHeight / modelHeight;\n } else {\n scaleX = newModelHeight / modelHeight;\n }\n positionY = wallPositionY + newModelHeight / 2;\n }\n if (cubeInfo.isStepAsideBottom == 'true' && parseInt(cubeInfo.referenceModelTop) > 0) {\n const referenceModel = this.gltfLayouts.find(item => {\n const layoutModelData = item.userData;\n return layoutModelData.id == parseInt(cubeInfo.referenceModelTop) && layoutModelData.spaceId == cubeInfo.spaceId && layoutModelData.layoutId == cubeInfo.layoutId;\n });\n const referenceModelPositionY = referenceModel.position.z * 100 + referenceModel.userData.modelHeight / 2 + parseFloat(cubeInfo.marginTop) + (curSpace.spaceWallInfo.wallN ? 10 : 0);\n const wallPositionY = centerY + spaceHeight / 2 - (curSpace.spaceWallInfo.wallS ? 10 : 0) - parseFloat(cubeInfo.marginBottom);\n const newModelHeight = Math.abs(referenceModelPositionY - wallPositionY);\n if (Math.abs(parseFloat(cubeInfo.rotation)) == 90) {\n scaleY = newModelHeight / modelHeight;\n } else {\n scaleX = newModelHeight / modelHeight;\n }\n positionY = wallPositionY - newModelHeight / 2;\n }\n if (cubeInfo.isStepAsideLeft == 'true' && parseInt(cubeInfo.referenceModelRight) > 0) {\n // console.log(\"左边拉伸\")\n\n const referenceModel = this.gltfLayouts.find(item => {\n const layoutModelData = item.userData;\n return layoutModelData.id == parseInt(cubeInfo.referenceModelRight) && layoutModelData.spaceId == cubeInfo.spaceId && layoutModelData.layoutId == cubeInfo.layoutId;\n });\n const referenceModelPositionX = referenceModel.position.x * 100 - referenceModel.userData.modelWidth / 2 - parseFloat(cubeInfo.marginLeft);\n const wallPositionX = centerX - spaceWidth / 2 + (curSpace.spaceWallInfo.wallE ? 10 : 0) + parseFloat(cubeInfo.marginRight);\n const newModelWidth = Math.abs(referenceModelPositionX - wallPositionX);\n if (Math.abs(parseFloat(cubeInfo.rotation)) == 90) {\n scaleX = newModelWidth / modelWidth;\n } else {\n scaleY = newModelWidth / modelWidth;\n }\n positionX = wallPositionX + newModelWidth / 2;\n }\n if (cubeInfo.isStepAsideRight == 'true' && parseInt(cubeInfo.referenceModelLeft) > 0) {\n const referenceModel = this.gltfLayouts.find(item => {\n const layoutModelData = item.userData;\n return layoutModelData.id == parseInt(cubeInfo.referenceModelLeft) && layoutModelData.spaceId == cubeInfo.spaceId && layoutModelData.layoutId == cubeInfo.layoutId;\n });\n const referenceModelPositionX = referenceModel.position.x * 100 + referenceModel.userData.modelWidth / 2 + parseFloat(cubeInfo.marginLeft);\n const wallPositionX = centerX + spaceWidth / 2 - (curSpace.spaceWallInfo.wallE ? 10 : 0) - parseFloat(cubeInfo.marginRight);\n const newModelWidth = Math.abs(referenceModelPositionX - wallPositionX);\n if (Math.abs(parseFloat(cubeInfo.rotation)) == 90) {\n scaleX = newModelWidth / modelWidth;\n } else {\n scaleY = newModelWidth / modelWidth;\n }\n positionX = wallPositionX - newModelWidth / 2;\n\n // console.log(\"右边拉伸\", Math.abs(parseFloat(cubeInfo.rotation)))\n }\n }\n // console.log(\"模型计算位置--\", positionX, positionY)\n console.log(\"模型计算位置\", cubeInfo, centerX, centerY, spaceWidth, spaceHeight, modelWidth, modelHeight, spaceId, scaleX, scaleY, positionX, positionY);\n let oldPosition = new three__WEBPACK_IMPORTED_MODULE_4__.Vector3(); //当前几何体的位置参数\n oldPosition.copy(cube.position);\n cube.position.x = positionX / 100;\n cube.position.z = positionY / 100;\n // cube.rotation.y = rotationY;\n cube.scale.x = scaleX;\n cube.scale.z = scaleY;\n // if (!cube.parent) { //说明还没添加到场景中-旧版方法\n // \tthis.scene.add(cube); //处理完毕后在加入场景中\n // }\n // if(scaleX>1 || scaleY>1){\n // \tconsole.warn(\"***scaleinfo***\",cubeInfo.id,scaleX,scaleY,cubeInfo.modelName)\n // }\n if (this.type == 2) {\n //全局精简加载\n let name = cubeInfo.modelName.substring(0, cubeInfo.modelName.length - 2);\n if (_static_globlShowModel_js__WEBPACK_IMPORTED_MODULE_2___default().includes(name)) {\n if (cubeInfo.modelName == 'BP_XSPACE_deng_01_C') {\n //灯光\n this.lightHandle(cube);\n } else {\n this.updateInfo(cube, oldPosition, scaleX, scaleY); //实例化方法\n }\n }\n } else {\n if (cubeInfo.modelName == 'BP_XSPACE_deng_01_C') {\n //灯光\n this.lightHandle(cube);\n } else {\n this.updateInfo(cube, oldPosition, scaleX, scaleY); //实例化方法\n }\n }\n },\n\n //更新家具模型到页面中\n updateInfo(cube, oldPosition, scaleX, scaleY) {\n let lay = this.gltfLayouts.find(it => it.uniId == cube.uniId);\n cube.instancedMeshIndexList.forEach(item => {\n let index = item.instancedMeshIndex;\n let instancedMesh = this.instancedFurList[index]; //网格实例对象\n let curMeshIndex = item.instancedAtIndex; //当前家具模型在网格实例对象里面的序号\n let stratMatrix = new three__WEBPACK_IMPORTED_MODULE_4__.Matrix4(); //定义一个四维矩阵\n instancedMesh.getMatrixAt(curMeshIndex, stratMatrix); //获取当前几何体的四维矩阵到stratMatrix里面\n let scaleMatrix = new three__WEBPACK_IMPORTED_MODULE_4__.Matrix4(); //定义一个缩放变化矩阵\n let panMatrix = new three__WEBPACK_IMPORTED_MODULE_4__.Matrix4(); //定义一个平移变化矩阵\n if (!lay.loaded) {\n //说明还没添加到场景中\n scaleMatrix.makeScale(scaleX, 1, scaleY); //获得缩放变化矩阵\n panMatrix.makeTranslation(cube.position.x, 0, cube.position.z); //获得平移变化矩阵\n stratMatrix.multiply(scaleMatrix).premultiply(panMatrix); //通过矩阵计算获得最终的形变矩阵\n instancedMesh.instanceMatrix.needsUpdate = true; //更新之前,必须开启开关\n instancedMesh.setMatrixAt(curMeshIndex, stratMatrix); //更新几何体的世界矩阵\n this.scene.add(instancedMesh);\n } else {\n //更新形变矩阵\n panMatrix.makeTranslation(cube.position.x - oldPosition.x, 0, cube.position.z - oldPosition.z); //获得平移变化矩阵\n stratMatrix.premultiply(panMatrix); //通过矩阵计算获得最终的形变矩阵\n instancedMesh.instanceMatrix.needsUpdate = true; //更新之前,必须开启开关\n instancedMesh.setMatrixAt(curMeshIndex, stratMatrix); //更新几何体的世界矩阵\n }\n });\n\n lay.loaded = true;\n },\n // 空间处理光源\n lightHandle(cube) {\n let light = this.gltfLayouts.find(it => it.uniId == cube.uniId);\n if (!light.loaded) {\n // 从一个点向各个方向发射的光源。一个常见的例子是模拟一个灯泡发出的光。\n let pointLight = new three__WEBPACK_IMPORTED_MODULE_4__.PointLight(0xffd7b3, 1.5, 5, 1);\n pointLight.position.set(cube.position.x, 1.5, cube.position.z); //default; light shining from top\n this.scene.add(pointLight);\n let sphereSize = 0.1;\n let pointLightHelper = new three__WEBPACK_IMPORTED_MODULE_4__.PointLightHelper(pointLight, sphereSize);\n this.scene.add(pointLightHelper);\n pointLight.castShadow = true; // default false\n // 默认情况下光投影相机区域是一个长宽高为10x10x500的长方体区域,光源投射方向为通过坐标原点\n pointLight.shadow.camera.left = -200; // default\n pointLight.shadow.camera.right = 200; // default\n pointLight.shadow.camera.top = 200; // default\n pointLight.shadow.camera.bottom = -200; // default\n this.scene.add(pointLight);\n light.loaded = true;\n } else {}\n },\n // 空间布局旋转镜像重置模型约束\n resetModelParameters(curSpace, cubeInfo) {\n // 旋转\n const defaultLayout = curSpace.layouts.find(item => {\n return item.isDefault;\n });\n if (!defaultLayout) {\n return cubeInfo;\n }\n let count = 0;\n switch (parseInt(defaultLayout.layoutRotate)) {\n case 90:\n count = 1;\n break;\n case 180:\n count = 2;\n break;\n case -90:\n count = 3;\n break;\n default:\n break;\n }\n for (let index = 0; index < count; index++) {\n let oldCubeInfo = JSON.parse(JSON.stringify(cubeInfo));\n oldCubeInfo.isStepAsideLeft = \"false\";\n oldCubeInfo.isStepAsideTop = \"false\";\n oldCubeInfo.isStepAsideRight = \"false\";\n oldCubeInfo.isStepAsideBottom = \"false\";\n oldCubeInfo.referenceModelLeft = \"0\";\n oldCubeInfo.referenceModelTop = \"0\";\n oldCubeInfo.referenceModelRight = \"0\";\n oldCubeInfo.referenceModelBottom = \"0\";\n oldCubeInfo.rotation = \"0\";\n oldCubeInfo.marginLeft = \"0\";\n oldCubeInfo.marginTop = \"0\";\n oldCubeInfo.marginRight = \"0\";\n oldCubeInfo.marginBottom = \"0\";\n\n // 是否靠墙\n if (cubeInfo.isStepAsideLeft == 'true') {\n oldCubeInfo.isStepAsideTop = 'true';\n }\n if (cubeInfo.isStepAsideTop == 'true') {\n oldCubeInfo.isStepAsideRight = 'true';\n }\n if (cubeInfo.isStepAsideRight == 'true') {\n oldCubeInfo.isStepAsideBottom = 'true';\n }\n if (cubeInfo.isStepAsideBottom == 'true') {\n oldCubeInfo.isStepAsideLeft = 'true';\n }\n // 参照物体\n if (parseInt(cubeInfo.referenceModelLeft) > 0) {\n oldCubeInfo.referenceModelTop = cubeInfo.referenceModelLeft;\n }\n if (parseInt(cubeInfo.referenceModelTop) > 0) {\n oldCubeInfo.referenceModelRight = cubeInfo.referenceModelTop;\n }\n if (parseInt(cubeInfo.referenceModelRight) > 0) {\n oldCubeInfo.referenceModelBottom = cubeInfo.referenceModelRight;\n }\n if (parseInt(cubeInfo.referenceModelBottom) > 0) {\n oldCubeInfo.referenceModelLeft = cubeInfo.referenceModelBottom;\n }\n\n // 边距\n oldCubeInfo.marginLeft = cubeInfo.marginTop;\n oldCubeInfo.marginTop = cubeInfo.marginRight;\n oldCubeInfo.marginRight = cubeInfo.marginBottom;\n oldCubeInfo.marginBottom = cubeInfo.marginLeft;\n oldCubeInfo.modelWidth = cubeInfo.modelHeight;\n oldCubeInfo.modelHeight = cubeInfo.modelWidth;\n\n // 旋转\n if (parseInt(cubeInfo.rotation) == 0 || parseInt(cubeInfo.rotation) == 90) {\n oldCubeInfo.rotation = parseInt(cubeInfo.rotation) + 90;\n }\n if (parseInt(cubeInfo.rotation) == 180) {\n oldCubeInfo.rotation = \"-90\";\n }\n if (parseInt(cubeInfo.rotation) == -90) {\n oldCubeInfo.rotation = \"0\";\n }\n\n // console.log(\"旋转前的模型参数X\", cubeInfo, oldCubeInfo, defaultLayout)\n\n cubeInfo = oldCubeInfo;\n\n // console.log(\"旋转后的模型参数X\", cubeInfo, oldCubeInfo, defaultLayout)\n }\n\n return cubeInfo;\n }\n }\n});\n\n//# sourceURL=webpack://hello-world/./src/mixins/loadModel.js?"); /***/ }), /***/ "./src/mixins/screenshot.js": /*!**********************************!*\ !*** ./src/mixins/screenshot.js ***! \**********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_typed_array_to_reversed_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.typed-array.to-reversed.js */ \"./node_modules/_core-js@3.31.1@core-js/modules/es.typed-array.to-reversed.js\");\n/* harmony import */ var core_js_modules_es_typed_array_to_reversed_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_to_reversed_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_typed_array_to_sorted_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.typed-array.to-sorted.js */ \"./node_modules/_core-js@3.31.1@core-js/modules/es.typed-array.to-sorted.js\");\n/* harmony import */ var core_js_modules_es_typed_array_to_sorted_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_to_sorted_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_typed_array_with_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.typed-array.with.js */ \"./node_modules/_core-js@3.31.1@core-js/modules/es.typed-array.with.js\");\n/* harmony import */ var core_js_modules_es_typed_array_with_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_with_js__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n// const util = require('@/static/utils/util.js');\nconst config = __webpack_require__(/*! @/services/urlConfig.js */ \"./src/services/urlConfig.js\");\n// import requestConfig from '@/services/requestConfig.js';\n// import { GLTFLoader } from '@/webgl/jsm/loaders/GLTFLoader.js';\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n data() {\n return {\n canvas2d: null\n };\n },\n watch: {},\n onReady() {\n // wx.createSelectorQuery().select('#canvas').fields({ node: true, size: true }).exec((res) => {\n // this.canvas2d = res[0].node\n // })\n },\n methods: {\n //触发主页面的截屏动作\n screenPromiseShot() {\n let currUniPage = getCurrentPages()[getCurrentPages().length - 1].$vm;\n return new Promise(resolve => {\n currUniPage.screenshotResolve = resolve;\n });\n },\n //转base64\n base64src(base64data, fun) {\n const base64 = base64data; //base64格式图片\n const time = new Date().getTime();\n const imgPath = wx.env.USER_DATA_PATH + \"/4DImage/\" + util.formatDate(new Date(), \"yyyyMMddhhmmss\") + \".jpg\";\n //如果图片字符串不含要清空的前缀,可以不执行下行代码.\n const imageData = base64.replace(/^data:image\\/\\w+;base64,/, \"\");\n const file = wx.getFileSystemManager();\n // console.warn(\"***base64src***\",base64data)\n file.writeFileSync(imgPath, imageData, \"base64\");\n fun(imgPath);\n },\n // 翻转Y轴-像素方案\n flip(pixels, w, h, c) {\n // handle Arrays\n if (Array.isArray(pixels)) {\n var result = this.flip(new Float64Array(pixels), w, h, c);\n for (var i = 0; i < pixels.length; i++) {\n pixels[i] = result[i];\n }\n return pixels;\n }\n if (!w || !h) throw Error('Bad dimensions');\n if (!c) c = pixels.length / (w * h);\n var h2 = h >> 1;\n var row = w * c;\n var Ctor = pixels.constructor;\n\n // make a temp buffer to hold one row\n var temp = new Ctor(w * c);\n for (var y = 0; y < h2; ++y) {\n var topOffset = y * row;\n var bottomOffset = (h - y - 1) * row;\n // make copy of a row on the top half\n temp.set(pixels.subarray(topOffset, topOffset + row));\n // copy a row from the bottom half to the top\n pixels.copyWithin(topOffset, bottomOffset, bottomOffset + row);\n // copy the copy of the top half row to the bottom half\n pixels.set(temp, bottomOffset);\n }\n },\n /**\r\n * 截图\r\n */\n async shottingAction(type = 1) {\n let currUniPage = getCurrentPages()[getCurrentPages().length - 1].$vm;\n //时机合适时-像素存在则触发生成\n return new Promise(resolve => {\n this.screenPromiseShot().then(param => {\n if (param) {\n this.flip(param[0], param[1], param[2], 4);\n const canvas = currUniPage.canvas2d;\n const ctx = canvas.getContext('2d');\n // ImageData 对象,data是像素 一维数组,包含以 RGBA 顺序的数据,数据使用 0 至 255(包含)的整数表示\n const img = canvas.createImageData(param[0], param[1], param[2]);\n canvas.height = img.height;\n canvas.width = img.width;\n ctx.putImageData(img, 0, 0);\n uni.canvasToTempFilePath({\n x: 0,\n y: 0,\n destWidth: canvas.width,\n destHeight: canvas.height,\n canvasId: \"canvas\",\n canvas: canvas,\n fileType: 'jpg',\n quality: 1,\n success: res => {\n console.log(\"***canvasToTempFilePath-success***\", res);\n this.upload(res.tempFilePath, resolve);\n },\n fail: res => {\n console.warn(\"***canvasToTempFilePath-fail***\", res);\n if (currUniPage && currUniPage.starRender && typeof currUniPage.starRender == 'function') {\n currUniPage.starRender(); //启动渲染\n }\n\n resolve('');\n }\n });\n } else {\n let imgBase64 = this.canvas.toDataURL();\n this.base64src(imgBase64, res => {\n console.warn('转化后的url:', res);\n this.upload(res, resolve);\n });\n }\n });\n });\n },\n //上传图片\n async upload(filePath, cb = null) {\n var fileName = \"4DImage/\" + util.formatDate(new Date(), \"yyyyMMddhhmmss\") + '.jpg';\n let tokenObj = await requestConfig(\"getUploadToken\", {});\n console.log(\"tokenObj:\", tokenObj);\n var token = tokenObj.single.token;\n var resultUrl = tokenObj.single.resultUrl; //上传图片的访问前缀this.resultUrl =\n let currUniPage = getCurrentPages()[getCurrentPages().length - 1].$vm;\n uni.uploadFile({\n url: \"https://up.qiniup.com\",\n filePath: filePath,\n name: \"file\",\n formData: {\n key: fileName,\n token: token\n },\n success: uploadFileRes => {\n let obj = JSON.parse(uploadFileRes.data);\n let shottingImg = resultUrl + obj.key;\n console.warn(\"***截图图片***\", shottingImg);\n if (cb) {\n cb(shottingImg);\n }\n },\n fail: error => {\n cb(\"\");\n },\n complete(e) {\n if (currUniPage && currUniPage.starRender && typeof currUniPage.starRender == 'function') {\n currUniPage.starRender(); //截图成功后,启动渲染\n }\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack://hello-world/./src/mixins/screenshot.js?"); /***/ }), /***/ "./src/mixins/wallMethod.js": /*!**********************************!*\ !*** ./src/mixins/wallMethod.js ***! \**********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/_core-js@3.31.1@core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _static_wallData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/static/wallData.js */ \"./src/static/wallData.js\");\n/* harmony import */ var _static_wallData_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_static_wallData_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var three__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! three */ \"./node_modules/_three@0.154.0@three/build/three.module.js\");\n/* harmony import */ var three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! three/addons/libs/tween.module.js */ \"./node_modules/_three@0.154.0@three/examples/jsm/libs/tween.module.js\");\n\n// const util = require('@/static/utils/util.js');\n// const config = require('@/static/config.js');\n\n// import requestConfig from '@/services/requestConfig.js';\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n data() {\n return {\n // gltfUrl:\"https://dm.static.elab-plus.com/3d/model/230519/floor01.glb\",//模型地址\n // gltfName:\"地板\",\t//模型名称\n // gltfWidth:10,\t//模型宽度 10米\n // gltfHeight:10,\t//模型高度 10米\n };\n },\n watch: {},\n methods: {\n // 加载所有墙体模型\n // modelItem 变化后的\n // wallObj 变化前的\n drawModelOld(modelItem, spaceObj, wallObj, isAnimate = false) {\n let cube = wallObj.obj;\n let that = this;\n\n // console.log(\"模型参数\", wallPositionX, wallPositionY, wallScaleX, wallScaleY, lastWallPosition, wallDirection)\n\n console.log(\"墙体动画\", modelItem, spaceObj, wallObj, isAnimate, spaceObj.rightCenter);\n if (!wallObj.obj) {\n //新的逻辑\n //无变化则不需要启动动画\n if (modelItem.wallPositionX == wallObj.wallPositionX && modelItem.wallPositionY == wallObj.wallPositionY && modelItem.wallScaleX == wallObj.wallScaleX && modelItem.wallScaleY == wallObj.wallScaleY) {\n return false;\n }\n wallObj.instancedMeshIndexList.forEach(item => {\n let _index = item.instancedMeshIndex;\n let instancedMesh = this.instancedMeshList[_index]; //获取网格实例\n let stratMatrix = new three__WEBPACK_IMPORTED_MODULE_2__.Matrix4(); //定义一个四维矩阵\n let endMatrix = new three__WEBPACK_IMPORTED_MODULE_2__.Matrix4(); //定义一个四维矩阵\n instancedMesh.getMatrixAt(item.instancedAtIndex, stratMatrix); //获取当前几何体的四维矩阵到stratMatrix里面\n let position = new three__WEBPACK_IMPORTED_MODULE_2__.Vector3(); //当前几何体的位置参数\n let position1 = new three__WEBPACK_IMPORTED_MODULE_2__.Vector3(); //计算后的位移参数\n let scale = new three__WEBPACK_IMPORTED_MODULE_2__.Vector3(); //当前几何体的位置参数\n let scale1 = new three__WEBPACK_IMPORTED_MODULE_2__.Vector3(); //计算后的形变参数\n let quaternion = new three__WEBPACK_IMPORTED_MODULE_2__.Quaternion(); //四元数\n stratMatrix.decompose(position, quaternion, scale); //从当前几何体提取相关参数\n // 计算变化后的位置:位移后的位置 是 当前几何体的位置参数 加上 模型移动后的位置偏移量\n let x = position.x + modelItem.wallPositionX - wallObj.wallPositionX;\n let z = position.z + modelItem.wallPositionY - wallObj.wallPositionY;\n // 计算变化后的缩放:缩放后的值 是 当前几何体的缩放比例 同步 模型缩放后缩放比例\n let scalex = scale.x * (modelItem.wallScaleX / wallObj.wallScaleX);\n let scaley = scale.z * (modelItem.wallScaleY / wallObj.wallScaleY);\n //x轴放大,则需要移动多一倍的距离\n if (modelItem.wallScaleX != wallObj.wallScaleX) {\n if (modelItem.wallRotateY > 0) {\n //说明旋转了\n let _ch = modelItem.wallPositionY - wallObj.wallPositionY;\n if (spaceObj.rightCenter) {\n //即形变几何体是右侧不变,由于中心点在左侧,所以要再加一倍变化的值\n z = z + _ch;\n } else {\n //形变几何体是左侧不变,由于中心点在左侧,所以要减去变化的值\n z = z - _ch;\n }\n // z = z + modelItem.wallPositionY - wallObj.wallPositionY\n } else {\n let _ch = modelItem.wallPositionX - wallObj.wallPositionX;\n if (spaceObj.rightCenter) {\n x = x + _ch;\n } else {\n x = x - _ch;\n }\n }\n }\n //Y轴缩小(这里理解是Z轴,映射原因),则需要移动多一倍的距离 \n //因为几何体的操作原点是左边中心点,不是几何中心点 所以计算的时候需要在多移动一倍\n if (modelItem.wallScaleY != wallObj.wallScaleY) {\n if (modelItem.wallRotateY > 0) {\n //说明旋转了\n let _ch = modelItem.wallPositionX - wallObj.wallPositionX;\n if (spaceObj.rightCenter) {\n x = x + _ch;\n } else {\n x = x - _ch;\n }\n // x = x + modelItem.wallPositionX - wallObj.wallPositionX;\n } else {\n let _ch = modelItem.wallPositionY - wallObj.wallPositionY;\n if (spaceObj.rightCenter) {\n z = z + _ch;\n } else {\n z = z - _ch;\n }\n // z = z + modelItem.wallPositionY - wallObj.wallPositionY\n }\n }\n\n position1.set(x, position.y, z);\n scale1.set(scalex, scale.y, scaley);\n //获取最终的几何体四维变化矩阵\n endMatrix = endMatrix.compose(position1, quaternion, scale1);\n // console.warn(\"***drawModel-isAnimate0***\",JSON.stringify(position),JSON.stringify(scale),wallObj.name,modelItem,wallObj);\n // console.warn(JSON.stringify(stratMatrix.elements),JSON.stringify(endMatrix.elements));\n // instancedMesh.instanceMatrix.needsUpdate = true;\n // instancedMesh.setMatrixAt(item.instancedAtIndex,endMatrix);//更新几何体的世界矩阵\n var tween = new three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_3__.TWEEN.Tween(stratMatrix.elements).to(endMatrix.elements, 2000).easing(three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_3__.TWEEN.Easing.Quadratic.InOut).onUpdate(matrixWorld => {\n let m4 = new three__WEBPACK_IMPORTED_MODULE_2__.Matrix4(); //定义一个四维矩阵\n m4.set(...matrixWorld); //注意:四维矩阵的显示和实际计算的行列优先规则不同\n instancedMesh.instanceMatrix.needsUpdate = true; //更新之前,必须开启开关\n instancedMesh.setMatrixAt(item.instancedAtIndex, m4.transpose()); //更新几何体的世界矩阵\n }).onComplete(() => {\n instancedMesh.setMatrixAt(item.instancedAtIndex, endMatrix); //更新几何体的世界矩阵\n this.tweenCameraAnmaChange(false);\n });\n // 开始动画\n tween.start();\n this.tweenCameraAnmaChange(true);\n });\n //更新模型的最新位置,确保计算结果正确\n setTimeout(() => {\n let gltfWall = that.gltfWalls.find(gltfWall => gltfWall.uniId == wallObj.uniId); //判断是否已经添加过\n gltfWall.wallPositionX = modelItem.wallPositionX;\n gltfWall.wallPositionY = modelItem.wallPositionY;\n gltfWall.wallScaleX = modelItem.wallScaleX;\n gltfWall.wallScaleY = modelItem.wallScaleY;\n gltfWall.wallRotateY = modelItem.wallRotateY;\n }, 2000);\n } else {\n console.warn(\"***drawModel-isAnimate-2***\", JSON.stringify(cube.position), JSON.stringify(cube.scale), modelItem);\n var tween = new three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_3__.TWEEN.Tween({\n x: cube.position.x,\n z: cube.position.z,\n sx: cube.scale.x,\n sz: cube.scale.z\n }).to({\n x: modelItem.wallPositionX,\n z: modelItem.wallPositionY,\n sx: modelItem.wallScaleX\n }, 2000).easing(three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_3__.TWEEN.Easing.Quadratic.InOut).onUpdate(object => {\n cube.position.x = object.x;\n cube.position.z = object.z;\n cube.scale.x = object.sx;\n cube.scale.z = object.sz;\n }).onComplete(() => {\n this.tweenCameraAnmaChange(false);\n });\n // 开始动画\n tween.start();\n this.tweenCameraAnmaChange(true);\n }\n },\n // modelItem 变化后的\n // wallObj 变化前的-一面墙下的某一段墙体\n drawModel(modelItem, spaceObj, wallObj, isAnimate = false) {\n let that = this;\n\n // console.log(\"墙体动画\", modelItem, spaceObj, wallObj, isAnimate,spaceObj.rightCenter, this.gltfWalls);\n\n //无变化则不需要启动动画\n if (modelItem.wallPositionX == wallObj.wallPositionX && modelItem.wallPositionY == wallObj.wallPositionY && modelItem.wallScaleX == wallObj.wallScaleX && modelItem.wallScaleY == wallObj.wallScaleY) {\n return false;\n }\n let tx = wallObj.wallPositionX;\n let tz = wallObj.wallPositionY;\n let scaleX = wallObj.wallScaleX;\n let wallWidth = wallObj.wallWidth; //初始的墙体宽度-单位m\n //最终形变值\n let toPx = modelItem.wallPositionX;\n let toPz = modelItem.wallPositionY;\n let toScaleX = modelItem.wallScaleX;\n if (modelItem.wallType != 0 && parseFloat(modelItem.wallWidth) == 0) {\n toScaleX = 0;\n }\n if (isAnimate) {\n //需要动画\n // console.log(\"墙体动画----\", tx, tz, scaleX,toPx, toPz, toScaleX,);\n // console.log(\"墙体动画----\", scaleX, toScaleX, wallObj.wallScaleX, wallObj);\n //初始形变值\n let spaceInitMatrix = []; //记录下动画创建时的初始变换矩阵\n wallObj.instancedMeshIndexList.forEach(item => {\n let _index = item.instancedMeshIndex;\n let instancedMesh = this.instancedMeshList[_index]; //获取网格实例\n let startMatrix = new three__WEBPACK_IMPORTED_MODULE_2__.Matrix4(); //定义一个四维矩阵\n instancedMesh.getMatrixAt(item.instancedAtIndex, startMatrix); //获取当前几何体的四维矩阵到stratMatrix里面\n spaceInitMatrix.push({\n index: _index,\n matrix: startMatrix.clone()\n });\n });\n var tween = new three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_3__.TWEEN.Tween({\n x: tx,\n z: tz,\n sx: scaleX\n }).to({\n x: toPx,\n z: toPz,\n sx: toScaleX\n }, 2000).easing(three_addons_libs_tween_module_js__WEBPACK_IMPORTED_MODULE_3__.TWEEN.Easing.Quadratic.InOut).onUpdate(object => {\n wallObj.instancedMeshIndexList.forEach(item => {\n let _index = item.instancedMeshIndex;\n let instancedMesh = this.instancedMeshList[_index]; //获取网格实例\n let tmp = spaceInitMatrix.find(it => it.index == _index);\n let stratMatrix = tmp.matrix.clone(); //获取初始变换矩阵\n // // 计算变化后的位置:位移后的位置 是 当前几何体的位置参数 加上 模型移动后的位置偏移量\n let moveX = object.x - tx;\n let moveZ = object.z - tz;\n //x轴有变化,说明存在缩放变形-模型形变中心如果不是几何中心,则计算需要补充偏移量\n // if(modelItem.wallScaleX!=wallObj.wallScaleX){\n // \tif(modelItem.wallRotateY>0){//说明旋转了-东西墙\n // \t\tlet scaMoveZ = (wallWidth/scaleX) * (object.sx - scaleX) / 2 / 100;//形变时需要的偏移量\n // \t\tmoveZ = moveZ + scaMoveZ;//东西墙\n // \t\tif(Math.abs(moveZ)<0.00000001){//计算精度问题\n // \t\t\tmoveZ = 0;\n // \t\t}\n // \t}else{\n // \t\tlet scaMoveX = (wallWidth/scaleX) * (object.sx - scaleX) / 2 / 100;//形变时需要的偏移量\n // \t\tmoveX = moveX - scaMoveX;//南北墙\n // \t\tif(Math.abs(moveX)<0.00000001){//计算精度问题\n // \t\t\tmoveX = 0;\n // \t\t}\n // \t}\n // }\n // if(wallObj.wallDirection=='W'){\n // \tconsole.warn(\"***drawModel-isAnimate0***\",JSON.stringify(object),scaleX,tx,tz,moveX,moveZ);\n // }\n let scaleMatrix = new three__WEBPACK_IMPORTED_MODULE_2__.Matrix4(); //定义一个缩放变化矩阵\n let panMatrix = new three__WEBPACK_IMPORTED_MODULE_2__.Matrix4(); //定义一个平移变化矩阵\n scaleMatrix.makeScale(object.sx / scaleX, 1, 1); //获得缩放变化矩阵\n panMatrix.makeTranslation(moveX, 0, moveZ); //获得平移变化矩阵\n stratMatrix.multiply(scaleMatrix).premultiply(panMatrix); //通过矩阵计算获得最终的形变矩阵\n instancedMesh.instanceMatrix.needsUpdate = true; //更新之前,必须开启开关\n instancedMesh.setMatrixAt(item.instancedAtIndex, stratMatrix); //更新几何体的世界矩阵\n // console.warn(\"***drawModel-isAnimate0***\",JSON.stringify(position),JSON.stringify(scale),wallObj.name,modelItem,wallObj);\n });\n }).onComplete(() => {\n this.tweenCameraAnmaChange(false);\n let gltfWall = this.gltfWalls.find(gltfWall => gltfWall.uniId == wallObj.uniId); //判断是否已经添加过\n gltfWall.wallPositionX = modelItem.wallPositionX;\n gltfWall.wallPositionY = modelItem.wallPositionY;\n gltfWall.wallScaleX = modelItem.wallScaleX;\n gltfWall.wallScaleY = modelItem.wallScaleY;\n gltfWall.wallRotateY = modelItem.wallRotateY;\n gltfWall.wallWidth = modelItem.wallWidth;\n console.warn(\"***changeSpacesAnim-over-wall***\", modelItem);\n });\n // 开始动画\n tween.start();\n this.tweenCameraAnmaChange(true);\n } else {\n // console.log(\"墙体变化\", modelItem, wallObj, wallObj.wallWidth);\n wallObj.instancedMeshIndexList.forEach(item => {\n let _index = item.instancedMeshIndex;\n let instancedMesh = this.instancedMeshList[_index]; //获取网格实例\n // let tmp = spaceInitMatrix.find(it=>it.index==_index);\n // let stratMatrix = tmp.matrix.clone();\t//获取初始变换矩阵\n let stratMatrix = new three__WEBPACK_IMPORTED_MODULE_2__.Matrix4(); //定义一个四维矩阵\n instancedMesh.getMatrixAt(item.instancedAtIndex, stratMatrix); //获取当前几何体的四维矩阵到stratMatrix里面\n // // 计算变化后的位置:位移后的位置 是 当前几何体的位置参数 加上 模型移动后的位置偏移量\n let moveX = toPx - tx;\n let moveZ = toPz - tz;\n if (modelItem.spaceId == 379 && wallObj.wallDirection == 'N') {\n console.warn(\"***mo****\", moveX, moveZ, toPx, toPz, tx, tz, toScaleX, scaleX, wallWidth);\n }\n //x轴有变化,说明存在缩放变形\n // if(modelItem.wallScaleX!=wallObj.wallScaleX){\n // \tif(modelItem.wallRotateY>0){//说明旋转了-东西墙\n // \t\tlet scaMoveZ = (wallWidth/scaleX) * (toScaleX - scaleX) / 2 / 100;//形变时需要的偏移量\n // \t\tmoveZ = moveZ + scaMoveZ;//东西墙\n // \t\tif(Math.abs(moveZ)<0.00000001){//计算精度问题\n // \t\t\tmoveZ = 0;\n // \t\t}\n // \t}else{\n // \t\tlet scaMoveX = (wallWidth/scaleX) * (toScaleX - scaleX) / 2 / 100;//形变时需要的偏移量\n // \t\tmoveX = moveX - scaMoveX;//南北墙\n // \t\tif(Math.abs(moveX)<0.00000001){//计算精度问题\n // \t\t\tmoveX = 0;\n // \t\t}\n // \t}\n // }\n let scaleMatrix = new three__WEBPACK_IMPORTED_MODULE_2__.Matrix4(); //定义一个缩放变化矩阵\n let panMatrix = new three__WEBPACK_IMPORTED_MODULE_2__.Matrix4(); //定义一个平移变化矩阵\n\n scaleMatrix.makeScale(toScaleX / scaleX, 1, 1); //获得缩放变化矩阵\n panMatrix.makeTranslation(moveX, 0, moveZ); //获得平移变化矩阵\n stratMatrix.multiply(scaleMatrix).premultiply(panMatrix); //通过矩阵计算获得最终的形变矩阵\n instancedMesh.instanceMatrix.needsUpdate = true; //更新之前,必须开启开关\n instancedMesh.setMatrixAt(item.instancedAtIndex, stratMatrix); //更新几何体的世界矩阵\n // console.warn(\"***drawModel-isAnimate0***\",JSON.stringify(position),JSON.stringify(scale),wallObj.name,modelItem,wallObj);\n });\n\n let gltfWall = this.gltfWalls.find(gltfWall => gltfWall.uniId == wallObj.uniId); //判断是否已经添加过\n gltfWall.wallPositionX = modelItem.wallPositionX;\n gltfWall.wallPositionY = modelItem.wallPositionY;\n gltfWall.wallScaleX = modelItem.wallScaleX;\n gltfWall.wallScaleY = modelItem.wallScaleY;\n gltfWall.wallRotateY = modelItem.wallRotateY;\n gltfWall.wallWidth = modelItem.wallWidth;\n gltfWall.lastWallType = 50;\n }\n },\n //预处理需要加载墙体模型的数据-减少模型请求数\n preWallData(wallArr) {\n let realWallArr = [];\n wallArr && wallArr.forEach((item, index) => {\n item.uniId = Date.now() + index; //唯一标识\n //获取墙体对应的gltb模型的相关信息\n let modelTypeItem = _static_wallData_js__WEBPACK_IMPORTED_MODULE_1___default().find(it => it.type == item.wallModelData.wallType); //wallType[item.wallModelData.wallType];\n\n let object = realWallArr.find(it => it.index == item.wallModelData.wallType);\n //列表中还没有这个数据\n if (!object) {\n let it = {\n url: modelTypeItem.url,\n list: [item],\n name: modelTypeItem.name,\n index: item.wallModelData.wallType //在模型当中的类型编码\n };\n\n realWallArr.push(it);\n } else {\n object.list.push(item);\n }\n });\n return realWallArr;\n },\n // 加载墙体模型\n loadWallModels(realData, wallList, arrLength, resolve) {\n var that = this;\n if (!realData.url) {\n console.warn(\"***模型wallType不存在***\", realData);\n return false;\n }\n that.loader.load(realData.url, gltf => {\n that.progress = parseInt(100 / arrLength) + that.progress;\n if (that.progress > 100) {\n that.progress = 100;\n }\n // that.$refs.myLoading.showLoading(\"加载中...\" + that.progress+'%')\n // console.log(\"模型加载成功\",that.progress,realData,gltf);\n // 第一个方案:递归获取模型-并一一实例化,减少渲染次数,提高性能;因为实例化了几何体复用了geometry 和 material\n // DrawCall和内存都很低\n gltf.scene.traverse(child => {\n if (child.isMesh && child.visible) {\n let instancedMesh = new three__WEBPACK_IMPORTED_MODULE_2__.InstancedMesh(child.geometry.clone(), child.material.clone(), realData.list.length);\n this.instancedMeshList.push(instancedMesh);\n //realData 该模型被重复使用时的每一次的形变参数等\n realData.list && realData.list.forEach((it, i) => {\n let modelItem = JSON.parse(JSON.stringify(it.wallModelData));\n gltf.scene.position.set(modelItem.wallPositionX, 0, modelItem.wallPositionY);\n gltf.scene.scale.set(modelItem.wallScaleX, 1, modelItem.wallScaleY);\n gltf.scene.rotation.y = modelItem.wallRotateY;\n gltf.scene.updateMatrixWorld(); //更新世界坐标-这样,子模型也同步更新了\n instancedMesh.setMatrixAt(i, child.matrixWorld);\n instancedMesh.instanceMatrix.needsUpdate = true;\n // instancedMesh.setColorAt(i, child.material.color);\n // instancedMesh.instanceColor.needsUpdate = true;\n // console.log(\"***matrixWorld***\",child.matrixWorld);\n let gltfWall = that.gltfWalls.find(gltfWall => gltfWall.uniId == it.uniId); //判断是否已经添加过\n if (!gltfWall) {\n let md = {\n uniId: it.uniId,\n //模型实例的唯一标识\n spaceId: it.spaceId,\n instancedMeshIndexList: [\n //标识网格实例数组的序号 以及 当前几何体 在网格实例的序号\n {\n instancedMeshIndex: this.instancedMeshList.length - 1,\n instancedAtIndex: i\n }],\n // id:child.id,//几何体的id\n // name:child.name,//几何体的id\n wallPositionX: modelItem.wallPositionX,\n wallPositionY: modelItem.wallPositionY,\n wallScaleX: modelItem.wallScaleX,\n wallScaleY: modelItem.wallScaleY,\n wallRotateY: modelItem.wallRotateY,\n wallWidth: modelItem.wallWidth,\n // lastWallType:51,\n wallModelData: modelItem,\n wallModelInitData: modelItem,\n // 保留初始化墙体数据,方便空间变形计算缩放比例 \n wallDirection: it.wallDirection,\n willCurWallType: -1,\n // 即将成为当前模型,作用于动画加载完替换\n lastWallType: -1 // 上一次墙体模型\n };\n\n that.gltfWalls.push(md);\n } else {\n gltfWall.instancedMeshIndexList.push({\n instancedMeshIndex: this.instancedMeshList.length - 1,\n instancedAtIndex: i\n });\n }\n });\n instancedMesh.userType = \"mesh\";\n instancedMesh.receiveShadow = true; //材质是否接收阴影\n that.scene.add(instancedMesh);\n }\n });\n resolve();\n });\n },\n //计算墙体对应位置和形变参数-提前计算\n computeWallHandleOld(spaceObj, wallObj) {\n // let cube = wallObj.obj;\n let list = wallObj.wallData; //墙体列表\n let scale = 100;\n // console.log(\"computeWallHandle\", spaceObj.spaceId, spaceObj.centerX, spaceObj.centerY,spaceObj.spaceWidth, spaceObj.spaceHeight);\n list.forEach(item => {\n //空间下的四面墙壁\n let lastWallPosition = 0;\n let wallDirection = item.wallDirection;\n item.wallModelData.forEach((modelItem, index) => {\n //每个墙壁下的位置计算\n // 默认空间中心点\n let wallPositionX = spaceObj.centerX / 100;\n let wallPositionY = spaceObj.centerY / 100;\n let wallRotateY = 0;\n let wallHeight = 10; //item.wallHeight // 墙体厚度模型10cm\n if (wallDirection == \"N\") {\n wallPositionY = wallPositionY * -1 - spaceObj.spaceHeight / 2 / scale;\n let wallHeight2 = wallHeight / 2 / scale;\n wallPositionY = wallPositionY + wallHeight2;\n } else if (wallDirection == \"S\") {\n wallPositionY = wallPositionY * -1 + spaceObj.spaceHeight / 2 / scale;\n let wallHeight2 = wallHeight / 2 / scale;\n wallPositionY = wallPositionY - wallHeight2;\n }\n if (wallDirection == \"E\") {\n // console.log(\"模型参数\", wallPositionX, spaceObj.spaceWidth)\n wallPositionY = wallPositionY * -1;\n wallPositionX = wallPositionX + spaceObj.spaceWidth / 2 / scale;\n let wallHeight2 = wallHeight / 2 / scale;\n wallPositionX = wallPositionX - wallHeight2; // 减去墙体本身的厚度\n wallRotateY = Math.PI / 2; // 东西墙 模型旋转90度\n } else if (wallDirection == \"W\") {\n wallPositionY = wallPositionY * -1;\n wallPositionX = wallPositionX - spaceObj.spaceWidth / 2 / scale;\n let wallHeight2 = wallHeight / 2 / scale;\n wallPositionX = wallPositionX + wallHeight2; // 减去墙体本身的厚度\n wallRotateY = Math.PI / 2; // 东西墙 模型旋转90度\n }\n\n let wallScaleX = 1;\n let wallScaleY = 1;\n let modelWidth = 10;\n if (modelItem.wallType == '7') {\n modelWidth = 150;\n } else if (modelItem.wallType == '21') {\n modelWidth = 100;\n } else if (modelItem.wallType == '22') {\n modelWidth = 200;\n } else if (modelItem.wallType == '23') {\n modelWidth = 300;\n } else if (modelItem.wallType == '24') {\n modelWidth = 400;\n } else if (modelItem.wallType == '25') {\n modelWidth = 500;\n } else if (modelItem.wallType == '26') {\n modelWidth = 600;\n }\n let tmdWidth = modelItem.wallWidth; //记录\n // console.log(\"XXXXXXXXXXXXXXXX\", modelWidth, spaceObj)\n // 计算墙体的 X Y W H\n //说明该面墙壁只使用了一个模型-独占形式\n if (modelItem.isStepAsideTopRight == 'true' && modelItem.isStepAsideBottomLeft == 'true') {\n if (wallDirection == \"S\" || wallDirection == \"N\") {\n //南北\n wallScaleX = spaceObj.spaceWidth / modelWidth;\n } else {\n //东西\n wallScaleX = spaceObj.spaceHeight / modelWidth;\n }\n if (parseInt(modelItem.wallType) >= 21 && parseInt(modelItem.wallType) <= 26 || parseInt(modelItem.wallType) == 7) {} else {\n modelItem.wallWidth = wallScaleX * modelWidth; // 解决模型行拉伸定位问题, 先注释\n }\n } else {\n //墙面是多端墙体组合而成的\n if (modelItem.isFixedWidth == 'true') {\n //该墙体锁定宽度-即不可缩放\n let wallWidth = modelItem.wallWidth; // 墙体宽度\n // console.log(\"模型的尺寸\",wallWidth, spaceObj.spaceWidth, spaceObj.centerX)\n //起始墙体-南北从左侧算,东西则从上侧计算\n if (modelItem.isStepAsideBottomLeft == 'true' || modelItem.isStepAsideTopRight == 'true') {\n if (wallDirection == \"S\" || wallDirection == \"N\") {\n //南北\n wallPositionX = spaceObj.centerX - (spaceObj.spaceWidth - wallWidth) / 2;\n wallPositionX = wallPositionX / scale; // 转换成m\n } else {\n wallPositionY = -spaceObj.centerY - (spaceObj.spaceHeight - wallWidth) / 2;\n wallPositionY = wallPositionY / scale; // 转换成m\n }\n } else {\n if (wallDirection == \"S\" || wallDirection == \"N\") {\n //南北\n wallPositionX = lastWallPosition + wallWidth / 2 / scale;\n } else {\n wallPositionY = lastWallPosition + wallWidth / 2 / scale;\n }\n }\n // console.log(\"模型的尺寸\",wallWidth, wallPositionX)\n if (modelItem.wallType == 0) {\n wallScaleX = modelItem.wallWidth / wallHeight;\n }\n //计算当前墙体占据的整面墙体的大小-方便下一段墙体的计算\n if (wallDirection == \"S\" || wallDirection == \"N\") {\n //南北\n lastWallPosition = wallPositionX + wallWidth / 2 / scale;\n } else {\n lastWallPosition = wallPositionY + wallWidth / 2 / scale;\n }\n } else {\n //可变墙体-UE编辑器通常把它放到最后一段墙体\n let wallWidth = 0;\n //墙体的宽度是计算得出的\n if (wallDirection == \"S\" || wallDirection == \"N\") {\n //南北\n wallWidth = spaceObj.centerX + spaceObj.spaceWidth / 2 - lastWallPosition * scale; // 墙体宽度\n // console.log(\"最后一个模型\",spaceObj.centerX, spaceObj.spaceWidth / 2, lastWallPosition)\n } else {\n wallWidth = -spaceObj.centerY + spaceObj.spaceHeight / 2 - lastWallPosition * scale; // 墙体宽度\n }\n\n wallWidth = wallWidth / scale; // cm转换成m\n if (modelItem.wallType == 0) {\n wallScaleX = wallWidth * wallHeight;\n if (wallDirection == \"S\" || wallDirection == \"N\") {\n //南北\n wallPositionX = lastWallPosition + wallWidth / 2;\n } else {\n wallPositionY = lastWallPosition + wallWidth / 2;\n }\n }\n modelItem.wallWidth = wallWidth * scale; //确保单位一致\n }\n }\n //计算得出墙体相应的位置和变形属性\n modelItem.wallPositionX = wallPositionX;\n modelItem.wallPositionY = wallPositionY;\n modelItem.wallScaleX = wallScaleX;\n modelItem.wallScaleY = wallScaleY;\n modelItem.wallRotateY = wallRotateY;\n //新版下,符合条件的不止一个了,因为新版下是以模型里面的几何体为单元,个数较多\n this.gltfWalls.forEach(gltfItem => {\n if (gltfItem.spaceId == spaceObj.spaceId && wallDirection == gltfItem.wallDirection && modelItem.id == gltfItem.wallModelData.id) {\n gltfItem.wallModelData = JSON.parse(JSON.stringify(modelItem));\n }\n });\n });\n });\n },\n // 新计算墙体逻辑\n computeWallHandle(oldSpaceObj, spaceObj, wallObj, moveOut, direction) {\n var that = this;\n let list = wallObj.wallData; //墙体列表\n let scale = 100;\n console.log(\"墙体数据1\", direction, list, moveOut, that.gltfWalls);\n // console.log(\"旧空间+++\", oldSpaceObj.spaceId, oldSpaceObj.centerX, oldSpaceObj.centerY,oldSpaceObj.spaceWidth, oldSpaceObj.spaceHeight);\n console.log(\"新空间+++\", spaceObj.spaceId, spaceObj.centerX, spaceObj.centerY, spaceObj.spaceWidth, spaceObj.spaceHeight);\n list.forEach(item => {\n //空间下的四面墙壁\n let lastWallPosition = 0;\n let wallDirection = item.wallDirection;\n let spaceSize = 0;\n let minWallWidth = 10; // 实墙最小宽度\n\n let wallCount = item.wallModelData.length;\n let isCurWall = true;\n let isCreateNewWall = false;\n let newWallType = null;\n if (wallDirection == \"N\" || wallDirection == \"S\") {\n spaceSize = spaceObj.spaceWidth;\n } else {\n spaceSize = spaceObj.spaceHeight;\n }\n let isComputeWall = true;\n if ((direction == \"S\" || direction == \"N\") && (wallDirection == \"S\" || wallDirection == \"N\")) {\n isComputeWall = false;\n }\n if ((direction == \"E\" || direction == \"W\") && (wallDirection == \"E\" || wallDirection == \"W\")) {\n isComputeWall = false;\n }\n if (wallCount > 2 && isComputeWall) {\n // 墙体个数,判断是否有墙体模型\n\n const modelItem0 = item.wallModelData[0]; // 固定尺寸实体墙\n const modelItem1 = item.wallModelData[1]; // 取出模型的宽度\n const modelItem2 = item.wallModelData[2]; // 伸缩实体墙\n console.log(\"当前模型的类型信息\", modelItem1);\n const leftWallChangeValue = spaceSize - minWallWidth - parseFloat(modelItem1.wallWidth) - parseFloat(modelItem0.wallWidth);\n if (leftWallChangeValue < 0) {\n // 缩小\n const newWallWidth = Math.max(parseFloat(modelItem0.wallWidth) + leftWallChangeValue, minWallWidth);\n item.wallModelData[0].wallWidth = Math.floor(newWallWidth);\n console.log(\"缩放左边实体墙\", spaceObj.spaceId, newWallWidth, leftWallChangeValue);\n if (modelItem1.wallWidth > spaceSize - 2 * minWallWidth) {\n console.log(\"无法放置墙体模型\", newWallWidth, leftWallChangeValue);\n // 寻找合适的模型\n const curWallType = _static_wallData_js__WEBPACK_IMPORTED_MODULE_1___default().find(it => it.type == modelItem1.wallType);\n // 可显示的最大模型\n if (curWallType) {\n const wallTypeGroups = _static_wallData_js__WEBPACK_IMPORTED_MODULE_1___default().filter(it => it.group == curWallType.group);\n const wallWidth = spaceSize - 2 * minWallWidth;\n for (let index = 0; index < wallTypeGroups.length; index++) {\n const element = wallTypeGroups[index];\n if (!newWallType) {\n if (element.width <= wallWidth && element.width <= curWallType.width) {\n newWallType = element;\n }\n } else {\n if (newWallType.width <= element.width && element.width <= wallWidth && element.width <= curWallType.width) {\n newWallType = element;\n }\n }\n }\n console.log(\"是否需要替换墙体模型\", spaceObj.spaceHeight, wallDirection, newWallType, curWallType.type);\n if (newWallType) {\n if (curWallType.type != newWallType.type) {\n console.log(\"最合适的墙体模型\", spaceObj.spaceId, wallWidth, direction, wallDirection);\n item.wallModelData[1].wallWidth = newWallType.width;\n item.wallModelData[1].willCurWallType = newWallType.type;\n item.wallModelData[1].lastWallType = curWallType.type;\n item.wallModelData[0].wallWidth = Math.floor((spaceSize - newWallType.width) / 2);\n isCurWall = false;\n\n // 添加新模型\n const index = this.gltfWalls.findIndex(it => {\n // console.log(\"最合适的墙体模型\", it.spaceId, spaceObj.spaceId, it.wallDirection, wallDirection, newWallType.wallType, it.wallModelData.wallType)\n return it.spaceId == spaceObj.spaceId && it.wallDirection == wallDirection && newWallType.wallType == it.wallModelData.wallType;\n });\n if (index != -1) {\n console.log(\"不需要加载新模型\", spaceObj.spaceId, direction, wallDirection);\n isCreateNewWall = false;\n } else {\n console.log(\"需要加载新模型\", index);\n isCreateNewWall = true;\n }\n } else {\n console.log(\"保持当前模型的尺寸\", spaceObj.spaceHeight, direction, wallDirection);\n item.wallModelData[1].wallWidth = 0.0001;\n item.wallModelData[1].willCurWallType = -1;\n }\n } else {\n console.log(\"没有合适的模型替换\", spaceObj.spaceId, direction, wallDirection);\n item.wallModelData[1].wallWidth = 0.0001;\n item.wallModelData[1].willCurWallType = -1;\n }\n }\n }\n } else {\n if (moveOut) {\n // 放大\n\n // 1.判断是否是从无到有\n // 是\n // 2 先还原窗户,找到最合适的窗户\n // 3 最后还原第一面实体墙\n // 否\n // 4 找到最合适的窗户\n // 5 最后还原第一面实体墙\n const curWallType = _static_wallData_js__WEBPACK_IMPORTED_MODULE_1___default().find(it => it.type == modelItem1.wallType);\n const wallTypeGroups = _static_wallData_js__WEBPACK_IMPORTED_MODULE_1___default().filter(it => it.group == curWallType.group);\n const wallWidth = spaceSize - 2 * minWallWidth;\n if (wallWidth > curWallType.width) {\n newWallType = curWallType;\n }\n for (let index = 0; index < wallTypeGroups.length; index++) {\n const element = wallTypeGroups[index];\n if (!newWallType) {\n if (element.width <= wallWidth) {\n newWallType = element;\n }\n } else {\n if (element.width <= wallWidth && newWallType.width <= element.width) {\n newWallType = element;\n }\n }\n console.log(\"寻找最大的窗户\", index, wallWidth, newWallType.width, element.width);\n }\n item.wallModelData[1].wallWidth = newWallType.width;\n if (newWallType != curWallType) {\n // 新模型\n console.log(\"添加新模型\");\n item.wallModelData[1].willCurWallType = newWallType.type;\n item.wallModelData[1].lastWallType = curWallType.type;\n isCreateNewWall = true;\n } else {\n console.log(\"还原老模型\");\n }\n\n // 初始化模型的尺寸\n const initWallModel = this.gltfWalls.find(it => {\n return it.spaceId == spaceObj.spaceId && it.wallDirection == wallDirection && it.wallModelData.wallType == 0 && it.wallModelData.isFixedWidth == 'true';\n });\n const item0Width = Math.min(spaceSize - newWallType.width - minWallWidth, initWallModel.wallModelInitData.wallWidth);\n item.wallModelData[0].wallWidth = item0Width;\n console.log(\"还原第一面墙的宽度\", item0Width, spaceSize, newWallType.width, minWallWidth);\n }\n }\n } else {\n console.log(\"没有缩放墙体\");\n }\n // 判断是否有下一级\n\n item.wallModelData.forEach((modelItem, index) => {\n //每个墙壁下的位置计算\n // 默认空间中心点\n let wallPositionX = spaceObj.centerX / 100;\n let wallPositionY = spaceObj.centerY / 100;\n let wallRotateY = 0;\n let wallHeight = 10; //item.wallHeight // 墙体厚度模型10cm\n if (wallDirection == \"N\") {\n wallPositionY = wallPositionY * -1 - spaceObj.spaceHeight / 2 / scale;\n let wallHeight2 = wallHeight / 2 / scale;\n wallPositionY = wallPositionY + wallHeight2;\n } else if (wallDirection == \"S\") {\n wallPositionY = wallPositionY * -1 + spaceObj.spaceHeight / 2 / scale;\n let wallHeight2 = wallHeight / 2 / scale;\n wallPositionY = wallPositionY - wallHeight2;\n }\n if (wallDirection == \"E\") {\n // console.log(\"模型参数\", wallPositionX, spaceObj.spaceWidth)\n wallPositionY = wallPositionY * -1;\n wallPositionX = wallPositionX + spaceObj.spaceWidth / 2 / scale;\n let wallHeight2 = wallHeight / 2 / scale;\n wallPositionX = wallPositionX - wallHeight2; // 减去墙体本身的厚度\n wallRotateY = Math.PI / 2; // 东西墙 模型旋转90度\n } else if (wallDirection == \"W\") {\n wallPositionY = wallPositionY * -1;\n wallPositionX = wallPositionX - spaceObj.spaceWidth / 2 / scale;\n let wallHeight2 = wallHeight / 2 / scale;\n wallPositionX = wallPositionX + wallHeight2; // 减去墙体本身的厚度\n wallRotateY = Math.PI / 2; // 东西墙 模型旋转90度\n }\n\n let wallScaleX = 1;\n let wallScaleY = 1;\n let modelWidth = 10;\n if (modelItem.wallType == '7') {\n modelWidth = 150;\n } else if (modelItem.wallType == '21') {\n modelWidth = 100;\n } else if (modelItem.wallType == '22') {\n modelWidth = 200;\n } else if (modelItem.wallType == '23') {\n modelWidth = 300;\n } else if (modelItem.wallType == '24') {\n modelWidth = 400;\n } else if (modelItem.wallType == '25') {\n modelWidth = 500;\n } else if (modelItem.wallType == '26') {\n modelWidth = 600;\n }\n let tmdWidth = modelItem.wallWidth; //记录\n // console.log(\"XXXXXXXXXXXXXXXX\", modelWidth, spaceObj)\n let wallWidth = 0; // 墙体宽度\n // 计算墙体的 X Y W H\n //说明该面墙壁只使用了一个模型-独占形式\n if (modelItem.isStepAsideTopRight == 'true' && modelItem.isStepAsideBottomLeft == 'true') {\n if (wallDirection == \"S\" || wallDirection == \"N\") {\n //南北\n wallScaleX = spaceObj.spaceWidth / modelWidth;\n } else {\n //东西\n wallScaleX = spaceObj.spaceHeight / modelWidth;\n }\n if (parseInt(modelItem.wallType) >= 21 && parseInt(modelItem.wallType) <= 26 || parseInt(modelItem.wallType) == 7) {} else {\n modelItem.wallWidth = wallScaleX * modelWidth; // 解决模型行拉伸定位问题, 先注释\n }\n } else {\n //墙面是多端墙体组合而成的\n if (modelItem.isFixedWidth == 'true') {\n //该墙体锁定宽度-即不可缩放\n wallWidth = modelItem.wallWidth; // 墙体宽度\n // console.log(\"模型的尺寸\",wallWidth, spaceObj.spaceWidth, spaceObj.centerX)\n //起始墙体-南北从左侧算,东西则从上侧计算\n if (modelItem.isStepAsideBottomLeft == 'true' || modelItem.isStepAsideTopRight == 'true') {\n if (wallDirection == \"S\" || wallDirection == \"N\") {\n //南北\n wallPositionX = spaceObj.centerX - (spaceObj.spaceWidth - wallWidth) / 2;\n wallPositionX = wallPositionX / scale; // 转换成m\n } else {\n wallPositionY = -spaceObj.centerY - (spaceObj.spaceHeight - wallWidth) / 2;\n wallPositionY = wallPositionY / scale; // 转换成m\n }\n } else {\n if (wallDirection == \"S\" || wallDirection == \"N\") {\n //南北\n wallPositionX = lastWallPosition + wallWidth / 2 / scale;\n } else {\n wallPositionY = lastWallPosition + wallWidth / 2 / scale;\n }\n }\n // console.log(\"模型的尺寸\",wallWidth, wallPositionX)\n if (modelItem.wallType == 0) {\n wallScaleX = modelItem.wallWidth / wallHeight;\n } else {\n console.log(\"墙体模型的缩放\", spaceObj.spaceId, wallDirection, modelItem, curWallType);\n // if(!moveOut){\n const curWallType = _static_wallData_js__WEBPACK_IMPORTED_MODULE_1___default().find(it => it.type == modelItem.wallType);\n wallScaleX = modelItem.wallWidth / curWallType.width;\n console.log(\"墙体模型的缩小\", wallScaleX);\n // }else{\n // \tconsole.log(\"墙体模型的放大\", wallScaleX);\n // }\n }\n //计算当前墙体占据的整面墙体的大小-方便下一段墙体的计算\n if (wallDirection == \"S\" || wallDirection == \"N\") {\n //南北\n lastWallPosition = wallPositionX + wallWidth / 2 / scale;\n } else {\n lastWallPosition = wallPositionY + wallWidth / 2 / scale;\n }\n // wallPositionY = 1;\n } else {\n //可变墙体-UE编辑器通常把它放到最后一段墙体\n wallWidth = 0;\n //墙体的宽度是计算得出的\n if (wallDirection == \"S\" || wallDirection == \"N\") {\n //南北\n wallWidth = spaceObj.centerX + spaceObj.spaceWidth / 2 - lastWallPosition * scale; // 墙体宽度\n // console.log(\"最后一个模型\",spaceObj.centerX, spaceObj.spaceWidth / 2, lastWallPosition)\n } else {\n wallWidth = -spaceObj.centerY + spaceObj.spaceHeight / 2 - lastWallPosition * scale; // 墙体宽度\n }\n\n wallWidth = wallWidth / scale; // cm转换成m\n if (modelItem.wallType == 0) {\n wallScaleX = wallWidth * wallHeight;\n if (wallDirection == \"S\" || wallDirection == \"N\") {\n //南北\n wallPositionX = lastWallPosition + wallWidth / 2;\n } else {\n wallPositionY = lastWallPosition + wallWidth / 2;\n }\n }\n modelItem.wallWidth = wallWidth * scale; //确保单位一致\n // wallPositionY = 1;\n }\n }\n\n console.log(\"移动墙体模型-空间信息\", spaceObj.spaceWidth, spaceObj.centerX, spaceObj.centerY, spaceObj);\n console.log(\"移动墙体模型-墙体信息\", spaceObj.spaceId, direction, wallDirection, modelItem.wallType, wallWidth, this.wallList);\n //计算得出墙体相应的位置和变形属性\n modelItem.wallPositionX = wallPositionX;\n modelItem.wallPositionY = wallPositionY;\n modelItem.wallScaleX = wallScaleX;\n modelItem.wallScaleY = wallScaleY;\n modelItem.wallRotateY = wallRotateY;\n modelItem.wallWidth = wallWidth;\n\n // 更新数据\n if (isComputeWall || direction == wallDirection) {\n this.gltfWalls.forEach(gltfItem => {\n if (gltfItem.spaceId == spaceObj.spaceId && wallDirection == gltfItem.wallDirection && modelItem.id == gltfItem.wallModelData.id) {\n console.log(\"墙体更新\", gltfItem.spaceId, spaceObj.spaceId, wallDirection, gltfItem.wallDirection, modelItem.id, gltfItem.wallModelData.id, isComputeWall, direction);\n gltfItem.wallModelData = JSON.parse(JSON.stringify(modelItem));\n gltfItem.willCurWallType = modelItem.willCurWallType;\n if (gltfItem.wallModelData.wallType != 0) {\n gltfItem.isDidWall = isCreateNewWall;\n }\n }\n });\n }\n console.log(\"移动墙体模型-墙体信息++++++++\", spaceObj.spaceId, direction, wallDirection, isComputeWall, modelItem);\n this.wallList.forEach(wallItem => {\n const walls = JSON.parse(wallItem.wallJson);\n\n // console.log(\"墙体数据2----------\", walls, modelItem);\n walls.wallData.forEach(wall => {\n wall.wallModelData.forEach(wallmodel => {\n // console.log(\"墙体数据3----------\", wall.wallDirection, wallDirection, wallmodel.id, modelItem.id);\n if (wall.wallDirection == wallDirection && wallmodel.id == modelItem.id && walls.spaceId == spaceObj.spaceId) {\n if (wallmodel.wallType == 0 && wallmodel.isFixedWidth == 'true') {\n wallmodel.wallWidth = modelItem.wallWidth;\n console.log(\"墙体数据31----实体墙------\", spaceObj.spaceId, modelItem.wallWidth, modelItem);\n }\n if (wallmodel.wallType != 0) {\n wallmodel.wallWidth = modelItem.wallWidth;\n const curWallType = _static_wallData_js__WEBPACK_IMPORTED_MODULE_1___default().find(it => it.type == modelItem.willCurWallType);\n if (curWallType) {\n wallmodel.wallType = curWallType.type;\n }\n }\n }\n });\n });\n wallItem.wallJson = JSON.stringify(walls);\n });\n });\n });\n // console.log(\"墙体数据2\", this.gltfWalls, this.wallList);\n },\n\n //更新墙体模型的位置\n updateAllWallHandle() {\n //spaceList gltfSpaces\n console.warn(\"***updateAllWallHandle***\");\n this.spaceList.forEach(spaceObj => {\n // 根据空间,更新前提数据\n let wallObj = this.wallList.find(item => {\n return item.id == spaceObj.wallId;\n });\n if (wallObj) {\n let element = JSON.parse(wallObj.wallJson);\n // console.warn(\"****wallObj**\",element)\n this.computeWallHandleOld(spaceObj, element); // 重新计算-并把空间的计算结果同步到gltfWalls中\n }\n });\n\n for (let index = 0; index < this.gltfWalls.length; index++) {\n const element = this.gltfWalls[index];\n this.drawModel(element.wallModelData, null, element, false);\n }\n },\n loadChangeWallModels(item, resolve) {\n var that = this;\n let wallObj = item;\n // console.log(\"处理模型替换\", item.wallModelData);\n if (item.wallModelData.wallWidth == 0) {\n // 模型隐藏\n return resolve();\n }\n if (item.wallModelData.willCurWallType && item.wallModelData.willCurWallType != -1) {\n const curWallType = _static_wallData_js__WEBPACK_IMPORTED_MODULE_1___default().find(it => it.type == item.wallModelData.willCurWallType);\n // console.log(\"加载的模型\", item, item.wallModelData.willCurWallType, curWallType);\n if (!curWallType) {\n return resolve();\n }\n that.loader.load(curWallType.url, gltf => {\n // 旧的模型\n let spaceInitMatrix = []; //记录下动画创建时的初始变换矩阵\n wallObj.instancedMeshIndexList.forEach(it => {\n let _index = it.instancedMeshIndex;\n let instancedMesh = this.instancedMeshList[_index]; //获取网格实例\n let startMatrix = new three__WEBPACK_IMPORTED_MODULE_2__.Matrix4(); //定义一个四维矩阵\n instancedMesh.getMatrixAt(it.instancedAtIndex, startMatrix); //获取当前几何体的四维矩阵到stratMatrix里面\n spaceInitMatrix.push({\n index: _index,\n matrix: startMatrix.clone()\n });\n });\n wallObj.instancedMeshIndexList.forEach(it => {\n let _index = it.instancedMeshIndex;\n let instancedMesh = this.instancedMeshList[_index]; //获取网格实例\n let tmp = spaceInitMatrix.find(it => it.index == _index);\n let stratMatrix = tmp.matrix.clone(); //获取初始变换矩阵\n // // 计算变化后的位置:位移后的位置 是 当前几何体的位置参数 加上 模型移动后的位置偏移量\n\n let scaleMatrix = new three__WEBPACK_IMPORTED_MODULE_2__.Matrix4(); //定义一个缩放变化矩阵\n let panMatrix = new three__WEBPACK_IMPORTED_MODULE_2__.Matrix4(); //定义一个平移变化矩阵\n\n scaleMatrix.makeScale(0, 0, 0); //获得缩放变化矩阵\n panMatrix.makeTranslation(0, 0, 0); //获得平移变化矩阵\n stratMatrix.multiply(scaleMatrix).premultiply(panMatrix); //通过矩阵计算获得最终的形变矩阵\n instancedMesh.instanceMatrix.needsUpdate = true; //更新之前,必须开启开关\n instancedMesh.setMatrixAt(it.instancedAtIndex, stratMatrix); //更新几何体的世界矩阵\n });\n\n let newWallObj = JSON.parse(JSON.stringify(item));\n const wallType = item.wallModelData.willCurWallType;\n console.log(\"重新组合新模型数据\", newWallObj, item.wallModelData, wallType);\n newWallObj.willCurWallType = -1;\n let wallModelData = newWallObj.wallModelData;\n wallModelData.wallScaleX = 1;\n wallModelData.wallScaleY = 1;\n wallModelData.lastWallType = item.wallModelData.wallType;\n wallModelData.wallType = wallType;\n wallModelData.willCurWallType = -1;\n newWallObj.wallModelData = wallModelData;\n newWallObj.wallScaleX = 1;\n newWallObj.wallScaleY = 1;\n let realWallArr = this.preWallData([newWallObj]);\n const realData = realWallArr[0];\n\n // 新的模型\n gltf.scene.traverse(child => {\n if (child.isMesh && child.visible) {\n let instancedMesh = new three__WEBPACK_IMPORTED_MODULE_2__.InstancedMesh(child.geometry.clone(), child.material.clone(), realData.list.length);\n this.instancedMeshList.push(instancedMesh);\n //realData 该模型被重复使用时的每一次的形变参数等\n realData.list && realData.list.forEach((it, i) => {\n gltf.scene.position.set(item.wallPositionX, 0, item.wallPositionY);\n gltf.scene.scale.set(1, 1, 1);\n gltf.scene.rotation.y = item.wallRotateY;\n gltf.scene.updateMatrixWorld(); //更新世界坐标-这样,子模型也同步更新了\n instancedMesh.setMatrixAt(i, child.matrixWorld);\n instancedMesh.instanceMatrix.needsUpdate = true;\n // instancedMesh.setColorAt(i, child.material.color);\n // instancedMesh.instanceColor.needsUpdate = true;\n // console.log(\"***matrixWorld***\",child.matrixWorld);\n let gltfWall = that.gltfWalls.find(gltfWall => gltfWall.uniId == it.uniId); //判断是否已经添加过\n if (!gltfWall) {\n let md = {\n uniId: it.uniId,\n //模型实例的唯一标识\n spaceId: it.spaceId,\n instancedMeshIndexList: [\n //标识网格实例数组的序号 以及 当前几何体 在网格实例的序号\n {\n instancedMeshIndex: this.instancedMeshList.length - 1,\n instancedAtIndex: i\n }],\n // id:child.id,//几何体的id\n // name:child.name,//几何体的id\n wallPositionX: item.wallPositionX,\n wallPositionY: item.wallPositionY,\n wallScaleX: 1,\n wallScaleY: 1,\n wallRotateY: item.wallRotateY,\n wallWidth: item.wallWidth,\n wallModelData: wallModelData,\n wallModelInitData: item,\n // 保留初始化墙体数据,方便空间变形计算缩放比例 \n wallDirection: it.wallDirection,\n willCurWallType: -1,\n // 即将成为当前模型,作用于动画加载完替换\n lastWallType: wallModelData.lastWallType // 上一次墙体模型\n };\n\n that.gltfWalls.push(md);\n } else {\n gltfWall.instancedMeshIndexList.push({\n instancedMeshIndex: this.instancedMeshList.length - 1,\n instancedAtIndex: i\n });\n }\n });\n instancedMesh.userType = \"mesh\";\n that.scene.add(instancedMesh);\n }\n });\n resolve();\n });\n }\n resolve();\n }\n }\n});\n\n//# sourceURL=webpack://hello-world/./src/mixins/wallMethod.js?"); /***/ }), /***/ "./src/router/index.js": /*!*****************************!*\ !*** ./src/router/index.js ***! \*****************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/_vue@2.7.14@vue/dist/vue.esm.js\");\n/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue-router */ \"./node_modules/_vue-router@3.6.5@vue-router/dist/vue-router.esm.js\");\n/* harmony import */ var _pages_mainView_mainView_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/pages/mainView/mainView.vue */ \"./src/pages/mainView/mainView.vue\");\n\n\n\n// import Login from '@/pages/loginView/loginView.vue'\n\nvue__WEBPACK_IMPORTED_MODULE_1__[\"default\"].use(vue_router__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\nconst router = new vue_router__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({\n // mode: 'history',\n routes: [\n // 页面初始化\n {\n path: '/',\n redirect: '/pages/mainView'\n }, {\n path: '/pages/mainView',\n name: 'mainView',\n component: _pages_mainView_mainView_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n }]\n});\nrouter.beforeEach((to, from, next) => {\n console.warn(\"router:start-1\", from, to);\n //如果存在用户账号信息|| to.query.uid\n next();\n});\n//同一个路由跳转报错解决,NavigationDuplicated: Avoided redundant navigation to current location:\nconst originalPush = vue_router__WEBPACK_IMPORTED_MODULE_2__[\"default\"].prototype.push;\nvue_router__WEBPACK_IMPORTED_MODULE_2__[\"default\"].prototype.push = function push(location) {\n return originalPush.call(this, location).catch(err => err);\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (router);\n\n//# sourceURL=webpack://hello-world/./src/router/index.js?"); /***/ }), /***/ "./src/services/request.js": /*!*********************************!*\ !*** ./src/services/request.js ***! \*********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/_core-js@3.31.1@core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/store */ \"./src/store/index.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! axios */ \"./node_modules/_axios@0.21.4@axios/index.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_localStorage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/localStorage */ \"./src/utils/localStorage.js\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/router */ \"./src/router/index.js\");\n\n\n\n\n\nvar requestCount = 0; //记录下同时的请求数\n// import ElementUI from 'element-ui';\nvar showToast = true;\n(axios__WEBPACK_IMPORTED_MODULE_2___default().defaults).headers.post['elabEnvironment'] = '4'; //axios默认的请求方式,可以自己设置\n(axios__WEBPACK_IMPORTED_MODULE_2___default().defaults).headers.post['userType'] = '1000'; //axios默认的请求方式,可以自己设置\naxios__WEBPACK_IMPORTED_MODULE_2___default().interceptors.request.use(function (config) {\n if (config.noLoading) {\n _store__WEBPACK_IMPORTED_MODULE_1__[\"default\"].dispatch('setLoading', false); //不显示loading态\n }\n\n requestCount++; //请求数+1\n if (config.url.includes('http')) {\n return config;\n } else {\n config.url = window.$config.api_url + config.url;\n if (config.url.includes('elab-marketing-operate/mofangTest/user/login') || config.url.includes('elab-marketing-user/vcode/send/verifyCode')) {\n config.headers['userId'] = \"\";\n config.headers['ip'] = \"\";\n showToast = true;\n } else {\n //uploadOss 上传format文件过大时提示不成功,接口500,通过测试与header有关,注释掉上传的header就好了\n if (!config.url.includes('elab-marketing-sms/aliyun/openapi/uploadOss')) {\n let userinfo = (0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_3__.getStorage)('userInfoThing');\n config.headers['userId'] = userinfo ? JSON.parse(userinfo).dataUserId : '';\n config.headers['ip'] = (0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_3__.getStorage)('ip');\n config.headers['maiya_token'] = (0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_3__.getStorage)('userInfoThing') ? JSON.parse((0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_3__.getStorage)('userInfoThing')).maiya_token || \"\" : \"\"; //token\n }\n }\n }\n\n return config;\n}, function (error) {\n console.log(error);\n});\naxios__WEBPACK_IMPORTED_MODULE_2___default().interceptors.response.use(function (response) {\n requestCount = requestCount - 1;\n if (requestCount < 1) {\n _store__WEBPACK_IMPORTED_MODULE_1__[\"default\"].state.loading = false; //不显示loading状态\n }\n\n let result = response.data;\n return result;\n}, function (error) {\n console.log(\"***error***\", error, requestCount);\n requestCount = requestCount - 1;\n if (requestCount < 1) {\n _store__WEBPACK_IMPORTED_MODULE_1__[\"default\"].state.loading = false; //不显示loading状态\n }\n //如果返回的状态码是401则需要返回到登录\n if (error.response && error.response.status && error.response.status == 401) {\n window.$bus.$off(); //取消所有的订阅事件\n (0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_3__.removeItem)('userInfoThing');\n (0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_3__.removeItem)('currentConponent');\n (0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_3__.removeItem)('setProgramComponetData');\n for (let i = 0; i < window.localStorage.length; i++) {\n let key = window.localStorage.key(i);\n if (key.includes(\"currentProject\")) {\n (0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_3__.removeItem)(key);\n }\n if (key.includes(\"planItem\")) {\n (0,_utils_localStorage__WEBPACK_IMPORTED_MODULE_3__.removeItem)(key);\n }\n }\n window.$clearPermissionRole(); //登出时重置权限里面记录的权限单元\n _store__WEBPACK_IMPORTED_MODULE_1__[\"default\"].dispatch('setCurrentProject', null);\n _router__WEBPACK_IMPORTED_MODULE_4__[\"default\"].push({\n name: \"Login\"\n });\n if (showToast) {\n showToast = false;\n // ElementUI.Message({\n // \tmessage:\"账号已失效\",\n // \ttype:\"error\"\n // });\n }\n\n error.response.message = \"账号已失效\";\n error.response.data.message = \"账号已失效\";\n // MessageBox.alert('账号已失效,无法登录', '提示', {\n // confirmButtonText: '确定',\n // callback: action => {\n // router.replace({\n // name: 'Login',\n // query: {redirect: router.currentRoute.fullPath} //登录后再跳回此页面时要做的配置\n // })\n // }\n // });\n }\n\n let result = error.response;\n return result;\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = ((axios__WEBPACK_IMPORTED_MODULE_2___default()));\n\n//# sourceURL=webpack://hello-world/./src/services/request.js?"); /***/ }), /***/ "./src/services/requestConfig.js": /*!***************************************!*\ !*** ./src/services/requestConfig.js ***! \***************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/store */ \"./src/store/index.js\");\n\nvar doubleClickList = []; //防连击的数组对象\n// 请求地址对象\nconst endpoints = {\n upload: 'elab-marketing-system/behavior/brandMiniWeb/upload',\n //埋点接口\n login: 'elab-marketing-analyse/cockpit/login',\n //用户登录\n // // webGL接口\n getHouseTypeSpaceDetailsV2: 'elab-marketing-file/space_generation_background/getHouseTypeSpaceDetails/v2',\n //V1.1.0-城市首页\n getHouseTypeSpaceDetails: 'elab-marketing-file/space_generation_background/getHouseTypeSpaceDetails',\n //V1.1.0-城市首页\n\n // // 柔性定制接口\n getHouseTypeSpaceWalls: '/elab-marketing-file/space_generation_background/getHouseTypeSpaceWalls',\n // 批量获取墙面信息\n\n houseDetail: 'elab-marketing-user/house/detail',\n findHouseTypeSpaceList: 'elab-marketing-file/space_generation_background/findHouseTypeSpaceList',\n layoutList: 'elab-marketing-content/aiDreamHouse/V3.0/layoutList',\n labelList: 'elab-marketing-content/aiDreamHouse/V3.0/labelList',\n findOverallArrangementList: 'elab-marketing-file/space_generation_background/findOverallArrangementList',\n getOverallArrangementDetailsList: 'elab-marketing-file/space_generation_background/getOverallArrangementDetailsList',\n choiceList: \"elab-marketing-content/aiDreamHouse/V3.0/choiceList\",\n getHardboundEffects: \"elab-marketing-file/space_vary/getHardboundEffects\",\n uploadImgControlNet: \"elab-marketing-content/aiBeautyFamily/uploadImgControlNet\",\n // generateProcess: \"elab-marketing-content/aiBeautyFamily/generateProcess\",\n getUploadToken: \"elab-marketing-file/upload/getUploadToken\",\n findSpatialInfoList: \"elab-marketing-file/flexible_customization/findSpatialInfoList\"\n};\nwindow.requestConfig = async (endpoint, options, isHideLoading = false, preventDoubleClick = false, method = 'post') => {\n if (!endpoints.hasOwnProperty(endpoint)) {\n console.error(`no such endpoint: ${endpoint}`);\n return {\n message: \"不存在该接口\"\n };\n }\n const requestOptions = {\n path: endpoints[endpoint],\n data: options\n };\n if (preventDoubleClick) {\n //说明该接口需要防止连击\n if (doubleClickList[requestOptions.path] && doubleClickList[requestOptions.path].isRunning) {\n console.log(`${requestOptions.path}触发连击,屏蔽该请求`);\n return;\n } else {\n console.log(`${requestOptions.path}触发连击,通过`);\n doubleClickList[requestOptions.path] = {\n isRunning: true\n };\n }\n }\n console.log(`获取${requestOptions.path}请求的参数:`, requestOptions.data);\n requestOptions.url = requestOptions.path;\n // var t = Math.round(new Date());\n // requestOptions.time = t;\n\n if (!requestOptions.url.includes('/elab-marketing-user/aysn/task/byone') && !requestOptions.url.includes('elab-marketing-analyse/heavenlyEye/saleTarget/add') && !requestOptions.url.includes('elab-marketing-analyse/heavenlyEye/customer/coverPopulation') && !requestOptions.url.includes('elab-marketing-analyse/heavenlyEye/customer/intention') && !requestOptions.url.includes('elab-marketing-analyse/urbanCockpit/sky_eye_marketing/getAdCreativeDraftCheckResult') && !requestOptions.url.includes('elab-marketing-analyse/heavenlyEye/getCompareMapTotalPopulation')) {\n _store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].state.loading = true; //显示loading态\n }\n\n if (isHideLoading) {\n _store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].state.loading = false; //显示loading态\n }\n\n if (requestOptions.url.includes('elab-marketing-analyse/heavenlyEye/importLocations') || requestOptions.url.includes('elab-marketing-sms/aliyun/openapi/uploadOss')) {\n requestOptions.ContentType = 'multipart/form-data';\n }\n if (requestOptions) {\n let platform = window.userInfo && window.userInfo['userAccount'] && window.userInfo['userAccount'].platform ? window.userInfo['userAccount'].platform : ''; //TODO 要还原成‘’的\n let currentProject = _store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].state.currentProject ? _store__WEBPACK_IMPORTED_MODULE_0__[\"default\"].state.currentProject : null;\n let landId = currentProject ? currentProject.id : '';\n requestOptions.data = requestOptions.data ? requestOptions.data : {};\n let userTypeId = window.userInfo && window.userInfo.userType ? window.userInfo.userType.id : ''; //1客户端 ,2投手端\n if (userTypeId == 2) {\n if (!requestOptions.data.hasOwnProperty('platform') || !requestOptions.data.platform) {\n requestOptions.data.platform = platform;\n }\n }\n if (!requestOptions.data.hasOwnProperty('landId') || !requestOptions.data.landId) {\n requestOptions.data.landId = landId;\n }\n }\n var response;\n if (requestOptions.url.includes('http') || method == 'get') {\n let params = requestOptions.data;\n response = await axios.get(requestOptions.url, {\n params\n });\n } else {\n response = await axios.post(requestOptions.url, requestOptions.data);\n }\n //说明该接口需要防止连击\n if (preventDoubleClick && doubleClickList[requestOptions.path] && doubleClickList[requestOptions.path].isRunning) {\n console.log(`${requestOptions.path}连击接口已返回,清空连击数组`);\n doubleClickList[requestOptions.path].isRunning = false;\n }\n // console.log('返回' + requestOptions.path + '请求的结果:', response)\n return response;\n};\n\n//# sourceURL=webpack://hello-world/./src/services/requestConfig.js?"); /***/ }), /***/ "./src/services/urlConfig.js": /*!***********************************!*\ !*** ./src/services/urlConfig.js ***! \***********************************/ /***/ (function(module) { eval("module.exports = function (env) {\n let WEB_CONF = {};\n if (env === 'test') {\n WEB_CONF = {\n miniAppUrl: 'https://h5test.elab-plus.com/',\n zipUrl: 'http://139.196.5.59:5307',\n uploadUrl: 'http://101.132.138.87:5555',\n //文件上传\n api_url: 'https://gatewaytest.elab-plus.vip/',\n //測試\n redirect_uri: 'https://h5test1.elab-plus.com/krpano/template',\n // 授权回调地址\n themeColor1: '#FFD09F',\n themeColor2: '#FFAD5C',\n themeColor3: '#EF863F',\n themeColor4: '#FFDF80',\n themeColor5: '#848EFF',\n themeColor6: '#76BCFF',\n themeColor7: '#85FDF0',\n themeColor8: '#FFEDB9',\n themeColor9: '#FFFFFF',\n themeColor10: '#000000',\n themeColor11: '#B4FACB',\n themeColor12: '#4D7B5C',\n clientId: '1112011009',\n appId: '1758586978178079',\n baiduAppid: 'd06f13eae4d2bc56f5fa7359784c0af9'\n };\n } else if (env === 'test2') {\n WEB_CONF = {\n miniAppUrl: 'https://h5test.elab-plus.com/',\n zipUrl: 'http://139.196.5.59:5307',\n uploadUrl: 'http://106.14.187.241:5555',\n //文件上传\n api_url: 'https://gatewaytest1.elab-plus.com/',\n //測試\n redirect_uri: 'https://h5test1.elab-plus.com/krpano/template',\n // 授权回调地址\n themeColor1: '#FFD09F',\n themeColor2: '#FFAD5C',\n themeColor3: '#EF863F',\n themeColor4: '#FFDF80',\n themeColor5: '#848EFF',\n themeColor6: '#76BCFF',\n themeColor7: '#85FDF0',\n themeColor8: '#FFEDB9',\n themeColor9: '#FFFFFF',\n themeColor10: '#000000',\n themeColor11: '#B4FACB',\n themeColor12: '#4D7B5C',\n clientId: '1112011009',\n appId: '1758586978178079',\n baiduAppid: 'd06f13eae4d2bc56f5fa7359784c0af9'\n };\n } else if (env === 'test3') {\n WEB_CONF = {\n miniAppUrl: 'https://h5test.elab-plus.com/',\n zipUrl: 'http://139.196.5.59:5307',\n uploadUrl: 'http://106.14.187.241:5555',\n //文件上传\n api_url: 'https://gatewaytest3.skyforestcity.com/',\n //測試\n redirect_uri: 'https://h5test3.elab-plus.net/krpano/template',\n // 授权回调地址\n themeColor1: '#FFD09F',\n themeColor2: '#FFAD5C',\n themeColor3: '#EF863F',\n themeColor4: '#FFDF80',\n themeColor5: '#848EFF',\n themeColor6: '#76BCFF',\n themeColor7: '#85FDF0',\n themeColor8: '#FFEDB9',\n themeColor9: '#FFFFFF',\n themeColor10: '#000000',\n themeColor11: '#B4FACB',\n themeColor12: '#4D7B5C',\n clientId: '1112011009',\n appId: '1758586978178079',\n baiduAppid: 'd06f13eae4d2bc56f5fa7359784c0af9'\n };\n } else if (env === 'test4') {\n WEB_CONF = {\n miniAppUrl: 'https://h5test.elab-plus.com/',\n zipUrl: 'http://139.196.5.59:5307',\n uploadUrl: 'http://106.14.187.241:5555',\n //文件上传\n api_url: 'https://gatewaytest4.skyforestcity.com/',\n //測試\n redirect_uri: 'https://h5test1.elab-plus.com/krpano/template',\n // 授权回调地址\n themeColor1: '#FFD09F',\n themeColor2: '#FFAD5C',\n themeColor3: '#EF863F',\n themeColor4: '#FFDF80',\n themeColor5: '#848EFF',\n themeColor6: '#76BCFF',\n themeColor7: '#85FDF0',\n themeColor8: '#FFEDB9',\n themeColor9: '#FFFFFF',\n themeColor10: '#000000',\n themeColor11: '#B4FACB',\n themeColor12: '#4D7B5C',\n clientId: '1112011009',\n appId: '1758586978178079',\n baiduAppid: 'd06f13eae4d2bc56f5fa7359784c0af9'\n };\n } else if (env === 'dev') {\n WEB_CONF = {\n miniAppUrl: 'http://h5test.elab-plus.com/',\n zipUrl: 'http://139.196.5.59:5307',\n uploadUrl: 'http://192.168.50.104:5555',\n //文件上传\n api_url: 'http://192.168.50.104:5555/',\n //开发\n redirect_uri: 'https://h5test1.elab-plus.com/krpano/template',\n // 授权回调地址\n themeColor1: '#FFD09F',\n themeColor2: '#FFAD5C',\n themeColor3: '#EF863F',\n themeColor4: '#FFDF80',\n themeColor5: '#848EFF',\n themeColor6: '#76BCFF',\n themeColor7: '#85FDF0',\n themeColor8: '#FFEDB9',\n themeColor9: '#FFFFFF',\n themeColor10: '#000000',\n themeColor11: '#B4FACB',\n themeColor12: '#4D7B5C',\n clientId: '1112011009',\n appId: '1758586978178079',\n baiduAppid: 'd06f13eae4d2bc56f5fa7359784c0af9'\n };\n } else if (env === 'uat') {\n WEB_CONF = {\n miniAppUrl: 'https://mng-uat.elaber.cn/',\n uploadUrl: 'https://api-uat.elaber.cn',\n //文件上传地址\n api_url: 'https://api-uat.elaber.cn/',\n //堡垒 接口地址https://dm.static.elab-plus.com/Kq3t1c3IDV.txt\n redirect_uri: 'https://mng-uat.elaber.cn/krpano/template',\n // 授权回调地址\n themeColor1: '#FFD09F',\n themeColor2: '#FFAD5C',\n themeColor3: '#EF863F',\n themeColor4: '#FFDF80',\n themeColor5: '#848EFF',\n themeColor6: '#76BCFF',\n themeColor7: '#85FDF0',\n themeColor8: '#FFEDB9',\n themeColor9: '#FFFFFF',\n themeColor10: '#000000',\n themeColor11: '#B4FACB',\n themeColor12: '#4D7B5C',\n clientId: '1112013355',\n appId: '1758979466364941',\n baiduAppid: '9a7c9c156493ffbb48bd562112e1161a'\n };\n } else if (env === 'uat3') {\n WEB_CONF = {\n miniAppUrl: 'https://mng-uat3.elaber.cn/',\n uploadUrl: 'https://api-uat3.elaber.cn',\n //文件上传地址\n api_url: 'https://api-uat3.elaber.cn/',\n //堡垒 接口地址https://dm.static.elab-plus.com/Kq3t1c3IDV.txt\n redirect_uri: 'https://mng-uat3.elaber.cn/krpano/template',\n // 授权回调地址\n themeColor1: '#FFD09F',\n themeColor2: '#FFAD5C',\n themeColor3: '#EF863F',\n themeColor4: '#FFDF80',\n themeColor5: '#848EFF',\n themeColor6: '#76BCFF',\n themeColor7: '#85FDF0',\n themeColor8: '#FFEDB9',\n themeColor9: '#FFFFFF',\n themeColor10: '#000000',\n themeColor11: '#B4FACB',\n themeColor12: '#4D7B5C',\n clientId: '1112013355',\n appId: '1758979466364941',\n baiduAppid: '9a7c9c156493ffbb48bd562112e1161a'\n };\n } else if (env === 'production') {\n WEB_CONF = {\n miniAppUrl: 'https://dm-mng.elab-plus.com.cn/',\n uploadUrl: 'https://dm-api.elab-plus.cn',\n //文件上传\n api_url: 'https://dm-api.elab-plus.cn/',\n //接口地址\n redirect_uri: 'http://city.1949plus.com',\n // 授权回调地址\n themeColor1: '#FFD09F',\n themeColor2: '#FFAD5C',\n themeColor3: '#EF863F',\n themeColor4: '#FFDF80',\n themeColor5: '#848EFF',\n themeColor6: '#76BCFF',\n themeColor7: '#85FDF0',\n themeColor8: '#FFEDB9',\n themeColor9: '#FFFFFF',\n themeColor10: '#000000',\n themeColor11: '#B4FACB',\n themeColor12: '#4D7B5C',\n clientId: '1112009742',\n appId: '1758704971288606',\n baiduAppid: '30c97c277abecefe282aaa2ea7fa4115'\n };\n }\n return WEB_CONF;\n};\n\n//# sourceURL=webpack://hello-world/./src/services/urlConfig.js?"); /***/ }), /***/ "./src/static/globlShowModel.js": /*!**************************************!*\ !*** ./src/static/globlShowModel.js ***! \**************************************/ /***/ (function(module) { eval("//需要精简加载的模型名称\nvar globlShowModel = ['BP_XSPACE_deng_01', 'BP_L_carpet01', \"BP_D_LongDiningTable_240CM\", \"BP_D_DinnerChair01\", \"BP_L_2Sofa01\", \"BP_L_1Sofa01\", \"BP_L_book01\", \"BP_L_31TV01\", \"BP_L_TeaRTable\", \"BP_B_verysmallbed\", \"BP_B_wardrobe01\", \"BP_K_Kitchentable002\", \"BP_K_cookerhood2\", \"BP_K_icebox_2door002\", \"BP_K_flue002\", \"BP_K_caozuotai03\", \"BP_K_caozuotai001\", \"BP_K_cookerhood02\", \"BP_K_shuipen01\", \"BP_K_shuipen02\", \"BP_T_matong\", \"BP_T_1PeopleBasin01\", \"BP_T_OpenShower01\", \"BP_L_TeaTable02\"];\nmodule.exports = globlShowModel;\n\n//# sourceURL=webpack://hello-world/./src/static/globlShowModel.js?"); /***/ }), /***/ "./src/static/layoutModelData.js": /*!***************************************!*\ !*** ./src/static/layoutModelData.js ***! \***************************************/ /***/ (function(module) { eval("var layoutModel = [{\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_Mbed.glb',\n name: '1.5m床',\n modelName: 'BP_B_Mbed01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_smallcabin.glb',\n name: '床头柜',\n modelName: 'BP_B_smallcabinet01',\n type: 1\n},\n// {url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_195M_C.gltf', name: '1.95m',modelName: 'BP_AutoWall_195M_C', type:1},\n{\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_bigbed.glb',\n name: '1.8m床',\n modelName: 'BP_B_bigbed01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_smallbed.glb',\n name: '1.2m床',\n modelName: 'BP_B_smallbed01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_verysmallbed.glb',\n name: '0.9m床',\n modelName: 'BP_B_verysmallbed',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_31sofa.gltf',\n name: '4人沙发',\n modelName: 'BP_L_31sofa01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_31TV.glb',\n name: '电视墙',\n modelName: 'BP_L_31TV01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_D_4people_square.gltf',\n name: '4人方桌',\n modelName: 'BP_D_4people_square',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_yigui.glb',\n name: '衣柜',\n modelName: 'BP_B_yigui01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_311sofa01.gltf',\n name: '5人沙发',\n modelName: 'BP_L_311sofa01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_321sofa.gltf',\n name: '6人沙发',\n modelName: 'BP_L_321sofa01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_D_2people_square.gltf',\n name: '2人方桌',\n modelName: 'BP_D_2people_square',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_D_6people_long.gltf',\n name: '6人长桌',\n modelName: 'BP_D_6people_long01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_D_6people_long.gltf',\n name: '6人长桌',\n modelName: 'BP_D_6people_long01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_D_8people_long.gltf',\n name: '8人长桌',\n modelName: 'BP_D_8people_long',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_D_12people_round1.gltf',\n name: '12人圆桌',\n modelName: 'BP_D_12people_round',\n type: 1\n},\n// {url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_penzai01.glb', name: '盆栽',modelName: 'BP_B_penzai02', type:1},\n\n{\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_backsofa01.gltf',\n name: '靠背沙发01',\n modelName: 'BP_D_backsofa01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_facesofa01.gltf',\n name: '对坐沙发01',\n modelName: 'BP_D_facesofa01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_O_painting01.gltf',\n name: '挂画装饰',\n modelName: 'BP_DLBT_painting01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_painting01.glb',\n name: '挂画01',\n modelName: 'BP_B_painting01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_painting02.glb',\n name: '挂画02',\n modelName: 'BP_B_painting02',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_bookshelf01.glb',\n name: '大书架01',\n modelName: 'BP_L_bookshelf01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_bookshelf02.glb',\n name: '大书架02',\n modelName: 'BP_L_bookshelf02',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_book01.glb',\n name: '小书架',\n modelName: 'BP_L_book01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_D_dinetable01.gltf',\n name: '大展架01',\n modelName: 'BP_L_exhibition01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_Exhibition02.glb',\n name: '大展架02',\n modelName: 'BP_L_exhibition02',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_exhibition04.gltf',\n name: '4m展架',\n modelName: 'BP_L_exhibition04',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_exhibition05.gltf',\n name: '5m展架',\n modelName: 'BP_L_exhibition05',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_exhibition06.gltf',\n name: '6m展架',\n modelName: 'BP_L_exhibition06',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_exhibition07.gltf',\n name: '7m展架',\n modelName: 'BP_L_exhibition07',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_21sofa.glb',\n name: '3人沙发',\n modelName: 'BP_L_21sofa01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_facesofa02.gltf',\n name: '对坐沙发02',\n modelName: 'BP_D_facesofa02',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_wardrobe01.glb',\n name: '1m衣柜',\n modelName: 'BP_B_wardrobe01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_wardrobe02.glb',\n name: '2m衣柜',\n modelName: 'BP_B_wardrobe02',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_wardrobe03.glb',\n name: '3m衣柜',\n modelName: 'BP_B_wardrobe03',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_wardrobe04.glb',\n name: '4m衣柜',\n modelName: 'BP_B_wardrobe04',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_dresser01.glb',\n name: '梳妆台01',\n modelName: 'BP_B_dresser01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_T_bathtub01.glb',\n name: '浴缸01',\n modelName: 'BP_T_bathtub01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_table01.glb',\n name: '1m写字台',\n modelName: 'BP_B_table01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_T_stairs01.gltf',\n name: '楼梯01',\n modelName: 'BP_T_stairs01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_children01.gltf',\n name: '儿童家具01',\n modelName: 'BP_L_children01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_children02.gltf',\n name: '儿童家具02',\n modelName: 'BP_L_children02',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_children03.gltf',\n name: '儿童家具03',\n modelName: 'BP_L_children03',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_T_2PeopleBasin01.glb',\n name: '2人台盆01',\n modelName: 'BP_T_2PeopleBasin01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_T_2PeopleBasin02.glb',\n name: '2人台盆02',\n modelName: 'BP_T_2PeopleBasin02',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_flue001.glb',\n name: '烟道',\n modelName: 'BP_K_flue002',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_cookerhood2.glb',\n name: '灶台',\n modelName: 'BP_K_cookerhood02',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_icebox_2door001.glb',\n name: '冰箱',\n modelName: 'BP_K_icebox_2door002',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_shuipen01.glb',\n name: '水盆01',\n modelName: 'BP_K_shuipen01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_shuipen02.glb',\n name: '水盆02',\n modelName: 'BP_K_shuipen02',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_Kitchentable001.glb',\n name: '台面',\n modelName: 'BP_K_Kitchentable002',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_2sofa.gltf',\n name: '2人沙发',\n modelName: 'BP_L_2sofa',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_caozuotai01.glb',\n name: '操作台01',\n modelName: 'BP_K_caozuotai001',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_caozuotai02.glb',\n name: '操作台02',\n modelName: 'BP_K_caozuotai002',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_K_caozuotai03.glb',\n name: '操作台03',\n modelName: 'BP_K_caozuotai03',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_O_LightIndoorWall.gltf',\n name: '隔墙',\n modelName: 'BP_O_LightIndoorWall',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_TeaTable01.glb',\n name: '茶几01',\n modelName: 'BP_L_TeaRTable',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_children04.gltf',\n name: '儿童家具04',\n modelName: 'BP_L_children04',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_X_ReadingArea01.gltf',\n name: '阅读角01',\n modelName: 'BP_X_ReadingArea01',\n type: 1\n},\n// {url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_T_OpenShower01.glb', name: '开敞侧淋浴间',modelName: 'BP_T_OpenShower01', type:1},\n{\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_T_matong.gltf',\n name: '马桶',\n modelName: 'BP_T_matong',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_T_1PeopleBasin01.glb',\n name: '1人台盆01',\n modelName: 'BP_T_1PeopleBasin01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_T_flue001.glb',\n name: '水井管道01',\n modelName: 'BP_T_flue001',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_T_Locker01.glb',\n name: '储物柜01',\n modelName: 'BP_T_Locker01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_X_RelaxArea01.gltf',\n name: '休闲角01',\n modelName: 'BP_X_RelaxArea01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_X_RelaxArea02.gltf',\n name: '休闲角02',\n modelName: 'BP_X_RelaxArea02',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_FlowerTerrace01_LongSide_0.3M.gltf',\n name: '长边花坛0.3M-长边位',\n modelName: 'BP_G_LongSide03M',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_FlowerTerrace_Corner_0.3M.gltf',\n name: '长边花坛0.3M-转角位',\n modelName: 'BP_G_Corner03M',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_FlowerTerrace_1.5M1.2M.gltf',\n name: '矩形花坛1.5M*1.2M',\n modelName: 'BP_G_1512M',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_X_FitnessArea01.gltf',\n name: '健身区',\n modelName: 'BP_G_FitnessArea01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_X_SunChairs01.gltf',\n name: '太阳椅',\n modelName: 'BP_G_SunChairs01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFrenchWindow_3.9M.gltf',\n name: '关闭落地窗-3.9M',\n modelName: 'BP_AutoWall_39M',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFrenchWindow_5.1M.gltf',\n name: '关闭落地窗-5.1M',\n modelName: 'BP_AutoWall_51M',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFrenchWindow_6.3M.gltf',\n name: '关闭落地窗-6.3M',\n modelName: 'BP_AutoWall_63M',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFrenchWindow_6.9M.gltf',\n name: '关闭落地窗-6.9M',\n modelName: 'BP_AutoWall_69M',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_FoldingInternalDoor_1.95M.gltf',\n name: '户内折叠门',\n modelName: 'BP_AutoWall_195M',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_OpenInternalDoor_0.8M.glt',\n name: '关闭户内门-0.8M',\n modelName: 'BP_AutoWallr_08M',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tree00.glb',\n name: '大树',\n modelName: 'BP_G_tree00',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tree01.glb',\n name: '中树',\n modelName: 'BP_G_tree01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tree02.glb',\n name: '小树',\n modelName: 'BP_G_tree02',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tree02.glb',\n name: '最小树',\n modelName: 'BP_G_tree03',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_parterre01.gltf',\n name: '9格花坛',\n modelName: 'BP_G_parterre01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_parterre03.gltf',\n name: '三角花坛',\n modelName: 'BP_G_parterre03',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_parterre04.gltf',\n name: '矩形花坛',\n modelName: 'BP_G_parterre04',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_parterre02.gltf',\n name: '内凹花坛',\n modelName: 'BP_G_parterre02',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_parterre07.gltf',\n name: '双条花坛',\n modelName: 'BP_G_parterre07',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_X_PartyTable01.gltf',\n name: '聚会长桌',\n modelName: 'BP_X_PartyTable01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_PoolTable01.gltf',\n name: '台球桌01',\n modelName: 'BP_X_PoolTable01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_X_weiqi01.gltf',\n name: '带伞棋坛',\n modelName: 'BP_G_weiqi01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_X_RelaxChair01_One.gltf',\n name: '单独休闲椅01',\n modelName: 'BP_X_RelaxChair01_One',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_X_RelaxChair02_One.gltf',\n name: '单独休闲椅02',\n modelName: 'BP_X_RelaxChair02_One',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_X_RelaxChair03_One.gltf',\n name: '单独休闲椅03',\n modelName: 'BP_X_RelaxChair03_One',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_X_swimmingpool01.gltf',\n name: '泳池01',\n modelName: 'BP_X_swimmingpool01',\n type: 1\n},\n// {url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tiles01.gltf', name: '地砖01',modelName: 'BP_G_tiles01', type:1},\n{\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tiles02.gltf',\n name: '地砖02',\n modelName: 'BP_G_tiles02',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tiles03.gltf',\n name: '地砖03',\n modelName: 'BP_G_tiles03',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tiles04.gltf',\n name: '地砖04',\n modelName: 'BP_G_tiles04',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tiles05.gltf',\n name: '地砖05',\n modelName: 'BP_G_tiles05',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tiles06.gltf',\n name: '地砖06',\n modelName: 'BP_G_tiles06',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tiles07.gltf',\n name: '地砖07',\n modelName: 'BP_G_tiles07',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tiles08.gltf',\n name: '地砖08',\n modelName: 'BP_G_tiles08',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tiles09.gltf',\n name: '地砖09',\n modelName: 'BP_G_tiles09',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tiles10.gltf',\n name: '地砖10',\n modelName: 'BP_G_tiles10',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tiles11.gltf',\n name: '地砖11',\n modelName: 'BP_G_tiles11',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tiles12.gltf',\n name: '地砖12',\n modelName: 'BP_G_tiles12',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_G_tiles13.gltf',\n name: '地砖13',\n modelName: 'BP_G_tiles13',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_X_OutdoorBar01.gltf',\n name: '户外酒吧台',\n modelName: 'BP_X_OutdoorBar01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_D_DinnerChair_red.glb',\n name: '单人餐椅01',\n modelName: 'BP_D_DinnerChair01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_D_LongDiningTable_240CM.glb',\n name: '2.4M长餐桌',\n modelName: 'BP_D_LongDiningTable_240CM',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_D_DiningDecration01.glb',\n name: '桌面饰品01',\n modelName: 'BP_D_DiningDecoration01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_TeaTable02.glb',\n name: '茶几02',\n modelName: 'BP_L_TeaTable02',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_TeaTable03.glb',\n name: '茶几03',\n modelName: 'BP_L_Teatable03',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_carpet01.glb',\n name: '地毯01',\n modelName: 'BP_L_carpet01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_2Sofa01.glb',\n name: '双人沙发',\n modelName: 'BP_L_2Sofa01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_L_1Sofa01.glb',\n name: '单人沙发',\n modelName: 'BP_L_1Sofa01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_X_RelaxTable01.gltf',\n name: '单独休闲桌01',\n modelName: 'BP_X_RelaxTable01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_B_pillow01.glb',\n name: '枕头',\n modelName: 'BP_B_pillow01',\n type: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_XSPACE_deng_01.glb',\n name: '吊顶灯',\n modelName: 'BP_XSPACE_deng_01',\n type: 2\n}];\nmodule.exports = layoutModel;\n\n//# sourceURL=webpack://hello-world/./src/static/layoutModelData.js?"); /***/ }), /***/ "./src/static/wallData.js": /*!********************************!*\ !*** ./src/static/wallData.js ***! \********************************/ /***/ (function(module) { eval("// group :0 墙面 1 hu\nvar wallType = [{\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Standard.glb',\n name: '承重墙',\n type: 0,\n width: 10,\n group: 0,\n level: 0,\n total: 1\n},\n// {url: 'https://dm.static.elab-plus.com/3d/model/230519/qiangti.gltf', name: '实体墙面',type:3, width:10, group:0, level:0, total:0}, // 暂未使用\n\n{\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_OpenInternalDoor_0.8M.glb',\n name: '关闭户内门-0.8M',\n type: 1,\n width: 80,\n group: 1,\n level: 0,\n total: 1\n},\n// {url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_OpenInternalDoor_0.8M.gltf', name: '关闭户内门-1.2M',type:6, width:80, group:1, level:1, total:2},\n\n{\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedEntranceDoor_0.9M.glb',\n name: '关闭入户门-0.9M',\n type: 4,\n width: 90,\n group: 2,\n level: 0,\n total: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFoldingWindow_0.6M.glb',\n name: '关闭折叠窗-0.6M',\n type: 2,\n width: 60,\n group: 3,\n level: 0,\n total: 5\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFoldingWindow_1.2M__1_.glb',\n name: '关闭折叠窗-1.2M',\n type: 5,\n width: 120,\n group: 3,\n level: 1,\n total: 5\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFoldingWindow_2.4M.glb',\n name: '关闭折叠窗-2.4M',\n type: 8,\n width: 240,\n group: 3,\n level: 2,\n total: 5\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFoldingWindow_2.7M.glb',\n name: '关闭折叠窗-2.7M',\n type: 9,\n width: 270,\n group: 3,\n level: 3,\n total: 5\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFoldingWindow_3.6M.glb',\n name: '关闭折叠窗-3.6M',\n type: 10,\n width: 360,\n group: 3,\n level: 4,\n total: 5\n}, {\n url: 'https://dm.static.elab-plus.com/3d/model/20230606/langan/langan.gltf',\n name: '阳台栏杆',\n type: 7,\n width: 690,\n group: 4,\n level: 0,\n total: 1\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFrenchWindow_2.1M.glb',\n name: '关闭落地窗-2.1M',\n type: 11,\n width: 210,\n group: 5,\n level: 0,\n total: 8\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFrenchWindow_2.7M.glb',\n name: '关闭落地窗-2.7M',\n type: 12,\n width: 270,\n group: 5,\n level: 1,\n total: 8\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFrenchWindow_3.6M.glb',\n name: '关闭落地窗-3.6M',\n type: 13,\n width: 360,\n group: 5,\n level: 2,\n total: 8\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFrenchWindow_3.9M.glb',\n name: '关闭落地窗-3.9M',\n type: 14,\n width: 390,\n group: 5,\n level: 3,\n total: 8\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFrenchWindow_5.1M.glb',\n name: '关闭落地窗-5.1M',\n type: 15,\n width: 480,\n group: 5,\n level: 4,\n total: 8\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFrenchWindow_6.3M.glb',\n name: '关闭落地窗-6.3M',\n type: 16,\n width: 630,\n group: 5,\n level: 5,\n total: 8\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFrenchWindow_7.8M.glb',\n name: '关闭落地窗-7.8M',\n type: 17,\n width: 780,\n group: 5,\n level: 6,\n total: 8\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedFrenchWindow_8.7M.glb',\n name: '关闭落地窗-8.7M',\n type: 18,\n width: 870,\n group: 5,\n level: 7,\n total: 8\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedLongWindow_0.9M.glb',\n name: '关闭长条窗-0.9M',\n type: 19,\n width: 90,\n group: 6,\n level: 0,\n total: 2\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_CLosedLongWindow_2.4M.glb',\n name: '关闭长条窗-2.4M',\n type: 20,\n width: 240,\n group: 6,\n level: 1,\n total: 2\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Railing_1M.gltf',\n name: '扶手栏杆-1M',\n type: 21,\n width: 100,\n group: 7,\n level: 0,\n total: 6\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Railing_2M.gltf',\n name: '扶手栏杆-2M',\n type: 22,\n width: 200,\n group: 7,\n level: 1,\n total: 6\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Railing_3M.gltf',\n name: '扶手栏杆-3M',\n type: 23,\n width: 300,\n group: 7,\n level: 2,\n total: 6\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Railing_4M.gltf',\n name: '扶手栏杆-4M',\n type: 24,\n width: 400,\n group: 7,\n level: 3,\n total: 6\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Railing_5M.gltf',\n name: '扶手栏杆-5M',\n type: 25,\n width: 500,\n group: 7,\n level: 4,\n total: 6\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Railing_6M.gltf',\n name: '扶手栏杆-6M',\n type: 26,\n width: 600,\n group: 7,\n level: 5,\n total: 6\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Standard.glb',\n name: '实体墙面',\n type: 27\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Standard.glb',\n name: '实体墙面',\n type: 28\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Standard.glb',\n name: '实体墙面',\n type: 29\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Standard.glb',\n name: '实体墙面',\n type: 30\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Standard.glb',\n name: '实体墙面',\n type: 31\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Standard.glb',\n name: '实体墙面',\n type: 32\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Standard.glb',\n name: '实体墙面',\n type: 33\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Standard.glb',\n name: '实体墙面',\n type: 34\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Standard.glb',\n name: '实体墙面',\n type: 35\n}, {\n url: 'https://dm.static.elab-plus.com/miniProgram/model/BP_AutoWall_Standard.glb',\n name: '实体墙面',\n type: 36\n}];\nmodule.exports = wallType;\n\n//# sourceURL=webpack://hello-world/./src/static/wallData.js?"); /***/ }), /***/ "./src/store/actions.js": /*!******************************!*\ !*** ./src/store/actions.js ***! \******************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\nconst actions = {\n setLoading({\n commit\n }, loading) {\n commit('SET_LOADING', loading);\n },\n setCurrentProject({\n commit\n }, project) {\n commit('SET_CURRENTPRPOJECT', project);\n },\n setAccount({\n commit\n }, account) {\n commit('SET_ACCOUNT', account);\n }\n // setCityListData({\n // \tcommit\n // }, cityListData) {\n // \tcommit('SET_CITYLISTDATA', cityListData)\n // },\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (actions);\n\n//# sourceURL=webpack://hello-world/./src/store/actions.js?"); /***/ }), /***/ "./src/store/index.js": /*!****************************!*\ !*** ./src/store/index.js ***! \****************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuex */ \"./node_modules/_vuex@3.6.2@vuex/dist/vuex.esm.js\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ \"./node_modules/_vue@2.7.14@vue/dist/vue.esm.js\");\n/* harmony import */ var _mutations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mutations */ \"./src/store/mutations.js\");\n/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./actions */ \"./src/store/actions.js\");\n/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./state */ \"./src/store/state.js\");\n\n\n\n\n\nvue__WEBPACK_IMPORTED_MODULE_3__[\"default\"].use(vuex__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (new vuex__WEBPACK_IMPORTED_MODULE_4__[\"default\"].Store({\n state: _state__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n mutations: _mutations__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n actions: _actions__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n modules: {}\n}));\n\n//# sourceURL=webpack://hello-world/./src/store/index.js?"); /***/ }), /***/ "./src/store/mutations.js": /*!********************************!*\ !*** ./src/store/mutations.js ***! \********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\nconst mutations = {\n SET_LOADING(state, loading) {\n state.loading = loading;\n },\n SET_CURRENTPRPOJECT(state, project) {\n state.currentProject = project;\n },\n SET_ACCOUNT(state, account) {\n state.account = account;\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (mutations);\n\n//# sourceURL=webpack://hello-world/./src/store/mutations.js?"); /***/ }), /***/ "./src/store/state.js": /*!****************************!*\ !*** ./src/store/state.js ***! \****************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\nconst state = {\n loading: false,\n currentProject: null,\n loadingMsg: \"\",\n account: null //账号\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (state);\n\n//# sourceURL=webpack://hello-world/./src/store/state.js?"); /***/ }), /***/ "./src/utils/command.js": /*!******************************!*\ !*** ./src/utils/command.js ***! \******************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/_vue@2.7.14@vue/dist/vue.esm.js\");\n\n//\n// /**\n// * 自定义指令\n// */\nvue__WEBPACK_IMPORTED_MODULE_0__[\"default\"].directive('title2', function (el, binding, vcode) {\n el.title = el.innerText;\n});\nvue__WEBPACK_IMPORTED_MODULE_0__[\"default\"].directive('title', {\n // 钩子函数,被绑定元素插入父节点时调用 (父节点存在即可调用,不必存在于 document 中)。\n inserted(el, binding, vcode) {\n el.focus();\n el.title = el.innerText;\n // console.log( 'inserted',el,binding,vcode );\n },\n\n // 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。\n bind(el, binding, vcode) {\n // el.title = el.innerText;\n // console.log(el,binding,vcode);\n // console.log( 'bind',el,binding,vcode );\n },\n // 所在组件的 VNode 更新时调用,但是可能发生在其孩子的 VNode 更新之前。\n // 指令的值可能发生了改变也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新\n update(el, binding, vcode) {\n // el.title = window.$(el).get(0).innerText;\n // console.log( 'update',window.$(el), el,binding,vcode );\n },\n // 所在组件的 VNode 及其孩子的 VNode 全部更新时调用。\n componentUpdated(el, binding, vcode) {\n el.title = el.innerText;\n // console.log( 'componentUpdated',el,binding,vcode );\n },\n\n // 只调用一次,指令与元素解绑时调用。\n unbind() {\n console.log('unbind');\n }\n});\n\n/**\r\n * 当输入框获取到焦点时,\r\n * 为 show-focus 类 所在dom ,添加边框颜色类 el-focus\r\n * v-focus 指令必须和show-focus配合使用 否则无效\r\n */\nvue__WEBPACK_IMPORTED_MODULE_0__[\"default\"].directive('focus', function (el, binding, vcode) {\n let mtinputList = el.querySelectorAll('input');\n if (!mtinputList) {\n mtinputList = el.querySelectorAll('textarea');\n }\n let mtinput = null;\n if (!binding.value) {\n mtinput = mtinputList[0];\n mtinput.onfocus = function () {\n let dom = window.$(el).parents('.show-focus');\n if (dom.length < 1) {\n window.$(mtinput).addClass('el-focus');\n } else {\n dom.addClass('el-focus');\n }\n };\n mtinput.onblur = function () {\n let dom = window.$(el).parents('.show-focus');\n if (dom.length < 1) {\n window.$(mtinput).removeClass('el-focus');\n } else {\n dom.removeClass('el-focus');\n }\n };\n } else {\n for (let i = 0; i < Number(binding.value); i++) {\n mtinput = mtinputList[i];\n mtinput.onfocus = function () {\n let dom = window.$(el).parents('.show-focus');\n dom.addClass('el-focus');\n };\n mtinput.onblur = function () {\n let dom = window.$(el).parents('.show-focus');\n dom.removeClass('el-focus');\n };\n }\n }\n});\n\n/**\r\n * 输入汉字为两个字符,英文为1个字符\r\n */\nvue__WEBPACK_IMPORTED_MODULE_0__[\"default\"].directive('limitChineseMaxlength', {\n // 钩子函数,被绑定元素插入父节点时调用 (父节点存在即可调用,不必存在于 document 中)。\n inserted(el, binding, vcode) {\n limitCharsFun(el, binding, vcode);\n },\n // 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。\n bind(el, binding, vcode) {\n limitCharsFun(el, binding, vcode);\n },\n // 所在组件的 VNode 更新时调用,但是可能发生在其孩子的 VNode 更新之前。\n // 指令的值可能发生了改变也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新\n update(el, binding, vcode) {},\n // 所在组件的 VNode 及其孩子的 VNode 全部更新时调用。\n componentUpdated(el, binding, vcode) {\n limitCharsFun(el, binding, vcode);\n },\n // 只调用一次,指令与元素解绑时调用。\n unbind() {}\n});\nconst limitCharsFun = function (el, binding, vcode) {\n window.$(el).removeClass('is-exceed');\n let element = el.querySelector('.el-input__count-inner');\n let mtinputList = el.querySelectorAll('input');\n if (!mtinputList) {\n mtinputList = el.querySelectorAll('textarea');\n }\n let mtinput = null;\n mtinput = mtinputList[0];\n let maxLength = vcode.data.attrs.maxlength;\n if (!maxLength) {\n maxLength = 60;\n }\n mtinput.setAttribute('maxlength', maxLength * 2);\n // mtinput.setAttribute(\"style\",\"border-color:var(--themeColor9_5)\")\n if (element) {\n element.setAttribute('style', \"color:#909399\");\n }\n let inputValue = mtinput.value || vcode.data.model.value;\n if (common.wordLengthFilter(inputValue) > maxLength) {\n if (common.byteLengthFilter(inputValue) > maxLength * 2) {\n mtinput.value = common.subinput(inputValue, maxLength * 2);\n } else {\n mtinput.value = common.subinput(inputValue, common.byteLengthFilter(inputValue));\n }\n mtinput.dispatchEvent(new Event(\"input\")); //调用input事件使vue v-model绑定更新,下面相同\n }\n\n let innerText = inputValue;\n if (element) {\n element.innerHTML = common.wordLengthFilter(innerText) + '/' + maxLength;\n }\n};\n\n/**\r\n *图片高度根据宽高比例自适应\r\n */\nvue__WEBPACK_IMPORTED_MODULE_0__[\"default\"].directive('proportion', {\n inserted: function (el, binding) {\n var w = el.offsetWidth;\n var h = w * binding.value;\n el.style.height = h + 'px';\n el.__resize = function () {\n update(el, binding);\n };\n window.addEventListener('resize', el.__resize);\n },\n componentUpdated: function (el, binding) {\n update(el, binding);\n },\n unbind: function (el) {\n window.removeEventListener('resize', el.__resize);\n }\n});\n\n//# sourceURL=webpack://hello-world/./src/utils/command.js?"); /***/ }), /***/ "./src/utils/common.js": /*!*****************************!*\ !*** ./src/utils/common.js ***! \*****************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/_core-js@3.31.1@core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/store */ \"./src/store/index.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! axios */ \"./node_modules/_axios@0.21.4@axios/index.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/router */ \"./src/router/index.js\");\n/* harmony import */ var _utils_localStorage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/localStorage */ \"./src/utils/localStorage.js\");\n/* harmony import */ var _services_requestConfig_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/services/requestConfig.js */ \"./src/services/requestConfig.js\");\n\n\n\n\n\n //导入请求的拦截器\n// import emojiConfig from '@/components/emojiComponent/lib/js/config'\n// import Config from \"@/components/emojiComponent/lib/js/config\";\nvar CancelToken = (axios__WEBPACK_IMPORTED_MODULE_2___default().CancelToken);\nvar source = CancelToken.source();\nconst common = {\n clearMap(type = 0) {\n //清空地图相关\n console.log(\"***clearMap***\", type);\n if (!window.map) {\n //如果不存在地图对象,则不需要往下执行清空地图的动作\n return false;\n }\n if (type == 1) {\n //入股清空类型是1,则表示要清空地图上的项目信息和聚合信息-全面清空\n window.project && window.project.clearProjecttLayer(); //先清空项目地图\n }\n\n window.modulePolygon && window.modulePolygon.clearPolygonLayer(); //板块图层\n window.competition && window.competition.clearCompetitionLayer(); //竞品图层\n window.poiOperate && window.poiOperate.clearPoiLayer(); //poi图层\n window.trafficOperate && window.trafficOperate.clearTrafficLayer(); //交通路网图层\n window.massPointOperate && window.massPointOperate.clearMassLayer(); //mass点位图层\n this.cancelPois();\n },\n hexToRgba(hex, opacity) {\n if (!hex || !opacity) {\n return hex;\n }\n let RGBA;\n if (hex.includes('#') && hex.length == 7) {\n RGBA = \"rgba(\" + parseInt(\"0x\" + hex.slice(1, 3)) + \",\" + parseInt(\"0x\" + hex.slice(3, 5)) + \",\" + parseInt(\"0x\" + hex.slice(5, 7)) + \",\" + opacity + \")\";\n } else if (hex.includes('rgb(')) {\n var values = hex.replace(/rgb?\\(/, '').replace(/\\)/, '').replace(/[\\s+]/g, '').split(',');\n return 'rgba(${values[0]},${values[1]},${values[2]},${opacity})';\n } else if (hex.includes('rgba(')) {\n var values = hex.replace(/rgba?\\(/, '').replace(/\\)/, '').replace(/[\\s+]/g, '').split(',');\n return 'rgba(${values[0]},${values[1]},${values[2]},${opacity})';\n } else {\n return hex;\n }\n return RGBA;\n },\n //项目切换时触发更新用户账号以及相关逻辑\n userProjectChangeHandle(project) {\n if (!project) {\n return false;\n }\n let uid = window.mapVue.$route.query.uid || ''; //获取当前路由上的uid\n //当前缓存里面的账号信息\n let _account = null;\n let adversiterList = project.adversiterList || [];\n // let userInfo = window.userInfo;\n // let _a1 = userInfo ? userInfo['userAccount'] : null;\n\n let _a3 = adversiterList && adversiterList[0] ? adversiterList[0] : null;\n //当前项目下没有账号信息\n if (!_a3) {\n this.userAccountChange(project, _account); //则设置当前账号为空\n return false; //同时不在往下执行\n }\n //如果检测存在用户账号信息\n if (uid) {\n //当前项目中寻找这个账号\n _account = adversiterList.find(it => it.advertiserId == uid);\n if (!_account) {\n //当前项目中不存在路由中的这个账号\n _account = _a3; //使用当前项目下的 第一个账号作为当前账号;表示切换了项目地块\n }\n } else {\n //使用当前项目下的 第一个账号作为当前账号\n _account = _a3;\n }\n console.warn(\"***account-userAccountChange0***\", _account, project, uid);\n this.userAccountChange(project, _account);\n },\n //切换账号,同时更新到全局变量中\n userAccountChange(project, account) {\n if (!account) {\n console.warn(\"***account-userAccountChange2***\", account, project);\n window.userInfo['userAccount'] = null; //修改当前页面的\n return false;\n }\n switch (account.platform) {\n case 1:\n account['type'] = 'tencent';\n account['typeName'] = '腾讯';\n break;\n case 2:\n account['type'] = 'huge';\n account['typeName'] = '巨量';\n break;\n case 3:\n account['type'] = 'baidu';\n account['typeName'] = '百度';\n break;\n default:\n break;\n }\n // if((_account && account && _account.advertiserId == account.advertiserId) || (account==null && (!_account || !_account.advertiserId))){ //账号相同,则不需要更新\n // \tconsole.warn(\"***账号相同,则不需更新***\", _account,account);\n // }\n // else{//执行账号切换\n\n // }\n account.landId = project.id; //记录下当前选中账号 所属地块-因为不同地块可能有相同账号的情况\n userInfo['userAccount'] = account; //修改当前页面的当前账号信息\n // setStorage(\"userAccount\", account);//更新到缓存里面-页面跳转时使用,window对象 不能跨页使用\n console.warn(\"***account-userAccountChange1***\", account, project);\n //切换账号则切换路由中的uid\n window.mapVue.$router.push({\n path: window.mapVue.$route.path,\n query: {\n uid: account.advertiserId || ''\n }\n });\n },\n async getLocationPOI(param) {\n const res = await requestConfig(\"locationPOI\", param);\n if (res.success) {\n if (res.single) {\n //绘制poi\n this.getPois(res.single);\n }\n } else {\n massPointOperate.removeMassList();\n }\n },\n async recommendLocation(param) {\n const res = await requestConfig(\"recommendLocation\", param);\n if (res.success) {\n if (res.single.poiList) {\n let list = res.single.poiList;\n massPointOperate.removeMassList();\n window.massPointOperate.addMassPointList(list, true);\n }\n if (res.single.plateInfoModel && res.single.plateInfoModel.length > 0) {\n massPointOperate.addPolygons(res.single.plateInfoModel);\n }\n } else {\n massPointOperate.removeMassList();\n }\n },\n async recommendPlanLocation(param) {\n const res = await requestConfig(\"recommendPlanLocation\", param);\n if (res.success) {\n massPointOperate.removeMassList();\n if (res.list) {\n let list = res.list;\n window.massPointOperate.addMassPointList(list, true);\n }\n } else {\n massPointOperate.removeMassList();\n }\n },\n // 判断是否为Mac 操作系统\n isMacAction() {\n return /macintosh|mac os x/i.test(navigator.userAgent);\n },\n //判断两个对象是否相等\n isEqual(objA, objB) {\n //相等\n if (objA === objB) return objA !== 0 || 1 / objA === 1 / objB;\n //空判断\n if (objA == null || objB == null) return objA === objB;\n //类型判断\n if (Object.prototype.toString.call(objA) !== Object.prototype.toString.call(objB)) return false;\n switch (Object.prototype.toString.call(objA)) {\n case '[object RegExp]':\n case '[object String]':\n //字符串转换比较\n return '' + objA === '' + objB;\n case '[object Number]':\n //数字转换比较,判断是否为NaN\n if (+objA !== +objA) {\n return +objB !== +objB;\n }\n return +objA === 0 ? 1 / +objA === 1 / objB : +objA === +objB;\n case '[object Date]':\n case '[object Boolean]':\n return +objA === +objB;\n case '[object Array]':\n //判断数组\n for (let i = 0; i < objA.length; i++) {\n if (!this.isEqual(objA[i], objB[i])) return false;\n }\n return true;\n case '[object Object]':\n //判断对象\n let keys = Object.keys(objA);\n for (let i = 0; i < keys.length; i++) {\n if (!this.isEqual(objA[keys[i]], objB[keys[i]])) return false;\n }\n keys = Object.keys(objB);\n for (let i = 0; i < keys.length; i++) {\n if (!this.isEqual(objA[keys[i]], objB[keys[i]])) return false;\n }\n return true;\n default:\n return false;\n }\n },\n /**\r\n * 获取字符串的字符数\r\n * @param str\r\n * @returns {number}\r\n */\n wordLengthFilter(str) {\n let size = this.byteLengthFilter(str);\n return Math.round(size / 2);\n },\n /**\r\n * 超出最大字节数截取\r\n * @param e 原始字符串\r\n * @param maxLength 最大字节数\r\n * @returns {string} 截取后的字符串\r\n */\n copyWritingInput(e, maxLength = 60) {\n let s = 0;\n e = JSON.parse(JSON.stringify(e));\n if (e == '') {\n return e;\n }\n let cheseReg = /[(\\u4e00-\\u9fa5)(\\u3002|\\uff1f|\\uff01|\\uff0c|\\u3001|\\uff1b|\\uff1a|\\u201c|\\u201d|\\u2018|\\u2019|\\uff08|\\uff09|\\u300a|\\u300b|\\u3010|\\u3011|\\u007e)]+$/;\n for (var i = 0; i < e.length; i++) {\n const code = e.charAt(i);\n if (\"\\n\" == code) {\n // 换行符不算入字节\n s += 0;\n } else if (/\\s/.test(code)) {\n s += 1;\n } else if (/^[\\u0000-\\u00ffA-Za-z1-9]+$/.test(code)) {\n s += 1;\n } else if (cheseReg.test(code)) {\n s += 2;\n } else {\n s += 0;\n }\n if (s > maxLength) {\n return e.substring(0, i);\n // return resultStr;\n }\n // resultStr += code\n }\n\n return e;\n },\n /**\r\n * 新的截取功能\r\n * @param e\r\n * @param maxLength\r\n */\n subinput(e, maxLength = 60) {\n let s = 0;\n e = JSON.parse(JSON.stringify(e));\n let cheseReg = /[(\\u4e00-\\u9fa5)(\\u3002|\\uff1f|\\uff01|\\uff0c|\\u3001|\\uff1b|\\uff1a|\\u201c|\\u201d|\\u2018|\\u2019|\\uff08|\\uff09|\\u300a|\\u300b|\\u3010|\\u3011|\\u007e)]+$/;\n for (var i = 0; i < e.length; i++) {\n const code = e.charAt(i);\n if (\"\\n\" == code) {\n // 换行符不算入字节\n s += 0;\n } else if (/\\s/.test(code)) {\n s += 1;\n } else if (/^[\\u0000-\\u00ffA-Za-z1-9]+$/.test(code)) {\n s += 1;\n } else if (cheseReg.test(code)) {\n s += 1;\n if (s >= maxLength) {\n return e.substring(0, i);\n } else {\n s += 1;\n }\n } else {\n s += 0;\n }\n if (s >= maxLength) {\n return e.substring(0, i + 1);\n }\n }\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (common);\n\n//# sourceURL=webpack://hello-world/./src/utils/common.js?"); /***/ }), /***/ "./src/utils/localStorage.js": /*!***********************************!*\ !*** ./src/utils/localStorage.js ***! \***********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clearAll: function() { return /* binding */ clearAll; },\n/* harmony export */ getStorage: function() { return /* binding */ getStorage; },\n/* harmony export */ removeItem: function() { return /* binding */ removeItem; },\n/* harmony export */ setStorage: function() { return /* binding */ setStorage; }\n/* harmony export */ });\n/**\r\n * set storage\r\n * @param key\r\n * @param value\r\n */\nfunction setStorage(key, value) {\n if (!window.localStorage) {\n throw new Error('该浏览器不支持localStorage');\n } else {\n if (typeof value === 'object') {\n if (key == \"brandId\" || key == \"accountName\" || key == \"accountNo\" || key == \"houseName\" || key == \"houseId\") {\n window.sessionStorage.setItem(key, window.JSON.stringify(value));\n } else {\n window.localStorage.setItem(key, window.JSON.stringify(value));\n }\n } else {\n if (key == \"brandId\" || key == \"accountName\" || key == \"accountNo\" || key == \"houseName\" || key == \"houseId\") {\n window.sessionStorage.setItem(key, value);\n } else {\n window.localStorage.setItem(key, value);\n }\n }\n }\n}\n/**\r\n * get storage\r\n * @param key\r\n */\nfunction getStorage(key) {\n if (!window.localStorage) {\n throw new Error('该浏览器不支持localStorage');\n } else {\n if (key == \"brandId\" || key == \"accountName\" || key == \"accountNo\" || key == \"houseName\" || key == \"houseId\") {\n return window.sessionStorage.getItem(key);\n } else {\n return window.localStorage.getItem(key);\n }\n }\n}\n/**\r\n * remove by key\r\n * @param key\r\n */\nfunction removeItem(key) {\n window.localStorage.removeItem(key);\n}\n\n// clear all storage\nfunction clearAll() {\n window.localStorage.clear();\n}\n\n//# sourceURL=webpack://hello-world/./src/utils/localStorage.js?"); /***/ }), /***/ "./src/utils/rem.js": /*!**************************!*\ !*** ./src/utils/rem.js ***! \**************************/ /***/ (function() { eval("(function () {\n function resize() {\n var baseFontSize = 1;\n var designWidth = 1440;\n var width = window.innerWidth;\n var currentFontSize = width / designWidth * baseFontSize;\n document.querySelector('html').style.fontSize = currentFontSize + 'px';\n }\n // 页面大小发生变化时\n window.onresize = function () {\n resize();\n };\n // 文档载入时监听修改文字大小\n document.addEventListener('DOMContentLoaded', resize);\n})();\n\n//# sourceURL=webpack://hello-world/./src/utils/rem.js?"); /***/ }), /***/ "./src/utils/resetMessage.js": /*!***********************************!*\ !*** ./src/utils/resetMessage.js ***! \***********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ message: function() { return /* binding */ message; }\n/* harmony export */ });\n/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! element-ui */ \"./node_modules/_element-ui@2.15.8@element-ui/lib/element-ui.common.js\");\n/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(element_ui__WEBPACK_IMPORTED_MODULE_0__);\n\nlet messageInstance = null;\nconst resetMessage = options => {\n if (messageInstance) {\n messageInstance.close();\n }\n messageInstance = (0,element_ui__WEBPACK_IMPORTED_MODULE_0__.Message)(options);\n};\n['error', 'success', 'info', 'warning'].forEach(type => {\n resetMessage[type] = options => {\n if (typeof options === 'string') {\n options = {\n message: options\n };\n }\n options.type = type;\n return resetMessage(options);\n };\n});\nconst message = resetMessage;\n\n//# sourceURL=webpack://hello-world/./src/utils/resetMessage.js?"); /***/ }), /***/ "./src/utils/util.js": /*!***************************!*\ !*** ./src/utils/util.js ***! \***************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/_core-js@3.31.1@core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n\nconst util = {\n setTitle: title => {\n document.title = title;\n (function (t) {\n document.title = t;\n var i = document.createElement('iframe');\n i.src = '/favicon.ico';\n i.style.display = 'none';\n i.onload = function () {\n setTimeout(function () {\n i.remove();\n }, 9);\n };\n document.body.appendChild(i);\n })(title);\n },\n reformParam(methodName, para) {\n var parameter = {};\n parameter['merchantid'] = '1';\n parameter['version'] = '1';\n parameter['sign_type'] = 'RSA';\n parameter['sign'] = '123';\n parameter['charset'] = 'UTF-8';\n parameter['method'] = methodName;\n var context = '';\n for (var key in para) {\n context += '&' + key + '=' + para[key];\n }\n parameter['context'] = context;\n return parameter;\n },\n /**\r\n *\r\n * @param opt\r\n * view:页面名称\r\n * action:操作,如点击:click\r\n * label:事件描述\r\n * value:资源id\r\n */\n trackEvent: opt => {\n // console.log('trackEvent')\n if (!opt) {\n return;\n }\n opt.view = opt.view || '';\n opt.action = opt.action || 'click';\n opt.label = opt.label || '';\n opt.value = opt.value || '';\n if (_czc && _czc.push) {\n _czc.push(['_trackEvent', opt.view, opt.action, opt.label, opt.value]);\n }\n },\n trackPageview: (pathTo, pathFrom) => {\n if (_czc && _czc.push) {\n _czc.push([\"_trackPageview\", pathTo, pathFrom]);\n }\n },\n accountUrl: 'skyforest.tencent.TencentController.signature',\n tokenUrl: 'skyforest.mine.MineController.login.v093',\n adviserListUrl: 'skyforest.dynatown.dynatownController.getDynatownList',\n chatUrl: 'skyforest.dynatown.dynatownController.connect',\n dateFormat(date, fmt) {\n let ret;\n const opt = {\n 'y+': date.getFullYear().toString(),\n // 年\n 'M+': (date.getMonth() + 1).toString(),\n // 月\n 'd+': date.getDate().toString(),\n // 日\n 'H+': date.getHours().toString(),\n // 时\n 'm+': date.getMinutes().toString(),\n // 分\n 's+': date.getSeconds().toString() // 秒\n // 有其他格式化字符需求可以继续添加,必须转化成字符串\n };\n\n for (let k in opt) {\n ret = new RegExp('(' + k + ')').exec(fmt);\n if (ret) {\n fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0'));\n }\n }\n return fmt;\n },\n formatDatetime(val, format) {\n const year = val.getFullYear();\n const month = val.getMonth() + 1;\n const day = val.getDate();\n const hour = val.getHours();\n const minute = val.getMinutes();\n const second = val.getSeconds();\n return year + '-' + (month > 9 ? month : '0' + month) + '-' + day + ' ' + hour + ':' + (minute > 9 ? minute : '0' + minute) + ':' + (second > 9 ? second : '0' + second);\n },\n formatDayTime(val) {\n const year = val.getFullYear();\n const month = val.getMonth() + 1;\n const day = val.getDate();\n const hour = val.getHours();\n const minute = val.getMinutes();\n const second = val.getSeconds();\n return year + '-' + (month > 9 ? month : '0' + month) + '-' + day + ' ' + hour + ':' + (minute > 9 ? minute : '0' + minute);\n },\n formatTodayTime(val) {\n const year = val.getFullYear();\n const month = val.getMonth() + 1;\n const day = val.getDate();\n const hour = val.getHours();\n const minute = val.getMinutes();\n if (month == new Date().getMonth() + 1 && day + 1 == new Date().getDate()) {\n return '昨天' + hour + ':' + (minute > 9 ? minute : '0' + minute);\n } else if (month == new Date().getMonth() + 1 && day == new Date().getDate()) {\n return hour + ':' + (minute > 9 ? minute : '0' + minute);\n } else {\n return year + '-' + (month > 9 ? month : '0' + month) + '-' + day + ' ' + hour + ':' + (minute > 9 ? minute : '0' + minute);\n }\n },\n /**\r\n * 计算天数\r\n * @param date1\r\n * @param date2\r\n * @returns {number}\r\n * @constructor\r\n */\n getNumberOfDays(date1, date2) {\n //获得天数\n if (!date1 || !date2) {\n return 0;\n }\n //date1:开始日期,date2结束日期\n var a1 = Date.parse(new Date(date1));\n var a2 = Date.parse(new Date(date2));\n var day = parseInt((a2 - a1) / (1000 * 60 * 60 * 24)) + 1; //核心:时间戳相减,然后除以天数\n return day;\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (util);\n\n//# sourceURL=webpack://hello-world/./src/utils/util.js?"); /***/ }), /***/ "./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=style&index=0&id=7ba5bd90&lang=css&": /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=style&index=0&id=7ba5bd90&lang=css& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/_css-loader@6.8.1@css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/_css-loader@6.8.1@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n#app {\\n\\tfont-family: Avenir, Helvetica, Arial, sans-serif;\\n\\t-webkit-font-smoothing: antialiased;\\n\\t-moz-osx-font-smoothing: grayscale;\\n\\t/* text-align: center;\\n\\tcolor: #2c3e50;\\n\\tmargin-top: 60px; */\\n}\\nbody {\\n\\tbackground: #181C28;\\n}\\n.el-tooltip__popper.is-light {\\n\\t-webkit-backdrop-filter: blur(10.36rem) !important;\\n\\t backdrop-filter: blur(10.36rem) !important;\\n\\tbackground-color: rgba(255, 255, 255, 0.4) !important;\\n\\tborder: none !important;\\n\\tcolor: #ffffff !important;\\n}\\n.el-tooltip__popper .popper__arrow,\\n.el-tooltip__popper .popper__arrow::after {\\n\\tborder-style: none !important;\\n}\\n.el-picker-panel__body .el-date-picker__header .el-picker-panel__icon-btn {\\n\\tcolor: #FFFFFF;\\n}\\n.el-picker-panel__body .el-date-picker__header .el-date-picker__header-label {\\n\\tcolor: #FFFFFF;\\n}\\n.el-picker-panel__body .el-picker-panel__content .el-date-table th {\\n\\tcolor: #FFFFFF;\\n}\\n.dropdown-view-menu {\\n\\tfont-size: 14px;\\n\\tcolor: var(--themeColor9);\\n\\t/* width: 336rem; */\\n\\tbox-sizing: border-box;\\n\\tpadding: 15rem !important;\\n\\tmargin-top: 3rem;\\n\\t-webkit-backdrop-filter: blur(60px);\\n\\t backdrop-filter: blur(60px);\\n\\tborder: none !important;\\n\\tbackground-color: rgba(255, 255, 255, 0.15) !important;\\n\\twhite-space: nowrap;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n}\\n.dropdown-view-menu .active {\\n\\tcolor: #CEF7D1;\\n}\\n.dropdown-view-text {\\n\\tfont-family: \\\"Verdana Bold\\\";\\n\\tfont-weight: 700;\\n\\ttext-decoration: underline;\\n\\tfont-size: 14px;\\n\\tcolor: #fff;\\n}\\n.select-julangview {\\n\\tdisplay: none;\\n}\\n.popper-class-qr {\\n\\tpadding: 0px !important;\\n}\\n.BMap_cpyCtrl {\\n\\tdisplay: none;\\n}\\n.anchorBL {\\n\\tdisplay: none;\\n}\\n.amap-logo img {\\n\\tdisplay: none;\\n}\\n.amap-copyright {\\n\\topacity: 0;\\n}\\n\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://hello-world/./src/App.vue?./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use%5B1%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use%5B2%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options"); /***/ }), /***/ "./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/components/mapComponent/mapComponent.vue?vue&type=style&index=0&id=68cc5822&lang=css&scoped=true&": /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/components/mapComponent/mapComponent.vue?vue&type=style&index=0&id=68cc5822&lang=css&scoped=true& ***! \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/_css-loader@6.8.1@css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/_css-loader@6.8.1@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_12_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_12_use_2_mapComponent_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! -!../../../node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!../../../node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./mapComponent.css */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./src/components/mapComponent/mapComponent.css\");\n// Imports\n\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_12_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_12_use_2_mapComponent_css__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://hello-world/./src/components/mapComponent/mapComponent.vue?./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use%5B1%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use%5B2%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options"); /***/ }), /***/ "./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./src/components/mapComponent/mapComponent.css": /*!*************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./src/components/mapComponent/mapComponent.css ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/_css-loader@6.8.1@css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/_css-loader@6.8.1@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#mapDiv{\\r\\n width: 100%;\\r\\n height: 100vh;\\r\\n background: #181C28;\\n}\\n.map {\\n position: relative; /* 作为子元素的相对定位元素 */\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n}\\n#labels {\\n position: absolute; /* 把Label定位在容器内 */\\n left: 0; /* 默认定位在左上角 */\\n top: 0;\\n color: white;\\n}\\n#labels>div {\\n position: absolute; /* 让我们的容器决定尺寸 */\\n left: 0; /* 默认定位在左上角 */\\n top: 0;\\n cursor: pointer; /* 当悬浮时,变为一个小手 */\\n font-size:12px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none; /* 不允许文字被选中 */\\r\\n white-space: nowrap;\\n text-shadow: \\n -1px -1px 0 #000,\\n 0 -1px 0 #000,\\n 1px -1px 0 #000,\\n 1px 0 0 #000,\\n 1px 1px 0 #000,\\n 0 1px 0 #000,\\n -1px 1px 0 #000,\\n -1px 0 0 #000;\\n}\\n#labels>div:hover {\\n color: red;\\n}\\ncanvas:focus {\\n outline:none;\\n}\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://hello-world/./src/components/mapComponent/mapComponent.css?./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use%5B1%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use%5B2%5D"); /***/ }), /***/ "./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-14.use[1]!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-14.use[2]!./src/assets/common.css": /*!*********************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-14.use[1]!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-14.use[2]!./src/assets/common.css ***! \*********************************************************************************************************************************************************************************************************/ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/_css-loader@6.8.1@css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/_css-loader@6.8.1@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"* {\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\nbody {\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -o-user-select: none;\\r\\n user-select: none;\\r\\n}\\r\\n\\r\\ndiv {\\r\\n box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.rows {\\r\\n display: flex;\\r\\n flex-direction: row;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\n.rows-between {\\r\\n justify-content: space-between;\\r\\n}\\r\\n\\r\\n.columns {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n align-items: center;\\r\\n justify-content: space-between;\\r\\n}\\r\\n\\r\\n.eslipe {\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n text-overflow: ellipsis;\\r\\n}\\r\\n\\r\\n.flex-start {\\r\\n align-items: flex-start;\\r\\n}\\r\\n\\r\\n.flex-end {\\r\\n justify-content: flex-end;\\r\\n}\\r\\n\\r\\n.justify-center {\\r\\n justify-content: center;\\r\\n}\\r\\n\\r\\n.justify-content-start {\\r\\n justify-content: flex-start;\\r\\n}\\r\\n\\r\\n.flex-1 {\\r\\n flex: 1;\\r\\n}\\r\\n\\r\\n.grid-view {\\r\\n display: grid;\\r\\n grid-template-columns: repeat(2, 1fr);\\r\\n /* grid-row-gap: 20rem; */\\r\\n grid-gap: 20rem 80rem;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar {\\r\\n width: 0;\\r\\n height: 0;\\r\\n color: transparent;\\r\\n}\\r\\n\\r\\n.el-checkbox__inner {\\r\\n border-color: #EF863F;\\r\\n}\\r\\n\\r\\n.el-checkbox__inner:hover {\\r\\n border-color: #EF863F;\\r\\n}\\r\\n\\r\\n.pointer {\\r\\n cursor: pointer\\r\\n}\\r\\n\\r\\n\\r\\n/* 项目提示信息 */\\r\\n\\r\\n.infoWindowHtml {\\r\\n z-index: 1000!important;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.project-content {\\r\\n position: relative;\\r\\n /* float: left; */\\r\\n /* width: auto; */\\r\\n width: 300rem;\\r\\n padding: 15rem 20rem;\\r\\n box-sizing: border-box;\\r\\n /* background: linear-gradient(90deg,#000000 1%, rgba(0,0,0,0.00));\\r\\n\\tbackdrop-filter: blur(30.24rem); */\\r\\n padding-bottom: 4rem;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.filter-view {\\r\\n position: absolute;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n ;\\r\\n left: 0rem;\\r\\n top: 0rem;\\r\\n filter: blur(30rem);\\r\\n background: linear-gradient(90deg, #000000 1%, rgba(0, 0, 0, 0.00));\\r\\n border-radius: 12px;\\r\\n -webkit-backdrop-filter: blur(10.02px);\\r\\n backdrop-filter: blur(10.02px);\\r\\n z-index: -1;\\r\\n}\\r\\n\\r\\n.project-head {\\r\\n width: 40rem;\\r\\n height: 40rem;\\r\\n line-height: 40rem;\\r\\n background: rgba(0, 0, 0, 0.00);\\r\\n border: 1rem solid rgba(255, 255, 255, 0.33);\\r\\n border-radius: 50%;\\r\\n margin-right: 8rem;\\r\\n font-size: 18px;\\r\\n font-family: Verdana, Verdana-Bold;\\r\\n font-weight: 700;\\r\\n text-align: center;\\r\\n color: #ffffff;\\r\\n -o-object-fit: cover;\\r\\n object-fit: cover;\\r\\n}\\r\\n\\r\\n.project-name {\\r\\n height: 28rem;\\r\\n line-height: 28rem;\\r\\n font-size: 20px;\\r\\n font-family: Verdana, Verdana-Bold;\\r\\n font-weight: 700;\\r\\n text-align: left;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.project-address {\\r\\n height: 17rem;\\r\\n line-height: 17rem;\\r\\n opacity: 0.5;\\r\\n font-size: 12px;\\r\\n font-family: Verdana, Verdana-Bold;\\r\\n font-weight: 400;\\r\\n text-align: left;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.project-tips {\\r\\n width: 40rem;\\r\\n height: 22rem;\\r\\n background: rgba(255, 255, 255, 0.2);\\r\\n border-radius: 4rem;\\r\\n font-size: 14px;\\r\\n font-family: FontName, FontName-Regular;\\r\\n font-weight: 400;\\r\\n text-align: center;\\r\\n color: #ffffff;\\r\\n line-height: 22rem;\\r\\n font-style: italic;\\r\\n margin-left: 10rem;\\r\\n}\\r\\n\\r\\n.project-area {\\r\\n margin-top: 6rem;\\r\\n height: 20rem;\\r\\n line-height: 20rem;\\r\\n font-size: 14px;\\r\\n font-family: Verdana, Verdana-Bold;\\r\\n font-weight: 700;\\r\\n text-align: left;\\r\\n color: #ffffff;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.project-footer {\\r\\n position: relative;\\r\\n width: 100%;\\r\\n height: 10rem;\\r\\n margin-top: 10rem;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.project-footer-top {\\r\\n width: 100%;\\r\\n height: 4rem;\\r\\n background: linear-gradient(90deg, var(--themeColor4) 1%, transparent);\\r\\n}\\r\\n\\r\\n.project-footer-left {\\r\\n position: absolute;\\r\\n top: 0rem;\\r\\n border-width: 10rem;\\r\\n border-top-color: transparent;\\r\\n border-right-color: transparent;\\r\\n border-bottom-color: transparent;\\r\\n border-left-color: var(--themeColor4);\\r\\n border-style: solid;\\r\\n border-left-width: 5rem;\\r\\n border-top-width: 0rem;\\r\\n}\\r\\n\\r\\n.polyon-content {\\r\\n float: left;\\r\\n width: auto;\\r\\n font-size: 14px;\\r\\n white-space: nowrap;\\r\\n font-family: Verdana, Verdana-Bold;\\r\\n font-weight: 700;\\r\\n text-align: center;\\r\\n color: var(--themeColor1);\\r\\n text-shadow: 0rem 0rem #000000;\\r\\n}\\r\\n\\r\\n.competitionProjectHide {\\r\\n display: none !important;\\r\\n}\\r\\n\\r\\n.competitionProjectShow {\\r\\n display: flex;\\r\\n}\\r\\n\\r\\n.infoWindowUnSelected .project-head {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.infoWindowUnSelected .project-name {\\r\\n height: 20rem;\\r\\n line-height: 20rem;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.infoWindowSelected .project-tips,\\r\\n.infoWindowUnSelected .project-tips {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.infoWindowHtml.infoWindowSelected {\\r\\n z-index: 1001!important;\\r\\n}\\r\\n\\r\\n.infoWindowUnSelected .project-address {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.infoWindowUnSelected .project-area {\\r\\n height: 17rem;\\r\\n line-height: 17rem;\\r\\n opacity: 0.6;\\r\\n font-size: 12px;\\r\\n margin-top: 0rem;\\r\\n}\\r\\n\\r\\n.infoWindowUnSelected .project-footer {\\r\\n margin-top: 8rem;\\r\\n}\\r\\n\\r\\n.competitionUnSelected .project-name {\\r\\n height: 20rem;\\r\\n line-height: 20rem;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.competitionUnSelected .project-area {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n\\r\\n/* 项目竞品状态 */\\r\\n\\r\\n.competitionProject .project-name {\\r\\n height: 20rem;\\r\\n line-height: 20rem;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.competitionProject .project-head,\\r\\n.competitionProject .project-area,\\r\\n.competitionProject .project-address {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n\\r\\n/* 圆柱样式 */\\r\\n\\r\\n.cricleColumn-view {\\r\\n position: relative;\\r\\n width: 90rem;\\r\\n height: 152rem;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.cricleColumn-img {\\r\\n width: 90rem;\\r\\n height: 152rem;\\r\\n}\\r\\n\\r\\n.cricleColumn-text {\\r\\n position: absolute;\\r\\n bottom: 0rem;\\r\\n left: 0rem;\\r\\n width: 100%;\\r\\n height: 37rem;\\r\\n font-size: 14px;\\r\\n font-family: DIN Alternate, DIN Alternate-Bold;\\r\\n font-weight: 700;\\r\\n text-align: center;\\r\\n color: #ffdf80;\\r\\n line-height: 14rem;\\r\\n}\\r\\n\\r\\n.cricleColumn1-view {\\r\\n position: relative;\\r\\n width: 82rem;\\r\\n height: 152rem;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.cricleColumn1-img {\\r\\n width: 82rem;\\r\\n height: 152rem;\\r\\n}\\r\\n\\r\\n.cricleColumn2-view {\\r\\n width: 60px;\\r\\n height: 60px;\\r\\n}\\r\\n\\r\\n.cricleColumn2-img {\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n.cricleColumn1-text {\\r\\n position: absolute;\\r\\n bottom: 14rem;\\r\\n left: 0rem;\\r\\n width: 100%;\\r\\n font-size: 14px;\\r\\n font-family: DIN Alternate, DIN Alternate-Bold;\\r\\n font-weight: 700;\\r\\n text-align: center;\\r\\n color: #fff;\\r\\n line-height: 20rem;\\r\\n}\\r\\n\\r\\n.project-plate2{\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n width: 40px;\\r\\n height: 58px;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\n\\r\\n.plate-point-icon2{\\r\\n width: 10rem;\\r\\n height: 10rem;\\r\\n min-height: 10rem;\\r\\n background: #FFDB89;\\r\\n border-radius: 50%;\\r\\n margin-top: 15rem;\\r\\n}\\r\\n\\r\\n.plate-point-name-img2{\\r\\n width: 35px;\\r\\n height: 35px;\\r\\n border-radius: 50%;\\r\\n transform: rotate(45deg);\\r\\n}\\r\\n\\r\\n.plate-point-name2{\\r\\n background: #FFDB89;\\r\\n width: 40px;\\r\\n min-width: 40px;\\r\\n height: 40px;\\r\\n min-height: 40px;\\r\\n border-top-left-radius: 50%;\\r\\n border-top-right-radius: 50%;\\r\\n border-bottom-right-radius: 50%;\\r\\n border-bottom-left-radius: 3px;\\r\\n transform: rotate(-45deg);\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n}\\r\\n.plate-point-name-txt2 {\\r\\n font-size: 18px;\\r\\n font-family: Verdana, Verdana-Bold;\\r\\n text-align: center;\\r\\n color: #ffffff;\\r\\n transform: rotate(45deg);\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n width: 40px;\\r\\n}\\r\\n\\r\\n.el-picker-panel__content .el-date-table td.disabled div{\\r\\n background: transparent;\\r\\n}\\r\\n\\r\\n.el-date-table td.current:not(.disabled) span{\\r\\n background-color: var(--themeColor1);\\r\\n}\\r\\n.el-date-table td.today span{\\r\\n color: var(--themeColor1);\\r\\n}\\r\\n.el-date-table td:hover{\\r\\n color: var(--themeColor1);\\r\\n}\\r\\n\\r\\n.project-plate {\\r\\n display: flex;\\r\\n flex-direction: row;\\r\\n width: 265px;\\r\\n height: 58px;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\n.plate-point-icon {\\r\\n width: 10rem;\\r\\n height: 10rem;\\r\\n background: #fede7f;\\r\\n border-radius: 50%;\\r\\n margin-left: 20rem;\\r\\n}\\r\\n\\r\\n.plate-point-name {\\r\\n font-size: 16px;\\r\\n font-family: Verdana, Verdana-Bold;\\r\\n font-weight: 700;\\r\\n text-align: left;\\r\\n color: #ffffff;\\r\\n margin-left: 10rem;\\r\\n background: #181C28;\\r\\n border-radius: 6rem;\\r\\n padding: 6rem 10rem;\\r\\n}\\r\\n\\r\\n.plate-point-name-img {\\r\\n width: 35px;\\r\\n height: 35px;\\r\\n border-radius: 50%;\\r\\n transform: rotate(45deg);\\r\\n}\\r\\n\\r\\n.plate-point-name-txt {\\r\\n font-size: 18px;\\r\\n font-family: Verdana, Verdana-Bold;\\r\\n font-weight: 700;\\r\\n text-align: center;\\r\\n color: #ffffff;\\r\\n transform: rotate(45deg);\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n width: 40px;\\r\\n}\\r\\n\\r\\n.cricleColumn2-text {\\r\\n position: absolute;\\r\\n left: 50%;\\r\\n top: 50%;\\r\\n transform: translate(-50%, -50%);\\r\\n width: 100%;\\r\\n font-size: 12px;\\r\\n font-family: DIN Alternate, DIN Alternate-Bold;\\r\\n text-align: center;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.poi-view {\\r\\n position: relative;\\r\\n width: -moz-max-content;\\r\\n width: max-content;\\r\\n height: 30rem;\\r\\n background: rgba(255, 255, 255, 0.2);\\r\\n border-radius: 15rem;\\r\\n -webkit-backdrop-filter: blur(30rem);\\r\\n backdrop-filter: blur(30rem);\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.poi-view-radius {\\r\\n width: 24rem;\\r\\n height: 24rem;\\r\\n line-height: 22rem;\\r\\n background: rgba(118, 188, 255, 0.50);\\r\\n border: 1px solid #76bcff;\\r\\n border-radius: 50%;\\r\\n font-size: 12px;\\r\\n font-family: Verdana, Verdana-Regular;\\r\\n font-weight: 400;\\r\\n text-align: center;\\r\\n color: #ffffff;\\r\\n margin-left: 4rem;\\r\\n}\\r\\n\\r\\n.poi-view-text {\\r\\n font-size: 14px;\\r\\n font-family: Verdana, Verdana-Regular;\\r\\n font-weight: 400;\\r\\n text-align: left;\\r\\n color: #ffffff;\\r\\n margin-left: 5rem;\\r\\n margin-right: 10rem;\\r\\n}\\r\\n\\r\\n.poi-point {\\r\\n border-radius: 50%;\\r\\n width: 10rem;\\r\\n height: 10rem;\\r\\n background: #ffad5c;\\r\\n border: 1rem solid #fff;\\r\\n}\\r\\n\\r\\n.poi-view-poi {\\r\\n position: relative;\\r\\n width: -moz-max-content;\\r\\n width: max-content;\\r\\n background: rgba(255, 255, 255, 0.2);\\r\\n border-radius: 5rem;\\r\\n -webkit-backdrop-filter: blur(30rem);\\r\\n backdrop-filter: blur(30rem);\\r\\n cursor: pointer;\\r\\n padding: 10rem;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\n.poi-view-poi-num {\\r\\n width: 24rem;\\r\\n min-width: 24rem;\\r\\n height: 24rem;\\r\\n background: var(--themeColor2_2);\\r\\n border: 1px solid var(--themeColor2);\\r\\n font-size: 12px;\\r\\n text-align: center;\\r\\n color: #fff;\\r\\n line-height: 24rem;\\r\\n border-radius: 50%;\\r\\n margin-right: 10rem;\\r\\n}\\r\\n\\r\\n.poi-view-info {\\r\\n font-size: 14px;\\r\\n font-family: Verdana, Verdana-Regular;\\r\\n font-weight: 400;\\r\\n text-align: left;\\r\\n color: #ffffff;\\r\\n margin-left: 5rem;\\r\\n margin-right: 10rem;\\r\\n}\\r\\n\\r\\n.poi_sanjiao {\\r\\n position: absolute;\\r\\n bottom: -12rem;\\r\\n width: 0rem;\\r\\n height: 0;\\r\\n border: 6rem solid;\\r\\n border-color: rgba(255, 255, 255, 0.2) transparent transparent;\\r\\n left: calc((100% - 12rem) / 2);\\r\\n\\r\\n}\\r\\n\\r\\n.poiUnSelected .poi-view {\\r\\n background: unset;\\r\\n -webkit-backdrop-filter: unset;\\r\\n backdrop-filter: unset;\\r\\n}\\r\\n\\r\\n.poiUnSelected .poi-view-text {\\r\\n opacity: 0;\\r\\n}\\r\\n\\r\\n.trafficPoint-view {\\r\\n width: 24rem;\\r\\n height: 24rem;\\r\\n background: rgba(255, 255, 255, 0.00);\\r\\n border: 1px solid var(--themeColor2);\\r\\n border-radius: 50%;\\r\\n font-size: 12px;\\r\\n font-family: Verdana, Verdana-Regular;\\r\\n font-weight: 400;\\r\\n color: var(--themeColor2);\\r\\n text-align: center;\\r\\n line-height: 24rem;\\r\\n}\\r\\n\\r\\n\\r\\n/* 预览视图里面的拖拽样式 */\\r\\n\\r\\n.custom-content-marker {\\r\\n position: relative;\\r\\n width: 206px;\\r\\n height: 206px;\\r\\n /*border-radius: 50%;*/\\r\\n /*border: var(--themeColor3) solid 1px;*/\\r\\n /*background: var(--themeColor3_2);*/\\r\\n box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.custom-content-img {\\r\\n width: 32px;\\r\\n height: 32px;\\r\\n}\\r\\n\\r\\n.project-view {\\r\\n position: absolute;\\r\\n right: 0rem;\\r\\n top: 0rem;\\r\\n width: 690rem;\\r\\n height: calc(100% - 50rem);\\r\\n padding: 20rem 20rem 20rem 0;\\r\\n transition: 0.3s;\\r\\n transform: translateX(0rem);\\r\\n z-index: 11 !important;\\r\\n}\\r\\n\\r\\n.project-view-content {\\r\\n min-height: 240rem;\\r\\n position: relative;\\r\\n width: 100%;\\r\\n height: calc(100% - 100rem);\\r\\n border-radius: 10rem;\\r\\n padding: 20rem;\\r\\n -webkit-backdrop-filter: blur(10.36rem);\\r\\n backdrop-filter: blur(10.36rem);\\r\\n color: azure;\\r\\n margin-top: 10rem;\\r\\n}\\r\\n\\r\\n.project-view-content-scroll {\\r\\n overflow: auto;\\r\\n}\\r\\n\\r\\n.show-flex1 {\\r\\n display: flex;\\r\\n}\\r\\n\\r\\n.align-center {\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\n.column {\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n.content-center {\\r\\n justify-content: center;\\r\\n}\\r\\n\\r\\n.content-between {\\r\\n justify-content: space-between;\\r\\n}\\r\\n\\r\\n.content-around {\\r\\n justify-content: space-around;\\r\\n}\\r\\n\\r\\n.content-start {\\r\\n justify-content: flex-start;\\r\\n}\\r\\n.content-end {\\r\\n justify-content: flex-end;\\r\\n}\\r\\n\\r\\n.cursor-pointer {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.disabled {\\r\\n cursor: not-allowed;\\r\\n opacity: 0.5;\\r\\n}\\r\\n\\r\\n.el-select-dropdown {\\r\\n border-radius: 10px;\\r\\n -webkit-backdrop-filter: blur(30px);\\r\\n backdrop-filter: blur(30px);\\r\\n background-color: rgba(149, 149, 149, 0.9);\\r\\n border: none;\\r\\n /*color: #fff;*/\\r\\n}\\r\\n\\r\\n.el-select-dropdown__item {\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.el-select-dropdown__item.hover,\\r\\n.el-select-dropdown__item:hover {\\r\\n background-color: rgba(255, 255, 255, 0.1);\\r\\n}\\r\\n\\r\\n.el-select-dropdown__item.selected {\\r\\n color: var(--themeColor11);\\r\\n font-weight: 700;\\r\\n}\\r\\n\\r\\n.el-picker-panel {\\r\\n border-radius: 10px;\\r\\n -webkit-backdrop-filter: blur(30px);\\r\\n backdrop-filter: blur(30px);\\r\\n background-color: rgba(149, 149, 149, 0.5);\\r\\n border: none;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.time-select-item {\\r\\n color: #fff;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.time-select-item:hover {\\r\\n background-color: rgba(255, 255, 255, 0.1) !important;\\r\\n}\\r\\n\\r\\n.time-select-item.selected {\\r\\n color: var(--themeColor1) !important;\\r\\n font-weight: 700;\\r\\n}\\r\\n.amap-ui-pointsimplifier-container .overlay-title{\\r\\n width: -moz-max-content;\\r\\n width: max-content;\\r\\n background-color: rgba(255, 255, 255, 0.2) !important;\\r\\n border-radius: 5rem !important;\\r\\n -webkit-backdrop-filter: blur(30rem);\\r\\n backdrop-filter: blur(30rem);\\r\\n border:none !important;\\r\\n font-size: 14px !important;\\r\\n font-family: Verdana, Verdana-Regular;\\r\\n font-weight: 400;\\r\\n text-align: left;\\r\\n color: #ffffff !important;\\r\\n padding: 10rem !important;\\r\\n }\\r\\n.amap-ui-pointsimplifier-container .overlay-title.top:after{\\r\\n border-top-color:rgba(255, 255, 255, 0) !important;\\r\\n\\r\\n\\r\\n}\\r\\n.amap-ui-pointsimplifier-container .overlay-title.top:before{\\r\\n border-top-color:rgba(255, 255, 255, 0.2) !important;\\r\\n\\r\\n}\\r\\n.amap-ui-pointsimplifier-container .overlay-title.top {\\r\\n transform: translate(-50%,-115%) !important;\\r\\n}\\r\\n\\r\\n.popper-class-11{\\r\\n /*background-color: rgb(121, 121, 121);*/\\r\\n background-color:rgba(255,255,255,0.2);\\r\\n border: none;\\r\\n color:rgba(255,255,255,0.9);\\r\\n -webkit-backdrop-filter: blur(12px);\\r\\n backdrop-filter: blur(12px);\\r\\n min-width: auto;\\r\\n}\\r\\n\\r\\n.popper-class-12{\\r\\n /*background-color: rgb(121, 121, 121);*/\\r\\n background-color:rgba(255,255,255,0.4);\\r\\n border: none;\\r\\n color:rgba(255,255,255,0.8);\\r\\n -webkit-backdrop-filter: blur(30px);\\r\\n backdrop-filter: blur(30px);\\r\\n\\r\\n}\\r\\n\\r\\n.popper-class-12.el-popper .popper__arrow,.popper-class-11.el-popper .popper__arrow {\\r\\n display: block !important;\\r\\n border-top-color: rgba(255,255,255,0.41)\\r\\n}\\r\\n\\r\\n.popper-class-12 .popper__arrow::after {\\r\\n bottom: 1px;\\r\\n margin-left: -6px;\\r\\n border-top-color: rgba(87, 87, 87, 0.41) !important;\\r\\n border-bottom-width: 0;\\r\\n}\\r\\n\\r\\n.popper-class-11 .popper__arrow::after {\\r\\n bottom: 1px;\\r\\n margin-left: -6px;\\r\\n border-top-color: rgba(87, 87, 87, 0.41) !important;\\r\\n border-bottom-width: 0;\\r\\n}\\r\\n\\r\\n.popper-class-12 .el-input__inner,.popper-class-12 .el-input__inner,\\r\\n.popper-class-11 .el-input__inner,.popper-class-11 .el-input__inner{\\r\\n background-color: transparent;\\r\\n border: 1px solid rgba(255,255,255,0.3);\\r\\n color: rgba(255,255,255,0.8);\\r\\n height: 32px;\\r\\n line-height: 32px;\\r\\n padding-left: 20px;\\r\\n padding-right: 35px;\\r\\n}\\r\\n\\r\\n.popper-class-11 .el-input__prefix,.popper-class-11 .el-input__suffix{\\r\\n top: 9px;\\r\\n}\\r\\n\\r\\n.theme1 .el-radio__input.is-checked .el-radio__inner {\\r\\n border-color: var(--themeColor11);\\r\\n background: transparent;\\r\\n}\\r\\n.theme1 .el-radio__inner::after {\\r\\n width: 8px;\\r\\n height: 8px;\\r\\n background-color: var(--themeColor11);\\r\\n}\\r\\n.theme1 .el-radio__inner:hover {\\r\\n border-color: var(--themeColor11);\\r\\n}\\r\\n.theme1 .el-radio__inner {\\r\\n border: 1px solid #cbc0c0;\\r\\n border-radius: 100%;\\r\\n width: 14px;\\r\\n height: 14px;\\r\\n background-color: transparent;\\r\\n cursor: pointer;\\r\\n box-sizing: border-box;\\r\\n}\\r\\n.theme1 .el-radio__input.is-checked+.el-radio__label {\\r\\n color: rgba(255,255,255,0.7);\\r\\n}\\r\\n.theme1 .el-radio{\\r\\n font-family: \\\"Verdana\\\";\\r\\n font-weight: 400;\\r\\n font-size: 14px;\\r\\n text-align: left;\\r\\n color: rgba(255,255,255,0.7);\\r\\n}\\r\\n.el-input__inner:focus.el-focus{\\r\\n border-color: var(--themeColor11);\\r\\n}\\r\\n.popper-class-12 .danwei{\\r\\n color: rgba(255,255,255,0.8);\\r\\n height: 32px;\\r\\n line-height: 32px;\\r\\n}\\r\\n\\r\\n.popper-class-12 .el-slider__runway{\\r\\n height: 4px;\\r\\n background-color: rgba(255,255,255,0.4);\\r\\n}\\r\\n\\r\\n.popper-class-12 .el-slider__bar{\\r\\n height: 4px;\\r\\n background-color: rgb(251, 231, 166);\\r\\n}\\r\\n\\r\\n.popper-class-12 .el-slider__button {\\r\\n width: 12px;\\r\\n height: 12px;\\r\\n border: none;\\r\\n}\\r\\n\\r\\n.align-start{\\r\\n align-items: flex-start;\\r\\n}\\r\\n\\r\\n.align-end{\\r\\n align-items: flex-end;\\r\\n}\\r\\n\\r\\n\\r\\n.el-date-table td.end-date span, .el-date-table td.start-date span {\\r\\n background-color: var(--themeColor11) !important;\\r\\n color: #6E6F72;\\r\\n}\\r\\n\\r\\n.el-date-table td.in-range div, .el-date-table td.in-range div:hover, .el-date-table.is-week-mode .el-date-table__row.current div, .el-date-table.is-week-mode .el-date-table__row:hover div {\\r\\n background-color: rgba(242, 246, 252, 0.2);\\r\\n}\\r\\n\\r\\n.el-date-table td.today span {\\r\\n color: var(--themeColor11);\\r\\n}\\r\\n\\r\\n.el-date-table td:hover {\\r\\n color: var(--themeColor11);\\r\\n}\\r\\n\\r\\n.el-date-table td.available:hover {\\r\\n color: var(--themeColor11);\\r\\n}\\r\\n\\r\\n.el-picker-panel__icon-btn{\\r\\n color: var(--themeColor9);\\r\\n}\\r\\n\\r\\n.el-date-range-picker__content.is-left {\\r\\n border-right: 1px solid var(--themeColor9_1);\\r\\n}\\r\\n\\r\\n.el-date-table th {\\r\\n border-bottom: 1px solid var(--themeColor9_1);\\r\\n}\\r\\n.pp-planstatus{\\r\\n margin-left: -15px;\\r\\n\\r\\n}\\r\\n.pp-planstatus .el-select-dropdown__item{\\r\\n font-size: 13px;\\r\\n padding: 0 15px;\\r\\n}\\r\\n\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://hello-world/./src/assets/common.css?./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-14.use%5B1%5D!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-14.use%5B2%5D"); /***/ }), /***/ "./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-14.use[1]!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-14.use[2]!./src/assets/font/iconfont.css": /*!****************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-14.use[1]!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-14.use[2]!./src/assets/font/iconfont.css ***! \****************************************************************************************************************************************************************************************************************/ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/_css-loader@6.8.1@css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/_css-loader@6.8.1@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/_css-loader@6.8.1@css-loader/dist/runtime/getUrl.js */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/runtime/getUrl.js\");\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_8_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__);\n// Imports\n\n\n\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! iconfont.woff2?t=1678862353261 */ \"./src/assets/font/iconfont.woff2?t=1678862353261\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __webpack_require__(/*! iconfont.woff?t=1678862353261 */ \"./src/assets/font/iconfont.woff?t=1678862353261\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(/* asset import */ __webpack_require__(/*! iconfont.ttf?t=1678862353261 */ \"./src/assets/font/iconfont.ttf?t=1678862353261\"), __webpack_require__.b);\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_6_8_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_css_loader_6_8_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_css_loader_6_8_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@font-face {\\r\\n font-family: \\\"iconfont\\\"; /* Project id 2438458 */\\r\\n src: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") format('woff2'),\\r\\n url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") format('woff'),\\r\\n url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format('truetype');\\r\\n}\\r\\n\\r\\n.iconfont {\\r\\n font-family: \\\"iconfont\\\" !important;\\r\\n font-size: 16px;\\r\\n font-style: normal;\\r\\n -webkit-font-smoothing: antialiased;\\r\\n -moz-osx-font-smoothing: grayscale;\\r\\n}\\r\\n\\r\\n.icon-wenhao1:before {\\r\\n content: \\\"\\\\e6f5\\\";\\r\\n}\\r\\n\\r\\n.icon-shangchuan:before {\\r\\n content: \\\"\\\\e6f4\\\";\\r\\n}\\r\\n\\r\\n.icon-xiazai:before {\\r\\n content: \\\"\\\\e6f3\\\";\\r\\n}\\r\\n\\r\\n.icon-QQ:before {\\r\\n content: \\\"\\\\e6f1\\\";\\r\\n}\\r\\n\\r\\n.icon-weixin1:before {\\r\\n content: \\\"\\\\e6f2\\\";\\r\\n}\\r\\n\\r\\n.icon-zhuanhuafenxi:before {\\r\\n content: \\\"\\\\e6ee\\\";\\r\\n}\\r\\n\\r\\n.icon-sucaifenxi:before {\\r\\n content: \\\"\\\\e6ef\\\";\\r\\n}\\r\\n\\r\\n.icon-quanjufenxi:before {\\r\\n content: \\\"\\\\e6f0\\\";\\r\\n}\\r\\n\\r\\n.icon-iconfontgerenzhongxin:before {\\r\\n content: \\\"\\\\e6ed\\\";\\r\\n}\\r\\n\\r\\n.icon-shuaxin:before {\\r\\n content: \\\"\\\\ec08\\\";\\r\\n}\\r\\n\\r\\n.icon-weibiaoti-2:before {\\r\\n content: \\\"\\\\e6ec\\\";\\r\\n}\\r\\n\\r\\n.icon-fuzhi1:before {\\r\\n content: \\\"\\\\e6ea\\\";\\r\\n}\\r\\n\\r\\n.icon-sousuo1:before {\\r\\n content: \\\"\\\\e6eb\\\";\\r\\n}\\r\\n\\r\\n.icon-tianyanpingtai:before {\\r\\n content: \\\"\\\\e6e7\\\";\\r\\n}\\r\\n\\r\\n.icon-ziyouzhanghao:before {\\r\\n content: \\\"\\\\e6e8\\\";\\r\\n}\\r\\n\\r\\n.icon-bianji-:before {\\r\\n content: \\\"\\\\e6e6\\\";\\r\\n}\\r\\n\\r\\n.icon-tongpingdaikan:before {\\r\\n content: \\\"\\\\e6e5\\\";\\r\\n}\\r\\n\\r\\n.icon-yuyue:before {\\r\\n content: \\\"\\\\e6e4\\\";\\r\\n}\\r\\n\\r\\n.icon-back:before {\\r\\n content: \\\"\\\\e6e2\\\";\\r\\n}\\r\\n\\r\\n.icon-yidongbiaoge:before {\\r\\n content: \\\"\\\\e6e3\\\";\\r\\n}\\r\\n\\r\\n.icon-zhankai1:before {\\r\\n content: \\\"\\\\e6e1\\\";\\r\\n}\\r\\n\\r\\n.icon-ditu:before {\\r\\n content: \\\"\\\\e6db\\\";\\r\\n}\\r\\n\\r\\n.icon-piliangcaozuo:before {\\r\\n content: \\\"\\\\e6dc\\\";\\r\\n}\\r\\n\\r\\n.icon-piliangtianjia:before {\\r\\n content: \\\"\\\\e6dd\\\";\\r\\n}\\r\\n\\r\\n.icon-piliangbianji:before {\\r\\n content: \\\"\\\\e6de\\\";\\r\\n}\\r\\n\\r\\n.icon-shangchuanzhong:before {\\r\\n content: \\\"\\\\e6df\\\";\\r\\n}\\r\\n\\r\\n.icon-shanchu:before {\\r\\n content: \\\"\\\\e6e0\\\";\\r\\n}\\r\\n\\r\\n.icon-gou:before {\\r\\n content: \\\"\\\\e6da\\\";\\r\\n}\\r\\n\\r\\n.icon-VR1:before {\\r\\n content: \\\"\\\\e6d9\\\";\\r\\n}\\r\\n\\r\\n.icon-yinle:before {\\r\\n content: \\\"\\\\e6d5\\\";\\r\\n}\\r\\n\\r\\n.icon-zhangpeng2:before {\\r\\n content: \\\"\\\\e6d6\\\";\\r\\n}\\r\\n\\r\\n.icon-danjiangongyu:before {\\r\\n content: \\\"\\\\e6d7\\\";\\r\\n}\\r\\n\\r\\n.icon-huodong:before {\\r\\n content: \\\"\\\\e6d8\\\";\\r\\n}\\r\\n\\r\\n.icon-a-lujing31616:before {\\r\\n content: \\\"\\\\e6d4\\\";\\r\\n}\\r\\n\\r\\n.icon-shipintianchong:before {\\r\\n content: \\\"\\\\e6d2\\\";\\r\\n}\\r\\n\\r\\n.icon-vrbofangqi:before {\\r\\n content: \\\"\\\\e87a\\\";\\r\\n}\\r\\n\\r\\n.icon-shouye1:before {\\r\\n content: \\\"\\\\e6d3\\\";\\r\\n}\\r\\n\\r\\n.icon-hangzourenwu:before {\\r\\n content: \\\"\\\\e738\\\";\\r\\n}\\r\\n\\r\\n.icon-jihuaxinxi:before {\\r\\n content: \\\"\\\\e6c0\\\";\\r\\n}\\r\\n\\r\\n.icon-chuangyilinggan:before {\\r\\n content: \\\"\\\\e6d0\\\";\\r\\n}\\r\\n\\r\\n.icon-daoruyusuan:before {\\r\\n content: \\\"\\\\e6d1\\\";\\r\\n}\\r\\n\\r\\n.icon-shouji1:before {\\r\\n content: \\\"\\\\e8b9\\\";\\r\\n}\\r\\n\\r\\n.icon-smiling:before {\\r\\n content: \\\"\\\\e6b9\\\";\\r\\n}\\r\\n\\r\\n.icon-arrow2:before {\\r\\n content: \\\"\\\\e6b3\\\";\\r\\n}\\r\\n\\r\\n.icon-cancel1:before {\\r\\n content: \\\"\\\\e6b4\\\";\\r\\n}\\r\\n\\r\\n.icon-arrow1:before {\\r\\n content: \\\"\\\\e6b5\\\";\\r\\n}\\r\\n\\r\\n.icon-Hook-1:before {\\r\\n content: \\\"\\\\e6b6\\\";\\r\\n}\\r\\n\\r\\n.icon-Collection:before {\\r\\n content: \\\"\\\\e6b7\\\";\\r\\n}\\r\\n\\r\\n.icon-Comment:before {\\r\\n content: \\\"\\\\e6b8\\\";\\r\\n}\\r\\n\\r\\n.icon-image:before {\\r\\n content: \\\"\\\\e6ba\\\";\\r\\n}\\r\\n\\r\\n.icon-play:before {\\r\\n content: \\\"\\\\e6bb\\\";\\r\\n}\\r\\n\\r\\n.icon-close:before {\\r\\n content: \\\"\\\\e6bc\\\";\\r\\n}\\r\\n\\r\\n.icon-more:before {\\r\\n content: \\\"\\\\e6bd\\\";\\r\\n}\\r\\n\\r\\n.icon-Like:before {\\r\\n content: \\\"\\\\e6be\\\";\\r\\n}\\r\\n\\r\\n.icon-icon_news:before {\\r\\n content: \\\"\\\\e6bf\\\";\\r\\n}\\r\\n\\r\\n.icon-plus:before {\\r\\n content: \\\"\\\\e6c1\\\";\\r\\n}\\r\\n\\r\\n.icon-pdf1:before {\\r\\n content: \\\"\\\\e6c2\\\";\\r\\n}\\r\\n\\r\\n.icon-link:before {\\r\\n content: \\\"\\\\e6c3\\\";\\r\\n}\\r\\n\\r\\n.icon-phone:before {\\r\\n content: \\\"\\\\e6c4\\\";\\r\\n}\\r\\n\\r\\n.icon-a-Quickjump:before {\\r\\n content: \\\"\\\\e6c5\\\";\\r\\n}\\r\\n\\r\\n.icon-Telephone:before {\\r\\n content: \\\"\\\\e6c6\\\";\\r\\n}\\r\\n\\r\\n.icon-rise:before {\\r\\n content: \\\"\\\\e6c7\\\";\\r\\n}\\r\\n\\r\\n.icon-a-sendout:before {\\r\\n content: \\\"\\\\e6c8\\\";\\r\\n}\\r\\n\\r\\n.icon-a-setup:before {\\r\\n content: \\\"\\\\e6c9\\\";\\r\\n}\\r\\n\\r\\n.icon-suspend:before {\\r\\n content: \\\"\\\\e6ca\\\";\\r\\n}\\r\\n\\r\\n.icon-Shared:before {\\r\\n content: \\\"\\\\e6cb\\\";\\r\\n}\\r\\n\\r\\n.icon-release-1:before {\\r\\n content: \\\"\\\\e6cc\\\";\\r\\n}\\r\\n\\r\\n.icon-video:before {\\r\\n content: \\\"\\\\e6ce\\\";\\r\\n}\\r\\n\\r\\n.icon-release:before {\\r\\n content: \\\"\\\\e6cf\\\";\\r\\n}\\r\\n\\r\\n.icon-gengduotianchong:before {\\r\\n content: \\\"\\\\e6b0\\\";\\r\\n}\\r\\n\\r\\n.icon-haoyou:before {\\r\\n content: \\\"\\\\e6e9\\\";\\r\\n}\\r\\n\\r\\n.icon-cancel:before {\\r\\n content: \\\"\\\\e6b1\\\";\\r\\n}\\r\\n\\r\\n.icon-disable:before {\\r\\n content: \\\"\\\\e6b2\\\";\\r\\n}\\r\\n\\r\\n.icon-icon_yuyinbofang:before {\\r\\n content: \\\"\\\\e6af\\\";\\r\\n}\\r\\n\\r\\n.icon-pdf:before {\\r\\n content: \\\"\\\\e6aa\\\";\\r\\n}\\r\\n\\r\\n.icon-Icon:before {\\r\\n content: \\\"\\\\e6ae\\\";\\r\\n}\\r\\n\\r\\n.icon-shipin2:before {\\r\\n content: \\\"\\\\e6a9\\\";\\r\\n}\\r\\n\\r\\n.icon-tupian:before {\\r\\n content: \\\"\\\\e6ab\\\";\\r\\n}\\r\\n\\r\\n.icon-bangding:before {\\r\\n content: \\\"\\\\e6ac\\\";\\r\\n}\\r\\n\\r\\n.icon-tongyi:before {\\r\\n content: \\\"\\\\e762\\\";\\r\\n}\\r\\n\\r\\n.icon-jujue:before {\\r\\n content: \\\"\\\\e6ad\\\";\\r\\n}\\r\\n\\r\\n.icon-qingchu:before {\\r\\n content: \\\"\\\\e6a8\\\";\\r\\n}\\r\\n\\r\\n.icon-diqiu-:before {\\r\\n content: \\\"\\\\e6a6\\\";\\r\\n}\\r\\n\\r\\n.icon-loupanchaxun:before {\\r\\n content: \\\"\\\\e6a7\\\";\\r\\n}\\r\\n\\r\\n.icon-wenhao:before {\\r\\n content: \\\"\\\\e69e\\\";\\r\\n}\\r\\n\\r\\n.icon-xingzhuang-tuoyuanxing:before {\\r\\n content: \\\"\\\\eb99\\\";\\r\\n}\\r\\n\\r\\n.icon-ziyuan:before {\\r\\n content: \\\"\\\\e6a5\\\";\\r\\n}\\r\\n\\r\\n.icon-tianjia1:before {\\r\\n content: \\\"\\\\e6a4\\\";\\r\\n}\\r\\n\\r\\n.icon-bofang1:before {\\r\\n content: \\\"\\\\e6a2\\\";\\r\\n}\\r\\n\\r\\n.icon-bofang:before {\\r\\n content: \\\"\\\\e6a1\\\";\\r\\n}\\r\\n\\r\\n.icon-tishi:before {\\r\\n content: \\\"\\\\e6a0\\\";\\r\\n}\\r\\n\\r\\n.icon-iconfontzhizuobiaozhun023139:before {\\r\\n content: \\\"\\\\e69f\\\";\\r\\n}\\r\\n\\r\\n.icon-gantanhao1:before {\\r\\n content: \\\"\\\\e724\\\";\\r\\n}\\r\\n\\r\\n.icon-bianji1:before {\\r\\n content: \\\"\\\\e8ac\\\";\\r\\n}\\r\\n\\r\\n.icon-guanbi2:before {\\r\\n content: \\\"\\\\e699\\\";\\r\\n}\\r\\n\\r\\n.icon-caogao:before {\\r\\n content: \\\"\\\\e69a\\\";\\r\\n}\\r\\n\\r\\n.icon-AI:before {\\r\\n content: \\\"\\\\e69b\\\";\\r\\n}\\r\\n\\r\\n.icon-tianjia:before {\\r\\n content: \\\"\\\\e69c\\\";\\r\\n}\\r\\n\\r\\n.icon-chuangyi:before {\\r\\n content: \\\"\\\\e69d\\\";\\r\\n}\\r\\n\\r\\n.icon-daofang:before {\\r\\n content: \\\"\\\\e68f\\\";\\r\\n}\\r\\n\\r\\n.icon-down:before {\\r\\n content: \\\"\\\\e692\\\";\\r\\n}\\r\\n\\r\\n.icon-qeuren:before {\\r\\n content: \\\"\\\\e694\\\";\\r\\n}\\r\\n\\r\\n.icon-renminbi:before {\\r\\n content: \\\"\\\\e695\\\";\\r\\n}\\r\\n\\r\\n.icon-up:before {\\r\\n content: \\\"\\\\e698\\\";\\r\\n}\\r\\n\\r\\n.icon-pipei:before {\\r\\n content: \\\"\\\\e690\\\";\\r\\n}\\r\\n\\r\\n.icon-lvju:before {\\r\\n content: \\\"\\\\e691\\\";\\r\\n}\\r\\n\\r\\n.icon-quanbu:before {\\r\\n content: \\\"\\\\e693\\\";\\r\\n}\\r\\n\\r\\n.icon-qianzai:before {\\r\\n content: \\\"\\\\e696\\\";\\r\\n}\\r\\n\\r\\n.icon-shauxin:before {\\r\\n content: \\\"\\\\e697\\\";\\r\\n}\\r\\n\\r\\n.icon-share:before {\\r\\n content: \\\"\\\\e68b\\\";\\r\\n}\\r\\n\\r\\n.icon-wancheng:before {\\r\\n content: \\\"\\\\e68c\\\";\\r\\n}\\r\\n\\r\\n.icon-shuoming:before {\\r\\n content: \\\"\\\\e68d\\\";\\r\\n}\\r\\n\\r\\n.icon-dingyue:before {\\r\\n content: \\\"\\\\e68e\\\";\\r\\n}\\r\\n\\r\\n.icon-xiala:before {\\r\\n content: \\\"\\\\e687\\\";\\r\\n}\\r\\n\\r\\n.icon-gengxin:before {\\r\\n content: \\\"\\\\e689\\\";\\r\\n}\\r\\n\\r\\n.icon-qiehuan:before {\\r\\n content: \\\"\\\\e68a\\\";\\r\\n}\\r\\n\\r\\n.icon-fanhui:before {\\r\\n content: \\\"\\\\e688\\\";\\r\\n}\\r\\n\\r\\n.icon-shouji:before {\\r\\n content: \\\"\\\\e686\\\";\\r\\n}\\r\\n\\r\\n.icon-shouqi:before {\\r\\n content: \\\"\\\\e683\\\";\\r\\n}\\r\\n\\r\\n.icon-zhankai:before {\\r\\n content: \\\"\\\\e684\\\";\\r\\n}\\r\\n\\r\\n.icon-shaixuan:before {\\r\\n content: \\\"\\\\e682\\\";\\r\\n}\\r\\n\\r\\n.icon-paixu:before {\\r\\n content: \\\"\\\\e66f\\\";\\r\\n}\\r\\n\\r\\n.icon-paixu1:before {\\r\\n content: \\\"\\\\e681\\\";\\r\\n}\\r\\n\\r\\n.icon-yimaojian:before {\\r\\n content: \\\"\\\\e67f\\\";\\r\\n}\\r\\n\\r\\n.icon-piaochuang:before {\\r\\n content: \\\"\\\\e680\\\";\\r\\n}\\r\\n\\r\\n.icon-zidingyikongjian:before {\\r\\n content: \\\"\\\\e67d\\\";\\r\\n}\\r\\n\\r\\n.icon-jiazhengshouna:before {\\r\\n content: \\\"\\\\e670\\\";\\r\\n}\\r\\n\\r\\n.icon-lianjiekongjian:before {\\r\\n content: \\\"\\\\e67e\\\";\\r\\n}\\r\\n\\r\\n.icon-shouye:before {\\r\\n content: \\\"\\\\e679\\\";\\r\\n}\\r\\n\\r\\n.icon-feiji1:before {\\r\\n content: \\\"\\\\e67a\\\";\\r\\n}\\r\\n\\r\\n.icon-chongwuyiliao:before {\\r\\n content: \\\"\\\\e67b\\\";\\r\\n}\\r\\n\\r\\n.icon-jiaoyu1:before {\\r\\n content: \\\"\\\\e67c\\\";\\r\\n}\\r\\n\\r\\n.icon-gouwuche:before {\\r\\n content: \\\"\\\\e678\\\";\\r\\n}\\r\\n\\r\\n.icon-right-s:before {\\r\\n content: \\\"\\\\e676\\\";\\r\\n}\\r\\n\\r\\n.icon-left-s:before {\\r\\n content: \\\"\\\\e677\\\";\\r\\n}\\r\\n\\r\\n.icon-gonglu:before {\\r\\n content: \\\"\\\\e672\\\";\\r\\n}\\r\\n\\r\\n.icon-feiji:before {\\r\\n content: \\\"\\\\e673\\\";\\r\\n}\\r\\n\\r\\n.icon-tielu:before {\\r\\n content: \\\"\\\\e674\\\";\\r\\n}\\r\\n\\r\\n.icon-ditie:before {\\r\\n content: \\\"\\\\e675\\\";\\r\\n}\\r\\n\\r\\n.icon-shufang:before {\\r\\n content: \\\"\\\\e668\\\";\\r\\n}\\r\\n\\r\\n.icon-canting:before {\\r\\n content: \\\"\\\\e669\\\";\\r\\n}\\r\\n\\r\\n.icon-keting:before {\\r\\n content: \\\"\\\\e66a\\\";\\r\\n}\\r\\n\\r\\n.icon-woshi:before {\\r\\n content: \\\"\\\\e66b\\\";\\r\\n}\\r\\n\\r\\n.icon-weishengjian:before {\\r\\n content: \\\"\\\\e66c\\\";\\r\\n}\\r\\n\\r\\n.icon-xuanguan:before {\\r\\n content: \\\"\\\\e66d\\\";\\r\\n}\\r\\n\\r\\n.icon-chufang:before {\\r\\n content: \\\"\\\\e66e\\\";\\r\\n}\\r\\n\\r\\n.icon-yangtai:before {\\r\\n content: \\\"\\\\e671\\\";\\r\\n}\\r\\n\\r\\n.icon-juzhong:before {\\r\\n content: \\\"\\\\e662\\\";\\r\\n}\\r\\n\\r\\n.icon-kaoyou:before {\\r\\n content: \\\"\\\\e663\\\";\\r\\n}\\r\\n\\r\\n.icon-align-center:before {\\r\\n content: \\\"\\\\e664\\\";\\r\\n}\\r\\n\\r\\n.icon-kaozuo:before {\\r\\n content: \\\"\\\\e665\\\";\\r\\n}\\r\\n\\r\\n.icon-align-left:before {\\r\\n content: \\\"\\\\e666\\\";\\r\\n}\\r\\n\\r\\n.icon-align-right:before {\\r\\n content: \\\"\\\\e667\\\";\\r\\n}\\r\\n\\r\\n.icon-yuandian:before {\\r\\n content: \\\"\\\\e661\\\";\\r\\n}\\r\\n\\r\\n.icon-dianhua:before {\\r\\n content: \\\"\\\\e65f\\\";\\r\\n}\\r\\n\\r\\n.icon-kefu:before {\\r\\n content: \\\"\\\\e660\\\";\\r\\n}\\r\\n\\r\\n.icon-a-zu22326:before {\\r\\n content: \\\"\\\\e65e\\\";\\r\\n}\\r\\n\\r\\n.icon-jingyin:before {\\r\\n content: \\\"\\\\e65c\\\";\\r\\n}\\r\\n\\r\\n.icon-yinliang:before {\\r\\n content: \\\"\\\\e65d\\\";\\r\\n}\\r\\n\\r\\n.icon-weibiaoti--:before {\\r\\n content: \\\"\\\\e65b\\\";\\r\\n}\\r\\n\\r\\n.icon-jiaotong:before {\\r\\n content: \\\"\\\\e656\\\";\\r\\n}\\r\\n\\r\\n.icon-gouwu:before {\\r\\n content: \\\"\\\\e657\\\";\\r\\n}\\r\\n\\r\\n.icon-jiaoyu:before {\\r\\n content: \\\"\\\\e658\\\";\\r\\n}\\r\\n\\r\\n.icon-shenghuobianli:before {\\r\\n content: \\\"\\\\e659\\\";\\r\\n}\\r\\n\\r\\n.icon-yiliao:before {\\r\\n content: \\\"\\\\e65a\\\";\\r\\n}\\r\\n\\r\\n.icon-live:before {\\r\\n content: \\\"\\\\e655\\\";\\r\\n}\\r\\n\\r\\n.icon-xiaoxi:before {\\r\\n content: \\\"\\\\e653\\\";\\r\\n}\\r\\n\\r\\n.icon-wode:before {\\r\\n content: \\\"\\\\e654\\\";\\r\\n}\\r\\n\\r\\n.icon-a-1949plus:before {\\r\\n content: \\\"\\\\e652\\\";\\r\\n}\\r\\n\\r\\n.icon-ic-fuzhi:before {\\r\\n content: \\\"\\\\e64e\\\";\\r\\n}\\r\\n\\r\\n.icon-ic-huanyihuan:before {\\r\\n content: \\\"\\\\e64f\\\";\\r\\n}\\r\\n\\r\\n.icon-ic-xiazai:before {\\r\\n content: \\\"\\\\e650\\\";\\r\\n}\\r\\n\\r\\n.icon-ic-pengyouquan:before {\\r\\n content: \\\"\\\\e651\\\";\\r\\n}\\r\\n\\r\\n.icon-icon_back-shang:before {\\r\\n content: \\\"\\\\e64c\\\";\\r\\n}\\r\\n\\r\\n.icon-icon_back-xia:before {\\r\\n content: \\\"\\\\e64d\\\";\\r\\n}\\r\\n\\r\\n.icon-fuzhi:before {\\r\\n content: \\\"\\\\e64b\\\";\\r\\n}\\r\\n\\r\\n.icon-fuxuankuang-weixuanzhongzhuangtai:before {\\r\\n content: \\\"\\\\e64a\\\";\\r\\n}\\r\\n\\r\\n.icon-fuxuankuang-xuanzhongzhuangtai:before {\\r\\n content: \\\"\\\\e649\\\";\\r\\n}\\r\\n\\r\\n.icon-zhengzaizhibo:before {\\r\\n content: \\\"\\\\e648\\\";\\r\\n}\\r\\n\\r\\n.icon-yuyueliudian:before {\\r\\n content: \\\"\\\\e647\\\";\\r\\n}\\r\\n\\r\\n.icon-weixin:before {\\r\\n content: \\\"\\\\e646\\\";\\r\\n}\\r\\n\\r\\n.icon-goumai:before {\\r\\n content: \\\"\\\\e645\\\";\\r\\n}\\r\\n\\r\\n.icon-fenxiang1:before {\\r\\n content: \\\"\\\\e644\\\";\\r\\n}\\r\\n\\r\\n.icon-jiarugouwuche:before {\\r\\n content: \\\"\\\\e643\\\";\\r\\n}\\r\\n\\r\\n.icon-shoucang:before {\\r\\n content: \\\"\\\\e642\\\";\\r\\n}\\r\\n\\r\\n.icon-yishoucang:before {\\r\\n content: \\\"\\\\e641\\\";\\r\\n}\\r\\n\\r\\n.icon-liulanliang:before {\\r\\n content: \\\"\\\\e640\\\";\\r\\n}\\r\\n\\r\\n.icon-jiarugouwucheliang:before {\\r\\n content: \\\"\\\\e63f\\\";\\r\\n}\\r\\n\\r\\n.icon-kaipan1:before {\\r\\n content: \\\"\\\\e63e\\\";\\r\\n}\\r\\n\\r\\n.icon-huidaodingbu:before {\\r\\n content: \\\"\\\\e63d\\\";\\r\\n}\\r\\n\\r\\n.icon-quanming:before {\\r\\n content: \\\"\\\\e63c\\\";\\r\\n}\\r\\n\\r\\n.icon-search:before {\\r\\n content: \\\"\\\\e639\\\";\\r\\n}\\r\\n\\r\\n.icon-pin:before {\\r\\n content: \\\"\\\\e63a\\\";\\r\\n}\\r\\n\\r\\n.icon-icon_delete:before {\\r\\n content: \\\"\\\\e63b\\\";\\r\\n}\\r\\n\\r\\n.icon-guanbi1:before {\\r\\n content: \\\"\\\\e638\\\";\\r\\n}\\r\\n\\r\\n.icon-timeSelector:before {\\r\\n content: \\\"\\\\e637\\\";\\r\\n}\\r\\n\\r\\n.icon-sousuo:before {\\r\\n content: \\\"\\\\e636\\\";\\r\\n}\\r\\n\\r\\n.icon-shuliang:before {\\r\\n content: \\\"\\\\e635\\\";\\r\\n}\\r\\n\\r\\n.icon-xiangmu:before {\\r\\n content: \\\"\\\\e629\\\";\\r\\n}\\r\\n\\r\\n.icon-VR2:before {\\r\\n content: \\\"\\\\e634\\\";\\r\\n}\\r\\n\\r\\n.icon-guanbi:before {\\r\\n content: \\\"\\\\e633\\\";\\r\\n}\\r\\n\\r\\n.icon-liebiao:before {\\r\\n content: \\\"\\\\e631\\\";\\r\\n}\\r\\n\\r\\n.icon-bianji:before {\\r\\n content: \\\"\\\\e632\\\";\\r\\n}\\r\\n\\r\\n.icon-shipin:before {\\r\\n content: \\\"\\\\e630\\\";\\r\\n}\\r\\n\\r\\n.icon-jieguodaiqueren:before {\\r\\n content: \\\"\\\\e621\\\";\\r\\n}\\r\\n\\r\\n.icon-baobeichenggong:before {\\r\\n content: \\\"\\\\e623\\\";\\r\\n}\\r\\n\\r\\n.icon-baobeishibai:before {\\r\\n content: \\\"\\\\e624\\\";\\r\\n}\\r\\n\\r\\n.icon-chenggong:before {\\r\\n content: \\\"\\\\e61f\\\";\\r\\n}\\r\\n\\r\\n.icon-baobei:before {\\r\\n content: \\\"\\\\e622\\\";\\r\\n}\\r\\n\\r\\n.icon-shibai:before {\\r\\n content: \\\"\\\\e61c\\\";\\r\\n}\\r\\n\\r\\n.icon-daiqueren:before {\\r\\n content: \\\"\\\\e61b\\\";\\r\\n}\\r\\n\\r\\n.icon-yijiantixingshenhe:before {\\r\\n content: \\\"\\\\e61a\\\";\\r\\n}\\r\\n\\r\\n.icon-shangsheng1:before {\\r\\n content: \\\"\\\\e619\\\";\\r\\n}\\r\\n\\r\\n.icon-weizhibai-1:before {\\r\\n content: \\\"\\\\e61d\\\";\\r\\n}\\r\\n\\r\\n.icon-fenxiangdiseicon1:before {\\r\\n content: \\\"\\\\e61e\\\";\\r\\n}\\r\\n\\r\\n.icon-fenxiang:before {\\r\\n content: \\\"\\\\e625\\\";\\r\\n}\\r\\n\\r\\n.icon-weizhibai1:before {\\r\\n content: \\\"\\\\e627\\\";\\r\\n}\\r\\n\\r\\n.icon-remen2:before {\\r\\n content: \\\"\\\\e628\\\";\\r\\n}\\r\\n\\r\\n.icon-shipin1:before {\\r\\n content: \\\"\\\\e62a\\\";\\r\\n}\\r\\n\\r\\n.icon-shanghua1:before {\\r\\n content: \\\"\\\\e62b\\\";\\r\\n}\\r\\n\\r\\n.icon-gengduo1:before {\\r\\n content: \\\"\\\\e62c\\\";\\r\\n}\\r\\n\\r\\n.icon-xiala1:before {\\r\\n content: \\\"\\\\e62d\\\";\\r\\n}\\r\\n\\r\\n.icon-weizhishense:before {\\r\\n content: \\\"\\\\e62e\\\";\\r\\n}\\r\\n\\r\\n.icon-weizhiqianse1:before {\\r\\n content: \\\"\\\\e62f\\\";\\r\\n}\\r\\n\\r\\n.icon-remen1:before {\\r\\n content: \\\"\\\\e620\\\";\\r\\n}\\r\\n\\r\\n.icon-shangsheng:before {\\r\\n content: \\\"\\\\e626\\\";\\r\\n}\\r\\n\\r\\n.icon-IM:before {\\r\\n content: \\\"\\\\e618\\\";\\r\\n}\\r\\n\\r\\n.icon-gantanhao:before {\\r\\n content: \\\"\\\\e685\\\";\\r\\n}\\r\\n\\r\\n.icon-gougou:before {\\r\\n content: \\\"\\\\e6a3\\\";\\r\\n}\\r\\n\\r\\n.icon-yijianbaobei:before {\\r\\n content: \\\"\\\\e617\\\";\\r\\n}\\r\\n\\r\\n.icon-zhuanfa:before {\\r\\n content: \\\"\\\\e615\\\";\\r\\n}\\r\\n\\r\\n.icon-canyu:before {\\r\\n content: \\\"\\\\e616\\\";\\r\\n}\\r\\n\\r\\n.icon-duoxuanxuanzhong:before {\\r\\n content: \\\"\\\\e613\\\";\\r\\n}\\r\\n\\r\\n.icon-duoxuanchanggui:before {\\r\\n content: \\\"\\\\e614\\\";\\r\\n}\\r\\n\\r\\n.icon-weixuanzhong:before {\\r\\n content: \\\"\\\\e611\\\";\\r\\n}\\r\\n\\r\\n.icon-xuanzhong:before {\\r\\n content: \\\"\\\\e612\\\";\\r\\n}\\r\\n\\r\\n.icon-tabguanzhu:before {\\r\\n content: \\\"\\\\e60a\\\";\\r\\n}\\r\\n\\r\\n.icon-fenxiangxiangmu:before {\\r\\n content: \\\"\\\\e609\\\";\\r\\n}\\r\\n\\r\\n.icon-fenxiangkapian:before {\\r\\n content: \\\"\\\\e60b\\\";\\r\\n}\\r\\n\\r\\n.icon-tabfenxiang:before {\\r\\n content: \\\"\\\\e60c\\\";\\r\\n}\\r\\n\\r\\n.icon-yidingyue:before {\\r\\n content: \\\"\\\\e60d\\\";\\r\\n}\\r\\n\\r\\n.icon-diyfenxiang:before {\\r\\n content: \\\"\\\\e60e\\\";\\r\\n}\\r\\n\\r\\n.icon-xiangmuyiguanzhu:before {\\r\\n content: \\\"\\\\e60f\\\";\\r\\n}\\r\\n\\r\\n.icon-xiangmuguanzhu:before {\\r\\n content: \\\"\\\\e610\\\";\\r\\n}\\r\\n\\r\\n.icon-remen:before {\\r\\n content: \\\"\\\\e608\\\";\\r\\n}\\r\\n\\r\\n.icon-dingwei:before {\\r\\n content: \\\"\\\\e607\\\";\\r\\n}\\r\\n\\r\\n.icon-jisuanqi:before {\\r\\n content: \\\"\\\\e606\\\";\\r\\n}\\r\\n\\r\\n.icon-yuyue1:before {\\r\\n content: \\\"\\\\e6cd\\\";\\r\\n}\\r\\n\\r\\n.icon-VR:before {\\r\\n content: \\\"\\\\e603\\\";\\r\\n}\\r\\n\\r\\n.icon-pic:before {\\r\\n content: \\\"\\\\e604\\\";\\r\\n}\\r\\n\\r\\n.icon-lujing3863:before {\\r\\n content: \\\"\\\\e605\\\";\\r\\n}\\r\\n\\r\\n.icon-bianjia:before {\\r\\n content: \\\"\\\\e601\\\";\\r\\n}\\r\\n\\r\\n.icon-kaipan:before {\\r\\n content: \\\"\\\\e602\\\";\\r\\n}\\r\\n\\r\\n.icon-lujing7708:before {\\r\\n content: \\\"\\\\e600\\\";\\r\\n}\\r\\n\\r\\n.icon-xingxing-copy:before {\\r\\n content: \\\"\\\\e85a\\\";\\r\\n}\\r\\n\\r\\n\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://hello-world/./src/assets/font/iconfont.css?./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-14.use%5B1%5D!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-14.use%5B2%5D"); /***/ }), /***/ "./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@7.3.1@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=style&index=1&id=7ba5bd90&lang=scss&scoped=true&": /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@7.3.1@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=style&index=1&id=7ba5bd90&lang=scss&scoped=true& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/_css-loader@6.8.1@css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/_css-loader@6.8.1@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";\\n.loadingShadow[data-v-7ba5bd90] {\\n position: fixed;\\n z-index: 999999999999;\\n left: 0;\\n top: 0;\\n width: 100vw;\\n height: 100vh;\\n}\\n.loadData[data-v-7ba5bd90] {\\n min-width: 110px;\\n height: 110px;\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n background: rgba(0, 0, 0, 0.6);\\n border-radius: 10px;\\n z-index: 1000;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n}\\n.loadData img[data-v-7ba5bd90] {\\n width: 90px;\\n margin-top: 10px;\\n}\\n.loadData .loadingMsg[data-v-7ba5bd90] {\\n color: rgba(255, 255, 255, 0.83);\\n margin: 10px;\\n margin-top: 0px;\\n}\\n.account-view[data-v-7ba5bd90] {\\n width: 500rem;\\n padding: 30rem 40rem;\\n box-sizing: border-box;\\n background-color: rgba(255, 255, 255, 0.9);\\n border-radius: 20rem;\\n}\\n.account-view .title-icon[data-v-7ba5bd90] {\\n width: 18rem;\\n margin-right: 10rem;\\n}\\n.account-view .close .close-img[data-v-7ba5bd90] {\\n font-size: 16rem;\\n font-weight: bold;\\n color: #000;\\n cursor: pointer;\\n}\\n.account-view .content[data-v-7ba5bd90] {\\n width: 100%;\\n color: #0b0b0b;\\n font-size: 14rem;\\n}\\n.account-view .content .content-main-view[data-v-7ba5bd90] {\\n height: 250rem;\\n border-radius: 6rem;\\n background: #fff;\\n box-sizing: border-box;\\n padding: 18rem;\\n overflow: auto;\\n}\\n.account-view .content .content-main-view .selcect-view[data-v-7ba5bd90] {\\n position: relative;\\n width: 16rem;\\n height: 16rem;\\n border-radius: 100%;\\n background: transparent;\\n border: 1rem solid #ef863f;\\n box-sizing: border-box;\\n}\\n.account-view .content .content-main-view .selcect-view[data-v-7ba5bd90]::after {\\n content: '';\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n width: 10rem;\\n height: 10rem;\\n border-radius: 100%;\\n background: #ef863f;\\n box-sizing: border-box;\\n}\\n.account-view .content .content-main-view .unselcect-view[data-v-7ba5bd90] {\\n width: 16rem;\\n height: 16rem;\\n border-radius: 8rem;\\n background: rgba(249, 249, 249, 0.2);\\n border: 1rem solid rgba(0, 0, 0, 0.2);\\n}\\n.account-view .content .content-main-view .gougou-icon[data-v-7ba5bd90] {\\n color: #EF863F;\\n}\\n.account-view .auth-btn-view .auth-btn[data-v-7ba5bd90] {\\n width: 120rem;\\n height: 40rem;\\n border-radius: 10rem;\\n cursor: pointer;\\n}\\n.account-view .auth-btn-view .style1[data-v-7ba5bd90] {\\n font-family: \\\"Verdana Bold\\\";\\n font-weight: 700;\\n font-size: 14rem;\\n color: #151515;\\n background: #d5d5d5;\\n}\\n.account-view .auth-btn-view .style2[data-v-7ba5bd90] {\\n font-family: \\\"Verdana Bold\\\";\\n font-weight: 700;\\n font-size: 14rem;\\n color: #fff;\\n background: #ef863f;\\n box-shadow: 0 12px 24px rgba(239, 134, 63, 0.2);\\n}\\n.overflow[data-v-7ba5bd90] {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.ellipsis[data-v-7ba5bd90] {\\n text-overflow: ellipsis;\\n}\\nbody[data-v-7ba5bd90], html[data-v-7ba5bd90] {\\n height: 100%;\\n width: 100%;\\n margin: 0 auto;\\n padding: 0;\\n position: relative;\\n background-color: #f4f4f4;\\n}\\n#app[data-v-7ba5bd90] {\\n width: 100%;\\n margin: 0 auto;\\n padding: 0;\\n height: 100%;\\n left: 0;\\n top: 0;\\n -webkit-overflow-scrolling: touch;\\n position: absolute;\\n font-family: Verdana, Verdana-Bold, \\\"Hiragino Sans GB\\\", \\\"Microsoft Yahei UI\\\",\\r \\\"Microsoft Yahei\\\", 微软雅黑, \\\"Segoe UI\\\", Tahoma, 宋体宋体, SimSun,\\r sans-serif;\\n}\\nul[data-v-7ba5bd90], li[data-v-7ba5bd90], ol[data-v-7ba5bd90], dl[data-v-7ba5bd90], dd[data-v-7ba5bd90], a[data-v-7ba5bd90] {\\n list-style: none;\\n padding: 0;\\n margin: 0;\\n}\\n[data-v-7ba5bd90]:-moz-placeholder {\\n /* Mozilla Firefox 4 to 18 */\\n color: #B1C1C8;\\n}\\n[data-v-7ba5bd90]::-moz-placeholder {\\n /* Mozilla Firefox 19+ */\\n color: #B1C1C8;\\n}\\ninput[data-v-7ba5bd90]:-ms-input-placeholder {\\n color: #B1C1C8;\\n}\\ninput[data-v-7ba5bd90]::-webkit-input-placeholder {\\n color: #B1C1C8;\\n}\\n.show-flex5[data-v-7ba5bd90] {\\n display: flex;\\n}\\n.align-center[data-v-7ba5bd90] {\\n align-items: center;\\n}\\n.column[data-v-7ba5bd90] {\\n flex-direction: column;\\n}\\n.content-center[data-v-7ba5bd90] {\\n justify-content: center;\\n}\\n.content-between[data-v-7ba5bd90] {\\n justify-content: space-between;\\n}\\n.content-around[data-v-7ba5bd90] {\\n justify-content: space-around;\\n}\\n.cursor-pointer[data-v-7ba5bd90] {\\n cursor: pointer;\\n}\\n.flex-end[data-v-7ba5bd90] {\\n justify-content: flex-end;\\n}\\n\\n/******************** element 分页样式修改 *****************/\\n#app[data-v-7ba5bd90] .el-pagination .btn-next, #app[data-v-7ba5bd90] .el-pagination .btn-prev {\\n background: center center no-repeat #0000;\\n background-size: 16px;\\n cursor: pointer;\\n margin: 0;\\n color: #c7c8c9;\\n border: 1px solid #fff3;\\n border-radius: 4px;\\n}\\n#app[data-v-7ba5bd90] .el-pagination.is-background .el-pager li {\\n background-color: #f4f4f500;\\n color: #8d8d8d;\\n}\\n#app[data-v-7ba5bd90] .el-pagination.is-background .el-pager li:not(.disabled).active {\\n background-color: #fff2;\\n border-radius: 4px;\\n color: #FFF;\\n}\\n\\n/*****************************************************************/\\n\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://hello-world/./src/App.vue?./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-22.use%5B1%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use%5B2%5D!./node_modules/_sass-loader@7.3.1@sass-loader/dist/cjs.js??clonedRuleSet-22.use%5B3%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options"); /***/ }), /***/ "./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@7.3.1@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/pages/mainView/mainView.vue?vue&type=style&index=0&id=5c95f99b&lang=scss&scoped=true&": /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@7.3.1@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/pages/mainView/mainView.vue?vue&type=style&index=0&id=5c95f99b&lang=scss&scoped=true& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/_css-loader@6.8.1@css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/_css-loader@6.8.1@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@6.8.1@css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_6_8_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_6_8_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://hello-world/./src/pages/mainView/mainView.vue?./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-22.use%5B1%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use%5B2%5D!./node_modules/_sass-loader@7.3.1@sass-loader/dist/cjs.js??clonedRuleSet-22.use%5B3%5D!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options"); /***/ }), /***/ "./src/App.vue": /*!*********************!*\ !*** ./src/App.vue ***! \*********************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _App_vue_vue_type_template_id_7ba5bd90_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=template&id=7ba5bd90&scoped=true& */ \"./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true&\");\n/* harmony import */ var _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js& */ \"./src/App.vue?vue&type=script&lang=js&\");\n/* harmony import */ var _App_vue_vue_type_style_index_0_id_7ba5bd90_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./App.vue?vue&type=style&index=0&id=7ba5bd90&lang=css& */ \"./src/App.vue?vue&type=style&index=0&id=7ba5bd90&lang=css&\");\n/* harmony import */ var _App_vue_vue_type_style_index_1_id_7ba5bd90_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./App.vue?vue&type=style&index=1&id=7ba5bd90&lang=scss&scoped=true& */ \"./src/App.vue?vue&type=style&index=1&id=7ba5bd90&lang=scss&scoped=true&\");\n/* harmony import */ var _node_modules_vue_loader_15_10_1_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../node_modules/_vue-loader@15.10.1@vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/_vue-loader@15.10.1@vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n;\n\n\n\n/* normalize component */\n\nvar component = (0,_node_modules_vue_loader_15_10_1_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(\n _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _App_vue_vue_type_template_id_7ba5bd90_scoped_true___WEBPACK_IMPORTED_MODULE_0__.render,\n _App_vue_vue_type_template_id_7ba5bd90_scoped_true___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,\n false,\n null,\n \"7ba5bd90\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/App.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack://hello-world/./src/App.vue?"); /***/ }), /***/ "./src/components/mapComponent/mapComponent.vue": /*!******************************************************!*\ !*** ./src/components/mapComponent/mapComponent.vue ***! \******************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mapComponent_html_vue_type_template_id_68cc5822_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mapComponent.html?vue&type=template&id=68cc5822&scoped=true& */ \"./src/components/mapComponent/mapComponent.html?vue&type=template&id=68cc5822&scoped=true&\");\n/* harmony import */ var _mapComponent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mapComponent.vue?vue&type=script&lang=js& */ \"./src/components/mapComponent/mapComponent.vue?vue&type=script&lang=js&\");\n/* harmony import */ var _mapComponent_vue_vue_type_style_index_0_id_68cc5822_lang_css_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mapComponent.vue?vue&type=style&index=0&id=68cc5822&lang=css&scoped=true& */ \"./src/components/mapComponent/mapComponent.vue?vue&type=style&index=0&id=68cc5822&lang=css&scoped=true&\");\n/* harmony import */ var _node_modules_vue_loader_15_10_1_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../node_modules/_vue-loader@15.10.1@vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/_vue-loader@15.10.1@vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n;\n\n\n/* normalize component */\n\nvar component = (0,_node_modules_vue_loader_15_10_1_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _mapComponent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _mapComponent_html_vue_type_template_id_68cc5822_scoped_true___WEBPACK_IMPORTED_MODULE_0__.render,\n _mapComponent_html_vue_type_template_id_68cc5822_scoped_true___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,\n false,\n null,\n \"68cc5822\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/components/mapComponent/mapComponent.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack://hello-world/./src/components/mapComponent/mapComponent.vue?"); /***/ }), /***/ "./src/pages/mainView/mainView.vue": /*!*****************************************!*\ !*** ./src/pages/mainView/mainView.vue ***! \*****************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mainView_html_vue_type_template_id_5c95f99b_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mainView.html?vue&type=template&id=5c95f99b&scoped=true& */ \"./src/pages/mainView/mainView.html?vue&type=template&id=5c95f99b&scoped=true&\");\n/* harmony import */ var _mainView_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mainView.vue?vue&type=script&lang=js& */ \"./src/pages/mainView/mainView.vue?vue&type=script&lang=js&\");\n/* harmony import */ var _mainView_vue_vue_type_style_index_0_id_5c95f99b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mainView.vue?vue&type=style&index=0&id=5c95f99b&lang=scss&scoped=true& */ \"./src/pages/mainView/mainView.vue?vue&type=style&index=0&id=5c95f99b&lang=scss&scoped=true&\");\n/* harmony import */ var _node_modules_vue_loader_15_10_1_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../node_modules/_vue-loader@15.10.1@vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/_vue-loader@15.10.1@vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n;\n\n\n/* normalize component */\n\nvar component = (0,_node_modules_vue_loader_15_10_1_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _mainView_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _mainView_html_vue_type_template_id_5c95f99b_scoped_true___WEBPACK_IMPORTED_MODULE_0__.render,\n _mainView_html_vue_type_template_id_5c95f99b_scoped_true___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,\n false,\n null,\n \"5c95f99b\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/mainView/mainView.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack://hello-world/./src/pages/mainView/mainView.vue?"); /***/ }), /***/ "./src/App.vue?vue&type=script&lang=js&": /*!**********************************************!*\ !*** ./src/App.vue?vue&type=script&lang=js& ***! \**********************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_8_3_0_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js& */ \"./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=script&lang=js&\");\n /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_8_3_0_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack://hello-world/./src/App.vue?"); /***/ }), /***/ "./src/components/mapComponent/mapComponent.vue?vue&type=script&lang=js&": /*!*******************************************************************************!*\ !*** ./src/components/mapComponent/mapComponent.vue?vue&type=script&lang=js& ***! \*******************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_8_3_0_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_mapComponent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./mapComponent.vue?vue&type=script&lang=js& */ \"./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/components/mapComponent/mapComponent.vue?vue&type=script&lang=js&\");\n /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_8_3_0_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_mapComponent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack://hello-world/./src/components/mapComponent/mapComponent.vue?"); /***/ }), /***/ "./src/pages/mainView/mainView.vue?vue&type=script&lang=js&": /*!******************************************************************!*\ !*** ./src/pages/mainView/mainView.vue?vue&type=script&lang=js& ***! \******************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_8_3_0_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_mainView_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./mainView.vue?vue&type=script&lang=js& */ \"./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/pages/mainView/mainView.vue?vue&type=script&lang=js&\");\n /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_8_3_0_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_mainView_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack://hello-world/./src/pages/mainView/mainView.vue?"); /***/ }), /***/ "./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true&": /*!****************************************************************!*\ !*** ./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true& ***! \****************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* reexport safe */ _node_modules_babel_loader_8_3_0_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_template_id_7ba5bd90_scoped_true___WEBPACK_IMPORTED_MODULE_0__.render; },\n/* harmony export */ staticRenderFns: function() { return /* reexport safe */ _node_modules_babel_loader_8_3_0_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_template_id_7ba5bd90_scoped_true___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns; }\n/* harmony export */ });\n/* harmony import */ var _node_modules_babel_loader_8_3_0_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_template_id_7ba5bd90_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=template&id=7ba5bd90&scoped=true& */ \"./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=template&id=7ba5bd90&scoped=true&\");\n\n\n//# sourceURL=webpack://hello-world/./src/App.vue?"); /***/ }), /***/ "./src/components/mapComponent/mapComponent.html?vue&type=template&id=68cc5822&scoped=true&": /*!**************************************************************************************************!*\ !*** ./src/components/mapComponent/mapComponent.html?vue&type=template&id=68cc5822&scoped=true& ***! \**************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* reexport safe */ _node_modules_babel_loader_8_3_0_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_mapComponent_html_vue_type_template_id_68cc5822_scoped_true___WEBPACK_IMPORTED_MODULE_0__.render; },\n/* harmony export */ staticRenderFns: function() { return /* reexport safe */ _node_modules_babel_loader_8_3_0_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_mapComponent_html_vue_type_template_id_68cc5822_scoped_true___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns; }\n/* harmony export */ });\n/* harmony import */ var _node_modules_babel_loader_8_3_0_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_mapComponent_html_vue_type_template_id_68cc5822_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./mapComponent.html?vue&type=template&id=68cc5822&scoped=true& */ \"./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./src/components/mapComponent/mapComponent.html?vue&type=template&id=68cc5822&scoped=true&\");\n\n\n//# sourceURL=webpack://hello-world/./src/components/mapComponent/mapComponent.html?"); /***/ }), /***/ "./src/pages/mainView/mainView.html?vue&type=template&id=5c95f99b&scoped=true&": /*!*************************************************************************************!*\ !*** ./src/pages/mainView/mainView.html?vue&type=template&id=5c95f99b&scoped=true& ***! \*************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* reexport safe */ _node_modules_babel_loader_8_3_0_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_mainView_html_vue_type_template_id_5c95f99b_scoped_true___WEBPACK_IMPORTED_MODULE_0__.render; },\n/* harmony export */ staticRenderFns: function() { return /* reexport safe */ _node_modules_babel_loader_8_3_0_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_mainView_html_vue_type_template_id_5c95f99b_scoped_true___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns; }\n/* harmony export */ });\n/* harmony import */ var _node_modules_babel_loader_8_3_0_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_mainView_html_vue_type_template_id_5c95f99b_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./mainView.html?vue&type=template&id=5c95f99b&scoped=true& */ \"./node_modules/_babel-loader@8.3.0@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./src/pages/mainView/mainView.html?vue&type=template&id=5c95f99b&scoped=true&\");\n\n\n//# sourceURL=webpack://hello-world/./src/pages/mainView/mainView.html?"); /***/ }), /***/ "./src/App.vue?vue&type=style&index=0&id=7ba5bd90&lang=css&": /*!******************************************************************!*\ !*** ./src/App.vue?vue&type=style&index=0&id=7ba5bd90&lang=css& ***! \******************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_12_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_12_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_12_use_2_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_7ba5bd90_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-12.use[0]!../node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!../node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!../node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!../node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=7ba5bd90&lang=css& */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-12.use[0]!./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=style&index=0&id=7ba5bd90&lang=css&\");\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_12_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_12_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_12_use_2_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_7ba5bd90_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_12_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_12_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_12_use_2_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_7ba5bd90_lang_css___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_12_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_12_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_12_use_2_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_7ba5bd90_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_12_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_12_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_12_use_2_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_7ba5bd90_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceURL=webpack://hello-world/./src/App.vue?"); /***/ }), /***/ "./src/components/mapComponent/mapComponent.vue?vue&type=style&index=0&id=68cc5822&lang=css&scoped=true&": /*!***************************************************************************************************************!*\ !*** ./src/components/mapComponent/mapComponent.vue?vue&type=style&index=0&id=68cc5822&lang=css&scoped=true& ***! \***************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_12_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_12_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_12_use_2_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_mapComponent_vue_vue_type_style_index_0_id_68cc5822_lang_css_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-12.use[0]!../../../node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!../../../node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!../../../node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./mapComponent.vue?vue&type=style&index=0&id=68cc5822&lang=css&scoped=true& */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-12.use[0]!./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/components/mapComponent/mapComponent.vue?vue&type=style&index=0&id=68cc5822&lang=css&scoped=true&\");\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_12_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_12_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_12_use_2_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_mapComponent_vue_vue_type_style_index_0_id_68cc5822_lang_css_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_12_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_12_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_12_use_2_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_mapComponent_vue_vue_type_style_index_0_id_68cc5822_lang_css_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_12_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_12_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_12_use_2_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_mapComponent_vue_vue_type_style_index_0_id_68cc5822_lang_css_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_12_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_12_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_12_use_2_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_mapComponent_vue_vue_type_style_index_0_id_68cc5822_lang_css_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceURL=webpack://hello-world/./src/components/mapComponent/mapComponent.vue?"); /***/ }), /***/ "./src/App.vue?vue&type=style&index=1&id=7ba5bd90&lang=scss&scoped=true&": /*!*******************************************************************************!*\ !*** ./src/App.vue?vue&type=style&index=1&id=7ba5bd90&lang=scss&scoped=true& ***! \*******************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_7_3_1_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_1_id_7ba5bd90_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-22.use[0]!../node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!../node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../node_modules/_sass-loader@7.3.1@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=1&id=7ba5bd90&lang=scss&scoped=true& */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@7.3.1@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=style&index=1&id=7ba5bd90&lang=scss&scoped=true&\");\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_7_3_1_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_1_id_7ba5bd90_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_7_3_1_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_1_id_7ba5bd90_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_7_3_1_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_1_id_7ba5bd90_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_7_3_1_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_1_id_7ba5bd90_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceURL=webpack://hello-world/./src/App.vue?"); /***/ }), /***/ "./src/pages/mainView/mainView.vue?vue&type=style&index=0&id=5c95f99b&lang=scss&scoped=true&": /*!***************************************************************************************************!*\ !*** ./src/pages/mainView/mainView.vue?vue&type=style&index=0&id=5c95f99b&lang=scss&scoped=true& ***! \***************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_7_3_1_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_mainView_vue_vue_type_style_index_0_id_5c95f99b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-22.use[0]!../../../node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/_sass-loader@7.3.1@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./mainView.vue?vue&type=style&index=0&id=5c95f99b&lang=scss&scoped=true& */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@7.3.1@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/pages/mainView/mainView.vue?vue&type=style&index=0&id=5c95f99b&lang=scss&scoped=true&\");\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_7_3_1_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_mainView_vue_vue_type_style_index_0_id_5c95f99b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_7_3_1_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_mainView_vue_vue_type_style_index_0_id_5c95f99b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_7_3_1_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_mainView_vue_vue_type_style_index_0_id_5c95f99b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_8_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_15_10_1_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_7_3_1_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_15_10_1_vue_loader_lib_index_js_vue_loader_options_mainView_vue_vue_type_style_index_0_id_5c95f99b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceURL=webpack://hello-world/./src/pages/mainView/mainView.vue?"); /***/ }), /***/ "./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-12.use[0]!./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=style&index=0&id=7ba5bd90&lang=css&": /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-12.use[0]!./node_modules/_css-loader@6.8.1@css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/_vue-loader@15.10.1@vue-loader/lib/index.js??vue-loader-options!./src/App.vue?vue&type=style&index=0&id=7ba5bd90&lang=css& ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { eval("// style-loader: Adds some css to the DOM by adding a