<template>
  <page-meta :page-style="themeColor"></page-meta>
  <view class="details">
    <view v-if="Object.keys(info).length > 0">
      <!--顶部内容-->
      <view class="top">
        <image class="top-image" :src="$util.img(info.goods_image)" mode="widthFix"></image>
        <view class="top-count-down">
          <image class="top-down-image" :src="$util.img('public/static/img/futures/details_down_bg.png')" mode="widthFix"></image>
          <view class="top-down-text">
            <image class="top-down-text-image" :src="$util.img('public/static/img/futures/details_down_icon.png')" mode="widthFix"></image>
            正在销售
          </view>
          <view class="top-count-down-time" v-if="h > 0 || i > 0 || s > 0">
            <text class="count-down-time">{{ h }}</text>:
            <text class="count-down-time">{{ i }}</text>:
            <text class="count-down-time">{{ s }}</text>
          </view>
        </view>
      </view>
      <!--参数信息-->
      <view class="params-info">
        <view class="title">{{ info.goods_name }}</view>
        <view class="info-item">
          售卖价格：<text class="info-num"><text class="unit">￥</text>{{ info.market_price }}/{{ info.unit || '件' }}</text>
        </view>
        <view class="info-item">
          采购价格：<text class="buy-price"><text class="unit">￥</text>{{ info.price }}</text>
        </view>
        <view class="info-item">
          <view class="info-block">
            采购数量：<text class="info-num">{{ info.total }}{{ info.unit || '件' }}</text>
          </view>
          <view class="info-block">
            销售商：<text class="info-num">{{ info.seller_nickname }}</text>
          </view>
        </view>
      </view>
      <!--商品详情富文本-->
      <view class="goods-detail">
        <view class="detail-top">
          <view class="left">采购商品详情</view>
          <view class="right" @click="details_show = !details_show">
            展开
            <i v-if="details_show" class="icondiy icon-system-jiantoushang"></i>
            <i v-else class="icondiy icon-system-jiantouxia"></i>
          </view>
        </view>
        <view class="goods-detail-content">
          <uni-transition
              id="goodsDetailContent"
              ref="detail"
              :show="details_show"
              mode-class="slide-top"
              :duration="2000"
          >
            <view v-html="info.goods_content"></view>
          </uni-transition>
        </view>
      </view>
      <!--按钮-->
      <view class="bottom-buttons">
        <view class="button-item" @click="editRemark">添加备注</view>
        <view class="button-item" @click="buy">立即采购</view>
      </view>
      <!--添加备注内容-->
      <uni-popup ref="orderRemarks" type="dialog" class="order-remarks-content">
        <uni-popup-dialog ref="inputClose" mode="input" placeholder="请输入订单备注" @close="$refs.orderRemarks.close()" @confirm="confirmRemarks"></uni-popup-dialog>
      </uni-popup>
    </view>
    <view v-else>
      <ns-empty :isIndex="false" text="未到秒杀时间"></ns-empty>
    </view>

    <!--登录弹框-->
    <ns-login ref="login"></ns-login>
    <!--加载动画-->
    <loading-cover ref="loadingCover"></loading-cover>
  </view>
</template>

<script>
import uniTransition from '@/components/uni-transition/uni-transition.vue';
import uniPopup from '@/components/uni-popup-new/uni-popup.vue';
import uniPopupDialog from '@/components/uni-popup-dialog/uni-popup-dialog.vue';

export default {
  components: {
    uniTransition,
    uniPopup,
    uniPopupDialog
  },
  data() {
    return {
      id: 0,
      // 倒计时
      end_time: 1680170346,// 结束时间  时间戳
      diff_time: 0,
      h: '00',
      i: '00',
      s: '00',
      interval: '',
      // 商品详情是否显示
      details_show: true,
      info: {},
      order_remarks: '',

    };
  },
  mixins: [],
  onLoad(option) {
    this.id = option.id;
    this.getDetail(option.id);
  },
  onShow() {},
  onReady(){
    // 判断是否登录
    if (!uni.getStorageSync('token')) this.$refs.login.open('/pages_promotion/futures/seckill');

    if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
  },
  methods: {
    // 获取商品列表
    getDetail(id) {
      this.$api.sendRequest({
        url: '/futures/api/futures/detail',
        data: {
          id: id
        },
        success: res => {
          if(parseInt(res.code) === 0){
            this.info = res.data;
            this.end_time = parseInt(res.data.end_time);
            // 开启倒计时
            this.countDown();
          }

          if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
        },
        fail: res => {
          if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
        }
      });
    },
    // 倒计时
    countDown(){
      this.interval = setInterval(() => {
        // 获取距离结束时间的毫秒数
        let nowTime = Math.ceil((new Date()).getTime() / 1000);
        this.diff_time = this.end_time - nowTime;
        // 计算时间
        let result = this.$util.countDown(this.diff_time);
        this.h = (parseInt(result.d) * 24) + parseInt(result.h);
        this.i = parseInt(result.i);
        this.s = parseInt(result.s);
      }, 1000)
    },
    // 点击添加备注
    editRemark(){
      this.$refs.orderRemarks.open('center')
    },
    // 添加备注
    confirmRemarks(value){
      this.order_remarks = value || '';
      this.$refs.orderRemarks.close();
    },
    // 立即采购
    buy(){
      uni.setStorage({
        key: 'futuresOrderCreateData',
        data: {
          futures_id: this.id,
          order_remarks: this.order_remarks
        },
        success: () => {
          this.isSub = false;//防抖
          this.$util.redirectTo('/pages_promotion/futures/payment');
        }
      });
    }
  },
  onBackPress(options) {
    if (options.from === 'navigateBack') return false;
    this.$util.redirectTo('/pages/member/index');
    return true;
  }
};
</script>

