<template>
  <view class="content">
    <div class="choose-box">
      <div class="type" :class="{ active: typeActive }">
        <picker
          @change="bindPickerChange($event, 'type')"
          :value="indexType"
          :range="pickerTypeArray"
          range-key="label"
          class="packer"
        >
          <view class="picker_title">
            {{ pickerType }}
          </view>
        </picker>
      </div>
      <div class="state" :class="{ active: !typeActive }">
        <picker
          @change="bindPickerChange($event, 'state')"
          :value="indexState"
          :range="pickerStateArray"
          range-key="label"
          class="packer"
        >
          <view class="picker_title">
            {{ pickerState }}
          </view>
        </picker>
      </div>
    </div>
    <div class="actives">
      <div
        v-for="(active, idx) in activeListCopy"
        :key="idx"
        class="actives-item"
        @click="goDeatil(active.id)"
      >
        <div class="active-content">
          <div class="img-box"><img :src="active.url" alt="" /></div>
          <div class="right">
            <div class="right-title">{{ active.title }}</div>
            <div class="right-inf">
              <div class="inf-type" style="width: 17%">
                <div
                  :class="{ color: active.type == 1 }"
                  class="originColor"
                ></div>
                <div>{{ active.type == 1 ? "线上" : "线下" }}</div>
              </div>
              <div class="inf-way" style="width: 24%">
                {{ active.way }}
              </div>
              <div class="inf-date">
                {{ active.date }}
              </div>
            </div>
          </div>
        </div>
        <div class="readShare">
          <div v-show="active.status == '0'" class="active-tips-box wait-color">
            活动待开始
          </div>
          <div v-show="active.status == '1'" class="active-tips-box ing-color">
            活动进行中
          </div>
          <div v-show="active.status == '2'" class="active-tips-box end-color">
            活动已结束
          </div>
          <div class="read">浏览 {{ active.read }}</div>
          <div class="share">分享 {{ active.share }}</div>
        </div>
      </div>
    </div>
  </view>
</template>

<script>
import md5 from "@/common/md5.js";
export default {
  data() {
    return {
      pickerState: "状态",
      pickerType: "类型",
      message: "找活动",
      themeColor: "#007AFF",
      mode: "selector",
      typeActive: true,
      indexType: 0,
      indexState: 0,
      pickerTypeArray: [
        {
          label: "全部",
          value: 0,
        },
        {
          label: "线上",
          value: 1,
        },
        {
          label: "线下",
          value: 2,
        },
      ],
      pickerStateArray: [
        {
          label: "全部",
          value: 3,
        },
        {
          label: "待开始",
          value: 0,
        },
        {
          label: "已开始",
          value: 1,
        },
        {
          label: "已结束",
          value: 2,
        },
      ],
      activeList: [
        // {
        //   url: "/static/activity/1.png",
        //   title: "400场讲座,200门课程,免费送上门!就等你申请",
        //   way: "区人力资源局",
        //   date: "2021-08-08",
        //   read: 322,
        //   share: 1,
        //   type: 1, //1线上
        // },
        // {
        //   url: "/static/activity/2.png",
        //   title: "智能制造商标品牌培育系列培训活动",
        //   way: "市场监督管理局",
        //   date: "2021-08-07",
        //   read: 322,
        //   share: 1,
        //   type: 2, //2线下
        // },
      ],
      activeListCopy: [],
    };
  },
  onLoad() {
    this.getActive();
  },
  methods: {
    bindPickerChange(e, op) {
      console.log(e.detail.value);
      switch (op) {
        case "type":
          this.indexType = e.detail.value;
          this.pickerType = this.pickerTypeArray[this.indexType].label;
          this.typeActive = true;
          break;
        case "state":
          this.indexState = e.detail.value;
          this.pickerState = this.pickerStateArray[this.indexState].label;
          this.typeActive = false;
      }
      /* 
        {  label: "全部",  value: 1,   },   { label: "线上",  value: 2,   }, { label: "线下", value: 3, }, 
      { label: "全部",   value: 1, }, { label: "待开始",value: 2,},{label: "已开始",value: 3, }, { label: "已结束",value: 4, },
        "status":"活动状态 0：待开始；1：已开始； 2：已结束
        "type":"活动类型 1:线上;2 线下"}
        */
      let type = this.indexType;
      let state = this.indexState;
      this.activeListCopy = this.activeList.filter((item) => {
        return (
          (type == 0 || item.type == type) &&
          (state == 0 || item.status == state - 1)
        );
      });
    },
    goDeatil(id) {
      uni.navigateTo({
        url: "/pages/activity/activity_deatil?id=" + id,
      });
    },
    getActive() {
      let md5Sign = md5(
        "method=" +
          "common" +
          "&timestamp=" +
          getApp().globalData.globalTimestamp +
          "&secret=" +
          getApp().globalData.secret
      );
      let url =
        getApp().globalData.shareUrl +
        "api/api.php" +
        "?method=common&source=activity&action=list&timestamp=" +
        getApp().globalData.globalTimestamp +
        "&sign=" +
        md5Sign;
      let postData = {
        page: 1,
        page_size: 15,
      };
      uni.request({
        url: url,
        method: "POST",
        header: {
          "content-type": "application/x-www-form-urlencoded",
        },
        data: postData,
        success: (res) => {
          // console.log(res);
          if (res.data.code === 200) {
            let list = res.data.data.list;
            this.activeList = list.map((item) => {
              /*
                  url: "/static/activity/2.png",
            title: "智能制造商标品牌培育系列培训活动",
            way: "市场监督管理局",
            date: "2021-08-07",
            read: 322,
            share: 1,
            type: 0, //0线下
             */
              let ob = {
                url: "",
                title: "",
                way: "",
                date: "",
                read: 0,
                share: 0,
                type: "",
                status: "",
                id: "",
                status: 0,
              };
              ob.url = getApp().globalData.shareUrl + item.pic_url;
              ob.title = item.name;
              ob.way = item.sponsor;
              let time = this.$options.filters["globalTime"](item.start_time);
              let timeSecond = this.$options.filters["globalTime"](
                item.end_time
              );
              ob.date = time + "至" + timeSecond;
              ob.read =
                parseInt(item.base_read_count) + parseInt(item.real_read_count);
              ob.share =
                parseInt(item.real_repost_count) +
                parseInt(item.base_repost_count);
              ob.type = item.type;
              ob.status = item.status;
              ob.id = item.id;
              ob.status = item.status;
              return ob;
            });
            this.activeListCopy = this.activeList;
          }
        },
        fail: () => {
          console.log("连接失败");
        },
      });
    },
  },
};
</script>

