<template>
  <view class="ps-wrapper">
    <view id="headerBox" ref="headerBox" :class="[mpCommonClass]" :style="{
        background: `url(${bgImg}) no-repeat center top`,
        backgroundSize: '100% 400rpx',
        backgroundColor: '#F7F7F7',
      }" class="header-box">
      <view>
        <view :height=" '1225rpx'" class="banner-container">
          <u-swiper :autoplay="true" :current="current" :height=" '1225rpx'" :list="bannerList" circular
                    duration="1000" interval="5000" @change="(data) => (current = data.current)" @click="bannerClick">
            <template #indicator>
              <view class="custom-indicator">
                <text v-for="item in bannerList.length" v-show="bannerList.length > 0" :key="item"
                      :class="{ 'banner-active': item === current }" class="custom-indicator-item"></text>
              </view>
            </template>
          </u-swiper>
          <view class="logo-search-container">
            <view class="centered-image">
              <van-image
                  :src="logoImg"
                  fit="contain"
                  height="16px"
                  width="83px"
              />
            </view>
            <view :style="{
                width: '100%',
                height: '100%',
             }" class="search-box" @click="toSearchList">
              <u-icon name="search" size="20"></u-icon>
              <text>请输入关键词</text>
            </view>
          </view>
        </view>
        <!-- 商品分类 -->
        <view class="goods-list">
          <view class="goods-list-item" @click="">
            <van-image
                height="136rpx"
                src="/static/hd1.png"
                width="84rpx"
            />
            <view style=" margin-top: 14rpx">芳香好物</view>
          </view>
          <view class="goods-list-item" @click="">
            <van-image
                height="136rpx"
                src="/static/hd2.png"
                width="84rpx"
            />
            <view style=" margin-top: 14rpx"> 芳香学院</view>
          </view>

          <view class="goods-list-item" @click="">
            <van-image
                height="136rpx"
                src="/static/hd3.png"
                width="84rpx"
            />
            <view style=" margin-top: 14rpx"> 芳香活动</view>
          </view>

          <view class="goods-list-item" @click="">
            <van-image
                height="136rpx"
                src="/static/hd5.png"
                width="84rpx"
            />
            <view style=" margin-top: 14rpx"> 芳香生活
            </view>
          </view>

          <view class="goods-list-item" @click="">
            <van-image
                height="136rpx"
                src="/static/hd4.png"
                width="84rpx"
            />

            <view style=" margin-top: 14rpx">陪伴营</view>
          </view>
        </view>
        <view class="biaoti">
          <van-image
              height="85.94rpx"
              src="/static/biaoti1.png"
              width="171.3rpx"
          />
        </view>


        <view class="content-box">
          <view
              :style="{width: '95%', margin: '0rpx auto', height: '378rpx' ,borderRadius: '24rpx 24rpx 24rpx 24rpx',backgroundColor: '#F2FAF2'}">
            <van-image
                height="280rpx"
                src="/static/hdlist1.png"
                width="100%"
            />
            <view>
              <van-row>
                <van-col span="16">
                  <view class="huodongText">
                    芬芳小溪-健康生活态游园会
                  </view>
                </van-col>
                <van-col span="8">
                  <van-row>
                    <van-col span="12">
                      <view class="huodongText2">
                        <van-image
                            class="huodongText2-img"
                            height="28rpx"
                            src="/static/hdlist2.png" width="28rpx"
                        />
                        500
                      </view>
                    </van-col>
                    <van-col span="12">
                      <view class="huodongText2">
                        <van-image
                            class="huodongText2-img"
                            height="28rpx"
                            src="/static/hdlist3.png" width="28rpx"
                        />
                        160
                      </view>
                    </van-col>
                  </van-row>
                </van-col>
              </van-row>

            </view>
          </view>
          <view class="biaoti">
            <van-image
                height="85.94rpx"
                src="/static/biaoti2.png"
                width="171.3rpx"
            />
          </view>
          <view
              :style="{width: '95%', margin: '0rpx auto'}">
            <view style="width: 100%;">
              <view style="margin-bottom: 24rpx">
                <van-image
                    height="200rpx"
                    src="/static/kecheng1.png"
                    width="100%"
                />
              </view>
              <view style="margin-bottom: 24rpx">
                <van-image
                    height="200rpx"
                    src="/static/kecheng2.png"
                    width="100%"
                />
              </view>
            </view>
          </view>
          <view class="biaoti">
            <van-image
                height="85.94rpx"
                src="/static/biaoti3.png"
                width="171.3rpx"
            />
          </view>
          <view
              :style="{width: '95%', margin: '0rpx auto'}">
            <CommercePart :data="commonDataList"></CommercePart>
            <!-- 赠品专区 -->
            <image v-if="giftBanner.pic" :src="giftBanner.pic" mode="aspectFill"
                   style="width: 100%; height: 206rpx" @click="toSubpages('giftZone')">
            </image>
          </view>
        </view>
      </view>
    </view>
    <tabbarCom current="0"></tabbarCom>
  </view>

