1 |
- {"version":3,"sources":["webpack:///./src/views/envmonitor/components/Map/MapBox.vue?5f9d","webpack:///./src/views/envmonitor/Search/SpaceSearch.vue?5fe3","webpack:///./src/views/envmonitor/Search/SpaceMetting.vue?45ed","webpack:///./src/views/envmonitor/Search/SpaceMetting.vue?8dfc","webpack:///./src/views/envmonitor/Search/SpaceMetting.vue","webpack:///./src/views/envmonitor/Search/SpaceSearch.vue?4a26","webpack:///./src/views/envmonitor/Search/SpaceSearch.vue","webpack:///./src/views/envmonitor/components/Map/CanvasBox.vue?2739","webpack:///./src/views/envmonitor/components/Map/CanvasBox.vue?c3ee","webpack:///./src/views/envmonitor/components/Map/CanvasBox.vue","webpack:///./src/views/envmonitor/components/Map/MapBox.vue?20e9","webpack:///./src/views/envmonitor/components/Map/MapBox.vue","webpack:///./src/assets/svg/deviceroom.svg","webpack:///./node_modules/vant/es/action-bar/ActionBar.js","webpack:///./node_modules/vant/es/action-bar/index.js","webpack:///./node_modules/vant/es/action-bar-button/ActionBarButton.js","webpack:///./node_modules/vant/es/action-bar-button/index.js","webpack:///./node_modules/vant/es/dialog/Dialog.js","webpack:///./node_modules/vant/es/dialog/function-call.js","webpack:///./node_modules/vant/es/dialog/index.js","webpack:///./src/assets/svg/bg_disable.png","webpack:///./src/views/envmonitor/Search/SpaceMetting.vue?1f14","webpack:///./src/views/envmonitor/Search/SpaceSearch.vue?c10c","webpack:///./node_modules/core-js/modules/es.math.hypot.js","webpack:///./src/apis/envmonitor.ts","webpack:///./src/assets/svg sync ^\\.\\/.*$","webpack:///./src/assets/svg/coffeeselected.svg","webpack:///./src/utils/swiper.ts","webpack:///./src/views/envmonitor/components/Map/MapBox.vue?d456","webpack:///./src/views/envmonitor/components/Map/CanvasBox.vue?a149","webpack:///./src/assets/svg/dev.svg","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./src/assets/svg/coffee.svg","webpack:///./src/utils/mapIcon.ts","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./src/assets/svg/weather.svg","webpack:///./src/assets/svg/device.svg","webpack:///./src/assets/svg/babyselected.svg","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./src/views/envmonitor/Search/SpaceMetting.vue?714c","webpack:///./node_modules/vant/es/button/Button.js","webpack:///./node_modules/vant/es/button/index.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./src/views/envmonitor/Search/SpaceSearch.vue?9cd7","webpack:///./node_modules/vant/es/dialog/style/index.js","webpack:///./src/views/envmonitor/Search/SpaceMetting.vue?7a59","webpack:///./src/views/envmonitor/Search/SpaceSearch.vue?c127"],"names":["_hoisted_1","id","style","_hoisted_2","class","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","key","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","render","_ctx","_cache","$props","$setup","$data","$options","_component_van_popup","_component_space_search","mapData","spaceList","area","index","width","height","top","left","canClick","selectArea","spaceId","disabled","isSetSpace","onClick","$event","checkSpace","backgroundColor","icon","src","selectIcon","alt","localName","length","displacement","scale","parseImgUrl","goSearch","checkFloor","floorItem","checkBuilding","buildingItem","show","showBuilding","teleport","position","default","buildingData","item","buildingId","comfirmBuilding","_","showFloor","floorData","comfirmFloor","showSearch","onCloseSearch","closeSearch","n","action","_component_VanIcon","_component_van_search","_component_space_metting","goBack","name","modelValue","spaceName","onSearch","onFocus","clearHistorySearch","onBlur","getHistorySearch","onClear","onCancel","placeholder","goMetting","searchData","triggerSearchSpace","historySearchData","showMetting","onCloseMetting","closeMetting","emits","props","projectId","type","String","components","VanSearch","setup","contex","userInfo","store","state","user","proxyData","emit","getSpaceLike","params","then","res","resData","result","content","__exports__","SpaceMetting","prop","ctx","centerObj","copySpaceArr","searchSpace","map","fillColor","shadow","initCanvas","zommAdd","formSpaceData","zommDel","sliderSwiper","sliderList","document","querySelector","addEventListener","e","swiper","swipeLeft","swipeRight","canvasDom","getContext","drawDpiBegin","clearRect","circleArr","circlePoint","beginPath","fillStyle","pointLeftArr","pointTopArr","pointArr","childItem","moveTo","lineTo","push","drawIcon","devicePoint","closePath","fill","lineWidth","strokeStyle","stroke","bezierCurveTo","min1","MaxAndMin","min2","min","font","textAlign","fillText","logPointArr","shadowColor","shadowOffsetX","shadowOffsetY","shadowBlur","img","Image","onload","pat","createPattern","drawDpiEnd","arr","Math","apply","max","bindEvent","detect","dom","context","save","scaleValue","window","devicePixelRatio","setAttribute","restore","event","x","clientX","getBoundingClientRect","y","clientY","i","iconFlag","dev","dot","coordinates","flag","queryPtInPolygon","point","polygon","p1","p2","p3","p4","count","checkCross","v1","v2","v3","v","crossMul","url","iconPerstion","drawImage","setSpaceColor","JSON","parse","formatePage","detailPoint","logoPointArr","stringify","getMapInfo","floorId","data","catch","spaceData","Array","spaceInfo","Object","Boolean","mapType","Number","SpaceSearch","CanvasBox","contx","screenInfo","screenWidth","body","clientWidth","screenHeight","clientHeight","comMapScale","pageX","pageX2","originScale","moveable","transformData","widthMapScale","tempScale","heightScale","isSetSearchSpace","copyMapDaata","clearPreStyle","mapDom","scrollLeft","scrollTop","matrix_box","swipe","el","options","isMove","startX","startY","moveX","moveY","disX","disY","fun","swipeDown","swipeUp","drag","assign","touches","pageY","offsetLeft","offsetTop","passive","mation","call","absX","abs","absY","mapScroll","houseDesDom","houseHeight","offsetHeight","offsetWidth","boxHeight","loadingStart","buildingName","floorName","init","setSelectSpacePosition","setTimeout","setScrollLeft","mapBoxEle","setLocalSpaceInfo","comfirSetSpace","confirm","title","confirmButtonColor","cancelButtonColor","message","getDistance","start","stop","hypot","formateMapData","setSpaceScale","setTempScale","j","setSpaceIcon","minHeight","minWidth","num","ceil","setMapBoxStyle","typeName","roomFuncType","mapIcon","bg","midpoint","x1","y1","x2","y2","updateMapStyle","updateMapPositon","temp","scaleCenter","newTop","newLeft","mapScale","events","events2","pageY2","isNaN","parseInt","center","scaleTranslateProportion","oldSize","zoom","newScale","getBuildingList","criteria","orders","asc","column","setBuildingName","getFloorList","loading","duration","forbidClick","loadinngEnd","clear","setFloorName","getHistorySelectFloor","searchItem","getFirstSelectSpace","historyFloor","floor","getHistorySpace","historySpace","space","setDefaultSpace","newProps","deep","immediate","module","exports","bem","create","ACTION_BAR_KEY","Symbol","actionBarProps","safeAreaInsetBottom","stdin_default","slots","linkChildren","_a","ActionBar","actionBarButtonProps","text","color","route","parent","isFirst","prev","children","value","isLast","next","isButton","last","first","ActionBarButton","t","dialogProps","theme","Function","callback","allowHtml","className","transition","messageAlign","closeOnPopstate","showCancelButton","cancelButtonText","confirmButtonText","showConfirmButton","closeOnClickOverlay","popupInheritKeys","root","cancel","updateShow","close","getActionHandler","beforeClose","args","onConfirm","onKeydown","_b","target","popupRef","onEventType","Enter","Escape","renderTitle","isolated","renderMessage","hasTitle","classNames","renderContent","renderButtons","renderRoundButtons","renderFooter","footer","instance","initInstance","Wrapper","toggle","Dialog","Promise","resolve","reject","open","currentOptions","defaultOptions","overlay","lockScroll","overlayClass","overlayStyle","alert","setDefaultOptions","resetDefaultOptions","Component","install","app","use","config","globalProperties","$dialog","$","$hypot","sqrt","BUGGY","Infinity","NaN","stat","forced","value1","value2","arg","div","sum","aLen","arguments","larg","getCompanyInfo","companyInfo","request","companyId","GET","undefined","json","getWeather","getSpaceInfo","POST","getMeetingSceneHttp","getEquipmentListHttp","getFeedbackDocumentsHttp","changeTempHttp","getLampHttp","timeout","setallLampHttp","setEquipeHttp","getStatusHttp","getObjectDataEqpGroupHttp","switchoverSceneHttp","changeSetTimeHttp","getChartListHTTP","getSpaceEquipType","permanentSpace","getPermanentSpace","delPermanentSpace","getUserControlAuth","getSpaceMode","getSpaceTemp","querySpaceSceneConfig","queryCustomAndScence","saveBatchCustomScene","getDefaultLocation","getPadSpaceList","saveWorkSpace","insertWorkSpace","deleteWorkSpace","queryWorkSpace","checkWorkSpace","queryCustomerservice","getPadQrCodeStatus","getPadImg","querySpaceConditioners","setSpaceCondtioners","saveMapPointInfo","getSpaceEquipList","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","code","keys","requireObjectCoercible","whitespaces","whitespace","ltrim","RegExp","rtrim","createMethod","TYPE","$this","string","replace","end","trim","getSpaceType","getWorkType","toObject","toAbsoluteIndex","toLength","O","this","argumentsLength","endPos","DESCRIPTORS","global","isForced","redefine","has","classof","inheritIfRequired","toPrimitive","fails","getOwnPropertyNames","f","getOwnPropertyDescriptor","defineProperty","NUMBER","NativeNumber","NumberPrototype","prototype","BROKEN_CLASSOF","toNumber","argument","third","radix","maxCode","digits","it","charCodeAt","slice","NumberWrapper","dummy","valueOf","split","constructor","buttonProps","tag","size","block","plain","round","square","hairline","iconPrefix","nativeType","loadingSize","loadingText","loadingType","iconPosition","renderLoadingIcon","renderIcon","renderText","getStyle","background","includes","border","borderColor","classes","Button","addToUnscopables","proto"],"mappings":"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B,YAAe,UACf,KAAQ,eACR,WAAc,sBAEhB,MAAO,CACL,gBAAmB,UACnB,YAAe,UACf,KAAQ,cACR,WAAc,qBAEhB,MAAO,CACL,gBAAmB,UACnB,YAAe,UACf,KAAQ,gBACR,WAAc,uBAEhB,MAAO,CACL,gBAAmB,UACnB,YAAe,UACf,KAAQ,gBACR,WAAc,uBAEhB,MAAO,CACL,gBAAmB,OACnB,YAAe,UACf,KAAQ,eACR,WAAc,sBAEhB,MAAO,CACL,gBAAmB,OACnB,YAAe,UACf,KAAQ,gBACR,WAAc,uBAEhB,MAAO,CACL,gBAAmB,OACnB,YAAe,UACf,KAAQ,cACR,WAAc,uBAEhB,MAAO,CACL,gBAAmB,UACnB,YAAe,UACf,KAAQ,YACR,WAAc,oBAOLmO,EAAe,SAAS1c,GACnC,IAAIqO,EAAW,OAmEf,OAjEEA,EADW,QAATrO,GAA2B,QAATA,GAA2B,MAATA,GAAyB,QAATA,GAA2B,QAATA,EAC7D,OACO,QAATA,EACE,MACO,QAATA,EACE,MACO,QAATA,EACE,KACO,QAATA,EACE,MACO,QAATA,EACE,MACO,QAATA,GAA2B,QAATA,GAA2B,QAATA,GAA2B,QAATA,EACpD,QACO,QAATA,GAA2B,QAATA,GAA2B,QAATA,GAA2B,QAATA,GAA2B,QAATA,EACtE,QACO,QAATA,GAA2B,QAATA,GAA2B,QAATA,EAClC,MACO,QAATA,GAA2B,QAATA,GAA2B,QAATA,GAA2B,QAATA,EACpD,MACO,QAATA,GAA2B,QAATA,GAA2B,QAATA,EAClC,OACO,QAATA,EACE,MACO,QAATA,EACE,KACO,QAATA,GAA2B,QAATA,GAA2B,QAATA,EAClC,MACO,QAATA,EACE,MACO,QAATA,GAA2B,QAATA,EAChB,MACO,QAATA,GAA2B,QAATA,GAA2B,QAATA,GACjC,QAATA,GAA2B,QAATA,GAA2B,QAATA,GAC3B,QAATA,GAA2B,QAATA,GAA2B,QAATA,GAA2B,QAATA,GAC7C,QAATA,GAA2B,QAATA,GAA2B,QAATA,GAA2B,QAATA,GAA2B,QAATA,EAChE,KACO,QAATA,GAA2B,QAATA,GAA2B,QAA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","file":"static/js/chunk-26817e4c.3b6a7f01.js","sourcesContent":["import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, vShow as _vShow, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, withDirectives as _withDirectives, withModifiers as _withModifiers, normalizeStyle as _normalizeStyle, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-78455464\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"map\",\n style: {\"width\":\"100%\",\"height\":\"100%\"}\n}\nconst _hoisted_2 = {\n class: \"space-main\",\n id: \"spaceMain\"\n}\nconst _hoisted_3 = [\"id\", \"onClick\"]\nconst _hoisted_4 = [\"src\"]\nconst _hoisted_5 = [\"src\"]\nconst _hoisted_6 = {\n key: 0,\n style: {\"font-size\":\"12px\"}\n}\nconst _hoisted_7 = { class: \"map-toolbar\" }\nconst _hoisted_8 = [\"src\"]\nconst _hoisted_9 = { class: \"text-hidden\" }\nconst _hoisted_10 = { class: \"text-hidden\" }\nconst _hoisted_11 = [\"onClick\"]\nconst _hoisted_12 = [\"onClick\"]\nconst _hoisted_13 = { style: {\"width\":\"100%\",\"height\":\"100%\"} }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_van_popup = _resolveComponent(\"van-popup\")!\n const _component_space_search = _resolveComponent(\"space-search\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.mapData.spaceList, (area, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"space-box\",\n style: _normalizeStyle({\n width: area.width + 'px',\n height: area.height + 'px',\n top: area.top + 'px',\n left: area.left + 'px',\n }),\n key: 'map' + index\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"space\", [\n area.canClick ? '' : 'click-disable',\n _ctx.selectArea.spaceId === area.spaceId\n ? area.disabled\n ? 'select-disable'\n : 'select'\n : '',\n _ctx.isSetSpace ? 'use-select' : '',\n area.disabled ? 'space-disable-box' : 'space-box-bg',\n ]]),\n id: 'space' + area.id,\n onClick: _withModifiers(($event: any) => (_ctx.checkSpace(area)), [\"stop\"]),\n style: _normalizeStyle({\n backgroundColor: area.backgroundColor ? area.backgroundColor : '',\n })\n }, [\n _withDirectives(_createElementVNode(\"div\", {\n class: _normalizeClass([\"device\", _ctx.selectArea.spaceId === area.spaceId ? 'select-device' : ''])\n }, [\n (_ctx.selectArea.spaceId !== area.spaceId && area.icon)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: area.icon\n }, null, 8, _hoisted_4))\n : (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n src: area.selectIcon,\n class: \"select-icon\",\n alt: \"\"\n }, null, 8, _hoisted_5)),\n (area.localName)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n (\n (area.height > 80 &&\n area.localName.length * 12 < area.width) ||\n _ctx.selectArea.spaceId === area.spaceId\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_6, _toDisplayString(area.localName), 1))\n : _createCommentVNode(\"\", true)\n ], 64))\n : _createCommentVNode(\"\", true)\n ], 2), [\n [_vShow, \n area.width * _ctx.displacement.scale > 24 &&\n area.height * _ctx.displacement.scale > 24\n ]\n ])\n ], 14, _hoisted_3)\n ], 4))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"img\", {\n src: _ctx.parseImgUrl('map-icon', 'icon-search-big.svg'),\n onClick: _cache[0] || (_cache[0] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.goSearch && _ctx.goSearch(...args)), [\"stop\"])),\n class: \"icon-search\",\n alt: \"\"\n }, null, 8, _hoisted_8),\n _createElementVNode(\"div\", {\n class: \"toolbar-item\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.checkFloor && _ctx.checkFloor(...args)), [\"stop\"]))\n }, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.floorItem.localName), 1)\n ]),\n _createElementVNode(\"div\", {\n class: \"toolbar-item\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.checkBuilding && _ctx.checkBuilding(...args)), [\"stop\"]))\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.buildingItem.localName), 1)\n ])\n ]),\n _createVNode(_component_van_popup, {\n show: _ctx.showBuilding,\n \"onUpdate:show\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.showBuilding) = $event)),\n teleport: \"body\",\n class: \"buiding-box\",\n style: {\"width\":\"40%\",\"height\":\"100%\",\"padding\":\"20px\"},\n position: \"right\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.buildingData, (item) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"buiding-item\", _ctx.buildingItem.buildingId === item.id ? 'active' : '']),\n key: item.id,\n onClick: _withModifiers(($event: any) => (_ctx.comfirmBuilding(item)), [\"stop\"])\n }, _toDisplayString(item.localName), 11, _hoisted_11))\n }), 128))\n ]),\n _: 1\n }, 8, [\"show\"]),\n _createVNode(_component_van_popup, {\n show: _ctx.showFloor,\n \"onUpdate:show\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.showFloor) = $event)),\n teleport: \"body\",\n class: \"buiding-box\",\n style: {\"width\":\"40%\",\"height\":\"100%\",\"padding\":\"20px\"},\n position: \"right\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.floorData, (item) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"buiding-item\", _ctx.floorItem.id === item.id ? 'active' : '']),\n key: item.id,\n onClick: _withModifiers(($event: any) => (_ctx.comfirmFloor(item)), [\"stop\"])\n }, _toDisplayString(item.localName), 11, _hoisted_12))\n }), 128))\n ]),\n _: 1\n }, 8, [\"show\"]),\n _createVNode(_component_van_popup, {\n show: _ctx.showSearch,\n \"onUpdate:show\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.showSearch) = $event)),\n teleport: \"body\",\n class: \"buiding-box\",\n style: {\"width\":\"100%\",\"height\":\"100%\"},\n position: \"right\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_space_search, { onCloseSearch: _ctx.closeSearch }, null, 8, [\"onCloseSearch\"])\n ])\n ]),\n _: 1\n }, 8, [\"show\"])\n ]))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-44b481c8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"ignore_com-top\" }\nconst _hoisted_2 = { class: \"page-search content-box ptheader\" }\nconst _hoisted_3 = { action: \"/\" }\nconst _hoisted_4 = { class: \"search-box\" }\nconst _hoisted_5 = { class: \"top\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, \"最近查找\", -1))\nconst _hoisted_7 = [\"onClick\"]\nconst _hoisted_8 = [\"src\"]\nconst _hoisted_9 = [\"onClick\"]\nconst _hoisted_10 = [\"src\"]\nconst _hoisted_11 = { style: {\"width\":\"100%\",\"height\":\"100%\"} }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_VanIcon = _resolveComponent(\"VanIcon\")!\n const _component_van_search = _resolveComponent(\"van-search\")!\n const _component_space_metting = _resolveComponent(\"space-metting\")!\n const _component_van_popup = _resolveComponent(\"van-popup\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"header-return\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.goBack && _ctx.goBack(...args)))\n }, [\n _createVNode(_component_VanIcon, { name: \"arrow-left\" })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"form\", _hoisted_3, [\n _createVNode(_component_van_search, {\n modelValue: _ctx.spaceName,\n \"onUpdate:modelValue\": [\n _cache[1] || (_cache[1] = ($event: any) => ((_ctx.spaceName) = $event)),\n _ctx.onSearch\n ],\n onFocus: _ctx.clearHistorySearch,\n onBlur: _ctx.getHistorySearch,\n onClear: _ctx.onCancel,\n placeholder: \"输入地点\"\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\", \"onFocus\", \"onBlur\", \"onClear\"])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _hoisted_6,\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"span\", {\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.goMetting && _ctx.goMetting(...args)))\n }, \"查看所有会议室\")\n ])\n ]),\n (_ctx.searchData && _ctx.searchData.length)\n ? (_openBlock(true), _createElementBlock(_Fragment, { key: 0 }, _renderList(_ctx.searchData, (item) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"space-item\",\n onClick: ($event: any) => (_ctx.triggerSearchSpace(item))\n }, [\n _createElementVNode(\"img\", {\n src: _ctx.parseImgUrl('search-icon','icon_location.svg'),\n alt: \"\"\n }, null, 8, _hoisted_8),\n _createElementVNode(\"p\", null, _toDisplayString(item.localName), 1)\n ], 8, _hoisted_7))\n }), 256))\n : (_openBlock(true), _createElementBlock(_Fragment, { key: 1 }, _renderList(_ctx.historySearchData, (item) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"space-item\",\n onClick: ($event: any) => (_ctx.triggerSearchSpace(item))\n }, [\n _createElementVNode(\"img\", {\n src: _ctx.parseImgUrl('search-icon','icon_location.svg'),\n alt: \"\"\n }, null, 8, _hoisted_10),\n _createElementVNode(\"p\", null, _toDisplayString(item.localName), 1)\n ], 8, _hoisted_9))\n }), 256))\n ])\n ]),\n _createVNode(_component_van_popup, {\n show: _ctx.showMetting,\n \"onUpdate:show\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.showMetting) = $event)),\n teleport: \"body\",\n class: \"buiding-box\",\n style: {\"width\":\"100%\",\"height\":\"100%\"},\n position: \"right\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_11, [\n _createVNode(_component_space_metting, { onCloseMetting: _ctx.closeMetting }, null, 8, [\"onCloseMetting\"])\n ])\n ]),\n _: 1\n }, 8, [\"show\"])\n ], 64))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1406cd06\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"ignore_com-top\" }\nconst _hoisted_2 = { class: \"page-search content-box ptheader\" }\nconst _hoisted_3 = { class: \"search-box\" }\nconst _hoisted_4 = [\"onClick\"]\nconst _hoisted_5 = [\"src\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_VanIcon = _resolveComponent(\"VanIcon\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"header-return\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.goBack && _ctx.goBack(...args)))\n }, [\n _createVNode(_component_VanIcon, { name: \"arrow-left\" })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", null, [\n (_ctx.searchData && _ctx.searchData.length)\n ? (_openBlock(true), _createElementBlock(_Fragment, { key: 0 }, _renderList(_ctx.searchData, (item) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"space-item\",\n onClick: ($event: any) => (_ctx.triggerSearchSpace(item))\n }, [\n _createElementVNode(\"img\", {\n src: _ctx.parseImgUrl('search-icon','icon_meetingroom.svg'),\n alt: \"\"\n }, null, 8, _hoisted_5),\n _createElementVNode(\"p\", null, _toDisplayString(item.localName), 1)\n ], 8, _hoisted_4))\n }), 256))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ], 64))\n}","\nimport { Search } from 'vant'\nimport { defineComponent, reactive, toRefs, onBeforeMount } from 'vue'\nimport { getSpaceLike } from '@/apis/envmonitor'\nimport { store } from '@/store'\nimport { parseImgUrl, setLocalSearchSpace } from '@/utils'\n\nexport default defineComponent({\n emits: ['closeMetting'],\n props: {\n projectId: {\n type: String,\n default: () => ''\n }\n },\n components: {\n VanSearch: Search\n },\n setup(props, contex) {\n let spaceName: any = ''\n let userInfo: any = store.state.user\n let searchData: any = []\n const proxyData = reactive({\n parseImgUrl: parseImgUrl,\n spaceName: spaceName,\n userInfo: userInfo,\n searchData: searchData,\n goBack() {\n contex.emit('closeMetting', null)\n },\n triggerSearchSpace(item: any) {\n contex.emit('closeMetting', item)\n },\n getSpaceLike() {\n let params: any = {\n 'criteria': {\n 'projectId': userInfo.projectId,\n 'localName': {\n '$like': `%${proxyData.spaceName}%`\n }\n }\n }\n getSpaceLike(params).then(res => {\n let resData: any = res\n if (resData.result === 'success') {\n proxyData.searchData = res?.content ?? []\n } else {\n proxyData.searchData = []\n }\n })\n },\n })\n onBeforeMount(() => {\n proxyData.getSpaceLike()\n })\n return {\n ...toRefs(proxyData)\n }\n }\n})\n","import { render } from \"./SpaceMetting.vue?vue&type=template&id=1406cd06&scoped=true&ts=true\"\nimport script from \"./SpaceMetting.vue?vue&type=script&lang=ts\"\nexport * from \"./SpaceMetting.vue?vue&type=script&lang=ts\"\n\nimport \"./SpaceMetting.vue?vue&type=style&index=0&id=1406cd06&lang=scss&scoped=true\"\nimport \"./SpaceMetting.vue?vue&type=style&index=1&id=1406cd06&lang=scss\"\n\nimport exportComponent from \"/Users/wangyong/shanggeyun/code/sagacloud-sagacare-ipad/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1406cd06\"]])\n\nexport default __exports__","\nimport { Search } from 'vant'\nimport { defineComponent, reactive, toRefs, ref, onBeforeMount, onMounted } from 'vue'\nimport { useRouter } from 'vue-router'\nimport { store } from '@/store'\nimport { getSpaceLike } from '@/apis/envmonitor'\nimport { getLocalSearchSpace, parseImgUrl, setLocalSearchSpace } from '@/utils'\nimport SpaceMetting from '@/views/envmonitor/Search/SpaceMetting.vue'\n\nexport default defineComponent({\n emits: ['closeSearch'],\n props: {\n projectId: {\n type: String,\n default: () => ''\n }\n },\n components: {\n VanSearch: Search,\n SpaceMetting\n },\n setup(prop, contex) {\n const router = useRouter()\n let userInfo: any = store.state.user\n let spaceName: any = ''\n let searchData: any = []\n let historySearchData: any = []\n const proxyData = reactive({\n parseImgUrl: parseImgUrl,\n showMetting: false,\n spaceName: spaceName,\n userInfo: userInfo,\n searchData: searchData,\n historySearchData: historySearchData,\n /**\n * 返回上一个页面\n */\n goBack() {\n contex.emit('closeSearch', null)\n },\n /**\n * 关闭所有会议室页面\n */\n closeMetting(item: any) {\n proxyData.showMetting = false\n contex.emit('closeSearch', item)\n },\n /**\n * 搜索空间\n */\n onSearch() {\n if (proxyData.spaceName) {\n proxyData.getSpaceLike()\n }\n },\n /**\n * 取消搜索\n */\n onCancel() {\n proxyData.searchData = []\n proxyData.getHistorySearch()\n },\n /**\n * 清楚最近查找的数据\n */\n clearHistorySearch() {\n proxyData.historySearchData = []\n },\n /**\n * 获取最近查询的历史数据,最近查找为本地缓存\n */\n getHistorySearch() {\n proxyData.historySearchData = getLocalSearchSpace()\n },\n /**\n * 确定选择的空间\n * @param item\n */\n triggerSearchSpace(item: any) {\n setLocalSearchSpace(item)\n // 关闭搜索显示地图\n contex.emit('closeSearch', item)\n },\n /**\n * 模糊查询空间\n */\n getSpaceLike() {\n let params: any = {\n 'criteria': {\n 'projectId': userInfo.projectId,\n 'localName': {\n '$like': `%${proxyData.spaceName}%`\n }\n }\n }\n getSpaceLike(params).then(res => {\n let resData: any = res\n if (resData.result === 'success') {\n proxyData.searchData = res?.content ?? []\n } else {\n proxyData.searchData = []\n }\n })\n },\n /**\n * 会议室页面\n */\n goMetting() {\n proxyData.showMetting = true\n }\n })\n onMounted(() => {\n proxyData.historySearchData = getLocalSearchSpace()\n })\n return {\n ...toRefs(proxyData)\n }\n }\n})\n","import { render } from \"./SpaceSearch.vue?vue&type=template&id=44b481c8&scoped=true&ts=true\"\nimport script from \"./SpaceSearch.vue?vue&type=script&lang=ts\"\nexport * from \"./SpaceSearch.vue?vue&type=script&lang=ts\"\n\nimport \"./SpaceSearch.vue?vue&type=style&index=0&id=44b481c8&lang=scss&scoped=true\"\nimport \"./SpaceSearch.vue?vue&type=style&index=1&id=44b481c8&lang=scss\"\n\nimport exportComponent from \"/Users/wangyong/shanggeyun/code/sagacloud-sagacare-ipad/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-44b481c8\"]])\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-56dbfa6e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"myCanvas\",\n class: \"canvas-dom\",\n style: {\"boder\":\"1px solid red\"}\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"canvas\", _hoisted_1))\n}","\nimport { Search } from \"vant\";\nimport { number } from \"echarts\";\nimport { getMapInfo } from \"@/apis/envmonitor\";\nimport { defineComponent, nextTick, onMounted, reactive, toRefs } from \"vue\";\nimport { parseImgUrl } from \"@/utils\";\nimport { swiper } from \"@/utils/swiper\";\n\nexport default defineComponent({\n components: {\n VanSearch: Search,\n },\n setup() {\n let spaceList: any = [];\n let ctx: any = {};\n let centerObj: any = {};\n const proxyData = reactive({\n spaceList: spaceList,\n copySpaceArr: spaceList,\n parseImgUrl: parseImgUrl,\n spaceName: \"\",\n width: 3361.136,\n height: 2729.25,\n scale: 1,\n ctx: ctx,\n centerObj: centerObj,\n // 搜索某个空间\n searchSpace() {\n proxyData.spaceList.map((item: any) => {\n // debugger\n console.log(item.localName == proxyData.spaceName);\n console.log(\"搜索====\");\n console.log(item.localName);\n console.log(proxyData.spaceName);\n if (item.localName == proxyData.spaceName) {\n console.log(\"搜索到某个空间\");\n item.fillColor = \"red\";\n item.shadow = true;\n proxyData.initCanvas();\n } else {\n // item.shadow = false;\n // item.fillColor = \"#ececec\";\n }\n });\n },\n // 放大\n zommAdd() {\n console.log(\"被点击了\");\n if (proxyData.scale > 3) {\n return;\n }\n proxyData.scale = proxyData.scale + 0.1;\n // debugger;\n proxyData.formSpaceData();\n proxyData.initCanvas();\n },\n // 缩小\n zommDel() {\n if (proxyData.scale < 0.3) {\n return;\n }\n proxyData.scale = proxyData.scale - 0.1;\n proxyData.formSpaceData();\n proxyData.initCanvas();\n },\n sliderSwiper() {\n // 获取当前时间的下标\n let sliderList: any = document.querySelector(\"#sliderListId\");\n sliderList.addEventListener(\"touchstart\", function (e: any) {});\n swiper(sliderList, {\n swipeLeft: function (e: any) {},\n swipeRight: function (e: any) {},\n });\n },\n // canvas画图\n initCanvas() {\n let canvasDom: any = document.querySelector(\"#myCanvas\");\n let ctx: any = canvasDom.getContext(\"2d\");\n proxyData.drawDpiBegin(\n canvasDom,\n ctx,\n proxyData.width,\n proxyData.height\n );\n proxyData.ctx = ctx;\n ctx.clearRect(0, 0, proxyData.width, proxyData.height);\n ctx.scale(\n proxyData.scale,\n proxyData.scale,\n centerObj.left,\n centerObj.top\n );\n\n proxyData.spaceList.map((item: any) => {\n // debugger\n if (item.canClick) {\n let circleArr: any = item.circlePoint;\n ctx.beginPath();\n ctx.fillStyle = item.fillColor;\n let pointLeftArr: any = [];\n let pointTopArr: any = [];\n\n item.pointArr.map((childItem: any, index: any) => {\n // debugger\n childItem.left = childItem.left;\n childItem.top = childItem.top;\n if (index == 0) {\n ctx.moveTo(childItem.left, childItem.top);\n } else {\n ctx.lineTo(childItem.left, childItem.top);\n }\n pointLeftArr.push(childItem.left);\n pointTopArr.push(childItem.top);\n });\n // debugger;\n console.log(item.devicePoint);\n proxyData.drawIcon(ctx, \"coffee.svg\", item.devicePoint[0]);\n // proxyData.drawIcon(ctx, \"dev.svg\", item.devicePoint[1]);\n // proxyData.drawIcon(ctx, \"deviceroom.svg\", item.devicePoint[2]);\n ctx.closePath();\n ctx.fill();\n ctx.lineWidth = 1;\n ctx.strokeStyle = \"rgba(15, 206, 233, 1)\";\n ctx.stroke();\n ctx.beginPath();\n if (circleArr && circleArr.length) {\n console.log(circleArr);\n ctx.lineTo(circleArr[3].left, circleArr[3].top);\n ctx.bezierCurveTo(\n circleArr[2].left,\n circleArr[2].top,\n circleArr[1].left,\n circleArr[1].top,\n circleArr[0].left,\n circleArr[0].top\n );\n }\n ctx.closePath();\n ctx.fill();\n ctx.lineWidth = 1;\n ctx.strokeStyle = \"rgba(15, 206, 233, 1)\";\n ctx.stroke();\n\n let min1: any =\n proxyData.MaxAndMin(pointLeftArr)[1] -\n proxyData.MaxAndMin(pointLeftArr)[0];\n let min2: any =\n proxyData.MaxAndMin(pointTopArr)[1] -\n proxyData.MaxAndMin(pointTopArr)[0];\n let min: any = min1 < min2 ? min1 : min2;\n ctx.beginPath();\n ctx.font = \"13px serif\";\n ctx.textAlign = \"center\";\n ctx.fillStyle = item.fillColor !== \"#ececec\" ? \"#ffffff\" : \"red\";\n console.log(\"min===\" + min);\n if (item.localName && min > 100) {\n ctx.fillText(\n item.localName,\n item.logPointArr[0].left,\n item.logPointArr[0].top,\n item.width\n );\n }\n ctx.closePath();\n if (item.shadow) {\n item.shadowColor = \"#000000\";\n ctx.shadowOffsetX = -50; //阴影x轴位移。正值向右,负值向左。\n ctx.shadowOffsetY = -50; //阴影y轴位移。正值向下,负值向上。\n ctx.shadowBlur = 10; //阴影模糊滤镜。数据越大,扩散程度越大。\n }\n } else {\n let img: any = new Image();\n img.src = require(\"@/assets/svg/bg_disable.png\");\n img.onload = function () {\n ctx.beginPath();\n item.pointArr.map((item: any, index: any) => {\n if (index === 0) {\n ctx.moveTo(item.left, item.top);\n } else {\n ctx.lineTo(item.left, item.top);\n }\n });\n // ctx.fillStyle = \"#cfefef\";\n // ctx.fill();\n let pat: any = ctx.createPattern(img, \"repeat\");\n ctx.fillStyle = pat;\n ctx.fill();\n ctx.closePath();\n ctx.strokeStyle = \"rgba(15, 206, 233, 1)\";\n ctx.stroke();\n };\n }\n });\n proxyData.drawDpiEnd(canvasDom, ctx);\n },\n MaxAndMin(arr: any) {\n return [Math.min.apply(null, arr), Math.max.apply(null, arr)];\n },\n // 绑定事件\n bindEvent() {\n let canvasDom: any = document.querySelector(\"#myCanvas\");\n // 点击事件\n canvasDom.addEventListener(\"click\", proxyData.detect);\n },\n // 解决canvas画图模糊的问题\n // 开始画\n drawDpiBegin(dom: any, context: any, width: any, height: any) {\n context.save();\n let scaleValue = window.devicePixelRatio;\n dom.setAttribute(\"width\", width * scaleValue);\n dom.setAttribute(\"height\", height * scaleValue);\n\n dom.style.width = width + \"px\";\n dom.style.height = height + \"px\";\n context.scale(scaleValue, scaleValue);\n },\n // 画图介绍\n drawDpiEnd(dom: any, context: any) {\n context.restore();\n },\n // 地图点击事件\n detect(event: any) {\n let canvasDom: any = document.querySelector(\"#myCanvas\");\n let x: any = event.clientX - canvasDom.getBoundingClientRect().left;\n let y: any = event.clientY - canvasDom.getBoundingClientRect().top;\n // let ctx: any = canvasDom.getContext(\"2d\");\n // proxyData.initCanvas();\n console.log(event);\n // alert(\"点击了!\");\n for (let i = 0; i < proxyData.spaceList.length; i++) {\n let item: any = proxyData.spaceList[i];\n let devicePoint: any = item.devicePoint;\n let pointArr: any = item.pointArr;\n let iconFlag: any = false;\n devicePoint.map((dev: any, index: any) => {\n if (\n x >= dev.left &&\n x <= dev.left + 20 &&\n y >= dev.top &&\n y < dev.top + 20\n ) {\n // alert(\"我被点了!\");\n // console.log(\"我被点了!\")\n iconFlag = true;\n console.log(`我被点了设备图标!${index}`);\n }\n });\n if (iconFlag) {\n break;\n }\n let dot: any = {\n x: x,\n y: y,\n };\n let coordinates: any = pointArr;\n coordinates.map((item: any) => {\n item.x = item.left;\n item.y = item.top;\n });\n let flag = proxyData.queryPtInPolygon(dot, coordinates);\n // console.log(flag);\n if (flag) {\n console.log(\"点击了区域\" + item.localName);\n break;\n }\n }\n },\n queryPtInPolygon(point: any, polygon: any) {\n let p1: any = \"\";\n let p2: any = \"\";\n let p3: any = \"\";\n let p4: any = \"\";\n\n p1 = point;\n p2 = { x: 1000000000000, y: point.y };\n\n let count: any = 0;\n //对每条边都和射线作对比\n for (let i = 0; i < polygon.length - 1; i++) {\n p3 = polygon[i];\n p4 = polygon[i + 1];\n if (checkCross(p1, p2, p3, p4) == true) {\n count++;\n }\n }\n p3 = polygon[polygon.length - 1];\n\n p4 = polygon[0];\n if (checkCross(p1, p2, p3, p4) == true) {\n count++;\n }\n\n return count % 2 == 0 ? false : true;\n\n //判断两条线段是否相交\n function checkCross(p1: any, p2: any, p3: any, p4: any) {\n let v1: any = { x: p1.x - p3.x, y: p1.y - p3.y };\n let v2: any = { x: p2.x - p3.x, y: p2.y - p3.y };\n\n let v3: any = { x: p4.x - p3.x, y: p4.y - p3.y };\n let v: any = crossMul(v1, v3) * crossMul(v2, v3);\n\n v1 = { x: p3.x - p1.x, y: p3.y - p1.y };\n v2 = { x: p4.x - p1.x, y: p4.y - p1.y };\n\n v3 = { x: p2.x - p1.x, y: p2.y - p1.y };\n return v <= 0 && crossMul(v1, v3) * crossMul(v2, v3) <= 0\n ? true\n : false;\n }\n\n //计算向量叉乘\n function crossMul(v1: any, v2: any) {\n return v1.x * v2.y - v1.y * v2.x;\n }\n },\n // 画图标\n drawIcon(ctx: any, url: any, iconPerstion: any) {\n if (iconPerstion) {\n let img: any = new Image();\n img.src = require(`@/assets/svg/${url}`);\n img.onload = function () {\n ctx.drawImage(img, iconPerstion.left, iconPerstion.top, 25, 15);\n iconPerstion.width = 30;\n iconPerstion.height = 30;\n };\n }\n },\n // 设置区域颜色\n setSpaceColor() {\n proxyData.spaceList.map((item: any, index: any) => {\n if (index % 2 == 0) {\n item.fillColor = \"#ffcc33\";\n } else if (index % 3 == 0) {\n item.fillColor = \"#ccff99\";\n } else {\n item.fillColor = \"#ececec\";\n }\n });\n console.log(proxyData.spaceList);\n },\n // 数据格式化\n formSpaceData() {\n proxyData.spaceList = JSON.parse(proxyData.copySpaceArr);\n\n proxyData.spaceList.map((item: any) => {\n item.fillColor = \"#ececec\";\n });\n },\n // 格式化地图数据\n formatePage() {\n let spaceList: any = [\n {\n spaceId: \"1\",\n localName: \"H301\",\n canClick: true,\n pointArr: [\n {\n left: 577.1346,\n top: 1944.0056,\n },\n {\n left: 577.1346,\n top: 2160.6334,\n },\n {\n left: 398.5199,\n top: 2339.25,\n },\n {\n left: 295.3858,\n top: 2339.25,\n },\n {\n left: 295.3858,\n top: 1764.7014,\n },\n {\n left: 397.8632,\n top: 1764.7014,\n },\n ],\n devicePoint: [\n {\n left: 537.493,\n top: 2151.2646,\n },\n ],\n circlePoint: [],\n detailPoint: [\n {\n left: 317.5158,\n top: 1797.2386999999999,\n },\n ],\n logoPointArr: [\n {\n left: 436.2602,\n top: 2052.1476000000002,\n },\n ],\n },\n ];\n proxyData.copySpaceArr = JSON.stringify(spaceList);\n proxyData.formSpaceData();\n },\n\n /**\n * 获取地图信息\n */\n getMapInfo() {\n let params: any = {\n projectId: \"Pj1101080259\",\n floorId: \"Fl11010802593241ec348ecb4148806b9034c8957454\",\n };\n getMapInfo(params)\n .then((res) => {\n // debugger\n let resData: any = res;\n let data: any = resData?.data ?? null;\n proxyData.width = data.width;\n proxyData.height = data.height;\n proxyData.spaceList = data.spaceList;\n proxyData.setSpaceColor();\n proxyData.initCanvas();\n })\n .catch(() => {});\n },\n });\n nextTick(() => {\n proxyData.bindEvent();\n });\n onMounted(() => {\n // proxyData.getMapInfo();\n proxyData.formatePage();\n proxyData.initCanvas();\n });\n return {\n ...toRefs(proxyData),\n };\n },\n});\n","import { render } from \"./CanvasBox.vue?vue&type=template&id=56dbfa6e&scoped=true&ts=true\"\nimport script from \"./CanvasBox.vue?vue&type=script&lang=ts\"\nexport * from \"./CanvasBox.vue?vue&type=script&lang=ts\"\n\nimport \"./CanvasBox.vue?vue&type=style&index=0&id=56dbfa6e&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/wangyong/shanggeyun/code/sagacloud-sagacare-ipad/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-56dbfa6e\"]])\n\nexport default __exports__","\nimport {\n defineComponent,\n onMounted,\n nextTick,\n reactive,\n toRefs,\n watch,\n} from \"vue\";\n\nimport {\n getLocalStorageFloor,\n getStorageSpaceId,\n localStorageFloor,\n localStorageSpaceId,\n parseImgUrl,\n setLocalNewSpaceInfo,\n} from \"@/utils\";\nimport { Toast, Dialog } from \"vant\";\nimport { getBuildingList, getFloorList, getMapInfo } from \"@/apis/envmonitor\";\nimport SpaceSearch from \"@/views/envmonitor/Search/SpaceSearch.vue\";\nimport CanvasBox from \"./CanvasBox.vue\";\nimport { useRouter } from \"vue-router\";\nimport { getSpaceType, mapIcon } from \"@/utils/mapIcon\";\nimport any = jasmine.any;\n\nexport default defineComponent({\n props: {\n projectId: {\n type: String,\n default: () => \"\",\n },\n spaceData: {\n type: Array,\n default: () => [],\n },\n spaceInfo: {\n type: Object,\n default: () => {},\n },\n isSetSpace: {\n type: Boolean,\n default: () => false,\n },\n floorId: {\n type: String,\n default: () => \"\",\n },\n buildingId: {\n type: String,\n default: () => \"\",\n },\n mapType: {\n type: Number,\n default: () => 1,\n },\n },\n components: {\n SpaceSearch,\n CanvasBox,\n },\n setup(props, contx) {\n const router = useRouter();\n const mapData: any = {};\n const document: any = window.document;\n const screenInfo: any = {\n screenWidth: document.body.clientWidth,\n screenHeight: document.body.clientHeight,\n };\n const comMapScale: any = 0.8;\n const displacement: any = {\n scale: 1,\n pageX: 0,\n pageX2: 0,\n originScale: 0,\n moveable: false,\n };\n let buildingData: any = [];\n let floorData: any = [];\n let floorItem: any = {};\n let selectArea: any = {};\n let transformData: any = {};\n let spaceInfo: any = null;\n const proxyData = reactive({\n parseImgUrl: parseImgUrl,\n spaceInfo: spaceInfo,\n isSetSpace: props.isSetSpace, // isSetSpace:true 代表为设置常驻空间页面展示\n widthMapScale: 1,\n tempScale: 0.8,\n comMapScale: comMapScale,\n heightScale: 1,\n showSearch: false,\n isSetSearchSpace: false,\n showBuilding: false,\n showFloor: false,\n buildingItem: {\n buildingId: \"\",\n localName: \"\",\n },\n floorData: floorData,\n floorItem: floorItem,\n buildingData: buildingData,\n mapData: mapData,\n copyMapDaata: mapData,\n selectArea: selectArea,\n displacement: displacement,\n screenInfo: screenInfo,\n transformData: transformData,\n // 切换楼层的时候恢缩放和滚动的样式\n clearPreStyle() {\n let mapDom = document.querySelector(\"#map\");\n mapDom.scrollLeft = 0;\n mapDom.scrollTop = 0;\n let matrix_box: any = document.querySelector(\"#spaceMain\");\n // 记住使用的缩放值\n proxyData.displacement.scale = 1;\n if (matrix_box) {\n matrix_box.style.left = 0 + \"px\";\n matrix_box.style.top = 0 + \"px\";\n }\n },\n swipe(el: any, options: any) {\n //设置开关,监听move事件\n let isMove: any = false;\n // 设置手指触摸开始的坐标\n let startX: any = 0;\n let startY: any = 0;\n // 设置手指移动的坐标\n let moveX: any = 0;\n let moveY: any = 0;\n //设置指针距离元素的边框的距离\n let disX: any = 0;\n let disY: any = 0;\n // 如果用户未传入参数2,自己定义一个\n let fun: any = function () {};\n let data: any = {\n swipeLeft: fun,\n swipeRight: fun,\n swipeDown: fun,\n swipeUp: fun,\n drag: fun,\n };\n // 判断是否传入参数2,有的话覆盖默认值\n Object.assign(data, options);\n // 给元素绑定三个事件\n el.addEventListener(\n \"touchstart\",\n function (e: any) {\n console.log(e);\n //获取手指开始的坐标\n startX = e.touches[0].pageX;\n startY = e.touches[0].pageY;\n //计算指针距离元素边框的位置\n disX = startX - el.offsetLeft;\n disY = startY - el.offsetTop;\n console.log(el.offsetLeft);\n console.log(el.offsetTop);\n console.log(e.touches[0].pageX);\n },\n { passive: true }\n );\n el.addEventListener(\n \"touchmove\",\n function (e: any) {\n if (proxyData.displacement.moveable) {\n return;\n }\n console.log(e);\n //如果触发了move事件,打开开关\n isMove = true;\n // 获取移动时的坐标\n moveX = e.touches[0].pageX;\n moveY = e.touches[0].pageY;\n e.mation = {\n startX: startX,\n startY: startY,\n moveX: moveX,\n moveY: moveY,\n disX: disX,\n disY: disY,\n };\n data.drag.call(el, e);\n // 判断是否触发了move事件\n if (isMove) {\n // 计算水平边长\n let absX: any = Math.abs(moveX - startX);\n // 计算垂直边长\n let absY: any = Math.abs(moveY - startY);\n // 判断垂直还是水平滑动\n if (absX > absY) {\n // console.log('水平滑动');\n //再判断是左滑右滑\n if (moveX - startX > 0) {\n data.swipeRight.call(el, e);\n } else {\n data.swipeLeft.call(el, e);\n }\n } else {\n // console.log('垂直滑动');\n //判断是上滑还是下滑\n if (moveY - startX > 0) {\n // 下滑\n data.swipeDown.call(el, e);\n } else {\n data.swipeUp.call(el, e);\n }\n }\n }\n },\n { passive: true }\n );\n el.addEventListener(\"touchend\", function (e: any) {\n isMove = false;\n });\n },\n /**\n * 地图滚动\n */\n mapScroll() {\n let matrix_box: any = document.querySelector(\"#spaceMain\");\n let houseDesDom = document.querySelector(\"#houseDes\");\n let houseHeight: any = houseDesDom ? houseDesDom.offsetHeight : 0;\n proxyData.swipe(matrix_box, {\n swipeLeft: function (e: any) {\n // debugger;\n if (!proxyData.displacement.moveable) {\n if (matrix_box.offsetWidth < proxyData.screenInfo.screenWidth) {\n } else {\n let width: any =\n matrix_box.offsetWidth -\n Math.abs(e.touches[0].pageX - e.mation.disX);\n if (width < proxyData.screenInfo.screenWidth) {\n matrix_box.style.left =\n -(\n matrix_box.offsetWidth - proxyData.screenInfo.screenWidth\n ) + \"px\";\n } else {\n matrix_box.style.left =\n e.touches[0].pageX - e.mation.disX + \"px\";\n }\n }\n }\n },\n swipeRight: function (e: any) {\n if (!proxyData.displacement.moveable) {\n if (matrix_box.offsetWidth < proxyData.screenInfo.screenWidth) {\n return;\n }\n if (e.touches[0].pageX - e.mation.disX > 0) {\n matrix_box.style.left = 0 + \"px\";\n } else {\n matrix_box.style.left =\n e.touches[0].pageX - e.mation.disX + \"px\";\n }\n }\n },\n swipeDown: function (e: any) {\n if (!proxyData.displacement.moveable) {\n let height: any =\n proxyData.screenInfo.screenHeight - houseHeight - 20;\n let boxHeight: any = matrix_box.offsetHeight;\n if (boxHeight < height) {\n matrix_box.style.top = 0 + \"px\";\n } else {\n if (e.touches[0].pageY - e.mation.disY > 0) {\n matrix_box.style.top = 0 + \"px\";\n } else {\n matrix_box.style.top =\n e.touches[0].pageY - e.mation.disY + \"px\";\n }\n }\n }\n },\n swipeUp: function (e: any) {\n if (!proxyData.displacement.moveable) {\n let houseDesDom = document.querySelector(\"#houseDes\");\n let houseHeight: any = houseDesDom ? houseDesDom.offsetHeight : 0;\n let height: any =\n proxyData.screenInfo.screenHeight - houseHeight - 20;\n let boxHeight: any = matrix_box.offsetHeight;\n let top: any = e.touches[0].pageY - e.mation.disY;\n if (boxHeight < height) {\n matrix_box.style.top = 0 + \"px\";\n } else {\n if (boxHeight - Math.abs(top) < height / 2) {\n matrix_box.style.top = -(boxHeight - height / 2) + \"px\";\n } else {\n matrix_box.style.top =\n e.touches[0].pageY - e.mation.disY + \"px\";\n }\n }\n }\n },\n drag: function (e: any) {},\n });\n },\n /**\n * 关闭搜索页面\n * @param item\n */\n closeSearch(item: any) {\n proxyData.showSearch = false;\n // 搜索页面过来的\n if (item) {\n proxyData.isSetSearchSpace = true;\n proxyData.loadingStart();\n let searchSpace: any = {\n buildingId: item.buildingId,\n buildingName: \"\",\n floorId: item.floorId,\n floorName: \"\",\n spaceId: item.id,\n };\n proxyData.init(searchSpace);\n } else {\n proxyData.isSetSearchSpace = false;\n }\n },\n /*\n 去搜索页面\n */\n goSearch() {\n proxyData.showSearch = true;\n // router.push({ path: '/search' })\n },\n /**\n * 设置选中的空间的位置,\n */\n setSelectSpacePosition(area: any) {\n setTimeout(() => {\n proxyData.setScrollLeft(area);\n proxyData.scrollTop(area);\n });\n },\n /**\n * 判断像左还是像右滚动\n */\n setScrollLeft(area: any) {\n let mapBoxEle = document.querySelector(\"#spaceMain\");\n let left: any = 0;\n if (area.left + area.width >= proxyData.screenInfo.screenWidth / 2) {\n left =\n area.left - proxyData.screenInfo.screenWidth / 2 + area.width / 2;\n left = ~left;\n } else {\n left = 0;\n }\n if (left > 0) {\n left = 0;\n }\n if (\n Math.abs(left) >\n mapBoxEle.offsetWidth - proxyData.screenInfo.screenWidth\n ) {\n left = -(mapBoxEle.offsetWidth - proxyData.screenInfo.screenWidth);\n }\n mapBoxEle.style.left = left + \"px\";\n },\n /**\n * 获取竖着的方向\n */\n scrollTop(area: any) {\n let mapDom = document.querySelector(\"#map\");\n let mapBoxEle = document.querySelector(\"#spaceMain\");\n let houseDesDom = document.querySelector(\"#houseDes\");\n let houseHeight: any = houseDesDom ? houseDesDom.offsetHeight : 0;\n let top: any = 0;\n if (\n area.top + area.width >\n (proxyData.screenInfo.screenHeight - houseHeight - 20) / 2\n ) {\n top =\n area.top -\n (proxyData.screenInfo.screenHeight - houseHeight) / 2 +\n area.height / 2;\n } else {\n top = 0;\n }\n top = ~top;\n if (top > 0) {\n top = 0;\n }\n mapBoxEle.style.top = top + \"px\";\n },\n /**\n * 切换空间\n */\n checkSpace(area: any) {\n if (area.disabled) {\n // 如果不在\n Toast(\"该空间和平板没绑定,暂不支持查看\");\n return;\n }\n proxyData.isSetSearchSpace = false;\n if (area && area.canClick) {\n proxyData.setSelectSpacePosition(area);\n proxyData.selectArea = area;\n proxyData.selectArea.buildingId = proxyData.buildingItem.buildingId;\n proxyData.setLocalSpaceInfo();\n contx.emit(\"changeSpace\", proxyData.selectArea);\n } else {\n Toast(\"不可选区域\");\n }\n },\n /**\n * 确认设置为常驻空间\n */\n comfirSetSpace(item: any) {\n if (item.spaceId === props.spaceInfo.spaceId) {\n Dialog.confirm({\n title: \"取消常驻空间\",\n confirmButtonColor: \"#000000\",\n cancelButtonColor: \"#4D5262\",\n message: `\n 是否取消常驻空间设置 ? `,\n })\n .then(() => {\n contx.emit(\"delPermanentSpace\");\n })\n .catch(() => {});\n } else {\n Dialog.confirm({\n title: \"设置常驻空间\",\n confirmButtonColor: \"#000000\",\n cancelButtonColor: \"#4D5262\",\n message: `是否将常驻空间设置为${item.localName}?`,\n })\n .then(() => {\n proxyData.selectArea = item;\n contx.emit(\"changeSpaceId\", proxyData.selectArea.spaceId);\n })\n .catch(() => {});\n }\n },\n /**\n * 本地缓存最新的空间建筑信息,提供给首次进入页面使用\n */\n setLocalSpaceInfo() {\n localStorageSpaceId(\n proxyData.buildingItem.buildingId,\n proxyData.floorItem.id,\n proxyData.selectArea.spaceId\n );\n let spaceInfo: any = {\n buildingId: proxyData.buildingItem.buildingId,\n buildingName: proxyData.buildingItem.localName,\n floorId: proxyData.floorItem.id,\n floorName: proxyData.floorItem.localName,\n spaceId: proxyData.selectArea.spaceId, // 上格云3\n };\n setLocalNewSpaceInfo(spaceInfo);\n },\n /**\n * 地图放大的距离\n * @param start\n * @param stop\n */\n getDistance(start: any, stop: any) {\n return Math.hypot(stop.x - start.x, stop.y - start.y);\n },\n /**\n * 格式化地图数据\n */\n formateMapData() {\n let spaceData: any = props.spaceData;\n let data: any = proxyData.mapData;\n if (data) {\n proxyData.setSpaceScale();\n proxyData.setTempScale();\n if (data.width < 3000) {\n proxyData.comMapScale = 0.8;\n }\n data.width = data.width * proxyData.comMapScale;\n data.height = data.height * proxyData.comMapScale;\n let spaceList: any = data?.spaceList ?? [];\n for (let i = 0; i < spaceList.length; i++) {\n let item = spaceList[i];\n item.width = item.width * proxyData.comMapScale;\n item.height = item.height * proxyData.comMapScale;\n item.top = item.top * proxyData.comMapScale;\n item.left = item.left * proxyData.comMapScale;\n let flag: any = true;\n for (let j = 0; j < spaceData.length; j++) {\n if (item.spaceId === spaceData[j].spaceId) {\n flag = false;\n break;\n }\n }\n if (flag) {\n item.disabled = true;\n }\n // item.canClick = !item.canClick\n proxyData.setSpaceIcon(item);\n }\n // console.log(\" proxyData.mapData proxyData.mapData\");\n // console.log(proxyData.mapData);\n // 备份数据\n proxyData.copyMapDaata = JSON.parse(JSON.stringify(data));\n }\n },\n // 获取空间最小宽\n setSpaceScale() {\n let data: any = proxyData.mapData;\n if (data) {\n let spaceList: any = data?.spaceList ?? [];\n let minHeight: any = Math.min.apply(\n null,\n spaceList.map((item: any) => item.height)\n );\n let minWidth: any = Math.min.apply(\n null,\n spaceList.map((item: any) => item.width)\n );\n let min: any = minHeight < minWidth ? minHeight : minWidth;\n min = min ? min : 30;\n proxyData.comMapScale = 30 / min;\n }\n },\n // 缩放的临界值修改\n setTempScale() {\n proxyData.tempScale = 0.4;\n let data: any = proxyData.mapData;\n if (data) {\n let width: any = proxyData.mapData.width;\n let height: any = proxyData.mapData.height;\n if (width > height) {\n let num: any = Math.ceil(width / proxyData.screenInfo.screenWidth);\n if (num < 10) {\n proxyData.tempScale = 0.4;\n } else if (num < 20) {\n proxyData.tempScale = 0.3;\n } else {\n proxyData.tempScale = 0.25;\n }\n } else {\n let num: any = Math.ceil(\n height / proxyData.screenInfo.screenHeight\n );\n if (num < 10) {\n proxyData.tempScale = 0.4;\n } else if (num < 20) {\n proxyData.tempScale = 0.3;\n } else {\n proxyData.tempScale = 0.25;\n }\n }\n }\n },\n /**\n * 设置地图最外框宽和高\n */\n setMapBoxStyle() {\n let mapBoxEle = document.querySelector(\"#spaceMain\");\n if (proxyData.mapData && proxyData.mapData.width) {\n mapBoxEle.style.width = proxyData.mapData.width + \"px\";\n mapBoxEle.style.height = proxyData.mapData.height + \"px\";\n }\n },\n /**\n * 设置空间的图标\n *\n */\n setSpaceIcon(item: any) {\n // if(item.can)\n if (item.canClick) {\n let typeName: any = getSpaceType(item.roomFuncType);\n item.icon = mapIcon[typeName].icon;\n item.selectIcon = mapIcon[typeName].selectIcon;\n item.backgroundColor = mapIcon[typeName].backgroundColor;\n item.bg = mapIcon[typeName].bg;\n item.icon = parseImgUrl(\"map-new-icon\", item.icon);\n item.selectIcon = parseImgUrl(\"map-new-icon\", item.selectIcon);\n } else {\n item.icon = \"\";\n }\n },\n midpoint(x1: any, y1: any, x2: any, y2: any) {\n return [x1 + (x2 - x1) / 2, y1 + (y2 - y1) / 2];\n // return [x1 + x2 / 2, y1 + (y2 - y1)]\n },\n /**\n * 更新地图的宽高\n */\n updateMapStyle() {\n let data: any = JSON.parse(JSON.stringify(proxyData.copyMapDaata));\n if (data) {\n data.width = data.width * proxyData.displacement.scale;\n data.height = data.height * proxyData.displacement.scale;\n let spaceList: any = data?.spaceList ?? [];\n for (let i = 0; i < spaceList.length; i++) {\n let item = spaceList[i];\n item.width = item.width * proxyData.displacement.scale;\n item.height = item.height * proxyData.displacement.scale;\n item.top = item.top * proxyData.displacement.scale;\n item.left = item.left * proxyData.displacement.scale;\n }\n proxyData.mapData = data;\n proxyData.setMapBoxStyle();\n }\n },\n /**\n * 更新地图的位置\n */\n updateMapPositon(temp: any, matrix_box: any) {\n // let left: any = (proxyData.displacement.oldSize[0] - proxyData.displacement.oldSize[0] * proxyData.displacement.scale) * proxyData.displacement.scaleTranslateProportion[0]\n // let top: any = (proxyData.displacement.oldSize[1] - proxyData.displacement.oldSize[1] * proxyData.displacement.scale) * proxyData.displacement.scaleTranslateProportion[1]\n\n let left: any =\n proxyData.displacement.scaleCenter[0] -\n proxyData.displacement.scaleCenter[0] * proxyData.displacement.scale;\n let top: any =\n proxyData.displacement.scaleCenter[1] -\n proxyData.displacement.scaleCenter[1] * proxyData.displacement.scale;\n if (temp > 0 && proxyData.displacement.scale < 1) {\n if (left > 0) {\n left = ~left;\n }\n if (top > 0) {\n top = ~top;\n // top = 0\n }\n }\n let newTop: any =\n proxyData.displacement.top * proxyData.displacement.scale + top;\n let newLeft: any =\n proxyData.displacement.left * proxyData.displacement.scale + left;\n if (matrix_box.offsetWidth < proxyData.screenInfo.screenWidth) {\n newLeft = 0;\n }\n if (newLeft > 0) {\n matrix_box.style.left = 0 + \"px\";\n } else {\n matrix_box.style.left = newLeft + \"px\";\n }\n if (matrix_box.offsetHeight < proxyData.screenInfo.screenHeight) {\n matrix_box.style.top = 0;\n } else {\n if (newTop > 0) {\n matrix_box.style.top = 0;\n } else {\n matrix_box.style.top = newTop + \"px\";\n }\n }\n },\n /**\n * 地图缩放功能\n */\n mapScale() {\n let matrix_box: any = document.querySelector(\"#spaceMain\");\n matrix_box.addEventListener(\n \"touchstart\",\n function (event: any) {\n let touches: any = event.touches;\n let events: any = touches[0];\n let events2: any = touches[1];\n // 第一个触摸点的坐标\n proxyData.displacement.pageX = events.pageX;\n proxyData.displacement.pageY = events.pageY;\n\n proxyData.displacement.moveable = true;\n\n proxyData.displacement.originScale =\n proxyData.displacement.scale || 1;\n if (events2) {\n proxyData.displacement.pageX2 = events2.pageX;\n proxyData.displacement.pageY2 = events2.pageY;\n let left: any = isNaN(parseInt(matrix_box.style.left))\n ? 0\n : parseInt(matrix_box.style.left);\n let top: any = isNaN(parseInt(matrix_box.style.top))\n ? 0\n : parseInt(matrix_box.style.top);\n proxyData.displacement.center = proxyData.midpoint(\n events.pageX,\n events.pageY,\n events2.pageX,\n events2.pageY\n );\n proxyData.displacement.left = left / proxyData.displacement.scale;\n proxyData.displacement.top = top / proxyData.displacement.scale;\n proxyData.displacement.scaleCenter = [\n proxyData.displacement.center[0] / proxyData.displacement.scale,\n proxyData.displacement.center[1] / proxyData.displacement.scale,\n ];\n proxyData.displacement.scaleTranslateProportion = [\n proxyData.displacement.scaleCenter[0] /\n (matrix_box.offsetWidth / proxyData.displacement.scale),\n proxyData.displacement.scaleCenter[1] /\n (matrix_box.offsetHeight / proxyData.displacement.scale),\n ];\n proxyData.displacement.oldSize = [\n matrix_box.offsetWidth / proxyData.displacement.scale,\n matrix_box.offsetHeight / proxyData.displacement.scale,\n ];\n } else {\n proxyData.displacement.moveable = false;\n }\n },\n { passive: true }\n );\n matrix_box.addEventListener(\n \"touchmove\",\n function (event: any) {\n if (!proxyData.displacement.moveable) {\n return;\n }\n // event.preventDefault();\n let touches: any = event.touches;\n let events: any = touches[0];\n let events2: any = touches[1];\n // 双指移动\n if (events2) {\n // 第2个指头坐标在touchmove时候获取\n if (!proxyData.displacement.pageX2) {\n proxyData.displacement.pageX2 = events2.pageX;\n }\n if (!proxyData.displacement.pageY2) {\n proxyData.displacement.pageY2 = events2.pageY;\n }\n\n // 双指缩放比例计算\n let zoom: any =\n proxyData.getDistance(\n {\n x: events.pageX,\n y: events.pageY,\n },\n {\n x: events2.pageX,\n y: events2.pageY,\n }\n ) /\n proxyData.getDistance(\n {\n x: proxyData.displacement.pageX,\n y: proxyData.displacement.pageY,\n },\n {\n x: proxyData.displacement.pageX2,\n y: proxyData.displacement.pageY2,\n }\n );\n // 应用在元素上的缩放比例\n let newScale: any = proxyData.displacement.originScale * zoom;\n if (newScale < proxyData.tempScale) {\n newScale = proxyData.tempScale;\n }\n // 最大缩放比例限制\n if (newScale > 1.5) {\n newScale = 1.5;\n }\n let temp: any = newScale - proxyData.displacement.scale;\n proxyData.displacement.scale = newScale;\n if (temp !== 0) {\n proxyData.updateMapPositon(temp, matrix_box);\n proxyData.updateMapStyle();\n }\n }\n },\n { passive: true }\n );\n matrix_box.addEventListener(\"touchend\", function () {\n proxyData.displacement.moveable = true;\n });\n },\n /**\n * 获取建筑信息\n */\n getBuildingList() {\n let params: any = {\n criteria: {\n projectId: props.projectId,\n },\n orders: [\n {\n asc: true,\n column: \"localId\",\n },\n ],\n };\n getBuildingList(params).then((res) => {\n let resData: any = res;\n if (resData.result === \"success\") {\n let content: any = resData?.content ?? [];\n proxyData.buildingData = content;\n // 设置展示的建筑名称\n proxyData.setBuildingName();\n }\n });\n },\n /**\n *\n * 选择建筑\n */\n checkBuilding() {\n proxyData.showBuilding = true;\n },\n /**\n * 选择楼层\n */\n checkFloor() {\n proxyData.showFloor = true;\n },\n /**\n * 确定选择的楼层信息\n */\n comfirmFloor(item: any, flag: boolean = true) {\n proxyData.floorItem = item;\n proxyData.showFloor = false;\n // 获取地图数据\n proxyData.loadingStart();\n proxyData.getMapInfo(flag);\n /**\n *缓存建筑对应的楼层\n */\n localStorageFloor(\n proxyData.buildingItem.buildingId,\n proxyData.floorItem.id\n );\n },\n /**\n * 确定建筑\n */\n comfirmBuilding(item: any) {\n proxyData.showBuilding = false;\n proxyData.buildingItem.buildingId = item.id;\n proxyData.buildingItem.localName = item.localName;\n proxyData.loadingStart();\n proxyData.getFloorList();\n },\n /**\n * 加载loading\n */\n loadingStart() {\n Toast.loading({\n duration: 0, // 持续展示 toast\n forbidClick: true,\n message: \"加载中...\",\n });\n },\n /**\n * 结束\n */\n loadinngEnd() {\n Toast.clear();\n },\n /**\n * 查询楼层信息\n */\n getFloorList(flag: boolean = true) {\n if (proxyData.buildingItem.buildingId) {\n let params: any = {\n criteria: {\n projectId: props.projectId,\n buildingId: proxyData.buildingItem.buildingId,\n },\n orders: [\n {\n asc: true,\n column: \"localId\",\n },\n ],\n };\n getFloorList(params)\n .then((res) => {\n let resData: any = res;\n if (res.result === \"success\") {\n proxyData.floorData = resData?.content ?? [];\n // 设置楼层的名称\n proxyData.setFloorName();\n } else {\n proxyData.floorData = [];\n }\n if (flag && proxyData.floorData.length) {\n proxyData.getHistorySelectFloor();\n proxyData.getMapInfo();\n }\n proxyData.loadinngEnd();\n })\n .catch(() => {\n proxyData.loadinngEnd();\n });\n }\n },\n /**\n * 获取地图信息\n */\n getMapInfo(flag: boolean = true, searchItem: any = null) {\n let params: any = {\n projectId: props.projectId,\n floorId: proxyData.floorItem.id,\n };\n getMapInfo(params)\n .then((res) => {\n let resData: any = res;\n // debugger;\n if (resData.result === \"success\") {\n proxyData.mapData = resData?.data ?? null;\n // 切换数据的时候清楚默认样式\n proxyData.clearPreStyle();\n proxyData.formateMapData();\n\n // 首次进入页面的时候展示空间来源于父div\n if (searchItem) {\n let area = proxyData.getFirstSelectSpace(searchItem);\n // debugger\n if (area) {\n proxyData.selectArea = area;\n }\n }\n proxyData.setSelectSpacePosition(proxyData.selectArea);\n // 接口返回后设置地图缩放和滚动\n nextTick(() => {\n // 地图双指缩放\n proxyData.setMapBoxStyle();\n proxyData.mapScale();\n proxyData.mapScroll();\n });\n }\n // setTimeout(() => {\n // proxyData.loadinngEnd()\n // }, 1000)\n })\n .catch(() => {\n proxyData.loadinngEnd();\n });\n },\n /**\n * 获取缓存的楼层\n */\n getHistorySelectFloor() {\n let historyFloor: any = getLocalStorageFloor();\n let flag: any = false;\n let floorId: any = historyFloor[proxyData.buildingItem.buildingId];\n proxyData.floorData.map((floor: any) => {\n if (floor.id === floorId) {\n flag = true;\n proxyData.floorItem = floor;\n }\n });\n if (!flag) {\n proxyData.floorItem = proxyData.floorData[0];\n }\n },\n /**\n * 获取选中的选中空间\n */\n getHistorySpace() {\n let data: any = proxyData.mapData;\n let historySpace: any = getStorageSpaceId();\n if (data) {\n let flag: boolean = false;\n let spaceList = data?.spaceList ?? [];\n let key: any = `${proxyData.buildingItem.buildingId},${proxyData.floorItem.id}`;\n let spaceId: any = historySpace[key];\n if (spaceId) {\n spaceList.map((space: any) => {\n if (spaceId === space.spaceId) {\n proxyData.selectArea = space;\n flag = true;\n }\n });\n }\n if (!flag) {\n for (let i: any = 0; i < spaceList.length; i++) {\n if (spaceList[i].canClick) {\n proxyData.selectArea = spaceList[i];\n break;\n }\n }\n }\n }\n },\n /**\n * 首次进入页面设置选中的空间\n */\n getFirstSelectSpace(item: any) {\n let area: any = null;\n let data: any = proxyData.mapData;\n // debugger;\n if (data && item) {\n let spaceList = data?.spaceList ?? [];\n for (let i = 0; i < spaceList.length; i++) {\n if (spaceList[i].spaceId === item.spaceId) {\n // proxyData.selectArea = spaceList[i]\n area = spaceList[i];\n break;\n }\n }\n }\n return area;\n },\n setDefaultSpace(item: any) {\n if (item) {\n proxyData.buildingItem.buildingId = item.buildingId;\n proxyData.buildingItem.localName = item.buildingName\n ? item.buildingName\n : \"\";\n proxyData.floorItem = {\n id: item.floorId,\n localName: item.floorName ? item.floorName : \"\",\n };\n }\n },\n // 设备模块初始化地图\n init(item: any) {\n // debugger;\n if (item) {\n proxyData.setDefaultSpace(item);\n }\n proxyData.getBuildingList();\n proxyData.getFloorList(false);\n proxyData.getMapInfo(false, item);\n },\n\n /**\n *搜索后设置建筑的localName\n */\n setBuildingName() {\n if (proxyData.buildingItem.buildingId) {\n proxyData.buildingData.map((item: any) => {\n if (item.id === proxyData.buildingItem.buildingId) {\n proxyData.buildingItem.localName = item.localName;\n }\n });\n } else {\n // 设置常驻空间的时候使用\n proxyData.buildingItem = {\n buildingId: proxyData.buildingData[0].id,\n localName: proxyData.buildingData[0].localName,\n };\n }\n },\n /**\n * 搜索页面回来根据id设置楼层的localName\n */\n setFloorName() {\n if (proxyData.floorItem.id) {\n proxyData.floorData.map((item: any) => {\n if (item.id === proxyData.floorItem.id) {\n proxyData.floorItem.localName = item.localName;\n }\n });\n } else {\n // 设置常驻空间的时候使用\n proxyData.floorItem = proxyData.floorData[0];\n }\n },\n });\n watch(props, (newProps: any) => {}, {\n deep: false,\n immediate: true,\n });\n onMounted(() => {\n proxyData.spaceInfo = props.spaceInfo;\n proxyData.buildingItem.buildingId = props.buildingId;\n proxyData.floorItem.id = props.floorId;\n proxyData.spaceInfo.buildingId = props.buildingId;\n proxyData.spaceInfo.floorId = props.floorId;\n proxyData.selectArea.spaceId = props.spaceInfo.spaceId;\n // debugger;\n proxyData.init(proxyData.spaceInfo);\n });\n return {\n ...toRefs(proxyData),\n };\n },\n});\n","import { render } from \"./MapBox.vue?vue&type=template&id=78455464&scoped=true&ts=true\"\nimport script from \"./MapBox.vue?vue&type=script&lang=ts\"\nexport * from \"./MapBox.vue?vue&type=script&lang=ts\"\n\nimport \"./MapBox.vue?vue&type=style&index=0&id=78455464&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/wangyong/shanggeyun/code/sagacloud-sagacare-ipad/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-78455464\"]])\n\nexport default __exports__","module.exports = __webpack_public_path__ + \"static/img/deviceroom.01480d11.svg\";","import { createVNode as _createVNode } from \"vue\";\nimport { defineComponent } from \"vue\";\nimport { truthProp, createNamespace } from \"../utils\";\nimport { useChildren } from \"@vant/use\";\nconst [name, bem] = createNamespace(\"action-bar\");\nconst ACTION_BAR_KEY = Symbol(name);\nconst actionBarProps = {\n safeAreaInsetBottom: truthProp\n};\nvar stdin_default = defineComponent({\n name,\n props: actionBarProps,\n setup(props, {\n slots\n }) {\n const {\n linkChildren\n } = useChildren(ACTION_BAR_KEY);\n linkChildren();\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"class\": [bem(), {\n \"van-safe-area-bottom\": props.safeAreaInsetBottom\n }]\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);\n };\n }\n});\nexport {\n ACTION_BAR_KEY,\n stdin_default as default\n};\n","import { withInstall } from \"../utils\";\nimport _ActionBar from \"./ActionBar\";\nconst ActionBar = withInstall(_ActionBar);\nvar stdin_default = ActionBar;\nexport {\n ActionBar,\n stdin_default as default\n};\n","import { createVNode as _createVNode } from \"vue\";\nimport { computed, defineComponent } from \"vue\";\nimport { extend, createNamespace } from \"../utils\";\nimport { ACTION_BAR_KEY } from \"../action-bar/ActionBar\";\nimport { useParent } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose\";\nimport { useRoute, routeProps } from \"../composables/use-route\";\nimport { Button } from \"../button\";\nconst [name, bem] = createNamespace(\"action-bar-button\");\nconst actionBarButtonProps = extend({}, routeProps, {\n type: String,\n text: String,\n icon: String,\n color: String,\n loading: Boolean,\n disabled: Boolean\n});\nvar stdin_default = defineComponent({\n name,\n props: actionBarButtonProps,\n setup(props, {\n slots\n }) {\n const route = useRoute();\n const {\n parent,\n index\n } = useParent(ACTION_BAR_KEY);\n const isFirst = computed(() => {\n if (parent) {\n const prev = parent.children[index.value - 1];\n return !(prev && \"isButton\" in prev);\n }\n });\n const isLast = computed(() => {\n if (parent) {\n const next = parent.children[index.value + 1];\n return !(next && \"isButton\" in next);\n }\n });\n useExpose({\n isButton: true\n });\n return () => {\n const {\n type,\n icon,\n text,\n color,\n loading,\n disabled\n } = props;\n return _createVNode(Button, {\n \"class\": bem([type, {\n last: isLast.value,\n first: isFirst.value\n }]),\n \"size\": \"large\",\n \"type\": type,\n \"icon\": icon,\n \"color\": color,\n \"loading\": loading,\n \"disabled\": disabled,\n \"onClick\": route\n }, {\n default: () => [slots.default ? slots.default() : text]\n });\n };\n }\n});\nexport {\n stdin_default as default\n};\n","import { withInstall } from \"../utils\";\nimport _ActionBarButton from \"./ActionBarButton\";\nconst ActionBarButton = withInstall(_ActionBarButton);\nvar stdin_default = ActionBarButton;\nexport {\n ActionBarButton,\n stdin_default as default\n};\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { ref, reactive, withKeys, defineComponent } from \"vue\";\nimport { noop, pick, extend, addUnit, truthProp, isFunction, BORDER_TOP, BORDER_LEFT, unknownProp, numericProp, makeStringProp, callInterceptor, createNamespace } from \"../utils\";\nimport { popupSharedProps, popupSharedPropKeys } from \"../popup/shared\";\nimport { Popup } from \"../popup\";\nimport { Button } from \"../button\";\nimport { ActionBar } from \"../action-bar\";\nimport { ActionBarButton } from \"../action-bar-button\";\nconst [name, bem, t] = createNamespace(\"dialog\");\nconst dialogProps = extend({}, popupSharedProps, {\n title: String,\n theme: String,\n width: numericProp,\n message: [String, Function],\n callback: Function,\n allowHtml: Boolean,\n className: unknownProp,\n transition: makeStringProp(\"van-dialog-bounce\"),\n messageAlign: String,\n closeOnPopstate: truthProp,\n showCancelButton: Boolean,\n cancelButtonText: String,\n cancelButtonColor: String,\n confirmButtonText: String,\n confirmButtonColor: String,\n showConfirmButton: truthProp,\n closeOnClickOverlay: Boolean\n});\nconst popupInheritKeys = [...popupSharedPropKeys, \"transition\", \"closeOnPopstate\"];\nvar stdin_default = defineComponent({\n name,\n props: dialogProps,\n emits: [\"confirm\", \"cancel\", \"keydown\", \"update:show\"],\n setup(props, {\n emit,\n slots\n }) {\n const root = ref();\n const loading = reactive({\n confirm: false,\n cancel: false\n });\n const updateShow = (value) => emit(\"update:show\", value);\n const close = (action) => {\n var _a;\n updateShow(false);\n (_a = props.callback) == null ? void 0 : _a.call(props, action);\n };\n const getActionHandler = (action) => () => {\n if (!props.show) {\n return;\n }\n emit(action);\n if (props.beforeClose) {\n loading[action] = true;\n callInterceptor(props.beforeClose, {\n args: [action],\n done() {\n close(action);\n loading[action] = false;\n },\n canceled() {\n loading[action] = false;\n }\n });\n } else {\n close(action);\n }\n };\n const onCancel = getActionHandler(\"cancel\");\n const onConfirm = getActionHandler(\"confirm\");\n const onKeydown = withKeys((event) => {\n var _a, _b;\n if (event.target !== ((_b = (_a = root.value) == null ? void 0 : _a.popupRef) == null ? void 0 : _b.value)) {\n return;\n }\n const onEventType = {\n Enter: props.showConfirmButton ? onConfirm : noop,\n Escape: props.showCancelButton ? onCancel : noop\n };\n onEventType[event.key]();\n emit(\"keydown\", event);\n }, [\"enter\", \"esc\"]);\n const renderTitle = () => {\n const title = slots.title ? slots.title() : props.title;\n if (title) {\n return _createVNode(\"div\", {\n \"class\": bem(\"header\", {\n isolated: !props.message && !slots.default\n })\n }, [title]);\n }\n };\n const renderMessage = (hasTitle) => {\n const {\n message,\n allowHtml,\n messageAlign\n } = props;\n const classNames = bem(\"message\", {\n \"has-title\": hasTitle,\n [messageAlign]: messageAlign\n });\n const content = isFunction(message) ? message() : message;\n if (allowHtml && typeof content === \"string\") {\n return _createVNode(\"div\", {\n \"class\": classNames,\n \"innerHTML\": content\n }, null);\n }\n return _createVNode(\"div\", {\n \"class\": classNames\n }, [content]);\n };\n const renderContent = () => {\n if (slots.default) {\n return _createVNode(\"div\", {\n \"class\": bem(\"content\")\n }, [slots.default()]);\n }\n const {\n title,\n message,\n allowHtml\n } = props;\n if (message) {\n const hasTitle = !!(title || slots.title);\n return _createVNode(\"div\", {\n \"key\": allowHtml ? 1 : 0,\n \"class\": bem(\"content\", {\n isolated: !hasTitle\n })\n }, [renderMessage(hasTitle)]);\n }\n };\n const renderButtons = () => _createVNode(\"div\", {\n \"class\": [BORDER_TOP, bem(\"footer\")]\n }, [props.showCancelButton && _createVNode(Button, {\n \"size\": \"large\",\n \"text\": props.cancelButtonText || t(\"cancel\"),\n \"class\": bem(\"cancel\"),\n \"style\": {\n color: props.cancelButtonColor\n },\n \"loading\": loading.cancel,\n \"onClick\": onCancel\n }, null), props.showConfirmButton && _createVNode(Button, {\n \"size\": \"large\",\n \"text\": props.confirmButtonText || t(\"confirm\"),\n \"class\": [bem(\"confirm\"), {\n [BORDER_LEFT]: props.showCancelButton\n }],\n \"style\": {\n color: props.confirmButtonColor\n },\n \"loading\": loading.confirm,\n \"onClick\": onConfirm\n }, null)]);\n const renderRoundButtons = () => _createVNode(ActionBar, {\n \"class\": bem(\"footer\")\n }, {\n default: () => [props.showCancelButton && _createVNode(ActionBarButton, {\n \"type\": \"warning\",\n \"text\": props.cancelButtonText || t(\"cancel\"),\n \"class\": bem(\"cancel\"),\n \"color\": props.cancelButtonColor,\n \"loading\": loading.cancel,\n \"onClick\": onCancel\n }, null), props.showConfirmButton && _createVNode(ActionBarButton, {\n \"type\": \"danger\",\n \"text\": props.confirmButtonText || t(\"confirm\"),\n \"class\": bem(\"confirm\"),\n \"color\": props.confirmButtonColor,\n \"loading\": loading.confirm,\n \"onClick\": onConfirm\n }, null)]\n });\n const renderFooter = () => {\n if (slots.footer) {\n return slots.footer();\n }\n return props.theme === \"round-button\" ? renderRoundButtons() : renderButtons();\n };\n return () => {\n const {\n width,\n title,\n theme,\n message,\n className\n } = props;\n return _createVNode(Popup, _mergeProps({\n \"ref\": root,\n \"role\": \"dialog\",\n \"class\": [bem([theme]), className],\n \"style\": {\n width: addUnit(width)\n },\n \"tabindex\": 0,\n \"aria-labelledby\": title || message,\n \"onKeydown\": onKeydown,\n \"onUpdate:show\": updateShow\n }, pick(props, popupInheritKeys)), {\n default: () => [renderTitle(), renderContent(), renderFooter()]\n });\n };\n }\n});\nexport {\n stdin_default as default\n};\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\nimport { extend, inBrowser, withInstall } from \"../utils\";\nimport { mountComponent, usePopupState } from \"../utils/mount-component\";\nimport VanDialog from \"./Dialog\";\nlet instance;\nfunction initInstance() {\n const Wrapper = {\n setup() {\n const {\n state,\n toggle\n } = usePopupState();\n return () => _createVNode(VanDialog, _mergeProps(state, {\n \"onUpdate:show\": toggle\n }), null);\n }\n };\n ({\n instance\n } = mountComponent(Wrapper));\n}\nfunction Dialog(options) {\n if (!inBrowser) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n if (!instance) {\n initInstance();\n }\n instance.open(extend({}, Dialog.currentOptions, options, {\n callback: (action) => {\n (action === \"confirm\" ? resolve : reject)(action);\n }\n }));\n });\n}\nDialog.defaultOptions = {\n title: \"\",\n width: \"\",\n theme: null,\n message: \"\",\n overlay: true,\n callback: null,\n teleport: \"body\",\n className: \"\",\n allowHtml: false,\n lockScroll: true,\n transition: void 0,\n beforeClose: null,\n overlayClass: \"\",\n overlayStyle: void 0,\n messageAlign: \"\",\n cancelButtonText: \"\",\n cancelButtonColor: null,\n confirmButtonText: \"\",\n confirmButtonColor: null,\n showConfirmButton: true,\n showCancelButton: false,\n closeOnPopstate: true,\n closeOnClickOverlay: false\n};\nDialog.currentOptions = extend({}, Dialog.defaultOptions);\nDialog.alert = Dialog;\nDialog.confirm = (options) => Dialog(extend({\n showCancelButton: true\n}, options));\nDialog.close = () => {\n if (instance) {\n instance.toggle(false);\n }\n};\nDialog.setDefaultOptions = (options) => {\n extend(Dialog.currentOptions, options);\n};\nDialog.resetDefaultOptions = () => {\n Dialog.currentOptions = extend({}, Dialog.defaultOptions);\n};\nDialog.Component = withInstall(VanDialog);\nDialog.install = (app) => {\n app.use(Dialog.Component);\n app.config.globalProperties.$dialog = Dialog;\n};\nexport {\n Dialog\n};\n","import { Dialog } from \"./function-call\";\nvar stdin_default = Dialog;\nexport {\n Dialog,\n stdin_default as default\n};\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA3SURBVHgBzcmxDQAgCAVRPxO5ipM6ko0xxkYnQKUHaq654iEZ9bUzMSo8ZLpFxTFPk4dAycXfA1ISQWorFT5NAAAAAElFTkSuQmCC\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#fff\",\"menuText\":\"#162b64\",\"menuActiveText\":\"#435ebe\"};","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./SpaceSearch.vue?vue&type=style&index=0&id=44b481c8&lang=scss&scoped=true\"","var $ = require('../internals/export');\n\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, forced: BUGGY }, {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","import { RootObject, RootWeatherObject } from '@/model/rootObject'\nimport { CompanyModel, OutherWeather, SpaceModel } from '@/model/userModel'\nimport { https, post } from '@/utils/https'\nimport { ContentType, Method, RequestParams } from 'axios-mapper'\nimport { setQueryConfig } from '@/utils'\nimport { customService, duoduoenvService, objectService, setupService, testApi, weachatService } from '@/config'\n\n// const comInfo = getUserInfo()\n// const comParams: string = \"\"\n\n// https://sagacare-h5.tenants.link/api/company/config/245e7060643811eb934c0237aedb39a6\nexport const getCompanyInfo = (companyInfo: RequestParams) => {\n return https().request<RootObject<CompanyModel>>(`/api/company/config/${companyInfo.companyId}`, Method.GET, undefined, ContentType.json)\n}\nexport const getWeather = (params: string) => {\n return https().request<RootWeatherObject<OutherWeather>>(`${objectService}weather/getCurrent?${params}`, Method.GET, undefined, ContentType.json)\n}\nexport const getSpaceInfo = (data: any) => {\n return https().request<RootWeatherObject<SpaceModel>>(`${duoduoenvService}space/property`, Method.POST, data, ContentType.json)\n}\n\n// 获取会议室场景\nexport const getMeetingSceneHttp = (params: any) => {\n return https().request<any>(`${duoduoenvService}meeting/room/scene/getMeetingScene/V2?spaceId=${params.spaceId}`, Method.GET, undefined, ContentType.json)\n}\n// 获取设备信息\nexport const getEquipmentListHttp = (params: any) => {\n return https().request<any>(`${duoduoenvService}object/equipment/findForServe?spaceId=${params.spaceId}`, Method.POST, undefined, ContentType.json)\n}\n// 查询定制时间\nexport const getSetTimeHttp = (params: any) => {\n return https().request<any>(`${duoduoenvService}customScene/queryCustom?spaceId=${params.spaceId}`, Method.GET, undefined, ContentType.json)\n}\n// 空调 - 调节文案/空调信息\nexport const getFeedbackDocumentsHttp = (data: any) => {\n return https().request<any>(`${duoduoenvService}custom/feedback/documents`, Method.POST, data, ContentType.json)\n}\n\n// 空调调节\nexport const changeTempHttp = (params: any) => {\n return https().request<RootObject<any>>(`${duoduoenvService}custom/feedbackCreate/v2`, Method.POST, params, ContentType.json)\n}\n// 查询灯的状态(优先查采集的状态)\nexport const getLampHttp = (params: any) => {\n return https({ timeout: 1000 }).request<RootObject<any>>(`${duoduoenvService}light/status/query?spaceId=${params.spaceId}`, Method.GET, undefined, ContentType.json)\n}\n\n// 批量操作 灯\nexport const setallLampHttp = (data: any) => {\n return post(`${duoduoenvService}light/onoff/set`, data)\n}\n// 设置窗帘 \nexport const setEquipeHttp = (data: any) => {\n return post(`${duoduoenvService}object/eqp/infocode/set`, data)\n}\n\n// 指令失败的时候轮询查询灯的状态\nexport const getStatusHttp = (data: any) => {\n return post(`${duoduoenvService}light/onoff/setSatus`, data)\n}\n\n// 获取窗帘数据列表\nexport const getObjectDataEqpGroupHttp = (params: any) => {\n return https().request<RootObject<any>>(`${duoduoenvService}object/objectDataEqpGroup/query`, Method.POST, params, ContentType.json)\n}\n\n// 切换场景\nexport const switchoverSceneHttp = (params: any) => {\n return https().request<RootObject<any>>(`${duoduoenvService}meeting/room/scene/switchover`, Method.POST, params, ContentType.json)\n}\n\nexport const changeSetTimeHttp = (params: any) => {\n return https().request<RootObject<any>>(`${duoduoenvService}customScene/create`, Method.POST, params, ContentType.json)\n}\n// 详情页面的图表数据\nexport const getChartListHTTP = (params: any) => {\n return https().request<RootObject<any>>(`${duoduoenvService}/spaceAdjust/queryPropertyData?${params}`, Method.GET, undefined, ContentType.json)\n}\n\n// 查询建筑的信息\nexport const getBuildingList = (params: any) => {\n return https().request<any>(`${objectService}object/building/query`, Method.POST, params, ContentType.json)\n}\n\n/**\n * 查询楼层信息\n * @param params\n */\nexport const getFloorList = (params: any) => {\n return https().request<any>(`${objectService}object/floor/query`, Method.POST, params, ContentType.json)\n}\n\n/**\n * 获取地图数据\n * @param params\n */\nexport const getMapInfo = (params: any) => {\n return https().request<any>(`${setupService}map/queryMapInfo`, Method.POST, params, ContentType.json)\n}\n\n/**\n * 获取空间设备\n * @param params\n */\nexport const getSpaceEquipType = (params: any) => {\n return https().request<any>(`${objectService}object/equipment/querySpaceEquipType?${params}`, Method.GET, undefined, ContentType.json)\n}\n\n/**\n * 模糊查询空间列表数据\n * @param params\n */\nexport const getSpaceLike = (params: any) => {\n return https().request<any>(`${objectService}object/space/query`, Method.POST, params, ContentType.json)\n}\n\n/**\n * 增加常驻空间\n */\nexport const permanentSpace = (params: any) => {\n // return https().request<any>(`${setupService}permanentSpace/save`, Method.POST, params, ContentType.json)\n // return https().request<any>(`${testApi}permanentSpace/save`, Method.POST, params, ContentType.json)\n return https().request<any>(`${setupService}permanentSpace/save`, Method.POST, params, ContentType.json)\n}\n\n/**\n * 获取常驻空间\n */\nexport const getPermanentSpace = () => {\n return https().request<any>(`${setupService}permanentSpace/query`, Method.GET, undefined, ContentType.json)\n}\n\n/**\n * 删除常驻空间\n */\nexport const delPermanentSpace = (params: any) => {\n return https().request<any>(`${setupService}permanentSpace/delete?${params}`)\n}\n\n/**\n * 获取用户使用权限\n */\nexport const getUserControlAuth = () => {\n return https().request<any>(`${setupService}permanentSpace/queryZJ`, Method.GET, undefined, ContentType.json)\n}\n\n/**\n * 获取空间运行模式\n */\nexport const getSpaceMode = () => {\n return https().request<any>(`${objectService}object/equipment/querySpaceModeSet`, Method.GET, undefined, ContentType.json)\n}\n/**\n * 获取空调设备温度\n */\nexport const getSpaceTemp = () => {\n return https().request<any>(`${objectService}object/equipment/querySpaceTempSet`, Method.GET, undefined, ContentType.json)\n}\n\n/**\n * \n * @param params 查询场景配置\n * @returns \n */\nexport const querySpaceSceneConfig = (params: any) => {\n return https().request<any>(`${setupService}scene/querySpaceSceneConfig?${params}`, Method.GET, undefined, ContentType.json)\n}\n\n/**\n * 查询加班记录\n */\nexport const queryCustomAndScence = (params: any) => {\n //return https().request<any>(`${testApi}customScene/queryCustomAndScence?${params}`, Method.GET, undefined, ContentType.json)\n return https().request<any>(`${duoduoenvService}customScene/queryCustomAndScence?${params}`, Method.GET, undefined, ContentType.json)\n}\n\n/**\n * 添加(取消)加班记录\n * @param params\n */\nexport const saveBatchCustomScene = (data: any) => {\n //return post(`${testApi}customScene/saveBatchCustomScene`, data)\n return post(`${duoduoenvService}customScene/saveBatchCustomScene`, data)\n}\n\n\n/**\n * 查询默认位置\n */\nexport const getDefaultLocation = (params: any) => {\n return https().request<any>(`${setupService}padSpace/getDefaultLocation?${params}`, Method.GET, undefined, ContentType.json)\n}\n\n/**\n * 查询空间列表\n */\nexport const getPadSpaceList = (params: any) => {\n return https().request<any>(`${setupService}padSpace/getPadSpaceList?${params}`, Method.GET, undefined, ContentType.json)\n}\n\n/**\n * 设置成办公空间-(\"批量保存\")\n */\nexport const saveWorkSpace = (params: any) => {\n return https().request<any>(`${setupService}padSpace/saveWorkSpace`, Method.POST, params, ContentType.json)\n}\n\n/**\n * 设置工作空间\n * @param params \n */\nexport const insertWorkSpace = (params: any) => {\n return https().request<any>(`${setupService}padSpace/insertWorkSpace`, Method.POST, params, ContentType.json)\n}\n\n/**\n * 删除工作空间\n * @param params \n */\nexport const deleteWorkSpace = (params: any) => {\n return https().request<any>(`${setupService}padSpace/deleteWorkSpace`, Method.POST, params, ContentType.json)\n}\n\n\n\n/**\n * 查询平板下面的办公空间\n */\nexport let queryWorkSpace = (params: any) => {\n return https().request<any>(`${setupService}padSpace/queryWorkSpace`, Method.POST, params, ContentType.json)\n}\n\n\n/**\n * 查询平板下面的办公空间\n */\nexport let checkWorkSpace = (params: any) => {\n return https().request<any>(`${setupService}padSpace/queryWorkSpace`, Method.POST, params, ContentType.json)\n}\n\n/**\n * 查询客户列表\n */\nexport const queryCustomerservice = (params: any) => {\n return https().request<RootObject<any>>(`${weachatService}wechat-service-duoduoenv/duoduoenv/customerservice/query`, Method.POST, params, ContentType.json)\n}\n\n\n/**\n * 获取二维码状态\n */\nexport const getPadQrCodeStatus = (params: any) => {\n return https().request<any>(`${setupService}padLogin/getPadQrCodeStatus?${params}`, Method.GET, undefined, ContentType.json)\n}\n\n\n/**\n * 获取背景图\n * @param params \n * @returns \n */\nexport const getPadImg = (params: any) => {\n // return https().request<any>(`${setupService}/padImage/queryImageByFuncType`,Method.GET, undefined, ContentType.json)\n return https().request<any>(`${setupService}padImage/queryImageByFuncType?${params}`, Method.GET, undefined, ContentType.json)\n}\n\n/**\n * 设备手动控制\n */\nexport const querySpaceConditioners = (params: any) => {\n return https().request<any>(`${duoduoenvService}ctrl/querySpaceConditioners?${params}`, Method.GET, undefined, ContentType.json)\n // return https().request<any>(`${testApi}ctrl/querySpaceConditioners?${params}`, Method.GET, undefined, ContentType.json)\n}\n\n/**\n * 设备手动控制\n */\nexport const setSpaceCondtioners = (data: any) => {\n return post(`${duoduoenvService}ctrl/set`, data)\n // return post(`${testApi}ctrl/set`, data)\n}\n\n// 地图数据保存\nexport const saveMapPointInfo = (data: any) => {\n // return post(`${duoduoenvService}map/saveMapPointInfo`, data)\n return https().request<any>(`${testApi}map/saveMapPointInfo`, Method.POST, data, ContentType.json)\n}\n\n\n// 获取空间下的可控制的设备\nexport const getSpaceEquipList = (params: any) => {\n return https().request<any>(`${customService}equipmentRun/queryEquipmentRunConfig?${params}`, Method.GET, undefined, ContentType.json)\n}\n\n\n","var map = {\n\t\"./babyselected.svg\": \"98fb\",\n\t\"./bg_disable.png\": \"2b48\",\n\t\"./coffee.svg\": \"5ff7\",\n\t\"./coffeeselected.svg\": \"472f\",\n\t\"./dev.svg\": \"56d9\",\n\t\"./device.svg\": \"920e\",\n\t\"./deviceroom.svg\": \"162a\",\n\t\"./weather.svg\": \"8c6e\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"46f5\";","module.exports = __webpack_public_path__ + \"static/img/coffeeselected.1e7d4057.svg\";","export function swiper(el: any, options: any) {\n //设置开关,监听move事件\n let isMove: any = false\n // 设置手指触摸开始的坐标\n let startX: any = 0\n let startY: any = 0\n // 设置手指移动的坐标\n let moveX: any = 0\n let moveY: any = 0\n //设置指针距离元素的边框的距离\n let disX: any = 0\n let disY: any = 0\n // 如果用户未传入参数2,自己定义一个\n let fun: any = function() {\n }\n let data: any = {\n swipeLeft: fun,\n swipeRight: fun,\n swipeDown: fun,\n swipeUp: fun,\n drag: fun\n }\n // 判断是否传入参数2,有的话覆盖默认值\n Object.assign(data, options)\n // 给元素绑定三个事件\n el.addEventListener('touchstart', function(e: any) {\n //获取手指开始的坐标\n startX = e.touches[0].pageX\n startY = e.touches[0].pageY\n //计算指针距离元素边框的位置\n disX = 0\n disY = 0\n }, { passive: true })\n el.addEventListener('touchmove', function(e: any) {\n //如果触发了move事件,打开开关\n isMove = true\n // 获取移动时的坐标\n moveX = e.touches[0].pageX\n moveY = e.touches[0].pageY\n e.mation = {\n startX: startX,\n startY: startY,\n moveX: moveX,\n moveY: moveY,\n disX: disX,\n disY: disY\n }\n data.drag.call(el, e)\n // 判断是否触发了move事件\n if (isMove) {\n // 计算水平边长\n let absX: any = Math.abs(moveX - startX)\n // 计算垂直边长\n let absY: any = Math.abs(moveY - startY)\n // 判断垂直还是水平滑动\n if (absX > absY) {\n // console.log('水平滑动');\n //再判断是左滑右滑\n if (moveX - startX > 0) {\n data.swipeRight.call(el, e)\n } else {\n data.swipeLeft.call(el, e)\n }\n } else {\n // console.log('垂直滑动');\n //判断是上滑还是下滑\n if (moveY - startX > 0) { // 下滑\n data.swipeDown.call(el, e)\n } else {\n data.swipeUp.call(el, e)\n }\n }\n }\n }, { passive: true })\n el.addEventListener('touchend', function(e: any) {\n isMove = false\n })\n}\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MapBox.vue?vue&type=style&index=0&id=78455464&lang=scss&scoped=true\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./CanvasBox.vue?vue&type=style&index=0&id=56dbfa6e&lang=scss&scoped=true\"","module.exports = __webpack_public_path__ + \"static/img/dev.941b2e3a.svg\";","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","module.exports = __webpack_public_path__ + \"static/img/coffee.fc03c8ec.svg\";","/**\n * 房间类型对应icon\n */\nexport const mapIcon: any = {\n '公共区域': {\n 'backgroundColor': '#DFE3ED',\n 'icon': 'storeroom.svg',\n 'selectIcon': 'storeroomselected.svg'\n },\n '卫生间': {\n // 'bg': 'bg_disable.png',\n 'backgroundColor': '#fff',\n 'selectIcon': 'toiletSelect.svg',\n 'icon': 'toilet.svg'\n },\n '走廊': {\n 'icon': 'passage.svg',\n // 'backgroundColor': '#DFE3ED',\n // 'bg': 'bg_disable.png',\n // 'backgroundColor': '#DFE3ED',\n 'backgroundColor': '#fff',\n 'selectIcon': 'passageselected.svg'\n },\n '母婴室': {\n 'backgroundColor': '#fff',\n 'icon': 'baby.svg',\n 'selectIcon': 'babyselected.svg'\n },\n '电梯厅': {\n 'icon': 'elevator.svg',\n 'selectIcon': 'elevatoSelect.svg',\n 'backgroundColor': '#DFE3ED',\n // 'bg': 'bg_disable.png'\n },\n '楼梯间': {\n 'backgroundColor': '#DFE3ED',\n 'icon': 'stairsx.svg',\n 'selectIcon': 'stairsxselected.svg',\n },\n '打印': {\n 'backgroundColor': '#DFE3ED',\n 'icon': 'print.svg',\n 'selectIcon': 'printselected.svg'\n },\n '休闲活动区': {\n 'icon': 'coffee.svg',\n 'backgroundColor': '#DFE3ED',\n 'selectIcon': 'coffeeselected.svg',\n },\n '普通办公区': {\n 'icon': 'dev.svg',\n 'selectIcon': 'devselected.svg',\n 'backgroundColor': '#DFE3ED',\n 'circleColor': '#7FBEFA'\n },\n '办公室': {\n 'backgroundColor': '#fff',\n 'circleColor': '#7582B0',\n 'icon': 'officeroom.svg',\n 'selectIcon': 'officeroomselected.svg'\n },\n '会议室': {\n 'backgroundColor': '#fff',\n 'circleColor': '#F2918E',\n 'icon': 'mroom.svg',\n 'selectIcon': 'mroomSelect.svg'\n },\n '多功能厅': {\n 'backgroundColor': '#fff',\n 'circleColor': '#7582B0',\n 'icon': 'vector.svg',\n 'selectIcon': 'vectorSelect.svg'\n },\n '接待室': {\n 'backgroundColor': '#fff',\n 'circleColor': '#7582B0',\n 'icon': 'jiedaiqu.svg',\n 'selectIcon': 'jiedaiquSelect.svg'\n },\n // 999999\n '门厅': {\n 'backgroundColor': '#DFE3ED',\n 'circleColor': '#7582B0',\n 'icon': 'jiedaiqu.svg',\n 'selectIcon': 'jiedaiquSelect.svg'\n },\n '档案库': {\n 'backgroundColor': '#fff',\n 'circleColor': '#7582B0',\n 'icon': 'chucang.svg',\n 'selectIcon': 'chucangshiSelect.svg'\n },\n '更衣室': {\n 'backgroundColor': '#fff',\n 'circleColor': '#7582B0',\n 'icon': 'gengyishi.svg',\n 'selectIcon': 'gengyishiSelect.svg'\n },\n '厨房': {\n 'backgroundColor': '#fff',\n 'circleColor': '#7582B0',\n 'icon': 'chufang.svg',\n 'selectIcon': 'chufangSelect.svg'\n },\n '餐饮区': {\n 'backgroundColor': '#DFE3ED',\n 'circleColor': '#7582B0',\n 'icon': 'canyin.svg',\n 'selectIcon': 'canyinSelect.svg'\n },\n '设备间': {\n 'backgroundColor': '#fff',\n 'circleColor': '#7582B0',\n 'icon': 'deviceroom.svg',\n 'selectIcon': 'deviceroomselected.svg'\n },\n '健身房': {\n 'backgroundColor': '#DFE3ED',\n 'circleColor': '#7582B0',\n 'icon': 'jianshenfang.svg',\n 'selectIcon': 'jianshenfangSelect.svg'\n },\n '体育管': {\n 'backgroundColor': '#DFE3ED',\n 'circleColor': '#7582B0',\n 'icon': 'tiyuguan.svg',\n 'selectIcon': 'tiyuguanSelect.svg'\n },\n '游泳馆': {\n 'backgroundColor': '#DFE3ED',\n 'circleColor': '#7582B0',\n 'icon': 'youyong.svg',\n 'selectIcon': 'youyongSelect.svg'\n },\n '图书馆': {\n 'backgroundColor': '#DFE3ED',\n 'circleColor': '#7582B0',\n 'icon': 'tushuguan.svg',\n 'selectIcon': 'tushuguanSelect.svg'\n },\n '活动区': {\n 'backgroundColor': '#DFE3ED',\n 'circleColor': '#7582B0',\n 'icon': 'huodongqu.svg',\n 'selectIcon': 'huodongquSelect.svg'\n },\n '实验室': {\n 'backgroundColor': '#fff',\n 'circleColor': '#7582B0',\n 'icon': 'shiyanqu.svg',\n 'selectIcon': 'shiyanquSelect.svg'\n },\n '值班室': {\n 'backgroundColor': '#fff',\n 'circleColor': '#7582B0',\n 'icon': 'zhibanshi.svg',\n 'selectIcon': 'zhibanshiSelect.svg'\n },\n '收费室': {\n 'backgroundColor': '#fff',\n 'circleColor': '#7582B0',\n 'icon': 'finance.svg',\n 'selectIcon': 'financeselected.svg'\n },\n '护士站': {\n 'backgroundColor': '#DFE3ED',\n 'circleColor': '#7582B0',\n 'icon': 'nurse.svg',\n 'selectIcon': 'nurseSelect.svg'\n }\n}\n\n/**\n * 房间类型\n */\nexport const getSpaceType = function(type: any) {\n let typeName = '公共区域'\n if (type === '100' || type === '1A0' || type === '0' || type === '443' || type === '453') {\n typeName = '公共区域'\n } else if (type === '111') {\n typeName = '卫生间'\n } else if (type === '113') {\n typeName = '母婴室'\n } else if (type === '120') {\n typeName = '走廊'\n } else if (type === '130') {\n typeName = '电梯厅'\n } else if (type === '140') {\n typeName = '楼梯间'\n } else if (type === '170' || type === '600' || type === '223' || type === '930') {\n typeName = '休闲活动区'\n } else if (type === '300' || type === '313' || type === '314' || type === '315' || type === '330') {\n typeName = '普通办公区'\n } else if (type === '312' || type === '311' || type === '310') {\n typeName = '办公室'\n } else if (type === '310' || type === '321' || type === '322' || type === '320') {\n typeName = '会议室'\n } else if (type === '490' || type === '323' || type === '931') {\n typeName = '多功能厅'\n } else if (type === '331') {\n typeName = '接待室'\n } else if (type === '160') {\n typeName = '门厅'\n } else if (type === '333' || type === '250' || type === '253') {\n typeName = '档案库'\n } else if (type === '112') {\n typeName = '更衣室'\n } else if (type === '220' || type === '221') {\n typeName = '餐饮区'\n } else if (type === '430' || type === '410' || type === '400'\n || type === '4B0' || type === '441' || type === '442'\n || type === '451' || type === '452' || type === '461' || type === '462'\n || type === '471' || type === '472' || type === '733' || type === '440' || type === '450') {\n typeName = '厨房'\n } else if (type === '252' || type === '246' || type === '1B5'\n || type === '234' || type === '231' || type === '230'\n || type === '233' || type === '232' || type === '234'\n || type === '235' || type === '236' || type === '237'\n || type === '241' || type === '242' || type === '244'\n || type === '245' || type === '251' || type === '254'\n || type === '211' || type === '212' || type === '222') {\n typeName = '设备间'\n } else if (type === '690') {\n typeName = '健身房'\n } else if (type === '932' || type === '934' || type === '933' || type === '6A0') {\n typeName = '体育管'\n } else if (type === '935') {\n typeName = '图书馆'\n } else if (type === '936' || type === '937' || type === '938' || type === '915') {\n typeName = '活动区'\n } else if (type === '921' || type === '922' || type === '923'\n || type === '920' || type === '926' || type === '924'\n || type === '925' || type === '926') {\n typeName = '实验室'\n } else if (type === '243' || type === '332') {\n typeName = '值班室'\n } else if (type === '334') {\n typeName = '收费室'\n } else if (type === '335') {\n typeName = '护士站'\n } else {\n typeName = '公共区域'\n }\n return typeName\n}\n\n/**\n *\n * 获取会议室加班类型\n * @param type\n */\nexport const getWorkType = function(type: string) {\n let typeName: any = '其它'\n if (type === '312' || type === '311' || type === '310') {\n typeName = '个人'\n } else if (type === '320' || type === '321' || type === '322' || type === '323') {\n typeName = '会议室'\n // type === '300' || type === '313' || type === '314' || type === '315' ||type === '330'\n } else if (type === '313' || type === '314' || type === '315') {\n typeName = '开放'\n } else {\n // typeName = '其它'\n typeName = '开放'\n }\n return typeName\n}\n\n\n\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","module.exports = __webpack_public_path__ + \"static/img/weather.742cc8c0.svg\";","module.exports = __webpack_public_path__ + \"static/img/device.01480d11.svg\";","module.exports = __webpack_public_path__ + \"static/img/babyselected.422eb07d.svg\";","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./SpaceMetting.vue?vue&type=style&index=0&id=1406cd06&lang=scss&scoped=true\"","import { createVNode as _createVNode } from \"vue\";\nimport { defineComponent } from \"vue\";\nimport { extend, numericProp, preventDefault, makeStringProp, createNamespace, BORDER_SURROUND } from \"../utils\";\nimport { useRoute, routeProps } from \"../composables/use-route\";\nimport { Icon } from \"../icon\";\nimport { Loading } from \"../loading\";\nconst [name, bem] = createNamespace(\"button\");\nconst buttonProps = extend({}, routeProps, {\n tag: makeStringProp(\"button\"),\n text: String,\n icon: String,\n type: makeStringProp(\"default\"),\n size: makeStringProp(\"normal\"),\n color: String,\n block: Boolean,\n plain: Boolean,\n round: Boolean,\n square: Boolean,\n loading: Boolean,\n hairline: Boolean,\n disabled: Boolean,\n iconPrefix: String,\n nativeType: makeStringProp(\"button\"),\n loadingSize: numericProp,\n loadingText: String,\n loadingType: String,\n iconPosition: makeStringProp(\"left\")\n});\nvar stdin_default = defineComponent({\n name,\n props: buttonProps,\n emits: [\"click\"],\n setup(props, {\n emit,\n slots\n }) {\n const route = useRoute();\n const renderLoadingIcon = () => {\n if (slots.loading) {\n return slots.loading();\n }\n return _createVNode(Loading, {\n \"size\": props.loadingSize,\n \"type\": props.loadingType,\n \"class\": bem(\"loading\")\n }, null);\n };\n const renderIcon = () => {\n if (props.loading) {\n return renderLoadingIcon();\n }\n if (slots.icon) {\n return _createVNode(\"div\", {\n \"class\": bem(\"icon\")\n }, [slots.icon()]);\n }\n if (props.icon) {\n return _createVNode(Icon, {\n \"name\": props.icon,\n \"class\": bem(\"icon\"),\n \"classPrefix\": props.iconPrefix\n }, null);\n }\n };\n const renderText = () => {\n let text;\n if (props.loading) {\n text = props.loadingText;\n } else {\n text = slots.default ? slots.default() : props.text;\n }\n if (text) {\n return _createVNode(\"span\", {\n \"class\": bem(\"text\")\n }, [text]);\n }\n };\n const getStyle = () => {\n const {\n color,\n plain\n } = props;\n if (color) {\n const style = {\n color: plain ? color : \"white\"\n };\n if (!plain) {\n style.background = color;\n }\n if (color.includes(\"gradient\")) {\n style.border = 0;\n } else {\n style.borderColor = color;\n }\n return style;\n }\n };\n const onClick = (event) => {\n if (props.loading) {\n preventDefault(event);\n } else if (!props.disabled) {\n emit(\"click\", event);\n route();\n }\n };\n return () => {\n const {\n tag,\n type,\n size,\n block,\n round,\n plain,\n square,\n loading,\n disabled,\n hairline,\n nativeType,\n iconPosition\n } = props;\n const classes = [bem([type, size, {\n plain,\n block,\n round,\n square,\n loading,\n disabled,\n hairline\n }]), {\n [BORDER_SURROUND]: hairline\n }];\n return _createVNode(tag, {\n \"type\": nativeType,\n \"class\": classes,\n \"style\": getStyle(),\n \"disabled\": disabled,\n \"onClick\": onClick\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": bem(\"content\")\n }, [iconPosition === \"left\" && renderIcon(), renderText(), iconPosition === \"right\" && renderIcon()])]\n });\n };\n }\n});\nexport {\n stdin_default as default\n};\n","import { withInstall } from \"../utils\";\nimport _Button from \"./Button\";\nconst Button = withInstall(_Button);\nvar stdin_default = Button;\nexport {\n Button,\n stdin_default as default\n};\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#fff\",\"menuText\":\"#162b64\",\"menuActiveText\":\"#435ebe\"};","import \"../../style/base.css\";\nimport \"../../action-bar/index.css\";\nimport \"../../badge/index.css\";\nimport \"../../icon/index.css\";\nimport \"../../loading/index.css\";\nimport \"../../button/index.css\";\nimport \"../../action-bar-button/index.css\";\nimport \"../../overlay/index.css\";\nimport \"../../popup/index.css\";\nimport \"../index.css\";\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./SpaceMetting.vue?vue&type=style&index=1&id=1406cd06&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./SpaceSearch.vue?vue&type=style&index=1&id=44b481c8&lang=scss\""],"sourceRoot":""}
|