|
@@ -35,7 +35,7 @@ li:hover {
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|
|
<template>
|
|
<template>
|
|
- <a-form :form="formAll" class="module-form" @submit="handleSubmit">
|
|
|
|
|
|
+ <a-form :form="formAll" class="module-form" @submit="handleSubmit" :hideRequiredMark="true">
|
|
<a-form-item
|
|
<a-form-item
|
|
label="地区"
|
|
label="地区"
|
|
:labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
:labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
@@ -106,7 +106,6 @@ li:hover {
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
|
|
|
|
-
|
|
|
|
<a-form-item
|
|
<a-form-item
|
|
label="行为意向"
|
|
label="行为意向"
|
|
:labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
:labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
@@ -116,15 +115,15 @@ li:hover {
|
|
<a-radio-button value="0">不限</a-radio-button>
|
|
<a-radio-button value="0">不限</a-radio-button>
|
|
<a-radio-button value="1">自定义</a-radio-button>
|
|
<a-radio-button value="1">自定义</a-radio-button>
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
- <br>
|
|
|
|
|
|
+ <br />
|
|
行为意向旨在帮助广告主精准定向用户
|
|
行为意向旨在帮助广告主精准定向用户
|
|
</a-form-item>
|
|
</a-form-item>
|
|
<a-form-item
|
|
<a-form-item
|
|
- label=" "
|
|
|
|
|
|
+ label="行为场景"
|
|
:labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
:labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
:wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
|
|
:wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
|
|
class="else-label"
|
|
class="else-label"
|
|
- v-if="allForm.fansStar == '1' && lol == '1'"
|
|
|
|
|
|
+ v-if="allForm.behaviorInterest === '1'"
|
|
>
|
|
>
|
|
<a-select
|
|
<a-select
|
|
mode="multiple"
|
|
mode="multiple"
|
|
@@ -132,16 +131,85 @@ li:hover {
|
|
optionFilterProp="children"
|
|
optionFilterProp="children"
|
|
showSearch
|
|
showSearch
|
|
:filterOption="filterOption"
|
|
:filterOption="filterOption"
|
|
- v-decorator="['fansStar', { rules: [{ required: true, message: '请选择网红类别' }] }]"
|
|
|
|
|
|
+ v-decorator="[
|
|
|
|
+ 'sceneType',
|
|
|
|
+ { rules: [{ required: true, message: '请选择行为场景' }], initialValue: [1, 2, 4] },
|
|
|
|
+ ]"
|
|
>
|
|
>
|
|
- <a-select-option v-for="item in fansStarOptions" :key="item.tagId" :value="item.tagId">{{
|
|
|
|
- item.tagName
|
|
|
|
- }}</a-select-option>
|
|
|
|
|
|
+ <a-select-option :value="1">社区</a-select-option>
|
|
|
|
+ <a-select-option :value="2">APP</a-select-option>
|
|
|
|
+ <a-select-option :value="4">推广</a-select-option>
|
|
</a-select>
|
|
</a-select>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
|
|
+ <a-form-item
|
|
|
|
+ label=" "
|
|
|
|
+ :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
|
|
+ :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
|
|
|
|
+ class="else-label"
|
|
|
|
+ v-if="allForm.behaviorInterest === '1'"
|
|
|
|
+ >
|
|
|
|
+ 在
|
|
|
|
+ <a-select
|
|
|
|
+ style="width: 30%"
|
|
|
|
+ optionFilterProp="children"
|
|
|
|
+ showSearch
|
|
|
|
+ :filterOption="filterOption"
|
|
|
|
+ v-decorator="['timeType', { rules: [{ required: true, message: '请选择行为场景' }], initialValue: 4 }]"
|
|
|
|
+ >
|
|
|
|
+ <a-select-option :value="0">7天</a-select-option>
|
|
|
|
+ <a-select-option :value="1">15天</a-select-option>
|
|
|
|
+ <a-select-option :value="2">30天</a-select-option>
|
|
|
|
+ <a-select-option :value="3">90天</a-select-option>
|
|
|
|
+ <a-select-option :value="4">180天</a-select-option>
|
|
|
|
+ </a-select>
|
|
|
|
+ 天内发生行为的用户
|
|
|
|
+ </a-form-item>
|
|
|
|
+ <a-form-item
|
|
|
|
+ label="行为强度"
|
|
|
|
+ :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
|
|
+ :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
|
|
|
|
+ v-if="allForm.behaviorInterest === '1'"
|
|
|
|
+ >
|
|
|
|
+ <a-radio-group
|
|
|
|
+ buttonStyle="solid"
|
|
|
|
+ v-decorator="['strengthType', { rules: [{ required: true, message: '行为强度必选' }], initialValue: 0 }]"
|
|
|
|
+ >
|
|
|
|
+ <a-radio-button :value="0">不限</a-radio-button>
|
|
|
|
+ <a-radio-button :value="1">高强度</a-radio-button>
|
|
|
|
+ </a-radio-group>
|
|
|
|
+ </a-form-item>
|
|
|
|
+ <a-form-item
|
|
|
|
+ label="行为定向选择"
|
|
|
|
+ :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
|
|
+ :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
|
|
|
|
+ v-if="allForm.behaviorInterest === '1'"
|
|
|
|
+ >
|
|
|
|
+ <el-cascader
|
|
|
|
+ style="width:100%"
|
|
|
|
+ :options="behaviorData"
|
|
|
|
+ @change="getAllData"
|
|
|
|
+ :props="{ multiple: true,value:'id',label:'name',emitPath:false }"
|
|
|
|
+ v-decorator="['behavior', { rules: [{ required: true, message: '行为意向必选' }]}]"
|
|
|
|
+ collapse-tags
|
|
|
|
+ clearable></el-cascader>
|
|
|
|
+ </a-form-item>
|
|
|
|
+
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ <a-form-item
|
|
|
|
+ label="意向定向选择"
|
|
|
|
+ :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
|
|
+ :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }"
|
|
|
|
+ v-if="allForm.behaviorInterest === '1'"
|
|
|
|
+ >
|
|
|
|
+ <el-cascader
|
|
|
|
+ style="width:100%"
|
|
|
|
+ :options="interestData"
|
|
|
|
+ @change="getAllData"
|
|
|
|
+ :props="{ multiple: true,value:'id',label:'name',emitPath:false }"
|
|
|
|
+ v-decorator="['interest']"
|
|
|
|
+ collapse-tags
|
|
|
|
+ clearable></el-cascader>
|
|
|
|
+ </a-form-item>
|
|
|
|
|
|
<a-form-item
|
|
<a-form-item
|
|
label="最低版本"
|
|
label="最低版本"
|
|
@@ -676,6 +744,8 @@ export default {
|
|
this.selectedRowKeys = n.population ? n.population : []
|
|
this.selectedRowKeys = n.population ? n.population : []
|
|
this.selectedRowKeysNo = n.excludePopulation ? n.excludePopulation : []
|
|
this.selectedRowKeysNo = n.excludePopulation ? n.excludePopulation : []
|
|
this.optionsAll = n.appIds ? (typeof n.appIds == 'string' ? JSON.parse(n.appIds) : n.appIds) : []
|
|
this.optionsAll = n.appIds ? (typeof n.appIds == 'string' ? JSON.parse(n.appIds) : n.appIds) : []
|
|
|
|
+ n.behavior = typeof n.behavior === 'string' ? JSON.parse(n.behavior) : n.behavior;
|
|
|
|
+ n.interest = typeof n.interest === 'string' ? JSON.parse(n.interest) : n.interest;
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
this.formAll.setFieldsValue(
|
|
this.formAll.setFieldsValue(
|
|
pick(n, [
|
|
pick(n, [
|
|
@@ -692,8 +762,19 @@ export default {
|
|
'devicePrice',
|
|
'devicePrice',
|
|
'businessInterest',
|
|
'businessInterest',
|
|
'filterConvertedLevel',
|
|
'filterConvertedLevel',
|
|
|
|
+ 'timeType',
|
|
|
|
+ 'strengthType',
|
|
|
|
+ 'sceneType',
|
|
])
|
|
])
|
|
)
|
|
)
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ this.formAll.setFieldsValue(
|
|
|
|
+ pick(n, [
|
|
|
|
+ 'behavior',
|
|
|
|
+ 'interest'
|
|
|
|
+ ])
|
|
|
|
+ )
|
|
|
|
+ },100)
|
|
})
|
|
})
|
|
} else {
|
|
} else {
|
|
this.formAll.resetFields()
|
|
this.formAll.resetFields()
|
|
@@ -704,7 +785,7 @@ export default {
|
|
this.targeted = '2'
|
|
this.targeted = '2'
|
|
this.people = '2'
|
|
this.people = '2'
|
|
this.allForm = {
|
|
this.allForm = {
|
|
- behaviorInterest: "0",
|
|
|
|
|
|
+ behaviorInterest: '0',
|
|
regionType: 'noLimit',
|
|
regionType: 'noLimit',
|
|
region: [],
|
|
region: [],
|
|
ageType: 'noLimit',
|
|
ageType: 'noLimit',
|
|
@@ -753,6 +834,8 @@ export default {
|
|
directives: { clickoutside },
|
|
directives: { clickoutside },
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ behaviorData: [],
|
|
|
|
+ interestData: [],
|
|
optionsAll: [],
|
|
optionsAll: [],
|
|
formAll: this.$form.createForm(this),
|
|
formAll: this.$form.createForm(this),
|
|
marks: {
|
|
marks: {
|
|
@@ -773,9 +856,9 @@ export default {
|
|
checkArr: [],
|
|
checkArr: [],
|
|
appListValue: '',
|
|
appListValue: '',
|
|
checkAll: false,
|
|
checkAll: false,
|
|
- behaviorInterest: "0",
|
|
|
|
|
|
+ behaviorInterest: '0',
|
|
allForm: {
|
|
allForm: {
|
|
- behaviorInterest: "0",
|
|
|
|
|
|
+ behaviorInterest: '0',
|
|
regionType: 'noLimit',
|
|
regionType: 'noLimit',
|
|
region: [],
|
|
region: [],
|
|
ageType: 'noLimit',
|
|
ageType: 'noLimit',
|
|
@@ -1028,9 +1111,9 @@ export default {
|
|
this.formAll.validateFields((err, values) => {
|
|
this.formAll.validateFields((err, values) => {
|
|
if (!err) {
|
|
if (!err) {
|
|
// this.checkArr
|
|
// this.checkArr
|
|
- if(values.age){
|
|
|
|
- values.min=values.age[0];
|
|
|
|
- values.max=values.age[1];
|
|
|
|
|
|
+ if (values.age) {
|
|
|
|
+ values.min = values.age[0]
|
|
|
|
+ values.max = values.age[1]
|
|
}
|
|
}
|
|
var json = {}
|
|
var json = {}
|
|
if (this.allForm.appType == '2') {
|
|
if (this.allForm.appType == '2') {
|
|
@@ -1198,12 +1281,37 @@ export default {
|
|
getData(className) {
|
|
getData(className) {
|
|
return this.formAll.getFieldValue(className)
|
|
return this.formAll.getFieldValue(className)
|
|
},
|
|
},
|
|
|
|
+ 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].children = null
|
|
|
|
+ } else {
|
|
|
|
+ // // children若不为空数组,则继续 递归调用 本方法
|
|
|
|
+ this.getTreeData(data[i].children)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return data
|
|
|
|
+ },
|
|
|
|
+ getAllData(data){
|
|
|
|
+ console.log(data)
|
|
|
|
+ }
|
|
},
|
|
},
|
|
mounted: function () {
|
|
mounted: function () {
|
|
this.getDataType('APP_INTEREST', 'optionsAppActive')
|
|
this.getDataType('APP_INTEREST', 'optionsAppActive')
|
|
this.getDataType('BUSINESS_INTEREST', 'businessOptions')
|
|
this.getDataType('BUSINESS_INTEREST', 'businessOptions')
|
|
this.getDataType('FANS_STAR', 'fansStarOptions')
|
|
this.getDataType('FANS_STAR', 'fansStarOptions')
|
|
this.getDataType('INTEREST_VIDEO', 'interestVideoOptions')
|
|
this.getDataType('INTEREST_VIDEO', 'interestVideoOptions')
|
|
|
|
+ // this.behaviorData
|
|
|
|
+ this.getAction('/batch/kuaishouTemplate/getbehaviorInterest' ,{ accountId:23212 }).then( res => {
|
|
|
|
+ if(res.success) {
|
|
|
|
+ this.behaviorData = this.getTreeData(res.result.behavior_interest.behavior);
|
|
|
|
+ this.interestData = this.getTreeData(res.result.behavior_interest.interest);
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+
|
|
},
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|