Browse Source

feat: 🚀 猜你喜欢

pull/1/head
liyongle 3 years ago
parent
commit
a547e63201
  1. 18691
      package-lock.json
  2. 1
      package.json
  3. BIN
      public/static/img/out/skp.glb
  4. 7
      public/static/offline/JSON/GetMapInfo.json
  5. 56
      public/static/offline/JSON/getAreaPicList.json
  6. 114
      public/static/offline/JSON/getArtList.json
  7. 91
      public/static/offline/JSON/getArtWorkList.json
  8. 72
      public/static/offline/JSON/getFloorPicList.json
  9. 102
      public/static/offline/JSON/getHomeBtn.json
  10. 36
      public/static/offline/JSON/getPlaceList.json
  11. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/-w-sNUAbn9l-PQlHv-h9u.png
  12. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/0rVAbf5rtIQ4RHRaFk26V.png
  13. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/1JmWL-e0WtuGc-JqD0lRn.png
  14. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/1b952fnpGjH6ehs8xDQVw.png
  15. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/2IPrUrTuNE6LgBhOs_G-D.jpg
  16. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/2gpHUBlWdgwCLuf8uNtLM.png
  17. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/4B2iSUGZDkZyzgVtMKG-6.png
  18. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/4l-vejfQ-5U1TlDgV4zMo.png
  19. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/4nlbQAQz186cuXQlQovoG.png
  20. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/5-c4UvL66CcV637vi8fLR.png
  21. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/6TaKZU3n6SH7XNykJd1Eb.png
  22. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/7-qDwXhfxOk7o0n3fcb7U.png
  23. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/9cM2yZkhEdR3lEFaqaoaI.jpg
  24. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/9mz05Nfoc1theWCLrxLuS.png
  25. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/HKtadKUIQabmmQXDrK77D.png
  26. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/RCvClEobIExmcgnTPNLEy.png
  27. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/RciDjH_ywKjJf-oM3dLVV.png
  28. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/T6CGKUqS9jU98DNTH5XcR.png
  29. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/TsN_cNoRl0w39z9FnligR.png
  30. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/U_7Ff9Tb7rlzGZQwVIcsN.png
  31. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/XWsWlNV-iwor603LlgwZU.png
  32. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/YgKLo9SV9VAqffewZ2lqz.png
  33. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/Z8XQcDxqjMQ1IK17fqmXH.png
  34. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/_RJH-rvil5FWMgxo0X6iv.png
  35. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/a6RCf9x7igC3JKwuaz_ee.png
  36. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/bkUZCPauZO-tPOZJJzftJ.png
  37. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/c1VUXfJv4opIVWKFJ2Rea.png
  38. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/d63kCdrlDM7LXZ05touQw.png
  39. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/e4JE3HNGbT_6XgWMmOnNd.png
  40. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/eRZy0xJTm1hnUhru9dMUB.png
  41. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/f2fJil-conird4O3meEZZ.png
  42. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/gfwd8Bs2_7W51RxBEztS9.png
  43. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/hiW5uk-zcNfOwrM1fCLQG.jpg
  44. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/iUY6SJgy4xJriY9VJxE6B.png
  45. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/iYMKC42VyVzkEdPeMQ6-c.png
  46. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/jeG0KsjVS4B3bJVZpFKyL.jpg
  47. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/jeWheroxTSFvt1t56jD34.png
  48. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/k701oftLnDD1GsBpFePOU.jpg
  49. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/khab4-qwrhNjRqQ8eqNBb.jpg
  50. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/nq3Gwv0VIXF83-qle33OW.png
  51. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/oxZo0bxheowGf7mLZ04sw.png
  52. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/p4-Ckr1lx84uu-zMIV28O.png
  53. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/pF_iaTtKJx2Puq5WEuSVY.png
  54. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/r2h0aSdRUuLgz05j4huWz.jpg
  55. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/tN00qYRLyPUBgPNsYeivZ.png
  56. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/vUTTkU4TpFBGbrDx1XIlq.png
  57. BIN
      public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/xePHdnSvOixR-rNUblVMT.png
  58. 0
      public/static/offline/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/activity.svg
  59. 0
      public/static/offline/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/all.svg
  60. BIN
      public/static/offline/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/food.png
  61. BIN
      public/static/offline/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/k.png
  62. 0
      public/static/offline/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/minMap.svg
  63. BIN
      public/static/offline/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/skp.png
  64. BIN
      public/static/offline/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/skps.png
  65. 182
      public/static/qm/MainMap_QM.js
  66. BIN
      src/assets/images/menu/activity_proc.png
  67. 5
      src/assets/images/menu/art.svg
  68. BIN
      src/assets/images/menu/art_proc.png
  69. 3
      src/assets/images/menu/brand.svg
  70. BIN
      src/assets/images/menu/brand_proc.png
  71. 5
      src/assets/images/menu/map.svg
  72. BIN
      src/assets/images/menu/map_proc.png
  73. 3
      src/assets/images/menu/member.svg
  74. BIN
      src/assets/images/menu/member_proc.png
  75. 5
      src/assets/images/menu/parking.svg
  76. BIN
      src/assets/images/menu/parking_proc.png
  77. 4
      src/assets/images/menu/service.svg
  78. BIN
      src/assets/images/menu/service_proc.png
  79. 3
      src/assets/images/menu/traffic.svg
  80. BIN
      src/assets/images/menu/traffic_proc.png
  81. 2
      src/base/AutoBackNotification/AutoBackNotification.vue
  82. 4
      src/components/Header/Header.vue
  83. 78
      src/components/Menu/Menu.vue
  84. 11
      src/components/PublicComponent/PublicComponent.vue
  85. 211
      src/components/Recommend/Recommend.vue
  86. 19
      src/composables/useArea.ts
  87. 20
      src/composables/useGuideFilterShop.ts
  88. 14
      src/composables/useGuideMapOperation.ts
  89. 22
      src/composables/useInitConfigAndMallInfo.ts
  90. 8
      src/http/api/art/index.ts
  91. 6
      src/http/api/base/index.ts
  92. 4
      src/http/api/menu/index.ts
  93. 3
      src/http/api/parking/index.ts
  94. 5
      src/http/api/place/index.ts
  95. 7
      src/http/api/statistics/index.ts
  96. 2
      src/main.ts
  97. 8
      src/store/root/actions.ts
  98. 6
      src/store/root/state.ts
  99. 23
      src/types/art.d.ts
  100. 19
      src/types/building.d.ts

18691
package-lock.json

File diff suppressed because it is too large

1
package.json

@ -30,6 +30,7 @@
"swiper": "^8.4.5",
"vue": "^3.2.13",
"vue-i18n": "^9.2.2",
"vue-masonry": "^0.16.0",
"vue-router": "^4.0.3",
"vue3-lazyload": "^0.3.6"
},

BIN
public/static/img/out/skp.glb

Binary file not shown.

7
public/static/offline/JSON/GetMapInfo.json

@ -9505,6 +9505,13 @@
"buildingCode": "DLvmtzN2qodUq_oYr7vyM",
"buildingOrder": 0,
"floorList": [
{
"floor": "ALL",
"floorCode": "yat_acOU1WqQMyEm8XlDO",
"floorOrder": 6,
"floorMapUrl": "/iotFile/2023/05/10/0EOhM6GkfnwvX9YmrOTZs.jpg",
"floorMapCode": "0EOhM6GkfnwvX9YmrOTZs"
},
{
"floor": "L4",
"floorCode": "yat_acOU1WqQMyEm8XlDO",

56
public/static/offline/JSON/getAreaPicList.json

@ -0,0 +1,56 @@
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 193,
"title": "SKP-S",
"content": {
"name": "SKP-S",
"file_code": [
"/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/skps.png"
]
}
},
{
"id": 194,
"title": "全部区域",
"content": {
"name": "全部区域",
"file_code": [
"/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/all.svg"
]
}
},
{
"id": 195,
"title": "K大道",
"content": {
"name": "K大道",
"file_code": [
"/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/k.png"
]
}
},
{
"id": 196,
"title": "美食大道",
"content": {
"name": "美食大道",
"file_code": [
"/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/food.png"
]
}
},
{
"id": 197,
"title": "SKP",
"content": {
"name": "SKP",
"file_code": [
"/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/skp.png"
]
}
}
]
}

114
public/static/offline/JSON/getArtList.json

@ -0,0 +1,114 @@
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 171,
"title": "1",
"content": {
"name": "花之泉广场",
"nameEn": "NORTH ENTRANCE FOUNTAIN SQUARE",
"point": "0_0_65"
}
},
{
"id": 172,
"title": "2",
"content": {
"name": "魔法水星",
"nameEn": "MAGIC WATER BALL ",
"point": "0_0_9"
}
},
{
"id": 173,
"title": "3",
"content": {
"name": "家庭乐园",
"nameEn": "THE FAMILY PARK",
"point": "0_0_1"
}
},
{
"id": 174,
"title": "4",
"content": {
"name": "精灵之泉",
"nameEn": "THE FOUNTAIN PLAYGROUND",
"point": "0_0_161"
}
},
{
"id": 175,
"title": "1",
"content": {
"name": "花之泉广场",
"nameEn": "NORTH ENTRANCE FOUNTAIN SQUARE",
"point": "0_0_65"
}
},
{
"id": 176,
"title": "2",
"content": {
"name": "魔法水星",
"nameEn": "MAGIC WATER BALL ",
"point": "0_0_9"
}
},
{
"id": 177,
"title": "3",
"content": {
"name": "家庭乐园",
"nameEn": "THE FAMILY PARK",
"point": "0_0_1"
}
},
{
"id": 178,
"title": "4",
"content": {
"name": "精灵之泉",
"nameEn": "THE FOUNTAIN PLAYGROUND",
"point": "0_0_161"
}
},
{
"id": 180,
"title": "1",
"content": {
"name": "花之泉广场",
"nameEn": "NORTH ENTRANCE FOUNTAIN SQUARE",
"point": "0_0_65"
}
},
{
"id": 181,
"title": "2",
"content": {
"name": "魔法水星",
"nameEn": "MAGIC WATER BALL ",
"point": "0_0_9"
}
},
{
"id": 182,
"title": "3",
"content": {
"name": "家庭乐园",
"nameEn": "THE FAMILY PARK",
"point": "0_0_1"
}
},
{
"id": 183,
"title": "4",
"content": {
"name": "精灵之泉",
"nameEn": "THE FOUNTAIN PLAYGROUND",
"point": "0_0_161"
}
}
]
}

91
public/static/offline/JSON/getArtWorkList.json

