|
|
|
@ -67,11 +67,11 @@ |
|
|
|
<el-radio-button label="google"> |
|
|
|
{{ $t("dashboard.overview.provider.google") }} |
|
|
|
</el-radio-button> |
|
|
|
<el-radio-button label="amap" :disabled="!hasAmapKey"> |
|
|
|
<el-radio-button label="amap"> |
|
|
|
{{ $t("dashboard.overview.provider.amap") }} |
|
|
|
</el-radio-button> |
|
|
|
|
|
|
|
<el-radio-button label="maptiler" :disabled="!hasMaptilerKey"> |
|
|
|
<el-radio-button label="maptiler"> |
|
|
|
{{ $t("dashboard.overview.provider.maptiler") }} |
|
|
|
</el-radio-button> |
|
|
|
|
|
|
|
@ -86,13 +86,14 @@ |
|
|
|
:closable="false" |
|
|
|
class="dashboard-map-panel__alert" |
|
|
|
/> |
|
|
|
<el-empty |
|
|
|
v-if="!devicePoints.length && !loading" |
|
|
|
:description="$t('dashboard.overview.map.empty')" |
|
|
|
:image-size="84" |
|
|
|
/> |
|
|
|
<div class="dashboard-map-shell" v-loading="mapLoading" v-show="devicePoints.length"> |
|
|
|
<div class="dashboard-map-shell" v-loading="mapLoading"> |
|
|
|
<div ref="map" class="dashboard-map"></div> |
|
|
|
<el-empty |
|
|
|
v-if="!devicePoints.length && !loading" |
|
|
|
:description="$t('dashboard.overview.map.empty')" |
|
|
|
:image-size="84" |
|
|
|
class="dashboard-map-empty-overlay" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -254,7 +255,14 @@ export default { |
|
|
|
this.$message.warning((error && error.message) || this.$t("dashboard.overview.message.mapConfigLoadFailed")); |
|
|
|
} |
|
|
|
}, |
|
|
|
async handleProviderChange() { |
|
|
|
async handleProviderChange(provider) { |
|
|
|
if (provider === "amap" && !this.hasAmapKey) { |
|
|
|
this.$message.warning(this.$t("dashboard.overview.message.missingAmapKey")); |
|
|
|
this.mapProvider = "google"; |
|
|
|
} else if (provider === "maptiler" && !this.hasMaptilerKey) { |
|
|
|
this.$message.warning(this.$t("dashboard.overview.message.missingMaptilerKey")); |
|
|
|
this.mapProvider = "google"; |
|
|
|
} |
|
|
|
await this.initCurrentMap(); |
|
|
|
this.renderMapPoints(); |
|
|
|
}, |
|
|
|
@ -763,6 +771,16 @@ export default { |
|
|
|
border: 1px solid #ebeef5; |
|
|
|
} |
|
|
|
|
|
|
|
.dashboard-map-empty-overlay { |
|
|
|
position: absolute; |
|
|
|
inset: 0; |
|
|
|
z-index: 20; |
|
|
|
pointer-events: none; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: center; |
|
|
|
} |
|
|
|
|
|
|
|
:deep(.dashboard-map-popup) { |
|
|
|
line-height: 1.8; |
|
|
|
font-size: 12px; |
|
|
|
|