</template>

<script>
import tabbarCom from "@/components/tabbar/tabbar.vue"
import CommercePart from "@/components/CommercePart.vue";
// import FlowPart from "@/components/FlowPart.vue";
import {
  goodsList
} from "./config";
import {
  getBanner
} from "@/common/api/home.js";
import {
  getNewsList
} from "@/common/api/news.js";
// 获取系统状态栏的高度
let systemInfo = uni.getSystemInfoSync();
let menuButtonInfo = {};
// 如果是小程序，获取右上角胶囊的尺寸信息，避免导航栏右侧内容与胶囊重叠(支付宝小程序非本API，尚未兼容)
// #ifdef MP-WEIXIN || MP-BAIDU || MP-TOUTIAO || MP-QQ
menuButtonInfo = uni.getMenuButtonBoundingClientRect();
// #endif
export default {
  components: {
    tabbarCom,
    CommercePart
  },
  data() {
    return {
      bgImg: '',
      logoImg: '',
      shopName: '',
      shopShareImg: '',
      ponitsBanner: {}, // 积分兑换
      giftBanner: {}, // 赠品
      partGoodsList: [],
      msGoodsList: [],
      bannerList: [],
      topData: {
        top: 0,
        height: 0,
      },
      current: 0,
      titleTabCurrentIndex: 0,
      goodsList: goodsList,
      imageUrl: this.$C.imageUrl,
      userInfo: {},
      keyword: "",
      commonPage: {
        pageNum: 1,
        pageSize: 4,
        total: 0,
      },
      flowPage: {
        pageNum: 1,
        pageSize: 4,
        total: 0,
      },
      status: "loadmore",
      filterData: {},
      loadText: {
        loadmore: "点击加载更多",
        loading: "努力加载中",
        nomore: "没有更多了",
      },
      selectedType: "",
      activeTabStyle: {
        fontSize: "36rpx",
        fontWeight: "600",
      },
      mainHeightStyle: {},
      mainHeight: "",
      commonDataList: [],
      flowDataList: [],
      statusBarHeight: systemInfo.statusBarHeight,
      menuButtonInfo: menuButtonInfo,
      searchInputStyle: {
        backgroundColor: "transparent",
        color: "#1D161F",
      },
      prevData: [],
      advList: [],
      goods_hot: [],
      sourceBanner: []
    };
  },
  computed: {
    // 导航栏内部盒子的样式
    navbarInnerStyle() {
      let style = {};
      // 导航栏宽度，如果在小程序下，导航栏宽度为胶囊的左边到屏幕左边的距离
      style.height = this.navbarHeight + "px";
      // // 如果是各家小程序，导航栏内部的宽度需要减少右边胶囊的宽度
      // #ifdef MP
      let rightButtonWidth = systemInfo.windowWidth - menuButtonInfo.left;
      style.marginRight = rightButtonWidth + "px";
      // #endif
      return style;
    },
    // 转换字符数值为真正的数值
    navbarHeight() {
      // #ifdef APP-PLUS || H5
      return this.height ? this.height : 44;
      // #endif
      // #ifdef MP
      // 小程序特别处理，让导航栏高度 = 胶囊高度 + 两倍胶囊顶部与状态栏底部的距离之差(相当于同时获得了导航栏底部与胶囊底部的距离)
      // 此方法有缺陷，暂不用(会导致少了几个px)，采用直接固定值的方式
      // return menuButtonInfo.height + (menuButtonInfo.top - this.statusBarHeight) * 2;//导航高度
      let height = systemInfo.platform == "ios" ? 44 : 48;
      return this.height ? this.height : height;
      // #endif
    },
    token() {
      return this.$U.getStorage("token");
    },
    mpCommonClass() {
      console.log(this.$C)
      return this.$C.mpCommonClass || ''
    }
  },
  watch: {
    titleTabCurrentIndex() {
      if (this.titleTabCurrentIndex == 0) {
        this.getCommonData(true);
      } else {
        this.getFlowData(true);
      }
    },
  },
  onLoad() {
    this.getBanner();
    this.getNewsList();
  },
  onShow() {
    uni
        .createSelectorQuery()
        .in(this)
        .select("#headerBox")
        .boundingClientRect((data) => {
          let height = (data.height + 20) * 2 + "rpx";
          this.mainHeight = `calc(100vh - ${height})`;
        })
        .exec();
    const topData = uni.getMenuButtonBoundingClientRect();
    this.topData.top = topData.top;
    this.topData.height = topData.height;
    if (this.token) {
      this.userInfo = this.$U.getStorage("userInfo");
    }

    // this.getMsData()
    // this.getCommonData(true);
  },
  onReachBottom() {
    this.getCommonData();
  },
  onShareAppMessage(res) {
    if (res.from === 'button') { // 来自页面内分享按钮
      console.log(res.target)
    }
    let userInfo = uni.getStorageSync('userInfo')
    userInfo = userInfo && JSON.parse(userInfo) || {}
    let params = {}
    if (userInfo.id) {
      params = {
        id: userInfo.id
      }
    }
    return {
      title: this.shopName,
      path: `/pages/home/index${this.$stringPageOptions(params)}`,
      imageUrl: this.shopShareImg,
    }
  },
  onShareTimeline(res) {
    if (res.from === 'button') { // 来自页面内分享按钮
      console.log(res.target)
    }
    let userInfo = uni.getStorageSync('userInfo')
    userInfo = userInfo && JSON.parse(userInfo) || {}
    let params = {}
    if (userInfo.id) {
      params = {
        id: userInfo.id
      }
    }
    return {
      title: this.shopName,
      imageUrl: this.shopShareImg,
      path: `/pages/home/index${this.$stringPageOptions(params)}`
    }
  },
  methods: {
    toMsList() {
      uni.navigateTo({
        url: `/subPages/msGoodsList/msGoodsList`,
      });
    },
    toMsDetail(item) {
      // 秒杀详情
      uni.navigateTo({
        url: `/subPages/goodsDetail/goodsDetail?code=${item.id}&type=msGoods`,
      });
    },

    toDetails(item) {
      // 秒杀详情
      uni.navigateTo({
        url: `/subPages/goodsDetail/goodsDetail?code=${item.code}&type=common`,
      });
    },
    toSubpages(type) {
      if (type == "pointsZone") {
        uni.navigateTo({
          url: `/subPages/pointsZone/pointsZone?id=${this.ponitsBanner.pstn_id}`,
        });
      } else {
        uni.navigateTo({
          url: `/subPages/giftZone/giftZone?id=${this.giftBanner.pstn_id}`,
        });
      }
    },
    bannerClick(index) {
      const currentUrl = this.sourceBanner[index].pic_url
      if (currentUrl != '#') {
        uni.navigateTo({
          url: currentUrl
        })
      }
    },
    getBanner() {
      getBanner().then((res) => {
        const {
          slider = [],
          goods_hot = [],
          goods_cate = [],
          goods_new = [],
          seckill_goods = [],
          integral_page = [],
          gifts_page = [],
          shop_name,
          shop_logo,
          shop_share_img,
          shop_bgimg
        } = res.data;
        const configs = uni.getStorageSync("configs");
        console.log("getConfigzj=>", configs);
        if (configs) {
          this.logoImg = configs.shop_logo
          this.bgImg = configs.shop_bgimg
          this.shopName = configs.shop_share_title
          this.shopShareImg = configs.shop_share_img
        } else {
          this.logoImg = shop_logo
          this.bgImg = shop_bgimg
          this.shopName = shop_name
          this.shopShareImg = shop_share_img
        }
        this.bannerList = slider.map(item => item.pic);
        this.sourceBanner = slider
        console.log(23333, this.bannerList)
        this.goodsList = goods_cate;
        this.commonDataList = goods_new;
        this.msGoodsList = seckill_goods;
        this.goods_hot = goods_hot;
        this.ponitsBanner = integral_page.length && integral_page[0];
        this.giftBanner = gifts_page.length && gifts_page[0];
        uni.setStorageSync('mpInfo', {
          shopName: this.shopName,
          shareImg: this.shopShareImg
        })
      });
      // const data = {
      // 	name: 'sliderread'
      // };
      // this.$api.getData(data)
      // 	.then((res) => {
      // 		uni.hideLoading();
      // 		console.log("getBanner==>", res.data)
      // 		if (res.data) {
      // 			this.bannerList = res.data;
      // 		} else {}
      // 	})
      // 	.catch(() => {
      // 		uni.hideLoading();
      // 	});
    },
    toSearchList() {
      uni.navigateTo({
        url: "/subPages/searchList/searchList",
      });
    },
    getMsData() {
      uni.showLoading({
        title: "加载中",
      });
      this.$api
          .getPSMsList()
          .then((res) => {
            uni.hideLoading();
            // this.msGoodsList = res.data && res.data.list || []
          })
          .catch(() => {
            uni.hideLoading();
          });
    },
    getNewsList() {
      getNewsList({
        cid: 1,
        page: 1,
        pageSize: 100,
      }).then(({
                 data = {}
               }) => {
        this.advList = data.list || [];
      });
    },
    getCommonData(initFlag) {
      if (!initFlag) {
        if (
            this.commonPage.pageNum * this.commonPage.pageSize <
            this.commonPage.total
        ) {
          this.commonPage.pageNum++;
        } else {
          return;
        }
      } else {
        this.commonPage.pageNum = 1;
        this.commonPage.total = 0;
        this.commonDataList = [];
      }
      let sendData = {
        limit: this.commonPage.pageSize,
        page: this.commonPage.pageNum,
      };
      uni.showLoading({
        title: "加载中",
      });
      this.$api
          .getPSGoodsList(sendData)
          .then((res) => {
            uni.hideLoading();
            if (res.code == 1) {
              const {
                list = [], page = {}
              } = res.data;
              this.commonDataList = this.commonDataList.concat(list);
              this.commonPage.total = page.total;
            }
          })
          .catch((err) => {
            uni.hideLoading();
          });
    },
    getFlowData(initFlag) {
      if (!initFlag) {
        if (
            this.flowPage.pageNum * this.flowPage.pageSize <
            this.flowPage.total
        ) {
          this.flowPage.pageNum++;
        } else {
          return;
        }
      } else {
        this.flowPage.pageNum = 1;
        this.flowPage.total = 0;
        this.flowDataList = [];
      }
      let sendData = {
        limit: this.flowPage.pageSize,
        page: this.flowPage.pageNum,
      };
      uni.showLoading({
        title: "加载中",
      });
      this.$api
          .getFlowData(sendData)
          .then((res) => {
            uni.hideLoading();
            if (res.code == 1) {
              const {
                list = [], page = {}
              } = res.data;
              this.flowDataList = this.flowDataList.concat(list);
              this.flowPage.total = page.total;
            }
          })
          .catch((err) => {
            uni.hideLoading();
          });
    },
    searchChange() {
    },

    toDetail(item) {
      uni.navigateTo({
        url: "../../subPages/commerceDetail/commerceDetail?id=" + item.id,
      });
    },
    toList(item) {
      console.log("cateid=====>", item);
      uni.setStorageSync('currentCateid', item.id)
      uni.switchTab({
        url: `/pages/productCenter/productCenter?cateid=${item.id}`,
      });
    },
    handleAdv(index) {
      const activeAdv = this.advList[index];
      uni.navigateTo({
        url: `/pages/article/article?id=${activeAdv.id}`,
      });
    },
  },
};
</script>

