diff --git a/src/js/helpers/data-helper.js b/src/js/helpers/data-helper.js index 28dfd78..9ab795f 100644 --- a/src/js/helpers/data-helper.js +++ b/src/js/helpers/data-helper.js @@ -3,9 +3,7 @@ import icons from "./image-helper"; let mallInfos = new Map(); const href = window.location.href; let baseUrl = - href.includes("localhost") || href.includes("-dev") - ? "https://iot-dev.123.1000my.com" - : href.includes("-test") + href.includes("localhost") || href.includes("-dev") || href.includes("-test") ? "https://project-iot.test.1000my.com" : "https://iot.1000my.com"; @@ -26,97 +24,95 @@ const getMallInfo = async (code) => { cloud: "1000my", offsetToNorth, }; - + let cdnUrl; + try { + const { + data: { data: uploadUrl }, + } = await axios.get(`${baseUrl}/api/info/v1/web/getUploadUrl`); + cdnUrl = uploadUrl; + } catch (error) { + console.error(error); + } const config = { - mapDataUrl: `${baseUrl}/api/data/v1/web/getMallMapData/${code}/Aeditor`, - shopInfoUrl: `${baseUrl}/api/data/v1/web/getMapInfo?projectCode=${code}`, + mapDataUrl: `${cdnUrl}/ar/${code}/Aeditor/Aeditor.json?t=${new Date().getTime()}`, + shopInfoUrl: `${cdnUrl}/ar/${code}/QueryShopListForMap/QueryShopListForMap.json?t=${new Date().getTime()}`, }; + try { + const { + data: { mapUrl, shopUrl }, + } = await axios.get( + `${cdnUrl}/ar/${code}/config.json?t=${new Date().getTime()}` + ); + if (mapUrl) config.mapDataUrl = mapUrl; + if (shopUrl) config.shopInfoUrl = shopUrl; + } catch (error) { + console.log("获取config失败"); + } - const [ - cdnUrl, - mapDataJSON, - [buildingList, serverShopInfo], - facs, - theme, - { cityName, projectName }, - ] = await Promise.all([ - (async () => { - try { - const { - data: { data: cdnUrl }, - } = await axios.get(`${baseUrl}/api/info/v1/web/getUploadUrl`); - return cdnUrl; - } catch (error) { - console.error(error); - return {}; - } - })(), - (async () => { - try { - const { - data: { - data: { mapData: mapDataJSON }, - }, - } = await axios.get(config.mapDataUrl); - return mapDataJSON; - } catch (error) { - console.error(error); - return {}; - } - })(), - (async () => { - try { - const { - data: { - data: { buildingList, shopList: serverShopInfo }, - }, - } = await axios.get(config.shopInfoUrl); - return [buildingList, serverShopInfo]; - } catch (error) { - console.error(error); - return {}; - } - })(), - (async () => { - try { - const { - data: { data: facs }, - } = await axios.get( - `${baseUrl}/api/data/v1/web/getProjectUsedIconList?projectCode=${code}` - ); - return facs; - } catch (error) { - console.error(error); - return []; - } - })(), - (async () => { - try { - const { - data: { data: theme }, - } = await axios.get( - `${baseUrl}/api/guide/v1/web/getProjectBindingTheme?projectCode=${code}` - ); - return theme; - } catch (error) { - console.error(error); - return {}; - } - })(), - (async () => { - try { - const { - data: { data }, - } = await axios.get( - `${baseUrl}/api/data/v1/web/getMallData?projectCode=${code}` - ); - return data; - } catch (error) { - console.error(error); - return {}; - } - })(), - ]); + const [mapDataJSON, serverShopInfo, facs, theme, { cityName, projectName }] = + await Promise.all([ + (async () => { + try { + const { + data: { data }, + } = await axios.get(config.mapDataUrl); + return data[0].mapData; + } catch (error) { + console.error(error); + return {}; + } + })(), + (async () => { + try { + const { + data: { data }, + } = await axios.get(config.shopInfoUrl); + return data[0]; + } catch (error) { + console.error(error); + return {}; + } + })(), + (async () => { + try { + const { + data: { data: facs }, + } = await axios.get( + `${baseUrl}/api/data/v1/web/getProjectUsedIconList?projectCode=${code}` + ); + return facs; + } catch (error) { + console.error(error); + return []; + } + })(), + (async () => { + try { + const { + data: { data: theme }, + } = await axios.get( + `${baseUrl}/api/guide/v1/web/getProjectBindingTheme?projectCode=${code}` + ); + return theme; + } catch (error) { + console.error(error); + return {}; + } + })(), + (async () => { + try { + const { + data: { data }, + } = await axios.get( + `${baseUrl}/api/data/v1/web/getMallData?projectCode=${code}` + ); + return data; + } catch (error) { + console.error(error); + return {}; + } + })(), + ]); mall.name = projectName .replace("导视", "") .replace("信发", "") @@ -124,12 +120,14 @@ const getMallInfo = async (code) => { .replace("/", ""); document.title = mall.name; mall.city = cityName; + const mapData = JSON.parse(mapDataJSON)[0]; - mall.floors = buildingList[0].floorList.map(({ floor, floorOrder }) => ({ + mall.floors = serverShopInfo.map(({ floor, floorOrd }) => ({ name: floor, - floorOrder, + floorOrder: floorOrd, url: true, })); + mall.facilityTypeMap = facs.reduce( (acc, nxt) => ({ ...acc, @@ -137,22 +135,20 @@ const getMallInfo = async (code) => { }), {} ); - const shopInfo = serverShopInfo - .filter(({ buildingOrder }) => buildingOrder === 0) - .map((iot) => ({ + const shopInfo = serverShopInfo.map(({ floorOrd: floorOrder, shopList }) => ({ + floorOrder, + shopList: shopList.map((iot) => ({ ...iot, - name: iot.shopName, + code: iot.shopCode, houseNum: iot.houseNumber, - nameEn: iot.shopNameEn, logoPath: cdnUrl + iot.logoUrl, shopFormat: iot.industryFatherName, - })) - .reduce((acc, nxt) => { - if (!acc[nxt.floorOrder]) acc[nxt.floorOrder] = [nxt]; - else acc[nxt.floorOrder] = [...acc[nxt.floorOrder], nxt]; - return acc; - }, []) - .map((shopList, floorOrder) => ({ floorOrder, shopList })); + shopFormatName: iot.industryFatherName, + intro: true, + formatColor: iot.color, + floorOrder, + })), + })); shopInfo.forEach(({ shopList }) => shopList.forEach((shop) => {