From f5ad1f5ab363abac0557654871f0b7e364c705f6 Mon Sep 17 00:00:00 2001 From: jiannibang <271381693@qq.com> Date: Thu, 15 Aug 2024 13:29:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AF=B9=E6=8E=A5=E5=95=86=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/base/ShopItem/ShopItem.vue | 245 +++++++++++++++++++- src/base/ShopItem/arrow.png | Bin 0 -> 332 bytes src/base/ShopItem/close.png | Bin 0 -> 23335 bytes src/base/ShopItem/loc.png | Bin 0 -> 912 bytes src/base/ShopItem/pictag.png | Bin 0 -> 2953 bytes src/composables/useInitConfigAndMallInfo.js | 41 +++- src/http/api.js | 4 + src/http/config.js | 3 +- src/store/root/actions.js | 6 + src/store/root/getters.js | 1 - src/store/root/state.js | 2 + src/views/Brand/Brand.vue | 7 +- 12 files changed, 300 insertions(+), 9 deletions(-) create mode 100644 src/base/ShopItem/arrow.png create mode 100644 src/base/ShopItem/close.png create mode 100644 src/base/ShopItem/loc.png create mode 100644 src/base/ShopItem/pictag.png diff --git a/src/base/ShopItem/ShopItem.vue b/src/base/ShopItem/ShopItem.vue index f0a26cb..7b00eaa 100644 --- a/src/base/ShopItem/ShopItem.vue +++ b/src/base/ShopItem/ShopItem.vue @@ -8,6 +8,7 @@ class="shop-logo" /> +

{{ switchLanguage(shop, 'shopName') }} {{ shop.distance ? shop.distance + '米' : '' }} @@ -33,7 +34,7 @@ -

