<template>
  <view class="page__view">
    <view class="bg">
      <image class="img" :src="configList.config_image_page_header" mode="scaleToFill"></image>
    </view>

    <!-- 轮播图 -->
    <view class="section swiper">
      <uv-swiper :list="bannerList" keyName="image" indicator indicatorMode="dot" indicatorActiveColor="#4883F9" indicatorInactiveColor="#FFFFFF" height="424rpx"></uv-swiper>
    </view>

    <view class="list">
      <view class="list-item"
        v-for="item in firstCategoryList" 
        :key="item.id"
        @click="jumpToSecondCategory(item.id, item.title)"
      >
        <image class="list-item-bg" :src="item.image" mode="scaleToFill"></image>
      </view>
    </view>

		<tabber select="serve" />
  </view>
</template>

<script>
	import tabber from '@/components/base/tabbar.vue'

  export default {
		components: {
      tabber,
    },
    data() {
      return {
        bannerList: [],
        firstCategoryList: [],
      }
    },
    onLoad() {
      this.fetchBanner()
      this.getData()
    },
    methods: {
			// 获取轮播图
			async fetchBanner() {
				try {
					this.bannerList = (await this.$fetch('queryBannerList', { type: '2' }))?.records // type：0-首页 1-案例 2-服务 3-其他
				} catch (err) {

				}
			},
      async getData() {
        try {
          this.firstCategoryList = (await this.$fetch('queryCategoryServiceModuleList', { pageNo: 1, pageSize: 1000 }))?.records?.filter(item => item.hasChild == '1')
        } catch (err) {

        }
      },
      jumpToSecondCategory(pid, title) {
        uni.navigateTo({
					url: `/pages_order/serve/category?pid=${pid}&title=${title}`
				})
      },
    },
  }
</script>

<style scoped lang="scss">

  .bg {
    width: 100%;
    height: 264rpx;

    .img {
      width: 100%;
      height: 100%;
    }
  }

  .main {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: 156rpx 0 182rpx 0;
  }

  .header {

    .title {
      margin-left: 25rpx;
      position: relative;
      padding: 51rpx 0 6rpx 42rpx;

      &-line {
        width: 151rpx;
        height: 11rpx;
        background: linear-gradient(76deg,#ffffff 2%, #4883f9 88%);
        border-radius: 6rpx;
      }

      &-text {
        position: absolute;
        top: 0;
        left: 0;
        font-size: 46rpx;
        font-weight: 700;
        color: #FFFFFF;
      }

    }

    .desc {
      font-size: 30rpx;
      font-weight: 700;
      color: #FFFFFF;
      margin: 14rpx 28rpx 32rpx 28rpx;
    }
  }

  .swiper {
    margin: 0 18rpx 15rpx 18rpx;
    border-radius: 25rpx;
    overflow: hidden;
    
    /deep/ .uv-swiper-indicator__wrapper__dot {
      width: 15rpx;
      height: 15rpx;
    }

    /deep/ .uv-swiper-indicator__wrapper__dot--active {
      width: 15rpx;
    }
  }

  .list {
    margin: 0 18rpx;

    &-item {
      position: relative;
      font-size: 0;
      border-radius: 25rpx;
      overflow: hidden;
      box-shadow: 0rpx 3rpx 6rpx 0rpx rgba(0,0,0,0.16);

      & + & {
        margin-top: 32rpx;
      }

      &-bg {
        $w: calc(100vw - 18rpx*2);
        width: $w;
        height: calc(#{$w} * 179 / 714);
      }

      &-fg {
        position: absolute;
        top: 38rpx;
        left: 51rpx;

        .title {
          font-size: 32rpx;
          font-weight: 700;
          color: #E67722;
        }

        .desc {
          margin-top: 2rpx;
          font-size: 28rpx;
          color: #BEA898;
        }
      }

      &:nth-child(2n) {
        .list-item-fg {
          left: 200rpx;

          .title {
            color: #052464;
          }

          .desc {
            color: #A8BADE;
          }
        }
      }
    }
  }

</style>