<template>
  <view>
    <navBar
      :navTitle="collectionsDetail.Name"
      :stickyShow="stickyShow"
      :color="'#000000'"
      :backBackGroundColor="'#699A70'"
      v-if="!isActive"
      :sfBack="true"
      @triggerSfBack="back"
    ></navBar>
    <view
      class="fixed-box"
      :style="{ background: !isActive ? '#FFFFFF' : '#000000' }"
    >
      <view class="btn" v-if="!isActive">
        <u-button
          type="primary"
          :text="$t('navbar.back')"
          class="back"
          @click="back"
        ></u-button>
        <u-button
          v-if="this.collectionsDetail.CurrencyType === 'point'"
          type="success"
          :text="'积分制尚未开通'"
          class="buyer"
        ></u-button>

        <u-button
          v-if="this.collectionsDetail.CurrencyType === 'normal'"
          type="success"
          :text="
            this.collectionsDetail.SaleType === 'draw'
              ? '领取'
              : this.collectionsDetail.SaleType === 'normal'
              ? '￥' + price + $t('collection.buy')
              : '仅限渠道购买'
          "
          class="buyer"
          @click="buy"
        ></u-button>
      </view>
      <view class="btn" v-else>
        <u-button
          type="primary"
          :text="$t('navbar.back')"
          class="back-active"
          @click="back"
        ></u-button>
        <u-button type="success" :text="'售罄'" class="sell-out"></u-button>
      </view>
    </view>
    <view v-if="!isActive">
      <view class="top-img">
        <!-- @click="open3D"-->
        <image
          :src="this.collectionsDetail.CollectionImg"
          mode="widthFix"
        ></image>
        <!-- <text class="price" v-if="this.collectionsDetail.Price != 0">￥{{ this.collectionsDetail.Price }}</text> -->
      </view>
      <!-- <view class="title-t">{{ collectionsDetail.Price != 0 ? $t('letter.all') : $t('letter.you') }}</view> -->
      <!-- <view class="info-box" style="padding: 28rpx 32rpx">
			<image src="@/static/image/home/to1.png" class="title-img" v-if="collectionsDetail.Price != 0"></image>
			<image src="@/static/image/home/to.png" class="title-img" v-else></image>
			<image src="@/static/image/home/333.png" class="content-img" mode="widthFix"
				v-if="collectionsDetail.Price != 0"></image>
			<image src="@/static/image/home/222.png" class="content-img" mode="widthFix" v-else></image>
			<view style="text-align: right;">
				<image src="@/static/image/home/from.png" class="from-img"></image>
			</view>
		</view> -->
      <view
        class="title-t"
        :style="{ fontSize: '36rpx', color: '#434343', fontWeight: 600 }"
        >{{ $t("collection.info") }}
      </view>
      <view class="info-box" style="padding: 28rpx 32rpx; background: #ffffff">
        <view class="item">
          <text class="label">{{ $t("collection.name") }}</text>
          <text class="value">{{ this.collectionsDetail.Name || "-" }}</text>
        </view>
        <view class="item">
          <text class="label">{{ $t("collection.type") }}</text>
          <text class="value">{{
            this.collectionsDetail.CollectionType || "-"
          }}</text>
        </view>
        <view class="item">
          <text class="label">{{ $t("collection.size") }}</text>
          <text class="value">{{ this.collectionsDetail.Size || "-" }}</text>
        </view>
        <view class="item">
          <text class="label">{{ $t("collection.specs") }}</text>
          <text class="value">{{ this.collectionsDetail.Specs || "-" }}</text>
        </view>
        <view class="item">
          <text class="label">{{ $t("collection.address") }}</text>
          <text class="value">{{ this.collectionsDetail.Address || "-" }}</text>
        </view>
        <view class="item">
          <text class="label">{{ $t("collection.intro") }}</text>
          <view class="des">{{ this.collectionsDetail.Intro || "-" }}</view>
        </view>
      </view>
      <view
        class="title-t"
        :style="{ fontSize: '36rpx', color: '#434343', fontWeight: 600 }"
        >{{ $t("collection.detail") }}
      </view>
      <view class="detail-info">
        <!-- <view class="title-t">{{$t('collection.sell')}}</view>
			<view class="box">
				<image v-for="item in sellPoint" :key="item" :src="item" mode="widthFix" class="img"></image>
			</view> -->
        <view
          v-if="
            this.CollectionUID !== '372afbef-4d3c-4e06-8fae-2ef1068b0a89' &&
            collDetails.length > 0
          "
          class="title-t"
          >{{ $t("collection.sellDec") }}</view
        >
        <view
          v-if="
            this.CollectionUID !== '372afbef-4d3c-4e06-8fae-2ef1068b0a89' &&
            collDetails.length > 0
          "
          class="box"
        >
          <image
            v-for="item in collDetails"
            :src="item"
            :key="item"
            mode="widthFix"
            class="img"
          ></image>
        </view>
        <view
          v-if="
            this.CollectionUID !== '372afbef-4d3c-4e06-8fae-2ef1068b0a89' &&
            companyInfo.length > 0
          "
          class="title-t"
          >{{ $t("collection.company") }}</view
        >
        <view
          v-if="
            this.CollectionUID !== '372afbef-4d3c-4e06-8fae-2ef1068b0a89' &&
            companyInfo.length > 0
          "
          class="box"
        >
          <image
            v-for="item in companyInfo"
            :src="item"
            :key="item"
            mode="widthFix"
            class="img"
          ></image>
        </view>
        <view v-if="copyright.length > 0" class="title-t">{{
          $t("collection.copyight")
        }}</view>
        <view v-if="copyright.length > 0" lass="box">
          <image
            v-for="item in copyright"
            :src="item"
            :key="item"
            mode="widthFix"
            class="img"
          ></image>
        </view>
        <view v-if="Blockchain.length > 0" class="title-t">{{
          $t("collection.blockchain")
        }}</view>
        <view v-if="Blockchain.length > 0" class="box">
          <image
            v-for="item in Blockchain"
            :src="item"
            :key="item"
            mode="widthFix"
            class="img"
          ></image>
        </view>
      </view>

      <view class="" style="text-align: center; margin-top: 30rpx">
        <image
          src="@/static/image/home/fontree.png"
          mode=""
          class="logo"
        ></image>
      </view>
    </view>
    <view v-else class="active">
      <view class="head">
        <u-button class="back" @click="back"> 返回 </u-button>
        <view>泰丰十周年纪念徽章</view>
      </view>
      <image
        src="@/static/image/home/drawing-board.png"
        mode="scaleToFill"
        class="drawing-board"
      />
    </view>
    <view style="height: 180rpx"></view>
    <u-popup
      :show="showVerfy"
      mode="center"
      @close="closeVerfy"
      bgColor="transparent"
    >
      <view class="popup-box">
        <view class="title">{{ $t("buyVerfy.title") }}</view>
        <view class="">
          <view class="input-box">
            <view class="label">{{ $t("buyVerfy.username") }}：</view>
            <view class="input">
              <u--input
                border="none"
                shape="circle"
                v-model="realName"
                @focus="verfFocus"
              ></u--input>
            </view>
          </view>
          <view class="input-box">
            <view class="label">{{ $t("buyVerfy.idNum") }}：</view>
            <view class="input">
              <u--input
                border="none"
                shape="circle"
                v-model="idNum"
                @focus="verfFocus"
              ></u--input>
            </view>
          </view>
          <view class="flex-end">
            <view class="fl-e" v-if="succes">
              <image
                src="../../../static/image/home/true.png"
                mode=""
                style="width: 30rpx; height: 30rpx; margin-right: 5px"
              ></image>
              <text style="color: #ffffff; font-size: 24rpx">{{
                $t("buyVerfy.suss")
              }}</text>
            </view>
            <view class="fl-e" v-if="err">
              <image
                src="../../../static/image/home/false.png"
                mode=""
                style="width: 30rpx; height: 30rpx; margin-right: 5px"
              ></image>
              <text style="color: #fd343c; font-size: 24rpx">{{
                $t("buyVerfy.error")
              }}</text>
            </view>
          </view>
        </view>
        <u-button
          :text="$t('buyVerfy.done')"
          color="#699A70"
          @click="verifyName"
          style="
			         	'width: 622rpx;
			            height: 56rpx;
			            border-radius: 40rpx;
			            margin-top: 114rpx;'
			          "
        ></u-button>
        <view @click="closeVerfy" class="cancel">{{
          $t("buyVerfy.cancel")
        }}</view>
      </view>
    </u-popup>
  </view>
