<template>
  <div class="usremei-container">
    <div class="dynamic-title">《社会保障金》</div>
    <div class="dynamic-desc">
      通常指社会保险，是中国社会保障体系的核心组成部分，中国政府网表示，涵盖了养老保险、医疗保险、失业保险、工伤保险和生育保险五个险种。简单来说，社会保障金是国家为了保障劳动者在年老、失业、疾病、疾病、工伤和生育等情况下，能够享有生活保障而建立的社会制度。
    </div>
    <div class="invite-list">
      <div class="invite-item" v-for="item in rewards" :key="item.renshu">
        <div class="invite-info">
          <div class="invite-title">邀请{{ item.renshu }}人实名认证</div>
          <div class="invite-reward">{{ item.reward }}</div>
        </div>
        <button
          class="btn"
          :class="{
            'not-reached': item.status === 'not-reached',
            'received': item.status === 'received',
            'can-receive': item.status === 'can-receive'
          }"
          :disabled="item.status !== 'can-receive'"
          @click="receiveReward(item.renshu, item.status === 'received')"
        >
          {{ item.status === 'not-reached' ? '未达标' : (item.status === 'received' ? '已领取' : '领取') }}
        </button>
      </div>
    </div>
    <!-- 实名认证提示弹窗 -->
    <div v-if="showAuthDialog" class="custom-dialog-mask">
      <div class="custom-dialog auth-dialog">
        <div class="dialog-close" @click="showAuthDialog = false">
          <i class="close-icon"></i>
        </div>
        <div class="dialog-icon">
          <svg t="1710401275044" class="auth-icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6356">
            <path d="M512 512m-448 0a448 448 0 1 0 896 0 448 448 0 1 0-896 0Z" fill="#1890FF" p-id="6357"></path>
            <path d="M512 320c-17.7 0-32 14.3-32 32v256c0 17.7 14.3 32 32 32s32-14.3 32-32V352c0-17.7-14.3-32-32-32z" fill="#FFFFFF" p-id="6358"></path>
            <path d="M512 720m-48 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0Z" fill="#FFFFFF" p-id="6359"></path>
          </svg>
        </div>
        <div class="dialog-title auth-title">温馨提示</div>
        <div class="dialog-content">您还未完成实名认证<br/>请先进行实名认证</div>
        <button class="dialog-btn auth-btn" @click="goToAuth">去认证</button>
      </div>
    </div>
  </div>
</template>

<script>
import { getShareccb, getShareccbList } from '@/api/profile';
import { getUserInfo } from '@/api/home';

export default {
  name: 'Dynamic',
  data() {
    return {
      rewards: [
        { renshu: 6, title: '邀请6人实名认证', reward: '奖励30积分以及60000元保障金', status: 'not-reached' },
        { renshu: 15, title: '邀请15人实名认证', reward: '奖励150积分以及150000元保障金', status: 'can-receive' },
        { renshu: 30, title: '邀请30人实名认证', reward: '奖励300积分以及300000元保障金', status: 'received' },
        { renshu: 60, title: '邀请60人实名认证', reward: '奖励600积分以及600000元保障金', status: 'can-receive' },
        { renshu: 150, title: '邀请150人实名认证', reward: '奖励1500积分以及1500000元保障金', status: 'can-receive' }
      ],
      userInfo: {},
      showAuthDialog: false
    }
  },
  methods: {
    async getUserInfo() {
      try {
        const res = await getUserInfo();
        this.userInfo = res.data;
        // 检查是否已实名认证
        if (this.userInfo.if_real === 0) {
          this.showAuthDialog = true;
        }
      } catch (error) {
        console.error('获取用户信息失败:', error);
      }
    },
    async getShareccbList() {
      try {
        const res = await getShareccbList();
        if (res.code === 1 && Array.isArray(res.data)) {
          // 根据接口返回的received状态，更新rewards
          this.rewards = this.rewards.map(item => {
            const found = res.data.find(d => d.renshu === item.renshu);
            if (found) {
              // 假设接口返回的状态有 received(已领取), canReceive(可领取), notReached(未达标)
              let status = 'not-reached';
              if (found.received) status = 'received';
              else if (found.canReceive) status = 'can-receive';
              return { ...item, status };
            }
            return item;
          });
        }
      } catch (error) {
        console.error('获取奖励列表失败:', error);
      }
    },
    async receiveReward(renshu, received) {
      if (received) return;
      if (this.userInfo.if_real === 0) {
        this.showAuthDialog = true;
        return;
      }
      try {
        const res = await getShareccb(renshu);
        alert(res.msg);
        this.getShareccbList();
      } catch (e) {
        // 接口异常时不弹窗
      }
    },
    goToAuth() {
      this.$router.push('/user-center');
    }
  },
  created() {
    this.getUserInfo();
    this.getShareccbList();
  }
}
</script>

