index.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <script lang="ts">
  2. import { defineComponent, reactive,ref} from 'vue'
  3. import { useStore } from 'vuex'
  4. import banner from '@/components/layout/banner.vue'
  5. export default defineComponent({
  6. setup(){
  7. const store = useStore()
  8. const pageStatus = ref(false)
  9. // 首页箭头下拉
  10. function go_down(){
  11. globalThis.scrollTo({
  12. top: globalThis.innerHeight,
  13. behavior: "smooth"
  14. })
  15. }
  16. setTimeout(()=>{
  17. pageStatus.value = true
  18. },300)
  19. return { store, go_down, pageStatus }
  20. },
  21. components:{
  22. banner
  23. },
  24. asyncData({ store, route } :any){
  25. let params = reactive(route.value) //路由参数
  26. //获取菜单列表
  27. return store.dispatch('getMenuList',params).then(()=>{
  28. const data = reactive(store.state.menuList)
  29. let paramsData:any = reactive({
  30. params:{
  31. categoryid: 0,
  32. pageNum:1,
  33. pageSize:100,
  34. order:"sortindex",
  35. },
  36. index:"/",
  37. sub:0
  38. })//页面主题内容请求参数
  39. for(let i=0;i<data.length;i++){
  40. //主页内容
  41. if(!data[i].sname && params == data[i].path || !data[i].sname && data[i].path =="/"){
  42. paramsData = {
  43. params:{
  44. categoryid: data[i].id,
  45. pageNum:1,
  46. pageSize:100,
  47. order:"sortindex",
  48. },
  49. index:params.path,
  50. sub:i
  51. }
  52. if(params.path == "/"){
  53. paramsData.params.categoryid = data[i].id
  54. }
  55. return store.dispatch('getPageData',paramsData)
  56. }
  57. }
  58. })
  59. }
  60. })
  61. </script>
  62. <template>
  63. <div class="pageContain">
  64. <div class="video-section">
  65. <banner />
  66. <div class="video-des">
  67. <div class="des1">
  68. <p class="animate__animated animate__fadeInUp">公司成立<span class="num1">20年</span>,围绕行业细分,累计服务超过
  69. <span class="num1">5000</span> 家企业,近<span class="num1"> 10万 </span>个用户</p>
  70. </div>
  71. <div class="des2 desCom animate__animated animate__flipInX"
  72. style="top:43%; left:0;width:100%;text-align:center">
  73. <p>核心价值观</p>
  74. <span>一起梦想,一起成长,一起分享</span>
  75. </div>
  76. <div class="des3 desCom animate__animated animate__lightSpeedInLeft" style="top:65%; left:20%;">
  77. <p>企业使命</p>
  78. <span>用数字化手段助力客户融入数智时代</span>
  79. </div>
  80. <div class="des4 desCom animate__animated animate__lightSpeedInRight" style="top:65%; right:25%;">
  81. <p>企业愿景</p>
  82. <span>成为智慧数字产业的领跑者</span>
  83. </div>
  84. </div>
  85. <!-- 下拉 -->
  86. <span class="go_down" @click="go_down"></span>
  87. </div>
  88. <!-- 主体内容 -->
  89. <section v-if="store.state.pageContent.length>0" style="width:100vw;">
  90. <div class="whyUs-section pt-60 pb-60" v-for="(arr,index) in store.state.pageContent"
  91. :style="{background:(index % 2 == 1?'#F4F8FD':'#fff')}">
  92. <div class="container" v-show="pageStatus">
  93. <div class="section-title text-center both-border pb-20">
  94. <span class="title-tag">{{arr.title}}</span>
  95. <span class="mb-30">{{arr.zhaiyao}}</span>
  96. </div>
  97. <div class="row aboutOnlyText" v-if="arr.image"
  98. :style="{padding:(index % 2 == 1?'40px 25px':' 40px 25px')}"
  99. style="background-color: #ffff; box-shadow: 0px 10px 20px 10px rgb(179 202 216 / 20%); align-items:center">
  100. <div class="col-md-6 pr-40 aboutImg text-center ">
  101. <img v-lazy="arr.image" alt="">
  102. </div>
  103. <div class="col-md-6" v-html="arr.content">
  104. </div>
  105. </div>
  106. <div class="aboutOnlyText row text-center" v-else :style="{padding:(index % 2 == 1?'':'0 ')}"
  107. style="background-color: #ffff;">
  108. <div class=" about-text-image" v-html="arr.content">
  109. </div>
  110. </div>
  111. </div>
  112. </div>
  113. </section>
  114. </div>
  115. </template>
  116. <style lang="scss" scoped>
  117. </style>