@ -0,0 +1,91 @@
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 198,
"title": "猩猩的太空漫步",
"content": {
"name": "猩猩的太空漫步",
"nameEn": "dddd",
"file_code": [
"/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/vwcYXFrhK1CbEB6uFy76R.png"
],
"point": "0_0_4",
"content": "vnasfkvl",
"contentEn": "fwefwqe",
"icon": [
"/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/DEB6NDQ8975GvfR5yKclw.png"
]
}
},
{
"id": 199,
"title": "共生",
"content": {
"name": "共生",
"nameEn": "dddd",
"file_code": [
"/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/CkR9FMDrKtej6Rt0GDAUR.png"
],
"point": "0_0_129",
"content": "1235",
"contentEn": "fwerf",
"icon": [
"/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/RyWHWQugQvDwEjEY_MwHb.png"
]
}
},
{
"id": 200,
"title": "超新星",
"content": {
"name": "超新星",
"nameEn": "dddd",
"file_code": [
"/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/6DH-CKwe8pzVt4qmP-Knm.png"
],
"point": "0_0_129",
"content": "1326",
"contentEn": "56456",
"icon": [
"/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/ea-Q5M6K-ri1xw3UfY18_.png"
]
}
},
{
"id": 201,
"title": "盛开的山谷",
"content": {
"name": "盛开的山谷",
"nameEn": "dadd",
"file_code": [
"/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/fH0IKTz9Nhg7nnVhtJg_o.png"
],
"point": "0_0_84",
"content": "i7u",
"contentEn": "hhrt",
"icon": [
"/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/j49AhcyUGy3ooRveXNTAt.png"
]
}
},
{
"id": 202,
"title": "琥珀",
"content": {
"name": "琥珀",
"nameEn": "t534",
"file_code": [
"/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/rQjWB5AzY05NM7YSmWgtT.png"
],
"point": "0_0_84",
"content": "213",
"contentEn": "545",
"icon": [
"/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/GeJT_PoeLfW6e2SgxCGmQ.png"
]
}
}
]
}

72
public/static/offline/JSON/getFloorPicList.json

@ -0,0 +1,72 @@
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 181,
"title": "1",
"content": {
"name": "",
"floorOrder": "0",
"file_code": [
"/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/minMap.svg"
]
}
},
{
"id": 182,
"title": "2",
"content": {
"name": "",
"floorOrder": "1",
"file_code": [
"/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/minMap.svg"
]
}
},
{
"id": 183,
"title": "3",
"content": {
"name": "",
"floorOrder": "2",
"file_code": [
"/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/minMap.svg"
]
}
},
{
"id": 184,
"title": "4",
"content": {
"name": "",
"floorOrder": "3",
"file_code": [
"/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/minMap.svg"
]
}
},
{
"id": 185,
"title": "5",
"content": {
"name": "",
"floorOrder": "4",
"file_code": [
"/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/minMap.svg"
]
}
},
{
"id": 186,
"title": "6",
"content": {
"name": "",
"floorOrder": "5",
"file_code": [
"/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/minMap.svg"
]
}
}
]
}

102
public/static/offline/JSON/getHomeBtn.json

@ -0,0 +1,102 @@
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 91,
"moduleName": "地图导览",
"moduleLogo": "/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/activity.svg",
"routePath": "/",
"sort": 1,
"moduleNameEn": "MAP",
"moduleDescription": "导览",
"moduleDisplay": 1,
"projectCode": "project-ey_fpaur6s6fkgvszywana",
"isDelete": 0
},
{
"id": 92,
"moduleName": "品牌列表",
"moduleLogo": "/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/activity.svg",
"routePath": "/brand",
"sort": 2,
"moduleNameEn": "BRAND",
"moduleDescription": "品牌",
"moduleDisplay": 1,
"projectCode": "project-ey_fpaur6s6fkgvszywana",
"isDelete": 0
},
{
"id": 93,
"moduleName": "活动精选",
"moduleLogo": "/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/activity.svg",
"routePath": "/activity",
"sort": 3,
"moduleNameEn": "SELECTION",
"moduleDescription": "活动",
"moduleDisplay": 1,
"projectCode": "project-ey_fpaur6s6fkgvszywana",
"isDelete": 0
},
{
"id": 94,
"moduleName": "会员专享",
"moduleLogo": "/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/activity.svg",
"routePath": "/member",
"sort": 4,
"moduleNameEn": "MEMBER",
"moduleDescription": "会员",
"moduleDisplay": 1,
"projectCode": "project-ey_fpaur6s6fkgvszywana",
"isDelete": 0
},
{
"id": 95,
"moduleName": "自主寻车",
"moduleLogo": "/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/activity.svg",
"routePath": "/parking",
"sort": 5,
"moduleNameEn": "PARKING",
"moduleDescription": "泊车",
"moduleDisplay": 1,
"projectCode": "project-ey_fpaur6s6fkgvszywana",
"isDelete": 0
},
{
"id": 96,
"moduleName": "贴心服务",
"moduleLogo": "/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/activity.svg",
"routePath": "/service",
"sort": 6,
"moduleNameEn": "SERVICE",
"moduleDescription": "服务",
"moduleDisplay": 1,
"projectCode": "project-ey_fpaur6s6fkgvszywana",
"isDelete": 0
},
{
"id": 97,
"moduleName": "交通信息",
"moduleLogo": "/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/activity.svg",
"routePath": "/traffic",
"sort": 7,
"moduleNameEn": "TRAFFIC",
"moduleDescription": "交通",
"moduleDisplay": 1,
"projectCode": "project-ey_fpaur6s6fkgvszywana",
"isDelete": 0
},
{
"id": 98,
"moduleName": "艺术装置",
"moduleLogo": "/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/activity.svg",
"routePath": "/art",
"sort": 8,
"moduleNameEn": "ARTWORK",
"moduleDescription": "艺术装置",
"moduleDisplay": 1,
"projectCode": "project-ey_fpaur6s6fkgvszywana",
"isDelete": 0
}
]
}

36
public/static/offline/JSON/getPlaceList.json

@ -0,0 +1,36 @@
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 178,
"title": "1",
"content": {
"name": "车行通道",
"nameEn": "TRAVEL LANE",
"backgroundColor": "#615C59",
"borderColor": "#615C59"
}
},
{
"id": 179,
"title": "2",
"content": {
"name": "人行通道",
"nameEn": "PEDESTRIAN LANE",
"backgroundColor": "#FFFFFF",
"borderColor": "#615C59"
}
},
{
"id": 180,
"title": "3",
"content": {
"name": "水景",
"nameEn": "WATERSCAPE",
"backgroundColor": "#61B5D0",
"borderColor": "#61B5D0"
}
}
]
}

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/-w-sNUAbn9l-PQlHv-h9u.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/0rVAbf5rtIQ4RHRaFk26V.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/1JmWL-e0WtuGc-JqD0lRn.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/1b952fnpGjH6ehs8xDQVw.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/2IPrUrTuNE6LgBhOs_G-D.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/2gpHUBlWdgwCLuf8uNtLM.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/4B2iSUGZDkZyzgVtMKG-6.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/4l-vejfQ-5U1TlDgV4zMo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/4nlbQAQz186cuXQlQovoG.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/5-c4UvL66CcV637vi8fLR.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 691 KiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/6TaKZU3n6SH7XNykJd1Eb.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/7-qDwXhfxOk7o0n3fcb7U.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/9cM2yZkhEdR3lEFaqaoaI.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/9mz05Nfoc1theWCLrxLuS.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/HKtadKUIQabmmQXDrK77D.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/RCvClEobIExmcgnTPNLEy.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/RciDjH_ywKjJf-oM3dLVV.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/T6CGKUqS9jU98DNTH5XcR.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/TsN_cNoRl0w39z9FnligR.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/U_7Ff9Tb7rlzGZQwVIcsN.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/XWsWlNV-iwor603LlgwZU.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/YgKLo9SV9VAqffewZ2lqz.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/Z8XQcDxqjMQ1IK17fqmXH.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/_RJH-rvil5FWMgxo0X6iv.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/a6RCf9x7igC3JKwuaz_ee.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/bkUZCPauZO-tPOZJJzftJ.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/c1VUXfJv4opIVWKFJ2Rea.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/d63kCdrlDM7LXZ05touQw.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/e4JE3HNGbT_6XgWMmOnNd.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/eRZy0xJTm1hnUhru9dMUB.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/f2fJil-conird4O3meEZZ.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/gfwd8Bs2_7W51RxBEztS9.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/hiW5uk-zcNfOwrM1fCLQG.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/iUY6SJgy4xJriY9VJxE6B.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/iYMKC42VyVzkEdPeMQ6-c.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/jeG0KsjVS4B3bJVZpFKyL.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/jeWheroxTSFvt1t56jD34.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 703 KiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/k701oftLnDD1GsBpFePOU.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/khab4-qwrhNjRqQ8eqNBb.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 KiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/nq3Gwv0VIXF83-qle33OW.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/oxZo0bxheowGf7mLZ04sw.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/p4-Ckr1lx84uu-zMIV28O.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/pF_iaTtKJx2Puq5WEuSVY.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/r2h0aSdRUuLgz05j4huWz.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/tN00qYRLyPUBgPNsYeivZ.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/vUTTkU4TpFBGbrDx1XIlq.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

BIN
public/static/offline/iotFile/project-ebqyywoaytm06rs9o2rbra/20230705/xePHdnSvOixR-rNUblVMT.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 MiB

0
src/assets/images/menu/activity.svg → public/static/offline/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/activity.svg

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

0
src/assets/images/guide/area_emp.svg → public/static/offline/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/all.svg

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

BIN
public/static/offline/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/food.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
public/static/offline/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/k.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

0
src/assets/images/guide/minMap.svg → public/static/offline/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/minMap.svg

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 196 KiB

BIN
public/static/offline/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/skp.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
public/static/offline/iotFile/project-odubitlp9mjy2wyuqkpfga/20230609/skps.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

182
public/static/qm/MainMap_QM.js