+
+ + + +
+
+ +
{{ switchLanguage(shop, 'shopName') }}
+
{{ shop.floor }}
+ + +
扫码导航
+
+ + + +
+
@@ -60,9 +87,11 @@ import QRCodeFromText from '@/components/QRCodeFromText/QRCodeFromText.vue' import { storeToRefs } from 'pinia' import { useStore } from '@/store/root' import { computed } from 'vue' +import EffectFade from '@/components/EffectFade/EffectFade.vue' const store = useStore() -const { currentFloor, config, theme, showMap, path } = storeToRefs(store) +const { currentFloor, config, theme, showMap, path, shopPicsMap } = storeToRefs(store) const isBrandShowMap = computed(() => showMap.value && (path.value === '/brand' || path.value === '/foods')) +const pics = computed(() => shopPicsMap.value[props.shop.shopCode]) const props = defineProps({ shop: Object, @@ -82,11 +111,19 @@ const deactivate = () => store.SET_SHOP(null) diff --git a/src/base/ShopItem/arrow.png b/src/base/ShopItem/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..b0ffc4e775036abedef9d5ce6de8b6dc5cb59842 GIT binary patch literal 332 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 literal 0 HcmV?d00001 diff --git a/src/base/ShopItem/pictag.png b/src/base/ShopItem/pictag.png new file mode 100644 index 0000000000000000000000000000000000000000..d499d05af6902aac44fe010649fd6e28d775d848 GIT binary patch literal 2953 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 literal 0 HcmV?d00001 diff --git a/src/composables/useInitConfigAndMallInfo.js b/src/composables/useInitConfigAndMallInfo.js index 484c094..4ef1a85 100644 --- a/src/composables/useInitConfigAndMallInfo.js +++ b/src/composables/useInitConfigAndMallInfo.js @@ -1,4 +1,4 @@ -import { getConfig, getCurrentFloor, getGuideList, getTheme, getQMGoShopData, getMenuList, getFoodIIndustryList, getWeather } from '@/http/api' +import { getConfig, getCurrentFloor, getGuideList, getTheme, getQMGoShopData, getMenuList, getFoodIIndustryList, getWeather, getPicsUrl, getPics } from '@/http/api' import { useStore } from '@/store/root' import VConsole from 'vconsole' const matchPXExp = /([0-9.]+px)/g @@ -67,6 +67,43 @@ export const useInitConfigAndMallInfo = async () => { data: { searchList, recommendList } } = await getQMGoShopData() const shopMap = shopList.reduce((acc, nxt) => ({ ...acc, [nxt.shopCode]: nxt }), {}) - + const hasPic = getPicsUrl() + if (hasPic) handlePics() store.SET_INDEX_LIST({ ...weather, recommendList, hotSearch: searchList.filter(({ shopName }) => shopName).map(item => ({ ...item, ...shopMap[item.shopCode] })) }) } + +const fetchPics = async () => { + const store = useStore() + try { + const { data } = await getPics() + if (Array.isArray(data)) { + store.SET_SHOP_PICS(data) + setPics() + } + } catch (error) { + console.log(error) + } +} +const setPics = () => { + const store = useStore() + const now = Date.now() + const shopPicsMap = store.shopPics.reduce((acc, { shopCode, fileUrl, startTime, endTime }) => { + const s = new Date(startTime).getTime() + const e = new Date(endTime).getTime() + if (s < now && e > now) { + acc[shopCode] = acc[shopCode] ? [...acc[shopCode], fileUrl] : [fileUrl] + } + return { ...acc } + }, {}) + store.SET_SHOP_PICS_MAP(shopPicsMap) +} +const handlePics = () => { + fetchPics() + setInterval(() => { + fetchPics() + }, 30 * 60 * 1000) + + setInterval(() => { + setPics() + }, 60 * 1000) +} diff --git a/src/http/api.js b/src/http/api.js index 48508f5..0e7e2e9 100644 --- a/src/http/api.js +++ b/src/http/api.js @@ -54,3 +54,7 @@ export const getMenuList = () => get(`./static/offline/JSON/menuList.json`) export const getFoodIIndustryList = () => get(`./static/offline/JSON/foodIIndustryList.json`) export const getFacilityList = () => get(`./static/offline/JSON/getFacilityList.json`) + +export const getPicsUrl = () => url().picsUrl + +export const getPics = () => post(url().picsUrl, {}) diff --git a/src/http/config.js b/src/http/config.js index 629cb14..56ed3eb 100644 --- a/src/http/config.js +++ b/src/http/config.js @@ -16,5 +16,6 @@ export function url() { const sourceUrl = './static/offline' const handWriteUrl = store.config.handWriteUrl const clickUploadUrl = store.config.clickUploadUrl - return { interfaceUrl, sourceUrl, handWriteUrl, clickUploadUrl } + const picsUrl = !interfaceUrl ? null : !interfaceUrl.startsWith('https') ? null : `${interfaceUrl}/data/v1/web/getShopPictureList` + return { interfaceUrl, sourceUrl, handWriteUrl, clickUploadUrl, picsUrl } } diff --git a/src/store/root/actions.js b/src/store/root/actions.js index dba7b69..6fa164a 100644 --- a/src/store/root/actions.js +++ b/src/store/root/actions.js @@ -1,6 +1,12 @@ import { i18n } from '@/i18n' import { useStatistics } from '@/composables/useStatistics' export const actions = { + SET_SHOP_PICS(list) { + this.shopPics = list + }, + SET_SHOP_PICS_MAP(map) { + this.shopPicsMap = map + }, SET_SHOP_LIST(list) { this.shopList = list }, diff --git a/src/store/root/getters.js b/src/store/root/getters.js index 381c693..01f9770 100644 --- a/src/store/root/getters.js +++ b/src/store/root/getters.js @@ -40,7 +40,6 @@ export const currentFloorShopMap = ({ currentFloor: device, shopList, mapData }) let angle = (Math.atan2(deviceY - xaxis[2], xaxis[0] - deviceX) / Math.PI) * 180 + device.angle if (angle < 0) angle += 360 if (angle > 360) angle -= 360 - console.log(angle) angle = (angle / 180) * Math.PI result.distance = Math.ceil(getDistance({ x: deviceX, y: deviceY }, { x: xaxis[0], y: xaxis[2] }) / building.scale) diff --git a/src/store/root/state.js b/src/store/root/state.js index b7058e4..b5c50de 100644 --- a/src/store/root/state.js +++ b/src/store/root/state.js @@ -1,4 +1,6 @@ export const state = () => ({ + shopPicsMap: {}, + shopPics: [], menuList: [], is4k: is4k(), shopList: [], //店铺列表 diff --git a/src/views/Brand/Brand.vue b/src/views/Brand/Brand.vue index cdb57ab..c00f49b 100644 --- a/src/views/Brand/Brand.vue +++ b/src/views/Brand/Brand.vue @@ -37,7 +37,7 @@ import { useMediaQuery } from '@vueuse/core' const store = useStore() const storeRefs = storeToRefs(store) -const { config, indexList, foodIndustryMap, shop, currentFloor, showMap, showSearch, path } = storeRefs +const { config, indexList, foodIndustryMap, shop, currentFloor, showMap, showSearch, path, shopPicsMap } = storeRefs const mapIdx = ref(-1) const mapTimer = ref(null) const mapIconTimer = ref(null) @@ -67,9 +67,10 @@ onBeforeUnmount(() => { if (!showSearch.value) store.SET_SHOP(null) }) function handleShop(item) { - if (shop.value?.shopCode === item.shopCode) { + if (shop.value?.shopCode === item.shopCode || shopPicsMap.value[item.shopCode]) { if (showMap.value) { - window.Map_QM.pathNode({ floor: shop.value.floorOrder, node: shop.value.yaxis }) + if (shop.value) window.Map_QM.pathNode({ floor: shop.value.floorOrder, node: shop.value.yaxis }) + else window.Map_QM.pathNode({ floor: item.floorOrder, node: item.yaxis }) } else store.SET_SHOW_MAP(true) } mapIdx.value = -1