Pārlūkot izejas kodu

账户配置功能迭代

jiayufei 4 gadi atpakaļ
vecāks
revīzija
9b4e9b5b03

+ 46 - 13
src/views/modules/account-config/account-config.vue

@@ -104,7 +104,7 @@
                             @blur="handleAccountBudget"
                         /> 元
                     </a-form-model-item>
-                    <div v-if="adBudgetShowTitle" style="width: 500px;color: #f00;margin-left: 140px;">单次修改预算幅度, 不能低于100.0元</div>
+                    <!-- <div v-if="adBudgetShowTitle" style="width: 500px;color: #f00;margin-left: 140px;">单次修改预算幅度, 不能低于100.0元</div> -->
                 </a-form-model>
             </div>
         </a-modal>
@@ -141,6 +141,7 @@
                                 v-model="configForm.adMinBid"
                                 :min="0.1"
                                 :max="10000"
+                                :step="0.01"
                                 placeholder="请输入最小值"
                             />
                         </a-form-model-item>
@@ -151,6 +152,7 @@
                                 v-model="configForm.adMaxBid"
                                 :min="0.1"
                                 :max="10000"
+                                :step="0.01"
                                 placeholder="请输入最大值"
                             />
                         </a-form-model-item>
@@ -162,6 +164,7 @@
                                 v-model="configForm.adMinBid"
                                 :min="0.1"
                                 :max="10000"
+                                :step="0.01"
                                 placeholder="请输入最小值"
                             />
                         </a-form-model-item>
@@ -172,12 +175,15 @@
                                 v-model="configForm.adMaxBid"
                                 :min="0.1"
                                 :max="10000"
+                                :step="0.01"
                                 placeholder="请输入最大值"
                             />
                         </a-form-model-item>
                         <a-form-model-item label="浮动间隔" prop="adStepBid">
                             <a-input-number
                                 class="common-input"
+                                :min="0"
+                                :step="0.01"
                                 v-model="configForm.adStepBid"
                                 placeholder="请输入浮动间隔"
                             />
@@ -244,6 +250,25 @@ export default {
                 callback('最低出价+浮动间隔<最高出价');
             }
         };
