浏览代码

[edit] 样式

wenliming 2 年之前
父节点
当前提交
e53c9357ea

+ 3 - 0
src/assets/svg/icon-form-amount.svg

@@ -0,0 +1,3 @@
+<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M4 12.0058V13.5734C4 14.8694 6.6875 15.9231 10 15.9231C13.3125 15.9231 16 14.8694 16 13.5734V12.0058C14.7094 13.0741 12.35 13.5734 10 13.5734C7.65 13.5734 5.29062 13.0741 4 12.0058ZM4 8.15454V10.049C4 11.3449 6.6875 12.3986 10 12.3986C13.3125 12.3986 16 11.3449 16 10.049V8.15454C14.7094 9.4028 12.3469 10.049 10 10.049C7.65313 10.049 5.29062 9.4028 4 8.15454ZM10 3C6.6875 3 4 4.31434 4 5.93706C4 7.55979 6.6875 8.87413 10 8.87413C13.3125 8.87413 16 7.55979 16 5.93706C16 4.31434 13.3125 3 10 3Z" fill="#2F2F2F"/>
+</svg>

+ 4 - 0
src/assets/svg/icon-form-cost.svg

@@ -0,0 +1,4 @@
+<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M11 13.575V14.5455C11 15.3477 12.5677 16 14.5 16C16.4323 16 18 15.3477 18 14.5455V13.575C17.2471 14.2364 15.8708 14.5455 14.5 14.5455C13.1292 14.5455 11.7529 14.2364 11 13.575ZM11 11.1909V12.3636C11 13.1659 12.5677 13.8182 14.5 13.8182C16.4323 13.8182 18 13.1659 18 12.3636V11.1909C17.2471 11.9636 15.869 12.3636 14.5 12.3636C13.131 12.3636 11.7529 11.9636 11 11.1909ZM14.5 8C12.5677 8 11 8.81364 11 9.81818C11 10.8227 12.5677 11.6364 14.5 11.6364C16.4323 11.6364 18 10.8227 18 9.81818C18 8.81364 16.4323 8 14.5 8Z" fill="#2F2F2F"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.42061 15.1282H5.4046C5.36893 15.2284 5.31128 15.3204 5.23468 15.397C5.09904 15.5326 4.91508 15.6088 4.72326 15.6088C4.53144 15.6088 4.34747 15.5326 4.21184 15.397C4.0762 15.2614 4 15.0774 4 14.8856C4 14.8202 4.01049 14.7614 4.02325 14.7114C4.33797 12.5974 5.72065 10.833 7.60544 9.98625C6.73631 9.26192 6.18262 8.1708 6.18262 6.95024C6.18262 4.76854 7.95117 3 10.1329 3C11.9921 3 13.5513 4.28442 13.9716 6.01437C13.5574 6.03701 13.1526 6.08619 12.7643 6.16045C12.6313 5.7191 12.3901 5.32421 12.0716 5.00682C12.3898 5.32432 12.6308 5.71925 12.7636 6.16059C12.6833 6.17595 12.6037 6.19239 12.5248 6.20988C12.2083 5.18971 11.2556 4.44651 10.1329 4.44651C8.75252 4.44651 7.62914 5.5699 7.62914 6.95024C7.62914 7.92308 8.18723 8.76842 9 9.18266V11.0304C7.15844 11.4847 5.73735 13.02 5.45165 14.9216L5.42061 15.1282ZM4.24375 14.8867C4.24375 15.0139 4.29418 15.1359 4.38397 15.226L4.38341 15.2254C4.29328 15.1353 4.24264 15.013 4.24264 14.8856C4.24264 14.842 4.25033 14.8004 4.26132 14.7602C4.56633 12.6796 5.9484 10.9491 7.82382 10.1557C7.91323 10.1179 8.00376 10.0822 8.09535 10.0487L8.09682 10.0497C6.08391 10.7858 4.582 12.5814 4.26243 14.7613C4.25144 14.8016 4.24375 14.8432 4.24375 14.8867Z" fill="#2F2F2F"/>
+</svg>

