Sfoglia il codice sorgente

修复pc端路径跳转问题

xiebaomin 2 anni fa
parent
commit
36283eab8f

+ 10 - 0
apis/module/auth.js

@@ -1,3 +1,11 @@
+/*
+ * @Author: xiebaomin 1771403033@qq.com
+ * @Date: 2023-03-29 13:50:40
+ * @LastEditors: xiebaomin 1771403033@qq.com
+ * @LastEditTime: 2023-04-12 20:19:04
+ * @FilePath: \caimei-authentic-www\apis\module\auth.js
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
 export default ($axios) => {
 export default ($axios) => {
     const authApis = {}
     const authApis = {}
 
 
@@ -58,5 +66,7 @@ export default ($axios) => {
     // 获取机构已认证设备
     // 获取机构已认证设备
     authApis.fetchClubAuthProductList = (params = {}) => $axios.get('/wx/auth/get/product/list', { params })
     authApis.fetchClubAuthProductList = (params = {}) => $axios.get('/wx/auth/get/product/list', { params })
 
 
+    // 获取首页banner
+    authApis.bannerImg = (params = {}) => $axios.get(`/wx/banner/form/data?authUserId=${params}`)
     return authApis
     return authApis
 }
 }

+ 49 - 1
pages/_template/app/index.vue

@@ -7,7 +7,7 @@
       :finished-text="total ? '没有更多了' : ''"
       :finished-text="total ? '没有更多了' : ''"
       @load="fetchClubList"
       @load="fetchClubList"
     >
     >
-      <div class="page-top flex flex-col justify-center items-center"></div>
+      <div class="page-top flex flex-col justify-center items-center" @click="toActivity"></div>
       <div class="page-content">
       <div class="page-content">
         <div
         <div
           class="navbar flex items-center flex-col"
           class="navbar flex items-center flex-col"
@@ -126,6 +126,8 @@ export default {
   data() {
   data() {
     return {
     return {
       scrollTop: 0,
       scrollTop: 0,
+      banner: {},
+      screenWidth: ""
     }
     }
   },
   },
   computed: {
   computed: {
@@ -135,15 +137,50 @@ export default {
       return 240 + this.scrollTop - window.innerHeight / 2 + 'px'
       return 240 + this.scrollTop - window.innerHeight / 2 + 'px'
     },
     },
   },
   },
+  watch: {
+    screenWidth: {
+      handler(val) {
+        const changeBanner = document.getElementsByClassName('page-top')[0]
+        if (changeBanner) {
+          if (val > 768) {
+            if(this.banner.headPcBanner) {
+              changeBanner.style.backgroundImage = 'url('+ this.banner.headPcBanner+ ')'
+            }
+          }else {
+            if(this.banner.headAppBanner) {
+              changeBanner.style.backgroundImage = 'url('+ this.banner.headAppBanner+ ')'
+            }
+          }
+        }
+      },
+      immediate: true,
+      deep: true
+    }
+  },
   mounted() {
   mounted() {
     window.addEventListener('scroll', () => {
     window.addEventListener('scroll', () => {
       this.scrollTop = document.documentElement.scrollTop
       this.scrollTop = document.documentElement.scrollTop
     })
     })
+    window.addEventListener('scroll', () => {
+      this.scrollTop = document.documentElement.scrollTop
+    })
+    this.getBanner() // 获取轮播图
+    // 监听页面尺寸变化
+    this.screenWidth = document.body.clientWidth
+    window.onresize = () => {
+      return (() => {
+        this.screenWidth = document.body.clientWidth
+      })()
+    }
   },
   },
   beforeDestroy() {
   beforeDestroy() {
     window.removeEventListener('scroll', () => {})
     window.removeEventListener('scroll', () => {})
   },
   },
   methods: {
   methods: {
+    // 抖音挑战赛
+    toActivity() {
+      this.banner.jumpLink && this.$router.push(this.banner.jumpLink)
+    },
     // 从缓存中获取数据
     // 从缓存中获取数据
     initFromCache(cacheData) {
     initFromCache(cacheData) {
       const data = objectCover(this, cacheData)
       const data = objectCover(this, cacheData)
@@ -165,6 +202,17 @@ export default {
       this.listQuery.townId = townId
       this.listQuery.townId = townId
       this.filterClubList()
       this.filterClubList()
     },
     },
+    // banner
+    async getBanner() {
+      const { data } = await this.$http.api.bannerImg(this.authUserId)
+      this.banner = data
+      const changeBanner = document.getElementsByClassName('page-top')[0]
+      if (this.screenWidth > 768) {
+        this.banner.headPcBanner && (changeBanner.style.backgroundImage = 'url('+ this.banner.headPcBanner+ ')')
+      }else {
+        this.banner.headAppBanner && (changeBanner.style.backgroundImage = 'url('+ this.banner.headAppBanner+ ')')
+      }
+    },
   },
   },
 }
 }
 </script>
 </script>

+ 49 - 1
pages/_template/hyt/index.vue

@@ -7,7 +7,7 @@
       :finished-text="total ? '没有更多了' : ''"
       :finished-text="total ? '没有更多了' : ''"
       @load="fetchClubList"
       @load="fetchClubList"
     >
     >
-      <div class="page-top flex flex-col justify-center items-center"></div>
+      <div class="page-top flex flex-col justify-center items-center" @click="toActivity"></div>
       <div class="page-content">
       <div class="page-content">
         <div
         <div
           class="navbar flex items-center flex-col"
           class="navbar flex items-center flex-col"
@@ -126,6 +126,8 @@ export default {
   data() {
   data() {
     return {
     return {
       scrollTop: 0,
       scrollTop: 0,
+      banner: {},
+      screenWidth: ""
     }
     }
   },
   },
   computed: {
   computed: {
@@ -135,15 +137,50 @@ export default {
       return 240 + this.scrollTop - window.innerHeight / 2 + 'px'
       return 240 + this.scrollTop - window.innerHeight / 2 + 'px'
     },
     },
   },
   },
+  watch: {
+    screenWidth: {
+      handler(val) {
+        const changeBanner = document.getElementsByClassName('page-top')[0]
+        if (changeBanner) {
+          if (val > 768) {
+            if(this.banner.headPcBanner) {
+              changeBanner.style.backgroundImage = 'url('+ this.banner.headPcBanner+ ')'
+            }
+          }else {
+            if(this.banner.headAppBanner) {
+              changeBanner.style.backgroundImage = 'url('+ this.banner.headAppBanner+ ')'
+            }
+          }
+        }
+      },
+      immediate: true,
+      deep: true
+    }
+  },
   mounted() {
   mounted() {
     window.addEventListener('scroll', () => {
     window.addEventListener('scroll', () => {
       this.scrollTop = document.documentElement.scrollTop
       this.scrollTop = document.documentElement.scrollTop
     })
     })
+    window.addEventListener('scroll', () => {
+      this.scrollTop = document.documentElement.scrollTop
+    })
+    this.getBanner() // 获取轮播图
+    // 监听页面尺寸变化
+    this.screenWidth = document.body.clientWidth
+    window.onresize = () => {
+      return (() => {
+        this.screenWidth = document.body.clientWidth
+      })()
+    }
   },
   },
   beforeDestroy() {
   beforeDestroy() {
     window.removeEventListener('scroll', () => {})
     window.removeEventListener('scroll', () => {})
   },
   },
   methods: {
   methods: {
+    // 抖音挑战赛
+    toActivity() {
+      this.banner.jumpLink && this.$router.push(this.banner.jumpLink)
+    },
     // 从缓存中获取数据
     // 从缓存中获取数据
     initFromCache(cacheData) {
     initFromCache(cacheData) {
       const data = objectCover(this, cacheData)
       const data = objectCover(this, cacheData)
@@ -165,6 +202,17 @@ export default {
       this.listQuery.townId = townId
       this.listQuery.townId = townId
       this.filterClubList()
       this.filterClubList()
     },
     },
+    // banner
+    async getBanner() {
+      const { data } = await this.$http.api.bannerImg(this.authUserId)
+      this.banner = data
+      const changeBanner = document.getElementsByClassName('page-top')[0]
+      if (this.screenWidth > 768) {
+        this.banner.headPcBanner && (changeBanner.style.backgroundImage = 'url('+ this.banner.headPcBanner+ ')')
+      }else {
+        this.banner.headAppBanner && (changeBanner.style.backgroundImage = 'url('+ this.banner.headAppBanner+ ')')
+      }
+    },
   },
   },
 }
 }
 </script>
 </script>

+ 51 - 2
pages/_template/ldm/index.vue

@@ -1,6 +1,6 @@
 <template>
 <template>
   <div class="page">
   <div class="page">
-    <div class="page-top">
+    <div class="page-top" @click="toActivity">
       <img class="logo" :src="logoImage" alt="" />
       <img class="logo" :src="logoImage" alt="" />
     </div>
     </div>
     <div class="page-content">
     <div class="page-content">
@@ -38,6 +38,8 @@ export default {
     return {
     return {
       logoImage: '',
       logoImage: '',
       list: [],
       list: [],
+      banner: {},
+      screenWidth: ""
     }
     }
   },
   },
   asyncData({ store }) {
   asyncData({ store }) {
@@ -61,15 +63,51 @@ export default {
     }
     }
   },
   },
 
 
+  watch: {
+    screenWidth: {
+      handler(val) {
+        const changeBanner = document.getElementsByClassName('page-top')[0]
+        if (changeBanner) {
+          if (val > 768) {
+            if(this.banner.headPcBanner) {
+              changeBanner.style.backgroundImage = 'url('+ this.banner.headPcBanner+ ')'
+            }
+          }else {
+            if(this.banner.headAppBanner) {
+              changeBanner.style.backgroundImage = 'url('+ this.banner.headAppBanner+ ')'
+            }
+          }
+        }
+      },
+      immediate: true,
+      deep: true
+    }
+  },
   computed: {
   computed: {
     ...mapGetters(['authUserId', 'appId', 'routePrefix', 'accountType']),
     ...mapGetters(['authUserId', 'appId', 'routePrefix', 'accountType']),
   },
   },
-
+  mounted() {
+    window.addEventListener('scroll', () => {
+      this.scrollTop = document.documentElement.scrollTop
+    })
+    this.getBanner() // 获取轮播图
+    // 监听页面尺寸变化
+    this.screenWidth = document.body.clientWidth
+    window.onresize = () => {
+      return (() => {
+        this.screenWidth = document.body.clientWidth
+      })()
+    }
+  },
   beforeDestroy() {
   beforeDestroy() {
     this.$removeStorage(this.routePrefix, 'login_redicret')
     this.$removeStorage(this.routePrefix, 'login_redicret')
   },
   },
 
 
   methods: {
   methods: {
+    // 抖音挑战赛
+    toActivity() {
+      this.banner.jumpLink && this.$router.push(this.banner.jumpLink)
+    },
     toDetail(item) {
     toDetail(item) {
       // 保存登录重定向路由
       // 保存登录重定向路由
       this.$setStorage(
       this.$setStorage(
@@ -95,6 +133,17 @@ export default {
       const url = this.routePrefix + item.path
       const url = this.routePrefix + item.path
       this.$router.push(url)
       this.$router.push(url)
     },
     },
+    // banner
+    async getBanner() {
+      const { data } = await this.$http.api.bannerImg(this.authUserId)
+      this.banner = data
+      const changeBanner = document.getElementsByClassName('page-top')[0]
+      if (this.screenWidth > 768) {
+        this.banner.headPcBanner && (changeBanner.style.backgroundImage = 'url('+ this.banner.headPcBanner+ ')')
+      }else {
+        this.banner.headAppBanner && (changeBanner.style.backgroundImage = 'url('+ this.banner.headAppBanner+ ')')
+      }
+    },
   },
   },
 }
 }
 </script>
 </script>

+ 51 - 1
pages/_template/ph/index.vue

@@ -1,6 +1,6 @@
 <template>
 <template>
   <div class="page">
   <div class="page">
-    <div class="page-top flex flex-col justify-center items-center">
+    <div class="page-top flex flex-col justify-center items-center" @click="toActivity">
       <!-- <img class="logo" :src="supplierInfo.logo" /> -->
       <!-- <img class="logo" :src="supplierInfo.logo" /> -->
       <div class="name mt-2" v-text="supplierInfo.shopName"></div>
       <div class="name mt-2" v-text="supplierInfo.shopName"></div>
     </div>
     </div>
@@ -33,6 +33,8 @@ export default {
   data() {
   data() {
     return {
     return {
       list: [],
       list: [],
+      banner: {},
+      screenWidth: ""
     }
     }
   },
   },
   computed: {
   computed: {
@@ -44,13 +46,50 @@ export default {
       'accountType',
       'accountType',
     ]),
     ]),
   },
   },
+  watch: {
+    screenWidth: {
+      handler(val) {
+        const changeBanner = document.getElementsByClassName('page-top')[0]
+        if (changeBanner) {
+          if (val > 768) {
+            if(this.banner.headPcBanner) {
+              changeBanner.style.backgroundImage = 'url('+ this.banner.headPcBanner+ ')'
+            }
+          }else {
+            if(this.banner.headAppBanner) {
+              changeBanner.style.backgroundImage = 'url('+ this.banner.headAppBanner+ ')'
+            }
+          }
+        }
+      },
+      immediate: true,
+      deep: true
+    }
+  },
   created() {
   created() {
     this.initEntryItems()
     this.initEntryItems()
   },
   },
+  mounted() {
+    window.addEventListener('scroll', () => {
+      this.scrollTop = document.documentElement.scrollTop
+    })
+    this.getBanner() // 获取轮播图
+    // 监听页面尺寸变化
+    this.screenWidth = document.body.clientWidth
+    window.onresize = () => {
+      return (() => {
+        this.screenWidth = document.body.clientWidth
+      })()
+    }
+  },
   beforeDestroy() {
   beforeDestroy() {
     this.$removeStorage(this.routePrefix, 'login_redicret')
     this.$removeStorage(this.routePrefix, 'login_redicret')
   },
   },
   methods: {
   methods: {
+    // 抖音挑战赛
+    toActivity() {
+      this.banner.jumpLink && this.$router.push(this.banner.jumpLink)
+    },
     // 初始化入口图标
     // 初始化入口图标
     initEntryItems() {
     initEntryItems() {
       this.list = [
       this.list = [
@@ -121,6 +160,17 @@ export default {
       if (!isPc) return
       if (!isPc) return
       item.active = false
       item.active = false
     },
     },
+    // banner
+    async getBanner() {
+      const { data } = await this.$http.api.bannerImg(this.authUserId)
+      this.banner = data
+      const changeBanner = document.getElementsByClassName('page-top')[0]
+      if (this.screenWidth > 768) {
+        this.banner.headPcBanner && (changeBanner.style.backgroundImage = 'url('+ this.banner.headPcBanner+ ')')
+      }else {
+        this.banner.headAppBanner && (changeBanner.style.backgroundImage = 'url('+ this.banner.headAppBanner+ ')')
+      }
+    },
   },
   },
 }
 }
 </script>
 </script>

+ 45 - 4
pages/_template/ross/index.vue

@@ -104,10 +104,12 @@ export default {
   data() {
   data() {
     return {
     return {
       scrollTop: 0,
       scrollTop: 0,
+      banner: {},
+      screenWidth: ""
     }
     }
   },
   },
   computed: {
   computed: {
-    ...mapGetters(['screenWidth', 'isPc']),
+    ...mapGetters(['screenWidth', 'isPc', 'authUserId']),
     offsetTop() {
     offsetTop() {
       if (this.scrollTop <= window.innerHeight / 2) return '10px'
       if (this.scrollTop <= window.innerHeight / 2) return '10px'
       return 10 + this.scrollTop - window.innerHeight / 2 + 'px'
       return 10 + this.scrollTop - window.innerHeight / 2 + 'px'
@@ -117,17 +119,44 @@ export default {
     window.addEventListener('scroll', () => {
     window.addEventListener('scroll', () => {
       this.scrollTop = document.documentElement.scrollTop
       this.scrollTop = document.documentElement.scrollTop
     })
     })
+    this.getBanner() // 获取轮播图
+    // 监听页面尺寸变化
+    this.screenWidth = document.body.clientWidth
+    window.onresize = () => {
+      return (() => {
+        this.screenWidth = document.body.clientWidth
+      })()
+    }
   },
   },
   beforeDestroy() {
   beforeDestroy() {
     window.removeEventListener('scroll', () => {
     window.removeEventListener('scroll', () => {
       this.scrollTop = document.documentElement.scrollTop
       this.scrollTop = document.documentElement.scrollTop
     })
     })
   },
   },
+  watch: {
+    screenWidth: {
+      handler(val) {
+        const changeBanner = document.getElementsByClassName('page-top')[0]
+        if (changeBanner) {
+          if (val > 768) {
+            if(this.banner.headPcBanner) {
+              changeBanner.style.backgroundImage = 'url('+ this.banner.headPcBanner+ ')'
+            }
+          }else {
+            if(this.banner.headAppBanner) {
+              changeBanner.style.backgroundImage = 'url('+ this.banner.headAppBanner+ ')'
+            }
+          }
+        }
+      },
+      immediate: true,
+      deep: true
+    }
+  },
   methods: {
   methods: {
     // 抖音挑战赛
     // 抖音挑战赛
     toActivity() {
     toActivity() {
-      return
-      this.$router.push(`${this.routePrefix}/activity/challenge`)
+      this.banner.jumpLink && this.$router.push(this.banner.jumpLink)
     },
     },
     // 从缓存中获取数据
     // 从缓存中获取数据
     initFromCache(cacheData) {
     initFromCache(cacheData) {
@@ -142,6 +171,18 @@ export default {
       })
       })
     },
     },
 
 
+    // banner
+    async getBanner() {
+      const { data } = await this.$http.api.bannerImg(this.authUserId)
+      this.banner = data
+      const changeBanner = document.getElementsByClassName('page-top')[0]
+      if (this.screenWidth > 768) {
+        this.banner.headPcBanner && (changeBanner.style.backgroundImage = 'url('+ this.banner.headPcBanner+ ')')
+      }else {
+        this.banner.headAppBanner && (changeBanner.style.backgroundImage = 'url('+ this.banner.headAppBanner+ ')')
+      }
+    },
+
     // 城市变化
     // 城市变化
     onCityChange(valueMap) {
     onCityChange(valueMap) {
       const { provinceId, cityId, townId } = valueMap
       const { provinceId, cityId, townId } = valueMap
@@ -178,7 +219,7 @@ export default {
       .page-top {
       .page-top {
         height: 530px;
         height: 530px;
         background-image: fetch('pc-banner-club');
         background-image: fetch('pc-banner-club');
-        // background-image: url(~assets/theme-images/ross/pc-banner-club.png);
+        // background-image: url(~/assets/theme-images/app/pc-banner-club.png);
         background-size: cover;
         background-size: cover;
         background-position: center;
         background-position: center;
         cursor: pointer;
         cursor: pointer;