<style lang="scss" scoped>
.ps-wrapper {
  background-color: $primary-bg-color;

  .adv-box {
    position: relative;
    // padding: 0 33rpx 20rpx;
    height: 64rpx;
    background-color: white;
    padding: 0 20rpx0;
    border-radius: 16rpx;
    margin: 40rpx0 20rpx;
    font-weight: 500;

    .adv-icon {
      position: absolute;
      left: 6rpx;
      top: 50%;
      transform: translateY(-50%);
    }

    ::v-deep {
      .u-notice__left-icon {
        width: 19px;

        .u-icon__icon {
          display: none;
        }
      }
    }
  }

  .custom-indicator {
    position: absolute;
    left: 0rpx;
    right: 0rpx;
    bottom: 29rpx;
    width: 712rpx;
    display: flex;
    margin: 0 20rpx0 20rpx;
    flex-direction: row;
    justify-content: center;
    transform: translateX(-48rpx);

    .custom-indicator-item {
      width: 16rpx;
      height: 16rpx;
      margin: 0 6rpx;
      border-radius: 12rpx;
      background-color: #666666;
    }

    .banner-active {
      width: 48rpx;
      background-color: #222222;
    }
  }


  .slot-wrap {
    background-color: red;
  }

  .content-box {
    // overflow-y: auto;
    background-color: $primary-bg-color;
    padding: 20rpx0 0;

    .part-box {
      background: linear-gradient(180deg, #fdd118 0%, #f7f7f7 100%);
      border-radius: 10rpx10rpx10rpx10rpx;
      padding: 18rpx14rpx;

      .part-list {
        display: flex !important;
        flex-direction: row !important;
        // justify-content: space-between;
        background-color: #fff;
        border-radius: 10rpx;
        padding: 15rpx15rpx30rpx;
        font-size: 24rpx;
        color: #1d161f;
        margin-top: 15rpx;

        &-item {
          width: calc(33% - 10rpx);
          margin-right: 10rpx;
        }
      }
    }
  }

  .header-box {
    width: 100%;

    .banner-container {
      position: relative;
      width: 100%;

      .logo-search-container {
        position: absolute;
        top: 59px;
        left: 0;
        width: 100%;
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 20rpx;
        box-sizing: border-box;

        .search-box {
          margin: 0 auto 0rpx;
          height: 61rpx;
          background: rgba(255, 255, 255, 0.3);
          border-radius: 30rpx;
          opacity: 1;
          display: flex;
          align-items: center;
          flex-direction: row;

          text {
            font-size: 24rpx;
            font-family: PingFang SC-Regular, PingFang SC;
            font-weight: 400;
            color: #9D9D9D;
            line-height: 61rpx;
            margin-left: 11rpx;
          }
        }
      }

      .centered-image {
        display: flex;
        justify-content: center;
        align-items: center;
        height: 61rpx;
      }
    }

    .content {
      width: 100%;
      z-index: 50;
      // margin-top: -60rpx;s
      .title-tab {
        font-size: 34rpx;
        color: #aca9af;
        font-style: italic;
        font-weight: 700;
        margin-bottom: 26rpx;
        padding: 0 20rpx;

        &-item {
          margin-right: 30rpx;
        }

        &-actived {
          color: #000;
        }
      }
    }
  }


  .goods-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    background-color: #FFFFFF;;
    padding: 0 20rpx;
    padding-top: 40rpx;

    &-item {
      width: 20%;
      flex-shrink: 0;
      text-align: center;
      margin-bottom: 30rpx;
      color: #1d161f;
      font-size: 26rpx;
    }
  }

  .biaoti {
    width: 100%;
    height: 180rpx;
    display: flex;
    justify-content: center;
    align-items: center
  }

  .huodongText {
    font-family: PingFang SC, PingFang SC;
    font-weight: 400;
    font-size: 26rpx;
    color: #333333;
    line-height: 36rpx; // 修正拼写错误
    text-align: left; // 如果需要水平居中，可以改为 'center'
    font-style: normal;
    text-transform: none;
    height: 98rpx;
    display: flex; // 添加 flex 布局
    align-items: center; // 垂直居中
    margin-left: 30rpx; // 添加左边距
  }

  .huodongText2 {
    font-family: PingFang SC, PingFang SC;
    font-weight: 400;
    font-size: 20rpx;
    color: #666666;
    height: 98rpx;
    line-height: 28rpx;
    text-align: left;
    font-style: normal;
    display: flex; // 添加 flex 布局
    align-items: center; // 垂直居中
    text-transform: none;

    .huodongText2-img {
      margin-right: 15rpx;
      margin-left: 15rpx
    }
  }

}
</style>

<style lang="scss">
page {
  height: 100vh;
}
</style>
