|
@@ -2,6 +2,21 @@
|
|
<a-card :body-style="{padding: '24px 32px'}" :bordered="false">
|
|
<a-card :body-style="{padding: '24px 32px'}" :bordered="false">
|
|
<a-form @submit="handleSubmit" :form="form">
|
|
<a-form @submit="handleSubmit" :form="form">
|
|
<a-form-item
|
|
<a-form-item
|
|
|
|
+ label="选择头条账户"
|
|
|
|
+ :labelCol="labelCol"
|
|
|
|
+ :wrapperCol="wrapperCol">
|
|
|
|
+ <a-select
|
|
|
|
+ v-model="accountId"
|
|
|
|
+ showSearch
|
|
|
|
+ placeholder="选择头条账户"
|
|
|
|
+ optionFilterProp="children"
|
|
|
|
+ style="width: 200px"
|
|
|
|
+ >
|
|
|
|
+ <a-select-option v-for="user in userList" :key="user.accountId" :value="user.accountId">{{user.authName}}</a-select-option>
|
|
|
|
+ </a-select>
|
|
|
|
+ </a-form-item>
|
|
|
|
+
|
|
|
|
+ <a-form-item
|
|
label="模板名称"
|
|
label="模板名称"
|
|
:labelCol="labelCol"
|
|
:labelCol="labelCol"
|
|
:wrapperCol="wrapperCol">
|
|
:wrapperCol="wrapperCol">
|
|
@@ -51,14 +66,6 @@
|
|
</a-form-item>
|
|
</a-form-item>
|
|
|
|
|
|
<a-form-item
|
|
<a-form-item
|
|
- v-if="showConvertTarget"
|
|
|
|
- label="转化目标"
|
|
|
|
- :labelCol="labelCol"
|
|
|
|
- :wrapperCol="wrapperCol">
|
|
|
|
- <a-input placeholder="请输入网址或从之前网站选择" v-model="convertTarget"/>
|
|
|
|
- </a-form-item>
|
|
|
|
-
|
|
|
|
- <a-form-item
|
|
|
|
label="下载方式"
|
|
label="下载方式"
|
|
:labelCol="labelCol"
|
|
:labelCol="labelCol"
|
|
:wrapperCol="wrapperCol">
|
|
:wrapperCol="wrapperCol">
|
|
@@ -67,35 +74,82 @@
|
|
<a-radio-button value="1">下载链接</a-radio-button>
|
|
<a-radio-button value="1">下载链接</a-radio-button>
|
|
<a-radio-button value="2">落地页</a-radio-button>
|
|
<a-radio-button value="2">落地页</a-radio-button>
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
|
|
+ </a-form-item>
|
|
|
|
|
|
|
|
+ <a-form-item
|
|
|
|
+ v-if="showDownloadMode"
|
|
|
|
+ label="下载类型"
|
|
|
|
+ :labelCol="labelCol"
|
|
|
|
+ :wrapperCol="wrapperCol">
|
|
|
|
+ <a-radio-group @change="onChangeDownloadMode" v-model="downloadMode">
|
|
|
|
+ <a-radio-button value="android">安卓下载</a-radio-button>
|
|
|
|
+ <a-radio-button value="IOS">IOS下载</a-radio-button>
|
|
|
|
+ </a-radio-group>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
|
|
|
|
<a-form-item
|
|
<a-form-item
|
|
label="下载链接"
|
|
label="下载链接"
|
|
- v-if="showDownloadUrl"
|
|
|
|
:labelCol="labelCol"
|
|
:labelCol="labelCol"
|
|
:wrapperCol="wrapperCol">
|
|
:wrapperCol="wrapperCol">
|
|
- <a-input placeholder="请填写下载链接" v-model="downloadUrl"/>
|
|
|
|
|
|
+ <a-select
|
|
|
|
+ v-model="urlId"
|
|
|
|
+ style="width: 300px">
|
|
|
|
+ <a-select-option v-for="url in urlList" :key="url.id" :value="url.id">{{url.name}}</a-select-option>
|
|
|
|
+ </a-select>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
|
|
|
|
<a-form-item
|
|
<a-form-item
|
|
- v-if="showExternalUrl"
|
|
|
|
- label="链接地址"
|
|
|
|
|
|
+ v-if="showConvertTarget"
|
|
|
|
+ label="选择转化跟踪方式"
|
|
:labelCol="labelCol"
|
|
:labelCol="labelCol"
|
|
:wrapperCol="wrapperCol">
|
|
:wrapperCol="wrapperCol">
|
|
- <a-input placeholder="请输入网址或从之前网站选择" v-model="externalUrl"/>
|
|
|
|
|
|
+ <a-select
|
|
|
|
+ v-model="convertType"
|
|
|
|
+ showSearch
|
|
|
|
+ placeholder="选择投放目标模板"
|
|
|
|
+ optionFilterProp="children"
|
|
|
|
+ style="width: 200px"
|
|
|
|
+ @change="changeConvertType"
|
|
|
|
+ >
|
|
|
|
+ <a-select-option v-if="showSimple"value="SIMPLE">普通应用下载</a-select-option>
|
|
|
|
+ <!--<a-select-option value="API">应用下载API</a-select-option>-->
|
|
|
|
+ </a-select>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
|
|
|
|
-
|
|
|
|
<a-form-item
|
|
<a-form-item
|
|
- label="应用包名"
|
|
|
|
- v-if="showPackageName"
|
|
|
|
|
|
+ v-if="showConvertTarget&&showConvertTargetSimple"
|
|
|
|
+ label="选择转化目标"
|
|
:labelCol="labelCol"
|
|
:labelCol="labelCol"
|
|
:wrapperCol="wrapperCol">
|
|
:wrapperCol="wrapperCol">
|
|
- <a-input v-model="packageName"></a-input>
|
|
|
|
|
|
+ <a-select
|
|
|
|
+ v-model="simpleDeliverytarget"
|
|
|
|
+ showSearch
|
|
|
|
+ placeholder="选择转化目标"
|
|
|
|
+ optionFilterProp="children"
|
|
|
|
+ style="width: 200px"
|
|
|
|
+ >
|
|
|
|
+ <a-select-option value="AD_CONVERT_TYPE_INSTALL_FINISH">安装完成</a-select-option>
|
|
|
|
+ <a-select-option value="AD_CONVERT_TYPE_DOWNLOAD_FINiSH">下载完成</a-select-option>
|
|
|
|
+ </a-select>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
|
|
|
|
<a-form-item
|
|
<a-form-item
|
|
|
|
+ v-if="showConvertTarget&&showConvertTargetApi"
|
|
|
|
+ label="选择转化目标"
|
|
|
|
+ :labelCol="labelCol"
|
|
|
|
+ :wrapperCol="wrapperCol">
|
|
|
|
+ <a-select
|
|
|
|
+ v-model="convertId"
|
|
|
|
+ showSearch
|
|
|
|
+ placeholder="选择转化目标"
|
|
|
|
+ optionFilterProp="children"
|
|
|
|
+ style="width: 800px"
|
|
|
|
+ >
|
|
|
|
+ <a-select-option v-for="activeConvert in activeConvertList" :key="activeConvert.id" :value="activeConvert.id">{{activeConvert.name}}</a-select-option>
|
|
|
|
+ </a-select>
|
|
|
|
+ </a-form-item>
|
|
|
|
+
|
|
|
|
+ <!--<a-form-item
|
|
label="直达链接"
|
|
label="直达链接"
|
|
v-if="showOpenUrlStatus"
|
|
v-if="showOpenUrlStatus"
|
|
:labelCol="labelCol"
|
|
:labelCol="labelCol"
|
|
@@ -104,7 +158,7 @@
|
|
<a-radio-button value="disabled">不启用</a-radio-button>
|
|
<a-radio-button value="disabled">不启用</a-radio-button>
|
|
<a-radio-button value="enabled">启用</a-radio-button>
|
|
<a-radio-button value="enabled">启用</a-radio-button>
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
- </a-form-item>
|
|
|
|
|
|
+ </a-form-item>-->
|
|
|
|
|
|
<!-- <a-form-item-->
|
|
<!-- <a-form-item-->
|
|
<!-- label="直达链接生成方式"-->
|
|
<!-- label="直达链接生成方式"-->
|
|
@@ -219,6 +273,13 @@
|
|
元
|
|
元
|
|
</a-form-item>
|
|
</a-form-item>
|
|
|
|
|
|
|
|
+ <a-form-item
|
|
|
|
+ label="迭代数量"
|
|
|
|
+ :labelCol="labelCol"
|
|
|
|
+ :wrapperCol="wrapperCol">
|
|
|
|
+ <a-input-number v-model="itratorNum" :min="1" :max="1000" @change="onChange"/>
|
|
|
|
+ </a-form-item>
|
|
|
|
+
|
|
|
|
|
|
<a-form-item :wrapperCol="{ span: 24 }"
|
|
<a-form-item :wrapperCol="{ span: 24 }"
|
|
style="text-align: center">
|
|
style="text-align: center">
|
|
@@ -255,7 +316,21 @@
|
|
xs: {span: 24},
|
|
xs: {span: 24},
|
|
sm: {span: 16},
|
|
sm: {span: 16},
|
|
},
|
|
},
|
|
-
|
|
|
|
|
|
+ itratorNum:1,
|
|
|
|
+ accountId:'',
|
|
|
|
+ userList:[],
|
|
|
|
+ urlId:'',
|
|
|
|
+ urlList:[],
|
|
|
|
+ showDownloadMode:'true',
|
|
|
|
+ downloadMode:'android',
|
|
|
|
+ convertId:'',
|
|
|
|
+ showSimple:true,
|
|
|
|
+ showConvertTargetSimple:false,
|
|
|
|
+ showConvertTargetApi:false,
|
|
|
|
+ convertType:'',
|
|
|
|
+ simpleDeliverytarget:'',
|
|
|
|
+ activeConvertList:[],
|
|
|
|
+ deliverytargetId:null,
|
|
templateName: '', //模板名称
|
|
templateName: '', //模板名称
|
|
deliveryRange: '1',//投放范围
|
|
deliveryRange: '1',//投放范围
|
|
deliveryForm: '1',//投放形式
|
|
deliveryForm: '1',//投放形式
|
|
@@ -280,9 +355,7 @@
|
|
convertPrice: 0, //目标转化出价
|
|
convertPrice: 0, //目标转化出价
|
|
convertTarget: '',
|
|
convertTarget: '',
|
|
showDownloadUrl: true,
|
|
showDownloadUrl: true,
|
|
- showExternalUrl: false,
|
|
|
|
showConvertTarget: true,
|
|
showConvertTarget: true,
|
|
- showPackageName: true,
|
|
|
|
showOpenUrlStatus: false,
|
|
showOpenUrlStatus: false,
|
|
openUrlStatus: 'disabled',
|
|
openUrlStatus: 'disabled',
|
|
redirectUrl: '',
|
|
redirectUrl: '',
|
|
@@ -298,12 +371,46 @@
|
|
flowDateList: {},
|
|
flowDateList: {},
|
|
form: this.$form.createForm(this),
|
|
form: this.$form.createForm(this),
|
|
url: {
|
|
url: {
|
|
|
|
+ urllist: '/ctop/bytedanceUrlInfo/list',
|
|
|
|
+ userAllocationList:'/template/allocation/list',
|
|
dictListUrl: 'toutiao/dictitem/list',
|
|
dictListUrl: 'toutiao/dictitem/list',
|
|
- insertUrl: 'test/create'
|
|
|
|
|
|
+ insertUrl: 'test/create',
|
|
|
|
+ convertList:'template/convert/list/url'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ refreshConvertApiId(){
|
|
|
|
+ let params = {};
|
|
|
|
+ getAction(this.url.convertList+'?accountId='+this.accountId+'&urlId='+this.urlId ,params).then((res)=>{
|
|
|
|
+ console.log(res);
|
|
|
|
+ if(res.code == 0){
|
|
|
|
+ this.activeConvertList = res.data.active_convert_list;
|
|
|
|
+ }else{
|
|
|
|
+ this.$message.error(res.message);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ changeConvertType(){
|
|
|
|
+ if(this.convertType == 'SIMPLE'){
|
|
|
|
+ this.showConvertTargetSimple = true;
|
|
|
|
+ this.showConvertTargetApi = false;
|
|
|
|
+ }else{
|
|
|
|
+ this.refreshConvertApiId();
|
|
|
|
+ this.showConvertTargetSimple = false;
|
|
|
|
+ this.showConvertTargetApi = true;
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ refreshUrl(value){
|
|
|
|
+ let params = {};
|
|
|
|
+ params.pageSize = '1000';
|
|
|
|
+ params.type = value;
|
|
|
|
+ getAction(this.url.urllist, params).then((res) => {
|
|
|
|
+ if (res.success) {
|
|
|
|
+ this.urlList = res.result.records
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
onChangedeliveRange() {
|
|
onChangedeliveRange() {
|
|
if (this.deliveryRange == '1') {
|
|
if (this.deliveryRange == '1') {
|
|
this.deliveryRangeShow = false;
|
|
this.deliveryRangeShow = false;
|
|
@@ -385,16 +492,17 @@
|
|
onChangeDownloadType(value) {
|
|
onChangeDownloadType(value) {
|
|
console.log(value);
|
|
console.log(value);
|
|
if (this.downloadType == '1') {
|
|
if (this.downloadType == '1') {
|
|
|
|
+ this.urlId = null;
|
|
this.showDownloadUrl = true;
|
|
this.showDownloadUrl = true;
|
|
- this.showExternalUrl = false;
|
|
|
|
- this.showPackageName = true;
|
|
|
|
this.showOpenUrlStatus = false;
|
|
this.showOpenUrlStatus = false;
|
|
-
|
|
|
|
|
|
+ this.showDownloadMode = true;
|
|
|
|
+ this.refreshUrl('android');
|
|
} else {
|
|
} else {
|
|
|
|
+ this.urlId = null;
|
|
this.showDownloadUrl = false;
|
|
this.showDownloadUrl = false;
|
|
- this.showExternalUrl = true;
|
|
|
|
- this.showPackageName = false;
|
|
|
|
this.showOpenUrlStatus = true;
|
|
this.showOpenUrlStatus = true;
|
|
|
|
+ this.showDownloadMode = false;
|
|
|
|
+ this.refreshUrl('page');
|
|
}
|
|
}
|
|
},
|
|
},
|
|
onChangeDeliveryTarget(value) {
|
|
onChangeDeliveryTarget(value) {
|
|
@@ -465,12 +573,14 @@
|
|
params.dateQuantum =this.dateQuantum;
|
|
params.dateQuantum =this.dateQuantum;
|
|
params.pricing = this.pricing;
|
|
params.pricing = this.pricing;
|
|
params.convertPrice = this.convertPrice;
|
|
params.convertPrice = this.convertPrice;
|
|
|
|
+ params.itratorNum = this.itratorNum;
|
|
if (this.time != [] && this.time.length == 2) {
|
|
if (this.time != [] && this.time.length == 2) {
|
|
params.startDate = moment(this.time[0]).format('YYYY-MM-DD HH:mm')
|
|
params.startDate = moment(this.time[0]).format('YYYY-MM-DD HH:mm')
|
|
params.endDate = moment(this.time[1]).format('YYYY-MM-DD HH:mm')
|
|
params.endDate = moment(this.time[1]).format('YYYY-MM-DD HH:mm')
|
|
}
|
|
}
|
|
|
|
|
|
params.dateQuantumRange = this.dateQuantumRange;
|
|
params.dateQuantumRange = this.dateQuantumRange;
|
|
|
|
+ params.urlId = this.urlId;
|
|
e.preventDefault()
|
|
e.preventDefault()
|
|
this.form.validateFields((err, values) => {
|
|
this.form.validateFields((err, values) => {
|
|
if (!err) {
|
|
if (!err) {
|
|
@@ -494,7 +604,7 @@
|
|
postAction(this.url.insertUrl, params).then((res) => {
|
|
postAction(this.url.insertUrl, params).then((res) => {
|
|
console.log(res)
|
|
console.log(res)
|
|
if (res.success) {
|
|
if (res.success) {
|
|
- this.$message.success(res.message);
|
|
|
|
|
|
+ this.$message.success("批量创建成功");
|
|
this.$emit('ok');
|
|
this.$emit('ok');
|
|
this.close();
|
|
this.close();
|
|
} else {
|
|
} else {
|
|
@@ -520,6 +630,10 @@
|
|
});
|
|
});
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ onChangeDownloadMode(){
|
|
|
|
+ this.urlId = null;
|
|
|
|
+ this.refreshUrl(this.downloadMode);
|
|
|
|
+ },
|
|
onChangeFlowDate() {
|
|
onChangeFlowDate() {
|
|
console.log(this.flowDateType)
|
|
console.log(this.flowDateType)
|
|
if (this.flowDateType == '1') {
|
|
if (this.flowDateType == '1') {
|
|
@@ -531,7 +645,15 @@
|
|
}
|
|
}
|
|
},
|
|
},
|
|
created: function () {
|
|
created: function () {
|
|
-
|
|
|
|
|
|
+ this.refreshUrl("android");
|
|
|
|
+ let params = {};
|
|
|
|
+ params.pageSize = '1000';
|
|
|
|
+ params.mediaId='1';
|
|
|
|
+ postAction(this.url.userAllocationList, params).then((res) => {
|
|
|
|
+ if (res.success) {
|
|
|
|
+ this.userList = res.result.records
|
|
|
|
+ }
|
|
|
|
+ });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|