+        let budgetValidator = (rule, value, callback) => {
+            // const finallyResult = Number(this.configForm.adMinBid) + Number(value);
+            // if (finallyResult < Number(this.configForm.adMaxBid)) {
+            //     callback();
+            // }
+            // else {
+            //     callback('最低出价+浮动间隔<最高出价');
+            // }
+            const changeBudget = this.updateModTxt.accountBudget;
+            if (Number(value) > Number(changeBudget) && Number(value) < (Number(changeBudget) + 100)) {
+                callback('单次修改预算幅度, 不能低于100.0元');
+            }
+            else if (Number(value) < Number(changeBudget) && Number(value) > (Number(changeBudget) - 100)) {
+                callback('单次修改预算幅度, 不能低于100.0元');
+            }
+            else {
+                callback();
+            }
+        };
         return {
             adBudgetShowTitle: false,
             budgetVisible: false,
@@ -253,7 +278,8 @@ export default {
             },
             budgetRules: {
                 budget: [
-                    {required: true, message: '请输入', trigger: 'blur'}
+                    {required: true, message: '请输入', trigger: 'blur'},
+                    {validator: budgetValidator, trigger: 'blur'}
                 ]
             },
             labelCol: {span: 4},
@@ -353,22 +379,22 @@ export default {
     methods: {
         ...mapGetters(['nickname', 'avatar', 'userInfo']),
         handleAccountMode(e) {
-            this.budgetForm.budget = 0;
+            this.budgetForm.budget = 1000;
             this.adBudgetShowTitle = false;
         },
         handleAccountBudget(e) {
             const adBudgetInput = e.target.value;
-            const changeBudget = this.updateModTxt.accountBudget;
+            // const changeBudget = this.updateModTxt.accountBudget;
             this.budgetForm.budget = Number(Number(adBudgetInput).toFixed(2));
-            if (Number(adBudgetInput) >= Number(changeBudget) && Number(adBudgetInput) < (Number(changeBudget) + 100)) {
-                this.adBudgetShowTitle = true;
-            }
-            else if (Number(adBudgetInput) <= Number(changeBudget) && Number(adBudgetInput) > (Number(changeBudget) - 100)) {
-                this.adBudgetShowTitle = true;
-            }
-            else {
-                this.adBudgetShowTitle = false;
-            }
+            // if (Number(adBudgetInput) >= Number(changeBudget) && Number(adBudgetInput) < (Number(changeBudget) + 100)) {
+            //     this.adBudgetShowTitle = true;
+            // }
+            // else if (Number(adBudgetInput) <= Number(changeBudget) && Number(adBudgetInput) > (Number(changeBudget) - 100)) {
+            //     this.adBudgetShowTitle = true;
+            // }
+            // else {
+            //     this.adBudgetShowTitle = false;
+            // }
         },
         handleModeSure() {
             let paramsData = new FormData();
@@ -409,10 +435,15 @@ export default {
         },
         handleUpdateMod(record) {
             this.updateModTxt = record;
+            this.configForm.adMinBid = record.adMinBid;
+            this.configForm.adMaxBid = record.adMaxBid;
+            this.configForm.adStepBid = record.adStepBid;
             this.modeVisible = true;
         },
         handleUpdateBudget(record) {
             this.updateModTxt = record;
+            this.budgetForm.budgetType = record.accountBudgetMode;
+            this.budgetForm.budget = record.accountBudget;
             this.budgetVisible = true;
         },
         handleBudgetSure() {
@@ -439,6 +470,7 @@ export default {
         },
         handleBudgetCancel() {
             this.budgetVisible = false;
+            this.budgetForm.budgetType = '1';
         },
         handlePopoverChange(data) {
             putAction(urlAcount + '/bytedance-api/advertiser/aiBytedanceAdvertiserStrategy/updStaOrCpaOrBudgetById', data).then(result => {
@@ -450,6 +482,7 @@ export default {
                     this.adCpaBid = undefined;
                     this.modeVisible = false;
                     this.budgetVisible = false;
+                    this.budgetForm.budgetType = '1';
                     this.handleInitTable();
                 }
                 else {

+ 34 - 14
src/views/modules/account-config/components/configuration-modal.vue

@@ -355,6 +355,7 @@
                                     :valueids="configForm.adRetargetingTagsType"
                                     :updatelistinclude="configForm.updateGetingInclude" @selection-alone-event="handleSelectionAloneEvent"
                                     @clearlist="handleClearlist"
+                                    @clear-table-alone="handleClearTableAlone"
                                 >
                                 </directional-logic>
                             </div>
@@ -369,6 +370,7 @@
                                     :valueids="configForm.adRetargetingTagsType"
                                     :updatelistexclude="configForm.updateGetingExclude" @selection-alone-event="handleSelectionAloneEvent"
                                     @clearlist="handleClearlist"
+                                    @clear-table-alone="handleClearTableLogic"
                                 >
                                 </directional-logic>
                             </div>
@@ -385,6 +387,8 @@
                                     :updatelistexclude="configForm.updateGetingExclude" @selection-direct-event="handleDirectEvent"
                                     @selection-exclude-event="handleExcludeEvent"
                                     @clearlist="handleClearlist"
+                                    @clear-table-direct="handleClearTableAlone"
+                                    @clear-table-exclude="handleClearTableLogic"
                                 >
                                 </directional-logic>
                             </div>
@@ -695,6 +699,7 @@
                         <a-input-number
                             class="common-input"
                             v-model="configForm.adStepBid"
+                            :min="0"
                             :step="0.01"
                             placeholder="请输入"
                             @blur="handleFloatingInterval"
@@ -911,7 +916,7 @@
                 </div>
             </div>
             <div class="separate-module-con btn-Unique-con">
-                <a-button class="sure-btn" type="primary" @click="handleRelaxSure">确定</a-button>
+                <a-button class="sure-btn" type="primary" :loading="sureLoading" @click="handleRelaxSure">确定</a-button>
                 <a-button class="cancel-btn" @click="handleRelaxCancel">取消</a-button>
             </div>
         </a-form-model>
@@ -1005,7 +1010,21 @@ export default {
                 callback('最高出价不能低于最低出价');
             }
         };
+        let budgetValidator = (rule, value, callback) => {
+            if (this.modalTitle === 'edit') {
+                if (Number(value) > Number(this.defaultAdBudget) && Number(value) < (Number(this.defaultAdBudget) + 100)) {
+                    callback('单次修改预算幅度, 不能低于100.0元');
+                }
+                else if (Number(value) < Number(this.defaultAdBudget) && Number(value) > (Number(this.defaultAdBudget) - 100)) {
+                    callback('单次修改预算幅度, 不能低于100.0元');
+                }
+                else {
+                    callback();
+                }
+            }
+        };
         return {
+            sureLoading: false,
             subTitleMsgStatus: false,
             subTitleMsg: '',
             AutoExtendEditSelect: [],
@@ -1207,7 +1226,8 @@ export default {
                     {required: true, message: '请输入', trigger: 'blur'}
                 ],
                 accountBudget: [
-                    {required: true, message: '请输入', trigger: 'blur'}
+                    {required: true, message: '请输入', trigger: 'blur'},
+                    {validator: budgetValidator, trigger: 'blur'}
                 ],
                 campaignName: [
                     {required: true, message: '请输入广告组名称', trigger: 'blur'},
@@ -1606,6 +1626,14 @@ export default {
                 this.configForm.adRetargetingTagsInclude = '';
             }
         },
+        handleClearTableAlone(list) {
+            this.configForm.updateGetingInclude = list;
+            this.configForm.adRetargetingTagsInclude = list && list.join(',');
+        },
+        handleClearTableLogic(list) {
+            this.configForm.updateGetingExclude = list;
+            this.configForm.adRetargetingTagsExclude = list && list.join(',');
+        },
         handleClearlist() {
             this.configForm.updateGetingInclude = [];
             this.configForm.adRetargetingTagsInclude = '';
@@ -1766,17 +1794,6 @@ export default {
         handleAccountBudget(e) {
             const adBudgetInput = e.target.value;
             this.configForm.accountBudget = Number(Number(adBudgetInput).toFixed(2));
-            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;
-                }
-            }
         },
         handleExportRules(value, min, max, callback) {
             let cnReg = /([\u4e00-\u9fa5]|[\u3000-\u303F]|[\uFF00-\uFF60])/;
@@ -1978,7 +1995,7 @@ export default {
                                 this.optimizationOption = updateResult[0].external_actions;
                                 setTimeout(() => {
                                     this.configForm.adConvertId = detailData.adConvertId;
-                                }, 200);
+                                }, 1000);
                             }
                             else {
                                 this.$message.error(result.message);
@@ -2167,6 +2184,7 @@ export default {
             postAction(urlAcount + '/bytedance-api/advertiser/aiBytedanceAdvertiserStrategy/addBytedanceStrategy', data).then(result => {
                 if (result.code === 0) {
                     this.$message.success('创建成功');
+                    this.sureLoading = false;
                     this.$router.replace('/account-config/account-config');
                     this.$bus.$emit('remove', '/account-config/components/configuration-modal');
                 }
@@ -2363,6 +2381,7 @@ export default {
             });
         },
         handleRelaxSure() {
+            this.sureLoading = true;
             let paramsFormData = this.configForm;
             if (this.adBudgetShowTitle) {
                 return;
@@ -2496,6 +2515,7 @@ export default {
             putAction(urlAcount + '/bytedance-api/advertiser/aiBytedanceAdvertiserStrategy/edit', queryData).then(result => {
                 if (result.code === 0) {
                     this.$message.success(result.message);
+                    this.sureLoading = false;
                     this.$router.replace('/account-config/account-config');
                     this.$bus.$emit('remove', '/account-config/components/configuration-modal');
                 }

+ 3 - 0
src/views/modules/account-config/components/directional-logic/directional-logic.vue

@@ -475,17 +475,20 @@ export default {
                 let formData = this.selectRightData;
                 this.selectRightData = formData.filter(item => list.key !== item.key);
                 this.tableSelectIds = this.selectRightData.map(item => item.key);
+                this.$emit('clear-table-alone', this.tableSelectIds);
             }
             else if (type === 'all') {
                 if (style === 'direct') {
                     let directData = this.tableSelectDirectData;
                     this.tableSelectDirectData = directData.filter(item => list.key !== item.key);
                     this.tableSelectDirectIds = this.tableSelectDirectData.map(item => item.key);
+                    this.$emit('clear-table-direct', this.tableSelectDirectIds);
                 }
                 else if (style === 'exclude') {
                     let excludeData = this.tableSelectExcludeData;
                     this.tableSelectExcludeData = excludeData.filter(item => list.key !== item.key);
                     this.tableSelectExcludeIds = this.tableSelectExcludeData.map(item => item.key);
+                    this.$emit('clear-table-exclude', this.tableSelectExcludeIds);
                 }
             }
         },

+ 4 - 4
src/views/modules/creative-copywrit/creative-copywrit.vue

@@ -1508,7 +1508,7 @@
                                 />
                                 <span class="examin-form-num">{{ handleFilterName(item.name) }}/30</span>
                                 <a-icon class="examin-form-icon" type="delete" @click="handleDelOrigin(item)"/>
-                                <div class="ad-name-tags-class">
+                                <!-- <div class="ad-name-tags-class">
                                     <div v-if="item.tabStatus === 'alone'" class="name-tags-left">
                                         <a-tag
                                             v-for="val in item.updateTagsList"
@@ -1531,7 +1531,7 @@
                                     </div>
                                     <div v-if="item.tabStatus === 'alone'"><a @click="handleMoreTagsShow(item.id, 'more')">更多</a></div>
                                     <div v-if="item.tabStatus === 'all'"><a @click="handleMoreTagsShow(item.id, 'little')">收起</a></div>
-                                </div>
+                                </div> -->
                             </a-form-item>
                         </a-form>
                     </div>
@@ -1591,7 +1591,7 @@
                                 />
                                 <span class="examin-form-num">{{ handleFilterName(item.name) }}/30</span>
                                 <a-icon class="examin-form-icon" type="delete" @click="handleDelOrigin(item)"/>
-                                <div class="ad-name-tags-class">
+                                <!-- <div class="ad-name-tags-class">
                                     <div v-if="item.tabStatus === 'alone'" class="name-tags-left">
                                         <a-tag
                                             v-for="val in item.updateTagsList"
@@ -1614,7 +1614,7 @@
                                     </div>
                                     <div v-if="item.tabStatus === 'alone'"><a @click="handleMoreTagsShow(item.id, 'more')">更多</a></div>
                                     <div v-if="item.tabStatus === 'all'"><a @click="handleMoreTagsShow(item.id, 'little')">收起</a></div>
-                                </div>
+                                </div> -->
                             </a-form-item>
                         </a-form>
                     </div>