|
@@ -13,7 +13,7 @@
|
|
|
<div class="required-item"></div>
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
|
- <Treeselect :appId.sync="accountId" :multiple="false" request="2,4" ref="treeSelect" style="margin-bottom:8px;width:600px " />
|
|
|
+ <Treeselect :appId.sync="accountId" :multiple="false" :disabled="$route.query.id" request="2,4" ref="treeSelect" style="margin-bottom:8px;width:600px " />
|
|
|
<!-- <Treeselect :appId.sync="accountId" :multiple="false" request="2" reqUrl='/ctop/projectMember/getProjectAccountByUserId' ref="treeSelect" style="margin-bottom:8px;width:580px " /> -->
|
|
|
</div>
|
|
|
</div>
|
|
@@ -160,11 +160,11 @@
|
|
|
<!-- <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 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
|
|
|
>
|
|
@@ -244,7 +244,7 @@
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
|
<a-form-item >
|
|
|
- <a-radio-group v-model="sysType" @change="sysTypeChange">
|
|
|
+ <a-radio-group v-model="sysType" @change="sysTypeChange" >
|
|
|
<a-radio-button :value="1">安卓</a-radio-button>
|
|
|
<a-radio-button :value="2">IOS</a-radio-button>
|
|
|
</a-radio-group>
|
|
@@ -262,12 +262,13 @@
|
|
|
<a-form-item>
|
|
|
<a-select v-decorator="['appId', { rules: [{ required: true, message: '请选择目标应用' }] }]" showSearch allowClear
|
|
|
placeholder="选择应用目标" optionFilterProp="children" style="width: 500px"
|
|
|
- :filterOption="filterOption" @change="appIdChange" :mode="getFormData('singleAppid')==1?'defalut':'multiple'" :maxTagCount='1'>
|
|
|
+ :filterOption="filterOption" @change="appIdChange" :mode="getFormData('singleAppid')==1?'defalut':'multiple'" :maxTagCount='1'
|
|
|
+ :labelInValue="true">
|
|
|
<a-select-option v-if="getFormData('singleAppid')==0" :value='0' @click="selectAllAppId">选择以下全部</a-select-option>
|
|
|
<a-select-option v-for="appModel in appList" :key="appModel.appId" :value="appModel.appId">
|
|
|
- {{ appModel.appName }}    {{ appModel.appVersion }}   {{
|
|
|
+ {{
|
|
|
appModel.platform | platform
|
|
|
- }}
|
|
|
+ }}   {{ appModel.appName }}    {{ appModel.appVersion }}
|
|
|
</a-select-option>
|
|
|
</a-select>
|
|
|
<a-button type="primary" @click="addApplication" style="margin-left:10px" :loading="tongbuLoading">刷新应用</a-button>
|
|
@@ -292,6 +293,57 @@
|
|
|
</a-form-item>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
+ <div class="row-item" v-if="getFormData('singleAppid')==0">
|
|
|
+ <div class="hint-item"></div>
|
|
|
+ <div class="label-item">
|
|
|
+ <div class="text-item">是否多应用分别出价</div>
|
|
|
+ </div>
|
|
|
+ <div class="input-item">
|
|
|
+ <a-form-item >
|
|
|
+ <a-radio-group v-decorator="['multipleBids', {initialValue:0 }]">
|
|
|
+ <a-radio-button :value="0">否</a-radio-button>
|
|
|
+ <a-radio-button :value="1">是</a-radio-button>
|
|
|
+ </a-radio-group>
|
|
|
+ </a-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="row-item" v-if="getFormData('multipleBids')==1">
|
|
|
+ <div class="hint-item"></div>
|
|
|
+ <div class="label-item">
|
|
|
+ <div class="text-item">分别出价</div>
|
|
|
+ </div>
|
|
|
+ <div class="input-item">
|
|
|
+ <div style="width:120vh;height:300px;overflow:auto;border:1px solid #f2f2f2;padding:10px">
|
|
|
+ <p v-for="(item,index) in multipleBidData" :key="index" style="display:flex">
|
|
|
+
|
|
|
+
|
|
|
+ <span style="white-space:nowrap;line-height: 30px;margin-right: 10px;">OCPM出价</span>
|
|
|
+ <a-input-number
|
|
|
+ style="width:150px"
|
|
|
+ :max="10000"
|
|
|
+ :step="0.1"
|
|
|
+ v-model="item.cpaBid"
|
|
|
+ />
|
|
|
+ <span style="white-space:nowrap;line-height: 30px;margin-right: 10px;">深度转化出价</span>
|
|
|
+ <a-input-number
|
|
|
+ style="width:150px"
|
|
|
+ :max="10000"
|
|
|
+ :step="0.1"
|
|
|
+ v-model="item.deepConversionBid"
|
|
|
+ />
|
|
|
+ <span style="margin-left:20px;white-space:nowrap;line-height: 30px;margin-right: 10px;">渠道号</span>
|
|
|
+ <a-input style="width:150px" placeholder="请填写渠道号" v-model="item.channelCode" />
|
|
|
+ <a-icon
|
|
|
+ @click="checkOneBid(item)"
|
|
|
+ type="check" style="margin-left:20px;white-space:nowrap;line-height: 30px;margin-right: 10px;cursor:pointer;color:green" />
|
|
|
+ <span style="margin:5px;width:50%">{{item.label}}</span>
|
|
|
+
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
<div class="row-item" v-if="getFormData('campaignType') == 3">
|
|
|
<div class="hint-item"></div>
|
|
|
<div class="label-item">
|
|
@@ -411,7 +463,7 @@
|
|
|
<a-form-item>
|
|
|
<a-select v-decorator="['appId', { rules: [{ required: true, message: '请选择目标应用' }] }]" showSearch allowClear
|
|
|
placeholder="选择应用目标" optionFilterProp="children" style="width: 500px"
|
|
|
- :filterOption="filterOption" @change="appIdChange">
|
|
|
+ :filterOption="filterOption" @change="appIdChange" :labelInValue="true">
|
|
|
<a-select-option v-for="appModel in appList" :key="appModel.appId" :value="appModel.appId">
|
|
|
{{ appModel.appName }}    {{ appModel.appVersion }}   {{
|
|
|
appModel.platform | platform
|
|
@@ -536,7 +588,7 @@
|
|
|
<div class="input-item">
|
|
|
<a-form-item>
|
|
|
<a-radio-group v-decorator="['platformOs', {initialValue:1 }]" @change="platformOsChange">
|
|
|
- <a-radio-button :value="0">不限</a-radio-button>
|
|
|
+ <!-- <a-radio-button :value="0">不限</a-radio-button> -->
|
|
|
<a-radio-button :value="1">Android</a-radio-button>
|
|
|
<a-radio-button :value="2">IOS</a-radio-button>
|
|
|
</a-radio-group>
|
|
@@ -1079,7 +1131,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="row-item" v-if="getFormData('bidType')==10&&getFormData('ocpxActionType')!= 191">
|
|
|
+ <div class="row-item" v-if="getFormData('bidType')==10&&getFormData('ocpxActionType')!= 191&&getFormData('multipleBids')!==1">
|
|
|
<div class="hint-item">
|
|
|
</div>
|
|
|
<div class="label-item">
|
|
@@ -1088,19 +1140,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">
|
|
@@ -1129,7 +1186,8 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="row-item" v-if="(getFormData('ocpxActionType') == 180 || getFormData('ocpxActionType') == 53) && groupTypeData.deepConversionTypes && groupTypeData.deepConversionTypes.length > 0 ">
|
|
|
+ <div class="row-item" v-if="(getFormData('ocpxActionType') == 180 || getFormData('ocpxActionType') == 53)
|
|
|
+ && groupTypeData.deepConversionTypes && groupTypeData.deepConversionTypes.length > 0 && getFormData('multipleBids')!==1 ">
|
|
|
<div class="hint-item">
|
|
|
</div>
|
|
|
<div class="label-item">
|
|
@@ -1493,13 +1551,13 @@
|
|
|
<div class="required-item"></div>
|
|
|
</div>
|
|
|
<div class="input-item">
|
|
|
- <a-form-item>
|
|
|
+ <a-form-item v-for="(item,index) in descriptionList" :key="index">
|
|
|
<div style="position:relative">
|
|
|
<a-textarea
|
|
|
class="rending"
|
|
|
placeholder="请输入广告语"
|
|
|
- @change="descriptionchange"
|
|
|
- v-decorator="['description',{rules: [ { required: true, message: '请填写广告语' }] } ]"
|
|
|
+ @change="descriptionchange(item.value,index)"
|
|
|
+ v-model.trim="item.value"
|
|
|
:autosize="{ minRows: 2, maxRows: 6 }"
|
|
|
:max-length="30"
|
|
|
></a-textarea>
|
|
@@ -1517,11 +1575,17 @@
|
|
|
margin-bottom: 0;
|
|
|
"
|
|
|
>
|
|
|
- {{ description.length }}/30
|
|
|
+ {{ item.value.length }}/30
|
|
|
<!-- {{ getFormData('description').length }}/30 -->
|
|
|
</p>
|
|
|
+ <div style="position:absolute;right:-50px;top:-10px">
|
|
|
+ <a-icon type="plus" @click="addDescription()" style="margin-right:15px"/>
|
|
|
+ <a-icon type="minus" @click="removeDescription(index)" v-if="descriptionList.length>1"/>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+
|
|
|
</a-form-item>
|
|
|
+
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="row-item">
|
|
@@ -1782,6 +1846,7 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ checkCpaBidBloon:false,
|
|
|
appType: '0',
|
|
|
uriCheck: false,
|
|
|
programUnitCnt:60,
|
|
@@ -1934,7 +1999,9 @@ export default {
|
|
|
appListValue: '',
|
|
|
checkOptions: [],
|
|
|
checkAllApp: false,
|
|
|
- optionsAll: []
|
|
|
+ optionsAll: [],
|
|
|
+ multipleBidData:[],
|
|
|
+ descriptionList:[{value:""}]
|
|
|
|
|
|
|
|
|
}
|
|
@@ -1973,14 +2040,20 @@ export default {
|
|
|
// }
|
|
|
// })
|
|
|
this.getAppList()
|
|
|
- getAction('/kuaishou/batch/getIsActivate', {
|
|
|
- accountId: this.accountId
|
|
|
- }).then(res => {
|
|
|
- if (res.success) {
|
|
|
- this.groupTypeData = res.result
|
|
|
-
|
|
|
- }
|
|
|
- })
|
|
|
+ let editRecordId=this.$route.query.id;
|
|
|
+ if(editRecordId){
|
|
|
+
|
|
|
+ }else{
|
|
|
+ getAction('/kuaishou/batch/getIsActivate', {
|
|
|
+ accountId: this.accountId
|
|
|
+ }).then(res => {
|
|
|
+ if (res.success) {
|
|
|
+ this.groupTypeData = res.result
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
getAction('/kuaishou/batch/getCreativeCategory', {
|
|
@@ -2041,6 +2114,63 @@ 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}
|
|
|
+ params.cpaBid = params.cpaBid*1000
|
|
|
+ params.deepConversionBid = params.deepConversionBid*1000
|
|
|
+ postAction('/adsp/kuaiShouAppMultipleBids/saveOrUpdate',params).then(res=>{
|
|
|
+ if(res.success){
|
|
|
+ this.$message.success('添加成功')
|
|
|
+ }else{
|
|
|
+ this.$message.error('新增失败')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
convertOk() {
|
|
|
var dataLink = []
|
|
|
dataLink = this.convertList.filter((item) => {
|
|
@@ -2258,15 +2388,25 @@ export default {
|
|
|
appId:undefined
|
|
|
})
|
|
|
},
|
|
|
- descriptionchange(e){
|
|
|
- if(this.getData('description')){
|
|
|
- this.$nextTick(()=>{
|
|
|
- this.form.setFieldsValue({
|
|
|
- description: this.getData('description').replace(/\s/g,'')
|
|
|
- })
|
|
|
- })
|
|
|
- }
|
|
|
- this.description=e.target.value.replace(/\s/g,'')
|
|
|
+ addDescription(){
|
|
|
+ this.descriptionList.push({value:""})
|
|
|
+ },
|
|
|
+ removeDescription(index){
|
|
|
+ this.descriptionList.splice(index,1)
|
|
|
+ },
|
|
|
+ descriptionchange(val,index){
|
|
|
+ let data = val;
|
|
|
+ this.$nextTick(()=>{
|
|
|
+ this.descriptionList[index].value = data.replace(/\s/g,'')
|
|
|
+ })
|
|
|
+ // if(this.getData('description')){
|
|
|
+ // this.$nextTick(()=>{
|
|
|
+ // this.form.setFieldsValue({
|
|
|
+ // description: this.getData('description').replace(/\s/g,'')
|
|
|
+ // })
|
|
|
+ // })
|
|
|
+ // }
|
|
|
+ // this.description=e.target.value.replace(/\s/g,'')
|
|
|
|
|
|
|
|
|
},
|
|
@@ -2416,14 +2556,15 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
appIdChange(val){
|
|
|
- //console.log(val)
|
|
|
+ console.log(val)
|
|
|
this.siteList=[]
|
|
|
-
|
|
|
// this.getPageList(val)
|
|
|
if(this.getFormData('singleAppid')==0){
|
|
|
- if(val&&val.indexOf(0)>-1){
|
|
|
+ if(val&&val.findIndex(item=>item.key===0)>-1){
|
|
|
let appidArr=this.appList.map(item=>{
|
|
|
- return item.appId
|
|
|
+ return {key:item.appId,label:`${item.platform === 1?'Android应用下载':item.platform === 2?'Android网页游戏':item.platform === 3?'iOS应用下载':'iOS网页游戏'}`
|
|
|
+ +'\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0'+
|
|
|
+ item.appName+'\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0'+item.appVersion}
|
|
|
})
|
|
|
// setTimeout(()=>{
|
|
|
|
|
@@ -2435,18 +2576,46 @@ export default {
|
|
|
this.form.setFieldsValue({
|
|
|
appId:appidArr
|
|
|
})
|
|
|
+ this.multipleBidData = appidArr.map(item=>{
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ cpaBid:null,
|
|
|
+ trackUrl:'',
|
|
|
+ channelCode:'',
|
|
|
+ appId:item.key,
|
|
|
+ accountId:this.accountId,
|
|
|
+ deepConversionBid:null
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
})
|
|
|
+
|
|
|
|
|
|
+ }else{
|
|
|
+ this.$nextTick(()=>{
|
|
|
+ this.multipleBidData = val.map(item=>{
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ cpaBid:null,
|
|
|
+ trackUrl:'',
|
|
|
+ channelCode:'',
|
|
|
+ appId:item.key,
|
|
|
+ accountId:this.accountId,
|
|
|
+ deepConversionBid:null
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if(val!=undefined || (val&&val.length>0) ){
|
|
|
+ if(val!=undefined && (val&&val.length>0) ){
|
|
|
if(this.getFormData('campaignType')==2){
|
|
|
|
|
|
if(this.getFormData('singleAppid')==1){
|
|
|
- this.getIsActivate(val)
|
|
|
+ this.getIsActivate(val.key)
|
|
|
}else{
|
|
|
- this.getIsActivate(val[0])
|
|
|
+ this.getIsActivate(val[0].key)
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -2689,10 +2858,34 @@ export default {
|
|
|
goNext() {
|
|
|
|
|
|
this.$nextTick(()=>{
|
|
|
-
|
|
|
+
|
|
|
+ if(this.checkCpaBidBloon){
|
|
|
+ this.$message.error('请正确填写必填项目')
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
this.form.validateFields((err, values) => {
|
|
|
//console.log(values)
|
|
|
- if (!err) {
|
|
|
+ if (!err) {
|
|
|
+ let isNotComplete = this.descriptionList.findIndex(item => {
|
|
|
+ return item.value === ''
|
|
|
+ })
|
|
|
+ if (isNotComplete > -1) {
|
|
|
+ this.$message.error('请正确填写必填项目,广告语未填')
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if(values.multipleBids === 1) {
|
|
|
+ let multipleBidData = this.multipleBidData.findIndex(item => {
|
|
|
+ return item.cpaBid === null
|
|
|
+ })
|
|
|
+ if (multipleBidData > -1) {
|
|
|
+ this.$message.error('请正确填写必填项目,广告语未填')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// console.log(values)
|
|
|
this.goNextloading=true;
|
|
|
|
|
@@ -2721,11 +2914,14 @@ export default {
|
|
|
// values.beginTime=this.dateRange[0].format('YYYY-MM-DD');
|
|
|
// values.endTime= this.dateRange[1].format('YYYY-MM-DD');
|
|
|
// }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
if(this.getData('campaignType') === 2 ) {
|
|
|
- values.appIdArray=values.appId instanceof Array?JSON.stringify(values.appId):JSON.stringify([values.appId])
|
|
|
+ values.appIdArray=values.appId instanceof Array?JSON.stringify(values.appId.map(item=>{return item.key})):JSON.stringify([values.appId.key])
|
|
|
values.appId=undefined;
|
|
|
}else if(this.getData('campaignType') === 7){
|
|
|
- values.appIdArray=values.appId instanceof Array?JSON.stringify(values.appId):JSON.stringify([values.appId])
|
|
|
+ values.appIdArray=values.appId instanceof Array?JSON.stringify(values.appId.map(item=>{return item.key})):JSON.stringify([values.appId.key])
|
|
|
values.appId=undefined;
|
|
|
values.singleAppid = 1
|
|
|
}else {
|
|
@@ -2752,6 +2948,7 @@ export default {
|
|
|
}else {
|
|
|
values.appIds = JSON.stringify([])
|
|
|
}
|
|
|
+
|
|
|
// let excludePopulation=this.excludeSelectedKeys.map(item=>{
|
|
|
// return item.id
|
|
|
// })
|
|
@@ -2767,7 +2964,9 @@ export default {
|
|
|
values.population=this.incluedSelectedRowKeys.length>0?JSON.stringify(this.incluedSelectedRowKeys):'[]';
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ values.description = JSON.stringify(this.descriptionList.map(item=>{
|
|
|
+ return item.value
|
|
|
+ }))
|
|
|
|
|
|
values.useAppMarket=values.useAppMarket?'1':'0'
|
|
|
|
|
@@ -2780,11 +2979,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{
|
|
@@ -2909,7 +3130,7 @@ export default {
|
|
|
this.convertList = res.result.map(item => {
|
|
|
return {
|
|
|
...item,
|
|
|
- convert_id: item.convert_id + ''
|
|
|
+ convert_id: item.convert_id + ""
|
|
|
}
|
|
|
})
|
|
|
}
|
|
@@ -3044,7 +3265,10 @@ export default {
|
|
|
this.sysType=res.result.platformOs
|
|
|
let fngetIsActivate=new Promise((resolve,reject)=>{
|
|
|
getAction('/kuaishou/batch/getIsActivate', {
|
|
|
- accountId: this.accountId
|
|
|
+ accountId: this.accountId,
|
|
|
+ campaignType: res.result.campaignType,
|
|
|
+ appId:res.result.appIdArray?JSON.parse(res.result.appIdArray)[0]:null
|
|
|
+
|
|
|
}).then(res => {
|
|
|
if (res.success) {
|
|
|
this.groupTypeData = res.result
|
|
@@ -3106,13 +3330,48 @@ export default {
|
|
|
this.optionsAll = res.result.appIds ? (typeof res.result.appIds == 'string' ? JSON.parse(res.result.appIds) : res.result.appIds) : []
|
|
|
this.checkAllApp = false
|
|
|
res.result.appInterest = res.result.appInterest?JSON.parse(res.result.appInterest):[]
|
|
|
-
|
|
|
+ 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 {
|
|
|
+ appId:item.app_id,
|
|
|
+ accountId:item.account_id,
|
|
|
+ label:`${item.platform === 1?'Android应用下载':item.platform === 2?'Android网页游戏':item.platform === 3?'iOS应用下载':'iOS网页游戏'}`
|
|
|
+ +'\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0'+
|
|
|
+ item.app_name+'\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0'+item.app_version,
|
|
|
+ cpaBid:item.cpa_bid?item.cpa_bid/1000:null,
|
|
|
+ trackUrl:item.track_url,
|
|
|
+ channelCode:item.channel_code,
|
|
|
+ deepConversionBid:item.deep_conversion_bid?item.deep_conversion_bid/1000:null,
|
|
|
+ }
|
|
|
+ }):[]
|
|
|
setTimeout(()=>{
|
|
|
this.form.setFieldsValue({
|
|
|
...res.result,
|
|
|
+ appId:[],
|
|
|
creativeTag:res.result.creativeTag?JSON.parse(res.result.creativeTag):[],
|
|
|
isOpen:res.result.isOpen?res.result.isOpen:0,
|
|
|
- cpaBid:res.result.cpaBid/1000,
|
|
|
+
|
|
|
|
|
|
deviceBrand:res.result.deviceBrand?JSON.parse(res.result.deviceBrand):[],
|
|
|
devicePrice:res.result.devicePrice?JSON.parse(res.result.devicePrice):[],
|
|
@@ -3129,10 +3388,12 @@ export default {
|
|
|
iosOsv:res.result.iosOsv?res.result.iosOsv:6,
|
|
|
url:res.result.url,
|
|
|
schemaUri:res.result.schemaUri,
|
|
|
- appId:res.result.singleAppid?JSON.parse(res.result.appIdArray)[0]:JSON.parse(res.result.appIdArray),
|
|
|
+ appId:res.result.singleAppid?JSON.parse(res.result.appIdArray).map(item=>{return {key:item}})[0]:JSON.parse(res.result.appIdArray).map(item=>{return {key:item}}),
|
|
|
|
|
|
appInterest:res.result.appInterest,
|
|
|
roiRatio:res.result.roiRatio?res.result.roiRatio:null,
|
|
|
+ multipleBids:res.result.multipleBids,
|
|
|
+ cpaBid:cpaBid,
|
|
|
})
|
|
|
|
|
|
},100)
|
|
@@ -3256,7 +3517,6 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
-
|
|
|
clickTrackUrlFocus(){
|
|
|
// //console.log('focus')
|
|
|
this.clickTrackUrlTip=true;
|