+ 3 - 0
src/assets/svg/icon-form-custom-cover.svg

@@ -0,0 +1,3 @@
+<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M17.8749 11.7838L17.1198 12.5169L15.6097 11.0508L16.3648 10.3177C16.4403 10.2444 16.5158 10.1711 16.6668 10.1711C16.7423 10.1711 16.8933 10.2444 16.9688 10.3177L17.9504 11.2707C18.0259 11.4173 18.0259 11.6372 17.8749 11.7838ZM10.5507 15.8891V17.4286H12.1364L16.7423 12.9568L15.2321 11.4906L10.5507 15.8891ZM16.5913 4.96617C16.5913 4.15977 15.9117 3.5 15.0811 3.5H4.51014C3.67956 3.5 3 4.15977 3 4.96617V15.2293C3 16.0357 3.67956 16.6955 4.51014 16.6955H9.04057V15.3026L9.87115 14.4962H4.51014L7.15289 11.1974L9.04057 13.3966L11.6833 10.0977L12.8914 11.6372L16.5913 7.9718V4.96617Z" fill="#2F2F2F"/>
+</svg>

文件差异内容过多而无法显示
+ 1 - 0
src/assets/svg/icon-form-follow.svg


+ 3 - 0
src/assets/svg/icon-form-task.svg

@@ -0,0 +1,3 @@
+<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M4.267 4.82609L4.27273 15.7875L15.7324 15.7826L15.7273 4.82122L13.8182 4.82609V5.4287C13.819 5.75195 13.6858 6.06233 13.4476 6.29171C13.2095 6.52109 12.886 6.65072 12.548 6.65217H7.452C6.75136 6.65217 6.18182 6.10313 6.18182 5.4287V4.82609H4.267ZM12.548 5.43478L12.5455 4.22348L7.452 4.21739L7.45455 4.22348V5.4287L12.548 5.43478ZM13.64 3.6087H15.7241C16.0613 3.60789 16.3851 3.73512 16.6243 3.96246C16.8635 4.1898 16.9987 4.49866 17 4.82122V15.7875C16.9995 16.1089 16.8658 16.417 16.6282 16.6443C16.3905 16.8716 16.0684 16.9995 15.7324 17H4.26764C3.56891 17 3 16.4558 3 15.7875V4.82122C3.00017 4.49979 3.13369 4.19157 3.37124 3.96423C3.6088 3.73689 3.93096 3.60902 4.267 3.6087H6.36C6.58082 3.24591 6.98491 3 7.452 3H12.548C13.0151 3 13.4198 3.24652 13.64 3.6087ZM9.17585 11.4432L11.9743 8.20321C12.0799 8.08088 12.2271 8.00801 12.3835 8.00062C12.5399 7.99324 12.6926 8.05195 12.8081 8.16383C12.9236 8.27572 12.9924 8.43162 12.9994 8.59723C13.0064 8.76285 12.951 8.92461 12.8453 9.04694L9.60606 12.7969C9.49393 12.9263 9.33577 13 9.17054 13H9.167C9.08447 12.9995 9.00296 12.9806 8.92774 12.9447C8.85252 12.9087 8.78526 12.8565 8.7303 12.7913L7.14992 10.9163C7.04568 10.7926 6.99209 10.6302 7.00095 10.4647C7.0098 10.2992 7.08037 10.1442 7.19713 10.0338C7.31389 9.92341 7.46727 9.86665 7.62354 9.87603C7.77981 9.88541 7.92616 9.96014 8.0304 10.0838L9.17585 11.4432Z" fill="#2F2F2F"/>
+</svg>

+ 8 - 0
src/assets/svg/icon-form-time.svg

