浏览代码

feature 庄户配置页面

jiayufei 4 年之前
父节点
当前提交
8595991b01

+ 3 - 0
src/views/modules/account-config/components/configuration-modal.less

@@ -149,6 +149,9 @@
             .budget-mode-label {
                 left: -50px;
             }
+            .cpaBid-mode-label {
+                left: -108px;
+            }
             .adver-position-radio {
                 margin-left: 140px;
                 .creative-label-content {

+ 83 - 8
src/views/modules/account-config/components/configuration-modal.vue

@@ -407,13 +407,60 @@
                         <a-radio-button value="PRICING_OCPM" :disabled="modalTitle === 'edit'">按展示付费(oCPM)</a-radio-button>
                     </a-radio-group>
                 </a-form-model-item>
-                <a-form-model-item label="目标转化出价" :prop="configForm.launchTarget === 'OCPM' ? 'adCpaBid' : ''">
+                <a-form-model-item label="出价方式">
+                    <a-radio-group v-model="configForm.biddingMethod" button-style="solid" @change="handleBiddingMethod">
+                        <a-radio-button value="a">固定出价</a-radio-button>
+                        <a-radio-button value="b">随机出价</a-radio-button>
+                        <a-radio-button value="c">阶段出价</a-radio-button>
+                    </a-radio-group>
+                </a-form-model-item>
+                <a-form-model-item v-if="configForm.biddingMethod === 'a'" label="目标转化出价" :prop="configForm.launchTarget === 'OCPM' ? 'adCpaBid' : ''">
                     <a-input-number
                         class="common-input"
                         v-model="configForm.adCpaBid"
                         :min="0.1"
-                        :max="configForm.adBudget"
                         :step="0.01"
+                        @blur="handleAdCpaBidBlur"
+                    /> 元
+                    <div v-if="isAdCpaBidBlur" style="width: 500px;color: #f00;">{{ adCpaBidBlurTxt }}</div>
+                </a-form-model-item>
+                <a-form-model-item v-if="configForm.biddingMethod === 'b'" label="目标转化出价" class="dp-link-start">
+                    <a-input-number
+                        class="common-input"
+                        v-model="configForm.adCpaBid11"
+                        placeholder="请输入"
+                    />
+                    <span>~</span>
+                    <span class="especial-label cpaBid-mode-label">*</span>
+                </a-form-model-item>
+                <a-form-model-item v-if="configForm.biddingMethod === 'b'" class="dp-link-end">
+                    <a-input-number
+                        class="common-input"
+                        v-model="configForm.adCpaBid122"
+                        placeholder="请输入"
+                    />
+                </a-form-model-item>
+                <a-form-model-item v-if="configForm.biddingMethod === 'c'" label="目标转化出价" class="dp-link-start">
+                    <a-input-number
+                        class="common-input"
+                        v-model="configForm.adCpaBid11"
+                        placeholder="请输入"
+                    />
+                    <span>~</span>
+                    <span class="especial-label cpaBid-mode-label">*</span>
+                </a-form-model-item>
+                <a-form-model-item v-if="configForm.biddingMethod === 'c'" class="dp-link-end">
+                    <a-input-number
+                        class="common-input"
+                        v-model="configForm.adCpaBid122"
+                        placeholder="请输入"
+                    />
+                </a-form-model-item>
+                <a-form-model-item v-if="configForm.biddingMethod === 'c'" label="浮动间隔">
+                    <a-input-number
+                        class="common-input"
+                        v-model="configForm.adCpaBid133"
+                        placeholder="请输入"
                     /> 元
                 </a-form-model-item>
             </div>
@@ -622,6 +669,8 @@ export default {
             this.handleExportRules(value, 4, 20, callback);
         };
         return {
+            isAdCpaBidBlur: false,
+            adCpaBidBlurTxt: '',
             defaultAdBudget: '',
             adBudgetShowTitle: false,
             adBudgetNum: 0,
@@ -702,6 +751,9 @@ export default {
                 creativeThirdIndustryIds: [{required: true, message: '请选择', trigger: 'change'}]
             },
             configForm: {
+                adCpaBid11: '',
+                adCpaBid22: '',
+                biddingMethod: 'a',
                 defaultFormList: [],
                 productSellingPoints: [], // 商品买点
                 adBudgetMode: 'BUDGET_MODE_DAY', // 预算类型
@@ -839,16 +891,39 @@ export default {
     methods: {
         ...mapGetters(['nickname', 'avatar', 'userInfo']),
         moment,
+        handleAdCpaBidBlur(e) {
+            const defaultValue = e.target.value;
+            if (this.configForm.adBudget > 0 && defaultValue > this.configForm.adBudget) {
+                this.isAdCpaBidBlur = true;
+                this.adCpaBidBlurTxt = '出价不能大于预算';
+            }
+            else if (defaultValue > 10000) {
+                this.isAdCpaBidBlur = true;
+                this.adCpaBidBlurTxt = '目标转化出价不少于0.1元,不超过10000元,请正确输入';
+            }
+            else {
+                this.isAdCpaBidBlur = false;
+            }
+        },
         handleAdBudgetBlur(e) {
             const adBudgetInput = e.target.value;
-            if (Number(adBudgetInput) >= Number(this.defaultAdBudget) && Number(adBudgetInput) < (Number(this.defaultAdBudget) + 100)) {
-                this.adBudgetShowTitle = true;
-            }
-            else if (Number(adBudgetInput) <= Number(this.defaultAdBudget) && Number(adBudgetInput) > (Number(this.defaultAdBudget) - 100)) {
-                this.adBudgetShowTitle = true;
+            if (this.configForm.adCpaBid > adBudgetInput) {
+                this.isAdCpaBidBlur = true;
+                this.adCpaBidBlurTxt = '出价不能大于预算'; 
             }
             else {
-                this.adBudgetShowTitle = false;
+                this.isAdCpaBidBlur = false;
+            }
+            if (this.modalTitle === 'edit') {
+                if (Number(adBudgetInput) >= Number(this.defaultAdBudget) && Number(adBudgetInput) < (Number(this.defaultAdBudget) + 100)) {
+                    this.adBudgetShowTitle = true;
+                }
+                else if (Number(adBudgetInput) <= Number(this.defaultAdBudget) && Number(adBudgetInput) > (Number(this.defaultAdBudget) - 100)) {
+                    this.adBudgetShowTitle = true;
+                }
+                else {
+                    this.adBudgetShowTitle = false;
+                }
             }
         },
         handleAccountBudget(e) {