Parcourir la source

[edit] publish 代码优化 、修改其他异常

wenliming il y a 2 ans
Parent
commit
0d2840df4d

+ 15 - 0
src/types/global.js

@@ -21,3 +21,18 @@ export const RewardType = {
   money: 1,
   custom: 2,
 };
+
+/**
+ * 任务类型
+ */
+export const TaskType = {
+  twitterFollow: 1,
+  twitterLikeTweet: 2,
+  twitterRetweet: 3,
+  joinDiscord: 7,
+  repostToFacebook: 8,
+  twitterCommentAndTag: 9,
+};
+
+
+

+ 1 - 1
src/view/components/currency-list.vue

@@ -20,7 +20,7 @@
                 :style="{right: !showRefresh ? '6%' : '16%'}"
                 @click="clearIpt" >
         </div>
-        <div class="list-wrapper" ref="listWrapperDom" @scroll="listScroll">
+        <div class="list-wrapper" :style="{'paddingBottom': showGeneralLottery ? '50px' : '0'}" ref="listWrapperDom" @scroll="listScroll">
             <div class="page-list" ref="listContentDom" v-if="!showSearch">
                 <div class="list-item" v-for="(item, index) in currencyInfoList" :key="index">
 

+ 315 - 0
src/view/iframe/publish/components/preview-sheet.vue

