Browse Source

艺术点位以及地图复位优化

test
李永乐 3 years ago
parent
commit
75f662251f
  1. 2
      .gitignore
  2. 12
      CHANGELOG.md
  3. 4
      package-lock.json
  4. 3
      package.json
  5. 2
      public/static/offline/JSON/GetMapInfo.json
  6. 3
      src/components/PublicComponent/PublicComponent.vue
  7. 21
      src/components/ShopDetail/ShopDetail.vue
  8. 3
      src/components/ShopItem/ShopItem.vue
  9. 4
      src/types/activity.d.ts
  10. 2
      src/types/art.d.ts
  11. 8
      src/views/Activity/Activity.vue
  12. 9
      src/views/Brand/filterFormatAndFloor.vue
  13. 4
      src/views/Brand/recommendShop.vue
  14. 3
      src/views/Brand/shopList.vue
  15. 7
      src/views/Guide/ArtList.vue
  16. 1
      src/views/Guide/Guide.vue
  17. 7
      src/views/Nav/Nav.vue
  18. 18
      src/views/Service/Service.vue

2
.gitignore

@ -1,7 +1,7 @@
.DS_Store .DS_Store
node_modules node_modules
/dist /dist
*.zip
# local env files # local env files
.env.local .env.local

12
CHANGELOG.md