@@ -0,0 +1,8 @@
+<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<mask id="path-1-outside-1_24371_182246" maskUnits="userSpaceOnUse" x="2" y="2" width="16" height="16" fill="black">
+<rect fill="white" x="2" y="2" width="16" height="16"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M3 10C3 6.14 6.14 3 10 3C13.86 3 17 6.14 17 10C17 13.86 13.86 17 10 17C6.14 17 3 13.86 3 10ZM4.0045 10C4.0045 13.3055 6.694 15.9955 10 15.9955C13.3055 15.9955 15.9955 13.3055 15.9955 10C15.9955 6.694 13.3055 4.0045 10 4.0045C6.694 4.0045 4.0045 6.694 4.0045 10ZM10.001 9.99788H12.5005C12.778 9.99788 13.0025 10.2204 13.0025 10.4979C13.0025 10.7754 12.778 10.9979 12.5005 10.9979H9.50104C9.22404 10.9979 9.00104 10.7754 9.00104 10.4979V6.49887C9.00104 6.22187 9.22354 5.99688 9.50104 5.99688C9.77854 5.99688 10.001 6.22137 10.001 6.49887V9.99788Z"/>
+</mask>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M3 10C3 6.14 6.14 3 10 3C13.86 3 17 6.14 17 10C17 13.86 13.86 17 10 17C6.14 17 3 13.86 3 10ZM4.0045 10C4.0045 13.3055 6.694 15.9955 10 15.9955C13.3055 15.9955 15.9955 13.3055 15.9955 10C15.9955 6.694 13.3055 4.0045 10 4.0045C6.694 4.0045 4.0045 6.694 4.0045 10ZM10.001 9.99788H12.5005C12.778 9.99788 13.0025 10.2204 13.0025 10.4979C13.0025 10.7754 12.778 10.9979 12.5005 10.9979H9.50104C9.22404 10.9979 9.00104 10.7754 9.00104 10.4979V6.49887C9.00104 6.22187 9.22354 5.99688 9.50104 5.99688C9.77854 5.99688 10.001 6.22137 10.001 6.49887V9.99788Z" fill="#2F2F2F"/>
+<path d="M10.001 9.99788H9.80104V10.1979H10.001V9.99788ZM10 2.8C6.02954 2.8 2.8 6.02954 2.8 10H3.2C3.2 6.25046 6.25046 3.2 10 3.2V2.8ZM17.2 10C17.2 6.02954 13.9705 2.8 10 2.8V3.2C13.7495 3.2 16.8 6.25046 16.8 10H17.2ZM10 17.2C13.9705 17.2 17.2 13.9705 17.2 10H16.8C16.8 13.7495 13.7495 16.8 10 16.8V17.2ZM2.8 10C2.8 13.9705 6.02954 17.2 10 17.2V16.8C6.25046 16.8 3.2 13.7495 3.2 10H2.8ZM10 15.7955C6.80447 15.7955 4.2045 13.1951 4.2045 10H3.8045C3.8045 13.4159 6.58353 16.1955 10 16.1955V15.7955ZM15.7955 10C15.7955 13.195 13.195 15.7955 10 15.7955V16.1955C13.416 16.1955 16.1955 13.416 16.1955 10H15.7955ZM10 4.2045C13.1951 4.2045 15.7955 6.80447 15.7955 10H16.1955C16.1955 6.58353 13.4159 3.8045 10 3.8045V4.2045ZM4.2045 10C4.2045 6.80446 6.80446 4.2045 10 4.2045V3.8045C6.58354 3.8045 3.8045 6.58354 3.8045 10H4.2045ZM12.5005 9.79788H10.001V10.1979H12.5005V9.79788ZM13.2025 10.4979C13.2025 10.1089 12.8875 9.79788 12.5005 9.79788V10.1979C12.6686 10.1979 12.8025 10.3319 12.8025 10.4979H13.2025ZM12.5005 11.1979C12.8875 11.1979 13.2025 10.8869 13.2025 10.4979H12.8025C12.8025 10.6639 12.6686 10.7979 12.5005 10.7979V11.1979ZM9.50104 11.1979H12.5005V10.7979H9.50104V11.1979ZM8.80104 10.4979C8.80104 10.886 9.11372 11.1979 9.50104 11.1979V10.7979C9.33437 10.7979 9.20104 10.6648 9.20104 10.4979H8.80104ZM8.80104 6.49887V10.4979H9.20104V6.49887H8.80104ZM9.50104 5.79688C9.11192 5.79688 8.80104 6.11259 8.80104 6.49887H9.20104C9.20104 6.33116 9.33517 6.19688 9.50104 6.19688V5.79688ZM10.201 6.49887C10.201 6.11196 9.89004 5.79688 9.50104 5.79688V6.19688C9.66705 6.19688 9.80104 6.33079 9.80104 6.49887H10.201ZM10.201 9.99788V6.49887H9.80104V9.99788H10.201Z" fill="#2F2F2F" mask="url(#path-1-outside-1_24371_182246)"/>
+</svg>

