Переглянути джерело

Merge branch 'master' of http://git.tjyourong.com.cn/ctop/adsp-vue

魏志佳 4 роки тому
батько
коміт
d7b1e03d1a

+ 1 - 1
.env

@@ -1 +1 @@
-VUE_APP_BASE_API_URL = http://localhost:3030
+VUE_APP_BASE_API_URL = http://118.24.244.213:3030

+ 1 - 0
public/index.html

@@ -10,6 +10,7 @@
   <link rel="icon" href="<%= BASE_URL %>logo.png">
   <link href="<%= BASE_URL %>color.less">
   <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/7.2.5/polyfill.js"></script> -->
+  <script src="<%= BASE_URL %>polyfill.js"></script>
   <script src="<%= BASE_URL %>web-office-sdk-v1.1.1.umd.js"></script>
   <link
   rel="stylesheet"

+ 2 - 2
src/components/lyric/lyric.vue

@@ -10,14 +10,14 @@
         <dd>歌手名:{{ currentMusic.singer }}</dd>
         <dd>专辑名:{{ currentMusic.album }}</dd>
       </template>
-      <template v-else>
+      <!-- <template v-else>
         <dd>mmPlayer在线音乐播放器</dd>
         <dd>
           <a class="hover" target="_blank" href="https://github.com/maomao1996">
             <mm-icon type="github" :size="14" />&nbsp;茂茂
           </a>
         </dd>
-      </template>
+      </template> -->
     </dl>
     <!--歌词-->
     <div ref="musicLyric" class="music-lyric">

+ 101 - 101
src/styles/reset.less

@@ -1,92 +1,92 @@
-html,
-body,
-div,
-span,
-applet,
-object,
-iframe,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-p,
-blockquote,
-pre,
-a,
-abbr,
-acronym,
-address,
-big,
-cite,
-code,
-del,
-dfn,
-em,
-img,
-ins,
-kbd,
-q,
-s,
-samp,
-small,
-strike,
-strong,
-sub,
-sup,
-tt,
-var,
-b,
-u,
-i,
-center,
-dl,
-dt,
-dd,
-ol,
-ul,
-li,
-fieldset,
-form,
-label,
-legend,
-table,
-caption,
-tbody,
-tfoot,
-thead,
-tr,
-th,
-td,
-article,
-aside,
-canvas,
-details,
-embed,
-figure,
-figcaption,
-footer,
-header,
-hgroup,
-menu,
-nav,
-output,
-ruby,
-section,
-summary,
-time,
-mark,
-audio,
-video {
-  margin: 0;
-  padding: 0;
-  border: 0;
-  font-size: 100%;
-  font: inherit;
-  vertical-align: baseline;
-  -webkit-tap-highlight-color: transparent;
-}
+// html,
+// body,
+// div,
+// span,
+// applet,
+// object,
+// iframe,
+// h1,
+// h2,
+// h3,
+// h4,
+// h5,
+// h6,
+// p,
+// blockquote,
+// pre,
+// a,
+// abbr,
+// acronym,
+// address,
+// big,
+// cite,
+// code,
+// del,
+// dfn,
+// em,
+// img,
+// ins,
+// kbd,
+// q,
+// s,
+// samp,
+// small,
+// strike,
+// strong,
+// sub,
+// sup,
+// tt,
+// var,
+// b,
+// u,
+// i,
+// center,
+// dl,
+// dt,
+// dd,
+// ol,
+// ul,
+// li,
+// fieldset,
+// form,
+// label,
+// legend,
+// table,
+// caption,
+// tbody,
+// tfoot,
+// thead,
+// tr,
+// th,
+// td,
+// article,
+// aside,
+// canvas,
+// details,
+// embed,
+// figure,
+// figcaption,
+// footer,
+// header,
+// hgroup,
+// menu,
+// nav,
+// output,
+// ruby,
+// section,
+// summary,
+// time,
+// mark,
+// audio,
+// video {
+//   margin: 0;
+//   padding: 0;
+//   border: 0;
+//   font-size: 100%;
+//   font: inherit;
+//   vertical-align: baseline;
+//   -webkit-tap-highlight-color: transparent;
+// }
 
 /* HTML5 display-role reset for older browsers */
 article,
@@ -125,17 +125,17 @@ q:after {
   content: none;
 }
 
-table {
-  border-collapse: collapse;
-  border-spacing: 0;
-}
+// table {
+//   border-collapse: collapse;
+//   border-spacing: 0;
+// }
 
-a {
-  text-decoration: none;
-  color: inherit;
-}
+// a {
+//   text-decoration: none;
+//   color: inherit;
+// }
 
-input[type='number']::-webkit-inner-spin-button,
-input[type='number']::-webkit-outer-spin-button {
-  -webkit-appearance: none;
-}
+// input[type='number']::-webkit-inner-spin-button,
+// input[type='number']::-webkit-outer-spin-button {
+//   -webkit-appearance: none;
+// }

+ 5 - 4
src/utils/request.js

