yumeng 5 роки тому
батько
коміт
7d108a4a04

+ 1 - 1
src/utils/request.js

@@ -8,7 +8,7 @@ import {ACCESS_TOKEN} from "@/store/mutation-types"
 // 创建 axios 实例
 const service = axios.create({
   baseURL: '/jeecg-boot', // api base_url
-  timeout: 600000 // 请求超时时间
+  timeout: 6000000 // 请求超时时间
 })
 
 const err = (error) => {

+ 5 - 0
src/views/modules/kuaishouapp/KuaiShouImageList.vue

@@ -145,6 +145,11 @@
             dataIndex: 'materialType'
            },
           {
+            title: '素材',
+            align:"center",
+            dataIndex: 'positionType'
+          },
+          {
             title: '操作',
             dataIndex: 'action',
             align:"center",

+ 2 - 2
src/views/modules/kuaishouapp/campaignCreate.vue

@@ -57,14 +57,14 @@
           allowClear
           placeholder="选择应用目标"
           optionFilterProp="children"
-          style="width: 200px"
+          style="width: 600px"
           @focus="handleFocus"
           @blur="handleBlur"
           @change="handleChange"
           :filterOption="filterOption"
         >
           <a-select-option value="0">请选择目标应用</a-select-option>
-          <a-select-option v-for="appModel in appList" :key="appModel.id" :value="appModel.id">{{appModel.appName}}&#12288;&nbsp;{{appModel.appType}}</a-select-option>
+          <a-select-option  v-for="appModel in appList" :key="appModel.id" :value="appModel.id">{{appModel.appName}}&#12288;&nbsp;&#12288;{{appModel.appType}}&#12288;&#12288;  {{appModel.appVersion}}</a-select-option>
         </a-select>
       </a-form-item>
 

Різницю між файлами не показано, бо вона завелика
+ 829 - 442
src/views/modules/kuaishouapp/creativeCreate.vue


+ 115 - 5
src/views/modules/kuaishouapp/groupCreate.vue

@@ -199,7 +199,7 @@
 
 
       <a-form-item
-        label="出价"
+        label="OCPC出价"
         v-if="showCpaBid"
         :labelCol="{lg: {span: 7}, sm: {span: 7}}"
         :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
@@ -211,6 +211,74 @@
 
 
       <a-form-item
+        label="深度转化目标"
+        v-if="showDeepConversionType"
+        :labelCol="{lg: {span: 7}, sm: {span: 7}}"
+        :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
+        <a-select
+          v-model="deepConversionType"
+          showSearch
+          showArrow
+          allowClear
+          optionFilterProp="children"
+          style="width: 500px"
+          :filterOption="filterOption"
+        >
+          <a-select-option v-for="conversionType in deepConversionTypes"
+                           :key="conversionType.deep_conversion_type"
+                           :value="conversionType.deep_conversion_type">{{conversionType.desc}}
+          </a-select-option>
+        </a-select>
+      </a-form-item>
+
+
+      <a-form-item
+        label="深度转化目标出价"
+        v-if="showDeepConversionBid"
+        :labelCol="{lg: {span: 7}, sm: {span: 7}}"
+        :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
+        <a-input
+          v-model="deepConversionBid"
+          placeholder="请填写深度转化出价金额" style="width: 70%"></a-input>
+        元
+      </a-form-item>
+
+
+      <a-form-item
+        label="广告投放位置"
+        :labelCol="{lg: {span: 7}, sm: {span: 7}}"
+        :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
+        <a-radio-group v-model="placementPosition" buttonStyle="solid" @change="changeShowPosition()">
+          <a-radio-button value='1' :disabled="true">优选广告位</a-radio-button>
+          <a-radio-button value='2'>按场景选择广告位</a-radio-button>
+        </a-radio-group>
+      </a-form-item>
+
+
+      <a-form-item
+        label="场景广告位"
+        v-if="showPosition"
+        :labelCol="{lg: {span: 7}, sm: {span: 7}}"
+        :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
+        <a-radio-group v-model="sceneId">
+          <a-radio-button value='2'>信息流广告</a-radio-button>
+          <a-radio-button value='3'>视频后贴片广告</a-radio-button>
+        </a-radio-group>
+      </a-form-item>
+
+
+      <a-form-item
+        label="创意制作方式"
+        :labelCol="{lg: {span: 7}, sm: {span: 7}}"
+        :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
+        <a-radio-group v-model="unitType">
+          <a-radio-button value='4'>自定义</a-radio-button>
+          <a-radio-button value='2' :disabled="true">程序化创意</a-radio-button>
+        </a-radio-group>
+      </a-form-item>
+
+
+      <a-form-item
         label="广告组名称"
         :labelCol="{lg: {span: 7}, sm: {span: 7}}"
         :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
@@ -273,11 +341,19 @@
         showOcpxActionType: false,
         showCpaBid: false,
         cpaBid: 0,// bid_type 是 OCPC 时该字段必填
-        page: 2,// 资源位置
         unitName: "_" + moment().format('YYYY-MM-DD_HH:mm'),//广告组名称
         activationDisabled: true,
         isFormDisabled: true,
 
+        placementPosition: '2',
+        showPosition: true,
+        sceneId: '2',
+        deepConversionTypes: [],
+        deepConversionType: '',
+        showDeepConversionType: false,
+        showDeepConversionBid: false,
+        deepConversionBid: 0,
+        unitType: '4',
 
         form: this.$form.createForm(this),
         url: {
@@ -293,6 +369,15 @@
     methods: {
       ...mapGetters(["nickname", "avatar", "userInfo"]),
 
+
+      changeShowPosition() {
+        if (this.placementPosition == 1) {
+          this.showPosition = false;
+        } else {
+          this.showPosition = true;
+        }
+      },
+
       deepConversion() {
         if (this.accountId != '') {
           let params = {};
@@ -301,6 +386,7 @@
             if (res.success) {
               if (res.result.isActivate == 1) {
                 this.activationDisabled = false;
+                this.deepConversionTypes = res.result.deepConversionTypes;
               } else {
                 this.activationDisabled = true;
               }
@@ -309,10 +395,13 @@
               } else {
                 this.isFormDisabled = true;
               }
-              console.log(res.result)
+
+
             } else {
               this.activationDisabled = true;
               this.isFormDisabled = true;
+              this.showDeepConversionType = false;
+              this.showDeepConversionBid = false;
             }
           });
 
@@ -325,6 +414,17 @@
           this.showBid = false;
           this.showOcpxActionType = true;
           this.showCpaBid = true;
+
+          if(this.ocpxActionType == '180' && this.deepConversionTypes.length > 0){
+            this.showDeepConversionType = true;
+            this.showDeepConversionBid = true;
+
+          } else {
+            this.showDeepConversionType = false;
+            this.showDeepConversionBid = false;
+          }
+
+
         } else {
           this.showBid = true;
           this.showOcpxActionType = false;
@@ -414,7 +514,12 @@
               console.log('优化目标:', this.ocpxActionType);
               console.log('出价金额,cpaBid:', this.cpaBid);
             }
-            console.log('资源位置: ', this.page);
+
+
+            console.log('资源位置: ', this.sceneId);
+            console.log('创意制作防水: ', this.unitType);
+            console.log('深度转化目标: ', this.deepConversionType);
+            console.log('深度转化目标出价: ', this.deepConversionBid);
             console.log('广告组名称: ', this.unitName);
             let params = {};
             params.dayBudget = this.dayBudget * 1000;
@@ -438,13 +543,18 @@
               params.ocpxActionType = this.ocpxActionType;
               params.cpaBid = this.cpaBid * 1000;
             }
