chunk-ee9621f0.a4572576.js.map 178 KB

1
  1. {"version":3,"sources":["webpack:///./src/views/envmonitor/components/Map/MapBox.vue?b6e3","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?7186","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:///./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/components/Map/MapBox.vue?55b7","webpack:///./src/views/envmonitor/Search/SpaceSearch.vue?c10c","webpack:///./node_modules/core-js/modules/es.math.hypot.js","webpack:///./src/apis/envmonitor.ts","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./src/utils/mapIcon.ts","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./src/views/envmonitor/components/Map/CanvasBox.vue?6063","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_canvas_box","_component_van_popup","_component_space_search","mapType","mapData","spaceList","area","index","width","height","top","left","transform","rotate","borderRadius","canClick","selectArea","spaceId","disabled","isSetSpace","onClick","$event","checkSpace","backgroundColor","icon","src","selectIcon","alt","localName","length","displacement","scale","ref","onCheckSpace","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","Object","contx","ctx","canvasImageArr","iconData","setSpaceIcon","typeName","roomFuncType","mapIcon","bg","scaleCanvas","data","document","querySelectorAll","initCanvas","canvasDom","querySelector","getContext","drawDpiBegin","map","circleArr","circlePointArr","beginPath","fillStyle","fillColor","pointLeftArr","pointTopArr","pointArr","childItem","moveTo","lineTo","push","fill","closePath","bezierCurveTo","MaxAndMin","font","textAlign","fillText","logoPointArr","addIcon","img","Image","onload","pat","createPattern","lineWidth","strokeStyle","stroke","drawIcon","drawDpiEnd","arr","Math","min","apply","max","bindEvent","addEventListener","detect","dom","context","save","clearRect","scaleValue","window","devicePixelRatio","setAttribute","restore","event","x","clientX","getBoundingClientRect","y","clientY","i","devicePointArr","iconFlag","dev","dot","coordinates","flag","queryPtInPolygon","point","polygon","p1","p2","p3","p4","count","checkCross","v1","v2","v3","v","crossMul","loadAllImages","imgUrls","_load","imgUrl","Promise","resolve","reject","_loadAll","loadedImageUrls","len","all","iconPerstion","obj","url","imgUrlArr","perstionArr","drawImage","init","spaceData","Array","spaceInfo","Boolean","floorId","Number","SpaceSearch","CanvasBox","screenInfo","screenWidth","body","clientWidth","screenHeight","clientHeight","comMapScale","pageX","pageX2","originScale","moveable","transformData","canvasRef","widthMapScale","tempScale","heightScale","isSetSearchSpace","copyMapDaata","clearPreStyle","mapDom","scrollLeft","scrollTop","matrix_box","swipe","el","options","isMove","startX","startY","moveX","moveY","disX","disY","fun","swipeLeft","swipeRight","swipeDown","swipeUp","drag","assign","e","touches","pageY","offsetLeft","offsetTop","passive","mation","call","absX","abs","absY","mapScroll","houseDesDom","houseHeight","offsetHeight","offsetWidth","boxHeight","loadingStart","searchSpace","buildingName","floorName","setSelectSpacePosition","setTimeout","setScrollLeft","mapBoxEle","setLocalSpaceInfo","comfirSetSpace","confirm","title","confirmButtonColor","cancelButtonColor","message","catch","getDistance","start","stop","hypot","formateMapData","setSpaceScale","setTempScale","JSON","parse","j","stringify","formateSpecialMapData","remark","remarkObj","detailPointArr","formateSpecialMapScale","minHeight","minWidth","num","ceil","setMapBoxStyle","value","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","getMapInfo","getFloorList","loading","duration","forbidClick","loadinngEnd","clear","setFloorName","getHistorySelectFloor","searchItem","getFirstSelectSpace","historyFloor","floor","getHistorySpace","historySpace","space","setDefaultSpace","newProps","deep","immediate","bem","create","ACTION_BAR_KEY","Symbol","actionBarProps","safeAreaInsetBottom","stdin_default","slots","linkChildren","_a","ActionBar","actionBarButtonProps","text","color","route","parent","isFirst","prev","children","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","open","currentOptions","defaultOptions","overlay","lockScroll","overlayClass","overlayStyle","alert","setDefaultOptions","resetDefaultOptions","Component","install","app","use","config","globalProperties","$dialog","module","exports","$","$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","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","code","it","charCodeAt","slice","NumberWrapper","dummy","valueOf","keys","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,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,oBAOLsa,EAAe,SAAUpc,GACpC,IAAI4B,EAAW,OAmEf,OAjEEA,EADW,QAAT5B,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,QAATA,GACjC,QAATA,GAA2B,QAATA,GAA2B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","file":"static/js/chunk-ee9621f0.a4572576.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, createBlock as _createBlock, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3ff6b59b\"),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_canvas_box = _resolveComponent(\"canvas-box\")!\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 (_ctx.mapType == 1)\n ? (_openBlock(true), _createElementBlock(_Fragment, { key: 0 }, _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 transform: 'rotate(' + area.rotate + ')',\n borderRadius:\n area.borderRadius[0] +\n 'px' +\n ' ' +\n area.borderRadius[1] +\n 'px' +\n ' ' +\n area.borderRadius[2] +\n 'px' +\n ' ' +\n area.borderRadius[3] +\n '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\", \n _ctx.selectArea.spaceId === area.spaceId ? 'select-device' : ''\n ])\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 : (_openBlock(), _createBlock(_component_canvas_box, {\n key: 1,\n class: \"canvasBox\",\n ref: \"canvasRef\",\n mapData: _ctx.mapData,\n onCheckSpace: _ctx.checkSpace\n }, null, 8, [\"mapData\", \"onCheckSpace\"]))\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-74cb39ba\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"myCanvas\",\n class: \"canvas-dom\"\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 {\n defineComponent,\n nextTick,\n watch,\n onMounted,\n reactive,\n toRefs,\n} from \"vue\";\nimport { parseImgUrl } from \"@/utils\";\nimport { swiper } from \"@/utils/swiper\";\nimport { getSpaceType, mapIcon } from \"@/utils/mapIcon\";\n\nexport default defineComponent({\n props: {\n mapData: {\n type: Object,\n default: () => {},\n },\n },\n components: {\n VanSearch: Search,\n },\n setup(props, contx) {\n let ctx: any = {};\n let canvasImageArr: any = {};\n let iconData: any = [];\n const proxyData = reactive({\n mapData: props.mapData, // 地图数据\n iconData: iconData,\n parseImgUrl: parseImgUrl,\n canvasImageArr: canvasImageArr,\n ctx: ctx,\n /**\n * 设置空间的图标\n *\n */\n setSpaceIcon(item: any) {\n // if(item.can)\n if (item.canClick) {\n // debugger\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 // 地图缩放\n scaleCanvas(data: any) {\n proxyData.mapData = data;\n let removeIconArr: any = document.querySelectorAll(\".load-icon\") || [];\n // removeIconArr.map((item: any) => {\n // item.remove();\n // });\n proxyData.canvasImageArr = {};\n proxyData.initCanvas(1);\n // proxyData.ctx.clearRect(0, 0, proxyData.mapData.width, proxyData.mapData.height);\n },\n // canvas画图\n initCanvas(type: any = 0) {\n let canvasDom: any = document.querySelector(\"#myCanvas\");\n // canvasDom.style.display = \"none\";\n let ctx: any = canvasDom.getContext(\"2d\");\n proxyData.ctx = ctx;\n // debugger;\n proxyData.drawDpiBegin(\n canvasDom,\n ctx,\n proxyData.mapData.width,\n proxyData.mapData.height,\n type\n );\n\n let spaceList: any =\n (proxyData.mapData && proxyData.mapData.spaceList) || [];\n spaceList.map((item: any) => {\n if (item.canClick) {\n let circleArr: any = item.circlePointArr;\n ctx.beginPath();\n ctx.fillStyle = item.fillColor;\n let pointLeftArr: any = [];\n let pointTopArr: any = [];\n item.pointArr.map((childItem: any, index: any) => {\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 ctx.fill();\n ctx.closePath();\n ctx.beginPath();\n if (circleArr && circleArr.length) {\n ctx.fillStyle = item.fillColor;\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.fill();\n ctx.closePath();\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 = \"12px serif\";\n ctx.textAlign = \"center\";\n ctx.fillStyle = item.fillColor === \"#fff\" ? \"#000\" : \"#8995BA\";\n let localName: any = item.localName;\n let drutionLef: any = localName ? item.localName[\"length\"] * 12 : 0;\n ctx.fillText(\n item.localName,\n item.logoPointArr[0].left,\n item.logoPointArr[0].top,\n 50\n );\n\n if (item.icon) {\n proxyData.addIcon(item, 1, {\n left: item.logoPointArr[0].left - 50 / 2 + 15,\n top: item.logoPointArr[0].top * 1 + 5,\n });\n }\n ctx.closePath();\n } else {\n ctx.beginPath();\n let img: any = new Image();\n img.src = require(\"@/assets/svg/bg_disable.png\");\n if (type == 0) {\n img.onload = function () {\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 let pat: any = ctx.createPattern(img, \"repeat\");\n ctx.fillStyle = pat;\n ctx.fill();\n ctx.closePath();\n ctx.lineWidth = 2;\n ctx.strokeStyle = \"#DFE3ED\";\n ctx.stroke();\n };\n } else {\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 let pat: any = ctx.createPattern(img, \"repeat\");\n ctx.fillStyle = pat;\n ctx.fill();\n ctx.closePath();\n ctx.lineWidth = 2;\n ctx.strokeStyle = \"#DFE3ED\";\n ctx.stroke();\n }\n }\n });\n proxyData.drawIcon(ctx, type);\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(\n dom: any,\n context: any,\n width: any,\n height: any,\n type: any = 0\n ) {\n context.save();\n context.clearRect(0, 0, width, height);\n let scaleValue = window.devicePixelRatio;\n dom.setAttribute(\"width\", width * scaleValue);\n dom.setAttribute(\"height\", height * scaleValue);\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 spaceList: any =\n (proxyData.mapData && proxyData.mapData.spaceList) || [];\n for (let i = 0; i < spaceList.length; i++) {\n let item: any = spaceList[i];\n let devicePointArr: any = item.devicePointArr;\n let pointArr: any = item.pointArr;\n let iconFlag: any = false;\n devicePointArr.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 contx.emit(\"checkSpace\", item);\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 loadAllImages(imgUrls: any) {\n let _load: any = function (imgUrl: any) {\n //创建img标签\n let img: any = new Image();\n img.src = imgUrl;\n // img.src = require(\"@/assets/svg/coffee.svg\");\n //跨域选项\n img.setAttribute(\"crossOrigin\", \"Anonymous\");\n return new Promise((resolve, reject) => {\n //文件加载完毕\n img.onload = function () {\n resolve(img);\n };\n });\n };\n let _loadAll: any = function (imgUrls: any) {\n let loadedImageUrls: any = [];\n for (let i = 0, len = imgUrls.length; i < len; i++) {\n loadedImageUrls.push(_load(imgUrls[i]));\n }\n return loadedImageUrls;\n };\n return Promise.all(_loadAll(imgUrls));\n },\n // 记录需要画的图片\n addIcon(item: any, type: any, iconPerstion: any) {\n let key: any = item.spaceId + \"\" + type;\n if (proxyData.canvasImageArr[key]) {\n proxyData.canvasImageArr[key].iconPerstion = iconPerstion;\n } else {\n let obj: any = {\n url: item.icon,\n iconPerstion: iconPerstion,\n };\n proxyData.canvasImageArr[key] = obj;\n }\n },\n // 画图标\n drawIcon(ctx: any, type: any = 0) {\n let canvasImageArr: any = proxyData.canvasImageArr;\n let imgUrlArr: any = [];\n let perstionArr: any = [];\n\n for (let key in canvasImageArr) {\n let item: any = canvasImageArr[key];\n imgUrlArr.push(item.url);\n perstionArr.push(item.iconPerstion);\n }\n if (type == 0) {\n proxyData.loadAllImages(imgUrlArr).then((res: any) => {\n proxyData.iconData = res;\n res.map((icon: any, index: any) => {\n let iconPerstion: any = perstionArr[index];\n iconPerstion.width = 25;\n iconPerstion.height = 15;\n ctx.drawImage(\n icon,\n iconPerstion.left,\n iconPerstion.top,\n iconPerstion.width,\n iconPerstion.height\n );\n });\n });\n } else {\n proxyData.iconData.map((icon: any, index: any) => {\n let iconPerstion: any = perstionArr[index];\n iconPerstion.width = 25;\n iconPerstion.height = 15;\n ctx.drawImage(\n icon,\n iconPerstion.left,\n iconPerstion.top,\n iconPerstion.width,\n iconPerstion.height\n );\n });\n }\n },\n init(data: any) {\n proxyData.mapData = data;\n proxyData.initCanvas();\n proxyData.bindEvent();\n },\n });\n onMounted(() => {});\n return {\n ...toRefs(proxyData),\n };\n },\n});\n","import { render } from \"./CanvasBox.vue?vue&type=template&id=74cb39ba&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=74cb39ba&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-74cb39ba\"]])\n\nexport default __exports__","\nimport {\n defineComponent,\n onMounted,\n nextTick,\n reactive,\n toRefs,\n ref,\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 canvasRef: any = ref(null);\n const proxyData = reactive({\n parseImgUrl: parseImgUrl,\n mapType: props.mapType,\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 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 if (proxyData.mapType == 1) {\n proxyData.setSelectSpacePosition(area);\n }\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 if (props.projectId == \"Pj1101020007\") {\n proxyData.comMapScale = 1.5;\n }\n data.width = data.width * proxyData.comMapScale;\n data.height = data.height * proxyData.comMapScale;\n\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\n item.rotate = item.rotate * 1 + \"deg\";\n if (props.projectId == \"Pj1101020007\") {\n item.left = (item.left - 120) * proxyData.comMapScale;\n } else {\n item.left = item.left * proxyData.comMapScale;\n }\n item.borderRadius = item.borderRadius\n ? JSON.parse(item.borderRadius)\n : \"\";\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 // 备份数据\n proxyData.copyMapDaata = JSON.parse(JSON.stringify(data));\n }\n },\n // 格式化地图(四川大厦)\n formateSpecialMapData() {\n let data: any = proxyData.mapData;\n if (data) {\n data.width = data.width * proxyData.comMapScale;\n data.height = data.height * proxyData.comMapScale;\n let spaceList: any = data.spaceList || [];\n spaceList.map((item: any) => {\n let remark: any = item.remark;\n if (remark) {\n let remarkObj: any = JSON.parse(remark);\n item.roomFuncType = \"300\";\n item.fillColor = \"#fff\";\n item.canClick = remarkObj.canClick;\n item.localName = remarkObj.localName;\n item.pointArr = remarkObj.pointArr;\n item.logoPointArr = remarkObj.logoPointArr;\n item.circlePointArr = remarkObj.circlePointArr;\n item.detailPointArr = remarkObj.detailPointArr;\n item.devicePointArr = remarkObj.devicePointArr;\n proxyData.setSpaceIcon(item);\n item.pointArr.map((dev: any) => {\n dev.left = dev.left * proxyData.comMapScale;\n dev.top = dev.top * proxyData.comMapScale;\n });\n item.logoPointArr.map((dev: any) => {\n dev.left = dev.left * proxyData.comMapScale;\n dev.top = (dev.top * 1 - 15) * proxyData.comMapScale;\n });\n item.circlePointArr.map((dev: any) => {\n dev.left = dev.left * proxyData.comMapScale;\n dev.top = dev.top * proxyData.comMapScale;\n });\n }\n });\n // 原始数据* proxyData.comMapScale\n proxyData.copyMapDaata = JSON.parse(JSON.stringify(data));\n }\n },\n // canvas画的地图缩放处理\n formateSpecialMapScale(scale: any) {\n let data: any = JSON.parse(JSON.stringify(proxyData.copyMapDaata));\n if (data) {\n data.width = data.width * scale;\n data.height = data.height * scale;\n let spaceList: any = data.spaceList || [];\n spaceList.map((item: any) => {\n item.pointArr.map((dev: any) => {\n dev.left = dev.left * scale;\n dev.top = dev.top * scale;\n });\n item.logoPointArr.map((dev: any) => {\n dev.left = dev.left * scale;\n dev.top = dev.top * scale;\n });\n item.circlePointArr.map((dev: any) => {\n dev.left = dev.left * scale;\n dev.top = dev.top * scale;\n });\n });\n proxyData.mapData = 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(type: any = 0) {\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 if (proxyData.mapType == 2) {\n if (type == 0) {\n canvasRef.value.init(proxyData.mapData);\n } else {\n canvasRef.value.scaleCanvas(proxyData.mapData);\n }\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 if (proxyData.mapType == 1) {\n // 方形地图处理\n let data: any = JSON.parse(JSON.stringify(proxyData.copyMapDaata));\n if (data) {\n let spaceList: any = data?.spaceList ?? [];\n data.width = data.width * proxyData.displacement.scale;\n data.height = data.height * proxyData.displacement.scale;\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 }\n } else {\n // canvas画的地图逻辑处理\n\n proxyData.formateSpecialMapScale(proxyData.displacement.scale);\n }\n\n proxyData.setMapBoxStyle(1);\n },\n /**\n * 更新地图的位置\n */\n updateMapPositon(temp: any, matrix_box: any) {\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 if (item == \"4555556\") {\n proxyData.floorItem = {\n id: \"4555556\",\n };\n proxyData.mapType = 2;\n } else {\n proxyData.floorItem = item;\n proxyData.mapType = 1;\n }\n\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 */\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 if (resData.result === \"success\") {\n // 默认地图\n proxyData.mapData = resData?.data ?? null;\n // 切换数据的时候清楚默认样式\n proxyData.clearPreStyle();\n if (proxyData.mapType === 2) {\n proxyData.formateSpecialMapData();\n } else {\n proxyData.formateMapData();\n }\n // 首次进入页面的时候展示空间来源于父div\n if (searchItem) {\n let area = proxyData.getFirstSelectSpace(searchItem);\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 })\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 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 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 proxyData.init(proxyData.spaceInfo);\n });\n return {\n canvasRef,\n ...toRefs(proxyData),\n };\n },\n});\n","import { render } from \"./MapBox.vue?vue&type=template&id=3ff6b59b&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=3ff6b59b&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-3ff6b59b\"]])\n\nexport default __exports__","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!./MapBox.vue?vue&type=style&index=0&id=3ff6b59b&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!./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>(`${setupService}/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","// 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","/**\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 'icon': 'officeroom.svg',\n 'selectIcon': 'officeroomselected.svg',\n 'backgroundColor': '#fff',\n 'circleColor': '#7582B0'\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","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=74cb39ba&lang=scss&scoped=true\"","'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":""}