文件差异内容过多而无法显示
+ 1 - 0
src/assets/svg/icon-form-winners.svg


文件差异内容过多而无法显示
+ 0 - 19
src/assets/svg/img-A0.svg


文件差异内容过多而无法显示
+ 0 - 19
src/assets/svg/img-A1.svg


文件差异内容过多而无法显示
+ 0 - 44
src/assets/svg/img-B0.svg


文件差异内容过多而无法显示
+ 0 - 44
src/assets/svg/img-B1.svg


文件差异内容过多而无法显示
+ 3 - 0
src/assets/svg/img-LT0.svg


文件差异内容过多而无法显示
+ 3 - 0
src/assets/svg/img-LT1.svg


文件差异内容过多而无法显示
+ 3 - 0
src/assets/svg/img-P1.svg


文件差异内容过多而无法显示
+ 3 - 0
src/assets/svg/img-P2.svg


文件差异内容过多而无法显示
+ 3 - 0
src/assets/svg/img-P3.svg


文件差异内容过多而无法显示
+ 2 - 0
src/assets/svg/img-T0.svg


文件差异内容过多而无法显示
+ 2 - 0
src/assets/svg/img-T1.svg


+ 2 - 0
src/types/global.js

@@ -6,10 +6,12 @@
  * 玩法类型
  * 普通任务:common=1;
  * 抽奖:lottery=2
