Compare commits

...

8 Commits

  1. 15
      CHANGELOG.md
  2. 4
      package-lock.json
  3. 2
      package.json
  4. 304
      public/static/offline/JSON/getArtList.json
  5. 124
      public/static/offline/JSON/getFacilityList.json
  6. 7
      public/static/offline/JSON/getServeList.json
  7. 27
      public/static/offline/JSON/getSpecialIndustry.json
  8. 24
      src/components/ActivityDetail/ActivityDetail.vue
  9. 7
      src/components/Map/Map.vue
  10. 4
      src/components/SearchResultList/SearchResultList.vue
  11. 30
      src/composables/useGuideFilterShop.ts
  12. 9
      src/composables/useInitConfigAndMallInfo.ts
  13. 3
      src/http/api/brand/index.ts
  14. 4
      src/store/root/actions.ts
  15. 4
      src/store/root/state.ts
  16. 2
      src/types/activity.d.ts
  17. 8
      src/types/industry.d.ts
  18. 2
      src/views/Guide/ArtList.vue
  19. 5
      src/views/Service/Service.vue

15
CHANGELOG.md

@ -2,6 +2,21 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
## [1.0.0-B.2](https://git.1000my.com/project-chengduSKP/cd_SKP_H_base_daoshi_vue_ts/compare/v1.0.0-B.1...v1.0.0-B.2) (2023-07-19)
### Features
* 🚀 新增特殊业态功能 ([c017834](https://git.1000my.com/project-chengduSKP/cd_SKP_H_base_daoshi_vue_ts/commit/c01783411c3d10d759d1e7ced0377d470ba0addb))
### Bug Fixes
* 🧩 根据楼层修改地图位置 ([fb49958](https://git.1000my.com/project-chengduSKP/cd_SKP_H_base_daoshi_vue_ts/commit/fb49958c24670006c44a04610f964e2e43843899))
* 修改服务为绑定公共设施 ([354a94d](https://git.1000my.com/project-chengduSKP/cd_SKP_H_base_daoshi_vue_ts/commit/354a94da27c24fdfca02cc06b51398138bfbadbb))
* 修改搜索样式 ([cbb5c6d](https://git.1000my.com/project-chengduSKP/cd_SKP_H_base_daoshi_vue_ts/commit/cbb5c6d3697bea94478c132a8dc0e5773f80aa73))
* 修改语句 ([07f0772](https://git.1000my.com/project-chengduSKP/cd_SKP_H_base_daoshi_vue_ts/commit/07f077253fb29ee78c165e83ed4e51691a662943))
## 1.0.0-B.1 (2023-07-18) ## 1.0.0-B.1 (2023-07-18)

4
package-lock.json

@ -1,12 +1,12 @@
{ {
"name": "vue_cli_ts", "name": "vue_cli_ts",
"version": "1.0.0-B.1",
"version": "1.0.0-B.2",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "vue_cli_ts", "name": "vue_cli_ts",
"version": "1.0.0-B.1",
"version": "1.0.0-B.2",
"dependencies": { "dependencies": {
"@better-scroll/core": "^2.5.0", "@better-scroll/core": "^2.5.0",
"@better-scroll/observe-image": "^2.5.0", "@better-scroll/observe-image": "^2.5.0",

2
package.json

@ -1,6 +1,6 @@
{ {
"name": "vue_cli_ts", "name": "vue_cli_ts",
"version": "1.0.0-B.1",
"version": "1.0.0-B.2",
"private": true, "private": true,
"scripts": { "scripts": {
"serve": "vue-cli-service serve", "serve": "vue-cli-service serve",

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

@ -1 +1,303 @@
{"code":200,"msg":"操作成功","data":[{"id":172,"title":"2","content":{"name":"魔法水星","nameEn":"MAGIC WATER BALL ","point":"0_0_9"}},{"id":171,"title":"1","content":{"name":"花之泉广场","nameEn":"NORTH ENTRANCE FOUNTAIN SQUARE","point":"0_0_65"}},{"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"}}]}
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 172,
"title": "2",
"content": {
"name": "魔法水星",
"nameEn": "MAGIC WATER BALL ",
"point": "0_0_9"
}
},
{
"id": 171,
"title": "1",
"content": {
"name": "花之泉广场",
"nameEn": "NORTH ENTRANCE FOUNTAIN SQUARE",
"point": "0_0_65"
}
},
{
"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": 172,
"title": "2",
"content": {
"name": "魔法水星",
"nameEn": "MAGIC WATER BALL ",
"point": "0_0_9"
}
},
{
"id": 171,
"title": "1",
"content": {
"name": "花之泉广场",
"nameEn": "NORTH ENTRANCE FOUNTAIN SQUARE",
"point": "0_0_65"
}
},
{
"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": 172,
"title": "2",
"content": {
"name": "魔法水星",
"nameEn": "MAGIC WATER BALL ",
"point": "0_0_9"
}
},
{
"id": 171,
"title": "1",
"content": {
"name": "花之泉广场",
"nameEn": "NORTH ENTRANCE FOUNTAIN SQUARE",
"point": "0_0_65"
}
},
{
"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": 172,
"title": "2",
"content": {
"name": "魔法水星",
"nameEn": "MAGIC WATER BALL ",
"point": "0_0_9"
}
},
{
"id": 171,
"title": "1",
"content": {
"name": "花之泉广场",
"nameEn": "NORTH ENTRANCE FOUNTAIN SQUARE",
"point": "0_0_65"
}
},
{
"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": 172,
"title": "2",
"content": {
"name": "魔法水星",
"nameEn": "MAGIC WATER BALL ",
"point": "0_0_9"
}
},
{
"id": 171,
"title": "1",
"content": {
"name": "花之泉广场",
"nameEn": "NORTH ENTRANCE FOUNTAIN SQUARE",
"point": "0_0_65"
}
},
{
"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": 172,
"title": "2",
"content": {
"name": "魔法水星",
"nameEn": "MAGIC WATER BALL ",
"point": "0_0_9"
}
},
{
"id": 171,
"title": "1",
"content": {
"name": "花之泉广场",
"nameEn": "NORTH ENTRANCE FOUNTAIN SQUARE",
"point": "0_0_65"
}
},
{
"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": 172,
"title": "2",
"content": {
"name": "魔法水星",
"nameEn": "MAGIC WATER BALL ",
"point": "0_0_9"
}
},
{
"id": 171,
"title": "1",
"content": {
"name": "花之泉广场",
"nameEn": "NORTH ENTRANCE FOUNTAIN SQUARE",
"point": "0_0_65"
}
},
{
"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": 172,
"title": "2",
"content": {
"name": "魔法水星",
"nameEn": "MAGIC WATER BALL ",
"point": "0_0_9"
}
},
{
"id": 171,
"title": "1",
"content": {
"name": "花之泉广场",
"nameEn": "NORTH ENTRANCE FOUNTAIN SQUARE",
"point": "0_0_65"
}
},
{
"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": 172,
"title": "2",
"content": {
"name": "魔法水星",
"nameEn": "MAGIC WATER BALL ",
"point": "0_0_9"
}
}
]
}

124
public/static/offline/JSON/getFacilityList.json

@ -1 +1,123 @@
{"code":200,"msg":"操作成功","data":[{"name":"地铁","nameEn":"","code":"DtZKU6ordgXcj8LPLrx4_","customFacilityName":"","customFacilityNameEn":""},{"name":"服务台","nameEn":"","code":"Q06WweVcR09F-fPHEmfPg","customFacilityName":"","customFacilityNameEn":""},{"name":"母婴室","nameEn":"","code":"MW_Iy4G6ggBTGADTUZzMD","customFacilityName":"","customFacilityNameEn":"","filePath":"/convert/Files/e42ea976-1acc-45fa-b00e-203213f5f5b6/mys.png"},{"name":"停车场","nameEn":"","code":"WeKtI9-Wig4BldTI4o7J8","customFacilityName":"","customFacilityNameEn":"","filePath":"/convert/Files/f4fe843e-63d9-460c-8cb0-c8fdf5c06c71/tcc.png"},{"name":"无障碍卫生间","nameEn":"无障碍卫生间","code":"CFfRtlLbYE9d38bv3VZy0","customFacilityName":"","customFacilityNameEn":"","filePath":"/convert/Files/abc22b61-3d10-42c2-a5c1-182c21da9147/cjr.png"},{"name":"扶梯","nameEn":"扶梯","code":"SWjFvak82y9lXc0rBXn2g","customFacilityName":"","customFacilityNameEn":"","filePath":"/convert/Files/ff5514af-a743-4823-a246-43de4b8d362f/ft.png"},{"name":"楼梯","nameEn":"","code":"XGgII8bTWzH2Lwy_iKtd1","customFacilityName":"","customFacilityNameEn":""},{"name":"男洗手间","nameEn":"","code":"gl9qD0UXBY991EpItqldQ","customFacilityName":"","customFacilityNameEn":""},{"name":"女洗手间","nameEn":"","code":"ncGrnPQ0R1wCrZGXgg6UT","customFacilityName":"","customFacilityNameEn":""},{"name":"直梯","nameEn":"","code":"_Lw1JgBlHcHmHIhDffWDX","customFacilityName":"","customFacilityNameEn":"","filePath":"/convert/Files/86b0e9ab-57bd-40b9-97c0-f1b6f1d0efd4/dt.png"}]}
{
"code": 200,
"msg": "操作成功",
"data": [
{
"name": "扶梯",
"nameEn": "escalator",
"code": "wvbKjHPqqnbjxsXTlSfc1",
"customFacilityName": "",
"customFacilityNameEn": "",
"abbreviation": "ft",
"filePath": "/iotFile/2022/11/15/f3u4NjtZtlVfhoW-p3lqM.png"
},
{
"name": "上扶梯",
"nameEn": "",
"code": "NtFDFfDiTIQIWQ5UFqcbv",
"customFacilityName": "",
"customFacilityNameEn": "",
"abbreviation": "upft",
"filePath": "/iotFile/2022/11/15/RbX3fMJtHD12cie3ZWbhl.png"
},
{
"name": "下扶梯",
"nameEn": "xiafuti",
"code": "UPAo4Rr1B0SUonvpSW8kC",
"customFacilityName": "",
"customFacilityNameEn": "",
"abbreviation": "downft",
"filePath": "/iotFile/2022/11/15/KVRDjyi__OiTBK0wvTiab.png"
},
{
"name": "母婴室",
"nameEn": "",
"code": "D3i4vTd1k7NYlaC4kmeVP",
"customFacilityName": "",
"customFacilityNameEn": "",
"abbreviation": "mys",
"filePath": "/iotFile/2022/11/15/ASyeOlY20rCM0Y204kOXf.png"
},
{
"name": "洗手间",
"nameEn": "toilet",
"code": "ACgMk2fBoaIn268yyLnFG",
"customFacilityName": "",
"customFacilityNameEn": "",
"abbreviation": "xsj",
"filePath": "/iotFile/2022/11/15/R7GJWgwODBsGiM4A6ARzu.png"
},
{
"name": "直梯",
"nameEn": "",
"code": "DaNPxh6ilIIhd4gkri38j",
"customFacilityName": "",
"customFacilityNameEn": "",
"abbreviation": "dt",
"filePath": "/iotFile/2022/11/15/xOyk8yctB_D0KaD4jw6D-.png"
},
{
"name": "吸烟室",
"nameEn": "",
"code": "5Gp5PNrRVu7RBsrqGiJOi",
"customFacilityName": "",
"customFacilityNameEn": "",
"abbreviation": "xys",
"filePath": "/iotFile/2022/11/15/l-wKNIKm4SbRdalfC0adv.png"
},
{
"name": "人行通道",
"nameEn": "",
"code": "eOfA_xJ0yJ8BghGyuc3kw",
"customFacilityName": "",
"customFacilityNameEn": "",
"abbreviation": "td",
"filePath": "/iotFile/2022/11/15/-ZCv-lT1vGnozNj-hnYjW.png"
},
{
"name": "男洗手间",
"nameEn": "",
"code": "OMoEcFmqQCTTGPTPCRGzp",
"customFacilityName": "",
"customFacilityNameEn": "",
"abbreviation": "xsjn",
"filePath": "/iotFile/2022/11/15/RPLs01DqaHy-HUcOWFunN.png"
},
{
"name": "女洗手间",
"nameEn": "",
"code": "J9xwLN-PXnxcf5cxlVM5d",
"customFacilityName": "",
"customFacilityNameEn": "",
"abbreviation": "xsjv",
"filePath": "/iotFile/2022/11/15/7gt7rdAoCvH-Mz6afk7yu.png"
},
{
"name": "活动",
"nameEn": "",
"code": "Me3ww760_AGXnA49PefKm",
"customFacilityName": "",
"customFacilityNameEn": "",
"abbreviation": "hd",
"filePath": "/iotFile/2023/03/29/xiNzv4wixeghR6OIKWjad.png"
},
{
"name": "服务台",
"nameEn": "",
"code": "9_BitsfWpJbShoy74lu-5",
"customFacilityName": "",
"customFacilityNameEn": "",
"abbreviation": "fwt",
"filePath": "/iotFile/saas/20230602/mnj4iHDnTbxx7SaYu9naD.png"
},
{
"name": "停车场",
"nameEn": "",
"code": "5-dKYo0_dOe9AtuDESAH1",
"customFacilityName": "",
"customFacilityNameEn": "",
"abbreviation": "tcc",
"filePath": "/iotFile/saas/20230602/5YOnznceV6MoLMbjysHdG.png"
}
]
}

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

@ -6,18 +6,19 @@
"id": 108, "id": 108,
"title": "服务1", "title": "服务1",
"content": { "content": {
"name": "服务设施测试名称服务设施测试名称服务设施测试名称",
"name": "111服务设施测试名称服务设施测试名称服务设施测试名称",
"nameEn": "ljgdsfl lsakjfdl\nlksadjflssadf lsadfj", "nameEn": "ljgdsfl lsakjfdl\nlksadjflssadf lsadfj",
"content": "借号阿斯蒂芬拉萨客服经理手打就发了水电费吉林省就发了独守空房蓝思科技烦死了地方\n离开时间弗利萨大姐夫ls索拉卡大飞机雷克萨戴假发\n\n索拉卡范德萨解放东路吉林省\n索拉卡党风建设两地分居\n索拉卡动静分离萨克大飞机\n离开时间弗利萨大姐夫ls索拉卡大飞机雷克萨戴假发\n\n索拉卡范德萨解放东路吉林省\n索拉卡党风建设两地分居\n索拉卡动静分离萨克大飞机\n离开时间弗利萨大姐夫ls索拉卡大飞机雷克萨戴假发\n\n索拉卡范德萨解放东路吉林省\n索拉卡党风建设两地分居\n索拉卡动静分离萨克大飞机\n离开时间弗利萨大姐夫ls索拉卡大飞机雷克萨戴假发\n\n索拉卡范德萨解放东路吉林省\n索拉卡党风建设两地分居\n索拉卡动静分离萨克大飞机\n离开时间弗利萨大姐夫ls索拉卡大飞机雷克萨戴假发\n\n索拉卡范德萨解放东路吉林省\n索拉卡党风建设两地分居\n索拉卡动静分离萨克大飞机", "content": "借号阿斯蒂芬拉萨客服经理手打就发了水电费吉林省就发了独守空房蓝思科技烦死了地方\n离开时间弗利萨大姐夫ls索拉卡大飞机雷克萨戴假发\n\n索拉卡范德萨解放东路吉林省\n索拉卡党风建设两地分居\n索拉卡动静分离萨克大飞机\n离开时间弗利萨大姐夫ls索拉卡大飞机雷克萨戴假发\n\n索拉卡范德萨解放东路吉林省\n索拉卡党风建设两地分居\n索拉卡动静分离萨克大飞机\n离开时间弗利萨大姐夫ls索拉卡大飞机雷克萨戴假发\n\n索拉卡范德萨解放东路吉林省\n索拉卡党风建设两地分居\n索拉卡动静分离萨克大飞机\n离开时间弗利萨大姐夫ls索拉卡大飞机雷克萨戴假发\n\n索拉卡范德萨解放东路吉林省\n索拉卡党风建设两地分居\n索拉卡动静分离萨克大飞机\n离开时间弗利萨大姐夫ls索拉卡大飞机雷克萨戴假发\n\n索拉卡范德萨解放东路吉林省\n索拉卡党风建设两地分居\n索拉卡动静分离萨克大飞机",
"contentEn": "sklf sldfj sdfds sdfjiofldsfdsl oijffsofsfspdsnfvs fsldfjsdfowefjsdlfds sdfsafds fowi jfsldfjldsa jfoisafwofdslf jlsfdjsaofjwlfdsjf lsadfoisafj lds jldsf jsoa ", "contentEn": "sklf sldfj sdfds sdfjiofldsfdsl oijffsofsfspdsnfvs fsldfjsdfowefjsdlfds sdfsafds fowi jfsldfjldsa jfoisafwofdslf jlsfdjsaofjwlfdsjf lsadfoisafj lds jldsf jsoa ",
"point": "0_0_148",
"logo_code": [ "logo_code": [
"/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/Fx_J5f4tCbxX-adqu1Pld.jpg" "/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/Fx_J5f4tCbxX-adqu1Pld.jpg"
], ],
"file_code": [ "file_code": [
"/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/Ema4b9Ef8BIk_AFkGbrpU.jpg", "/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/Ema4b9Ef8BIk_AFkGbrpU.jpg",
"/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/69XuZLu78NcJNZ6Kuelna.jpg" "/iotFile/project-ey_fpaur6s6fkgvszywana/20230713/69XuZLu78NcJNZ6Kuelna.jpg"
]
],
"facilityCode": "wvbKjHPqqnbjxsXTlSfc1"
} }
}, },
{ {

27
public/static/offline/JSON/getSpecialIndustry.json

@ -0,0 +1,27 @@
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 250,
"title": "咖啡/甜品",
"content": {
"industry_id": "XTiJfbL_-Sy87Fw0dU7Tl"
}
},
{
"id": 251,
"title": "甜品",
"content": {
"industry_id": "hCGB5-YT7j2TpilgXONHT"
}
},
{
"id": 252,
"title": "健康食品/茶叶",
"content": {
"industry_id": "WDEyhFPf6tv_ejRrhV-sN"
}
}
]
}

24
src/components/ActivityDetail/ActivityDetail.vue

@ -2,7 +2,7 @@
<transition appear enter-active-class="animate__animated animate__fadeIn" leave-active-class="animate__animated animate__fadeOut"> <transition appear enter-active-class="animate__animated animate__fadeIn" leave-active-class="animate__animated animate__fadeOut">
<masker @click="close"> <masker @click="close">
<transition appear enter-active-class="animate__animated animate__fadeInUp" leave-active-class="animate__animated animate__zoomOut"> <transition appear enter-active-class="animate__animated animate__fadeInUp" leave-active-class="animate__animated animate__zoomOut">
<div class="act-info-container" :class="{ 'no-point': actInfo.point === '' }">
<div class="act-info-container" :class="{ 'no-point': isNoPoint }">
<div class="carousel"> <div class="carousel">
<swiper <swiper
:autoplay="{ :autoplay="{
@ -86,24 +86,28 @@ import masker from '@/base/Masker/Masker.vue'
import MarqueesVue from '@/base/Marquees/Marquees.vue' import MarqueesVue from '@/base/Marquees/Marquees.vue'
// import { useQRCode } from '@/composables/useQRCode' // import { useQRCode } from '@/composables/useQRCode'
import { useActivityNav } from '@/composables/useActivityNav' import { useActivityNav } from '@/composables/useActivityNav'
import { computed, ref, onMounted } from 'vue'
import { computed, ref, toRaw, onMounted } from 'vue'
import { useRootStore } from '@/store/root' import { useRootStore } from '@/store/root'
import { useSwitchLanguage } from '@/composables/useSwitchLanguage' import { useSwitchLanguage } from '@/composables/useSwitchLanguage'
import { useStatisticsModel } from '@/composables/useStatistics' import { useStatisticsModel } from '@/composables/useStatistics'
import { useFacilityNav } from '@/composables/useFacilityNav'
const store = useRootStore() const store = useRootStore()
const { switchLanguage } = useSwitchLanguage() const { switchLanguage } = useSwitchLanguage()
const qrDom = ref() const qrDom = ref()
const modules = [Autoplay, Pagination, EffectFade] const modules = [Autoplay, Pagination, EffectFade]
const { nav } = useActivityNav() const { nav } = useActivityNav()
const { handleFacility } = useFacilityNav() //
const getQRUrl = computed(() => { const getQRUrl = computed(() => {
return props.actInfo.qrFileUrl
return ''
}) })
const swiperList = computed(() => { const swiperList = computed(() => {
return props.actInfo.fileUrl return props.actInfo.fileUrl
}) })
const showGobtn = computed(() => { const showGobtn = computed(() => {
if (props.actInfo.point !== -1) {
if (props.actInfo.point.length || props.actInfo.facilityCode?.length) {
return true return true
} else if (props.actInfo.shopCode) { } else if (props.actInfo.shopCode) {
const shop = store.shopList.find(item => item.shopCode === props.actInfo.shopCode) const shop = store.shopList.find(item => item.shopCode === props.actInfo.shopCode)
@ -114,6 +118,9 @@ const showGobtn = computed(() => {
} }
return false return false
}) })
const isNoPoint = computed(() => {
return !props.actInfo.point && !props.actInfo.facilityCode
})
interface AItem { interface AItem {
actInfo: Activity actInfo: Activity
} }
@ -145,7 +152,14 @@ function close() {
}, 20) }, 20)
} }
function handleGo() { function handleGo() {
nav(props.actInfo)
if (props.actInfo.point.length) {
nav(props.actInfo)
} else if (props.actInfo.facilityCode?.length) {
const fac = store.facilityList.find(item => item.code === props.actInfo.facilityCode)
if (fac) {
handleFacility(toRaw(fac))
}
}
store.SET_SHOW_SEARCH(false) store.SET_SHOW_SEARCH(false)
} }
</script> </script>

7
src/components/Map/Map.vue

@ -90,9 +90,10 @@ function handleDetail() {
<style lang="scss" scoped> <style lang="scss" scoped>
#mapContainer { #mapContainer {
position: absolute; position: absolute;
right: 0;
width: 1432px;
height: 948px;
top: 152px;
right: 345px;
width: 1122px;
height: 676px;
} }
.map-flex { .map-flex {
display: flex; display: flex;

4
src/components/SearchResultList/SearchResultList.vue

@ -181,7 +181,7 @@ function handleActivity(item: Activity) {
color: #615c59; color: #615c59;
&:last-child { &:last-child {
width: 110px;
width: 150px;
height: 30px; height: 30px;
padding: 0; padding: 0;
margin-left: 0; margin-left: 0;
@ -205,7 +205,7 @@ function handleActivity(item: Activity) {
position: relative; position: relative;
overflow: hidden; overflow: hidden;
width: 822px; width: 822px;
height: 683px;
height: 680px;
padding-right: 24px; padding-right: 24px;
} }
.results { .results {

30
src/composables/useGuideFilterShop.ts

@ -3,7 +3,7 @@ import { useRootStore } from '@/store/root'
import { hideMapDialog } from '@/composables/useInitMap' import { hideMapDialog } from '@/composables/useInitMap'
export const useGuideFilterShop = () => { export const useGuideFilterShop = () => {
const store = useRootStore() const store = useRootStore()
const { shopList } = toRefs(store)
const { shopList, specialIndustryList } = toRefs(store)
const areaName = ref('全部区域') //区域选中索引 const areaName = ref('全部区域') //区域选中索引
const floorIdx = ref(6) //楼层选中索引 const floorIdx = ref(6) //楼层选中索引
@ -14,6 +14,23 @@ export const useGuideFilterShop = () => {
floorIdx.value = floorOrder floorIdx.value = floorOrder
selectedShopList.value = shopList.value.filter(item => item.floorOrder === floorOrder) selectedShopList.value = shopList.value.filter(item => item.floorOrder === floorOrder)
hideMapDialog() hideMapDialog()
if (floorOrder === 6) {
const art: any = document.getElementById('mapContainer')
art.style.width = '2244px'
art.style.height = '1352px'
art.style.right = '690px'
art.style.top = '304px'
window.Map_QM.changeWindowResize(2244, 1352)
} else {
const art: any = document.getElementById('mapContainer')
if (art.style.width !== '2864px') {
art.style.width = '2864px'
art.style.height = '1896px'
art.style.right = '0'
art.style.top = '0'
window.Map_QM.changeWindowResize(2864, 1896)
}
}
window.Map_QM.showFloor(floorOrder) window.Map_QM.showFloor(floorOrder)
} }
@ -32,7 +49,16 @@ export const useGuideFilterShop = () => {
// 筛选美食业态 // 筛选美食业态
function changeFoodShopList() { function changeFoodShopList() {
selectedShopList.value = shopList.value.filter(item => item.isSpecial)
selectedShopList.value = shopList.value.filter(item => {
let flag = false
for (let i = 0; i < specialIndustryList.value.length; i++) {
if (specialIndustryList.value[i].content.industry_id === item.industryFatherCode) {
flag = true
break
}
}
return flag
})
} }
return { areaName, floorIdx, selectedShopList, changeFloor, changeArea, changeFoodShopList } return { areaName, floorIdx, selectedShopList, changeFloor, changeArea, changeFoodShopList }

9
src/composables/useInitConfigAndMallInfo.ts

@ -3,7 +3,7 @@ import { getConfig, getFacilitiesList, getWeather, getColumnBtn } from '@/http/a
import { getShopAndBuildingList } from '@/http/api/shop' import { getShopAndBuildingList } from '@/http/api/shop'
import { getDeviceInfo } from '@/http/api/building' import { getDeviceInfo } from '@/http/api/building'
import { getArtWorkList } from '@/http/api/art' import { getArtWorkList } from '@/http/api/art'
import { getShopListByFloor, getShopListByIndustry, getBrandInfo } from '@/http/api/brand'
import { getShopListByFloor, getShopListByIndustry, getBrandInfo, getSpecialIndustry } from '@/http/api/brand'
import Message from '@/base/Message/Message' import Message from '@/base/Message/Message'
export const useInitConfigAndMallInfo = async () => { export const useInitConfigAndMallInfo = async () => {
@ -23,7 +23,8 @@ export const useInitConfigAndMallInfo = async () => {
_shopListByIndustry, _shopListByIndustry,
_brandInfo, _brandInfo,
_artWorkList, _artWorkList,
_colomList
_colomList,
_specialList
] = await Promise.all([ ] = await Promise.all([
getDeviceInfo(), getDeviceInfo(),
getShopAndBuildingList(), getShopAndBuildingList(),
@ -33,7 +34,8 @@ export const useInitConfigAndMallInfo = async () => {
getShopListByIndustry(), getShopListByIndustry(),
getBrandInfo(), getBrandInfo(),
getArtWorkList(), getArtWorkList(),
getColumnBtn()
getColumnBtn(),
getSpecialIndustry()
]) ])
const { shopList, buildingList } = _shopAndBuilding.data const { shopList, buildingList } = _shopAndBuilding.data
@ -47,6 +49,7 @@ export const useInitConfigAndMallInfo = async () => {
store.SET_WEATHER(_weather.data) store.SET_WEATHER(_weather.data)
store.SET_ART_PLACE_LIST(_artWorkList.data) store.SET_ART_PLACE_LIST(_artWorkList.data)
store.SET_COLUMN_LIST(_colomList.data) store.SET_COLUMN_LIST(_colomList.data)
store.SET_SPECIAL_LIST(_specialList.data)
} catch (error) { } catch (error) {
Message({ text: '初始化数据失败', type: 'success' }) Message({ text: '初始化数据失败', type: 'success' })
} }

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

@ -8,3 +8,6 @@ export const getShopListByFloor = () => request<{ list: GroupList }>({ url: `${P
export const getShopListByIndustry = () => export const getShopListByIndustry = () =>
request<{ list: GroupList }>({ url: `${PREFIX.STATIC_URL}/JSON/getBrandShopListByIndustryId.json` }) request<{ list: GroupList }>({ url: `${PREFIX.STATIC_URL}/JSON/getBrandShopListByIndustryId.json` })
// 获取特殊业态
export const getSpecialIndustry = () => request<SpecialIndustry[]>({ url: `${PREFIX.STATIC_URL}/JSON/getSpecialIndustry.json` })

4
src/store/root/actions.ts

@ -25,6 +25,7 @@ export interface Actions {
SET_SHOP_MAP(shopMap: ShopMap): void SET_SHOP_MAP(shopMap: ShopMap): void
SET_ART_PLACE_LIST(list: ArtPlace[]): void SET_ART_PLACE_LIST(list: ArtPlace[]): void
SET_MAP_PARK_LIST(list: string[]): void SET_MAP_PARK_LIST(list: string[]): void
SET_SPECIAL_LIST(list: SpecialIndustry[]): void
} }
export type GenActions = CreateActions<Root, State, Actions> export type GenActions = CreateActions<Root, State, Actions>
@ -92,5 +93,8 @@ export const actions: GenActions = {
}, },
SET_MAP_PARK_LIST(list) { SET_MAP_PARK_LIST(list) {
this.mapParkList = list this.mapParkList = list
},
SET_SPECIAL_LIST(list) {
this.specialIndustryList = list
} }
} }

4
src/store/root/state.ts

@ -21,6 +21,7 @@ export interface State {
shopMap: ShopMap // 店铺code与店铺信息集合 shopMap: ShopMap // 店铺code与店铺信息集合
artPlaceList: ArtPlace[] // 艺术装置集合 artPlaceList: ArtPlace[] // 艺术装置集合
mapParkList: string[] // 停车位列表 mapParkList: string[] // 停车位列表
specialIndustryList: SpecialIndustry[] // 特殊业态列表
} }
export const state = (): State => ({ export const state = (): State => ({
@ -43,5 +44,6 @@ export const state = (): State => ({
is4K: true, is4K: true,
shopMap: {} as ShopMap, shopMap: {} as ShopMap,
artPlaceList: [], artPlaceList: [],
mapParkList: []
mapParkList: [],
specialIndustryList: []
}) })

2
src/types/activity.d.ts

@ -19,4 +19,6 @@ declare interface Activity {
floorOrder?: number floorOrder?: number
point: string // 导航点 point: string // 导航点
shopCode: string //关联店铺code shopCode: string //关联店铺code
logoCode?: string //一些地方用到这个字段
facilityCode?: string //服务里需要这个字段
} }

8
src/types/industry.d.ts

@ -7,3 +7,11 @@ declare interface Industry {
industryList: Array<{ industryCode: string; industryName: string; shopNum: number }> industryList: Array<{ industryCode: string; industryName: string; shopNum: number }>
fileUrl?: string fileUrl?: string
} }
declare interface SpecialIndustry {
id: number
title: string
content: {
industry_id: string
}
}

2
src/views/Guide/ArtList.vue

@ -84,7 +84,7 @@ function show(item: Art, index: number) {
.lists { .lists {
display: grid; display: grid;
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr 1fr;
gap: 24px;
gap: 12px 24px;
grid-auto-flow: row; grid-auto-flow: row;
.item { .item {
@include fl(flex-start, flex-start); @include fl(flex-start, flex-start);

5
src/views/Service/Service.vue

@ -89,14 +89,15 @@ function handleSwitch(index: number) {
function getData() { function getData() {
getServeList().then(res => { getServeList().then(res => {
for (let t = 0; t < res.data.length; t++) { for (let t = 0; t < res.data.length; t++) {
const { name, nameEn, content, contentEn, file_code, point, logo_code } = res.data[t].content
const { name, nameEn, content, contentEn, file_code, logo_code, facilityCode } = res.data[t].content
serviceList.value.push({ serviceList.value.push({
id: res.data[t].id, id: res.data[t].id,
activityContent: content, activityContent: content,
activityContentEn: contentEn, activityContentEn: contentEn,
activityName: name, activityName: name,
activityNameEn: nameEn, activityNameEn: nameEn,
point,
point: '',
facilityCode,
logo_code, logo_code,
fileUrl: file_code ?? [], fileUrl: file_code ?? [],
shopCode: '' shopCode: ''

Loading…
Cancel
Save