</template>

<script>
export default {
  data() {
    return {
      stickyShow: false,
      showVerfy: false,
      CollectionUID: "",
      collectionsDetail: {},
      sellPoint: [],
      collDetails: [],
      companyInfo: [],
      copyright: [],
      Blockchain: [],
      realName: "",
      idNum: "",
      err: false,
      succes: false,
      SeriesName: "",
      isHave: false,
      AirdorpUid: "",
      price: "",
      isActive: false,
      currencyType: "",
      pageParams: {},
    };
  },
  onPageScroll(e) {
    this.stickyShow = e.scrollTop > 5 ? true : false;
  },
  onLoad: function (option) {
    this.pageParams = option;
    this.CollectionUID = option.CollectionUID;
    this.SeriesName = option.SeriesName;
    this.price = option.Price;
    this.isActive = !Object.keys(option).length;
  },
  onShow() {
    this.getCollectionDetail();
  },
  methods: {
    calcRouteParams(obj) {
      if (obj && JSON.stringify(obj) !== "{}") {
        let str = "?";
        for (let key in obj) {
          str += key + "=" + obj[key] + "&";
        }
        return str.slice(0, -1);
      }
      return "";
    },
    open3D() {
      uni.navigateTo({
        url: "/pages/index/detail/open3D/open3D",
      });
    },
    back() {
      let routesRecord = getCurrentPages();
      if (routesRecord.length > 1) {
        this.$common.navigateBack();
      } else {
        uni.reLaunch({
          url: "/pages/index/index",
        });
      }
    },
    async getCollectionDetail() {
      if (this.isActive) return;
      let data = {
        CollectionsUID: this.CollectionUID,
      };
      let res = await this.$api.series.collectionsInfo(data);
      if (res.status === 0) {
        // await this.getPick(res.data.CollectionUID);
        this.collectionsDetail = res.data;
        (this.AllImgList = res.data.CutImg ? JSON.parse(res.data.CutImg) : []),
          this.cutImg();
      } else {
        uni.$u.toast(this.$t("load.failed"));
      }
    },
    async getPick(uid) {
      if (this.isActive) return;
      let parmas = {
        uuid: uid,
      };
      let res = await this.$api.series.userHaveDropNo(parmas);
      if (res.status === 0) {
        console.log(res.data.Hava);
        this.isHave = res.data.Have != 0 ? false : true;
        this.AirdorpUid = res.data.UserAirdorpUid;
      } else {
        this.isHave = false;
      }
    },
    cutImg() {
      this.AllImgList.forEach((v) => {
        if (Array.isArray(v.imgs)) {
          v.imgs = v.imgs.filter((img) => {
            if (img) {
              return img;
            }
          });
        }
        switch (v.label) {
          case "卖点":
            this.sellPoint = v.imgs;
            break;
          case "藏品细节":
            this.collDetails = v.imgs;
            break;
          case "工艺/公司介绍":
            this.companyInfo = v.imgs;
            break;
          case "版权声明":
            this.copyright = v.imgs;
            break;
          case "区块链说明":
            this.Blockchain = v.imgs;
            break;
        }
      });
    },
    buy() {
      // 只有领取和普通购买 才执行下去
      if (
        this.collectionsDetail.CurrencyType === "normal" &&
        ["normal", "draw"].includes(this.collectionsDetail.SaleType)
      ) {
        let token = uni.getStorageSync("mall_token");
        let realName = uni.getStorageSync("mall-user-info")
          ? uni.getStorageSync("mall-user-info").realName
          : "";
        if (!token) {
          uni.$u.toast(this.$t("login.pls"));
          uni.setStorageSync(
            "login-redirect",
            "/pages/index/detail/detail" + this.calcRouteParams(this.pageParams)
          );
          uni.navigateTo({
            url: "/pages/login/login",
          });
        } else if (!realName) {
          this.showVerfy = true;
        } else {
          if (this.collectionsDetail.SaleType === "draw") {
            this.directGet();
            return;
          }
          uni.navigateTo({
            url:
              "/pages/index/comfirm/comfirm?Collection=" +
              encodeURIComponent(JSON.stringify(this.collectionsDetail)),
          });
        }
      }
    },
    async directGet() {
      let data = {
        CollectionsUID: this.collectionsDetail.CollectionUID,
      };
      let res = await this.$api.airdrop.directGet(data);
      if (res.status === 0) {
        uni.$u.toast("领取成功！");
        this.getCollectionDetail();

        let routesRecord = getCurrentPages();
        if (routesRecord.length > 1) {
          let that = this;
          setTimeout(() => {
            that.$common.navigateBack();
          }, 1000);
        } else {
          setTimeout(() => {
            uni.reLaunch({
              url: "/pages/index/index",
            });
          }, 1000);
        }
      } else {
        uni.$u.toast(res.msg);
      }
    },
    async pickUp() {
      let data = {
        UserId: uni.getStorageSync("mall-user-info").ID,
        Uuid: this.AirdorpUid,
      };
      let res = await this.$api.airdrop.getCollection(data);
      if (res.status === 0) {
        this.recive();
      } else {
        uni.$u.toast(res.msg);
      }
    },
    async recive() {
      let data = {
        collectionsUID: this.CollectionUID,
        userAirdropUuid: this.AirdorpUid,
      };
      let res = await this.$api.airdrop.getCollectionStepTwo(data);
      if (res.status === 0) {
        uni.navigateTo({
          url: "/pages/index/payment/reciveOK",
        });
      } else {
        uni.$u.toast(res.msg);
      }
    },
    async verifyName() {
      let data = {
        idNum: this.idNum,
        realName: this.realName,
      };
      if (!data.idNum || !data.realName) {
        return uni.$u.toast("姓名和身份证号不能为空");
      }
      if (!uni.$u.test.idCard(data.idNum)) {
        return uni.$u.toast("身份证号不正确");
      }
      let res = await this.$api.mine.update(data);
      if (res.status === 0) {
        this.succes = true;
        uni.setStorageSync("mall-user-info", res.data);
        setTimeout(() => {
          this.idNum = "";
          this.realName = "";
          this.showVerfy = false;
          this.err = false;
          this.succes = false;
        }, 1000);
      } else {
        this.err = true;
        this.succes = false;
        uni.$u.toast(res.msg);
      }
    },
    verfFocus() {
      this.err = false;
      this.succes = false;
    },
    doneVerfy() {
      this.showVerfy = false;
    },
    closeVerfy() {
      this.showVerfy = false;
    },
  },
};
</script>