<style lang="scss" scoped>
.details{
  background: #f5f5f5;// #f5f5f5
  min-height: calc(100vh - 110rpx);
  width: 100vw;
  padding-bottom: 110rpx;
  .top{
    height: 100vw;
    position: relative;
    .top-image{
      width: 100vw;
      max-height: 100%;
    }
    .top-count-down{
      --count-down-size--: 96rpx;
      --top-count-down-time-width--: 230rpx;
      height: var(--count-down-size--);
      position: absolute;
      bottom: 0;
      left: 0;
      overflow: hidden;
      width: 100%;
      .top-down-image{
        width: 100%;
        height: 100%;
      }
      .top-down-text{
        position: absolute;
        bottom: 0;
        right: var(--top-count-down-time-width--);
        height: var(--count-down-size--);
        display: inline-flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: flex-end;
        padding-right: 55rpx;
        font-size: 30rpx;
        font-weight: bold;
        color: #fe6276;
        .top-down-text-image{
          width: 36rpx!important;
          margin-right: 15rpx;
        }
      }
      .top-count-down-time{
        position: absolute;
        bottom: 0;
        right: 0;
        height: var(--count-down-size--);
        width: var(--top-count-down-time-width--);
        display: inline-flex;
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: flex-start;
        align-items: center;

        .count-down-time{
          --size--: 50rpx;
          background: #313131;
          color: #c6c7ca;
          min-width: calc(var(--size--) - 20rpx);
          height: var(--size--);
          border-radius: 10rpx;
          display: inline-flex;
          flex-direction: row;
          flex-wrap: nowrap;
          align-content: center;
          justify-content: center;
          align-items: center;
          margin: 0 6rpx;
          font-size: 26rpx;
          padding: 0 10rpx;
        }
      }
    }
  }
  .params-info{
    padding: 20rpx;
    background: #FFFFFF;
    .title{
      width: 100%;
      height: 60rpx;
      line-height: 50rpx;
      font-size: 34rpx;
      font-weight: bold;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .info-item{
      height: 50rpx;
      line-height: 40rpx;
      font-size: 28rpx;
      color: #747474;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      width: 100%;
      .unit{
        font-size: 24rpx;
        display: inline-block;
        width: 22rpx;
      }
      .info-num{
        font-weight: bold;
        color: #040404;
      }
      .buy-price{
        font-size: 34rpx;
        font-weight: bold;
        color: #fe5572;
      }
      .info-block{
        width: 50%;
        float: left;
        font-size: 28rpx;
        color: #747474;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
      }
    }
  }
  .goods-detail{
    background: #fcfcfc;
    margin-top: 20rpx;
    padding: 20rpx;

    .detail-top{
      width: 100%;
      height: 70rpx;
      margin-bottom: 20rpx;
      display: inline-flex;
      flex-direction: row;
      flex-wrap: nowrap;
      align-items: center;
      justify-content: space-between;
      .left{
        font-size: 30rpx;
        font-weight: bold;
        color: #3e3e3e;
      }
      .right{
        font-size: 13px;
        color: #838383;
        display: inline-flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        height: 70rpx;
        i{
          margin-left: 20rpx;
          color: #838383;
        }
      }
    }
    .goods-detail-content{
      overflow: hidden;
    }
  }
  .bottom-buttons{
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    display: inline-flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-around;
    height: 100rpx;
    background: #FFFFFF;
    .button-item{
      height: 80rpx;
      line-height: 80rpx;
      font-size: 30rpx;
      width: 240rpx;
      border-radius: 100vw;
      text-align: center;
    }
    .button-item:nth-of-type(1){
      background: #FFFFFF;
      border: 2rpx solid #dfdfdf;
      color: #838383;
    }
    .button-item:nth-of-type(2){
      background: #ff4546;
      color: #fee6e6;
    }
  }
}
/deep/ .order-remarks-content{
  display: inline-flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-content: center;
  justify-content: center;
  align-items: center;
  background-color: rgba(0,0,0,0.6);
  .uni-dialog-input{
    min-height: 80rpx;
    height: auto!important;


  }
}
</style>