<style lang="scss" scoped>
.content {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  .choose-box {
    padding: 20rpx 0;
    width: 100%;
    display: flex;
    position: fixed;
    height: 50rpx;
    top: 0;
    margin-bottom: 50rpx;
    .type,
    .state {
      width: 50%;
      display: flex;
      justify-content: center;
      position: relative;
      .packer {
        width: 100%;
        .picker_title {
          z-index: 99;
          width: 100%;
          height: 100%;
          display: flex;
          justify-content: center;
        }
      }
    }

    .type::after,
    .state::after {
      z-index: -1;
      content: "";
      position: absolute;
      right: 30%;
      top: 20%;
      width: 0;
      height: 0;
      border-top: 15rpx solid rgb(173, 173, 173);
      border-left: 15rpx solid transparent;
      border-right: 15rpx solid transparent;
    }
  }
  .actives {
    width: 83%;
    margin-top: 50rpx;
    padding: 0 40rpx;
    display: flex;
    flex-direction: column;
    .actives-item {
      width: 100%;
      // height: 150rpx;
      box-shadow: 0px 4rpx 32rpx rgba(0, 0, 0, 0.1);
      border-radius: 32rpx;
      margin-top: 20px;
      padding: 20rpx;
      display: flex;
      flex-direction: column;
      .active-content {
        display: flex;
        .img-box {
          margin-right: 20rpx;
          width: 120rpx;
          height: 120rpx;
          img {
            width: 100%;
            height: 100%;
            border-radius: 10%;
          }
        }
        .right {
          width: 80%;
          height: 120rpx;
          box-sizing: border-box;
          display: flex;
          flex-direction: column;
          justify-content: space-between;
          .right-title {
            width: 100%;
            margin-bottom: 20rpx;
            font-size: 27rpx;
            font-weight: 600;
            letter-spacing: 3rpx;
          }
          .right-inf {
            display: flex;
            font-size: 21rpx;
            align-items: center;
            color: $uni-text-color-grey;
            .inf-type {
              margin-right: 10rpx;
              display: flex;
              align-items: center;
              .originColor {
                margin-right: 8rpx;
                height: 20rpx;
                width: 20rpx;
                border-radius: 50%;
                background-color: #ffcf86;
              }
            }
            .inf-way {
              margin-right: 20rpx;
            }
            .inf-date {
              white-space: nowrap;
            }
          }
        }
      }
      .readShare {
        display: flex;
        justify-content: flex-end;
        font-size: 20rpx;
        color: rgba(0, 0, 0, 0.3);
        margin-top: 20rpx;
        align-items: center;
        .active-tips-box {
          font-size: 22rpx;
          padding: 10rpx;
          border-radius: 10rpx;
          color: #fff;
          margin-right: 50rpx;
        }
        .wait-color {
          background-color: #aee359;
        }
        .ing-color {
          background-color: #00a8ea;
        }
        .end-color {
          background-color: #d7d7d7;
        }
        .read {
          margin-right: 60rpx;
        }
      }
    }
  }
}
.active {
  color: $uni-color-primary;
}
.color {
  background-color: #589cff !important;
}
</style>