<style lang="scss">
page {
  background: url("@/static/image/home/new_bg.png?x-oss-process=image/resize,w_750,h_1580")
    no-repeat;
  background-size: 100% 100%;
  background-attachment: fixed;
  height: 100vh;
}

.active {
  position: relative;

  .head {
    position: absolute;
    top: 30rpx;
    left: 26rpx;
    display: flex;
    height: 110rpx;
    align-items: center;
    font-size: 32rpx;
    z-index: 1;

    .back {
      width: 128rpx;
      height: 56rpx;
      color: #ffffff;
      border-radius: 40rpx;
      line-height: 56rpx;
      background: rgba(255, 255, 255, 0.4);
      margin-right: 78rpx;
      border: 0;
    }
  }
}

.drawing-board {
  width: 100%;
  height: 6986rpx;
}

.fixed-box {
  position: fixed;
  bottom: 0;
  width: 100%;
  height: 172rpx;
  // background: #3e3e3e;
  background: #ffffff;
  z-index: 10;

  .btn {
    display: flex;
    padding: 42rpx 38rpx;
  }

  .back {
    width: 172rpx;
    height: 56rpx;
    border-radius: 40rpx;
    // background: #efba42;
    background: #efba42;
    border-color: aliceblue;
    margin-right: 30rpx;
  }

  .back-active {
    width: 172rpx;
    height: 56rpx;
    border-radius: 40rpx;
    // background: #efba42;
    background: rgba(255, 255, 255, 0.4);
    border-color: aliceblue;
    margin-right: 30rpx;
    border: 0;
  }

  .buyer {
    width: 484rpx;
    height: 56rpx;
    border-radius: 40rpx;
    // background: #558bf2;
    background: #699a70;
    border-color: aliceblue;
  }

  .sell-out {
    width: 484rpx;
    height: 56rpx;
    border-radius: 40rpx;
    // background: #558bf2;
    background: #fc4947;
    border-color: #fc4947;
  }

  .disBtn {
    width: 484rpx;
    height: 56rpx;
    line-height: 56upx;
    border-radius: 40rpx;
    background: rgba(65, 0, 0, 1);
    border: 1upx #fff solid;
    text-align: center;
  }
}