-            params.page = this.page;
+
             params.showModel = this.showMode;
             params.unitName = this.unitName;
             params.loginId = this.userInfo().id;
             params.accountId = this.accountId;
             params.campaignTemplateId = this.campaignTemplateId;
             params.createCount = this.createCount;
+            params.sceneId = this.sceneId;
+            params.unitType = this.unitType;
+            params.deepConversionType = this.deepConversionType;
+            params.deepConversionBid = this.deepConversionBid * 1000;
+
 
             console.log(params)
             postAction(this.url.insertTemplateUrl, params).then((res) => {

+ 22 - 16
src/views/modules/kuaishouapp/uploadApp.vue

@@ -248,12 +248,15 @@
             console.log('Received values of form: ', values);
             let params = {};
             if (this.uploadType == '1') {
-              params.file = this.file;
+              if (this.file != '') {
+                params.file = this.file;
+              }
             } else if (this.uploadType == '2') {
               params.url = this.downloadUrl;
             }
-            params.uploadType = this.uploadType;
-            params.imageUrl = this.imageUrl;
+            if (this.imageUrl != '') {
+              params.imageUrl = this.imageUrl;
+            }
             params.platform = this.platform;
             params.appType = this.appType;
             params.packageName = this.packageName;
@@ -261,12 +264,14 @@
             params.appVersion = this.appVersion;
             params.loginId = this.userInfo().id;
             console.log(params)
-             postAction(this.url.insertTemplateUrl, params).then((res) => {
-               console.log(res)
-               if (res.success) {
-                 alert("创建应用成功");
-               }
-             });
+            postAction(this.url.insertTemplateUrl, params).then((res) => {
+              console.log(res)
+              if (res.success) {
+                alert("创建应用成功");
+              } else {
+                alert(res.message)
+              }
+            });
           }
         })
       },
