|  | @@ -163,9 +163,9 @@
 | 
	
		
			
				|  |  |                      <img v-if="item.simpleUserInfoVO.avatarUrl" :src="item.simpleUserInfoVO.avatarUrl"
 | 
	
		
			
				|  |  |                          @click="openTwitterDetail(item)" alt />
 | 
	
		
			
				|  |  |                      <img v-else :src="require('@/assets/svg/icon-twitter.svg')" alt />
 | 
	
		
			
				|  |  | -                    <img class="win" :src="require('@/assets/svg/icon-win-1.svg')" v-if="i==0" alt/>
 | 
	
		
			
				|  |  | -                    <img class="win" :src="require('@/assets/svg/icon-win-2.svg')" v-if="i==1" alt/>
 | 
	
		
			
				|  |  | -                    <img class="win" :src="require('@/assets/svg/icon-win-3.svg')" v-if="i==2" alt/>
 | 
	
		
			
				|  |  | +                    <img class="win" :src="require('@/assets/svg/icon-win-1.svg')" v-if="i == 0" alt />
 | 
	
		
			
				|  |  | +                    <img class="win" :src="require('@/assets/svg/icon-win-2.svg')" v-if="i == 1" alt />
 | 
	
		
			
				|  |  | +                    <img class="win" :src="require('@/assets/svg/icon-win-3.svg')" v-if="i == 2" alt />
 | 
	
		
			
				|  |  |                      <div class="luck-content">
 | 
	
		
			
				|  |  |                          <div class="luck-title" v-if="item.simpleUserInfoVO.nickName">{{ item.simpleUserInfoVO.nickName
 | 
	
		
			
				|  |  |                          }}</div>
 | 
	
	
		
			
				|  | @@ -210,7 +210,7 @@
 | 
	
		
			
				|  |  |                  <div class="mark-area">
 | 
	
		
			
				|  |  |                      <div class="time">
 | 
	
		
			
				|  |  |                          <img :src="require('@/assets/svg/icon-time.svg')" />
 | 
	
		
			
				|  |  | -                        <span>{{ moment(state.detail.endTimestamp).format('HH:mm:ss') }}</span>
 | 
	
		
			
				|  |  | +                        <span>{{ state.count_down_time }}</span>
 | 
	
		
			
				|  |  |                      </div>
 | 
	
		
			
				|  |  |                      <div class="win">
 | 
	
		
			
				|  |  |                          <img :src="require('@/assets/svg/icon-win.svg')" />
 | 
	
	
		
			
				|  | @@ -247,9 +247,9 @@
 | 
	
		
			
				|  |  |                      <img v-if="item.simpleUserInfoVO.avatarUrl" :src="item.simpleUserInfoVO.avatarUrl" alt
 | 
	
		
			
				|  |  |                          @click="openTwitterDetail(item)" />
 | 
	
		
			
				|  |  |                      <img v-else :src="require('@/assets/svg/icon-twitter.svg')" alt />
 | 
	
		
			
				|  |  | -                    <img class="win" :src="require('@/assets/svg/icon-win-1.svg')" v-if="i==0" alt/>
 | 
	
		
			
				|  |  | -                    <img class="win" :src="require('@/assets/svg/icon-win-2.svg')" v-if="i==1" alt/>
 | 
	
		
			
				|  |  | -                    <img class="win" :src="require('@/assets/svg/icon-win-3.svg')" v-if="i==2" alt/>
 | 
	
		
			
				|  |  | +                    <img class="win" :src="require('@/assets/svg/icon-win-1.svg')" v-if="i == 0" alt />
 | 
	
		
			
				|  |  | +                    <img class="win" :src="require('@/assets/svg/icon-win-2.svg')" v-if="i == 1" alt />
 | 
	
		
			
				|  |  | +                    <img class="win" :src="require('@/assets/svg/icon-win-3.svg')" v-if="i == 2" alt />
 | 
	
		
			
				|  |  |                      <div class="luck-content">
 | 
	
		
			
				|  |  |                          <div class="luck-title" v-if="item.simpleUserInfoVO.nickName">{{ item.simpleUserInfoVO.nickName
 | 
	
		
			
				|  |  |                          }}</div>
 | 
	
	
		
			
				|  | @@ -314,7 +314,7 @@
 | 
	
		
			
				|  |  |                  <p>Announcement Winner</p>
 | 
	
		
			
				|  |  |                  <div class="time">
 | 
	
		
			
				|  |  |                      <img :src="require('@/assets/svg/icon-win-time.svg')" alt />
 | 
	
		
			
				|  |  | -                    <span>{{ moment(state.detail.endTimestamp).format('HH:mm:ss') || '' }}</span>
 | 
	
		
			
				|  |  | +                    <span>{{ state.count_down_time || '' }}</span>
 | 
	
		
			
				|  |  |                  </div>
 | 
	
		
			
				|  |  |                  <get-more :style_type="2"></get-more>
 | 
	
		
			
				|  |  |                  <div class="notification_switch">
 | 
	
	
		
			
				|  | @@ -345,9 +345,9 @@
 | 
	
		
			
				|  |  |                      <img v-if="item.simpleUserInfoVO.avatarUrl" :src="item.simpleUserInfoVO.avatarUrl" alt
 | 
	
		
			
				|  |  |                          @click="openTwitterDetail(item)" />
 | 
	
		
			
				|  |  |                      <img v-else :src="require('@/assets/svg/icon-twitter.svg')" alt />
 | 
	
		
			
				|  |  | -                    <img class="win" :src="require('@/assets/svg/icon-win-1.svg')" v-if="i==0" alt/>
 | 
	
		
			
				|  |  | -                    <img class="win" :src="require('@/assets/svg/icon-win-2.svg')" v-if="i==1" alt/>
 | 
	
		
			
				|  |  | -                    <img class="win" :src="require('@/assets/svg/icon-win-3.svg')" v-if="i==2" alt/>
 | 
	
		
			
				|  |  | +                    <img class="win" :src="require('@/assets/svg/icon-win-1.svg')" v-if="i == 0" alt />
 | 
	
		
			
				|  |  | +                    <img class="win" :src="require('@/assets/svg/icon-win-2.svg')" v-if="i == 1" alt />
 | 
	
		
			
				|  |  | +                    <img class="win" :src="require('@/assets/svg/icon-win-3.svg')" v-if="i == 2" alt />
 | 
	
		
			
				|  |  |                      <div class="luck-content">
 | 
	
		
			
				|  |  |                          <div class="luck-title" v-if="item.simpleUserInfoVO.nickName">{{ item.simpleUserInfoVO.nickName
 | 
	
		
			
				|  |  |                          }}</div>
 | 
	
	
		
			
				|  | @@ -422,6 +422,7 @@ import { discordAuthUrl, checkGuildJoined } from '@/http/discordApi'
 | 
	
		
			
				|  |  |  import { discordAuthRedirectUri, faceShareRedirectUrl } from '@/http/configAPI'
 | 
	
		
			
				|  |  |  import { getFrontConfig } from "@/http/account";
 | 
	
		
			
				|  |  |  import GlobalTip from '@/view/components/global-tip.vue'
 | 
	
		
			
				|  |  | +import { formItemValidateStates } from "element-plus";
 | 
	
		
			
				|  |  |  var moment = require('moment');
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  let discordAuthorizeRequired = false;
 | 
	
	
		
			
				|  | @@ -456,7 +457,8 @@ let state = reactive({
 | 
	
		
			
				|  |  |          reply: false
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      notification_switch: false,
 | 
	
		
			
				|  |  | -    open_timer_status: false
 | 
	
		
			
				|  |  | +    open_timer_status: false,
 | 
	
		
			
				|  |  | +    count_down_time: ''
 | 
	
		
			
				|  |  |  })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  let fullName = '';
 | 
	
	
		
			
				|  | @@ -773,6 +775,39 @@ function getValidity() {
 | 
	
		
			
				|  |  |      }, 1000)
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +let stop_open_conut_down_time_type = ''
 | 
	
		
			
				|  |  | +function openConutDownTime(end_time_ms, type = '未打开', callback) {
 | 
	
		
			
				|  |  | +    let now_time_ms, now_time, end_time
 | 
	
		
			
				|  |  | +    let _time, _h, _m, _s, _time_str
 | 
	
		
			
				|  |  | +    let timer = setInterval(() => {
 | 
	
		
			
				|  |  | +        now_time_ms = new Date().getTime()
 | 
	
		
			
				|  |  | +        _time = end_time_ms - now_time_ms
 | 
	
		
			
				|  |  | +        if (_time > 0) {
 | 
	
		
			
				|  |  | +            now_time = moment(now_time_ms)
 | 
	
		
			
				|  |  | +            end_time = moment(end_time_ms)
 | 
	
		
			
				|  |  | +            _h = moment.duration(end_time.diff(now_time)).hours()
 | 
	
		
			
				|  |  | +            _m = moment.duration(end_time.diff(now_time)).minutes()
 | 
	
		
			
				|  |  | +            _s = moment.duration(end_time.diff(now_time)).seconds()
 | 
	
		
			
				|  |  | +            if (_h < 10) {
 | 
	
		
			
				|  |  | +                _h = '0' + _h
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (_m < 10) {
 | 
	
		
			
				|  |  | +                _m = '0' + _m
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (_s < 10) {
 | 
	
		
			
				|  |  | +                _s = '0' + _s
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            _time_str = `${_h}:${_m}:${_s}`
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            _time_str = `00:00:00`
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (stop_open_conut_down_time_type == type) {
 | 
	
		
			
				|  |  | +            clearInterval(timer)
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        callback(_time_str)
 | 
	
		
			
				|  |  | +    }, 1000);
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  const openFollowTabs = (arr_name) => {
 | 
	
		
			
				|  |  |      let array_finish = arr_name.filter((item) => { return !item.finished })
 | 
	
		
			
				|  |  |      // let array_finish = state.detail.taskCondition[0].relatedUsers.filter((item) => { return item.finished == false })
 | 
	
	
		
			
				|  | @@ -927,8 +962,15 @@ const showSuccessPage = () => {
 | 
	
		
			
				|  |  |          senderId: state.userId,
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  const showNotOpenPage = () => {
 | 
	
		
			
				|  |  |      state.status = 'not-open'
 | 
	
		
			
				|  |  | +    openConutDownTime(state.detail.endTimestamp, '未打开', (time_str) => {
 | 
	
		
			
				|  |  | +        state.count_down_time = time_str
 | 
	
		
			
				|  |  | +        if (time_str == '00:00:00') {
 | 
	
		
			
				|  |  | +            stop_open_conut_down_time_type = '未打开'
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  |      Report.reportLog({
 | 
	
		
			
				|  |  |          pageSource: Report.pageSource.pending_page,
 | 
	
		
			
				|  |  |          businessType: Report.businessType.pageView,
 | 
	
	
		
			
				|  | @@ -1253,23 +1295,16 @@ const open_timer = () => {
 | 
	
		
			
				|  |  |          return
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      open_timer_flag = true
 | 
	
		
			
				|  |  | -    let new_time
 | 
	
		
			
				|  |  | -    let open_time
 | 
	
		
			
				|  |  | -    let timer = setInterval(() => {
 | 
	
		
			
				|  |  | -        open_time = state.detail.endTimestamp || ''
 | 
	
		
			
				|  |  | -        if (!open_time || state.close_status == '没有抽中') {
 | 
	
		
			
				|  |  | -            return
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        new_time = new Date().getTime()
 | 
	
		
			
				|  |  | -        // 到时间了
 | 
	
		
			
				|  |  | -        if (new_time >= open_time) {
 | 
	
		
			
				|  |  | -            // 调用detail 查看结果
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    openConutDownTime(state.detail.endTimestamp,'等待结果', (time_str) => {
 | 
	
		
			
				|  |  | +        state.count_down_time = time_str
 | 
	
		
			
				|  |  | +        if (time_str == '00:00:00') {
 | 
	
		
			
				|  |  |              init()
 | 
	
		
			
				|  |  |              if (state.open_timer_status == true) {
 | 
	
		
			
				|  |  | -                clearInterval(timer)
 | 
	
		
			
				|  |  | +                stop_open_conut_down_time_type = '等待结果'
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -    }, 1000)
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  const showLoadResult = () => {
 | 
	
		
			
				|  |  |      state.status = 'close'
 | 
	
	
		
			
				|  | @@ -1932,6 +1967,7 @@ body {
 | 
	
		
			
				|  |  |      margin-left: 3px;
 | 
	
		
			
				|  |  |      left: 100% !important;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  .content {
 | 
	
		
			
				|  |  |      position: relative;
 | 
	
		
			
				|  |  |      width: 375px;
 | 
	
	
		
			
				|  | @@ -2229,13 +2265,15 @@ body {
 | 
	
		
			
				|  |  |                  border-bottom: 1px solid #F2F2F2;
 | 
	
		
			
				|  |  |                  justify-content: space-between;
 | 
	
		
			
				|  |  |                  position: relative;
 | 
	
		
			
				|  |  | -                .win{
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                .win {
 | 
	
		
			
				|  |  |                      position: absolute;
 | 
	
		
			
				|  |  | -                    left:28px;
 | 
	
		
			
				|  |  | +                    left: 28px;
 | 
	
		
			
				|  |  |                      bottom: 7px;
 | 
	
		
			
				|  |  |                      width: 20px;
 | 
	
		
			
				|  |  |                      height: 20px;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                  img:first-child {
 | 
	
		
			
				|  |  |                      border-radius: 50%;
 | 
	
		
			
				|  |  |                  }
 |