Compare commits

...

3 Commits

Author SHA1 Message Date
朱志育 8898d7df58 Merge pull request 'test' (#13) from test into master 1 year ago
朱志育 9d720a6c00 Merge pull request 'feat: 对接cdn+obs' (#12) from dev into test 1 year ago
jiannibang ad3a866f60 feat: 对接cdn+obs 1 year ago
  1. 206
      src/js/helpers/data-helper.js

206
src/js/helpers/data-helper.js

@ -3,9 +3,7 @@ import icons from "./image-helper";
let mallInfos = new Map(); let mallInfos = new Map();
const href = window.location.href; const href = window.location.href;
let baseUrl = 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://project-iot.test.1000my.com"
: "https://iot.1000my.com"; : "https://iot.1000my.com";
@ -26,97 +24,95 @@ const getMallInfo = async (code) => {
cloud: "1000my", cloud: "1000my",
offsetToNorth, 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 = { 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 mall.name = projectName
.replace("导视", "") .replace("导视", "")
.replace("信发", "") .replace("信发", "")
@ -124,12 +120,14 @@ const getMallInfo = async (code) => {
.replace("/", ""); .replace("/", "");
document.title = mall.name; document.title = mall.name;
mall.city = cityName; mall.city = cityName;
const mapData = JSON.parse(mapDataJSON)[0]; const mapData = JSON.parse(mapDataJSON)[0];
mall.floors = buildingList[0].floorList.map(({ floor, floorOrder }) => ({
mall.floors = serverShopInfo.map(({ floor, floorOrd }) => ({
name: floor, name: floor,
floorOrder,
floorOrder: floorOrd,
url: true, url: true,
})); }));
mall.facilityTypeMap = facs.reduce( mall.facilityTypeMap = facs.reduce(
(acc, nxt) => ({ (acc, nxt) => ({
...acc, ...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, ...iot,
name: iot.shopName,
code: iot.shopCode,
houseNum: iot.houseNumber, houseNum: iot.houseNumber,
nameEn: iot.shopNameEn,
logoPath: cdnUrl + iot.logoUrl, logoPath: cdnUrl + iot.logoUrl,
shopFormat: iot.industryFatherName, 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 }) => shopInfo.forEach(({ shopList }) =>
shopList.forEach((shop) => { shopList.forEach((shop) => {

Loading…
Cancel
Save