@@ -288,18 +293,19 @@
             let params = {};
             params.appType = this.appType;
             params.platform = this.platform;
-            params.uploadType = '2';
             params.url = this.downloadUrl;
             params.appName = this.appName;
             params.appVersion = this.appVersion;
             params.loginId = this.userInfo().id;
             console.log(params)
-             postAction(this.url.insertTemplateUrl, params).then((res) => {
-               console.log(res)
-               if (res.success) {
-                 alert("广告组模板创建成功");
-               }
-             });
+            postAction(this.url.insertTemplateUrl, params).then((res) => {
+              console.log(res)
+              if (res.success) {
+                alert("广告组模板创建成功");
+              } else {
+                alert(res.message)
+              }
+            });
           }
         })
       },

+ 24 - 9
src/views/modules/kuaishouapp/uploadVideo.vue

@@ -13,6 +13,17 @@
 
 
       <a-form-item
+        label="素材投放位置"
+        :labelCol="{lg: {span: 7}, sm: {span: 7}}"
+        :wrapperCol="{lg: {span: 8}, sm: {span: 8} }">
+        <a-radio-group buttonStyle="solid" v-model="positionType">
+          <a-radio-button value="1">信息流广告</a-radio-button>
+          <a-radio-button value="2">视频后贴片广告</a-radio-button>
+        </a-radio-group>
+      </a-form-item>
+
+
+      <a-form-item
         label="素材格式"
         :labelCol="{lg: {span: 7}, sm: {span: 7}}"
         :wrapperCol="{lg: {span: 8}, sm: {span: 8} }">
@@ -42,9 +53,9 @@
 
 
       <a-form-item class="pic_upload_content"
-        label="封面图素材上传"
-        :labelCol="{lg: {span: 7}, sm: {span: 7}}"
-        :wrapperCol="{lg: {span: 12}, sm: {span: 12} }">
+                   label="封面图素材上传"
+                   :labelCol="{lg: {span: 7}, sm: {span: 7}}"
+                   :wrapperCol="{lg: {span: 12}, sm: {span: 12} }">
         <upload-to-ali v-model="localImageUrl"
                        :customDomain="customDomain"
                        multiple
@@ -67,11 +78,11 @@
           v-model="videoDesc" placeholder="(必填) 说点什么..." :rows="4"/>
       </a-form-item>
 
-     <!-- v-decorator="[
-      'confirm_videoDesc',
-      {rules: [{ required: true, message: 'error:' },
-      {validator: handleConfirmValue}]}
-      ]"-->
+      <!-- v-decorator="[
+       'confirm_videoDesc',
+       {rules: [{ required: true, message: 'error:' },
+       {validator: handleConfirmValue}]}
+       ]"-->
       <a-form-item
         label="格式"
         :labelCol="{lg: {span: 7}, sm: {span: 7}}"
@@ -112,6 +123,7 @@
       return {
         localUrl: '',
         localImageUrl: '',
+        positionType: '1',
         materialType: '1',
         videoDesc: '',
         customDomain: '',
@@ -147,6 +159,7 @@
             console.log('Received values of form: ', values);
             let params = {};
             params.localUrl = this.localUrl;
+            params.positionType = this.positionType;
             params.materialType = this.materialType;
             params.videoDesc = this.videoDesc;
             params.localImageUrl = this.localImageUrl;
@@ -166,5 +179,7 @@
 </script>
 
 <style lang="scss">
-.pic_upload_content .draggable-list{display: block;}
+  .pic_upload_content .draggable-list {
+    display: block;
+  }
 </style>