.top-img {
  background-size: contain;
  width: 660rpx;
  height: 660rpx;
  border-radius: 8rpx;
  margin: 44rpx 44rpx 32rpx 46rpx;
  position: relative;

  .price {
    font-size: 48rpx;
    position: absolute;
    bottom: 10rpx;
    right: 30upx;
    // left: 50%;
    // transform: translateX(-50%);
  }

  image {
    width: 100%;
    height: 100%;
  }
}

/* .box-item {
		// background: rgba(255, 255, 255, 0.3);
		// background: rgba(11, 0, 0, 0.4);
		// margin: 0 44rpx 0 46rpx;
		image {
			width: 100%;
			display: block;
			// height: 198rpx;
		}
	} */

.detail-info {
  // background: rgba(0, 0, 0, 0.8);
  background: rgba(255, 255, 255, 0.2);
  border-radius: 8rpx;
  margin: 30rpx;
  padding: 23rpx;

  .box {
    // margin: 0 44rpx 0 46rpx;
    margin-bottom: 46rpx;
    // background: url('@/static/image/home/bg-info.png') no-repeat; // rgba(255, 255, 255, 0.3);
    border-radius: 15rpx;
    // padding: 38rpx 32rpx;
    position: relative;
    overflow: hidden;

    .img {
      width: 100%;
      display: block;
    }
  }
}