+ * 夺宝:treasure=3
  */
 export const PlayType = {
   common: 1,
   lottery: 2,
+  treasure: 3
 };
 
 /**

+ 56 - 0
src/view/iframe/publish/components/form-input.vue

@@ -0,0 +1,56 @@
+<template>
+    <div class="form-input-wrapper">
+        <div class="prefix" v-if="prefix">
+            {{prefix}}
+        </div>
+        <slot name="content"></slot>
+        <div class="suffix" v-if="suffix">
+            {{suffix}}
+        </div>
+    </div>
+</template>
+
+<script setup>
+import { onMounted, ref, defineProps, defineEmits } from "vue";
+
+const props = defineProps({
+    prefix: {
+        type: String,
+        default: '',
+    },
+    suffix: {
+        type: String,
+        default: '',
+    },
+});
+const emits = defineEmits(["close", "confirm", "postPublishFinish"]);
+
+onMounted(() => {
+}) 
+</script>
+
+<style scoped lang="scss">
+.form-input-wrapper {
+    width: max-content;
+    height: 38px;
+    border: 1px solid #D9D9D9;
+    border-radius: 5px;
+    padding: 0 10px;
+    box-sizing: border-box;
+    display: flex;
+    align-items: center;
+    color: #999999;
+    font-weight: 400;
+    font-size: 14px;
+
+    .prefix {
+        margin-right: 4px;
+    }
+
+    .suffix {
+        margin-left: 4px;
+        max-width: 50px;
+        white-space: nowrap;
+    }
+}
+</style>

+ 293 - 252
src/view/iframe/publish/give-dialog.vue

@@ -79,7 +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'">
@@ -93,35 +93,59 @@
                         </template>
                         <template v-else>
                         <div class="form-wrapper"  v-if="showComType == 'default'">
-                            <div class="form-cell-item base-form-wrapper">
-                                <div class="title">
-                                    <img class="icon" :src="require('@/assets/svg/icon-reward-v2.svg')"/>
-                                    Reward
-                                </div>
-                                <div class="form-cell-content">
-                                    <div class="select-mode-ele">
-                                        <img v-for="(item, index) in publishModeList" 
-                                            :key="index" 
-                                            :src="selectModeInfo.index == index ? item.imgActive : item.imgInActive"
-                                            @click="selectPublishMode(item, index)">
-                                    </div>
-                                    <!-- 金额、数量 -->
-                                    <div class="form-base">
-                                        <div class="item currency-select-wrapper">
-                                            <div>
-                                                <div class="label currency-select"
-                                                    :class="{'selected': currencySelectCpd}"
-                                                    @click="selectCurrencyPopHandle">
-                                                    <img class="icon"
-                                                        v-if="currentIconCpd"
-                                                        :src="currentIconCpd"/>
-                                                    <div class="text">
-                                                        {{currentPrizeCpd}}
+                            <div class="form-left-sheet">
+                                <div class="form-cell-item base-form-wrapper">
+                                    <div class="form-cell-content">
+                                        <div class="select-mode-ele">
+                                            <template v-for="(item, index) in publishModeList" :key="index">
+                                                <img class="img" 
+                                                    :src="selectModeInfo.index == index ? item.imgActive : item.imgInActive"
+                                                    @click="selectPublishMode(item, index)">
+
+                                                <img class="img-tips" :src="item.imgInfoSrc" v-if="selectModeInfo.index == index" />
+                                            </template>
+                                        </div>
+                                        <!-- 金额 -->
+                                        <div class="form-base">
+                                            <div class="form-cell">
+                                                <div class="cell-title">
+                                                    <img class="title-icon" :src="require('@/assets/svg/icon-form-amount.svg')" />
+                                                    Amount
+                                                </div>
+                                                <div class="cell-content flex">
+                                                    <div class="currency-select"
+                                                        :class="{'selected': currencySelectCpd}"
+                                                        @click="selectCurrencyPopHandle">
+                                                        <img class="icon"
+                                                            v-if="currentIconCpd"
+                                                            :src="currentIconCpd"/>
+                                                        <div class="text">
+                                                            {{currentPrizeCpd}}
+                                                        </div>
+                                                        <img class="arrow"
+                                                            :src="currentArrowCpd"/>
                                                     </div>
-                                                    <img class="arrow"
-                                                        :src="currentArrowCpd"/>
+                                                    <form-input 
+                                                        class="margin-left-10"
+                                                        :suffix="baseFormData.rewardType === RewardType.custom || currentCurrencyInfo.currencyCode ? currentPrizeCpd : ''">
+                                                        <template v-slot:content>
+                                                            <input style="width: 100px"
+                                                                v-model="baseFormData.amountValue"
+                                                                placeholder="0"
+                                                                autofocus
+                                                                @input="onAmountInput"
+                                                                @blur="onAmountBlur"/>
+                                                        </template>
+                                                    </form-input>
+                                                    <form-input class="margin-left-10"
+                                                        prefix="=$"
+                                                        suffix="USD">
+                                                        <template v-slot:content>
+                                                            <input style="width: 60px"
+                                                                placeholder="0"/>
+                                                        </template>
+                                                    </form-input>
                                                 </div>
-
                                                 <!-- 刷新按钮、充值 -->
                                                 <div class="currency-operation"
                                                     v-if="currentCurrencyInfo.currencyCode">
@@ -138,144 +162,156 @@
                                                         class="top-up" 
                                                         @click="goTopUp">Deposit</div>
                                                 </div>
-                                            </div>
 
-                                            <input v-model="baseFormData.amountValue"
-                                                    placeholder="0"
-                                                    autofocus
-                                                    @input="onAmountInput"
-                                                    @blur="onAmountBlur"/>
-                                        </div>
-                                        <div class="item winners-count-input">
-                                            <div>
-                                                <div class="label">
-                                                    <img class="icon"
-                                                        :src="require('@/assets/svg/icon-winner-v2.svg')"/>
-                                                    Winner Count
+                                                <div class="usd-min-message" v-show="isShowUsdMinMessage" v-html="checkUsdMinNumber('inTemplate')"></div>
+                                            </div>
+                                            
+                                            <!-- 人数 -->
+                                            <div class="form-cell" v-if="selectModeInfo.type != PlayType.treasure">
+                                                <div class="cell-title">
+                                                    <img class="title-icon" :src="require('@/assets/svg/icon-form-winners.svg')" />
+                                                    Winners
+                                                </div>
+                                                <div class="cell-content">
+                                                    <form-input suffix="People">
+                                                        <template v-slot:content>
+                                                            <input style="width: 120px"
+                                                                v-model="baseFormData.totalCount"
+                                                                placeholder="0"
+                                                                :disabled="baseFormData.rewardType === RewardType.custom"
+                                                                @input="onCountInput"
+                                                                @blur="onCountBlur"/>
+                                                        </template>
+                                                    </form-input>
+                                                    <div class="count-msg" v-show="selectModeInfo.type == PlayType.common">Recommend Winners 50~500</div>
                                                 </div>
-                                                <div class="msg" v-show="selectModeInfo.type == PlayType.common">Recommend Winners 50~500</div>
                                             </div>
-                                            <input v-model="baseFormData.totalCount"
-                                                placeholder="0"
-                                                :disabled="baseFormData.rewardType === RewardType.custom"
-                                                @input="onCountInput"
-                                                @blur="onCountBlur"/>
-                                        </div>
-                                        <div class="item automatically-input" v-if="selectModeInfo.type == PlayType.lottery">
-                                            <div class="label">
-                                                <img class="icon"
-                                                    :src="require('@/assets/svg/icon-automatically.svg')"/>
-                                                Automatically Draw in
+
+                                            <!-- 新粉单价 -->
+                                            <div class="form-cell" v-if="selectModeInfo.type == PlayType.treasure">
+
                                             </div>
-                                            <div class="input-wrapper">
-                                                <input v-model="baseFormData.validityDuration"
-                                                    placeholder="0"
-                                                    @input="onValidityDurationInput"
-                                                    @blur="onValidityDurationBlur"/>
-                                                    <span class="unit">h</span>
+                                            
+                                            <!-- 开奖时间 -->
+                                            <div class="form-cell" v-if="selectModeInfo.type == PlayType.lottery">
+                                                <div class="cell-title">
+                                                    <img class="title-icon" :src="require('@/assets/svg/icon-form-time.svg')" />
+                                                    Automatically Draw in
+                                                </div>
+                                                <div class="cell-content">
+                                                    <form-input suffix="Hour">
+                                                        <template v-slot:content>
+                                                            <input v-model="baseFormData.validityDuration"
+                                                                placeholder="0"
+                                                                @input="onValidityDurationInput"
+                                                                @blur="onValidityDurationBlur"/>
+                                                        </template>
+                                                    </form-input>
+                                                </div>
                                             </div>
                                         </div>
-                                    </div>
-                                    <div class="usd-min-message" v-show="isShowUsdMinMessage" v-html="checkUsdMinNumber('inTemplate')"></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
+                                        <!-- <div class="giveaway-poster" @click="customCoverImg">
+                                            <div class="show-img">
+                                                <div
+                                                    :style="{
+                                                        'zoom': 55 / 500,
+                                                        'position': 'absolute',
+                                                        'width': '345px',
                                                     }">
-                                                </custom-card-cover>
+                                                    <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>
+                                                </div>
                                             </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>
-                                    </div>
-                                    <!--  提示 -->
-                                    <ul class="tips-wrapper">
-                                        <li class="row" style="white-space:nowrap;">
-                                            Rewards can only be claimed after the target user completes all tasks you set. 
-                                        </li>
-                                        <li class="row">
-                                            Each user can only receive a reward once per task.
-                                        </li>
-                                        <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>
-                                </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 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>
+                                        </div> -->
+                                        <!--  提示 -->
+                                        <ul class="tips-wrapper">
+                                            <li class="row" style="white-space:nowrap;">
+                                                Rewards can only be claimed after the target user completes all tasks you set. 
+                                            </li>
+                                            <li class="row">
+                                                Each user can only receive a reward once per task.
+                                            </li>
+                                            <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>
+                                    </div> 
                                 </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 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>
-                                                    <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>
+                                                    <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">
+                                
                             </div>
-
                             <div class="submit-btn-wrapper">
                                 <div class="submit-btn"
                                     :class="{ 'disabled-submit': iptErrMsgTxt != ''}"
@@ -427,6 +463,7 @@ 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 formInput from "@/view/iframe/publish/components/form-input.vue";
 import GlobalTip from '@/view/components/global-tip.vue'
 import customCardCover from '@/view/components/custom-card-cover.vue'
 
@@ -448,7 +485,7 @@ let timer = ref(null);
 let publishRes = reactive({});
 
 //弹窗是否展示
-let visible = ref(false);
+let visible = ref(true);
 let publishType = ref('REDPACKET');
 
 
@@ -541,7 +578,7 @@ let postId = ref('');
 
 let selectModeInfo = reactive({
     index: 0,
-    type: PlayType.lottery // 1: 红包 2: 抽奖
+    type: PlayType.treasure
 })
 
 // 余额是否同步中
@@ -647,13 +684,22 @@ let formList = reactive([
 
 let publishModeList = reactive([
     {
-        imgActive: require("@/assets/svg/img-A1.svg"),
-        imgInActive: require("@/assets/svg/img-A0.svg"),
+
+        imgActive: require("@/assets/svg/img-T1.svg"),
+        imgInActive: require("@/assets/svg/img-T0.svg"),
+        imgInfoSrc: require("@/assets/svg/img-P1.svg"),
+        type: PlayType.treasure
+    },
+    {
+        imgActive: require("@/assets/svg/img-LT1.svg"),
+        imgInActive: require("@/assets/svg/img-LT0.svg"),
+        imgInfoSrc: require("@/assets/svg/img-P2.svg"),
         type: PlayType.lottery
     },
     {
-        imgActive: require("@/assets/svg/img-B1.svg"),
-        imgInActive: require("@/assets/svg/img-B0.svg"),
+        imgActive: require("@/assets/svg/img-A1.svg"),
+        imgInActive: require("@/assets/svg/img-A0.svg"),
+        imgInfoSrc: require("@/assets/svg/img-P3.svg"),
         type: PlayType.common
     }
 ])
@@ -1986,6 +2032,10 @@ onMounted(() => {
 .font-color-1D9BF0 {
     color: #1D9BF0;
 }
+
+.margin-left-10 {
+    margin-left: 10px;
+}
 </style>
 
 <style lang="scss" scoped>
@@ -2131,132 +2181,118 @@ onMounted(() => {
                         width: 480px;
                     }
 
-                    .form-cell-item {
-                        height: 100%;
-
-                        .title {
-                            display: flex;
-                            align-items: center;
-                            font-weight: 500;
-                            font-size: 15px;
-
-                            .icon {
-                                width: 20px;
-                                height: 20px;
-                                margin-right: 5px;
-                            }
-                        }
-
-                        .form-cell-content {
-                            margin-top: 12px;
-                            box-sizing: border-box;
-                        }
-                    }
-
                     .base-form-wrapper {
-                        width: 450px;
                         margin-right: 30px;
 
                         .form-cell-content {
                             .select-mode-ele {
                                 display: flex;
                                 cursor: pointer;
-
-                                img:first-child {
-                                    margin-right: 10px;
-                                }
+                                position: relative;
+                                height: 120px;
 
                                 img {
                                     -webkit-user-drag: none;
-                                    width: 220px;
-                                    height: 90px;
                                 }
-                            }
-                            .form-base {
-                                margin-top: 20px;
-                                border: 1px solid #D1D9DD;
-                                border-radius: 14px;
-                                box-sizing: border-box;
-                                padding-left: 14px;
-
-                                .item {
-                                    box-sizing: border-box;
-                                    padding: 7px 0;
-                                    min-height: 76px;
-                                    display: flex;
-                                    align-items: center;
-                                    justify-content: space-between;
-                                    input {
-                                        width: 178px;
-                                        text-align: right;
-                                        font-weight: 700;
-                                        font-size: 26px;
-                                        border: none;
-                                        outline: none;
-                                        box-sizing: border-box;
-                                    }
-
-                                    input::placeholder {
-                                        color: #c5c5c5;
-                                    }
 
-                                    input:disabled {
-                                        color: #c5c5c5;
-                                        background-color: #fff;
-                                    }
+                                .img:last-child {
+                                    margin-right: 0px !important;
+                                }
 
-                                    input {
-                                        padding-right: 16px;
-                                    }       
+                                .img {
+                                    width: 158px;
+                                    height: 80px;
+                                    margin-right: 13px;
+                                }
 
-                                    .label {
+                                .img-tips {
+                                    position: absolute;
+                                    left: 0;
+                                    bottom: -2px;
+                                }
+                            }
+                            .form-base {
+                                .form-cell {
+                                    margin-top: 28px;
+                                    .cell-title {
+                                        color: #2F2F2F;
                                         font-weight: 500;
-                                        font-size: 15px;
+                                        font-size: 13px;
                                         display: flex;
                                         align-items: center;
+                                        margin-bottom: 10px;
 
-                                        .icon {
+                                        .title-icon {
                                             width: 20px;
-                                            height: 20px;
-                                            margin-right: 8px;
+                                            margin-right: 4px;
                                         }
                                     }
-                                }
-
+                                    .flex {
+                                        display: flex;
+                                        align-items: center;
+                                    }
+                                    .cell-content {
+                                        input {
+                                            width: 178px;
+                                            font-weight: 500;
+                                            font-size: 14px;
+                                            color: #000000;
+                                            border: none;
+                                            outline: none;
+                                            box-sizing: border-box;
+                                        }
 
-                                .currency-select-wrapper {
-                                    overflow: hidden;
-                                    .currency-select {
-                                        cursor: pointer;
-                                        background: #1D9BF0;
-                                        padding: 6px 10px;
-                                        border-radius: 12px;
-                                        color: #fff;
-                                        width: max-content;
-                                        max-width: 234px;
+                                        input::placeholder {
+                                            color: #999999;
+                                        }
 
-                                        .text {
-                                            word-break: break-all;
+                                        input:disabled {
+                                            color: #999999;
+                                            background-color: #fff;
                                         }
 
-                                        .arrow {
-                                            margin-left: 5px;
+                                        .count-msg {
+                                            font-weight: 400;
+                                            font-size: 12px;
+                                            color: #B3B3B3;
+                                            margin-top: 12px;
                                         }
                                     }
-                                    .selected {
-                                        background: #F4F4F4 !important;
-                                        color: #000 !important;
-                                    }
                                 }
 
-                                .winners-count-input {
-                                    border-top: 1px solid #D1D9DD;
-                                    .msg {
-                                        font-weight: 400;
-                                        font-size: 12px;
-                                        color: #A39F9F;
-                                        margin-top: 8px
+
+                                .currency-select {
+                                    cursor: pointer;
+                                    background: #1D9BF0;
+                                    padding: 0 10px;
+                                    border-radius: 5px;
+                                    color: #fff;
+                                    width: max-content;
+                                    max-width: 234px;
+                                    display: flex;
+                                    align-items: center;
+                                    height: 38px;
+                                    box-sizing: border-box;
+
+                                    .icon {
+                                        width: 20px;
+                                        margin-right: 8px;
                                     }
+
+                                    .text {
+                                        word-break: break-all;
+                                        font-weight: 500;
+                                        font-size: 14px;
+                                    }
+
+                                    .arrow {
+                                        margin-left: 5px;
+                                    }
+                                }
+                                .selected {
+                                    background: #FFF !important;
+                                    color: #000 !important;
+                                    border: 1px solid #D9D9D9;
                                 }
 
                                 .automatically-input {
@@ -2284,6 +2320,11 @@ onMounted(() => {
                         display: flex;
                         align-items: center;
                         margin-top: 8px;
+                        background: #F8F8F8;
+                        border-radius: 3px;
+                        width: 100%;
+                        height: 28px;
+                        padding-left: 10px;
 
                         .balance,
                         .amount {

部分文件因为文件数量过多而无法显示