@ -2,6 +2,18 @@
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.9](https://git.1000my.com/project-chengduSKP/cd_SKP_H_base_daoshi_vue_ts/compare/v1.0.0-B.8...v1.0.0-B.9) (2023-07-26)
### Bug Fixes
* 🧩 区域等优化 ([14a9b7f](https://git.1000my.com/project-chengduSKP/cd_SKP_H_base_daoshi_vue_ts/commit/14a9b7f876ce9416fe7bb65c6fc345332dae9dc7))
* 🧩 相关优化 ([8ad9a29](https://git.1000my.com/project-chengduSKP/cd_SKP_H_base_daoshi_vue_ts/commit/8ad9a29ca3e44738f3811a5a3c3b2ceba1d86545))
* 🧩 艺术点位优化 ([42e1426](https://git.1000my.com/project-chengduSKP/cd_SKP_H_base_daoshi_vue_ts/commit/42e14268a4dea7fbe1f0e3c77c6e2395f00e9e7d))
* 🧩 优化艺术装置 ([32d7765](https://git.1000my.com/project-chengduSKP/cd_SKP_H_base_daoshi_vue_ts/commit/32d7765828016f7d0d533bd863b2a3234a68ff5d))
* 修改服务增加滚动条,修改品牌楼层菜单位置,修改推荐店铺的滑动速度 ([176c691](https://git.1000my.com/project-chengduSKP/cd_SKP_H_base_daoshi_vue_ts/commit/176c6918c51089da3027646d0976f2301c45dc3c))
* 修改问题 ([84833d4](https://git.1000my.com/project-chengduSKP/cd_SKP_H_base_daoshi_vue_ts/commit/84833d4c1845365c18f6cfb67ddaf3c60e48384c))
## [1.0.0-B.8](https://git.1000my.com/project-chengduSKP/cd_SKP_H_base_daoshi_vue_ts/compare/v1.0.0-B.7...v1.0.0-B.8) (2023-07-24) ## [1.0.0-B.8](https://git.1000my.com/project-chengduSKP/cd_SKP_H_base_daoshi_vue_ts/compare/v1.0.0-B.7...v1.0.0-B.8) (2023-07-24)

4
package-lock.json

@ -1,12 +1,12 @@
{ {
"name": "vue_cli_ts", "name": "vue_cli_ts",
"version": "1.0.0-B.8",
"version": "1.0.0-B.9",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "vue_cli_ts", "name": "vue_cli_ts",
"version": "1.0.0-B.8",
"version": "1.0.0-B.9",
"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",

3
package.json

@ -1,6 +1,6 @@
{ {
"name": "vue_cli_ts", "name": "vue_cli_ts",
"version": "1.0.0-B.8",
"version": "1.0.0-B.9",
"private": true, "private": true,
"scripts": { "scripts": {
"serve": "vue-cli-service serve", "serve": "vue-cli-service serve",
@ -10,7 +10,6 @@
"stylelint": "stylelint \"./**/*.{css,scss,sass,vue,html}\"", "stylelint": "stylelint \"./**/*.{css,scss,sass,vue,html}\"",
"stylelint:fix": "stylelint \"./**/*.{css,scss,sass,vue,html}\" --fix", "stylelint:fix": "stylelint \"./**/*.{css,scss,sass,vue,html}\" --fix",
"prettier": "prettier --write .", "prettier": "prettier --write .",
"prepare": "husky install",
"commit": "git add . && git cz", "commit": "git add . && git cz",
"changelog": "standard-version", "changelog": "standard-version",
"release:first": "standard-version --release-as 1.0.0-B.1", "release:first": "standard-version --release-as 1.0.0-B.1",

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

File diff suppressed because one or more lines are too long

3
src/components/PublicComponent/PublicComponent.vue

@ -83,6 +83,9 @@ watch(route, to => {
art.style.right = '0' art.style.right = '0'
art.style.top = '0' art.style.top = '0'
window.Map_QM.changeWindowResize(2864, 1896) window.Map_QM.changeWindowResize(2864, 1896)
if (store.currentArtName) {
store.SET_CURRENT_ART_NAME('')
}
} }
} else { } else {
window?.Map_QM?.cancelRender() window?.Map_QM?.cancelRender()

21
src/components/ShopDetail/ShopDetail.vue

@ -32,12 +32,7 @@
<!-- logo 名称 属性--> <!-- logo 名称 属性-->
<div class="name-wrapper"> <div class="name-wrapper">
<div class="logo-wrapper"> <div class="logo-wrapper">
<img
v-if="shop.logoUrl"
class="shop-logo"
:src="shop.logoUrl.search(config.sourceUrl) >= 0 ? shop.logoUrl : config.sourceUrl + shop.logoUrl"
alt=""
/>
<img v-if="shop.logoUrl" class="shop-logo" :src="shop.logoUrl" alt="" />
<img v-else class="shop-logo" src="@/assets/images/empty_small.svg" alt="" /> <img v-else class="shop-logo" src="@/assets/images/empty_small.svg" alt="" />
</div> </div>
<div class="marquee-wrapper"> <div class="marquee-wrapper">
@ -110,29 +105,35 @@ import 'swiper/css/effect-fade'
import scrollView from '@/base/ScrollView/ScrollView.vue' import scrollView from '@/base/ScrollView/ScrollView.vue'
import masker from '@/base/Masker/Masker.vue' import masker from '@/base/Masker/Masker.vue'
import marquees from '@/base/Marquees/Marquees.vue' import marquees from '@/base/Marquees/Marquees.vue'
import { useRouter } from 'vue-router'
import { useRouter, useRoute } from 'vue-router'
import { useStatistics } from '@/composables/useStatistics' import { useStatistics } from '@/composables/useStatistics'
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
import { useRootStore } from '@/store/root' import { useRootStore } from '@/store/root'
import { computed, ref } from 'vue'
import { ref, toRaw } from 'vue'
import { useSwitchLanguage } from '@/composables/useSwitchLanguage' import { useSwitchLanguage } from '@/composables/useSwitchLanguage'
const { switchLanguage } = useSwitchLanguage() const { switchLanguage } = useSwitchLanguage()
const store = useRootStore() const store = useRootStore()
const { shop, config } = storeToRefs(store)
const { shop, config, prevShop } = storeToRefs(store)
const router = useRouter() const router = useRouter()
const route = useRoute()
const modules = [Autoplay, Pagination, EffectFade] const modules = [Autoplay, Pagination, EffectFade]
const marqueesRef = ref() const marqueesRef = ref()
const activityList = computed(() => shop.value.activityList)
// const activityList = computed(() => shop.value.activityList)
// //
function close() { function close() {
if (route.fullPath === '/nav') {
console.log('prevShop.value.shopName :>> ', prevShop.value.shopName)
store.SET_SHOP(toRaw(prevShop.value))
}
store.SET_SHOW_DETAIL(false) store.SET_SHOW_DETAIL(false)
} }
// //
function handleGo() { function handleGo() {
store.SET_SHOW_DETAIL(false) store.SET_SHOW_DETAIL(false)
store.SET_SHOW_SEARCH(false) store.SET_SHOW_SEARCH(false)
store.SET_SHOW_COLUMNLIST(false)
router.push('/nav') router.push('/nav')
} }

3
src/components/ShopItem/ShopItem.vue

@ -29,7 +29,10 @@ defineProps<Prop>()
const { switchLanguage } = useSwitchLanguage() const { switchLanguage } = useSwitchLanguage()
const store = useRootStore() const store = useRootStore()
const { language } = storeToRefs(store) const { language } = storeToRefs(store)
import { hideMapDialog } from '@/composables/useInitMap'
function showDetail(shop: Shop) { function showDetail(shop: Shop) {
hideMapDialog()
store.SET_SHOP(shop) store.SET_SHOP(shop)
store.SET_SHOW_DETAIL(true) store.SET_SHOW_DETAIL(true)
} }

4
src/types/activity.d.ts

@ -11,14 +11,12 @@ declare interface Activity {
buildingCode?: string buildingCode?: string
startDate?: string //开始日期 startDate?: string //开始日期
endDate?: string //结束日期 endDate?: string //结束日期
limitStartDate?: string //上线开始日期
limitEndDate?: string //下线结束日期
fileUrl: string[] //封面 fileUrl: string[] //封面
fileUrls?: string[] //活动详情图片列表 fileUrls?: string[] //活动详情图片列表
floor?: string //楼层 floor?: string //楼层
floorOrder?: number floorOrder?: number
point: string // 导航点 point: string // 导航点
shopCode: string //关联店铺code shopCode: string //关联店铺code
logoCode?: string //一些地方用到这个字段
logo_code?: string //一些地方用到这个字段
facilityCode?: string //服务里需要这个字段 facilityCode?: string //服务里需要这个字段
} }

2
src/types/art.d.ts

@ -5,6 +5,8 @@ declare type Art = {
name: string name: string
nameEn: string nameEn: string
point: string point: string
pointNav: string
logoUrl: string
} }
} }

8
src/views/Activity/Activity.vue

@ -127,14 +127,8 @@ function getData(type: 'mall' | 'shop') {
const fun = type === 'mall' ? getMallActivity() : getShopActivity() const fun = type === 'mall' ? getMallActivity() : getShopActivity()
fun.then(res => { fun.then(res => {
// actList.value = res.data ?? [] // actList.value = res.data ?? []
const nowDate = new Date()
for (let t = 0; t < res.data.length; t++) { for (let t = 0; t < res.data.length; t++) {
const ele = res.data[t]
const limitStartDate = new Date(ele.content.limitStartDate)
const limitEndDate = new Date(ele.content.limitEndDate)
if (nowDate.getTime() >= limitStartDate.getTime() && nowDate.getTime() < limitEndDate.getTime()) {
actList.value.push({ id: ele.id, ...ele.content })
}
actList.value.push({ id: res.data[t].id, ...res.data[t].content })
} }
showList.value = true showList.value = true
}) })

9
src/views/Brand/filterFormatAndFloor.vue

@ -4,10 +4,11 @@
<div <div
v-for="(item, index) of copyList" v-for="(item, index) of copyList"
:key="item.industryCode" :key="item.industryCode"
:style="{ height: index === active ? 'fit-content' : '' }"
:style="{ height: index === active ? 'fit-content' : item.shopNum === 0 ? '0px' : '' }"
class="filter-div-f" class="filter-div-f"
> >
<div <div
v-show="item.shopNum > 0"
ref="filterDivEl" ref="filterDivEl"
class="filter-div" class="filter-div"
:class="{ 'filter-active': active == index && activeSon === -1 }" :class="{ 'filter-active': active == index && activeSon === -1 }"
@ -95,6 +96,10 @@ import { computed, ref, nextTick } from 'vue'
import scrollView from '@/base/ScrollView/ScrollView.vue' import scrollView from '@/base/ScrollView/ScrollView.vue'
import { useSwitchLanguage } from '@/composables/useSwitchLanguage' import { useSwitchLanguage } from '@/composables/useSwitchLanguage'
import { storeToRefs } from 'pinia'
import { useRootStore } from '@/store/root'
const store = useRootStore()
const { shopList } = storeToRefs(store)
const { switchLanguage } = useSwitchLanguage() const { switchLanguage } = useSwitchLanguage()
type Props = { type Props = {
list: Industry[] list: Industry[]
@ -120,7 +125,7 @@ const copyList = computed(() => {
industryCode: 0, industryCode: 0,
industryName: '全部品牌', industryName: '全部品牌',
industryNameEn: '', industryNameEn: '',
shopNum: 0,
shopNum: shopList.value.length,
industryList: [] industryList: []
}, },
...props.list ...props.list

4
src/views/Brand/recommendShop.vue

@ -28,7 +28,9 @@
: false : false
" "
:free-mode="{ :free-mode="{
enabled: true
enabled: true,
momentumRatio: 0.2,
momentumVelocityRatio: 0.2
}" }"
:enabled="recList.length > 3" :enabled="recList.length > 3"
:loop="recList.length > 3" :loop="recList.length > 3"

3
src/views/Brand/shopList.vue

@ -383,10 +383,11 @@ function myScrollEnd() {
padding-left: 0; padding-left: 0;
.right-control-area { .right-control-area {
position: absolute; position: absolute;
top: 134px;
right: 0; right: 0;
width: 230px; width: 230px;
height: 622px; height: 622px;
margin-top: 134px;
margin-top: 0;
margin-left: 28px; margin-left: 28px;
.format-items { .format-items {

7
src/views/Guide/ArtList.vue

@ -49,20 +49,21 @@ function show(item: Art, index: number) {
current.value = index current.value = index
// //
const poi = item.content.point.split('_') const poi = item.content.point.split('_')
const poi_nav = item.content.pointNav.split('_')
hideMapDialog() hideMapDialog()
window.Map_QM.addElementByNode(document.getElementById('artInfo'), Number(poi[2])) window.Map_QM.addElementByNode(document.getElementById('artInfo'), Number(poi[2]))
const art: any = document.getElementById('artInfo') const art: any = document.getElementById('artInfo')
art.style.visibility = 'visible' art.style.visibility = 'visible'
const floors = store.currentBuildingFloorsList.filter(item => item.floorOrder === Number(poi[1]))
const floors = store.currentBuildingFloorsList.filter(item => item.floorOrder === Number(poi_nav[1]))
const shop = { const shop = {
shopCode: index + 1, shopCode: index + 1,
shopName: item.content.name, shopName: item.content.name,
shopNameEn: item.content.nameEn, shopNameEn: item.content.nameEn,
floorOrder: floors[0].floorOrder, floorOrder: floors[0].floorOrder,
floor: floors[0].floor, floor: floors[0].floor,
logoUrl: '',
yaxis: Number(poi[2])
logoUrl: item.content.logoUrl,
yaxis: Number(poi_nav[2])
} }
store.SET_SHOP(shop) store.SET_SHOP(shop)
} }

1
src/views/Guide/Guide.vue

@ -133,6 +133,7 @@ getAreaPicList().then(({ data }) => {
function changeFloors(floorOrder: number) { function changeFloors(floorOrder: number) {
changeFloor(floorOrder) changeFloor(floorOrder)
mapIdx.value = -2 mapIdx.value = -2
areaName.value = '全部区域'
currentArtName.value && store.SET_CURRENT_ART_NAME('') currentArtName.value && store.SET_CURRENT_ART_NAME('')
} }

7
src/views/Nav/Nav.vue

@ -145,7 +145,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onUnmounted, ref, watch } from 'vue'
import { ref, watch } from 'vue'
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
import { useRootStore } from '@/store/root' import { useRootStore } from '@/store/root'
import { useMapNavControl } from '@/composables/useMapNavControl' import { useMapNavControl } from '@/composables/useMapNavControl'
@ -212,9 +212,6 @@ if (showSearch.value) {
watch(shop, newVal => { watch(shop, newVal => {
startNavi({ ...newVal }) startNavi({ ...newVal })
if (showColumnList.value) {
showColumnList.value = false
}
}) })
const art: any = document.getElementById('mapContainer') const art: any = document.getElementById('mapContainer')
@ -518,8 +515,6 @@ window.Map_QM.changeWindowResize(2528, 1896)
width: 132px; width: 132px;
height: 132px; height: 132px;
animation-duration: 1s; animation-duration: 1s;
animation-duration: 1s;
animation-fill-mode: both;
animation-fill-mode: both; animation-fill-mode: both;
animation-iteration-count: infinite; animation-iteration-count: infinite;
} }

18
src/views/Service/Service.vue

@ -18,7 +18,7 @@
<!-- 顧客心聲 --> <!-- 顧客心聲 -->
<PictureText v-if="switchIdx === 1" :ac-list="customerVoiceList" :qr-list="qrCodeList" /> <PictureText v-if="switchIdx === 1" :ac-list="customerVoiceList" :qr-list="qrCodeList" />
<!-- 服务 --> <!-- 服务 -->
<ScrollView v-else ref="actScroll" :list="serviceList" :refresh-delay="200" class="service-scroll" scroll-x>
<ScrollView v-else ref="actScroll" :list="serviceList" :refresh-delay="200" :scrollbar="true" class="service-scroll" scroll-x>
<div style="display: inline-block"> <div style="display: inline-block">
<ul class="act-list"> <ul class="act-list">
<serviceItem v-for="(item, index) in serviceList" :key="index" :service-item="item" @click="clickItem"></serviceItem> <serviceItem v-for="(item, index) in serviceList" :key="index" :service-item="item" @click="clickItem"></serviceItem>
@ -126,6 +126,18 @@ getData()
// border-radius: 6px !important; // border-radius: 6px !important;
// } // }
// } // }
:deep(.bscroll-horizontal-scrollbar) {
z-index: 3 !important;
width: 500px !important;
background: rgb(0 0 0 / 10%);
border-radius: 6px;
opacity: 1 !important;
.bscroll-indicator {
background: #e00068 !important;
border: none !important;
border-radius: 6px !important;
}
}
.service-container { .service-container {
overflow: hidden; overflow: hidden;
padding-top: 152px; padding-top: 152px;
@ -136,7 +148,7 @@ getData()
.service-scroll { .service-scroll {
position: relative; position: relative;
overflow: hidden; overflow: hidden;
width: 1828px;
width: 1860.5px;
height: 615px; height: 615px;
margin-top: 40px; margin-top: 40px;
margin-left: 0; margin-left: 0;
@ -149,7 +161,7 @@ getData()
display: grid; display: grid;
grid-template-rows: 1fr 1fr; grid-template-rows: 1fr 1fr;
grid-auto-flow: column; grid-auto-flow: column;
gap: 16px 16px;
gap: 12px 12px;
} }
} }
} }

Loading…
Cancel
Save