From 2d51f7b2bedae6fdb7e1cf14f27d8e1c0a507d50 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Sat, 29 Jun 2024 14:09:47 +0800 Subject: [PATCH] show provider of exchange rates data and map in about page --- src/consts/map.js | 7 ++++ src/lib/map/amap.js | 4 +++ src/lib/map/baidumap.js | 4 +++ src/lib/map/googlemap.js | 4 +++ src/lib/map/index.js | 17 +++++++++ src/locales/en.js | 16 +++++++++ src/locales/zh_Hans.js | 16 +++++++++ src/views/desktop/AboutPage.vue | 61 +++++++++++++++++++++++++++++++-- src/views/mobile/AboutPage.vue | 33 ++++++++++++++++-- 9 files changed, 158 insertions(+), 4 deletions(-) diff --git a/src/consts/map.js b/src/consts/map.js index 0a4e422f..e4138124 100644 --- a/src/consts/map.js +++ b/src/consts/map.js @@ -5,6 +5,7 @@ const leafletTileSources = { minZoom: 1, maxZoom: 19, defaultZoomLevel: 14, + website: 'https://www.openstreetmap.org', attribution : '© OpenStreetMap contributors' }, 'openstreetmap-humanitarian': { @@ -13,6 +14,7 @@ const leafletTileSources = { minZoom: 1, maxZoom: 19, defaultZoomLevel: 14, + website: 'https://www.hotosm.org', attribution : '© OpenStreetMap contributors, Tiles style by Humanitarian OpenStreetMap Team hosted by OpenStreetMap France' }, 'opentopomap': { @@ -21,6 +23,7 @@ const leafletTileSources = { minZoom: 1, maxZoom: 17, defaultZoomLevel: 14, + website: 'https://opentopomap.org', attribution : 'Map data: © OpenStreetMap contributors, SRTM | Map style: © OpenTopoMap (CC-BY-SA)' }, 'opnvkarte': { @@ -29,6 +32,7 @@ const leafletTileSources = { minZoom: 1, maxZoom: 17, defaultZoomLevel: 14, + website: 'https://memomaps.de', attribution : 'Map memomaps.de CC-BY-SA, map data © OpenStreetMap contributors' }, 'cyclosm': { @@ -37,6 +41,7 @@ const leafletTileSources = { minZoom: 1, maxZoom: 19, defaultZoomLevel: 14, + website: 'https://github.com/cyclosm/cyclosm-cartocss-style', attribution : 'CyclOSM | Map data: © OpenStreetMap contributors' }, 'cartodb': { @@ -45,6 +50,7 @@ const leafletTileSources = { minZoom: 1, maxZoom: 20, defaultZoomLevel: 14, + website: 'https://carto.com', attribution : '© OpenStreetMap, © CARTO' }, 'tomtom': { @@ -63,6 +69,7 @@ const leafletTileSources = { minZoom: 1, maxZoom: 19, defaultZoomLevel: 14, + website: 'https://tomtom.com', attribution : '© 1992 - 2023 TomTom.' } } diff --git a/src/lib/map/amap.js b/src/lib/map/amap.js index 8b9083de..888de6c6 100644 --- a/src/lib/map/amap.js +++ b/src/lib/map/amap.js @@ -11,6 +11,10 @@ const amapHolder = { AMap: null }; +export function getAmapWebsite() { + return 'https://www.amap.com'; +} + export function loadAmapAssets() { if (amapHolder.AMap) { return; diff --git a/src/lib/map/baidumap.js b/src/lib/map/baidumap.js index d375e0a4..48a10981 100644 --- a/src/lib/map/baidumap.js +++ b/src/lib/map/baidumap.js @@ -10,6 +10,10 @@ const baiduMapHolder = { COORDINATES_BD09: window.COORDINATES_BD09 || 5 }; +export function getBaiduMapWebsite() { + return 'https://map.baidu.com'; +} + export function loadBaiduMapAssets() { if (baiduMapHolder.BMap) { return; diff --git a/src/lib/map/googlemap.js b/src/lib/map/googlemap.js index 1794cc68..e12556a2 100644 --- a/src/lib/map/googlemap.js +++ b/src/lib/map/googlemap.js @@ -8,6 +8,10 @@ const googleMapHolder = { } }; +export function getGoogleMapWebsite() { + return 'https://maps.google.com'; +} + export function loadGoogleMapAssets(language) { if (googleMapHolder.googleMap) { return; diff --git a/src/lib/map/index.js b/src/lib/map/index.js index 42a578c3..d09ef7c7 100644 --- a/src/lib/map/index.js +++ b/src/lib/map/index.js @@ -13,6 +13,7 @@ import { } from './leaflet.js'; import { + getGoogleMapWebsite, loadGoogleMapAssets, createGoogleMapHolder, createGoogleMapInstance, @@ -22,6 +23,7 @@ import { } from './googlemap.js'; import { + getBaiduMapWebsite, loadBaiduMapAssets, createBaiduMapHolder, createBaiduMapInstance, @@ -31,6 +33,7 @@ import { } from './baidumap.js'; import { + getAmapWebsite, loadAmapAssets, createAmapHolder, createAmapInstance, @@ -39,6 +42,20 @@ import { removeAmapCenterMaker } from './amap.js'; +export function getMapWebsite() { + if (getMapProvider() === 'custom') { + return ''; + } else if (mapConstants.leafletTileSources[getMapProvider()]) { + return mapConstants.leafletTileSources[getMapProvider()].website; + } else if (getMapProvider() === 'googlemap') { + return getGoogleMapWebsite(); + } else if (getMapProvider() === 'baidumap') { + return getBaiduMapWebsite(); + } else if (getMapProvider() === 'amap') { + return getAmapWebsite(); + } +} + export function loadMapAssets(language) { if (mapConstants.leafletTileSources[getMapProvider()] || getMapProvider() === 'custom') { return loadLeafletMapAssets(language); diff --git a/src/locales/en.js b/src/locales/en.js index d589a552..3a208cc4 100644 --- a/src/locales/en.js +++ b/src/locales/en.js @@ -555,6 +555,19 @@ export default { 'Reimbursement': 'Reimbursement', 'Other Transfer': 'Other Transfer', }, + 'mapprovider': { + 'openstreetmap': 'OpenStreetMap', + 'openstreetmap-humanitarian': 'Humanitarian OpenStreetMap Team', + 'opentopomap': 'OpenTopoMap', + 'opnvkarte': 'MeMoMaps', + 'cyclosm': 'CyclOSM', + 'cartodb': 'CARTO', + 'tomtom': 'TomTom', + 'googlemap': 'Google Map', + 'baidumap': 'Baidu Map', + 'amap': 'Amap', + 'custom': 'User Custom', + }, 'error': { 'system error': 'System Error', 'api not found': 'Failed to request api', @@ -781,6 +794,8 @@ export default { 'Area Chart': 'Area Chart', 'Column Chart': 'Column Chart', 'Sort by': 'Sort by', + 'Map': 'Map', + 'Provider': 'Provider', 'User': 'User', 'Application': 'Application', 'Danger Zone': 'Danger Zone', @@ -1250,6 +1265,7 @@ export default { 'About': 'About', 'Build Time': 'Build Time', 'Official Website': 'Official Website', + 'Report Issue': 'Report Issue', 'License': 'License', 'An error occurred': 'An error occurred', 'Parameter Invalid': 'Parameter Invalid', diff --git a/src/locales/zh_Hans.js b/src/locales/zh_Hans.js index 15e06409..9ab93e3b 100644 --- a/src/locales/zh_Hans.js +++ b/src/locales/zh_Hans.js @@ -555,6 +555,19 @@ export default { 'Reimbursement': '报销', 'Other Transfer': '其他转账', }, + 'mapprovider': { + 'openstreetmap': 'OpenStreetMap', + 'openstreetmap-humanitarian': 'Humanitarian OpenStreetMap Team', + 'opentopomap': 'OpenTopoMap', + 'opnvkarte': 'MeMoMaps', + 'cyclosm': 'CyclOSM', + 'cartodb': 'CARTO', + 'tomtom': 'TomTom', + 'googlemap': 'Google 地图', + 'baidumap': '百度地图', + 'amap': '高德地图', + 'custom': '用户自定义', + }, 'error': { 'system error': '系统错误', 'api not found': '接口调用失败', @@ -781,6 +794,8 @@ export default { 'Area Chart': '面积图', 'Column Chart': '柱状图', 'Sort by': '排序方式', + 'Map': '地图', + 'Provider': '提供者', 'User': '用户', 'Application': '应用', 'Danger Zone': '危险区域', @@ -1250,6 +1265,7 @@ export default { 'About': '关于', 'Build Time': '编译时间', 'Official Website': '官方网站', + 'Report Issue': '报告问题', 'License': '许可协议', 'An error occurred': '发生错误', 'Parameter Invalid': '参数错误', diff --git a/src/views/desktop/AboutPage.vue b/src/views/desktop/AboutPage.vue index c680081f..acf5800e 100644 --- a/src/views/desktop/AboutPage.vue +++ b/src/views/desktop/AboutPage.vue @@ -1,7 +1,7 @@