@ -34,7 +34,7 @@ QMUtil = function () {
this.options = {
playSpeed: 6, //动画播放速度
collision: true, //是否支持名称的碰撞检测
showStyle: false, //是否4K
showStyle: true, //是否4K
modelIcon: true, //是否使用模型 true 模型 false 图标
otherPath: [], //人为干预的路线 [{f:"0_5_10",s:"1_5_47",d:500},{f:"1_5_47",s:"0_5_10",d:500}];
bSpace: 3000,
@ -42,8 +42,8 @@ QMUtil = function () {
maxDis: 500,
minDis: 60,
shadow: true, //是否显示阴影
navColor: 0xEE6A50, //途径店铺颜色
aRadius: 2, //圆角半径 大于2 则店铺box显示圆角
navColor: 0xEE6A50, //途径房间颜色
aRadius: 2, //圆角半径 大于2 则房间box显示圆角
overlap: false, //是否叠层
iconName: false, //图标名称是否显示
mapScale: 18, //地图比例尺
@ -53,7 +53,7 @@ QMUtil = function () {
pathBgColor2: "#bdc0cb", //'rgb(189, 192, 203)',
pathStyle: "3D",
shopStyle: "shopName", //设置box显示名称shopName或编号shopNum
inArea: false, //点击后是否聚焦到店铺
inArea: false, //点击后是否聚焦到房间
camZoom: 3, //设置我的方向状态地图放大倍数
boxShop: [], //设置box上显示的文字(过滤指),可点击触发onlyShop
deviceAng: false, //地图初始化方向是否使用设备角度
@ -87,7 +87,7 @@ QMUtil = function () {
this.overObj = {}; //导航结束点
this.tubeMaterial = new THREE.MeshPhongMaterial({ color: this.options.pathColor, transparent: true, opacity: 0.6 }); //叠层的路径材质
this.buildHeight = 5;
this.shopHeight = 30; //店铺高度 控制店铺相关的其它第三方组件高度
this.shopHeight = 30; //房间高度 控制房间相关的其它第三方组件高度
//服务icon 英文配置
this.iconEn = { "洗手间": "Toilets", "停车场": "Parking", "电梯": "Lift", "扶梯": "Escalator", "母婴室": "Baby care room", "服务台": "service desk" };
//添加平铺logo {floor:5, logoUrl:"./static/img/ss.png", imgW:395, imgH:376, xaxis:1550, yaxis:-860, site:30}
@ -99,9 +99,9 @@ QMUtil = function () {
this.initModelArr = []; //
/**
* 一直显示不隐藏, 在楼层内显示
* {url:"./static/model/jianfa.gltf",type:"out", scale:0.038, rot:{x:0,y:30,z:0}, site:{x:-20,y:-100,z:20}}
* {floor:6, url:"./static/model/jianfa.gltf",type:"out", scale:0.038, rot:{x:0,y:30,z:0}, site:{x:-20,y:-100,z:20}}
*/
this.modelArr = [];
this.modelArr = [{floor:6, url:"static/img/out/skp.glb", list:[{size:{x:12.5,y:12.5,z:12.5}, rot:{x:1.5708,y:0,z:0}, site:{x:0,y:0,z:0}}]}];
this.modelStr = [ //种树
{ 'key': 'tree', 'url': 'static/img/model/tree.gltf', 'colorModel': 'line', 'rot': { 'x': 1.5708, 'y': 0, 'z': 0 }, 'size': { 'x': 1, 'y': 1, 'z': 1 }, 'load':false},
{ 'key': 'tree2', 'url': 'static/img/model/tree2.glb', 'colorModel': 'gama', 'rot': { 'x': 1.5708, 'y': 0, 'z': 0 }, 'size': { 'x': 20, 'y': 20, 'z': 20 }, 'load':false},
@ -160,7 +160,7 @@ QMUtil = function () {
this.lineBasicMaterialArr = [];
this.meshMaterialArr = [];
this.parkMaterialArr = [];
this.shopData = []; //店铺数据
this.shopData = []; //房间数据
this.iconUrl = [];
this.allMap = [];
this.isInnerTouch = true; //室内地图是否可点击
@ -452,7 +452,7 @@ QMUtil = function () {
this.ctrlPoint2 = ctrlPoint2;
this.isStrLine = isStrLine; //是否是直线
}
//根据配置参数转换店铺圆角
//根据配置参数转换房间圆角
this.changeShopLinesToString = function (area) {
let areaStr = [];
let lines = [];
@ -761,7 +761,7 @@ QMUtil = function () {
}
}
}
//店铺排序
//房间排序
this.sortShopByFloor = function (a, b) {
return a.floorOrder < b.floorOrder ? -1 : 1;
}
@ -1235,8 +1235,8 @@ MainMap_QM = function (callBack, options) {
gl_FragColor = vec4( mix( bottomColor, topColor, max( pow( max( h , 0.0), exponent ), 0.0 ) ), 1.0 );
}`;
const uniforms = {
"topColor": { value: new THREE.Color( 0xF1F1F1 ) },
"bottomColor": { value: new THREE.Color( 0xF1F1F1 ) },
"topColor": { value: new THREE.Color( 0xF1F1F1 ) },
"bottomColor": { value: new THREE.Color( 0xF1F1F1 ) },
"offset": { value: 100 },
"exponent": { value: 0.6 }
};
@ -1274,7 +1274,7 @@ MainMap_QM = function (callBack, options) {
this.mapArr = [];
this.selectShop;
this.selectEle = null; //当前使用的电梯
this.overShop; //终点店铺
this.overShop; //终点房间
this.shape = new THREE.Shape();
this.shape.moveTo(-10, -10);
this.shape.lineTo(10, -10);
@ -1345,11 +1345,11 @@ MainMap_QM.prototype = {
}
} else {
_space.backObj.code = 500;
_space.backObj.msg = "店铺数据解析失败";
_space.backObj.msg = "房间数据解析失败";
}
} else {
_space.backObj.code = 500;
_space.backObj.msg = "店铺数据解析失败";
_space.backObj.msg = "房间数据解析失败";
}
_space.initOptions(options);
},
@ -1395,7 +1395,7 @@ MainMap_QM.prototype = {
_space.util.shopData.sort(_space.util.sortShopByFloor);
} else {
backObj.code = 500;
backObj.msg = "店铺数据错误";
backObj.msg = "房间数据错误";
}
_space.initOptions(options);
} else {
@ -1423,7 +1423,7 @@ MainMap_QM.prototype = {
_space.util.shopData.sort(_space.util.sortShopByFloor);
} else {
backObj.code = 500;
backObj.msg = "店铺数据错误";
backObj.msg = "房间数据错误";
}
if (backObj.code == 404) {
_space.callBackLoadOver(backObj)
@ -1482,7 +1482,7 @@ MainMap_QM.prototype = {
this.util.m_zoom = this.util.allMap[this.util.selectBuild].m_zoom;
}
}
let { playSpeed = 6, collision = true, showStyle = false, modelIcon = true, shopStyle = "shopName", shadow = true, otherPath = [], navColor = 0xEE6A50, iconUrl = [], overlap = false, iconName = false, camZoom = 3, inArea = false, pathColor = 0xb47834, pathStyle = "3D" } = options;
let { playSpeed = 6, collision = true, showStyle = false, modelIcon = true, shopStyle = "shopName", shadow = true, otherPath = [], navColor = 0xEE6A50, iconUrl = [], artUrl=[], overlap = false, iconName = false, camZoom = 3, inArea = false, pathColor = 0xb47834, pathStyle = "3D" } = options;
this.util.options.playSpeed = playSpeed != 6 ? playSpeed : this.util.options.playSpeed;
this.util.options.collision = !collision ? collision : this.util.options.collision;
this.util.options.showStyle = showStyle ? showStyle : this.util.options.showStyle;
@ -1498,6 +1498,7 @@ MainMap_QM.prototype = {
this.util.options.pathColor = pathColor != 0xb47834 ? pathColor : this.util.options.pathColor;
this.util.options.pathStyle = pathStyle != "3D" ? pathStyle : this.util.options.pathStyle;
this.util.iconUrl = iconUrl;
this.util.artUrl = artUrl;
if (!isNaN(Number(options.floor))) {
this.util.startObj.floor = this.util.deviceObj.floor = parseInt(options.floor) || 0;
} else {
@ -2162,7 +2163,7 @@ MainMap_QM.prototype = {
TweenMax.to(Map_QM.buildObj.position, 0.5, {
x: build * Map_QM.util.options.bSpace * -1,
onComplete: function () {
Map_QM.changeFloorInner(build, fIndex); //结束后切换楼层
Map_QM.changeFloorInner(-1, fIndex); //结束后切换楼层
}
});
},
@ -2532,9 +2533,9 @@ MainMap_QM.prototype = {
return null;
},
/**
* @api {方法} parseSelectShop() 设置选中店铺弹跳
* @api {方法} parseSelectShop() 设置选中房间弹跳
* @apiGroup 地图交互
* @apiDescription 设置选中店铺弹跳
* @apiDescription 设置选中房间弹跳
* @apiVersion 4.0.0
*
* @apiParam {object3D} selObject 传入3D对象
@ -2563,9 +2564,9 @@ MainMap_QM.prototype = {
}
},
/**
* @api {方法} cancelSelectShop() 取消店铺弹跳
* @api {方法} cancelSelectShop() 取消房间弹跳
* @apiGroup 地图交互
* @apiDescription 取消店铺弹跳效果
* @apiDescription 取消房间弹跳效果
* @apiVersion 4.0.0
*
* @apiSampleRequest off
@ -2582,12 +2583,12 @@ MainMap_QM.prototype = {
}
},
/**
* @api {方法} changeStateShopPro(isShow) 店铺促销标签
* @api {方法} changeStateShopPro(isShow) 房间促销标签
* @apiGroup 地图交互
* @apiDescription 店铺促销标签展示/隐藏
* @apiDescription 房间促销标签展示/隐藏
* @apiVersion 4.0.0
*
* @apiParam {boolean} isShow 店铺促销标签是否显示默认 false
* @apiParam {boolean} isShow 房间促销标签是否显示默认 false
*
* @apiSampleRequest off
*
@ -2623,9 +2624,9 @@ MainMap_QM.prototype = {
},
/**
* @api {方法} queryShopList() 获取店铺列表信息
* @api {方法} queryShopList() 获取房间列表信息
* @apiGroup 地图数据
* @apiDescription 店铺列表
* @apiDescription 房间列表
* @apiVersion 4.0.0
*
* @apiSampleRequest off
@ -2644,8 +2645,8 @@ MainMap_QM.prototype = {
* @apiDescription 绘制引导线
* @apiVersion 4.0.0
*
* @apiParam {string/Array} startShop 起始店铺编号或编号数组
* @apiParam {string/Array} endShop 终点店铺编号或编号数组
* @apiParam {string/Array} startShop 起始房间编号或编号数组
* @apiParam {string/Array} endShop 终点房间编号或编号数组
* @apiParam {string} color 绘制颜色 默认 "#0099ff"
*
* @apiSampleRequest off
@ -2716,7 +2717,7 @@ MainMap_QM.prototype = {
* @apiDescription 绘制柱状图
* @apiVersion 4.0.0
*
* @apiParam source 起始店铺编号或编号数组
* @apiParam source 起始房间编号或编号数组
* @apiParam property 控制参数对象
*
* @apiSampleRequest off
@ -2929,7 +2930,7 @@ MainMap_QM.prototype = {
if(Map_QM.mapArr[Map_QM.util.selectBuild] && Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor]){
Map_QM.labelRenderer.renderObject( Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].labelObj, Map_QM.camera );
}
Map_QM.labelRenderer.renderObject( Map_QM.CSSObject, Map_QM.camera);
Map_QM.CSSObject && Map_QM.labelRenderer.renderObject( Map_QM.CSSObject, Map_QM.camera);
for (let item of Map_QM.mixers) {
item.update(T);
}
@ -2969,7 +2970,7 @@ MainMap_QM.prototype = {
* @apiDescription 地图显示Html标签返回3d标签对象
* @apiVersion 4.0.0
*
* @apiParam {Element} divObj div对象
* @apiParam {Element} divObj div对象
* @apiParam {int} x 显示X坐标
* @apiParam {int} y 显示Y坐标
* @apiParam {int} z 显示高度坐标(默认 50)
@ -2980,6 +2981,7 @@ MainMap_QM.prototype = {
* Map_QM.addElementLabel(divObj,x,y);
*/
addElementLabel: function (divObj, x, y, z = 50, type = "shopInfo") {
Map_QM.elementDestroy(type);
divObj.style.opacity = 0;
let shopInfo = new THREE.CSS2DObject(divObj);
shopInfo.position.set(x, -1 * y, z);
@ -2990,6 +2992,7 @@ MainMap_QM.prototype = {
TweenMax.to(divObj.style, 0.2, { opacity: 1, delay: 0.1 });
return shopInfo;
},
/**
* @api {方法} updateElementPosition() 修改标签位置
* @apiGroup 地图交互
@ -3035,11 +3038,44 @@ MainMap_QM.prototype = {
}
},
/**
* @api {方法} changeShowShopName() 修改店铺显示名称
* @api {方法} addElementByNode() 显示地图活动标签
* @apiGroup 地图交互
* @apiDescription 地图显示活动标签返回3d标签对象
* @apiVersion 4.0.0
*
* @apiParam {Element} divObj div对象
* @apiParam {string} node 显示导航点位
* @apiParam {String} type docment元素自定义标识(默认 "tip")
* @apiSampleRequest off
*
* @apiParamExample {String} 请求示例
* Map_QM.addElementByNode(divObj,node,type);
*/
addElementByNode: function (divObj, node, type='tip') {
Map_QM.elementDestroy(type);
floorOrder == -1 && (floorOrder = Map_QM.util.selectFloor);
let pathData = Config.allMap[Config.selectBuild].buildArr[floorOrder].mapData.path;
if (!pathData || !divObj ) {
return;
}
if(pathData.nodes.length > 0){
pathData.nodes.sort(Config.sortNode);
let shopInfo = new THREE.CSS2DObject(divObj);
shopInfo.position.set(pathData.nodes[parseInt(node)].x, -1*pathData.nodes[parseInt(node)].y, 60 )
shopInfo.applyMatrix4(Map_QM.mapArr[Map_QM.util.selectBuild][floorOrder].allObj.matrix);
shopInfo.userData.type = type;
Map_QM.CSSObject.add(shopInfo);
return shopInfo
}
return;
},
/**
* @api {方法} changeShowShopName() 修改房间显示名称
* @apiGroup 地图显示
* @apiDescription 通过店铺编号修改店铺显示名称
* @apiDescription 通过房间编号修改房间显示名称
* @apiVersion 4.0.0
* @apiParam {Array} shopNum 店铺编号
* @apiParam {Array} shopNum 房间编号
* @apiParam {Array} element html标签字符串
* @apiSampleRequest off
*
@ -3060,12 +3096,12 @@ MainMap_QM.prototype = {
}
},
/**
* @api {方法} unionShop() 店铺合并
* @api {方法} unionShop() 房间合并
* @apiGroup 地图显示
* @apiDescription 通过店铺编号合并店铺 合铺
* @apiDescription 通过房间编号合并房间 合铺
* @apiVersion 4.0.0
* @apiParam {Array} shops 店铺编号数组
* @apiParam {Object} data 新的店铺数据(默认 空数据)
* @apiParam {Array} shops 房间编号数组
* @apiParam {Object} data 新的房间数据(默认 空数据)
* @apiSampleRequest off
*
* @apiParamExample {String} 请求示例
@ -3074,7 +3110,7 @@ MainMap_QM.prototype = {
unionShop: function (shops, data = { name: "", shopNum: "shop", color: "#F4A460" }) {
let shopObj = [], xAll = 0, yAll = 0;
if (Array.isArray(shops) && shops.length > 1) {
//删除店铺box
//删除房间box
let shopArea = Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].shopObj.children;
for (let i = 0; i < shops.length; i++) {
for (let k = 0; k < shopArea.length; k++) {
@ -3200,7 +3236,7 @@ MainMap_QM.prototype = {
}
for (let i = 0; i < intersects.length; i++) {
//店铺BOX点击
//房间BOX点击
if (intersects[i].object.userData && intersects[i].object.userData.type == "shop" && intersects[i].object.name != "") {
if (Map_QM.endModel && Map_QM.endModel.visible) {
Map_QM.endModel.visible = false;
@ -3212,9 +3248,9 @@ MainMap_QM.prototype = {
}
}
/**
* @api {事件} shop 点击已绑定品牌的店铺
* @api {事件} shop 点击已绑定品牌的房间
* @apiGroup 地图事件
* @apiDescription 用户点击店铺后触发自定义事件
* @apiDescription 用户点击房间后触发自定义事件
* @apiVersion 4.0.0
* @apiSampleRequest off
*
@ -3229,9 +3265,9 @@ MainMap_QM.prototype = {
})
} else {
/**
* @api {事件} onlyShop 点击未绑定品牌的店铺
* @api {事件} onlyShop 点击未绑定品牌的房间
* @apiGroup 地图事件
* @apiDescription 用户点击空店铺后触发自定义事件
* @apiDescription 用户点击空房间后触发自定义事件
* @apiVersion 4.0.0
* @apiSampleRequest off
*
@ -3275,7 +3311,7 @@ MainMap_QM.prototype = {
}
}
},
//改变选中店铺box
//改变选中房间box
setSelectShopMat: function (selObject) {
TweenMax.killAll(true);
if (Map_QM.selectShop) {
@ -3609,7 +3645,7 @@ MainMap_QM.prototype = {
/**
* @api {方法} countPath() 方向算法
* @apiGroup 地图导航
* @apiDescription 计算设施店铺的导航方向, toObj,pathType 不能同时为空
* @apiDescription 计算设施房间的导航方向, toObj,pathType 不能同时为空
* @apiVersion 4.0.0
* @param {Object} toObj {build,floor,node} //终点 设施寻路可以为空
* @param {String} pathType 公共设施名称或编号点位寻路此参数为空字符串
@ -4033,10 +4069,10 @@ MainMap_QM.prototype = {
* @apiGroup 地图导航
* @apiDescription 根据传入的起终点直接导航
* @apiVersion 4.0.0
* @apiParam {String} startObj.shopNum 店铺编号/车位编号
* @apiParam {String} startObj.shopNum 房间编号/车位编号
* @apiParam {String} startObj.type "shop"/"park"
*
* @apiParam {String} toObj.shopNum 店铺编号/车位编号
* @apiParam {String} toObj.shopNum 房间编号/车位编号
* @apiParam {String} toObj.type "shop"/"park"
*
* @apiParam {Function} callBackFun 回调函数
@ -4148,7 +4184,7 @@ MainMap_QM.prototype = {
*
* @apiSuccessExample 返回示例
* {
* shopNum:店铺编号, shopName:店铺 node:导航点, floor:楼层编号, xaxis:中心点X坐标, yaxis:中心点Y坐标, borderColor:边框色, entColor:填充色
* shopNum:房间编号, shopName:房间 node:导航点, floor:楼层编号, xaxis:中心点X坐标, yaxis:中心点Y坐标, borderColor:边框色, entColor:填充色
* }
*/
getMapIPData: function (ipName) {
@ -4350,11 +4386,11 @@ MainMap_QM.prototype = {
},
/**
* @api {方法} pathShopByName() 获取店铺点位
* @api {方法} pathShopByName() 获取房间点位
* @apiGroup 地图数据
* @apiDescription 通过店铺名称获取点位
* @apiDescription 通过房间名称获取点位
* @apiVersion 4.0.0
* @apiParam {String} shopName 店铺名称
* @apiParam {String} shopName 房间名称
*
* @apiSampleRequest off
*
@ -4364,7 +4400,7 @@ MainMap_QM.prototype = {
*
* @apiSuccessExample 返回示例
* {
* shopNum: 店铺编号, node: 导航点, floor: 楼层编号, xaxis: 中心点X坐标, yaxis: 中心点Y坐标, comeIn:店铺多门点
* shopNum: 房间编号, node: 导航点, floor: 楼层编号, xaxis: 中心点X坐标, yaxis: 中心点Y坐标, comeIn:房间多门点
* }
*/
pathShopByName: function (shopName) {
@ -4397,16 +4433,16 @@ MainMap_QM.prototype = {
/**
* @api {方法} shopNumToNavPoint() 获取导航点位
* @apiGroup 地图导航
* @apiDescription 通过店铺编号或车位获取导航点位
* @apiDescription 通过房间编号或车位获取导航点位
* @apiVersion 4.0.0
* @apiParam {Object} object build,floor,shopNum 楼栋编号,楼层编号,店铺或车位编号
* @apiParam {String} type 店铺或车位标识 "shop" "park"
* @apiParam {Object} object build,floor,shopNum 楼栋编号,楼层编号,房间或车位编号
* @apiParam {String} type 房间或车位标识 "shop" "park"
*
* @apiSampleRequest off
*
* @apiSuccessExample 返回示例
* {
* shopNum: 店铺编号, node: 导航点, floor: 楼层编号, xaxis: 中心点X坐标, yaxis: 中心点Y坐标, comeIn:店铺多门点
* shopNum: 房间编号, node: 导航点, floor: 楼层编号, xaxis: 中心点X坐标, yaxis: 中心点Y坐标, comeIn:房间多门点
* }
*/
shopNumToNavPoint: function (obj, type) {
@ -4542,7 +4578,7 @@ MainMap_QM.prototype = {
Map_QM.forShopArr[0].DirectionEn = DirEn;
for (let m = 0; m < Map_QM.forShopArr.length; m++) {
//查找经过店铺
//查找经过房间
Map_QM.forShopArr[m].wayShop = Map_QM.foreignShop(Map_QM.forShopArr[m].PathPoint, Map_QM.forShopArr[m].build, Map_QM.forShopArr[m].floor, m);
if (Map_QM.util.overObj.build == Map_QM.forShopArr[m].build && Map_QM.util.overObj.floor == Map_QM.forShopArr[m].floor) {
let len = Map_QM.forShopArr[m].wayShop.length;
@ -4596,7 +4632,7 @@ MainMap_QM.prototype = {
return nodeP;
},
/**
* 途径店铺
* 途径房间
*/
foreignShop: function (pathArr, build, cFloor, m) {
let shopList = [];
@ -5166,18 +5202,19 @@ MainMap_QM.prototype = {
* @apiParam {boolean} options.modelIcon 交通设施是否使用模型 默认值 true
* @apiParam {Array} options.otherPath 人为干预的路线 默认值 [];
* @apiParam {int} options.fSpace 双叠层状态下楼层的间距 默认值 500
* @apiParam {uint} options.navColor 途径店铺颜色 默认值 0xEE6A50
* @apiParam {uint} options.navColor 途径房间颜色 默认值 0xEE6A50
* @apiParam {boolean} options.overlap 是否叠层 默认值 false
* @apiParam {boolean} options.shadow 是否显示阴影 默认值 true
* @apiParam {boolean} options.iconName 图标名称是否显示 默认值false
* @apiParam {uint} options.pathColor 导航路径颜色 默认值 0xb47834,
* @apiParam {string} options.pathStyle 导航第一视角 默认值 "2D",
* @apiParam {string} options.shopStyle 店铺显示字段编号(shopNum)名称(shopName) 默认值 "shopName",
* @apiParam {string} options.shopStyle 房间显示字段编号(shopNum)名称(shopName) 默认值 "shopName",
* @apiParam {int} options.camZoom 地图显示我的方向状态的放大倍数 默认值 3
* @apiParam {boolean} options.inArea 地图点击后是否聚焦到当前位置 默认值 false
* @apiParam {string} options.mapData 地图数据 res.data.mapData
* @apiParam {string} options.shopData 店铺数据 res.data
* @apiParam {string} options.shopData 房间数据 res.data
* @apiParam {Array} options.iconUrl 设施库图标 默认值 []
* @apiParam {Array} options.artUrl 艺术图标 默认值 []
*
* @apiSampleRequest off
* @apiParamExample {String} 请求示例
@ -5219,7 +5256,7 @@ FloorMap_QM = function (bIndex, fIndex, floorName) {
this.devObj = new THREE.Group();
//存放设施图标
this.svgObj = new THREE.Group();
//店铺
//房间
this.shopObj = new THREE.Group();
this.allObj.add(this.shopObj);
this.allObj.add(this.svgObj);
@ -5250,9 +5287,15 @@ FloorMap_QM.prototype = {
this.initDecos();
this.initPark();
this.initModel();
this.initArt();
this.initTree(); //植树
this.initLogos(); //贴图
},
initArt:function(){
if (Map_QM.util.artUrl.length > 0) {
}
},
initLogos: function () {
let sopce = this;
if (Map_QM.util.logos) {
@ -5283,7 +5326,6 @@ FloorMap_QM.prototype = {
});
for (let t = 0; t < Map_QM.util.modelArr[i].list.length; t++) {
let obj = mod.clone();
obj.position.set(Map_QM.util.modelArr[i].list[t].site.x, -1 * Map_QM.util.modelArr[i].list[t].site.y, Map_QM.util.modelArr[i].list[t].site.z);
obj.scale.set(Map_QM.util.modelArr[i].list[t].size.x, Map_QM.util.modelArr[i].list[t].size.y, Map_QM.util.modelArr[i].list[t].size.z);
obj.rotateX(Map_QM.util.modelArr[i].list[t].rot.x);
obj.rotateY(Map_QM.util.modelArr[i].list[t].rot.y);
@ -5396,7 +5438,7 @@ FloorMap_QM.prototype = {
mash.name = "floor";
this.allObj.add(mash);
}
//店铺
//房间
let sLen = mapData.shopArea.length;
let show = (showE = "");
let showLeb = "";
@ -5438,10 +5480,10 @@ FloorMap_QM.prototype = {
this.addTagLabel(mapData.shopArea[i], { "node": mapData.shopArea[i].shopNav, "floor": this.floorOrder, "build": this.buildOrder });
}
if (shopData[h].formatColor) {
entColor = shopData[h].formatColor;
entColor = parseInt(shopData[h].formatColor.replace("#", "0x"), 16);
}
if (shopData[h].borderColor) {
borderColor = shopData[h].borderColor;
borderColor = parseInt(shopData[h].borderColor.replace("#", "0x"), 16);
}
break;
}
@ -6362,7 +6404,7 @@ Facilities_QM = function () {
}
}
/**
* 店铺LOGO地图展示类
* 房间LOGO地图展示类
*/
ShopLogo_QM = function () {
this.renderIcon = function (obj, _this, z) {

BIN
src/assets/images/menu/activity_proc.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 696 B

5
src/assets/images/menu/art.svg

@ -1,5 +0,0 @@
<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M33.3544 18.0877C32.6905 18.4953 31.9474 19.4038 31.1893 21.1254C30.2455 23.2687 29.1066 24.99 27.8875 26.4051C29.1741 27.4179 30.3428 28.5825 31.4201 29.6909C31.6445 29.9218 31.8647 30.1502 32.0814 30.3747C33.1042 31.4351 34.0462 32.4117 34.9659 33.1802C36.0872 34.117 37.0598 34.6414 37.9652 34.6758C39.8673 34.7483 41.4062 33.4989 42.0115 31.4221C42.6183 29.3396 42.2574 26.4396 40.2267 23.4698C39.3761 22.2258 38.5253 21.0465 37.6807 20.0813C36.8282 19.107 36.0257 18.4024 35.2839 18.0514C34.5793 17.718 33.9639 17.7136 33.3544 18.0877ZM26.9977 27.3724C28.2164 28.3232 29.3649 29.4552 30.481 30.6036C30.6953 30.8241 30.9087 31.0454 31.1212 31.2658C32.1445 32.3271 33.1472 33.367 34.1263 34.1851C35.3019 35.1673 36.5591 35.9328 37.9153 35.9844C40.5364 36.0842 42.5311 34.3194 43.2687 31.7885C44.0046 29.2633 43.5174 25.9622 41.3077 22.7307C40.4506 21.4771 39.5641 20.2451 38.6662 19.2189C37.7762 18.2018 36.831 17.3348 35.8441 16.8677C34.8201 16.3832 33.7259 16.3231 32.6693 16.9717C31.6671 17.5869 30.7876 18.7883 29.9909 20.5976C29.0884 22.6469 27.9992 24.2838 26.828 25.6282C25.3916 24.6541 23.8138 23.9143 22.0625 23.6582C19.0109 23.2119 15.4273 23.1923 12.2513 23.7262C10.2096 24.0693 8.26617 24.6529 6.74393 25.5496C6.60147 25.5862 6.4702 25.6424 6.35613 25.7032C6.04379 25.8696 5.74152 26.1298 5.46266 26.4162C5.32689 26.5557 5.18946 26.7089 5.05152 26.8728C4.9297 27.0026 4.81468 27.1366 4.70689 27.2748C4.67448 27.3164 4.64788 27.3606 4.62697 27.4066C4.33498 27.7928 4.04612 28.2118 3.77149 28.6328C2.69493 30.2835 1.75197 32.1001 1.58189 32.4775C1.43333 32.8072 1.58017 33.1949 1.90986 33.3435C2.23956 33.492 2.62725 33.3452 2.77581 33.0155C2.91483 32.707 3.82398 30.9495 4.86835 29.3482C5.25868 28.7497 5.65613 28.1915 6.02908 27.7449C6.33292 27.4257 6.6973 27.1304 7.11467 26.8595C7.37632 27.0248 7.69183 27.3981 8.06425 28.0377C8.3962 28.6078 8.71814 29.2866 9.06451 30.0168C9.1447 30.1859 9.22621 30.3577 9.30945 30.5316C9.74195 31.4351 10.2174 32.3845 10.7668 33.1661C11.3092 33.9376 11.987 34.6393 12.8628 34.9202C14.1168 35.3223 15.5779 34.8555 16.9699 34.1875C18.1367 33.6275 19.3967 32.8519 20.6422 32.0853C20.916 31.9168 21.1891 31.7487 21.4604 31.5834C23.1733 30.5397 25.1435 29.2618 26.9977 27.3724ZM25.9223 26.5972C24.6656 25.7686 23.3283 25.1668 21.873 24.9539C18.9437 24.5256 15.4979 24.5083 12.4683 25.0176C10.9108 25.2794 9.50581 25.6731 8.34494 26.1961C8.67199 26.5372 8.95123 26.9585 9.19592 27.3788C9.55857 28.0016 9.9107 28.7444 10.2582 29.4775C10.3359 29.6414 10.4133 29.8048 10.4906 29.9662C10.9239 30.8713 11.3584 31.7305 11.8382 32.413C12.325 33.1056 12.7956 33.5234 13.2627 33.6732C13.9876 33.9057 15.026 33.6679 16.4033 33.0069C17.5022 32.4795 18.6884 31.7497 19.9317 30.9847C20.2113 30.8127 20.4939 30.6388 20.779 30.4651C22.4068 29.4733 24.2196 28.2965 25.9223 26.5972Z" fill="#E00068"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.2738 8.74153C28.7347 7.73423 31.1395 7.31976 33.2846 7.88505C34.8095 8.2869 36.1565 9.63731 37.3093 11.3294C38.4784 13.0456 39.5235 15.2265 40.4062 17.4749C42.1684 21.9634 43.3296 26.8412 43.5245 29.0684C43.5532 29.3959 43.311 29.6846 42.9835 29.7132C42.656 29.7419 42.3673 29.4997 42.3386 29.1722C42.1566 27.0931 41.0335 22.3302 39.2981 17.91C38.432 15.704 37.4249 13.6136 36.3254 11.9997C35.2096 10.3618 34.0714 9.3235 32.9813 9.03623C31.186 8.56313 29.0636 8.88599 26.7248 9.84329C24.392 10.7981 21.9029 12.3604 19.4112 14.2778C14.4288 18.1117 9.5147 23.3037 5.92747 27.6752C5.71893 27.9293 5.34386 27.9663 5.08973 27.7577C4.8356 27.5492 4.79864 27.1741 5.00718 26.92C8.62877 22.5067 13.6071 17.2418 18.6852 13.3343C21.2237 11.3809 23.8069 9.75128 26.2738 8.74153Z" fill="#E00068"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.88892 23.549C5.89569 23.7304 4.94538 24.1214 4.35372 24.7523C3.59124 25.5654 3.1197 27.0035 2.8729 28.5948C2.63064 30.1568 2.62393 31.7349 2.69173 32.6988C2.7171 33.0595 2.44525 33.3725 2.08452 33.3979C1.7238 33.4233 1.41081 33.1514 1.38543 32.7907C1.31189 31.745 1.31931 30.0675 1.57885 28.3941C1.83384 26.7499 2.35174 24.9727 3.39852 23.8565C4.26076 22.9371 5.52494 22.4669 6.65364 22.2608C7.77577 22.0558 8.90756 22.0864 9.58715 22.3024L9.19042 23.5504C8.78631 23.4219 7.88872 23.3664 6.88892 23.549Z" fill="#E00068"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.3 KiB

BIN
src/assets/images/menu/art_proc.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

3
src/assets/images/menu/brand.svg

@ -1,3 +0,0 @@
<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M36.501 23.3207L36.1002 23.5879V36.2329H37.7669V37.7662H6.23356V36.2329H7.90023V23.5882L7.49987 23.321C6.59706 22.7184 5.85698 21.9022 5.34534 20.945C4.83369 19.9877 4.5663 18.9184 4.5669 17.8329C4.5669 16.6165 4.89648 15.449 5.49284 14.459L5.49714 14.4518L10.0213 6.61624C10.0886 6.4997 10.1854 6.40292 10.3019 6.33563C10.4185 6.26834 10.5507 6.23292 10.6853 6.23291H33.3169C33.4514 6.23291 33.5836 6.26834 33.7002 6.33563C33.8167 6.40289 33.9135 6.49976 33.9808 6.61624L38.4882 14.4267L38.4925 14.4338C39.3674 15.8869 39.6486 17.6213 39.2777 19.2763C38.9068 20.9314 37.9123 22.3799 36.501 23.3207ZM9.43356 24.2811L10.4341 24.3935C11.4423 24.5068 12.463 24.386 13.4168 24.0403C14.3707 23.6946 15.2319 23.1335 15.9334 22.4006L16.5835 21.7214L17.2337 22.4006C17.8496 23.0439 18.5894 23.5558 19.4085 23.9054C20.2277 24.255 21.1092 24.435 21.9998 24.4346C22.8906 24.4346 23.7727 24.2542 24.5919 23.9041C25.411 23.554 26.1508 23.0415 26.7664 22.3976L27.4167 21.7174L28.0672 22.3974C28.7686 23.1306 29.6298 23.692 30.5836 24.0379C31.5374 24.3839 32.5582 24.505 33.5666 24.3919L34.5669 24.2796V36.2329H9.43356V24.2811ZM37.1671 15.204C37.5254 15.8004 37.757 16.4643 37.8475 17.1543C37.9384 17.8472 37.8849 18.5514 37.6905 19.2226C37.4961 19.8938 37.1649 20.5175 36.7178 21.0546C36.2707 21.5917 35.7174 22.0304 35.0926 22.3434C34.4677 22.6563 33.7849 22.8365 33.0871 22.8728C32.3892 22.9091 31.6914 22.8007 31.0375 22.5543C30.3835 22.3079 29.7876 21.929 29.2872 21.4412C28.7868 20.9534 28.3928 20.3674 28.1297 19.72L28.1283 19.7165C27.8702 19.0734 26.9618 19.0759 26.7058 19.7157C26.3302 20.6565 25.6812 21.4631 24.8426 22.0315C24.0037 22.5999 23.0136 22.9038 22.0002 22.9038C20.9869 22.9038 19.9968 22.5999 19.1579 22.0315C18.3194 21.4632 17.6705 20.6567 17.2948 19.7161C17.0364 19.0734 16.1285 19.076 15.8725 19.7157L15.8463 19.7809L15.8104 19.8414C15.1575 20.939 14.1141 21.7496 12.8891 22.1108C11.6641 22.4721 10.3479 22.3575 9.20383 21.7898C8.05977 21.2221 7.1723 20.2433 6.71903 19.0493C6.26577 17.8553 6.28015 16.5341 6.7593 15.3503L6.78283 15.2921L11.129 7.76624H32.8696L37.1671 15.204Z" fill="#E00068"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

BIN
src/assets/images/menu/brand_proc.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 947 B

5
src/assets/images/menu/map.svg

@ -1,5 +0,0 @@
<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M39.6875 13.75C40.1017 13.75 40.4375 14.0858 40.4375 14.5V33.1863C40.4375 33.5324 40.2261 33.8434 39.9043 33.9708L30.5979 37.6551C29.5986 38.0508 28.4906 38.0757 27.4745 37.7253L16.4017 33.9071C15.7748 33.6909 15.0939 33.6885 14.4655 33.9004L4.67576 37.2003C4.1289 37.3846 3.5625 36.9778 3.5625 36.4007V17.7812C3.5625 17.367 3.89829 17.0312 4.3125 17.0312C4.72671 17.0312 5.0625 17.367 5.0625 17.7812V35.487L13.9864 32.4789C14.929 32.1612 15.9503 32.1647 16.8907 32.489L27.9635 36.3072C28.6409 36.5408 29.3795 36.5242 30.0458 36.2605L38.9375 32.7403V14.5C38.9375 14.0858 39.2733 13.75 39.6875 13.75Z" fill="#E00068"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M22 26.4476L27.572 20.9093C28.6726 19.8149 29.421 18.4218 29.7241 16.9065C30.0272 15.3913 29.8716 13.8206 29.2766 12.3928C28.6816 10.9648 27.6735 9.74294 26.3783 8.88263C25.0831 8.02225 23.5594 7.5625 22 7.5625C20.4406 7.5625 18.9169 8.02225 17.6217 8.88263C16.3265 9.74294 15.3184 10.9648 14.7234 12.3928C14.1284 13.8206 13.9728 15.3913 14.2759 16.9065C14.579 18.4218 15.3274 19.8149 16.428 20.9093L22 26.4476ZM22 28.5625L15.3703 21.9729C14.0594 20.6694 13.1666 19.0086 12.805 17.2007C12.4434 15.3928 12.6292 13.5188 13.3388 11.8158C14.0484 10.1128 15.25 8.65724 16.7917 7.63317C18.3334 6.60909 20.1459 6.0625 22 6.0625C23.8541 6.0625 25.6666 6.60909 27.2083 7.63317C28.75 8.65724 29.9516 10.1128 30.6612 11.8158C31.3708 13.5188 31.5566 15.3928 31.195 17.2007C30.8334 19.0086 29.9406 20.6694 28.6297 21.9729L22 28.5625Z" fill="#E00068"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M22 16C22.8284 16 23.5 15.3284 23.5 14.5C23.5 13.6716 22.8284 13 22 13C21.1716 13 20.5 13.6716 20.5 14.5C20.5 15.3284 21.1716 16 22 16ZM22 17.3125C23.5533 17.3125 24.8125 16.0533 24.8125 14.5C24.8125 12.9467 23.5533 11.6875 22 11.6875C20.4467 11.6875 19.1875 12.9467 19.1875 14.5C19.1875 16.0533 20.4467 17.3125 22 17.3125Z" fill="#E00068"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

BIN
src/assets/images/menu/map_proc.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

3
src/assets/images/menu/member.svg

@ -1,3 +0,0 @@
<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.6244 6.08976C22.5534 5.99038 22.4596 5.90901 22.351 5.85312C22.2425 5.79723 22.1221 5.76807 22 5.76807C21.8779 5.76807 21.7576 5.79723 21.6491 5.85312C21.5405 5.90901 21.4469 5.99002 21.376 6.0894L13.8925 16.5656L6.39582 11.5666H6.39474L6.16829 11.416C6.04648 11.335 5.90404 11.2905 5.75777 11.2878C5.61151 11.2852 5.46753 11.3244 5.34283 11.4009C5.21813 11.4774 5.11792 11.5879 5.05403 11.7196C4.99021 11.851 4.96529 11.998 4.98221 12.1432L7.72052 35.423C7.74252 35.6094 7.83218 35.7815 7.97247 35.9062C8.11277 36.031 8.29397 36.0999 8.4817 36.1H35.5184C35.7061 36.0999 35.8873 36.031 36.0276 35.9062C36.1679 35.7815 36.2576 35.6094 36.2796 35.423L39.0179 12.1443C39.0351 11.9989 39.0103 11.8517 38.9465 11.7199C38.8827 11.5882 38.7825 11.4775 38.6578 11.4009C38.533 11.3243 38.389 11.285 38.2426 11.2877C38.0963 11.2904 37.9538 11.3349 37.8319 11.4159L30.1075 16.5655L22.6244 6.08976ZM6.69873 13.6126L14.2775 18.6644L22 7.85324L29.5314 18.3968L29.7226 18.6644L37.3013 13.6126L34.8371 34.5666H10.3049H9.16301L6.69873 13.6126Z" fill="#E00068"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

BIN
src/assets/images/menu/member_proc.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 983 B

5
src/assets/images/menu/parking.svg

@ -1,5 +0,0 @@
<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8329 29.4331C12.4086 29.4331 12.0016 29.2645 11.7015 28.9644C11.4015 28.6644 11.2329 28.2574 11.2329 27.8331C11.2329 27.4087 11.4015 27.0018 11.7015 26.7017C12.0016 26.4016 12.4086 26.2331 12.8329 26.2331C13.2573 26.2331 13.6642 26.4016 13.9643 26.7017C14.2643 27.0018 14.4329 27.4087 14.4329 27.8331C14.4329 28.2574 14.2643 28.6644 13.9643 28.9644C13.6642 29.2645 13.2573 29.4331 12.8329 29.4331Z" fill="#E00068"/>
<path d="M31.1662 29.4331C30.7419 29.4331 30.3349 29.2645 30.0349 28.9644C29.7348 28.6644 29.5662 28.2574 29.5662 27.8331C29.5662 27.4087 29.7348 27.0018 30.0349 26.7017C30.3349 26.4016 30.7419 26.2331 31.1662 26.2331C31.5906 26.2331 31.9976 26.4016 32.2976 26.7017C32.5977 27.0018 32.7662 27.4087 32.7662 27.8331C32.7662 28.2574 32.5977 28.6644 32.2976 28.9644C31.9976 29.2645 31.5906 29.4331 31.1662 29.4331Z" fill="#E00068"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M34.7908 37.5419C34.647 37.3981 34.5662 37.2031 34.5662 36.9997V34.4331H9.43291V36.9997C9.43291 37.2031 9.35214 37.3981 9.20836 37.5419C9.06458 37.6856 8.86958 37.7664 8.66624 37.7664H6.99958C6.79624 37.7664 6.60124 37.6856 6.45746 37.5419C6.31368 37.3981 6.23291 37.2031 6.23291 36.9997V20.5178L10.2935 11.0409C10.4813 10.6029 10.7935 10.2298 11.1914 9.96764C11.5894 9.7055 12.0564 9.56598 12.5329 9.56641H31.4662C31.9423 9.56648 32.408 9.70622 32.8054 9.96831C33.2029 10.2304 33.5148 10.6035 33.7024 11.0411L37.7662 20.5179V36.9997C37.7662 37.2031 37.6855 37.3981 37.5417 37.5419C37.3979 37.6856 37.2029 37.7664 36.9996 37.7664H35.3329C35.1296 37.7664 34.9346 37.6856 34.7908 37.5419ZM36.2329 22.7664V32.8997H7.76624V22.7664H36.2329ZM7.59441 21.2331L11.9396 11.0997H32.0614L36.4045 21.2331H7.59441Z" fill="#E00068"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

BIN
src/assets/images/menu/parking_proc.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 654 B

4
src/assets/images/menu/service.svg

@ -1,4 +0,0 @@
<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M37.7667 31.9999C37.7667 32.4233 37.4235 32.7666 37.0001 32.7666H12.4464L6.2334 37.6482V8.66657C6.2334 8.24316 6.57665 7.8999 7.00007 7.8999H37.0001C37.4235 7.8999 37.7667 8.24315 37.7667 8.66657V31.9999ZM7.76673 34.4935V9.43324H36.2334V31.2332H11.916L7.76673 34.4935Z" fill="#E00068"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.0681 16.2346C15.9552 17.3476 15.9552 19.1521 17.0681 20.2652L22.0297 25.2266L26.9912 20.2652C28.1042 19.1521 28.1042 17.3476 26.9912 16.2347C25.8865 15.1301 24.1007 15.1219 22.9858 16.2098C22.9774 16.218 22.969 16.2263 22.9606 16.2347L22.0299 17.1658L21.0987 16.2347C21.0901 16.226 21.0814 16.2175 21.0727 16.209C19.9578 15.1217 18.1725 15.1303 17.0681 16.2346ZM23.9505 17.2247L22.0302 19.1458L20.1088 17.2247C19.5425 16.6584 18.6243 16.6583 18.0581 17.2246C17.4919 17.7908 17.4918 18.7089 18.0581 19.2752C18.0581 19.2752 18.0581 19.2752 18.0581 19.2752L22.0297 23.2467L26.0012 19.2752C26.5675 18.7089 26.5675 17.7909 26.0012 17.2246C25.4352 16.6586 24.5169 16.6587 23.9505 17.2247C23.9504 17.2248 23.9506 17.2246 23.9505 17.2247Z" fill="#E00068"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

BIN
src/assets/images/menu/service_proc.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 681 B

3
src/assets/images/menu/traffic.svg

@ -1,3 +0,0 @@
<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.56689 36.1001V34.5667H7.90023V11.4998C7.90018 11.3424 7.94857 11.1888 8.03882 11.0599C8.12907 10.931 8.25681 10.833 8.40469 10.7791L24.4336 4.95166V13.7605L35.5758 17.474C35.7286 17.5248 35.8614 17.6225 35.9555 17.7531C36.0496 17.8836 36.1003 18.0408 36.1002 18.2017V34.5667H39.4336V36.1001H4.56689ZM9.43356 34.5667V12.0381L22.9002 7.14005V34.5667H9.43356ZM34.5669 34.5667H24.4336V15.3763L34.5669 18.7548V34.5667Z" fill="#E00068"/>
</svg>

Before

Width:  |  Height:  |  Size: 587 B

BIN
src/assets/images/menu/traffic_proc.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 571 B

2
src/base/AutoBackNotification/AutoBackNotification.vue

@ -61,7 +61,7 @@ withDefaults(defineProps<Props>(), {
}
.border {
position: relative;
stroke: #dcb889;
stroke: #e00068;
transform: translate3d(1px, 1px, 0);
z-index: 10;
stroke-dasharray: 1535px, 1535px;

4
src/components/Header/Header.vue

@ -9,7 +9,7 @@
<div class="text_en">SEARCH</div>
</div>
</div>
<div class="recommend" @click="show">
<div v-if="columnList.length && columnList[0].moduleType" class="recommend" @click="show">
<img class="rem" src="@/assets/images/header/zan.svg" alt="" />
<div>{{ $t('header.recommend') }}</div>
</div>
@ -23,9 +23,11 @@
<script setup lang="ts">
import { useRootStore } from '@/store/root'
import { toRefs } from 'vue'
import WeaAndTime from './WeaAndTime.vue'
const store = useRootStore()
const { columnList } = toRefs(store)
function go() {
store.SET_SHOW_SEARCH(true)

78
src/components/Menu/Menu.vue

@ -5,11 +5,11 @@
<div class="language-item" :class="{ active: language === 'en' }" @click="changeLang('en')">EN</div>
</div>
<div class="menus">
<div v-for="item in list" :key="item.title" class="menu" :class="route.fullPath === item.path && 'ac'" @click="go(item)">
<img :src="item.icon" alt="" />
<div v-for="item in list" :key="item.id" class="menu" :class="route.fullPath === item.routePath && 'ac'" @click="go(item)">
<img :src="item.moduleLogo" alt="" />
<div>
<div class="title" :class="route.fullPath === item.path && 'act'">{{ item.title }}</div>
<div class="titleEn">{{ item.titleEn }}</div>
<div class="title" :class="route.fullPath === item.routePath && 'act'">{{ item.moduleName }}</div>
<div class="titleEn">{{ item.moduleNameEn }}</div>
</div>
</div>
</div>
@ -17,10 +17,12 @@
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { storeToRefs } from 'pinia'
import { useRoute, useRouter } from 'vue-router'
import { useRootStore } from '@/store/root'
import { useStatisticsModel } from '@/composables/useStatistics'
import { getMenuList } from '@/http/api/menu'
const store = useRootStore()
const { language } = storeToRefs(store)
@ -31,69 +33,17 @@ function changeLang(lang: Language) {
store.SET_LANGUAGE(lang)
}
type MenuList = {
title: string
titleEn: string
icon: string
path: string
}
const list: MenuList[] = [
{
title: '地图导览',
titleEn: 'MAP',
icon: require('@/assets/images/menu/map.svg'),
path: '/'
},
{
title: '品牌列表',
titleEn: 'BRAND',
icon: require('@/assets/images/menu/brand.svg'),
path: '/brand'
},
{
title: '活动精选',
titleEn: 'SELECTION',
icon: require('@/assets/images/menu/activity.svg'),
path: '/activity'
},
{
title: '会员专享',
titleEn: 'MEMBER',
icon: require('@/assets/images/menu/member.svg'),
path: '/member'
},
{
title: '自主寻车',
titleEn: 'PARKING',
icon: require('@/assets/images/menu/parking.svg'),
path: '/parking'
},
{
title: '贴心服务',
titleEn: 'SERVICE',
icon: require('@/assets/images/menu/service.svg'),
path: '/service'
},
{
title: '交通信息',
titleEn: 'TRAFFIC',
icon: require('@/assets/images/menu/traffic.svg'),
path: '/traffic'
},
{
title: '艺术装置',
titleEn: 'ARTWORK',
icon: require('@/assets/images/menu/art.svg'),
path: '/art'
}
]
const router = useRouter()
const route = useRoute()
function go(item: MenuList) {
router.push(item.path)
useStatisticsModel({ recordType: 1, moduleName: item.title })
const list = ref<MenuType[]>([])
getMenuList().then(({ data }) => {
list.value = data
})
function go(item: MenuType) {
router.push(item.routePath)
useStatisticsModel({ recordType: 1, moduleName: item.moduleName })
}
</script>

11
src/components/PublicComponent/PublicComponent.vue

@ -1,12 +1,16 @@
<template>
<!-- 地图容器 -->
<Map v-show="$route.meta.showMap" @handle-go="handleGO" @handle-detail="handleDetail" />
<!-- 头部 -->
<Header />
<!-- 菜单 -->
<Menu />
<!-- 推荐弹窗 -->
<RecommendDialog v-if="showColumnList" />
<shopdetail v-if="showDetail"></shopdetail>
<!-- 倒计时返回首页提示 -->
@ -22,16 +26,17 @@ import { useRootStore } from '@/store/root'
import { useRouter, useRoute } from 'vue-router'
import { useHandleScreen } from '@/composables/useHandleScreen'
import { useInitMap } from '@/composables/useInitMap'
import { createShopListMap } from '@/utils/utils'
import Map from '@/components/Map/Map.vue'
import Header from '@/components/Header/Header.vue'
import Menu from '../Menu/Menu.vue'
import shopdetail from '@/components/ShopDetail/ShopDetail.vue'
const AutoBackNotification = defineAsyncComponent(() => import('@/base/AutoBackNotification/AutoBackNotification.vue'))
const RecommendDialog = defineAsyncComponent(() => import('@/components/Recommend/Recommend.vue'))
const router = useRouter()
const route = useRoute()
const store = useRootStore()
const { language, showSearch, showDetail } = storeToRefs(store)
const { language, showSearch, showDetail, shopList, showColumnList } = storeToRefs(store)
const { checkHandleScreen, showCountDownDialog, title, toIndexTime, toWallpaperTime, isWallpaper } = useHandleScreen(handleScreen)
//
@ -50,6 +55,8 @@ function handleDetail() {
onMounted(() => {
!window.Map_QM && useInitMap()
window.addEventListener('touchend', checkHandleScreen)
// map
store.SET_SHOP_MAP(createShopListMap(shopList.value))
})
onBeforeUnmount(() => {
window.removeEventListener('touchend', checkHandleScreen)

211
src/components/Recommend/Recommend.vue

@ -0,0 +1,211 @@
<template>
<div class="recommend-container">
<div class="masker" @click="close"></div>
<div class="close-icon" @click="close">
<img src="@/assets/images/shopDetail/close.svg" alt="" />
</div>
<div class="content">
<div class="name-container">
<div class="name">餐饮推荐</div>
<div class="line">/</div>
<div class="nameEn">DINING RECOMMENDATION</div>
</div>
<ScrollView v-if="list?.length" :pull-up="false" observe-image :list="list" class="shop-scroll" scrollbar>
<div v-masonry transition-duration="0.5s" :gutter="24" class="item" item-selector=".card">
<div v-for="(item, index) in list" :key="index" v-masonry-tile class="card" @click="clickShop(item)">
<img :src="item.fileUrl" alt="" class="imgs" />
<div class="bottom">
<div class="name">{{ switchLanguage(item, 'name') }}</div>
<div v-if="item.shopCode" class="pos">
<div class="shopName">{{ switchLanguage(item, 'shopName') }}</div>
<div class="number">
<img src="" alt="" />
<div>{{ item.houseNumber }}</div>
</div>
</div>
</div>
</div>
</div>
</ScrollView>
</div>
</div>
</template>
<script setup lang="ts">
import { toRefs } from 'vue'
import { useRootStore } from '@/store/root'
import { useRouter } from 'vue-router'
import { useSwitchLanguage } from '@/composables/useSwitchLanguage'
import Brand from '@/utils/Class/Brand'
import ScrollView from '@/base/ScrollView/ScrollView.vue'
const store = useRootStore()
const { shopList } = toRefs(store)
const list: any = []
const router = useRouter()
const { switchLanguage } = useSwitchLanguage()
const emits = defineEmits(['close'])
function close() {
emits('close')
}
function clickShop(item: FeaturedList) {
if (item.shopCode) {
const arr = shopList.value.filter(shop => shop.shopCode === item.shopCode)
store.SET_SHOP(arr[0])
store.SET_SHOW_DETAIL(true)
} else {
store.SET_SHOP(
new Brand({
shopName: item.name,
floorOrder: item.floorOrder,
floor: item.floor,
logoUrl: item.fileUrl,
yaxis: item.point,
shopCode: item.shopCode,
shopNameEn: item.nameEn
})
)
router.push('/nav')
}
}
</script>
<style lang="scss" scoped>
.recommend-container {
position: fixed;
top: 0;
left: 0;
z-index: 1001;
width: 1920px;
height: 1080px;
background: rgb(142 144 145 / 50%);
backdrop-filter: blur(50px);
.masker {
position: fixed;
top: 0;
left: 0;
z-index: 1;
width: 1920px;
height: 1080px;
}
.close-icon {
@include fl(center);
position: fixed;
top: 72px;
right: 128px;
z-index: 3;
width: 100px;
height: 100px;
background: rgb(255 255 255 / 60%);
border: 2px solid #fff;
border-radius: 50px;
backdrop-filter: blur(20px);
img {
width: 48px;
height: 48px;
}
}
.content {
position: fixed;
top: 112px;
left: 160px;
z-index: 2;
width: 1600px;
height: 856px;
padding-top: 48px;
padding-left: 74px;
background: #f5f5f5;
border-radius: 24px;
.name-container {
@include fl();
.name {
font-size: 48px;
font-family: 'font_bold';
color: #534f46;
font-style: normal;
font-weight: 700;
line-height: 56px;
}
.line {
margin: 0 20px;
font-size: 48px;
font-family: 'font_regular';
color: #615c59;
font-style: normal;
font-weight: 400;
line-height: 56px;
}
.nameEn {
font-size: 20px;
font-family: 'font_regular';
color: #615c59;
font-style: normal;
font-weight: 400;
line-height: 24px;
}
}
.shop-scroll {
overflow: hidden;
height: 712px;
.item {
display: block;
.card {
width: 354px;
margin-bottom: 12px;
.imgs {
width: 354px;
background: #fff;
border-radius: 16px 16px 0 0;
}
.bottom {
width: 354px;
padding: 20px 30px;
background: rgb(255 255 255 / 80%);
border-radius: 0 0 16px 16px;
.name {
@include no-wrap;
width: 290px;
margin-bottom: 4px;
font-size: 20px;
font-family: font-bold;
color: rgb(0 0 0 / 80%);
font-weight: 700;
line-height: 28px;
}
.pos {
@include fl(space-between);
font-size: 14px;
font-family: font-bold;
color: #8e9090;
font-weight: 700;
line-height: 22px;
.shopName {
@include no-wrap;
max-width: 190px;
}
.number {
@include fl();
@include no-wrap;
max-width: 80px;
img {
width: 16px;
height: 16px;
margin-right: 8px;
}
}
}
}
}
}
}
}
}
</style>

19
src/composables/useArea.ts

@ -1,19 +0,0 @@
import { ref, shallowRef, toRefs } from 'vue'
import { useRootStore } from '@/store/root'
import { hideMapDialog } from '@/composables/useInitMap'
export const useArea = () => {
const store = useRootStore()
const { shopList, device } = toRefs(store)
const areaName = ref('全部区域') //楼层选中索引
const selectedShopListA = shallowRef<Shop[]>(shopList.value.filter(item => item.floor === device.value.floor)) //选中楼层的店铺列表
// 切换楼层
function changeArea(name: string) {
areaName.value = name
selectedShopListA.value = shopList.value.filter(item => item.floor === name)
hideMapDialog()
}
return { areaName, selectedShopListA, changeArea }
}

20
src/composables/useGuideFilterShop.ts

@ -3,10 +3,11 @@ import { useRootStore } from '@/store/root'
import { hideMapDialog } from '@/composables/useInitMap'
export const useGuideFilterShop = () => {
const store = useRootStore()
const { shopList, device } = toRefs(store)
const { shopList } = toRefs(store)
const floorIdx = ref(device.value.floorOrder) //楼层选中索引
const selectedShopList = shallowRef<Shop[]>(shopList.value.filter(item => item.floor === device.value.floor)) //选中楼层的店铺列表
const areaName = ref('全部区域') //区域选中索引
const floorIdx = ref(6) //楼层选中索引
const selectedShopList = shallowRef<Shop[]>([]) //选中楼层的店铺列表
// 切换楼层
function changeFloor(floorOrder: number) {
@ -16,5 +17,16 @@ export const useGuideFilterShop = () => {
window.Map_QM.showFloor(floorOrder)
}
return { floorIdx, selectedShopList, changeFloor }
// 切换区域
function changeArea(name: string) {
areaName.value = name
if (name === '全部区域') {
selectedShopList.value = shopList.value.filter(item => item.floorOrder === floorIdx.value)
} else {
selectedShopList.value = selectedShopList.value.filter(item => item.regionName === name)
}
hideMapDialog()
}
return { areaName, floorIdx, selectedShopList, changeFloor, changeArea }
}

14
src/composables/useGuideMapOperation.ts

@ -1,14 +1,14 @@
import { onBeforeUnmount, ref, toRefs } from 'vue'
import { useRootStore } from '@/store/root'
import { hideMapDialog } from '@/composables/useInitMap'
import { list, MapControl } from '@/views/Guide/list'
import type { Item } from '@/views/Guide/list'
import { useRootStore } from '@/store/root'
export const useGuideMapOperation = (callback?: () => void) => {
const store = useRootStore()
const { device } = toRefs(store)
export const useGuideMapOperation = (callback: (index: number) => void) => {
const mapIdx = ref(-1)
const mapTimer = ref<any>()
const store = useRootStore()
const { device } = toRefs(store)
//我的方向
function onClickMeDirect() {
@ -32,8 +32,7 @@ export const useGuideMapOperation = (callback?: () => void) => {
switch (item.name) {
case MapControl.RESET:
switchFloor(device.value.floorOrder)
callback?.()
callback(6)
onClickDeviceSite()
mapTimer.value = setTimeout(() => {
mapIdx.value = -1
@ -43,8 +42,7 @@ export const useGuideMapOperation = (callback?: () => void) => {
break
case MapControl.DIRECTION:
switchFloor(device.value.floorOrder)
callback?.()
callback(device.value.floorOrder)
onClickMeDirect()
break

22
src/composables/useInitConfigAndMallInfo.ts

@ -2,6 +2,7 @@ import { useRootStore } from '@/store/root'
import { getConfig, getFacilitiesList, getWeather } from '@/http/api/base'
import { getShopAndBuildingList } from '@/http/api/shop'
import { getDeviceInfo } from '@/http/api/building'
import { getArtWorkList } from '@/http/api/art'
import { getShopListByFloor, getShopListByIndustry, getBrandInfo } from '@/http/api/brand'
import Message from '@/base/Message/Message'
@ -11,15 +12,17 @@ export const useInitConfigAndMallInfo = async () => {
const store = useRootStore()
store.SET_CONFIG(_config.data)
const [_DeviceInfo, _shopAndBuilding, _facilityList, _weather, _shopListByFloor, _shopListByIndustry, _brandInfo] = await Promise.all([
getDeviceInfo(),
getShopAndBuildingList(),
getFacilitiesList(),
getWeather(),
getShopListByFloor(),
getShopListByIndustry(),
getBrandInfo()
])
const [_DeviceInfo, _shopAndBuilding, _facilityList, _weather, _shopListByFloor, _shopListByIndustry, _brandInfo, _artWorkList] =
await Promise.all([
getDeviceInfo(),
getShopAndBuildingList(),
getFacilitiesList(),
getWeather(),
getShopListByFloor(),
getShopListByIndustry(),
getBrandInfo(),
getArtWorkList()
])
const { shopList, buildingList } = _shopAndBuilding.data
store.SET_DEVICE(_DeviceInfo.data)
@ -30,6 +33,7 @@ export const useInitConfigAndMallInfo = async () => {
store.SET_SHOP_LIST_BY_INDUSTRY(_shopListByIndustry.data.list)
store.SET_FACILITY_LIST(_facilityList.data)
store.SET_WEATHER(_weather.data)
store.SET_ART_PLACE_LIST(_artWorkList.data)
} catch (error) {
Message({ text: '初始化数据失败', type: 'success' })
}

8
src/http/api/art/index.ts

@ -0,0 +1,8 @@
import { request } from '@/http/http'
import { PREFIX } from '@/enums'
//获取艺术列表
export const getArtList = () => request<Art[]>({ url: `${PREFIX.STATIC_URL}/JSON/getArtList.json` })
// 获取艺术装置列表
export const getArtWorkList = () => request<ArtPlace[]>({ url: `${PREFIX.STATIC_URL}/JSON/getArtWorkList.json` })

6
src/http/api/base/index.ts

@ -23,3 +23,9 @@ export const getHandWriting = (data: WrittenQuery) => request<string[]>({ url: `
//获取区域
export const getRegionList = () => request<Region[]>({ url: `${PREFIX.STATIC_URL}/JSON/getRegionList.json` })
// 获取楼层缩略图
export const getFloorPicList = () => request<FloorPic[]>({ url: `${PREFIX.STATIC_URL}/JSON/getFloorPicList.json` })
// 获取区域缩略图
export const getAreaPicList = () => request<AreaPic[]>({ url: `${PREFIX.STATIC_URL}/JSON/getAreaPicList.json` })

4
src/http/api/menu/index.ts

@ -0,0 +1,4 @@
import { request } from '../../http'
import { PREFIX } from '@/enums'
// 菜单列表
export const getMenuList = () => request<MenuType[]>({ url: `${PREFIX.STATIC_URL}/JSON/getHomeBtn.json` })

3
src/http/api/parking/index.ts

@ -1,7 +1,8 @@
import { request } from '../../http'
import { getPrefixUrl } from '../../http'
import { PREFIX } from '@/enums'
//找车
export const getFindCar = (license: string) =>
request<CarInfo>({ url: `${getPrefixUrl().interfaceUrl}/ThirdPark/GetPlaceInfo?carCode=${license}` })
export const getParkingInfo = () => request<ParkingInfo>({ url: `/JSON/getParkingInfo.json` })
export const getParkingInfo = () => request<ParkingInfo>({ url: `${PREFIX.STATIC_URL}/JSON/getParkingInfo.json` })

5
src/http/api/place/index.ts

@ -0,0 +1,5 @@
import { request } from '@/http/http'
import { PREFIX } from '@/enums'
//获取地图图示列表
export const getPlaceList = () => request<PlaceType[]>({ url: `${PREFIX.STATIC_URL}/JSON/getPlaceList.json` })

7
src/http/api/statistics/index.ts

@ -1,7 +1,10 @@
import { request } from '../../http'
import type { Query, Clickquery } from './types'
import { getPrefixUrl } from '@/http/http'
//数据统计
export const getStatistics = (data: Query) => request({ url: `/analysis/v1/web/deviceUseClickDataUpload`, data, method: 'post' })
export const getStatistics = (data: Query) =>
request({ url: `${getPrefixUrl().interfaceUrl}/analysis/v1/web/deviceUseClickDataUpload`, data, method: 'post' })
//数据统计(模块点击、活动点击、使用人次点击)
export const getGuideClickDataUpload = (data: Clickquery) => request({ url: '/analysis/v1/web/guideClickDataUpload', data, method: 'post' })
export const getGuideClickDataUpload = (data: Clickquery) =>
request({ url: `${getPrefixUrl().interfaceUrl}/analysis/v1/web/guideClickDataUpload`, data, method: 'post' })

2
src/main.ts

@ -5,6 +5,7 @@ import { setupI18n } from './i18n'
import { setupPinia } from './store'
import { setupErrorHandler } from './errorHandler'
import { setupPlugins } from './plugins'
import { VueMasonryPlugin } from 'vue-masonry'
import { useInitConfigAndMallInfo } from './composables/useInitConfigAndMallInfo'
import '@/assets/scss/index.scss'
@ -19,6 +20,7 @@ async function bootstrap() {
setupPlugins(app)
setupErrorHandler(app)
app.mount('#app')
app.use(VueMasonryPlugin)
}
bootstrap()

8
src/store/root/actions.ts

@ -21,6 +21,8 @@ export interface Actions {
SET_SHOW_SEARCH(flag: boolean): void
SET_COLUMN_LIST(list: Featured[]): void
SET_SHOW_COLUMNLIST(flag: boolean): void
SET_SHOP_MAP(shopMap: ShopMap): void
SET_ART_PLACE_LIST(list: ArtPlace[]): void
}
export type GenActions = CreateActions<Root, State, Actions>
@ -76,5 +78,11 @@ export const actions: GenActions = {
},
SET_SHOW_COLUMNLIST(flag) {
this.showColumnList = flag
},
SET_SHOP_MAP(shopMap) {
this.shopMap = shopMap
},
SET_ART_PLACE_LIST(list) {
this.artPlaceList = list
}
}

6
src/store/root/state.ts

@ -17,6 +17,8 @@ export interface State {
shop: Shop //店铺信息
columnList: Featured[] //推荐页的卡片
showColumnList: boolean //是否显示专栏
shopMap: ShopMap // 店铺code与店铺信息集合
artPlaceList: ArtPlace[] // 艺术装置集合
}
export const state = (): State => ({
@ -35,5 +37,7 @@ export const state = (): State => ({
device: {} as Device,
shop: {} as Shop,
columnList: [],
showColumnList: false
showColumnList: false,
shopMap: {} as ShopMap,
artPlaceList: []
})

23
src/types/art.d.ts

@ -0,0 +1,23 @@
declare type Art = {
id: number
title: string
content: {
name: string
nameEn: string
point: string
}
}
declare type ArtPlace = {
id: number
title: string
content: {
name: string
nameEn: string
file_code: string[]
point: string
content: string
contentEn: string
icon: string[]
}
}

19
src/types/building.d.ts

@ -12,3 +12,22 @@ declare interface Building {
buildingOrder: number
floorList: Floor[]
}
declare interface FloorPic {
id: number
title: string
content: {
name: string
floorOrder: string
file_code: string[]
}
}
declare interface AreaPic {
id: number
title: string
content: {
name: string
file_code: string[]
}
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save