<style scoped>
.usremei-container {
  min-height: 100vh;
  background: #b94040;
  padding-top: 30px;
  padding-bottom: 30px;
  box-sizing: border-box;
  overflow-y: auto;
  position: relative;
  padding-bottom: 100px;
}

.dynamic-title {
  text-align: center;
  font-size: 20px;
  font-weight: bold;
  color: #b94040;
  background: #fff;
  border-radius: 12px 12px 0 0;
  margin: 0 auto;
  width: 90%;
  padding: 18px 0 8px 0;
}

.dynamic-desc {
  background: #fff;
  color: #b94040;
  font-size: 15px;
  line-height: 1.7;
  border-radius: 0 0 12px 12px;
  margin: 0 auto 24px auto;
  width: 90%;
  padding: 12px 18px 18px 18px;
  word-break: break-all;
  overflow-wrap: break-word;
  box-sizing: border-box;
}

.invite-list {
  width: 90%;
  margin: 0 auto;
}

.invite-item {
  background: #fff;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(208,2,27,0.06);
}

.invite-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.invite-title {
  font-size: 15px;
  color: #222;
  font-weight: 600;
  margin-bottom: 6px;
}

.invite-reward {
  font-size: 14px;
  color: #d0021b;
}

.btn {
  min-width: 70px;
  height: 32px;
  border: none;
  border-radius: 16px;
  font-size: 15px;
  font-weight: 500;
  padding: 0 18px;
  cursor: pointer;
  transition: all 0.2s;
}

.btn.not-reached {
  background: #bdbdbd;
  color: #fff;
}

.btn.can-receive {
  background: #b94040;
  color: #fff;
}

.btn.received {
  background: #fff;
  color: #bdbdbd;
  border: 1px solid #bdbdbd;
}

.custom-dialog-mask {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.custom-dialog {
  position: relative;
  width: 280px;
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  text-align: center;
  animation: dialogFadeIn 0.3s ease;
}

.dialog-icon {
  width: 60px;
  height: 60px;
  margin: 0 auto 16px;
}

.auth-icon {
  width: 100%;
  height: 100%;
}

.dialog-title {
  font-size: 18px;
  font-weight: 500;
  margin-bottom: 12px;
}

.auth-title {
  color: #1890FF;
}

.dialog-content {
  font-size: 14px;
  color: #666;
  line-height: 1.8;
  margin: 16px 0 24px;
}

.dialog-btn {
  width: 100%;
  height: 40px;
  border: none;
  border-radius: 20px;
  font-size: 16px;
  color: #fff;
  cursor: pointer;
  transition: all 0.3s ease;
}

.auth-btn {
  background: #1890FF;
}

.auth-btn:hover {
  background: #40a9ff;
}

.auth-dialog {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.dialog-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
}

.dialog-close:hover {
  transform: rotate(90deg);
}

.dialog-close .close-icon {
  position: relative;
  width: 16px;
  height: 16px;
}

.dialog-close .close-icon::before,
.dialog-close .close-icon::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 2px;
  background-color: #999;
  top: 50%;
  left: 0;
}

.dialog-close .close-icon::before {
  transform: rotate(45deg);
}

.dialog-close .close-icon::after {
  transform: rotate(-45deg);
}

@keyframes dialogFadeIn {
  from {
    opacity: 0;
    transform: scale(0.9);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
</style> 