@@ -0,0 +1,315 @@
+<template>
+    <div class="preview">
+        <div class="card" :class="{
+            center:
+                !isMoneyRewardCpd ||
+                Number(baseFormData.amountValue) <=
+                Number(currentCurrencyInfo.balance),
+        }">
+            <div class="card-title">
+                <img class="img" v-if="
+                    isMoneyRewardCpd &&
+                    Number(baseFormData.amountValue) >
+                    Number(currentCurrencyInfo.balance)
+                " :src="require('@/assets/subject/top-01.svg')" />
+                <div class="font">
+                    Preview: <span>{{ installStatus ? "After" : "Before" }}</span> DeNet
+                    Installed
+                </div>
+            </div>
+            <div class="flash">
+                <preview-card 
+                    :currentCurrencyInfo="currentCurrencyInfo" 
+                    :postData="publishRes"
+                    :baseFormData="baseFormData" 
+                    :amountFontSize="previewFontSize" 
+                    :customPosterInfo="customPosterData">
+                </preview-card>
+            </div>
+        </div>
+        <!-- 需充值 -->
+        <div class="card-content" v-if="
+            isMoneyRewardCpd &&
+            Number(baseFormData.amountValue) > Number(currentCurrencyInfo.balance)
+        ">
+            <template v-if="currentCurrencyInfo.currencyCode === 'USD'">
+                <div class="card-title">
+                    <img class="img" :src="require('@/assets/subject/top-02.svg')" />
+                    <div class="font">Deposit to Send Giveaway</div>
+                </div>
+                <div class="card-list">
+                    <div class="item">
+                        <div class="l">Giveaway Amount</div>
+                        <div class="r order-amount">
+                            ${{ finalAmountData.orderAmountValue }}
+                        </div>
+                    </div>
+                    <div class="item">
+                        <div class="l">Balance</div>
+                        <div class="r txt">${{ finalAmountData.balance }}</div>
+                    </div>
+                    <div class="item">
+                        <div class="l">
+                            Paypal charges fee ({{ finalAmountData.feeDesc }})
+                        </div>
+                        <div class="r txt">${{ finalAmountData.feeAmountValue }}</div>
+                    </div>
+                    <div class="item">
+                        <div class="l">Deposit Amount</div>
+                        <div class="r deposit-amount">
+                            ${{ finalAmountData.rechargeAmountValue }}
+                        </div>
+                    </div>
+                </div>
+            </template>
+            <template v-else>
+                <div class="card-title">
+                    <img class="img" :src="require('@/assets/subject/top-02.svg')" />
+                    <div class="font">Deposit to Send Giveaway</div>
+                </div>
+                <top-up2 :currentCurrencyInfo="tempCurrentCurrencyInfo" 
+                        @topUpDone="topUpDone">
+                </top-up2>
+                <div class="card-title">
+                    <img class="img" :src="require('@/assets/subject/top-03.svg')" />
+                    <div class="font">Wait for the amount to arrive</div>
+                </div>
+                <div class="card-amount">
+                    <img class="icon" src="@/assets/subject/icon-balance.png" />
+                    <div class="con">
+                        <div class="desc">Balance</div>
+                        <div class="price">
+                            {{ currentCurrencyInfo.balance }}
+                            {{ currentCurrencyInfo.tokenSymbol }}
+                        </div>
+                    </div>
+                    <img class="refresh" 
+                        :class="{ 'icon-refresh-rotate': refreshRotate }" 
+                        @click="updateCurrencyBanlce"
+                        :src="require('@/assets/svg/icon-form-refresh-blue.svg')" />
+                </div>
+            </template>
+        </div>
+    </div>
+</template>
+
+<script setup>
+import { ref, defineProps, defineEmits, provide, computed } from "vue";
+
+import previewCard from "@/view/iframe/publish/components/preview-card";
+import topUp2 from "@/view/iframe/publish/components/top-up2.vue";
+
+import { RewardType } from '@/types';
+
+let installStatus = ref(false);
+provide('installStatus', installStatus)
+
+// 刷新按钮旋转
+let refreshRotate = ref(false);
+
+const props = defineProps({
+    baseFormData: {
+        type: Object,
+        default: () => {
+            return {
+                amountCurrencyCode: "",
+                amountValue: "",
+                totalCount: "",
+                validityDuration: "",
+                type: selectModeInfo.type,
+                rewardType: RewardType.money,
+                customizedReward: ""
+            }
+        },
+    },
+    currentCurrencyInfo: {
+        type: Object,
+        default: () => {
+            return {}
+        }
+    },
+    tempCurrentCurrencyInfo: {
+        type: Object,
+        default: () => {
+            return {}
+        }
+    },
+    publishRes: {
+        type: Object,
+        default: () => {
+            return {}
+        }
+    },
+    previewFontSize: {
+        type: [Number, String],
+        default: 56
+    },
+    customPosterData: {
+        type: Object,
+        default: () => {
+            return {}
+        }
+    },
+    finalAmountData: {
+        type: Object,
+        default: () => {
+            return {
+                currencyCode: '',
+                feeAmountValue: 0,
+                finalAmountValue: 0,
+                requestAmountValue: 0,
+            }
+        }
+    }
+});
+
+let isMoneyRewardCpd =computed(() => props.baseFormData.rewardType === RewardType.money);
+
+const emits = defineEmits(["onTopUpDone", "onUpdateCurrencyBanlce"]);
+
+const topUpDone = () => {
+    emits("onTopUpDone", {});
+}
+
+const updateCurrencyBanlce = () => {
+    if(!refreshRotate.value) {
+        refreshRotate.value = true;
+        setTimeout(() => {
+            refreshRotate.value = false;
+        }, 1000)
+    }
+    emits("onUpdateCurrencyBanlce", {});
+}
+</script>
+
+<style scoped lang="scss">
+.preview {
+    padding: 30px 40px;
+    height: calc(100% - 80px);
+    overflow-y: auto;
+
+    .card {
+        float: left;
+        width: 480px;
+        position: relative;
+
+        .flash {
+            overflow: hidden;
+            height: 600px;
+            border-radius: 26px;
+            border: solid 1px #ececec;
+        }
+
+        &.center {
+            margin-left: 50%;
+            transform: translateX(-50%);
+        }
+    }
+
+    .card-title {
+        height: 32px;
+
+        .img {
+            float: left;
+            width: 20px;
+            height: 20px;
+            margin-right: 8px;
+        }
+
+        .font {
+            float: left;
+            font-size: 17px;
+            font-weight: 500;
+
+            span {
+                color: #0091e9;
+            }
+        }
+    }
+
+    .card-content {
+        float: right;
+        width: 500px;
+    }
+
+    .card-amount {
+        overflow: hidden;
+        display: flex;
+        height: 80px;
+        align-items: center;
+        padding: 20px;
+        border-radius: 20px;
+        border: 1px solid #e6e6e6;
+
+        .icon {
+            width: 40px;
+            height: 40px;
+        }
+
+        .con {
+            flex: 1;
+            padding: 0 10px;
+
+            .desc {
+                color: rgba($color: #000000, $alpha: 0.5);
+                font-size: 12px;
+                margin-bottom: 4px;
+            }
+
+            .price {
+                font-size: 16px;
+                font-weight: bold;
+                word-break: break-all;
+            }
+        }
+
+        .refresh {
+            cursor: pointer;
+            width: 30px;
+            height: 30px;
+            margin-top: -5px;
+        }
+    }
+
+    .card-list {
+        padding: 10px 20px;
+        border-radius: 20px;
+        border: 1px solid #e6e6e6;
+
+        .item {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            height: 47px;
+            font-size: 14px;
+            font-weight: 500;
+            box-shadow: inset 0px -1px 0px #eaeaea;
+
+            .order-amount {
+                font-weight: 600;
+                font-size: 20px;
+            }
+
+            .txt {
+                font-weight: 500;
+                font-size: 16px;
+                color: #9a9a9a;
+            }
+
+            .deposit-amount {
+                font-weight: 600;
+                font-size: 20px;
+                color: #1d9bf0;
+            }
+        }
+
+        .item:last-child {
+            box-shadow: none;
+        }
+    }
+    .icon-refresh-rotate {
+        transform: rotate(360deg);
+        transition-duration: 1s;
+    }
+}
+</style>

+ 1 - 1
src/view/iframe/publish/components/top-up.vue

@@ -76,7 +76,7 @@ const props = defineProps({
     },
 })
 