.title-t {
  text-align: center;
  margin: 40rpx 0 30rpx 0;
  color: #494949;
}

.info-box {
  margin: 0 44rpx 0 46rpx;
  margin-bottom: 46rpx;
  // background: rgba(255, 255, 255, 0.3);
  background: rgba(11, 0, 0, 0.3);
  // background: url('@/static/image/home/bg-info.png') no-repeat;
  border-radius: 8rpx;
  // padding: 38rpx 32rpx;
  position: relative;

  .title-img {
    width: 300upx;
    height: 50upx;
    margin-bottom: 32upx;
  }

  .content-img {
    width: 100%;
    display: block;
    object-fit: contain;
  }

  .from-img {
    width: 356upx;
    height: 44upx;
    margin-top: 20upx;
  }

  .item {
    display: flex;
    margin-bottom: 20rpx;
    font-size: 20rpx;

    .label {
      padding-right: 40rpx;
      width: 130rpx;
      color: #434343;
      font-size: 20rpx;
    }

    .value {
      color: #878787;
    }

    .des {
      width: 450rpx;
      /* display: -webkit-box;
				-webkit-box-orient: vertical;
				-webkit-line-clamp: 3;
				overflow: hidden; */
      word-break: break-all;
      white-space: normal;
      color: #878787;
    }
  }

  .img {
    width: 100%;
    display: block;
  }
}

.logo {
  margin-top: 10rpx;
  width: 202rpx;
  height: 56rpx;
}

.popup-box {
  background: #ffffff;
  height: 842rpx;
  width: 698rpx;
  overflow: hidden;
  padding: 30rpx 38rpx;
  box-sizing: border-box;

  .title {
    font-size: 40rpx;
    text-align: center;
    margin-top: 96rpx;
    margin-bottom: 152rpx;
    color: #434343;
  }

  .input-box {
    display: flex;
    align-items: center;
    padding-bottom: 34rpx;

    .label {
      font-size: 22rpx;
      color: #699a70;
    }

    .input {
      background-color: rgba(135, 135, 135, 0.5);
      width: 515rpx;
      height: 60rpx;
      border-radius: 40rpx;
      display: flex;
      align-items: center;
      box-sizing: border-box;

      /deep/ .input-placeholder {
        font-size: 24rpx;
      }

      /deep/ .uni-input-input {
        font-size: 24rpx;
        padding: 0 20rpx;
        color: #fff;
      }
    }
  }

  .flex-end {
    padding: 0 34rpx 34rpx 38rpx;
    display: flex;
    justify-content: flex-end;

    .fl-e {
      display: flex;
      align-items: center;
    }
  }

  .cancel {
    color: #878787;
    font-size: 32rpx;
    margin-top: 30rpx;
    text-align: center;
  }
}
</style>
