Forráskód Böngészése

修改智能投放转化目标出价

朱鑫波 4 éve
szülő
commit
7e22843d58

+ 2 - 2
src/utils/request.js

@@ -15,9 +15,9 @@ else if (process.env.NODE_ENV == 'debug') {
 } 
 else if (process.env.NODE_ENV == 'production') { 
   
-  // axios.defaults.baseURL = 'http://apipre.tjyourong.com.cn/jeecg-boot';//预生产
+  axios.defaults.baseURL = 'http://apipre.tjyourong.com.cn/jeecg-boot';//预生产
   // axios.defaults.baseURL = 'http://139.186.165.84:8806/jeecg-boot';     
-  axios.defaults.baseURL = 'http://api.tjyourong.com.cn/jeecg-boot';//生产环境
+  // axios.defaults.baseURL = 'http://api.tjyourong.com.cn/jeecg-boot';//生产环境
 }
 const service = axios.create({
 //   baseURL: '/jeecg-boot', // api base_url

+ 104 - 11
src/views/modules/autoLaunch/configLaunchInfo.vue

@@ -160,8 +160,8 @@
                    <!-- <a-tag color="#2db7f5" @click="getChangeAll('定向包', 'form', 'groupName')"
                 >+定向包</a-tag
               > -->
-              <!-- <a-tag color="#2db7f5" @click="getChangeAll('日期', 'form', 'groupName')">+日期</a-tag>
-              <a-tag color="#2db7f5" @click="getChangeAll('标号', 'form', 'groupName')">+标号</a-tag> -->
+              <a-tag color="#2db7f5" @click="getChangeAll('应用名称', 'form', 'groupName')">+应用名称</a-tag>
+              <a-tag color="#2db7f5" @click="getChangeAll('应用标记', 'form', 'groupName')">+应用标记</a-tag>
               <a-tag color="#2db7f5" @click="getChangeAll('应用包名', 'form', 'groupName')"
                 >+应用包名</a-tag
               >
@@ -1133,19 +1133,24 @@
                         </div>
                         <div class="input-item">
                             <a-form-item>
-                                <a-input-number
+                                <!-- <a-input-number
                                     style="width:200px"
                                     :max="10000"
                                     :step="0.1"
                                     v-decorator="['cpaBid', {rules:validationRules.bid} ]"
-                                />
+                                /> -->
+                                <a-input style="width:200px;ime-mode:disabled" v-decorator="['cpaBid', {rules:validationRules.bid} ]" @blur="checkCpaBid"
+                                @keypress="keyDown">
+                                    
+                                </a-input>
                                 <span style="margin-left:5px">元</span>
-                              
+                                <br>
+                                <span style="color:red">单出价请输入单数字,阶梯出价请用/隔开</span>
                             </a-form-item>
                                 <span
                                 class="tip"
-                                v-if="getFormData('cpaBid')<0.1"
-                                >请输入点击出价,不少于0.1元,不超过10000元</span>
+                                v-if="checkCpaBidBloon"
+                                >不允许出现除"-"和"/"之外的所有字符,并且二者不可同时出现</span>
                         </div>    
                     </div>
                     <div class="row-item" v-if="getFormData('bidType')==10&&getFormData('ocpxActionType') == 191">
@@ -1833,6 +1838,7 @@ export default {
     },
     data() {
         return {
+            checkCpaBidBloon:false,
             appType: '0',
             uriCheck: false,
             programUnitCnt:60,
@@ -2094,6 +2100,50 @@ export default {
             },
     },
     methods: {
+        keyDown(event){
+            if((event.keyCode>=96&&event.keyCode<=105)||(event.keyCode>=109&&event.keyCode<=111)||event.keyCode==46||event.keyCode==45||(event.keyCode>=48&&event.keyCode<=57)){
+                
+            }else{
+                event.returnValue = false;
+            }
+        },
+        checkCpaBid(e) {
+            let z = /-/g;
+            let a = /\//g;
+            let d = /\./g;
+            if(e.target.value.startsWith("-")||e.target.value.endsWith("-")){
+                this.checkCpaBidBloon = true
+                return
+            }else if(e.target.value.startsWith(".")||e.target.value.endsWith(".")){
+                this.checkCpaBidBloon = true
+                return
+            }
+            if(e.target.value.match(a)&&e.target.value.match(z)){
+                this.checkCpaBidBloon = true
+            }else {
+                if(e.target.value.match(z)&&e.target.value.match(z).length>1){
+                    this.checkCpaBidBloon = true
+                }else if(e.target.value.match(a)&&e.target.value.match(a)){
+                    var arr = e.target.value.split('/')
+                    var arrary = []
+                    for (let i = 0; i < arr.length; i++) {
+                        if(arr[i].match(d)&&arr[i].match(d).length>1){
+                            arrary.push(true)
+                        }
+                    }
+                    if(arrary.length>0){
+                        this.checkCpaBidBloon = true
+                    }else{
+                        this.checkCpaBidBloon = false
+                    }
+                    
+                }else{
+                    this.checkCpaBidBloon = false
+                }
+            }
+
+            
+        },
         checkOneBid(item) {
             console.log(item)
             let params = {...item}
@@ -2788,7 +2838,10 @@ export default {
 
         this.$nextTick(()=>{
 
-                
+            if(this.checkCpaBidBloon){
+                 this.$message.error('请正确填写必填项目')
+                 return 
+            }
 
             this.form.validateFields((err, values) => {
                 //console.log(values) 
@@ -2859,6 +2912,7 @@ export default {
                     }else {
                         values.appIds = JSON.stringify([])
                     }
+                    
                     // let excludePopulation=this.excludeSelectedKeys.map(item=>{
                     //     return item.id
                     // })
@@ -2889,11 +2943,33 @@ export default {
                     }else if(this.sysType==1&&!this.getData('useAppMarket')){
                         values.appStore="[]"
                     }
+
+
                     if(values.cpaBid){
-                        values.cpaBid=parseInt(values.cpaBid*1000)
+                        if(values.cpaBid.includes('/')){
+                            let bidArr =  values.cpaBid.split('/')
+                            for (let index = 0; index < bidArr.length; index++) {
+                                bidArr[index] = bidArr[index]*1000
+                                
+                            }
+                            values.cpaBid = bidArr.join('/')
+                        }else if(values.cpaBid.includes('-')){
+                            let bidArr =  values.cpaBid.split('-')
+                            for (let index = 0; index < bidArr.length; index++) {
+                                bidArr[index] = bidArr[index]*1000
+                                
+                            }
+                            values.cpaBid = bidArr.join('-')
+                        }else{
+                            values.cpaBid = res.result.cpaBid*1000
+                        }
                     }else{
                         values.cpaBid=0
                     }
+
+
+
+
                     if(values.deepConversionBid){
                         values.deepConversionBid=parseInt(values.deepConversionBid*1000)
                     }else{
@@ -3218,7 +3294,24 @@ export default {
                     this.descriptionList = res.result.description.charAt(0) === '['?eval(res.result.description).map(item=>{
                         return {value:item}
                     }):[{value:res.result.description}]
-
+                    let cpaBid = "";
+                    if(res.result.cpaBid.includes('/')){
+                        let bidArr =  res.result.cpaBid.split('/')
+                        for (let index = 0; index < bidArr.length; index++) {
+                            bidArr[index] = bidArr[index]/1000
+                            
+                        }
+                        cpaBid = bidArr.join('/')
+                    }else if(res.result.cpaBid.includes('-')){
+                        let bidArr =  res.result.cpaBid.split('-')
+                        for (let index = 0; index < bidArr.length; index++) {
+                            bidArr[index] = bidArr[index]/1000
+                            
+                        }
+                        cpaBid = bidArr.join('-')
+                    }else{
+                        cpaBid = res.result.cpaBid/1000
+                    }
                     this.multipleBidData = res.result.appInfoList ? res.result.appInfoList.map(item=>{
                         
                         return {
@@ -3236,7 +3329,7 @@ export default {
                              ...res.result,
                             creativeTag:res.result.creativeTag?JSON.parse(res.result.creativeTag):[],
                             isOpen:res.result.isOpen?res.result.isOpen:0,
-                            cpaBid:res.result.cpaBid/1000,
+                            cpaBid:cpaBid,
                             
                             deviceBrand:res.result.deviceBrand?JSON.parse(res.result.deviceBrand):[],
                             devicePrice:res.result.devicePrice?JSON.parse(res.result.devicePrice):[],

+ 30 - 2
src/views/modules/autoLaunch/configLaunchList.vue

@@ -48,9 +48,30 @@
                         </a-spin>    
                         
                     </span>
-                    <span slot="cpaBid" slot-scope="text,record">
-                        {{text==0?record.roiRatio:text/1000}}
+                    <span slot="cpaType" slot-scope="text,record">
+                        {{record.cpaBid.includes('/')?'阶梯出价':record.cpaBid.includes('-')?"随机出价":"统一出价"}}
                     </span>
+                    <div slot="cpaBid" slot-scope="text,record">
+                        <!-- {{
+                          text==0?record.roiRatio:
+                          text.includes('/')? text.split 
+                        }} -->
+                        <span v-if="text===0">{{record.roiRatio}}</span>
+                        <span v-else-if="text.includes('/')">
+                            <!-- {{text.split('/')}} -->
+                            <span v-for="(item,index) in text.split('/')">
+                                {{item/1000+(index === text.split('/').length-1?'':'/')}}
+                            </span>
+                        </span>
+                        <span v-else-if="text.includes('-')">
+                            <!-- {{text.split('/')}} -->
+                            <span v-for="(item,index) in text.split('-')">
+                                {{item/1000+(index === text.split('-').length-1?'':'-')}}
+                            </span>
+                        </span>
+                        <span v-else>{{text/1000}}</span>
+                        
+                    </div>
                     <span slot="ocpxActionType" slot-scope="text">
                         {{text|ocpxActionType}}
                     </span>
@@ -189,6 +210,13 @@ const strategyColumns = [
         scopedSlots: { customRender: 'ocpxActionType' },
         // sorter:() => {}
     },
+     {
+        title: '出价类型',
+        dataIndex: 'cpaType',
+        align: 'center',    
+        scopedSlots: { customRender: 'cpaType' },
+        // sorter:() => {}
+    },
   {
         title: '出价',
         dataIndex: 'cpaBid',

+ 2 - 2
vue.config.js

@@ -69,7 +69,7 @@ module.exports = {
     proxy: {
       '/jeecg-boot': {
           // target: 'http://192.168.1.8:8080', //请求本地 需要jeecg-boot后台项目  蒙蒙
-          target: 'http://192.168.1.3:8080', //请求本地 需要jeecg-boot后台项目  蒙蒙
+          // target: 'http://192.168.1.3:8080', //请求本地 需要jeecg-boot后台项目  蒙蒙
         // target: 'http://192.168.0.59:8088', //请求本地 需要jeecg-boot后台项目  英豪
         // target: 'http://192.168.1.62:8088', //请求本地 需要jeecg-boot后台项目  英豪
         // target: 'http://192.168.6.162:8806', //请求本地 需要jeecg-boot后台项目  祚云
@@ -88,7 +88,7 @@ module.exports = {
         // target:'http://118.24.244.213:8804',
         // target: 'http://192.168.1.43:8080', // 子安
       //  target:'http://139.186.165.84:8806', //测试
-        // target:'http://apipre.tjyourong.com.cn', //预生产
+        target:'http://apipre.tjyourong.com.cn', //预生产
 
         ws: false,