| | |
| | | </div> |
| | | </div> |
| | | `, |
| | | props: ['lev', 'zoom', 'crnParam', 'rgvParam', 'devpParam', 'highlightOnParamChange'], |
| | | props: ['lev', 'crnParam', 'rgvParam', 'devpParam', 'highlightOnParamChange'], |
| | | data() { |
| | | return { |
| | | map: [], |
| | |
| | | watch: { |
| | | lev(newLev) { |
| | | if (newLev != null) { this.changeFloor(newLev); } |
| | | }, |
| | | zoom(newZoom) { |
| | | this.applyZoom(newZoom); |
| | | }, |
| | | crnParam: { |
| | | deep: true, |
| | |
| | | getTrackSiteNo(obj) { |
| | | if (this.isJson(obj)) { let data = JSON.parse(obj); if (data.trackSiteNo == null || data.trackSiteNo == undefined) { return -1; } return data.trackSiteNo; } else { return -1; } |
| | | }, |
| | | applyZoom(z) { |
| | | let scale = 1; |
| | | if (typeof z === 'number') { scale = Math.max(0.1, Math.min(5, z / 100)); } |
| | | const sx = this.pixiApp.view.width / 2; |
| | | const sy = this.pixiApp.view.height / 2; |
| | | const oldZoom = this.pixiApp.stage.scale.x; |
| | | const worldX = (sx - this.pixiApp.stage.position.x) / oldZoom; |
| | | const worldY = (sy - this.pixiApp.stage.position.y) / oldZoom; |
| | | const newPosX = sx - worldX * scale; |
| | | const newPosY = sy - worldY * scale; |
| | | this.pixiApp.stage.setTransform(newPosX, newPosY, scale, scale, 0, 0, 0, 0, 0); |
| | | } |
| | | } |
| | | }); |
| | |
| | | <el-tab-pane label="RGV" name="rgv"> |
| | | <watch-rgv-card :param="rgvParam"></watch-rgv-card> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="地图配置" name="mapSetting"> |
| | | <!-- <el-tab-pane label="地图配置" name="mapSetting"> |
| | | <map-setting-card :param="mapSettingParam"></map-setting-card> |
| | | </el-tab-pane> |
| | | </el-tab-pane> --> |
| | | </el-tabs> |
| | | </div> |
| | | |
| | | <map-canvas :lev="currentLev" :zoom="mapSettingParam.zoom" :crn-param="crnParam" :rgv-param="rgvParam" :devp-param="devpParam" @crn-click="openCrn" @station-click="openSite" style="width: 80%; height: 100vh;"></map-canvas> |
| | | <map-canvas :lev="currentLev" :crn-param="crnParam" :rgv-param="rgvParam" :devp-param="devpParam" @crn-click="openCrn" @station-click="openSite" style="width: 80%; height: 100vh;"></map-canvas> |
| | | |
| | | <div style="position: absolute;top: 15px;left: 50%;display: flex;"> |
| | | <div v-if="levList.length > 1" v-for="(lev,index) in levList" :key="index" style="margin-right: 10px;"> |