|
@@ -4,99 +4,111 @@
|
|
|
:width="800"
|
|
|
:visible="visible"
|
|
|
:confirmLoading="confirmLoading"
|
|
|
- @ok="handleOk"
|
|
|
+ @ok="handleSubmit"
|
|
|
@cancel="handleCancel"
|
|
|
cancelText="关闭">
|
|
|
|
|
|
<a-spin :spinning="confirmLoading">
|
|
|
<a-form :form="form">
|
|
|
-
|
|
|
<a-form-item
|
|
|
+ label="投放目标"
|
|
|
:labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="头条平台id">
|
|
|
- <a-input placeholder="请输入头条平台id" v-decorator="['accountId', {}]" />
|
|
|
- </a-form-item>
|
|
|
- <a-form-item
|
|
|
- :labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="平台账号id">
|
|
|
- <a-input placeholder="请输入平台账号id" v-decorator="['advertiserId', {}]" />
|
|
|
- </a-form-item>
|
|
|
- <a-form-item
|
|
|
- :labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="投放目标">
|
|
|
- <a-input placeholder="请输入投放目标" v-decorator="['deliveryTarget', {}]" />
|
|
|
+ :wrapperCol="wrapperCol">
|
|
|
+ <a-radio-group @change="onChangeDeliveryTarget" v-model="deliveryTarget">
|
|
|
+ <a-radio-button value="a">转化量</a-radio-button>
|
|
|
+ <a-radio-button value="b">点击量</a-radio-button>
|
|
|
+ <a-radio-button value="c">展示量</a-radio-button>
|
|
|
+ </a-radio-group>
|
|
|
</a-form-item>
|
|
|
+
|
|
|
<a-form-item
|
|
|
+ label="下载方式"
|
|
|
:labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="下载方式">
|
|
|
- <a-input placeholder="请输入下载方式" v-decorator="['downloadType', {}]" />
|
|
|
+ :wrapperCol="wrapperCol">
|
|
|
+ <a-radio-group @change="onChangeDownloadType" v-model="downloadType">
|
|
|
+ <a-radio-button value="DOWNLOAD_URL">下载链接</a-radio-button>
|
|
|
+ <a-radio-button value="EXTERNAL_URL">落地页</a-radio-button>
|
|
|
+ </a-radio-group>
|
|
|
</a-form-item>
|
|
|
+
|
|
|
<a-form-item
|
|
|
+ label="下载链接"
|
|
|
+ v-if="showDownloadUrl"
|
|
|
:labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="下载链接">
|
|
|
- <a-input placeholder="请输入下载链接" v-decorator="['downloadUrl', {}]" />
|
|
|
+ :wrapperCol="wrapperCol">
|
|
|
+ <a-input placeholder="请输入网址或从之前网站选择" v-model="downloadUrl"/>
|
|
|
</a-form-item>
|
|
|
+
|
|
|
<a-form-item
|
|
|
+ v-if="showExternalUrl"
|
|
|
+ label="链接地址"
|
|
|
:labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="落地页链接">
|
|
|
- <a-input placeholder="请输入落地页链接" v-decorator="['externalUrl', {}]" />
|
|
|
+ :wrapperCol="wrapperCol">
|
|
|
+ <a-input placeholder="请输入网址或从之前网站选择" v-model="externalUrl"/>
|
|
|
</a-form-item>
|
|
|
+
|
|
|
<a-form-item
|
|
|
+ v-if="showConvertTarget"
|
|
|
+ label="转化目标"
|
|
|
:labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="转化目标">
|
|
|
- <a-input placeholder="请输入转化目标" v-decorator="['convertTarget', {}]" />
|
|
|
+ :wrapperCol="wrapperCol">
|
|
|
+ <a-input placeholder="请输入网址或从之前网站选择" v-model="convertTarget"/>
|
|
|
</a-form-item>
|
|
|
+
|
|
|
<a-form-item
|
|
|
+ label="应用包名"
|
|
|
+ v-if="showPackageName"
|
|
|
:labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="应用包名">
|
|
|
- <a-input placeholder="请输入应用包名" v-decorator="['packageName', {}]" />
|
|
|
+ :wrapperCol="wrapperCol">
|
|
|
+ <a-input v-model="packageName"></a-input>
|
|
|
</a-form-item>
|
|
|
+
|
|
|
<a-form-item
|
|
|
+ label="直达链接"
|
|
|
+ v-if="showOpenUrlStatus"
|
|
|
:labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="直达链接启用状态">
|
|
|
- <a-input placeholder="请输入直达链接启用状态" v-decorator="['openUrlStatus', {}]" />
|
|
|
+ :wrapperCol="wrapperCol">
|
|
|
+ <a-radio-group @change="onChangeOpenUrlStatus" v-model="openUrlStatus">
|
|
|
+ <a-radio-button value="disabled">不启用</a-radio-button>
|
|
|
+ <a-radio-button value="enabled">启用</a-radio-button>
|
|
|
+ </a-radio-group>
|
|
|
</a-form-item>
|
|
|
+
|
|
|
<a-form-item
|
|
|
+ label="直达链接生成方式"
|
|
|
+ v-if="showOpenUrlCreateMode&&showOpenUrlStatus"
|
|
|
:labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="直达链接生成方式">
|
|
|
- <a-input placeholder="请输入直达链接生成方式" v-decorator="['openUrlCreateMode', {}]" />
|
|
|
+ :wrapperCol="wrapperCol">
|
|
|
+ <a-radio-group v-model="openUrlCreateMode">
|
|
|
+ <a-radio-button value="auto_create" disabled>自动生成</a-radio-button>
|
|
|
+ <a-radio-button value="hand_create">手动生成</a-radio-button>
|
|
|
+ </a-radio-group>
|
|
|
</a-form-item>
|
|
|
<a-form-item
|
|
|
+ label="跳转app链接"
|
|
|
+ v-if="showToAppUrl&&showOpenUrlStatus"
|
|
|
:labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="跳转app链接">
|
|
|
- <a-input placeholder="请输入跳转app链接" v-decorator="['redirectUrl', {}]" />
|
|
|
+ :wrapperCol="wrapperCol">
|
|
|
+ <a-input v-model="redirectUrl"></a-input>
|
|
|
</a-form-item>
|
|
|
<a-form-item
|
|
|
+ label="模板名称"
|
|
|
:labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="status">
|
|
|
- <a-input-number v-decorator="[ 'status', validatorRules.status ]" />
|
|
|
+ :wrapperCol="wrapperCol">
|
|
|
+ <a-input v-model="templateName"></a-input>
|
|
|
</a-form-item>
|
|
|
-
|
|
|
</a-form>
|
|
|
</a-spin>
|
|
|
</a-modal>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- import { httpAction } from '@/api/manage'
|
|
|
- import pick from 'lodash.pick'
|
|
|
- import moment from "moment"
|
|
|
-
|
|
|
+ import {deleteAction, postAction, getAction} from '@/api/manage'
|
|
|
+ import $ from 'jquery'
|
|
|
+ import moment from 'moment';
|
|
|
export default {
|
|
|
- name: "BytedanceDeliveryTargetTemplateModal",
|
|
|
- data () {
|
|
|
+ name: 'BytedanceDeliveryTargetTemplateModal',
|
|
|
+ data() {
|
|
|
return {
|
|
|
title:"操作",
|
|
|
visible: false,
|
|
@@ -109,21 +121,36 @@
|
|
|
xs: { span: 24 },
|
|
|
sm: { span: 16 },
|
|
|
},
|
|
|
-
|
|
|
+ templateName:'',
|
|
|
confirmLoading: false,
|
|
|
form: this.$form.createForm(this),
|
|
|
- validatorRules:{
|
|
|
- status:{rules: [{ required: true, message: '请输入status!' }]},
|
|
|
- },
|
|
|
+ deliveryTarget:'a',
|
|
|
+ packageName:'',
|
|
|
+ downloadType:'DOWNLOAD_URL',
|
|
|
+ downloadUrl:'',
|
|
|
+ externalUrl:'',
|
|
|
+ convertTarget:'',
|
|
|
+ showDownloadUrl:true,
|
|
|
+ showExternalUrl:false,
|
|
|
+ showConvertTarget:true,
|
|
|
+ showPackageName:true,
|
|
|
+ showOpenUrlStatus:false,
|
|
|
+ openUrlStatus:'disabled',
|
|
|
+ redirectUrl:'',
|
|
|
+ showToAppUrl:false,
|
|
|
+ showOpenUrlCreateMode:false,
|
|
|
+ openUrlCreateMode:'hand_create',
|
|
|
url: {
|
|
|
- add: "/ctop/bytedanceDeliveryTargetTemplate/add",
|
|
|
- edit: "/ctop/bytedanceDeliveryTargetTemplate/edit",
|
|
|
- },
|
|
|
+ dictListUrl: 'toutiao/dictitem/list',
|
|
|
+ insertUrl:'template/deliverytarget/insert'
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
- created () {
|
|
|
- },
|
|
|
methods: {
|
|
|
+ // handler
|
|
|
+ handleCancel () {
|
|
|
+ this.close()
|
|
|
+ },
|
|
|
add () {
|
|
|
this.edit({});
|
|
|
},
|
|
@@ -133,7 +160,7 @@
|
|
|
this.visible = true;
|
|
|
this.$nextTick(() => {
|
|
|
this.form.setFieldsValue(pick(this.model,'accountId','advertiserId','deliveryTarget','downloadType','downloadUrl','externalUrl','convertTarget','packageName','openUrlStatus','openUrlCreateMode','redirectUrl','status'))
|
|
|
- //时间格式化
|
|
|
+ //时间格式化
|
|
|
});
|
|
|
|
|
|
},
|
|
@@ -141,47 +168,66 @@
|
|
|
this.$emit('close');
|
|
|
this.visible = false;
|
|
|
},
|
|
|
- handleOk () {
|
|
|
- const that = this;
|
|
|
- // 触发表单验证
|
|
|
+ handleSubmit(e) {
|
|
|
+ e.preventDefault()
|
|
|
this.form.validateFields((err, values) => {
|
|
|
if (!err) {
|
|
|
- that.confirmLoading = true;
|
|
|
- let httpurl = '';
|
|
|
- let method = '';
|
|
|
- if(!this.model.id){
|
|
|
- httpurl+=this.url.add;
|
|
|
- method = 'post';
|
|
|
- }else{
|
|
|
- httpurl+=this.url.edit;
|
|
|
- method = 'put';
|
|
|
- }
|
|
|
- let formData = Object.assign(this.model, values);
|
|
|
- //时间格式化
|
|
|
-
|
|
|
- console.log(formData)
|
|
|
- httpAction(httpurl,formData,method).then((res)=>{
|
|
|
+ console.log('Received values of form: ', values);
|
|
|
+ let params = {};
|
|
|
+ params.deliveryTarget = this.deliveryTarget;
|
|
|
+ params.downloadType = this.downloadType;
|
|
|
+ params.downloadUrl = this.downloadUrl;
|
|
|
+ params.externalUrl = this.externalUrl;
|
|
|
+ params.convertTarget = this.convertTarget;
|
|
|
+ params.packageName = this.packageName;
|
|
|
+ params.openUrlStatus = this.openUrlStatus;
|
|
|
+ params.openUrlCreateMode = this.openUrlCreateMode;
|
|
|
+ params.redirectUrl = this.redirectUrl;
|
|
|
+ console.log(params)
|
|
|
+ postAction(this.url.insertUrl,params).then((res)=>{
|
|
|
+ console.log(res)
|
|
|
if(res.success){
|
|
|
- that.$message.success(res.message);
|
|
|
- that.$emit('ok');
|
|
|
- }else{
|
|
|
- that.$message.warning(res.message);
|
|
|
+ alert("投放目标-模板创建成功");
|
|
|
}
|
|
|
- }).finally(() => {
|
|
|
- that.confirmLoading = false;
|
|
|
- that.close();
|
|
|
- })
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ });
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- handleCancel () {
|
|
|
- this.close()
|
|
|
+ onChange(value) {
|
|
|
+ console.log(value);
|
|
|
},
|
|
|
+ onChangeDownloadType(value){
|
|
|
+ console.log(value);
|
|
|
+ if(this.downloadType == 'DOWNLOAD_URL'){
|
|
|
+ this.showDownloadUrl = true;
|
|
|
+ this.showExternalUrl = false;
|
|
|
+ this.showPackageName=true;
|
|
|
+ this.showOpenUrlStatus=false;
|
|
|
|
|
|
-
|
|
|
+ }else{
|
|
|
+ this.showDownloadUrl = false;
|
|
|
+ this.showExternalUrl = true;
|
|
|
+ this.showPackageName=false;
|
|
|
+ this.showOpenUrlStatus=true;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onChangeDeliveryTarget(value){
|
|
|
+ console.log(value);
|
|
|
+ if(this.deliveryTarget == 'a'){
|
|
|
+ this.showConvertTarget = true;
|
|
|
+ }else {
|
|
|
+ this.showConvertTarget = false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onChangeOpenUrlStatus(){
|
|
|
+ if(this.openUrlStatus=='disabled'){
|
|
|
+ this.showOpenUrlCreateMode = false;
|
|
|
+ this.showToAppUrl = false;
|
|
|
+ }else{
|
|
|
+ this.showOpenUrlCreateMode = true;
|
|
|
+ this.showToAppUrl = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</script>
|