-const emits = defineEmits(['doneHandle']);
+const emits = defineEmits(['topUpDone']);
 
 const createQRCode = (str) => {
     var canvas = document.getElementById('canvas')

+ 1 - 1
src/view/iframe/publish/components/top-up2.vue

@@ -69,7 +69,7 @@ const props = defineProps({
     },
 })
 
-const emits = defineEmits(['doneHandle', 'selectCurrency']);
+const emits = defineEmits(['topUpDone', 'selectCurrency']);
 
 const createQRCode = (str) => {
     var canvas = document.getElementById('canvas')

+ 53 - 234
src/view/iframe/publish/give-dialog.vue

@@ -23,7 +23,6 @@
                 <!-- 充值组件 -->
                 <top-up
                     v-if="showComType == 'topUp'" 
-                    :asyncIng="asyncIng"
                     :currentCurrencyInfo="tempCurrentCurrencyInfo"
                     @topUpDone="topUpDone">
                 </top-up>
@@ -154,7 +153,7 @@
                                                         :src="require('@/assets/svg/icon-winner-v2.svg')"/>
                                                     Winner Count
                                                 </div>
-                                                <div class="msg" v-show="selectModeInfo.type == 1">Recommend Winners 100~10000</div>
+                                                <div class="msg" v-show="selectModeInfo.type == PlayType.common">Recommend Winners 100~10000</div>
                                             </div>
                                             <input v-model="baseFormData.totalCount"
                                                 placeholder="0"
@@ -162,7 +161,7 @@
                                                 @input="onCountInput"
                                                 @blur="onCountBlur"/>
                                         </div>
-                                        <div class="item automatically-input" v-if="selectModeInfo.type == 2">
+                                        <div class="item automatically-input" v-if="selectModeInfo.type == PlayType.lottery">
                                             <div class="label">
                                                 <img class="icon"
                                                     :src="require('@/assets/svg/icon-automatically.svg')"/>
@@ -170,10 +169,10 @@
                                             </div>
                                             <div class="input-wrapper">
                                                 <input v-model="baseFormData.validityDuration"
-                                                placeholder="0"
-                                                @input="onValidityDurationInput"
-                                                @blur="onValidityDurationBlur"/>
-                                                <span class="unit">h</span>
+                                                    placeholder="0"
+                                                    @input="onValidityDurationInput"
+                                                    @blur="onValidityDurationBlur"/>
+                                                    <span class="unit">h</span>
                                             </div>
                                         </div>
                                     </div>
@@ -217,7 +216,7 @@
                                         <li class="row">
                                             Each user can only receive a reward once per task.
                                         </li>
-                                        <li class="row"  v-show="selectModeInfo.type == 1">
+                                        <li class="row"  v-show="selectModeInfo.type == PlayType.common">
                                             The reward will expire in 7 days once issued. Please promote it as much as possible within this period. After the experiment, the remaining rewards will be returned to your DeNet Wallet.
                                         </li>
                                     </ul>
@@ -282,8 +281,7 @@
                                     @click="confirm">
                                     <img  class="icon-loading"
                                         v-if="submitIng"
-                                        :src="require('@/assets/svg/icon-btn-loading.svg')"
-                                    />
+                                        :src="require('@/assets/svg/icon-btn-loading.svg')"/>
                                     {{iptErrMsgTxt ? iptErrMsgTxt : 'NEXT'}}
                                 </div>
                             </div>
@@ -291,86 +289,18 @@
 
                         <!-- 预览 -->
                         <template v-else-if="showComType == 'preview'">
-                            <div class="preview">
-                                <div class="card"
-                                    :class="{ center: !isMoneyRewardCpd || Number(baseFormData.amountValue) <= Number(currentCurrencyInfo.balance) }">
-                                    <div class="card-title">
-                                        <img class="img"
-                                            v-if="isMoneyRewardCpd && Number(baseFormData.amountValue) > Number(currentCurrencyInfo.balance)"
-                                            :src=" require('@/assets/subject/top-01.svg') " />
-                                        <div class="font">
-                                            Preview: <span>{{installStatus ? 'After' : 'Before' }}</span> DeNet Installed
-                                        </div>
-                                    </div>
-                                    <div class="flash">
-                                        <preview-card
-                                            :currentCurrencyInfo="currentCurrencyInfo"
-                                            :postData="publishRes"
-                                            :baseFormData="baseFormData"
-                                            :amountFontSize="previewFontSize"
-                                            :customPosterInfo="customPosterData"
-                                        ></preview-card>
-                                    </div>
-                                </div>
-                                <!-- 需充值 -->
-                                <div class="card-content" v-if="isMoneyRewardCpd && Number(baseFormData.amountValue) > Number(currentCurrencyInfo.balance)">
-                                    <template v-if="currentCurrencyInfo.currencyCode === 'USD'">
-                                        <div class="card-title">
-                                            <img class="img" :src=" require('@/assets/subject/top-02.svg') " />
-                                            <div class="font">Deposit to Send Giveaway</div>
-                                        </div>
-                                        <div class="card-list">
-                                            <div class="item">
-                                                <div class="l">Giveaway Amount</div>
-                                                <div class="r order-amount">${{finalAmountData.orderAmountValue}}</div>
-                                            </div>
-                                            <div class="item">
-                                                <div class="l">Balance</div>
-                                                <div class="r txt">${{finalAmountData.balance}}</div>
-                                            </div>
-                                            <div class="item">
-                                                <div class="l">Paypal charges fee ({{finalAmountData.feeDesc}})</div>
-                                                <div class="r txt">${{finalAmountData.feeAmountValue}}</div>
-                                            </div>
-                                            <div class="item">
-                                                <div class="l">Deposit Amount</div>
-                                                <div class="r deposit-amount">${{finalAmountData.rechargeAmountValue}}</div>
-                                            </div>
-                                        </div>
-                                    </template>
-                                    <template v-else>
-                                        <div class="card-title">
-                                            <img class="img" :src=" require('@/assets/subject/top-02.svg') " />
-                                            <div class="font">Deposit to Send Giveaway</div>
-                                        </div>
-                                        <top-up2
-                                            :asyncIng="asyncIng"
-                                            :currentCurrencyInfo="tempCurrentCurrencyInfo"
-                                            @topUpDone="topUpDone">
-                                        </top-up2>
-                                        <div class="card-title">
-                                            <img class="img" :src=" require('@/assets/subject/top-03.svg') " />
-                                            <div class="font">Wait for the amount to arrive</div>
-                                        </div>
-                                        <div class="card-amount">
-                                            <img class="icon" src="@/assets/subject/icon-balance.png" />
-                                            <div class="con">
-                                                <div class="desc">Balance</div>
-                                                <div class="price">{{currentCurrencyInfo.balance}} {{currentCurrencyInfo.tokenSymbol}}</div>
-                                            </div>
-                                            <img
-                                                class="refresh"
-                                                :class="{ 'icon-refresh-rotate': refreshRotate }"
-                                                @click="updateCurrencyBanlce"
-                                                :src=" require('@/assets/svg/icon-form-refresh-blue.svg') "
-                                            />
-                                        </div>
-                                    </template>
-                                </div>
-                            </div>
+                            <preview-sheet :baseFormData="baseFormData"
+                                :currentCurrencyInfo="currentCurrencyInfo"
+                                :tempCurrentCurrencyInfo="tempCurrentCurrencyInfo"
+                                :publishRes="publishRes"
+                                :previewFontSize="previewFontSize"
+                                :customPosterData="customPosterData"
+                                :finalAmountData="finalAmountData"
+                                @onTopUpDone="topUpDone"
+                                @onUpdateCurrencyBanlce="updateCurrencyBanlce"></preview-sheet>
                         </template>
 
-                        <!-- paypal支付按钮 -->
+                        <!-- 支付按钮 -->
                         <div class="payment" v-show="showComType == 'preview'">
                             <pay-button
                                 ref="payButtonDom"
@@ -467,7 +397,7 @@ import { getFrontConfig, calcRechargePayAmount } from "@/http/account";
 import { uploadSignature, uploadFile } from '@/http/media';
 import {setChromeStorage, getChromeStorage} from "@/uilts/chromeExtension"
 import { debounce, getBit } from "@/uilts/help"
-import { PlayType, RewardType } from '@/types';
+import { PlayType, RewardType, TaskType } from '@/types';
 import Report from "@/log-center/log"
 import { ElMessage, ElLoading } from "element-plus";
 import "element-plus/es/components/message/style/css";
@@ -480,14 +410,13 @@ import { message } from 'ant-design-vue';
 import messageBox from "@/view/components/message-box.vue";
 import currencyList from "@/view/components/currency-list.vue";
 import currencySelect from "@/view/components/currency-select.vue";
-import previewCard from "@/view/iframe/publish/components/preview-card";
 import followInput from "@/view/iframe/publish/components/follow-input";
 import payButton from "@/view/iframe/publish/components/pay-button";
 import topUp from "@/view/iframe/publish/components/top-up.vue";
-import topUp2 from "@/view/iframe/publish/components/top-up2.vue";
 import toolBox from '@/view/iframe/publish/tool-box/index.vue'
 import giveawayPoster from '@/view/iframe/publish/components/giveaway-poster.vue';
 import giveDialogHead from "@/view/iframe/publish/components/give-dialog-head";
+import previewSheet from "@/view/iframe/publish/components/preview-sheet.vue";
 import GlobalTip from '@/view/components/global-tip.vue'
 import customCardCover from '@/view/components/custom-card-cover.vue'
 
@@ -599,7 +528,7 @@ let postId = ref('');
 
 let selectModeInfo = reactive({
     index: 0,
-    type: 2 // 1: 红包 2: 抽奖
+    type: PlayType.lottery // 1: 红包 2: 抽奖
 })
 
 // 余额是否同步中
@@ -654,7 +583,7 @@ let formList = reactive([
         label: "Follow",
         icon: require("@/assets/svg/icon-task-twitter.svg"),
         nodeType: "textarea",
-        type: 1,
+        type: TaskType.twitterFollow,
         text: [],
         checked: true,
         show: true
@@ -663,7 +592,7 @@ let formList = reactive([
         label: "Retweet & Like",
         icon: require("@/assets/svg/icon-task-twitter.svg"),
         nodeType: "div",
-        type: 3,
+        type: TaskType.twitterRetweet,
         checked: true,
         show: true
     },
@@ -671,7 +600,7 @@ let formList = reactive([
         label: "Like Tweet",
         icon: require("@/assets/svg/icon-task-twitter.svg"),
         nodeType: "div",
-        type: 2,
+        type: TaskType.twitterLikeTweet,
         checked: true,
         show: false
     },
@@ -679,7 +608,7 @@ let formList = reactive([
         label: "Comment and Tag 3 friends",
         icon: require("@/assets/svg/icon-task-twitter.svg"),
         nodeType: "div",
-        type: 9,
+        type: TaskType.twitterCommentAndTag,
         checked: true,
         show: true
     },
@@ -688,7 +617,7 @@ let formList = reactive([
         icon: require("@/assets/svg/icon-task-facebook.svg"),
         nodeType: "div",
         text: '',
-        type: 8,
+        type: TaskType.repostToFacebook,
         checked: false,
         show: true
     },
@@ -697,7 +626,7 @@ let formList = reactive([
         icon: require("@/assets/svg/icon-discord-mini.svg"),
         nodeType: "input",
         text: '',
-        type: 7,
+        type: TaskType.joinDiscord,
         checked: false,
         show: true
     },
@@ -707,12 +636,12 @@ let publishModeList = reactive([
     {
         imgActive: require("@/assets/svg/img-A1.svg"),
         imgInActive: require("@/assets/svg/img-A0.svg"),
-        type: 2
+        type: PlayType.lottery
     },
     {
         imgActive: require("@/assets/svg/img-B1.svg"),
         imgInActive: require("@/assets/svg/img-B0.svg"),
-        type: 1
+        type: PlayType.common
     }
 ])
 
@@ -1067,13 +996,10 @@ const customCoverImg = () => {
  */
 const topUpDone = () => {
     currentCurrencyInfo.value = tempCurrentCurrencyInfo.value;
-    asyncIng.value = true;
-    asyncIng.value = false;
     showCurrencyPop.value = false;
     showCurrencySelect.value = false;
     showComType.value = 'default';
-    onIptSetErrorTxt()
-    
+    onIptSetErrorTxt();
     asyncTokenRechRecord((res) => {
         if(res.code == 0 && res.data && res.data.length) {
             let currencyInfo = res.data[0];
@@ -1109,12 +1035,19 @@ const updateCurrencyBanlce = () => {
  * 同步链上交易
  */
 const asyncTokenRechRecord = (cb) => {
+    if(asyncIng.value) {
+        return;
+    }
+    asyncIng.value = true;
     syncChainTokenRechargeRecord({
         params: {
             currencyCode: currentCurrencyInfo.value.currencyCode
         }
     }).then(res => {
+        asyncIng.value = false;
         cb && cb(res)
+    }).catch((err) => {
+        asyncIng.value = false;
     })
 }
 
@@ -1135,12 +1068,12 @@ const submitRequest = async () => {
     for (let i = 0; i < formList.length; i++) {
         let item = {};
         item.type = formList[i]["type"];
-        if (item.type == 1 && atUserList.value.length) {
+        if (item.type == TaskType.twitterFollow && atUserList.value.length) {
             // follow 参数
             let relatedUsers = atUserList.value.filter(item => item.name);
             item.relatedUsers = relatedUsers;
             finishConditions.push(item);
-        } else  if (formList[i]["type"] == 7) {
+        } else  if (formList[i]["type"] == TaskType.joinDiscord) {
             // join discord
             if(formList[i]["checked"] && formList[i]["text"]) {
                 item.bizData = JSON.stringify({inviteUrl: formList[i]["text"]});
@@ -1269,7 +1202,7 @@ const initParams = () => {
 };
 
 const setDiscordIptTxt = ({text}) => {
-    const index = formList.findIndex(item => item.type == 7);
+    const index = formList.findIndex(item => item.type == TaskType.joinDiscord);
     formList[index]['text'] = text;
 }
 
@@ -1379,21 +1312,19 @@ const onCountInput = () => {
 };
 
 const onValidityDurationInput = () => {
-    let val = baseFormData.validityDuration;
-
-    if (val == 0) {
-        val = "";
-    } else if(val > lotteryMaxHourDuration) {
-        val = lotteryMaxHourDuration+'';
-    }
-    val = val.replace(/[^\d]/g, "");
-    baseFormData.validityDuration = val;
-
-    setInputErrorMsg();
+    validityDurationHandler()
+    let val = setInputErrorMsg();
     return val;
 }
 
 const onValidityDurationBlur = () => {
+    validityDurationHandler();
+    let val = setInputErrorMsg();
+    return val;
+}
+
+
+const validityDurationHandler = () => {
     let val = baseFormData.validityDuration;
     if (val == 0) {
         val = "";
@@ -1403,7 +1334,6 @@ const onValidityDurationBlur = () => {
     val = val.replace(/[^\d]/g, "");
     baseFormData.validityDuration = val;
 
-    setInputErrorMsg();
     return val;
 }
 
@@ -1468,7 +1398,7 @@ const onIptSetErrorTxt = (params = {}) => {
         if (!res.flag) {
             iptErrMsgTxt.value = `${baseFormData.amountValue} ${currentCurrencyInfo.value.tokenSymbol} Can send up to ${res.count} winners`;
         } else {
-            if(baseFormData.type == 2 && !baseFormData.validityDuration) {
+            if(baseFormData.type == PlayType.lottery && !baseFormData.validityDuration) {
                 iptErrMsgTxt.value = "Enter Automatically Draw";
             } else {
                 //清空错误提示
@@ -1478,7 +1408,7 @@ const onIptSetErrorTxt = (params = {}) => {
                 }
             }
         }
-    } else if(baseFormData.type == 2 && !baseFormData.validityDuration) {
+    } else if(baseFormData.type == PlayType.lottery && !baseFormData.validityDuration) {
         // 抽奖模式 没有输入时长
         iptErrMsgTxt.value = "Enter Automatically Draw";
     } else {
@@ -1496,7 +1426,7 @@ const formSwitchChange = (val, params, index) => {
 }
 
 const closeDiscordTask = (val, params, index) => {
-    if(params.type == 7) {
+    if(params.type == TaskType.joinDiscord) {
         if(!val) {
             //错误类型 discord 清空discord错误校验
             if(iptErrType == 'discord') {
@@ -1531,7 +1461,7 @@ const onBlurDiscordAddress = (e, index) => {
 
 
 const getDiscordIptData = () => {
-    let discordItem = formList.find(item => item.type == 7);
+    let discordItem = formList.find(item => item.type == TaskType.joinDiscord);
     return discordItem;
 }
 
@@ -2510,117 +2440,6 @@ onMounted(() => {
         }
     }
 }
-
-.preview {
-    padding: 30px 40px;
-    height: calc(100% - 80px);
-    overflow-y: auto;
-    .card {
-        float: left;
-        width: 480px;
-        position: relative;
-        .flash {
-            overflow: hidden;
-            height: 600px;
-            border-radius: 26px;
-            border: solid 1px #ECECEC;
-        }
-        &.center {
-            margin-left: 50%;
-            transform: translateX(-50%);
-        }
-    }
-    .card-title {
-        height: 32px;
-        .img {
-            float: left;
-            width: 20px;
-            height: 20px;
-            margin-right: 8px;
-        }
-        .font {
-            float: left;
-            font-size: 17px;
-            font-weight: 500;
-            span {
-                color: #0091e9;
-            }
-        }
-    }
-    .card-content {
-        float: right;
-        width: 500px;
-    }
-    .card-amount {
-        overflow: hidden;
-        display: flex;
-        height: 80px;
-        align-items: center;
-        padding: 20px;
-        border-radius: 20px;
-        border: 1px solid #E6E6E6;
-        .icon {
-            width: 40px;
-            height: 40px;
-        }
-        .con {
-            flex: 1;
-            padding: 0 10px;
-            .desc {
-                color: rgba($color: #000000, $alpha: 0.5);
-                font-size: 12px;
-                margin-bottom: 4px;
-            }
-            .price {
-                font-size: 16px;
-                font-weight: bold;
-                word-break: break-all;
-            }
-        }
-        .refresh {
-            cursor: pointer;
-            width: 30px;
-            height: 30px;
-            margin-top: -5px;
-        }
-    }
-    .card-list {
-        padding: 10px 20px;
-        border-radius: 20px;
-        border: 1px solid #E6E6E6;
-        .item {
-            display: flex;
-            justify-content: space-between;
-            align-items: center;
-            height: 47px;
-            font-size: 14px;
-            font-weight: 500;
-            box-shadow: inset 0px -1px 0px #EAEAEA;
-
-            .order-amount {
-                font-weight: 600;
-                font-size: 20px;
-            }
-
-            .txt {
-                font-weight: 500;
-                font-size: 16px;
-                color: #9A9A9A;
-            }
-
-            .deposit-amount {
-                font-weight: 600;
-                font-size: 20px;
-                color: #1D9BF0;
-            }
-        }
-        .item:last-child {
-            box-shadow: none;
-        }
-
-    }
-}
-
 .icon-refresh-rotate {
     transform: rotate(360deg);
     transition-duration: 1s;

+ 9 - 7
src/view/iframe/publish/tool-box/child/guide.vue

@@ -52,13 +52,15 @@ const confirm = () => {
     }, (response) => { });
 
     setTimeout(() => {
-        for (let i = 0; i < pageData.windowData.length; i++) {
-            let item = pageData.windowData[i];
-            chrome.windows.remove(
-                item.id,
-                function () { }
-            )
-        };
+        if(pageData.windowData) {
+            for (let i = 0; i < pageData.windowData.length; i++) {
+                let item = pageData.windowData[i];
+                chrome.windows.remove(
+                    item.id,
+                    function () { }
+                )
+            };
+        }
     }, 600)
 };
 

+ 29 - 14
src/view/popup/currency-detail.vue

@@ -74,7 +74,7 @@ import router from "@/router/popup.js";
 import Report from "@/log-center/log";
 import { getStorage } from "@/uilts/help";
 
-import { getCurrencyInfoBySymbol } from "@/http/publishApi";
+import { getCurrencyInfoBySymbol, syncChainTokenRechargeRecord } from "@/http/publishApi";
 import {setChromeStorage} from "@/uilts/chromeExtension"
 
 import VHead from '@/view/popup/components/head.vue'
@@ -188,22 +188,37 @@ const depositHandle = (_params) => {
   router.push('/top-up/info');
 };
 
+
+const asyncTokenRechRecord = (currencyCode = '', cb) => {
+    syncChainTokenRechargeRecord({
+        params: {
+            currencyCode: currencyCode
+        }
+    }).then(res => {
+      cb && cb(res.data)
+    }).catch((err) => {
+      cb && cb()
+    })
+}
+
 const onRefresh = () => {
-  getCurrencyInfoBySymbol({
-    params: {
-      symbol: currencyInfo.value.tokenSymbol
-    }
-  }).then(res => {
-    if(res.code == 0) {
-      if(res.data && res.data.currencyCategories && res.data.currencyCategories.length) {
-        let data = res.data.currencyCategories[0].data;
-        if(data.length) {
-          let {totalBalance = '', totalUsdEstimateBalance = ''} = data[0] || {};
-          currencyInfo.value.totalBalance = totalBalance;
-          currencyInfo.value.totalUsdEstimateBalance = totalUsdEstimateBalance;
+  asyncTokenRechRecord('', () => {
+    getCurrencyInfoBySymbol({
+      params: {
+        symbol: currencyInfo.value.tokenSymbol
+      }
+    }).then(res => {
+      if(res.code == 0) {
+        if(res.data && res.data.currencyCategories && res.data.currencyCategories.length) {
+          let data = res.data.currencyCategories[0].data;
+          if(data.length) {
+            let {totalBalance = '', totalUsdEstimateBalance = ''} = data[0] || {};
+            currencyInfo.value.totalBalance = totalBalance;
+            currencyInfo.value.totalUsdEstimateBalance = totalUsdEstimateBalance;
+          }
         }
       }
-    }
+    });
   })
 };