|
@@ -79,8 +79,7 @@
|
|
|
|
|
|
<div class="right"
|
|
|
:class="{'fill-right': showComType == 'preview' || toolBoxPageData.activePage == 'PREVIEW'}">
|
|
|
- <!-- <global-tip :type="'2'"></global-tip> -->
|
|
|
-
|
|
|
+ <global-tip :type="'2'"></global-tip>
|
|
|
|
|
|
<template v-if="publishType == 'TOOL_BOX'">
|
|
|
<tool-box
|
|
@@ -125,8 +124,7 @@
|
|
|
<img class="arrow"
|
|
|
:src="currentArrowCpd"/>
|
|
|
</div>
|
|
|
- <form-input
|
|
|
- class="margin-left-10"
|
|
|
+ <form-input class="margin-left-10"
|
|
|
:suffix="baseFormData.rewardType === RewardType.custom || currentCurrencyInfo.currencyCode ? currentPrizeCpd : ''">
|
|
|
<template v-slot:content>
|
|
|
<input style="width: 100px"
|
|
@@ -189,7 +187,26 @@
|
|
|
|
|
|
<!-- 新粉单价 -->
|
|
|
<div class="form-cell" v-if="selectModeInfo.type == PlayType.treasure">
|
|
|
-
|
|
|
+ <div class="cell-title">
|
|
|
+ <img class="title-icon" :src="require('@/assets/svg/icon-form-cost.svg')" />
|
|
|
+ Cost Per New Follower
|
|
|
+ </div>
|
|
|
+ <div class="cell-content flex">
|
|
|
+ <form-input :suffix="baseFormData.rewardType === RewardType.custom || currentCurrencyInfo.currencyCode ? currentPrizeCpd : ''">
|
|
|
+ <template v-slot:content>
|
|
|
+ <input style="width: 120px"
|
|
|
+ placeholder="0"/>
|
|
|
+ </template>
|
|
|
+ </form-input>
|
|
|
+ <form-input class="margin-left-10"
|
|
|
+ prefix="=$"
|
|
|
+ suffix="USD">
|
|
|
+ <template v-slot:content>
|
|
|
+ <input style="width: 80px"
|
|
|
+ placeholder="0"/>
|
|
|
+ </template>
|
|
|
+ </form-input>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
|
|
|
<!-- 开奖时间 -->
|
|
@@ -209,41 +226,78 @@
|
|
|
</form-input>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <!-- <div class="giveaway-poster" @click="customCoverImg">
|
|
|
- <div class="show-img">
|
|
|
- <div
|
|
|
- :style="{
|
|
|
- 'zoom': 55 / 500,
|
|
|
- 'position': 'absolute',
|
|
|
- 'width': '345px',
|
|
|
- }">
|
|
|
- <custom-card-cover
|
|
|
- :data="{
|
|
|
- totalCount: baseFormData.totalCount,
|
|
|
- amountValue: baseFormData.amountValue,
|
|
|
- tokenSymbol: currentCurrencyInfo.tokenSymbol,
|
|
|
- currencyIconUrl: currentCurrencyInfo.iconPath,
|
|
|
- type: baseFormData.type,
|
|
|
- validityDuration: baseFormData.validityDuration,
|
|
|
- customPosterUrl: customPosterData && customPosterData.after && customPosterData.after.imagePath || '',
|
|
|
- rewardType: baseFormData.rewardType,
|
|
|
- customizedReward: baseFormData.customizedReward
|
|
|
- }">
|
|
|
- </custom-card-cover>
|
|
|
+
|
|
|
+ <!-- 夺宝 follow -->
|
|
|
+ <div class="form-cell" v-if="selectModeInfo.type == PlayType.treasure">
|
|
|
+ <div class="cell-title">
|
|
|
+ <img class="title-icon" :src="require('@/assets/svg/icon-form-follow.svg')" />
|
|
|
+ Follow
|
|
|
+ </div>
|
|
|
+ <div class="cell-content">
|
|
|
+ <follow-input style="padding: 0" :isAddSelf="!isBack"
|
|
|
+ :atUserList="atUserList"
|
|
|
+ :isRequire = 'true'
|
|
|
+ @addUser="addFollowUser"
|
|
|
+ @setUser="setFollowUser"
|
|
|
+ @delUser="delFollowUser"></follow-input>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="show-font">
|
|
|
- <span>Giveaway Poster</span>
|
|
|
- <img class="new" v-if="customShowNewImage" :src=" require('@/assets/svg/img-new.svg') " />
|
|
|
- </div>
|
|
|
- <div class="show-placeholder">Replace</div>
|
|
|
- <div class="arrow">
|
|
|
- <img :src=" require('@/assets/svg/icon-cell-arrow-right.svg') " />
|
|
|
+
|
|
|
+ <!-- 任务 -->
|
|
|
+ <div class="form-cell" v-if="selectModeInfo.type != PlayType.treasure">
|
|
|
+ <div class="cell-title">
|
|
|
+ <img class="title-icon" :src="require('@/assets/svg/icon-form-task.svg')"/>
|
|
|
+ Tasks
|
|
|
+ </div>
|
|
|
+ <div class="form-cell-content form-require">
|
|
|
+ <!-- 转推、like、关注 -->
|
|
|
+ <div v-for="(item, index) in formList"
|
|
|
+ :key="index">
|
|
|
+ <div v-if="item.show" class="form-item"
|
|
|
+ :class="{ 'border-hide': formList.length - 1 == index }">
|
|
|
+ <div class="item-left">
|
|
|
+ <div class="label">
|
|
|
+ <img class="icon" :src="item.icon"/>
|
|
|
+ {{ item.label }}
|
|
|
+ </div>
|
|
|
+ <div class="control"
|
|
|
+ v-if="item.nodeType == 'textarea'">
|
|
|
+ <follow-input
|
|
|
+ :isAddSelf="!isBack"
|
|
|
+ :atUserList="atUserList"
|
|
|
+ @addUser="addFollowUser"
|
|
|
+ @setUser="setFollowUser"
|
|
|
+ @delUser="delFollowUser"></follow-input>
|
|
|
+ </div>
|
|
|
+ <div class="control"
|
|
|
+ v-if="item.nodeType == 'input'">
|
|
|
+ <div v-if="showDiscordInvitePop"
|
|
|
+ class="discord-invite-info"
|
|
|
+ @click="showDiscordInvitePop = false">
|
|
|
+ <img class="icon" :src="discordInviteInfo.icon || require('@/assets/svg/icon-discord-mini.svg')" />
|
|
|
+ <span class="name">{{discordInviteInfo.name}}</span>
|
|
|
+ </div>
|
|
|
+ <input v-model="item.text"
|
|
|
+ placeholder="Enter discord invite link"
|
|
|
+ class="discord-address"
|
|
|
+ @input="onIptDiscordAddress($event, index)"
|
|
|
+ @blur="onBlurDiscordAddress($event, index)" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div>
|
|
|
+ <a-switch
|
|
|
+ v-if="item.type > 3"
|
|
|
+ v-model:checked="item.checked"
|
|
|
+ @change="formSwitchChange($event, item, index)"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div> -->
|
|
|
+ </div>
|
|
|
<!-- 提示 -->
|
|
|
- <ul class="tips-wrapper">
|
|
|
+ <ul class="tips-wrapper" v-if="selectModeInfo.type != PlayType.treasure">
|
|
|
<li class="row" style="white-space:nowrap;">
|
|
|
Rewards can only be claimed after the target user completes all tasks you set.
|
|
|
</li>
|
|
@@ -256,61 +310,10 @@
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="form-cell-item task-wrapper">
|
|
|
- <div class="title">
|
|
|
- <img class="icon" :src="require('@/assets/svg/icon-tasks-v2.svg')"/>
|
|
|
- Tasks
|
|
|
- </div>
|
|
|
- <div class="form-cell-content form-require">
|
|
|
- <!-- 转推、like、关注 -->
|
|
|
- <div v-for="(item, index) in formList"
|
|
|
- :key="index">
|
|
|
- <div v-if="item.show" class="form-item"
|
|
|
- :class="{ 'border-hide': formList.length - 1 == index }">
|
|
|
- <div class="item-left">
|
|
|
- <div class="label">
|
|
|
- <img class="icon" :src="item.icon"/>
|
|
|
- {{ item.label }}
|
|
|
- </div>
|
|
|
- <div class="control"
|
|
|
- v-if="item.nodeType == 'textarea'">
|
|
|
- <follow-input
|
|
|
- :isAddSelf="!isBack"
|
|
|
- :atUserList="atUserList"
|
|
|
- @addUser="addFollowUser"
|
|
|
- @setUser="setFollowUser"
|
|
|
- @delUser="delFollowUser"></follow-input>
|
|
|
- </div>
|
|
|
- <div class="control"
|
|
|
- v-if="item.nodeType == 'input'">
|
|
|
- <div v-if="showDiscordInvitePop"
|
|
|
- class="discord-invite-info"
|
|
|
- @click="showDiscordInvitePop = false">
|
|
|
- <img class="icon" :src="discordInviteInfo.icon || require('@/assets/svg/icon-discord-mini.svg')" />
|
|
|
- <span class="name">{{discordInviteInfo.name}}</span>
|
|
|
- </div>
|
|
|
- <input v-model="item.text"
|
|
|
- placeholder="Enter discord invite link"
|
|
|
- class="discord-address"
|
|
|
- @input="onIptDiscordAddress($event, index)"
|
|
|
- @blur="onBlurDiscordAddress($event, index)" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div>
|
|
|
- <a-switch
|
|
|
- v-if="item.type > 3"
|
|
|
- v-model:checked="item.checked"
|
|
|
- @change="formSwitchChange($event, item, index)"/>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
</div>
|
|
|
<div class="form-right-sheet">
|
|
|
-
|
|
|
+ <!-- 自定义封面事件 -->
|
|
|
+ <!-- @click="customCoverImg" -->
|
|
|
</div>
|
|
|
<div class="submit-btn-wrapper">
|
|
|
<div class="submit-btn"
|
|
@@ -1472,12 +1475,12 @@ const onIptSetErrorTxt = (params = {}) => {
|
|
|
iptErrMsgTxt.value = "Select a reward"
|
|
|
} else if (!baseFormData.amountValue || baseFormData.amountValue == '0') {
|
|
|
iptErrMsgTxt.value = "Enter an amount";
|
|
|
- } else if (!baseFormData.totalCount || baseFormData.totalCount == '0') {
|
|
|
- iptErrMsgTxt.value = "Enter the number of winners";
|
|
|
+ } else if (baseFormData.rewardType != PlayType.treasure && (!baseFormData.totalCount || baseFormData.totalCount == '0')) {
|
|
|
+ iptErrMsgTxt.value = "Enter the number of winners";
|
|
|
} else if (iptErrMsgTxt.value = checkUsdMinNumber()) {
|
|
|
// 最小法币金额限制
|
|
|
return isShowUsdMinMessage.value = true;
|
|
|
- } else if(baseFormData.rewardType === RewardType.money && +baseFormData.amountValue <= +currentCurrencyInfo.value.balance) {
|
|
|
+ } else if(baseFormData.rewardType === RewardType.money && baseFormData.rewardType != PlayType.treasure && +baseFormData.amountValue <= +currentCurrencyInfo.value.balance) {
|
|
|
// 输入金额 小于 余额
|
|
|
let res = calcIptValue();
|
|
|
if (!res.flag) {
|
|
@@ -1497,9 +1500,11 @@ const onIptSetErrorTxt = (params = {}) => {
|
|
|
// 抽奖模式 没有输入时长
|
|
|
iptErrMsgTxt.value = "Enter Automatically Draw";
|
|
|
} else {
|
|
|
- setDiscordErrTxt({getDuildId: true}, () => {
|
|
|
- iptErrMsgTxt.value = '';
|
|
|
- });
|
|
|
+ if(baseFormData.rewardType != PlayType.treasure) {
|
|
|
+ setDiscordErrTxt({getDuildId: true}, () => {
|
|
|
+ iptErrMsgTxt.value = '';
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2174,11 +2179,10 @@ onMounted(() => {
|
|
|
height: calc(100% - 80px);
|
|
|
overflow: auto;
|
|
|
box-sizing: border-box;
|
|
|
-
|
|
|
display: flex;
|
|
|
|
|
|
- .task-wrapper {
|
|
|
- width: 480px;
|
|
|
+ .form-left-sheet {
|
|
|
+ width: 500px;
|
|
|
}
|
|
|
|
|
|
.base-form-wrapper {
|
|
@@ -2471,49 +2475,6 @@ onMounted(() => {
|
|
|
margin-top: 8px;
|
|
|
}
|
|
|
|
|
|
- .giveaway-poster {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- flex-direction: row;
|
|
|
- cursor: pointer;
|
|
|
- height: 84px;
|
|
|
- margin-top: 20px;
|
|
|
- border-radius: 14px;
|
|
|
- border: 1px solid #D1D9DD;
|
|
|
- .show-img {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
- width: 45px;
|
|
|
- height: 60px;
|
|
|
- margin-left: 14px;
|
|
|
- margin-right: 14px;
|
|
|
- position: relative;
|
|
|
- }
|
|
|
- .show-font {
|
|
|
- position: relative;
|
|
|
- font-size: 15px;
|
|
|
- font-weight: 500;
|
|
|
- .new {
|
|
|
- width: 40px;
|
|
|
- height: 18px;
|
|
|
- margin-left: 10px;
|
|
|
- }
|
|
|
- }
|
|
|
- .show-placeholder {
|
|
|
- flex: 1;
|
|
|
- color: #1D9BF0;
|
|
|
- font-size: 15px;
|
|
|
- font-weight: 500;
|
|
|
- text-align: right;
|
|
|
- }
|
|
|
- .arrow {
|
|
|
- width: 18px;
|
|
|
- height: 24px;
|
|
|
- margin-left: 2px;
|
|
|
- margin-right: 12px;
|
|
|
- }
|
|
|
- }
|
|
|
.tips-wrapper {
|
|
|
margin: 16px 0 0 12px !important;
|
|
|
padding: 0px !important;
|