@@ -32,7 +32,7 @@ const err = (error) => {
     // console.log("------异常响应------", error.response.status)
     switch (error.response.status) {
       case 403:
-        notification.error({message: '系统提示', description: '拒绝访问', duration: 4})
+        notification.error({key:'0',message: '系统提示', description: '拒绝访问', duration: 4})
         break
       case 500:
         //notification.error({ message: '系统提示', description:'Token失效,请重新登录!',duration: 4})
@@ -57,13 +57,13 @@ const err = (error) => {
         }
         break
       case 404:
-        notification.error({message: '系统提示', description: '很抱歉,资源未找到!', duration: 4})
+        notification.error({key:'1',message: '系统提示', description: '很抱歉,资源未找到!', duration: 4})
         break
       case 504:
-        notification.error({message: '系统提示', description: '网络超时'})
+        notification.error({key:'2',message: '系统提示', description: '网络超时'})
         break
       case 401:
-        notification.error({message: '系统提示', description: '未授权,请重新登录', duration: 4})
+        notification.error({key:'3',message: '系统提示', description: '未授权,请重新登录', duration: 4})
         if (token) {
           store.dispatch('Logout').then(() => {
             setTimeout(() => {
@@ -74,6 +74,7 @@ const err = (error) => {
         break
       default:
         notification.error({
+          key:'4',
           message: '系统提示',
           description: data.message,
           duration: 4

+ 12 - 12
src/views/modules/kuaishouapp/account/accountIndex.vue

@@ -534,7 +534,7 @@ let realTimeColumn=[
           pageSizeOptions: ['10', '30', '50'],
           total: 0,
           onChange: (current, pageSize) => {
-            console.log(current, pageSize)
+
             // 切换分页时的回调,
             // 当在页面定义change事件时,切记要把此处的事件清除,因为这两个事件重叠了,可能到时候会导致一些莫名的bug
             this.ipagination.current = current
@@ -696,7 +696,7 @@ let realTimeColumn=[
         },
       // 查看实时数据
       realTimedata(records){
-        console.log(records);
+
         this.realTimeRecords=records
         this.realTimeVisiable=true;
         this.realTimeHttp()
@@ -713,7 +713,7 @@ let realTimeColumn=[
           startDate:this.dateValue[0].format('YYYY-MM-DD'),
           endDate:this.dateValue[1].format('YYYY-MM-DD')
         }).then(res=>{
-          console.log(res)
+
           this.realTimeData=[];
           this.realTimeLoading=false;
           if(res.success){
@@ -763,7 +763,7 @@ let realTimeColumn=[
         return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
       },
       getUnitData(e) {
-        console.log(this.unitId)
+
         var params = {
           accountId: this.appId,
           unitId: this.unitId,
@@ -790,7 +790,7 @@ let realTimeColumn=[
           localStorage.setItem('campaignId', record.campaignId)
           if (localStorage.getItem('advertisingGroup')) {
             var dataElse = JSON.parse(localStorage.getItem('advertisingGroup'))
-            console.log(dataElse)
+
             for (let i = 0; i < dataElse.length; i++) {
               if (dataElse[i].key == record.key) {
                 this.$router.replace({
@@ -849,7 +849,7 @@ let realTimeColumn=[
         }
       },
       onChangeSwitch(item) {
-        console.log(item)
+
         var params = {}
         params.accountId = this.appId + ''
         params.putStatus = item.showSwich ? 1 : 2
@@ -907,7 +907,7 @@ let realTimeColumn=[
         params.userId = this.userInfo().id
         params.campaignIds = this.selectedRowKeysValue
         postAction('/kuaishou/batch/batchUpdateStatus', params).then(res => {
-          console.log(res)
+
           if (res.success) {
             this.addUser()
             this.selectedRowKeysValue = []
@@ -927,7 +927,7 @@ let realTimeColumn=[
           params.userId = this.userInfo().id
           params.campaignIds = this.selectedRowKeysValue
           postAction('/kuaishou/batch/batchUpdateDayBudgetByProportion', params).then(res => {
-            console.log(res)
+
             if (res.success) {
               if (res.result.failCount > 0) {
                 this.visible = true
@@ -952,7 +952,7 @@ let realTimeColumn=[
           params.userId = this.userInfo().id
           params.campaignIds = this.selectedRowKeysValue
           postAction('/kuaishou/batch/batchUpdateDayBudget', params).then(res => {
-            console.log(res)
+
             if (res.success) {
               if (res.result.failCount > 0) {
                 this.visible = true
@@ -998,7 +998,7 @@ let realTimeColumn=[
           accountId: item.accountId
         }).then(res => {
           if (res.success) {
-            console.log(res)
+
             this.many = res.result.budget
             this.manyTwo = res.result.budget
             this.cost = res.result.cost
@@ -1028,7 +1028,7 @@ let realTimeColumn=[
             params.userId = this.userInfo().id
             params.campaignIds = [item.campaignId]
             postAction('/kuaishou/batch/batchUpdateDayBudget', params).then(res => {
-              console.log(res)
+
               if (res.result.failCount > 0) {
                 this.$message.error(
                   '广告计划:' +
@@ -1043,7 +1043,7 @@ let realTimeColumn=[
         } else {
           item.elseMoney = item.dayBudget / 1000
         }
-        console.log(item)
+
       },
       campaignEdit(e) {
         this.loadingCampaign = true

+ 13 - 11
src/views/modules/kuaishouapp/account/advertisingGroup.vue

@@ -111,9 +111,10 @@
               <span slot="actionTwo" slot-scope="text, record">
                 <a @click="editDetail(record)">编辑</a>
                 <a-divider type="vertical" />
-                <a @click="copyDetail(record)">复制</a>
+                <a @click="copyDetail(record)" :disabled="record.unitType+'' == '7'||record.unitType+'' == '5'">复制</a>
                 <a-divider type="vertical" />
                 <a @click="realTimedata(record)">查看实时数据</a>
+                
               </span>
               <span slot="status" slot-scope="text">{{ text | status }}</span>
               <span slot="putStatus" slot-scope="text">{{ text | putStatus }}</span>
@@ -132,7 +133,7 @@
               <span slot="sceneId" slot-scope="text"><span v-for="item of text"
                   :key="item">{{ item | sceneId }}</span></span>
               <span slot="showMode" slot-scope="text">{{ text | showModel }}</span>
-              <span slot="unitType" slot-scope="text">{{ text == 4 ? '自定义' : '' }}</span>
+              <span slot="unitType" slot-scope="text">{{ text == 4 ? '自定义' : '程序化创意2.0' }}</span>
               <span slot="urlType" slot-scope="text">{{ text | urlType }}</span>
 
               <template slot="dayBudget" slot-scope="text, record">
@@ -903,6 +904,7 @@ let realTimeColumn=[
           0: '未知',
           1: '优选广告位',
           3: '视频播放页广告-便利贴广告',
+          5: '联盟广告',
           6: '上下滑大屏广告',
           7: '信息流广告'
         }
@@ -1192,15 +1194,15 @@ let realTimeColumn=[
         localStorage.setItem('campaignId', record.campaignId)
         if (localStorage.getItem('originality')) {
           var dataElse = JSON.parse(localStorage.getItem('originality'))
-          for (let i = 0; i < dataElse.length; i++) {
-            if (dataElse[i].unitId == record.unitId) {
-              this.$router.replace({
-                path: '/account/originality'
-              })
-              return
-            }
-          }
-          dataElse.push(record)
+          // for (let i = 0; i < dataElse.length; i++) {
+          //   if (dataElse[i].unitId == record.unitId) {
+          //     this.$router.replace({
+          //       path: '/account/originality'
+          //     })
+          //     return
+          //   }
+          // }
+          dataElse= [record] 
           localStorage.setItem('originality', JSON.stringify(dataElse))
         } else {
           var data = [record]

+ 99 - 26
src/views/modules/kuaishouapp/account/editGroup.vue

@@ -90,6 +90,16 @@
           <a-checkbox value="smartisan">锤子</a-checkbox>
         </a-checkbox-group>
       </a-form-item>
+
+      <a-form-item label="投放范围" :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
+        :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
+        v-if="allianceAccount">
+        <a-radio-group buttonStyle="solid" v-model="allForm.allianceAccount" :disabled="typeCopy=='edit'">
+          <a-radio-button value="1">默认</a-radio-button>
+          <a-radio-button value="2">联盟广告</a-radio-button>
+        </a-radio-group>
+      </a-form-item>
+
       <div style="text-align:center;font-size:16px;margin-bottom:10px">
         目标人群
       </div>
@@ -103,7 +113,7 @@
         </a-select>
       </a-form-item>
       <targeted-population ref="population" :populationData.sync="populationData"
-        :platform="getPlatForm(getData('appId'))" />
+        :platform="getPlatForm(getData('appId'))"  :lol="allForm.allianceAccount"/>
       <a-form-item label=" " :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
         :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }" class="else-label">
         <div style="display:flex;">
@@ -181,7 +191,7 @@
         </span>
       </a-form-item>
       <a-form-item label="场景广告位" :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
-        :wrapperCol="{ lg: { span: 17 }, sm: { span: 17 } }">
+        :wrapperCol="{ lg: { span: 17 }, sm: { span: 17 } }" v-if="allForm.allianceAccount=='1'">
         <!-- v-decorator="['speed', { initialValue: '1' }]" -->
         <a-radio-group buttonStyle="solid" :disabled="typeCopy=='edit'" v-model="allForm.sceneIdAll">
           <a-radio-button :value="1">优选广告位</a-radio-button>
@@ -216,17 +226,48 @@
                       :wrapperCol="{ lg: { span: 18 }, sm: { span: 17 } }">
                       <a-radio-group buttonStyle="solid" v-model="item.bidType" @change="resData(index)">
                         <a-radio-button :value="1">点击数</a-radio-button>
-                        <a-radio-button :value="2">行为数</a-radio-button>
-                        <a-radio-button :value="180"
-                          v-if="campaignType == '2' && allForm.groupTypeData.isActivate == '1'">激活</a-radio-button>
-                        <a-radio-button :value="53" v-if="
-                            (campaignType == '4' || campaignType == '5') && allForm.groupTypeData.isFormSubmit == '1'
-                          ">表单提交</a-radio-button>
+
+                        <a-radio-button :value="10">转化数</a-radio-button>
                       </a-radio-group>
                     </a-form-item>
+                    <a-form-item label="转化目标" :labelCol="{ lg: { span: 6 }, sm: { span: 7 } }"
+                      :wrapperCol="{ lg: { span: 18 }, sm: { span: 17 } }" v-if="item.bidType==10">
+                      <a-select v-model="item.ocpxActionType">
+
+                        <a-select-option :value="2">行为数</a-select-option>
+                        <a-select-option :value="180"
+                          v-if="campaignType == '2' && allForm.groupTypeData.isActivate == '1'">激活</a-select-option>
+                        <a-select-option :value="53" v-if="
+                            (campaignType == '4' || campaignType == '5') && allForm.groupTypeData.isFormSubmit == '1'
+                          ">表单提交</a-select-option>
+
+                        <a-select-option :value="394" v-if="
+                             allForm.groupTypeData.isOrderSubmit == '1'
+                          ">订单提交</a-select-option>
+                        <a-select-option :value="348" v-if="
+                             allForm.groupTypeData.isValidClue == '1'
+                          ">使用有效线索</a-select-option>
+                        <a-select-option :value="383" v-if="
+                             allForm.groupTypeData.isCreditGrant == '1'
+                          ">授信出价</a-select-option>
+                         <a-select-option :value="384" v-if="
+                            allForm.groupTypeData.isWanJian == '1'
+                          ">完件出价</a-select-option>
+                          <a-select-option :value="190" v-if="
+                             allForm.groupTypeData.isPurchase == '1'
+                          ">付费出价</a-select-option>
+                          <a-select-option :value="191" v-if="
+                             allForm.groupTypeData.isFirstdayRoi == '1'
+                          ">首日ROI</a-select-option>
+                          <a-select-option :value="396" v-if="
+                             allForm.groupTypeData.isRegister == '1'
+                          ">注册优化目标</a-select-option>
+                      </a-select>
+
+                    </a-form-item>
                     <a-form-item label="深度转化目标" :labelCol="{ lg: { span: 6 }, sm: { span: 7 } }"
                       :wrapperCol="{ lg: { span: 18 }, sm: { span: 17 } }" v-if="
-                        (item.bidType == 180 || item.bidType == 53) &&
+                        (item.ocpxActionType == 180 || item.ocpxActionType == 53) &&
                           allForm.groupTypeData.deepConversionTypes.length > 0
                       ">
                       <a-select v-model="item.deepConversionType" allowClear>
@@ -255,17 +296,17 @@
                         :style="{ borderColor: item.showTipCheck ? 'red' : '#d9d9d9' }" style="width:100%">
                       </a-input-number>
                       <span style="color:red" v-if="item.showTipCheck">{{
-                        item.bidType == 2
+                        item.bidType == 1
                           ? '不得低于1元,不得高于项目最高出价' + maxBid + '元'
                           : '不得低于1元,不得高于项目最高出价' + maxBid + '元'
                       }}</span>
-                      <span style="color:red;font-weight:700" v-else-if="item.bidType==2&&item.cpaBid&&item.cpaBid>1">
+                      <span style="color:red;font-weight:700" v-else-if="item.ocpxActionType==2&&item.cpaBid&&item.cpaBid>1">
                         行为出价大于1元,请注意!!!
                       </span>
                     </a-form-item>
                     <a-form-item label="深度转化出价" :labelCol="{ lg: { span: 6 }, sm: { span: 7 } }"
                       :wrapperCol="{ lg: { span: 18 }, sm: { span: 17 } }" v-if="
-                        (item.bidType == 180 || item.bidType == 53) &&
+                        (item.ocpxActionType == 180 || item.ocpxActionType == 53) &&
                           allForm.groupTypeData.deepConversionTypes.length > 0 &&
                           item.deepConversionType != ''
                       ">
@@ -335,6 +376,7 @@
     },
     data() {
       return {
+        allianceAccount:false,
         visibleFail: false,
         visibleData: null,
         checkedTrue: false,
@@ -383,7 +425,8 @@
           useAppMarket: false,
           appStore: ['huawei', 'oppo', 'vivo', 'xiaomi',
             'meizu', 'smartisan'
-          ]
+          ],
+          allianceAccount:'1'
         },
         typeCopy: "edit",
         dataList: [],
@@ -604,7 +647,8 @@
             }
             //   dataJson.useAppMarket = dataJson.useAppMarket==0?false:true
 
-            this.allForm.sceneIdAll = JSON.parse(dataJson.sceneId).filter(item => item == 1).length > 0 ? 1 : 2
+            this.allForm.sceneIdAll = JSON.parse(dataJson.sceneId).filter(item => item == 1).length > 0 ? 1 : JSON.parse(dataJson.sceneId)[0] ==5 ? 5 : 2
+            this.allForm.allianceAccount = this.allForm.sceneIdAll==5?'2':'1'
             this.allForm.useAppMarket = dataJson.useAppMarket ? (dataJson.useAppMarket == 0 ? false : true) : false
             this.allForm.appStore = this.allForm.useAppMarket ? JSON.parse(dataJson.appStore) : ['huawei', 'oppo',
               'vivo', 'xiaomi',
@@ -620,7 +664,7 @@
             this.allForm.scheduleTime = dataJson.scheduleTime.indexOf('1') != -1 ? '2' : '1'
             this.allForm.scheduleTimeData = dataJson.scheduleTime
             this.allForm.group = [{
-              bidType: dataJson.ocpxActionType,
+              bidType: dataJson.bidType,
               bid: dataJson.bid,
               cpaBid: dataJson.cpaBid / 1000,
               showTipCheck: false,
@@ -628,7 +672,8 @@
               unitName: unitNameCopy ? unitNameCopy : dataJson.unitName,
               unitNameCheck: false,
               deepConversionType: dataJson.deepConversionType,
-              deepConversionBid: dataJson.deepConversionBid / 1000
+              deepConversionBid: dataJson.deepConversionBid / 1000,
+              ocpxActionType:dataJson.ocpxActionType
             }]
 
             this.populationData = dataJson
@@ -720,13 +765,14 @@
                 cpaBid: item.cpaBid != '' ? item.cpaBid * 1000 : '',
                 bid: item.bid != '' ? item.bid * 1000 : '',
                 deepConversionBid: item.deepConversionBid != '' ? item.deepConversionBid * 1000 : '',
-                ocpxActionType: item.bidType,
+                ocpxActionType: item.ocpxActionType,
                 bidType: item.bidType == 1 ? 2 : 10
               }
             })[0]
             var json = {
               ...values,
-              sceneId: this.allForm.sceneIdAll == 1 ? [this.allForm.sceneIdAll] : this.allForm.sceneId,
+              // sceneId: this.allForm.sceneIdAll == 1 ? [this.allForm.sceneIdAll] : this.allForm.sceneId,
+              sceneId: this.allForm.allianceAccount=='1'?this.allForm.sceneIdAll == 1 ? [this.allForm.sceneIdAll] : this.allForm.sceneId:[5],
               dayBudget: values.dayBudget * 1000
             }
             var params = {
@@ -747,6 +793,8 @@
                 params.appStore = this.allForm.appStore
               }
             }
+
+
             if (this.isUpdateTrackUrl) {
               if (this.showSite && (this.getPlatForm(this.getData('appId')) == '1' || this.getPlatForm(this.getData(
                   'appId')) == '2')) {
@@ -787,9 +835,16 @@
                 templateContent: JSON.stringify(this.populationData)
               }).then(res => {})
             }
+            if(this.allForm.allianceAccount=='1'){
+              var {...paramsEnd} = params
+            }else{
+              var {fansStar,appType,businessInterestType,interestVideo,isOpen,noAgeBreak,noGenderBreak,noAreaBreak,...paramsElse} = params.allForm
+              params.allForm = paramsElse
+              var {businessInterestType,isOpen,noAgeBreak,noGenderBreak,noAreaBreak,...paramsEnd} = params
+            }
             if (this.typeCopy == 'edit') {
               var param = {
-                ...params,
+                ...paramsEnd,
                 ...groupArr
               }
               postAction('/kuaishou/batch/updateUnit', param).then(res => {
@@ -803,13 +858,13 @@
                 }
               })
             } else if (this.typeCopy == 'copy') {
-              params.type = 'copy'
-              params.copyUnitId = this.unitId
-              params.copyToCampaignId = this.copyCampaignId
-              params.campaignId = this.oneCampaignId
-              params.createCount = 1
-              params.groupArr = [groupArr]
-              postAction('/kuaishou/batch/copyUnit', params).then(res => {
+              paramsEnd.type = 'copy'
+              paramsEnd.copyUnitId = this.unitId
+              paramsEnd.copyToCampaignId = this.copyCampaignId
+              paramsEnd.campaignId = this.oneCampaignId
+              paramsEnd.createCount = 1
+              paramsEnd.groupArr = [groupArr]
+              postAction('/kuaishou/batch/copyUnit', paramsEnd).then(res => {
                 if (res.success) {
                   if (res.result.failCount > 0) {
                     this.visibleFail = true
@@ -944,6 +999,24 @@
           this.allForm.groupTypeData = res.result
         }
       })
+
+      getAction('/kuaishou/batch/getWhiteList',{
+        accountId:localStorage.getItem('accountId')
+      }).then(res=>{
+        if(res.success){
+          console.log(res)
+          if(res.result){
+            if(res.result.alliance_account == 1){
+              this.allianceAccount = true
+            }else{
+              this.allianceAccount = false
+            }
+          }else{
+            this.allianceAccount = false
+          }
+        }
+      })
+
       getAction('/kuaishou/batch/getProjectMaxBid', {
         accountId: localStorage.getItem('accountId')
       }).then(res => {

+ 104 - 36
src/views/modules/kuaishouapp/account/editGroupNew.vue

@@ -89,6 +89,16 @@
           <a-checkbox value="smartisan">锤子</a-checkbox>
         </a-checkbox-group>
       </a-form-item>
+
+      <a-form-item label="投放范围" :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
+        :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
+        v-if="allianceAccount">
+        <a-radio-group buttonStyle="solid" v-model="allForm.allianceAccount" disabled>
+          <a-radio-button value="1">默认</a-radio-button>
+          <a-radio-button value="2">联盟广告</a-radio-button>
+        </a-radio-group>
+      </a-form-item>
+
       <div style="text-align:center;font-size:16px;margin-bottom:10px">
         目标人群
       </div>
@@ -102,7 +112,7 @@
         </a-select>
       </a-form-item>
       <targeted-population ref="population" :populationData.sync="populationData"
-        :platform="getPlatForm(getData('appId'))" />
+        :platform="getPlatForm(getData('appId'))" :lol="allForm.allianceAccount"/>
       <a-form-item label=" " :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
         :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }" class="else-label">
         <div style="display:flex;">
@@ -182,8 +192,9 @@
           }}
         </span>
       </a-form-item>
+      {{allForm.allianceAccount}}
       <a-form-item label="场景广告位" :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
-        :wrapperCol="{ lg: { span: 17 }, sm: { span: 17 } }">
+        :wrapperCol="{ lg: { span: 17 }, sm: { span: 17 } }" v-if="allForm.allianceAccount=='1'">
         <!-- v-decorator="['speed', { initialValue: '1' }]" -->
         <a-radio-group buttonStyle="solid" v-model="allForm.sceneIdAll">
           <a-radio-button :value="1">优选广告位</a-radio-button>
@@ -218,17 +229,48 @@
                       :wrapperCol="{ lg: { span: 18 }, sm: { span: 17 } }">
                       <a-radio-group buttonStyle="solid" v-model="item.bidType" @change="resData(index)">
                         <a-radio-button :value="1">点击数</a-radio-button>
-                        <a-radio-button :value="2">行为数</a-radio-button>
-                        <a-radio-button :value="180"
-                          v-if="campaignType == '2' && allForm.groupTypeData.isActivate == '1'">激活</a-radio-button>
-                        <a-radio-button :value="53" v-if="
-                            (campaignType == '4' || campaignType == '5') && allForm.groupTypeData.isFormSubmit == '1'
-                          ">表单提交</a-radio-button>
+
+                        <a-radio-button :value="10">转化数</a-radio-button>
                       </a-radio-group>
                     </a-form-item>
+                    <a-form-item label="转化目标" :labelCol="{ lg: { span: 6 }, sm: { span: 7 } }"
+                      :wrapperCol="{ lg: { span: 18 }, sm: { span: 17 } }" v-if="item.bidType==10">
+                      <a-select v-model="item.ocpxActionType">
+
+                        <a-select-option :value="2">行为数</a-select-option>
+                        <a-select-option :value="180"
+                          v-if="campaignType == '2' && allForm.groupTypeData.isActivate == '1'">激活</a-select-option>
+                        <a-select-option :value="53" v-if="
+                            (campaignType == '4' || campaignType == '5') && allForm.groupTypeData.isFormSubmit == '1'
+                          ">表单提交</a-select-option>
+
+                        <a-select-option :value="394" v-if="
+                             allForm.groupTypeData.isOrderSubmit == '1'
+                          ">订单提交</a-select-option>
+                        <a-select-option :value="348" v-if="
+                             allForm.groupTypeData.isValidClue == '1'
+                          ">使用有效线索</a-select-option>
+                        <a-select-option :value="383" v-if="
+                             allForm.groupTypeData.isCreditGrant == '1'
+                          ">授信出价</a-select-option>
+                         <a-select-option :value="384" v-if="
+                            allForm.groupTypeData.isWanJian == '1'
+                          ">完件出价</a-select-option>
+                          <a-select-option :value="190" v-if="
+                             allForm.groupTypeData.isPurchase == '1'
+                          ">付费出价</a-select-option>
+                          <a-select-option :value="191" v-if="
+                             allForm.groupTypeData.isFirstdayRoi == '1'
+                          ">首日ROI</a-select-option>
+                          <a-select-option :value="396" v-if="
+                             allForm.groupTypeData.isRegister == '1'
+                          ">注册优化目标</a-select-option>
+                      </a-select>
+
+                    </a-form-item>
                     <a-form-item label="深度转化目标" :labelCol="{ lg: { span: 6 }, sm: { span: 7 } }"
                       :wrapperCol="{ lg: { span: 18 }, sm: { span: 17 } }" v-if="
-                        (item.bidType == 180 || item.bidType == 53) &&
+                        (item.ocpxActionType == 180 || item.ocpxActionType == 53) &&
                           allForm.groupTypeData.deepConversionTypes.length > 0
                       ">
                       <a-select v-model="item.deepConversionType" allowClear>
@@ -257,17 +299,17 @@
                         :style="{ borderColor: item.showTipCheck ? 'red' : '#d9d9d9' }" style="width:100%">
                       </a-input-number>
                       <span style="color:red" v-if="item.showTipCheck">{{
-                        item.bidType == 2
+                        item.bidType == 1
                           ? '不得低于1元,不得高于项目最高出价' + maxBid + '元'
                           : '不得低于1元,不得高于项目最高出价' + maxBid + '元'
                       }}</span>
-                      <span style="color:red;font-weight:700" v-else-if="item.bidType==2&&item.cpaBid&&item.cpaBid>1">
+                      <span style="color:red;font-weight:700" v-else-if="item.ocpxActionType==2&&item.cpaBid&&item.cpaBid>1">
                         行为出价大于1元,请注意!!!
                       </span>
                     </a-form-item>
                     <a-form-item label="深度转化出价" :labelCol="{ lg: { span: 6 }, sm: { span: 7 } }"
                       :wrapperCol="{ lg: { span: 18 }, sm: { span: 17 } }" v-if="
-                        (item.bidType == 180 || item.bidType == 53) &&
+                        (item.ocpxActionType == 180 || item.ocpxActionType == 53) &&
                           allForm.groupTypeData.deepConversionTypes.length > 0 &&
                           item.deepConversionType != ''
                       ">
@@ -346,6 +388,7 @@
     },
     data() {
       return {
+        allianceAccount:false,
         checkedTrue: false,
         nameValue: '',
         visible: false,
@@ -394,7 +437,8 @@
           useAppMarket: false,
           appStore: ['huawei', 'oppo', 'vivo', 'xiaomi',
             'meizu', 'smartisan'
-          ]
+          ],
+          allianceAccount:'1'
         },
         typeCopy: "typeOne",
         dataList: [],
@@ -464,13 +508,7 @@
           } else {
             this.allForm.group[index].showTipCheck = false
           }
-        } else if (this.allForm.group[index].bidType == 2) {
-          if (this.allForm.group[index].cpaBid < 1 || this.allForm.group[index].cpaBid > this.maxBid) {
-            this.allForm.group[index].showTipCheck = true
-          } else {
-            this.allForm.group[index].showTipCheck = false
-          }
-        } else {
+        }  else {
           if (this.allForm.group[index].cpaBid < 1 || this.allForm.group[index].cpaBid > this.maxBid) {
             this.allForm.group[index].showTipCheck = true
           } else {
@@ -623,7 +661,8 @@
             }
             //   dataJson.useAppMarket = dataJson.useAppMarket==0?false:true
             dataJson.dayBudget = dataJson.dayBudget / 1000
-            this.allForm.sceneIdAll = JSON.parse(dataJson.sceneId).filter(item => item == 1).length > 0 ? 1 : 2
+            this.allForm.sceneIdAll = JSON.parse(dataJson.sceneId).filter(item => item == 1).length > 0 ? 1 : JSON.parse(dataJson.sceneId)[0] ==5 ? 5 : 2
+            this.allForm.allianceAccount = this.allForm.sceneIdAll==5?'2':'1'
             this.allForm.useAppMarket = dataJson.useAppMarket ? (dataJson.useAppMarket == 0 ? false : true) : false
             this.allForm.appStore = this.allForm.useAppMarket ? JSON.parse(dataJson.appStore) : ['huawei', 'oppo',
               'vivo', 'xiaomi',
@@ -637,7 +676,7 @@
             this.allForm.scheduleTime = dataJson.scheduleTime.indexOf('1') != -1 ? '2' : '1'
             this.allForm.scheduleTimeData = dataJson.scheduleTime
             this.allForm.group = [{
-              bidType: dataJson.ocpxActionType,
+              bidType: dataJson.bidType,
               bid: dataJson.bid,
               cpaBid: dataJson.cpaBid / 1000,
               showTipCheck: false,
@@ -645,7 +684,8 @@
               unitName: type == 'typeOne' ? [dataJson.unitName] : unitNameCopy,
               unitNameCheck: false,
               deepConversionType: dataJson.deepConversionType,
-              deepConversionBid: dataJson.deepConversionBid / 1000
+              deepConversionBid: dataJson.deepConversionBid / 1000,
+              ocpxActionType:dataJson.ocpxActionType
             }]
 
             this.populationData = dataJson
@@ -769,6 +809,14 @@
                 }
               }
             }
+            
+            if(this.allForm.allianceAccount=='1'){
+              var {...paramsEnd} = params
+            }else{
+              var {fansStar,appType,businessInterestType,interestVideo,isOpen,noAgeBreak,noGenderBreak,noAreaBreak,...paramsElse} = params.allForm
+              params.allForm = paramsElse
+              var {businessInterestType,isOpen,noAgeBreak,noGenderBreak,noAreaBreak,...paramsEnd} = params
+            }
             if (this.checkedTrue) {
               var data = this.populationData
               postAction('/kuaishou/batch/addDirectionalTemplate', {
@@ -777,6 +825,8 @@
                 templateContent: JSON.stringify(this.populationData)
               }).then(res => {})
             }
+
+
             if (this.typeCopy == 'typeOne') {
               var groupArr = this.allForm.group.map(item => {
                 return {
@@ -785,12 +835,12 @@
                   cpaBid: item.cpaBid != '' ? item.cpaBid * 1000 : '',
                   bid: item.bid != '' ? item.bid * 1000 : '',
                   deepConversionBid: item.deepConversionBid != '' ? item.deepConversionBid * 1000 : '',
-                  ocpxActionType: item.bidType,
+                  ocpxActionType: item.ocpxActionType,
                   bidType: item.bidType == 1 ? 2 : 10
                 }
               })[0]
               var param = {
-                ...params,
+                ...paramsEnd,
                 groupArr: groupArr
               }
               param.createType = '1'
@@ -829,23 +879,23 @@
                   cpaBid: item.cpaBid != '' ? item.cpaBid * 1000 : '',
                   bid: item.bid != '' ? item.bid * 1000 : '',
                   deepConversionBid: item.deepConversionBid != '' ? item.deepConversionBid * 1000 : '',
-                  ocpxActionType: item.bidType,
+                  ocpxActionType: item.ocpxActionType,
                   bidType: item.bidType == 1 ? 2 : 10
                 }
               })[0]
               console.log(groupArrTwo)
-              params.type = 'copy'
-              params.createType = '2'
-              params.createCount = this.countAll
-              params.copyUnitId = this.unitId
-              params.copyToCampaignId = this.copyCampaignId
-              params.campaignId = this.oneCampaignId
-              params.createCount = 1
-              params.groupArr = groupArrTwo
-              params.unitNames = groupArrTwo.unitName.map(item => {
+              paramsEnd.type = 'copy'
+              paramsEnd.createType = '2'
+              paramsEnd.createCount = this.countAll
+              paramsEnd.copyUnitId = this.unitId
+              paramsEnd.copyToCampaignId = this.copyCampaignId
+              paramsEnd.campaignId = this.oneCampaignId
+              paramsEnd.createCount = 1
+              paramsEnd.groupArr = groupArrTwo
+              paramsEnd.unitNames = groupArrTwo.unitName.map(item => {
                 return item.unitName
               })
-              postAction('/kuaishou/batch/copyUnitUpdate', params).then(res => {
+              postAction('/kuaishou/batch/copyUnitUpdate', paramsEnd).then(res => {
                 if (res.success) {
                   if (res.result.failInfo.length > 0) {
                     // this.form.setFieldsValue(pick(params, ['sceneId']))
@@ -981,6 +1031,24 @@
           this.allForm.groupTypeData = res.result
         }
       })
+
+      getAction('/kuaishou/batch/getWhiteList',{
+        accountId:localStorage.getItem('accountId')
+      }).then(res=>{
+        if(res.success){
+          console.log(res)
+          if(res.result){
+            if(res.result.alliance_account == 1){
+              this.allianceAccount = true
+            }else{
+              this.allianceAccount = false
+            }
+          }else{
+            this.allianceAccount = false
+          }
+        }
+      })
+
       getAction('/kuaishou/batch/getProjectMaxBid', {
         accountId: localStorage.getItem('accountId')
       }).then(res => {

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


+ 1 - 1
src/views/modules/kuaishouapp/account/stepForm/Step1.vue

@@ -68,7 +68,7 @@ import moment from 'moment'
 import { mapActions, mapGetters } from 'vuex'
 
 export default {
-  name: 'BaseForm',
+  name: 'Step1',
   data() {
     return {
       promotionName: '',

+ 88 - 28
src/views/modules/kuaishouapp/account/stepForm/Step2.vue

@@ -120,14 +120,14 @@
         </a-checkbox-group>
       </a-form-item>
 
-      <!-- <a-form-item label="投放范围" :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
+      <a-form-item label="投放范围" :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
         :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
         v-if="allianceAccount">
         <a-radio-group buttonStyle="solid" v-model="allForm.allianceAccount">
           <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>
 
 
       <div style="text-align:center;font-size:16px;margin-bottom:10px">
@@ -143,7 +143,7 @@
         </a-select>
       </a-form-item>
       <targeted-population ref="population" :populationData.sync="populationData"
-        :platform="getPlatForm(getData('appId'))" />
+        :platform="getPlatForm(getData('appId'))" :lol="allForm.allianceAccount"/>
       <a-form-item label=" " :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
         :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }" class="else-label">
         <div style="display:flex;">
@@ -223,7 +223,7 @@
         </span>
       </a-form-item>
       <a-form-item label="场景广告位" :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
-        :wrapperCol="{ lg: { span: 17 }, sm: { span: 17 } }">
+        :wrapperCol="{ lg: { span: 17 }, sm: { span: 17 } }" v-if="allForm.allianceAccount == '1'">
         <!-- v-decorator="['speed', { initialValue: '1' }]" -->
         <a-radio-group buttonStyle="solid" v-decorator="['sceneId', { initialValue: '1' }]">
           <a-radio-button value="1">优选广告位</a-radio-button>
@@ -241,6 +241,13 @@
           <a-checkbox :value="3">视频播放页广告</a-checkbox>
         </a-checkbox-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 buttonStyle="solid" v-decorator="['unitType', { initialValue: '4' }]">
+          <a-radio-button value="4">自定义</a-radio-button>
+          <a-radio-button value="7" :disabled="allForm.allianceAccount=='2'">程序化创意2.0</a-radio-button>
+        </a-radio-group>
+       </a-form-item>
       <div style="text-align:center;font-size:16px">优化目标和计费</div>
       <a-form-item label=" " :labelCol="{ lg: { span: 6 }, sm: { span: 6 } }"
         :wrapperCol="{ lg: { span: 18 }, sm: { span: 18 } }" class="else-label">
@@ -258,19 +265,62 @@
                     <div style="clear:both"></div>
                     <a-form-item label="优化目标" :labelCol="{ lg: { span: 6 }, sm: { span: 7 } }"
                       :wrapperCol="{ lg: { span: 18 }, sm: { span: 17 } }">
+
                       <a-radio-group buttonStyle="solid" v-model="item.bidType" @change="resData(index)">
                         <a-radio-button :value="1">点击数</a-radio-button>
-                        <a-radio-button :value="2">行为数</a-radio-button>
-                        <a-radio-button :value="180"
-                          v-if="campaignType == '2' && allForm.groupTypeData.isActivate == '1'">激活</a-radio-button>
-                        <a-radio-button :value="53" v-if="
-                            (campaignType == '4' || campaignType == '5') && allForm.groupTypeData.isFormSubmit == '1'
-                          ">表单提交</a-radio-button>
+
+                        <a-radio-button :value="10">转化数</a-radio-button>
                       </a-radio-group>
+
+                              <!-- //   isOrderSubmit: 0   //订单提交优化目标
+        //   isValidClue: 0    //使用有效线索
+        //   isCreditGrant: 0  //授信出价
+        //   deepConversionTypes: [{deepConversionType: 3, desc: "付费"}]
+        //   isWanJian: 0     //完件出价
+        //   isPurchase: 1   //付费出价
+        //   isFirstdayRoi: 0  //首日ROI
+        //   isActivate: 0   //激活出价
+        //   isFormSubmit: 1  // 表单出价
+        //   isRegister: 0    //注册优化目标 -->
+                    </a-form-item>
+                    <a-form-item label="转化目标" :labelCol="{ lg: { span: 6 }, sm: { span: 7 } }"
+                      :wrapperCol="{ lg: { span: 18 }, sm: { span: 17 } }" v-if="item.bidType==10">
+                      <a-select v-model="item.ocpxActionType">
+
+                        <a-select-option :value="2">行为数</a-select-option>
+                        <a-select-option :value="180"
+                          v-if="campaignType == '2' && allForm.groupTypeData.isActivate == '1'">激活</a-select-option>
+                        <a-select-option :value="53" v-if="
+                            (campaignType == '4' || campaignType == '5') && allForm.groupTypeData.isFormSubmit == '1'
+                          ">表单提交</a-select-option>
+
+                        <a-select-option :value="394" v-if="
+                             allForm.groupTypeData.isOrderSubmit == '1'
+                          ">订单提交</a-select-option>
+                        <a-select-option :value="348" v-if="
+                             allForm.groupTypeData.isValidClue == '1'
+                          ">使用有效线索</a-select-option>
+                        <a-select-option :value="383" v-if="
+                             allForm.groupTypeData.isCreditGrant == '1'
+                          ">授信出价</a-select-option>
+                         <a-select-option :value="384" v-if="
+                            allForm.groupTypeData.isWanJian == '1'
+                          ">完件出价</a-select-option>
+                          <a-select-option :value="190" v-if="
+                             allForm.groupTypeData.isPurchase == '1'
+                          ">付费出价</a-select-option>
+                          <a-select-option :value="191" v-if="
+                             allForm.groupTypeData.isFirstdayRoi == '1'
+                          ">首日ROI</a-select-option>
+                          <a-select-option :value="396" v-if="
+                             allForm.groupTypeData.isRegister == '1'
+                          ">注册优化目标</a-select-option>
+                      </a-select>
+
                     </a-form-item>
                     <a-form-item label="深度转化目标" :labelCol="{ lg: { span: 6 }, sm: { span: 7 } }"
                       :wrapperCol="{ lg: { span: 18 }, sm: { span: 17 } }" v-if="
-                        (item.bidType == 180 || item.bidType == 53) &&
+                        (item.ocpxActionType == 180 || item.ocpxActionType == 53) &&
                           allForm.groupTypeData.deepConversionTypes.length > 0
                       ">
                       <a-select v-model="item.deepConversionType" allowClear>
@@ -292,7 +342,7 @@
                         :style="{ borderColor: item.showTipCheck ? 'red' : '#d9d9d9' }" style="width:100%">
                       </a-input-number>
                       <span style="color:red"
-                        v-if="item.showTipCheck&&item.bidType==180">不得低于0.2元,不得高于项目最高出价{{ maxBid }}元</span>
+                        v-if="item.showTipCheck&&item.ocpxActionType==180">不得低于0.2元,不得高于项目最高出价{{ maxBid }}元</span>
                     </a-form-item>
                     <a-form-item label="目标成本" :labelCol="{ lg: { span: 6 }, sm: { span: 7 } }"
                       :wrapperCol="{ lg: { span: 18 }, sm: { span: 17 } }" v-else>
@@ -300,17 +350,17 @@
                         :style="{ borderColor: item.showTipCheck ? 'red' : '#d9d9d9' }" style="width:100%">
                       </a-input-number>
                       <span style="color:red" v-if="item.showTipCheck">{{
-                        item.bidType == 2
+                        item.bidType == 1
                           ? '不得低于1元,不得高于项目最高出价' + maxBid + '元'
                           : '不得低于1元,不得高于项目最高出价' + maxBid + '元'
                       }}</span>
-                      <span style="color:red;font-weight:700" v-else-if="item.bidType==2&&item.cpaBid&&item.cpaBid>1">
+                      <span style="color:red;font-weight:700" v-else-if="item.ocpxActionType==2&&item.cpaBid&&item.cpaBid>1">
                         行为出价大于1元,请注意!!!
                       </span>
                     </a-form-item>
                     <a-form-item label="深度转化出价" :labelCol="{ lg: { span: 6 }, sm: { span: 7 } }"
                       :wrapperCol="{ lg: { span: 18 }, sm: { span: 17 } }" v-if="
-                        (item.bidType == 180 || item.bidType == 53) &&
+                        (item.ocpxActionType == 180 || item.ocpxActionType == 53) &&
                           allForm.groupTypeData.deepConversionTypes.length > 0 &&
                           item.deepConversionType != ''
                       ">
@@ -480,7 +530,7 @@
   ]
 
   export default {
-    name: 'BaseForm',
+    name: 'Step2',
     components: {
       creatApplication,
       targetedPopulation,
@@ -546,7 +596,7 @@
           success: [],
           sceneId: [7],
           appStore: ['huawei', 'oppo', 'vivo', 'xiaomi', 'meizu', 'smartisan'],
-          allianceAccount:false
+          allianceAccount:"1"
         },
         convertType: '1',
         dataList: []
@@ -623,7 +673,7 @@
       },
       addGroup() {
         this.allForm.group.push({
-          bidType: this.campaignType == '2' && this.allForm.groupTypeData.isActivate == '1' ? 180 : 2,
+          bidType:  10,
           bid: '',
           cpaBid: '',
           showTipCheck: false,
@@ -631,7 +681,8 @@
           unitName: '',
           unitNameCheck: false,
           deepConversionType: '',
-          deepConversionBid: ''
+          deepConversionBid: '',
+          ocpxActionType:this.campaignType == '2' && this.allForm.groupTypeData.isActivate == '1' ? 180 : 2,
         })
       },
       resData(index) {
@@ -831,6 +882,7 @@
       },
       handleSubmit(e) {
         //   this.$refs.population.handleSubmit()
+
         e.preventDefault()
         this.$refs.population.handleSubmit()
         this.form.validateFieldsAndScroll((err, values) => {
@@ -843,14 +895,14 @@
                 cpaBid: item.cpaBid != '' ? item.cpaBid * 1000 : '',
                 bid: item.bid != '' ? item.bid * 1000 : '',
                 deepConversionBid: item.deepConversionBid != '' ? item.deepConversionBid * 1000 : '',
-                ocpxActionType: item.bidType,
+                ocpxActionType: item.ocpxActionType,
                 bidType: item.bidType == 1 ? 2 : 10
               }
             })
             var json = {
               ...values,
               convertId: this.convertId ? this.convertId.key : null,
-              sceneId: values.sceneId == 1 ? [values.sceneId] : this.allForm.sceneId,
+              sceneId: this.allForm.allianceAccount=='1'?values.sceneId == 1 ? [values.sceneId] : this.allForm.sceneId:[5],
               dayBudget: values.dayBudget * 1000
             }
             var params = {
@@ -859,7 +911,6 @@
               groupArr: groupArr,
               accountId: localStorage.getItem('accountId'),
               campaignId: localStorage.getItem('campaignId'),
-              unitType: 4,
               beginTime: moment(this.timeRange[0]).format('YYYY-MM-DD'),
               endTime: this.allForm.time == '2' ? moment(this.timeRange[1]).format('YYYY-MM-DD') : '',
               scheduleTime: this.allForm.scheduleTime == '2' ?
@@ -872,7 +923,14 @@
                 params.appStore = this.allForm.appStore
               }
             }
-            console.log(params)
+            if(this.allForm.allianceAccount=='1'){
+              var {...paramsEnd} = params
+            }else{
+              var {fansStar,appType,businessInterestType,interestVideo,isOpen,noAgeBreak,noGenderBreak,noAreaBreak,...paramsElse} = params.allForm
+              params.allForm = paramsElse
+              var {businessInterestType,isOpen,noAgeBreak,noGenderBreak,noAreaBreak,...paramsEnd} = params
+            }
+            //fansStar  appType  businessInterestType   interestVideo isOpen
             if (this.checkedTrue) {
               var data = this.populationData
               postAction('/kuaishou/batch/addDirectionalTemplate', {
@@ -881,22 +939,24 @@
                 templateContent: JSON.stringify(this.populationData)
               }).then(res => {})
             }
-            postAction('/kuaishou/batch/createUnit', params).then(res => {
+            postAction('/kuaishou/batch/createUnit', paramsEnd).then(res => {
               if (res.success) {
                 this.visible = true
                 this.allForm.fail = res.result.fail
                 this.allForm.success = res.result.success
                 this.loading = false
                 if (res.result.success.length > 0) {
-                  var dataJson = JSON.stringify(
-                    res.result.success.map(item => {
+
+                  var dataElse =  res.result.success.map(item => {
                       return {
                         tab: item.unitName,
                         key: item.unitId,
-                        bidType: item.ocpxActionType
+                        bidType: item.ocpxActionType,
+                        sceneId:JSON.stringify(item.sceneId),
+                        unitType: item.unitType
                       }
                     })
-                  )
+                  var dataJson = JSON.stringify(dataElse)
                   localStorage.setItem('pans', dataJson)
                   localStorage.setItem('appId', this.getData('appId'))
                 }

Різницю між файлами не показано, бо вона завелика
+ 1732 - 1394
src/views/modules/kuaishouapp/account/stepForm/Step3.vue


Різницю між файлами не показано, бо вона завелика
+ 2098 - 39
src/views/modules/kuaishouapp/account/stepForm/Step4.vue


+ 25 - 3
src/views/modules/kuaishouapp/account/stepForm/StepForm.vue

@@ -8,7 +8,8 @@
     <div class="content">
       <step1 v-if="currentTab === 0" @nextStep="nextStep" ref="step" />
       <step2 v-if="currentTab === 1" :campaignId="campaignId" @nextStep="nextStepTwo" @prevStep="prevStep" />
-      <step3 v-if="currentTab === 2" @prevStep="prevStepTwo" @removeTab="remove" />
+      <component  v-if="currentTab === 2" :is="formComponent" @prevStep="prevStepTwo" @removeTab="remove"></component>
+      <!-- <step3 v-if="currentTab === 2" @prevStep="prevStepTwo" @removeTab="remove" /> -->
     </div>
   </a-card>
 </template>
@@ -17,12 +18,14 @@
 import Step1 from './Step1'
 import Step2 from './Step2'
 import Step3 from './Step3'
+import Step4 from './Step4'
 export default {
   name: 'StepForm',
   components: {
     Step1,
     Step2,
-    Step3
+    Step3,
+    Step4
   },
   data() {
     return {
@@ -30,7 +33,8 @@ export default {
 
       // form
       form: null,
-      campaignId: null
+      campaignId: null,
+      formComponent:null
     }
   },
   methods: {
@@ -47,6 +51,7 @@ export default {
         this.currentTab += 1
         localStorage.setItem('step', this.currentTab)
       }
+     
     },
     prevStep(campaignId) {
       if (this.currentTab > 0) {
@@ -71,6 +76,23 @@ export default {
       this.$emit('removeTab', key)
     }
   },
+  watch:{
+    currentTab(n,o){
+      if(n==2){
+        var data = JSON.parse(localStorage.getItem('pans')).map(item => {
+            return {
+              ...item,
+            }
+          })
+        if(data[0].unitType == '7'){
+          this.formComponent = Step4
+        }else{
+          this.formComponent = Step3
+        }
+        
+      }
+    }
+  },
   mounted() {
     this.currentTab = parseInt(localStorage.getItem('step'))
   }

+ 7 - 1
src/views/modules/kuaishouapp/account/stepForm/stepModule/checkMatemal.vue

@@ -23,10 +23,13 @@
   }
 }
 </style>
+<style>
+</style>
 <template>
   <div>
     <a-modal title="选择素材" v-model="visibleMatemal" @ok="handleOk" @cancel="close" :width="1000">
-      <div>
+      <div class="spinning-model" style="margin:auto">
+        <a-spin :spinning="spinning" style="margin:100px auto;position: relative;left: 50%;"/>
         <ul class="actor-photo-list">
           <a-checkbox-group
             v-model="checkArr"
@@ -80,6 +83,7 @@ export default {
       url: {
         list: '/kuaishou/batch/getVideoList'
       },
+      spinning:false,
       visibleMatemal: false,
       dataSource: [],
       columns: [],
@@ -133,10 +137,12 @@ export default {
     },
     getData(url, params) {
       this.dataSource = []
+      this.spinning = true
       getAction(url, params).then(res => {
         if (res.success) {
           this.dataSource = res.result.records
           this.ipagination.total = res.result.total
+          this.spinning = false
         }
       })
     },

+ 18 - 8
src/views/modules/kuaishouapp/account/stepForm/stepModule/targetedPopulation.vue

@@ -331,7 +331,7 @@ li:hover {
       label="APP行为"
       :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
       :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
-      v-if="allForm.platform_os == 1&&allForm.platform_os"
+      v-if="allForm.platform_os == 1&&allForm.platform_os&&lol=='1'"
     >
       <a-radio-group buttonStyle="solid" v-model="allForm.appType" @change="getAppType">
         <a-radio-button value="0">不限</a-radio-button>
@@ -343,7 +343,7 @@ li:hover {
       label=" "
       :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
       :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
-      v-if="allForm.platform_os == 1 && allForm.appType == '1'"
+      v-if="allForm.platform_os == 1 && allForm.appType == '1'&&lol=='1'"
       class="else-label"
     >
       <a-select
@@ -363,7 +363,7 @@ li:hover {
       label=" "
       :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
       :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
-      v-if="allForm.platform_os == 1 && allForm.appType == '2'"
+      v-if="allForm.platform_os == 1 && allForm.appType == '2'&&lol=='1'"
       class="else-label"
     >
       <div style="position:relative;" v-clickoutside="handleClose">
@@ -408,6 +408,7 @@ li:hover {
       label="商业兴趣"
       :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
       :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
+       v-if="lol=='1'"
     >
       <a-radio-group buttonStyle="solid" @change="businessInterest" v-model="allForm.businessInterestType">
         <a-radio-button :value="0">不限</a-radio-button>
@@ -422,7 +423,7 @@ li:hover {
       :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
       :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
       class="else-label"
-      v-if="allForm.businessInterestType == 2"
+      v-if="allForm.businessInterestType == 2&&lol=='1'"
     >
       <a-select
         mode="multiple"
@@ -461,6 +462,7 @@ li:hover {
       label="网红粉丝"
       :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
       :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
+      v-if="lol=='1'"
     >
       <a-radio-group buttonStyle="solid" v-model="allForm.fansStar" @change="fansStar">
         <a-radio-button value="0">不限</a-radio-button>
@@ -472,7 +474,7 @@ li:hover {
       :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
       :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
       class="else-label"
-      v-if="allForm.fansStar == '1'"
+      v-if="allForm.fansStar == '1'&&lol=='1'"
     >
       <a-select
         mode="multiple"
@@ -492,6 +494,7 @@ li:hover {
       label="兴趣视频用户"
       :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
       :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
+      v-if="lol=='1'"
     >
       <a-radio-group buttonStyle="solid" v-model="allForm.interestVideo" @change="interestVideo">
         <a-radio-button value="0">不限</a-radio-button>
@@ -503,7 +506,7 @@ li:hover {
       :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
       :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
       class="else-label"
-      v-if="allForm.interestVideo == '1'"
+      v-if="allForm.interestVideo == '1'&&lol=='1'"
     >
       <a-select
         mode="multiple"
@@ -524,6 +527,7 @@ li:hover {
       label="智能扩量"
       :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
       :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
+      v-if="lol=='1'"
     >
       <!-- v-decorator="[
           'isOpen',
@@ -541,7 +545,7 @@ li:hover {
       :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
       :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
       class="else-label"
-      v-if="allForm.isOpen == 1"
+      v-if="allForm.isOpen == 1&&lol=='1'"
     >
       <a-checkbox :disabled="allForm.ageType == 'noLimit'" :checked="allForm.noAgeBreak" @change="getAge"
         >不可突破年龄</a-checkbox
@@ -651,7 +655,13 @@ export default {
         return null
       }
     },
-    populationData: {}
+    populationData: {},
+    lol:{
+      type:String,
+      default(){
+        return "1"
+      }
+    }
   },
   filters: {
     getDate(value) {

+ 4 - 3
src/views/modules/material/materialList.vue

@@ -967,9 +967,7 @@ export default {
       var that = this
       return new Promise(function(resolve, reject) {
         bmf.md5(file[0], (err, md5) => {
-          that.urlList.name = file[0].name
-          that.urlList.md5 = md5
-          that.urlList.size = file[0].size
+         
           fileCheck({
             code: md5,
             projectId: that.getData('projectId')
@@ -978,6 +976,9 @@ export default {
               that.$message.error('此素材已经上传')
               reject()
             } else {
+               that.urlList.name = file[0].name
+                that.urlList.md5 = md5
+                that.urlList.size = file[0].size
               resolve()
               //   reject()
             }

+ 13 - 13
src/views/modules/material/videoMaterial.vue

@@ -1314,7 +1314,7 @@ a {
             </div>
             <div>
               <a-form-item label="水印素材链接" v-if="showUrlWater">
-                <a-input v-model="showUrlWater" type="text" readonly />
+                <a-input v-model="showUrlWater" type="text" read-only />
               </a-form-item>
             </div>
             <div style="width:100%" class="downLoad">
@@ -2049,21 +2049,21 @@ export default {
       })
     },
     getTreeData(data) {
-      for (var i = 0; i < data.length; i++) {
-        if (data[i].children) {
-          if (data[i].children.length < 1) {
-            // children若为空数组,则将children设为undefined
-            data[i].disabled = false
+        for (var i = 0; i < data.length; i++) {
+          if (data[i].children) {
+            if (data[i].children.length < 1) {
+              // children若为空数组,则将children设为undefined
+              data[i].disabled = false
+            } else {
+              // // children若不为空数组,则继续 递归调用 本方法
+              data[i].disabled = true
+              this.getTreeData(data[i].children)
+            }
           } else {
-            // // children若不为空数组,则继续 递归调用 本方法
-            data[i].disabled = true
-            this.getTreeData(data[i].children)
+            data[i].disabled = false
           }
-        } else {
-          data[i].disabled = false
         }
-      }
-      return data
+        return data
     },
     showBoHui(item) {
       this.bohui = item

+ 4 - 5
vue.config.js

@@ -68,20 +68,19 @@ module.exports = {
     open : true,
     proxy: {
       '/jeecg-boot': {
-        //  target: 'http://192.168.1.8:8080', //请求本地 需要jeecg-boot后台项目  蒙蒙
+         target: 'http://192.168.1.8:8080', //请求本地 需要jeecg-boot后台项目  蒙蒙
         // target: 'http://192.168.0.59:8088', //请求本地 需要jeecg-boot后台项目  英豪
-        // target: 'http://192.168.1.72:8088', //请求本地 需要jeecg-boot后台项目  英豪
-
+        // target: 'http://192.168.1.72:8080', //请求本地 需要jeecg-boot后台项目  英豪
         // target: 'http://192.168.2.115:8080', //请求本地 需要jeecg-boot后台项目  祚云
 
         // target: 'http://192.168.1.74:8098', //请求本地 需要jeecg-boot后台项目  毕洁泉
         // target: 'http://192.168.0.252:8098', //请求本地 需要jeecg-boot后台项目  毕洁泉
         // target: 'http://192.168.0.170:8088', //请求本地 需要jeecg-boot后台项目  毕洁泉
 
-        // target: 'http://192.168.1.94:8081', //请求本地 需要jeecg-boot后台项目  赵西安
+        // target: 'http://192.168.1.94:8080', //请求本地 需要jeecg-boot后台项目  赵西安
 
 
-         target: 'http://api.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目
+        //  target: 'http://api.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目
         // target: 'https://trac.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目
         // target: 'http://39.106.184.70:8088/', //请求本地 需要jeecg-boot后台项目
          // target: 'http://adsp.tjyourong.com.cn/', //请求本地 需要jeecg-boot后台项目