|
@@ -22,8 +22,7 @@
|
|
|
<div v-else class="btn" @click="clickFollowAll(item.relatedUsers)">Follow All</div>
|
|
|
</div>
|
|
|
<div class="item-follow-area">
|
|
|
- <div class="item-follow" v-for="item2, i in item.relatedUsers" v-bind:key="i"
|
|
|
- @click="clickFollow(item2)">
|
|
|
+ <div class="item-follow" v-for="item2, i in item.relatedUsers" v-bind:key="i">
|
|
|
<span :class="{ finished: item2.finished }">@{{ item2.name }}</span>
|
|
|
<img v-if="item2.finished" :src="require('../assets/svg/icon-true-ed.svg')" alt />
|
|
|
<img v-else :src="require('../assets/svg/icon-add.svg')" alt />
|
|
@@ -38,7 +37,7 @@
|
|
|
</div>
|
|
|
<img v-if="data.done.like" :src="require('../assets/svg/icon-true.svg')" alt />
|
|
|
|
|
|
- <div v-else class="btn" @click="clickBtn">Like</div>
|
|
|
+ <div v-else class="btn" @click="clickLickBtn">Like</div>
|
|
|
</template>
|
|
|
<template v-if="item.type == 3">
|
|
|
<img :src="require('../assets/svg/icon-retweet.svg')" alt />
|
|
@@ -46,7 +45,7 @@
|
|
|
<div class="item-title">Retweet</div>
|
|
|
</div>
|
|
|
<img v-if="data.done.retweet" :src="require('../assets/svg/icon-true.svg')" alt />
|
|
|
- <div v-else class="btn" @click="clickBtn">Retweet</div>
|
|
|
+ <div v-else class="btn" @click="clickRetweetBtn">Retweet</div>
|
|
|
</template>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -89,7 +88,7 @@
|
|
|
<div>{{ data.detail.finishCount || 0 }}/{{ data.detail.totalCount || 0 }} People Got</div>
|
|
|
<div>Total ${{ data.detail.amountValue || '' }} {{ data.detail.amountCurrencyCode || '' }}</div>
|
|
|
</div>
|
|
|
- <div class="luck-list">
|
|
|
+ <div class="luck-list" @scroll="handleScroll($event)">
|
|
|
<div class="luck-item" v-for="item, i in data.detail.allReceived" v-bind:key="i">
|
|
|
<img v-if="item.simpleUserInfoVO.avatarUrl" :src="item.simpleUserInfoVO.avatarUrl" alt />
|
|
|
<img v-else :src="require('../assets/svg/icon-twitter.svg')" alt />
|
|
@@ -125,7 +124,7 @@
|
|
|
<div>{{ data.detail.finishCount || 0 }}/{{ data.detail.totalCount || 0 }} People Got</div>
|
|
|
<div>Total ${{ data.detail.amountValue || 0 }} {{ data.detail.amountCurrencyCode || '' }}</div>
|
|
|
</div>
|
|
|
- <div class="luck-list">
|
|
|
+ <div class="luck-list" @scroll="handleScroll">
|
|
|
<div class="luck-item" v-for="item, i in data.detail.allReceived" v-bind:key="i">
|
|
|
<img v-if="item.simpleUserInfoVO.avatarUrl" :src="item.simpleUserInfoVO.avatarUrl" alt />
|
|
|
<img v-else :src="require('../assets/svg/icon-twitter.svg')" alt />
|
|
@@ -156,7 +155,7 @@
|
|
|
<div>{{ data.detail.finishCount || 0 }}/{{ data.detail.totalCount || 0 }} People Got</div>
|
|
|
<div>Total ${{ data.detail.amountValue || 0 }} {{ data.detail.amountCurrencyCode || '' }}</div>
|
|
|
</div>
|
|
|
- <div class="luck-list">
|
|
|
+ <div class="luck-list" @scroll="handleScroll">
|
|
|
<div class="luck-item" v-for="item, i in data.detail.allReceived" v-bind:key="i">
|
|
|
<img v-if="item.simpleUserInfoVO.avatarUrl" :src="item.simpleUserInfoVO.avatarUrl" alt />
|
|
|
<img v-else :src="require('../assets/svg/icon-twitter.svg')" alt />
|
|
@@ -188,7 +187,6 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-
|
|
|
export default {
|
|
|
name: 'redPacket',
|
|
|
}
|
|
@@ -196,7 +194,7 @@ export default {
|
|
|
<script setup>
|
|
|
/* eslint-disable */
|
|
|
import { onMounted, reactive } from "vue";
|
|
|
-import { getPostDetail, getRedPacket, finishRedPacket } from '../http/redPacket.js'
|
|
|
+import { getPostDetail, getRedPacket, finishRedPacket, oneKeyLike, oneKeyReTweet, oneKeyFollow, getTaskDetail, getReceivedList } from '../http/redPacket.js'
|
|
|
import { getQueryString } from '../uilts/help.js'
|
|
|
import { getChromeCookie, concatChromeCookie, getChromeStorage, LANDING_PAGE } from '../uilts/chromeExtension.js'
|
|
|
var moment = require('moment');
|
|
@@ -204,10 +202,12 @@ var moment = require('moment');
|
|
|
let data = reactive({
|
|
|
status: '',
|
|
|
detail: {},
|
|
|
+ luck_list_end: false,
|
|
|
+ page_index: 1,
|
|
|
+ page_size: 20,
|
|
|
srcContentId: '',
|
|
|
close_title: 'Better luck next time!',
|
|
|
- error_txt: `oops, new accounts cannot participate in this event,
|
|
|
- better luck next time!`,
|
|
|
+ error_txt: `oops, new accounts cannot participate in this event,`,
|
|
|
receiveAmount: 0,
|
|
|
money: 0,
|
|
|
// 状态
|
|
@@ -217,9 +217,75 @@ let data = reactive({
|
|
|
retweet: false
|
|
|
}
|
|
|
})
|
|
|
-function clickBtn() {
|
|
|
+function clickLickBtn() {
|
|
|
+ data.done.like = true
|
|
|
// 跳转到推文详情
|
|
|
- window.open(`https://twitter.com/${data.detail.postUserInfo.nickName}/status/${data.srcContentId}`)
|
|
|
+ oneKeyLike({
|
|
|
+ params: {
|
|
|
+ tweetId: data.srcContentId
|
|
|
+ }
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.code == 0) {
|
|
|
+ if (res.data.result) {
|
|
|
+ data.done.like = true
|
|
|
+ } else {
|
|
|
+ data.done.like = false
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ data.done.like = false
|
|
|
+ console.log(res)
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+function handleScroll(e) {
|
|
|
+ if (data.luck_list_end) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ e = e.target
|
|
|
+ if ((e.clientHeight + e.scrollTop) / e.scrollHeight > .8) {
|
|
|
+ data.luck_list_end = true
|
|
|
+ data.page_index++
|
|
|
+ getReceivedList({
|
|
|
+ params: {
|
|
|
+ pageNum: data.page_index,
|
|
|
+ pageSize: data.page_size,
|
|
|
+ postId: data.postId
|
|
|
+ }
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.code == 0) {
|
|
|
+ if (res.data.length > 0) {
|
|
|
+ data.detail.allReceived = data.detail.allReceived.concat(res.data)
|
|
|
+ data.luck_list_end = false
|
|
|
+ } else {
|
|
|
+ data.luck_list_end = true
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ console.log('getReceivedList', res)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+function clickRetweetBtn() {
|
|
|
+ data.done.retweet = true
|
|
|
+ oneKeyReTweet({
|
|
|
+ params: {
|
|
|
+ tweetId: data.srcContentId
|
|
|
+ }
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.code == 0) {
|
|
|
+ if (res.data.result) {
|
|
|
+ data.done.retweet = true
|
|
|
+ } else {
|
|
|
+ data.done.retweet = false
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ data.done.retweet = false
|
|
|
+ console.log(res)
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
|
|
@@ -235,13 +301,37 @@ function getValidity() {
|
|
|
}
|
|
|
|
|
|
function clickFollowAll(item) {
|
|
|
+ let arr_name = []
|
|
|
for (let i in item) {
|
|
|
- clickFollow(item[i])
|
|
|
+ arr_name.push(item[i].name)
|
|
|
}
|
|
|
+ oneKeyFollow({
|
|
|
+ params: {
|
|
|
+ names: arr_name
|
|
|
+ }
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.code == 0) {
|
|
|
+ res.data.forEach((item1) => {
|
|
|
+ data.detail.taskCondition[0].relatedUsers.forEach(item2 => {
|
|
|
+ if (item1.name == item2.name) {
|
|
|
+ item2.finished = true
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
+ let _len = data.detail.taskCondition[0].relatedUsers.filter((item) => { return item.finished == false }).length
|
|
|
+ if (_len > 0) {
|
|
|
+ data.done.follow = false
|
|
|
+ } else {
|
|
|
+ data.done.follow = true
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ data.detail.taskCondition[0].relatedUsers.forEach(item => {
|
|
|
+ item.finished = false
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
-function clickFollow(item) {
|
|
|
- window.open(`https://twitter.com/${item.name}`)
|
|
|
-}
|
|
|
+
|
|
|
|
|
|
function showLastTwoPlace(n) {
|
|
|
return n / 100
|
|
@@ -269,6 +359,12 @@ function init() {
|
|
|
switch (res.code.toString()) {
|
|
|
case "0":
|
|
|
data.srcContentId = res.data.srcContentId
|
|
|
+ if(data.tweetId != data.srcContentId){
|
|
|
+ data.error_txt = 'Giveways link Error'
|
|
|
+ data.status = 'error'
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
// 未开始
|
|
|
if (res.data.postType == 0) {
|
|
|
data.status = 'not-open'
|
|
@@ -321,9 +417,36 @@ function init() {
|
|
|
|
|
|
}
|
|
|
})
|
|
|
+
|
|
|
+ // 任务详情
|
|
|
+ getTaskDetail({
|
|
|
+ params: {
|
|
|
+ postId: data.postId
|
|
|
+ }
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.code == 0) {
|
|
|
+ for (let i in res.data) {
|
|
|
+ switch (res.data[i].type) {
|
|
|
+ case 1:
|
|
|
+ data.done.follow = res.data[i].finished
|
|
|
+ data.detail.taskCondition[0].relatedUsers = res.data[i].detail
|
|
|
+ break
|
|
|
+ case 2:
|
|
|
+ data.done.like = res.data[i].finished
|
|
|
+ break
|
|
|
+ case 3:
|
|
|
+ data.done.retweet = res.data[i].finished
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ console.log(res.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
onMounted(() => {
|
|
|
data.postId = getQueryString('postId')
|
|
|
+ data.tweetId = getQueryString('tweetId')
|
|
|
init()
|
|
|
})
|
|
|
|
|
@@ -434,6 +557,7 @@ function handleFinishRedPacket() {
|
|
|
}
|
|
|
break
|
|
|
case "2009":
|
|
|
+ data.error_txt = `oops, new accounts cannot participate in this event,`
|
|
|
data.status = 'error'
|
|
|
break
|
|
|
default:
|