|
@@ -50,17 +50,41 @@
|
|
<div class="moduler-title">请设置基本信息</div>
|
|
<div class="moduler-title">请设置基本信息</div>
|
|
|
|
|
|
<div class="row-item">
|
|
<div class="row-item">
|
|
- <div class="hint-item"> </div>
|
|
|
|
- <div class="label-item">
|
|
|
|
- <div class="text-item">策略名称</div>
|
|
|
|
- <div class="required-item"></div>
|
|
|
|
- </div>
|
|
|
|
- <div class="input-item">
|
|
|
|
- <a-form-item>
|
|
|
|
- <a-input v-model="strategyName" allow-clear />
|
|
|
|
- </a-form-item>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <div class="hint-item"> </div>
|
|
|
|
+ <div class="label-item">
|
|
|
|
+ <div class="text-item">模板名称</div>
|
|
|
|
+ <div class="required-item"></div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="input-item">
|
|
|
|
+ <a-form-item>
|
|
|
|
+ <a-input v-model="strategyName" allow-clear />
|
|
|
|
+ </a-form-item>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="row-item">
|
|
|
|
+ <div class="hint-item"> </div>
|
|
|
|
+ <div class="label-item">
|
|
|
|
+ <div class="text-item">计划命名规范</div>
|
|
|
|
+ <div class="required-item"></div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="input-item">
|
|
|
|
+ <a-form-item>
|
|
|
|
+ <a-input v-decorator="['campaignName',{ rules: [{ required: true, message: '请填写计划的命名规则' }] }]" allow-clear />
|
|
|
|
+ </a-form-item>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="row-item">
|
|
|
|
+ <div class="hint-item"> </div>
|
|
|
|
+ <div class="label-item">
|
|
|
|
+ <div class="text-item">组命名规范</div>
|
|
|
|
+ <div class="required-item"></div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="input-item">
|
|
|
|
+ <a-form-item>
|
|
|
|
+ <a-input v-decorator="['groupName',{ rules: [{ required: true, message: '请填写组的命名规则' }] }]" allow-clear />
|
|
|
|
+ </a-form-item>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
<div class="moduler">
|
|
<div class="moduler">
|
|
@@ -82,7 +106,7 @@
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="row-item" v-if="strategyInfo.marketingGoal=='2'||strategyInfo.marketingGoal=='7'">
|
|
|
|
|
|
+ <div class="row-item" v-if="getFormData('marketingGoal')=='2'||getFormData('marketingGoal')=='7'">
|
|
<div class="hint-item"></div>
|
|
<div class="hint-item"></div>
|
|
<div class="label-item">
|
|
<div class="label-item">
|
|
<div class="text-item">选择应用</div>
|
|
<div class="text-item">选择应用</div>
|
|
@@ -104,7 +128,7 @@
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="row-item" v-if="strategyInfo.marketingGoal == '3'">
|
|
|
|
|
|
+ <div class="row-item" v-if="getFormData('marketingGoal') == '3'">
|
|
<div class="hint-item"></div>
|
|
<div class="hint-item"></div>
|
|
<div class="label-item">
|
|
<div class="label-item">
|
|
<div class="text-item">转化类型</div>
|
|
<div class="text-item">转化类型</div>
|
|
@@ -121,21 +145,21 @@
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="row-item" v-if="strategyInfo.marketingGoal == '3'||strategyInfo.marketingGoal == '4'||strategyInfo.marketingGoal == '5'">
|
|
|
|
|
|
+ <div class="row-item" v-if="getFormData('marketingGoal') == '3'||getFormData('marketingGoal') == '4'||getFormData('marketingGoal') == '5'">
|
|
<div class="hint-item"></div>
|
|
<div class="hint-item"></div>
|
|
<div class="label-item">
|
|
<div class="label-item">
|
|
<div class="text-item">链接</div>
|
|
<div class="text-item">链接</div>
|
|
<!-- <div class="required-item"></div> -->
|
|
<!-- <div class="required-item"></div> -->
|
|
</div>
|
|
</div>
|
|
<div class="input-item">
|
|
<div class="input-item">
|
|
- <a-form-item v-if="strategyInfo.marketingGoal != 2" :class="{ 'else-label': strategyInfo.marketingGoal == 3 }">
|
|
|
|
|
|
+ <a-form-item v-if="getFormData('marketingGoal') != 2" :class="{ 'else-label': getFormData('marketingGoal') == 3 }">
|
|
<a-input placeholder="请填写链接" v-decorator="['url', { rules: [{ required: true,message:'链接不能为空'}] }]" />
|
|
<a-input placeholder="请填写链接" v-decorator="['url', { rules: [{ required: true,message:'链接不能为空'}] }]" />
|
|
</a-form-item>
|
|
</a-form-item>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <div class="row-item" v-if="strategyInfo.marketingGoal == 2||strategyInfo.marketingGoal == 4||strategyInfo.marketingGoal == 5">
|
|
|
|
|
|
+ <div class="row-item" v-if="getFormData('marketingGoal') == 2||getFormData('marketingGoal') == 4||getFormData('marketingGoal') == 5">
|
|
<div class="hint-item"></div>
|
|
<div class="hint-item"></div>
|
|
<div class="label-item">
|
|
<div class="label-item">
|
|
<div class="text-item">转化追踪</div>
|
|
<div class="text-item">转化追踪</div>
|
|
@@ -326,9 +350,9 @@
|
|
<div class="ad-range2" v-if="useDirectional==0">
|
|
<div class="ad-range2" v-if="useDirectional==0">
|
|
<div style="position:relative" class="ad-range2-title">
|
|
<div style="position:relative" class="ad-range2-title">
|
|
<span>当前选择模板数量:{{directionalCheckedList.length}}</span>
|
|
<span>当前选择模板数量:{{directionalCheckedList.length}}</span>
|
|
- <!-- <a-checkbox :indeterminate="indeterminateDirectional" :checked="checkAllDirectional" @change="onCheckAllDirectionalChange" class="quanxuanDirectional">
|
|
|
|
|
|
+ <a-checkbox :indeterminate="indeterminateDirectional" :checked="checkAllDirectional" @change="onCheckAllDirectionalChange" class="quanxuanDirectional">
|
|
<span>点击全选</span>
|
|
<span>点击全选</span>
|
|
- </a-checkbox> -->
|
|
|
|
|
|
+ </a-checkbox>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<a-spin :spinning="directionalSpinning">
|
|
<a-spin :spinning="directionalSpinning">
|
|
@@ -463,9 +487,9 @@
|
|
|
|
|
|
<a-select-option :value="2">行为数</a-select-option>
|
|
<a-select-option :value="2">行为数</a-select-option>
|
|
<a-select-option :value="180"
|
|
<a-select-option :value="180"
|
|
- v-if="strategyInfo.marketingGoal == '2' && groupTypeData.isActivate == '1'">激活</a-select-option>
|
|
|
|
|
|
+ v-if="getFormData('marketingGoal') == '2' && groupTypeData.isActivate == '1'">激活</a-select-option>
|
|
<a-select-option :value="53" v-if="
|
|
<a-select-option :value="53" v-if="
|
|
- (strategyInfo.marketingGoal == '4' || strategyInfo.marketingGoal == '5') && groupTypeData.isFormSubmit == '1'
|
|
|
|
|
|
+ (getFormData('marketingGoal') == '4' || getFormData('marketingGoal') == '5') && groupTypeData.isFormSubmit == '1'
|
|
">表单提交</a-select-option>
|
|
">表单提交</a-select-option>
|
|
|
|
|
|
<a-select-option :value="394" v-if="
|
|
<a-select-option :value="394" v-if="
|
|
@@ -553,7 +577,7 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <div class="row-item" v-if="getFormData('bidType')==10&&strategyInfo.scenes=='2'">
|
|
|
|
|
|
+ <div class="row-item" v-if="getFormData('bidType')==10&&getFormData('scenes')=='2'">
|
|
<div class="hint-item">
|
|
<div class="hint-item">
|
|
</div>
|
|
</div>
|
|
<div class="label-item">
|
|
<div class="label-item">
|
|
@@ -577,7 +601,7 @@
|
|
>请输入点击出价,不少于0.1元,不超过10000元</span>
|
|
>请输入点击出价,不少于0.1元,不超过10000元</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="row-item" v-if="getFormData('bidType')==10&&strategyInfo.scenes=='1'">
|
|
|
|
|
|
+ <div class="row-item" v-if="getFormData('bidType')==10&&getFormData('scenes')=='1'">
|
|
<div class="hint-item">
|
|
<div class="hint-item">
|
|
</div>
|
|
</div>
|
|
<div class="label-item">
|
|
<div class="label-item">
|
|
@@ -605,7 +629,7 @@
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="row-item" v-if="getFormData('bidType')==10&&strategyInfo.scenes=='1'">
|
|
|
|
|
|
+ <div class="row-item" v-if="getFormData('bidType')==10&&getFormData('scenes')=='1'">
|
|
<div class="hint-item">
|
|
<div class="hint-item">
|
|
</div>
|
|
</div>
|
|
<div class="label-item">
|
|
<div class="label-item">
|
|
@@ -755,20 +779,42 @@
|
|
</a-form-item>
|
|
</a-form-item>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <div class="row-item" v-if="whiteList.actionbar_click_url_switch">
|
|
|
|
+ <div class="hint-item"></div>
|
|
|
|
+ <div class="label-item">
|
|
|
|
+ <div class="text-item">第三方ActionBar点击监控链接</div>
|
|
|
|
+ <!-- <div class="required-item"></div> -->
|
|
|
|
+ </div>
|
|
|
|
+ <div class="input-item">
|
|
|
|
+ <a-form-item >
|
|
|
|
+ <a-input
|
|
|
|
+ v-decorator="[
|
|
|
|
+ 'actionbarClickUrl',
|
|
|
|
+ {
|
|
|
|
+ rules: [{ message: '请输入第三方点击监控链接' }],
|
|
|
|
+ },
|
|
|
|
+ ]"
|
|
|
|
+ placeholder="请输入第三方点击监控链接"
|
|
|
|
+ >
|
|
|
|
+ </a-input>
|
|
|
|
+ <span style="color: red; position: relative; top: -10px">仅加白使用</span>
|
|
|
|
+ </a-form-item>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
<div class="row-item">
|
|
<div class="row-item">
|
|
<div class="hint-item"></div>
|
|
<div class="hint-item"></div>
|
|
<div class="label-item">
|
|
<div class="label-item">
|
|
<div class="text-item">创意分类</div>
|
|
<div class="text-item">创意分类</div>
|
|
- <!-- <div class="required-item"></div> -->
|
|
|
|
|
|
+ <div class="required-item" v-show="whiteList.creative_category_switch"></div>
|
|
</div>
|
|
</div>
|
|
<div class="input-item">
|
|
<div class="input-item">
|
|
- <a-form-item>
|
|
|
|
|
|
+ <a-form-item >
|
|
<a-cascader
|
|
<a-cascader
|
|
:options="createOptions"
|
|
:options="createOptions"
|
|
- v-decorator="['creativeCategory']"
|
|
|
|
|
|
+ v-decorator="['creativeCategory',{ rules: [{ required: whiteList.creative_category_switch, message: '创意分类必填' }] }]"
|
|
:fieldNames="fieldNames"
|
|
:fieldNames="fieldNames"
|
|
placeholder="请选择创意分类"
|
|
placeholder="请选择创意分类"
|
|
- style="width:300px"
|
|
|
|
|
|
+
|
|
/>
|
|
/>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
</div>
|
|
</div>
|
|
@@ -777,7 +823,7 @@
|
|
<div class="hint-item"></div>
|
|
<div class="hint-item"></div>
|
|
<div class="label-item">
|
|
<div class="label-item">
|
|
<div class="text-item">创意标签</div>
|
|
<div class="text-item">创意标签</div>
|
|
- <!-- <div class="required-item"></div> -->
|
|
|
|
|
|
+ <div class="required-item" v-show="whiteList.creative_category_switch"></div>
|
|
</div>
|
|
</div>
|
|
<div class="input-item">
|
|
<div class="input-item">
|
|
<a-form-item>
|
|
<a-form-item>
|
|
@@ -794,17 +840,104 @@
|
|
</a-form-item>
|
|
</a-form-item>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <div class="row-item">
|
|
|
|
+ <div class="hint-item"></div>
|
|
|
|
+ <div class="label-item">
|
|
|
|
+ <div class="text-item">行动号召</div>
|
|
|
|
+ <div class="required-item"></div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="input-item">
|
|
|
|
+ <a-form-item >
|
|
|
|
+ <a-select
|
|
|
|
+ v-decorator="['actionBarText', { rules: [{ required: true, message: '请选择行动号召按钮文案' }] }]"
|
|
|
|
+ showSearch
|
|
|
|
+ allowClear
|
|
|
|
+ placeholder="选择行动号召按钮文案"
|
|
|
|
+ optionFilterProp="children"
|
|
|
|
+ :filterOption="filterOption"
|
|
|
|
+ >
|
|
|
|
+ <a-select-option v-for="appModel in actionBarTextList" :key="appModel.id" :value="appModel.actionBarText">
|
|
|
|
+ {{ appModel.actionBarText }}
|
|
|
|
+ </a-select-option>
|
|
|
|
+ </a-select>
|
|
|
|
+ </a-form-item>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="row-item">
|
|
|
|
+ <div class="hint-item"></div>
|
|
|
|
+ <div class="label-item">
|
|
|
|
+ <div class="text-item">关联封面数</div>
|
|
|
|
+ <div class="required-item"></div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="input-item">
|
|
|
|
+ <a-form-item >
|
|
|
|
+ <a-input-number
|
|
|
|
+ style="width:200px"
|
|
|
|
+ :max="20"
|
|
|
|
+ :step="1"
|
|
|
|
+ v-decorator="['imageCnt',{ rules: [{ required: true, message: '请填写关联封面数' }] } ]"
|
|
|
|
+ />
|
|
|
|
+ </a-form-item>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="row-item">
|
|
|
|
+ <div class="hint-item"> </div>
|
|
|
|
+ <div class="label-item">
|
|
|
|
+ <div class="text-item">广告语</div>
|
|
|
|
+ <div class="required-item"></div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="input-item">
|
|
|
|
+ <a-form-item>
|
|
|
|
+ <div
|
|
|
|
+ class="step4-else"
|
|
|
|
+ style="
|
|
|
|
+ display: inline-block;
|
|
|
|
+ position: relative;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ border: 1px solid #d9d9d9;
|
|
|
|
+ width: 100%;
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ <a-textarea
|
|
|
|
+ class="rending"
|
|
|
|
+ placeholder="请输入广告语"
|
|
|
|
+ v-decorator="['description',{ rules: [{ required: true, message: '请填写广告语' }] } ]"
|
|
|
|
+ :autosize="{ minRows: 2, maxRows: 6 }"
|
|
|
|
+ :max-length="30"
|
|
|
|
+ ></a-textarea>
|
|
|
|
+ <p
|
|
|
|
+ style="
|
|
|
|
+ font-size: 12px;
|
|
|
|
+ color: #b6bbc7;
|
|
|
|
+ letter-spacing: 0.3px;
|
|
|
|
+ text-align: right;
|
|
|
|
+ line-height: 20px;
|
|
|
|
+ position: absolute;
|
|
|
|
+ bottom: 0;
|
|
|
|
+ right: 6px;
|
|
|
|
+ width: 100%;
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ {{ item.description.length + '/30' }}
|
|
|
|
+ </p>
|
|
|
|
+ </div>
|
|
|
|
+ </a-form-item>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
- <div class="moduler">
|
|
|
|
|
|
+ <!-- <div class="moduler">
|
|
<div class="opt">
|
|
<div class="opt">
|
|
<a-button type="default" style="margin-right:15px" @click="goBack">取消</a-button>
|
|
<a-button type="default" style="margin-right:15px" @click="goBack">取消</a-button>
|
|
|
|
|
|
<a-button type="primary" @click="goNext" :loading="goNextloading">下一步</a-button>
|
|
<a-button type="primary" @click="goNext" :loading="goNextloading">下一步</a-button>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
|
|
+ </div> -->
|
|
<div class="moduler">
|
|
<div class="moduler">
|
|
<!-- <div class="moduler-title">计划名称</div> -->
|
|
<!-- <div class="moduler-title">计划名称</div> -->
|
|
<div class="opt">
|
|
<div class="opt">
|
|
@@ -841,12 +974,12 @@
|
|
<a-form-item label="追踪方式" :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
<a-form-item label="追踪方式" :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
:wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }">
|
|
:wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }">
|
|
<a-radio-group buttonStyle="solid" v-model="convertType" @change="convertChange">
|
|
<a-radio-group buttonStyle="solid" v-model="convertType" @change="convertChange">
|
|
- <a-radio-button value="1" v-show="strategyInfo.marketingGoal == 4||strategyInfo.marketingGoal == 5">JS布玛</a-radio-button>
|
|
|
|
- <a-radio-button value="2" v-show="strategyInfo.marketingGoal == 4||strategyInfo.marketingGoal == 5">Xpath</a-radio-button>
|
|
|
|
|
|
+ <a-radio-button value="1" v-show="getFormData('marketingGoal') == 4||getFormData('marketingGoal') == 5">JS布玛</a-radio-button>
|
|
|
|
+ <a-radio-button value="2" v-show="getFormData('marketingGoal') == 4||getFormData('marketingGoal') == 5">Xpath</a-radio-button>
|
|
<a-radio-button value="3"
|
|
<a-radio-button value="3"
|
|
- v-show="strategyInfo.marketingGoal == 2">应用-SDK
|
|
|
|
|
|
+ v-show="getFormData('marketingGoal') == 2">应用-SDK
|
|
</a-radio-button>
|
|
</a-radio-button>
|
|
- <a-radio-button value="7" v-show="strategyInfo.marketingGoal == 2">应用-API</a-radio-button>
|
|
|
|
|
|
+ <a-radio-button value="7" v-show="getFormData('marketingGoal') == 2">应用-API</a-radio-button>
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
<a-form-item label="选择转化" :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
<a-form-item label="选择转化" :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
|
|
@@ -897,14 +1030,14 @@ import linkMultiSelect from './components/linkMultiSelect'
|
|
import singleLayersSelecte from './components/singleLayerSelecte'
|
|
import singleLayersSelecte from './components/singleLayerSelecte'
|
|
import scheduleTime from '@/components/formComponents/toutiaoTime'
|
|
import scheduleTime from '@/components/formComponents/toutiaoTime'
|
|
|
|
|
|
|
|
+// import { filter } from 'vue/types/umd';
|
|
var str = ""
|
|
var str = ""
|
|
-for (let i = 0; i < 7*48; i++) {
|
|
|
|
|
|
+for (let i = 0; i < 7*24; i++) {
|
|
str+='0'
|
|
str+='0'
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
let ageArr=[
|
|
let ageArr=[
|
|
{
|
|
{
|
|
value:'',
|
|
value:'',
|
|
@@ -1019,6 +1152,8 @@ export default {
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ whiteList:{},
|
|
|
|
+ actionBarTextList:[],
|
|
treeData:[],
|
|
treeData:[],
|
|
accountId:undefined,
|
|
accountId:undefined,
|
|
strategyName: '',
|
|
strategyName: '',
|
|
@@ -1149,16 +1284,35 @@ export default {
|
|
watch: {
|
|
watch: {
|
|
accountId(newValue,oldValue){
|
|
accountId(newValue,oldValue){
|
|
if(newValue){
|
|
if(newValue){
|
|
- this.treeData.forEach(item=>{
|
|
|
|
- if(item.children){
|
|
|
|
- item.children.forEach(ele=>{
|
|
|
|
- if(ele.value==newValue){
|
|
|
|
- this.$parent.accountInfo=ele
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
|
|
+ // this.treeData.forEach(item=>{
|
|
|
|
+ // if(item.children){
|
|
|
|
+ // item.children.forEach(ele=>{
|
|
|
|
+ // if(ele.value==newValue){
|
|
|
|
+ // this.$parent.accountInfo=ele
|
|
|
|
+ // }
|
|
|
|
+ // })
|
|
|
|
+ // }
|
|
|
|
+ // })
|
|
|
|
+ this.getAppList()
|
|
|
|
+ getAction('/kuaishou/batch/getIsActivate', {
|
|
|
|
+ accountId: this.accountId
|
|
|
|
+ }).then(res => {
|
|
|
|
+ if (res.success) {
|
|
|
|
+ this.groupTypeData = res.result
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ getAction('/kuaishou/batch/getCreativeCategory', {
|
|
|
|
+ accountId:this.accountId,
|
|
|
|
+ }).then((res) => {
|
|
|
|
+ if (res.success) {
|
|
|
|
+ console.log(res)
|
|
|
|
+ this.createOptions = res.result
|
|
}
|
|
}
|
|
})
|
|
})
|
|
- console.log(this.$parent.accountInfo)
|
|
|
|
|
|
+ this.getWhiteList()
|
|
|
|
+ }else{
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -1206,16 +1360,16 @@ export default {
|
|
|
|
|
|
//获取表单的某一个属性值
|
|
//获取表单的某一个属性值
|
|
getFormData(className) {
|
|
getFormData(className) {
|
|
- return this.form.getFieldValue(className)
|
|
|
|
|
|
+ return this.form.getFieldValue(className)
|
|
},
|
|
},
|
|
dateChange(date, dateString) {
|
|
dateChange(date, dateString) {
|
|
// console.log(date,dateString)
|
|
// console.log(date,dateString)
|
|
- this.form.getFieldDecorator('startTime')
|
|
|
|
- this.form.getFieldDecorator('endTime')
|
|
|
|
- this.form.setFieldsValue({
|
|
|
|
- startTime: date[0].format('YYYY-MM-DD HH:mm'),
|
|
|
|
- endTime: date[1].format('YYYY-MM-DD HH:mm'),
|
|
|
|
- })
|
|
|
|
|
|
+ this.form.getFieldDecorator('startTime')
|
|
|
|
+ this.form.getFieldDecorator('endTime')
|
|
|
|
+ this.form.setFieldsValue({
|
|
|
|
+ startTime: date[0].format('YYYY-MM-DD HH:mm'),
|
|
|
|
+ endTime: date[1].format('YYYY-MM-DD HH:mm'),
|
|
|
|
+ })
|
|
},
|
|
},
|
|
|
|
|
|
//推广目的改变
|
|
//推广目的改变
|
|
@@ -1223,7 +1377,7 @@ export default {
|
|
console.log(e.target)
|
|
console.log(e.target)
|
|
let strategyNamepart=this.marketingGoalHandle(e.target.value);
|
|
let strategyNamepart=this.marketingGoalHandle(e.target.value);
|
|
this.strategyName ='[策略]_'+ strategyNamepart+'_' + moment().format('MM_DD_hh:mm') ;
|
|
this.strategyName ='[策略]_'+ strategyNamepart+'_' + moment().format('MM_DD_hh:mm') ;
|
|
-
|
|
|
|
|
|
+ this.actionBarTextList()
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
@@ -1233,29 +1387,7 @@ export default {
|
|
this.$bus.$emit('remove', '/autoLaunch/newStrategy')
|
|
this.$bus.$emit('remove', '/autoLaunch/newStrategy')
|
|
},
|
|
},
|
|
|
|
|
|
- // 保存并新建创意
|
|
|
|
- goNext() {
|
|
|
|
- this.$nextTick(()=>{
|
|
|
|
- if (this.strategyName) {
|
|
|
|
- this.form.validateFields((err, values) => {
|
|
|
|
- if (!err) {
|
|
|
|
-
|
|
|
|
- console.log('Received values of form: ', values)
|
|
|
|
- // console.log(this.strategyNames)
|
|
|
|
- values.accountId = this.accountId
|
|
|
|
- values.strategyName=this.strategyName
|
|
|
|
- this.$parent.strategyInfo=values;
|
|
|
|
- this.$parent.currentTabComponent='setDirectional'
|
|
|
|
- }else{
|
|
|
|
- this.$message.error('请正确填写必填项目')
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- }else{
|
|
|
|
- this.$message.error('请输入策略名称')
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
- },
|
|
|
|
|
|
+
|
|
//请求项目和账户内容
|
|
//请求项目和账户内容
|
|
accountHttp(){
|
|
accountHttp(){
|
|
this.treeData=[];
|
|
this.treeData=[];
|
|
@@ -1322,7 +1454,11 @@ export default {
|
|
creativeTagValid(rule, value, callback) {
|
|
creativeTagValid(rule, value, callback) {
|
|
if (value.length > 10) {
|
|
if (value.length > 10) {
|
|
callback('创意标签最多填写10个,请删减')
|
|
callback('创意标签最多填写10个,请删减')
|
|
- } else {
|
|
|
|
|
|
+ } else if(value.length == 0){
|
|
|
|
+ if(this.whiteList.creative_category_switch==1){
|
|
|
|
+ callback('创意标签必须填写')
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
callback()
|
|
callback()
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -1356,7 +1492,7 @@ export default {
|
|
// 获取定向包
|
|
// 获取定向包
|
|
getUserDirectional(){
|
|
getUserDirectional(){
|
|
getAction('/kuaishou/batch/getDirectionalTemplate',{
|
|
getAction('/kuaishou/batch/getDirectionalTemplate',{
|
|
- accountId:this.accountInfo.value
|
|
|
|
|
|
+ accountId:this.accountId
|
|
}).then(res=>{
|
|
}).then(res=>{
|
|
console.log(res);
|
|
console.log(res);
|
|
this.directionalList=res.result
|
|
this.directionalList=res.result
|
|
@@ -1450,17 +1586,17 @@ export default {
|
|
this.loading=true;
|
|
this.loading=true;
|
|
|
|
|
|
getAction('/kuaishou/batch/getPopulationList',{
|
|
getAction('/kuaishou/batch/getPopulationList',{
|
|
- accountId:this.accountInfo.value
|
|
|
|
|
|
+ accountId:this.accountId
|
|
}).then((res)=>{
|
|
}).then((res)=>{
|
|
// console.log(res)
|
|
// console.log(res)
|
|
this.loading=false;
|
|
this.loading=false;
|
|
if(res.success){
|
|
if(res.success){
|
|
res.result.forEach((ele)=>{
|
|
res.result.forEach((ele)=>{
|
|
- ele.key=this.accountInfo.value+'_'+ele.orientationId
|
|
|
|
|
|
+ ele.key=this.accountId+'_'+ele.orientationId
|
|
ele.id= ele.orientationId
|
|
ele.id= ele.orientationId
|
|
ele.name=ele.orientationName+"("+ele.orientationId+")"
|
|
ele.name=ele.orientationName+"("+ele.orientationId+")"
|
|
ele.accountName=this.accountInfo.title
|
|
ele.accountName=this.accountInfo.title
|
|
- ele.accountId=this.accountInfo.value
|
|
|
|
|
|
+ ele.accountId=this.accountId
|
|
})
|
|
})
|
|
// this.retargetData=res.data;
|
|
// this.retargetData=res.data;
|
|
this.retargetDataAll=[...this.retargetDataAll,...res.result];
|
|
this.retargetDataAll=[...this.retargetDataAll,...res.result];
|
|
@@ -1556,15 +1692,15 @@ export default {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
validateURL(rule, value, callback) {
|
|
validateURL(rule, value, callback) {
|
|
- // console.log(rule, value, callback);
|
|
|
|
|
|
+ // console.log(rule, value, callback);
|
|
|
|
|
|
- if (this.IsURL(value)) {
|
|
|
|
- callback()
|
|
|
|
- } else if (value && !this.IsURL(value)) {
|
|
|
|
- callback('链接地址无法访问,请正确输入')
|
|
|
|
- } else {
|
|
|
|
- callback('链接必须填写')
|
|
|
|
- }
|
|
|
|
|
|
+ if (this.IsURL(value)) {
|
|
|
|
+ callback()
|
|
|
|
+ } else if (value && !this.IsURL(value)) {
|
|
|
|
+ callback('链接地址无法访问,请正确输入')
|
|
|
|
+ } else {
|
|
|
|
+ callback('链接必须填写')
|
|
|
|
+ }
|
|
},
|
|
},
|
|
validateName(rule, value, callback){
|
|
validateName(rule, value, callback){
|
|
// console.log(rule, value, callback);
|
|
// console.log(rule, value, callback);
|
|
@@ -1586,21 +1722,17 @@ export default {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- goBack() {
|
|
|
|
- // this.$router.replace('/autoLaunch/autoLaunchList')
|
|
|
|
- // this.$bus.$emit('remove', '/autoLaunch/newStrategy')
|
|
|
|
- this.$parent.currentTabComponent='createStrategy'
|
|
|
|
- },
|
|
|
|
|
|
+
|
|
|
|
|
|
// 保存并新建创意
|
|
// 保存并新建创意
|
|
goNext() {
|
|
goNext() {
|
|
|
|
|
|
this.$nextTick(()=>{
|
|
this.$nextTick(()=>{
|
|
|
|
|
|
- if((!this.getFormData('creativeCategory')&&this.getFormData('creativeTag')) || (this.getFormData('creativeCategory')&&!this.getFormData('creativeTag')) ){
|
|
|
|
- this.$message.error('创意分类和标签必须同时填写或者同时不填写')
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
|
|
+ // if((!this.getFormData('creativeCategory')&&this.getFormData('creativeTag')) || (this.getFormData('creativeCategory')&&!this.getFormData('creativeTag')) ){
|
|
|
|
+ // this.$message.error('创意分类和标签必须同时填写或者同时不填写')
|
|
|
|
+ // return
|
|
|
|
+ // }
|
|
|
|
|
|
|
|
|
|
this.form.validateFields((err, values) => {
|
|
this.form.validateFields((err, values) => {
|
|
@@ -1682,25 +1814,24 @@ export default {
|
|
}else{
|
|
}else{
|
|
values.creativeCategory=null
|
|
values.creativeCategory=null
|
|
}
|
|
}
|
|
- // this.$parent.currentTabComponent='previewStrategy'
|
|
|
|
- // this.$parent.strategyInfo={
|
|
|
|
- // ...this.$parent.strategyInfo,
|
|
|
|
- // ...values,
|
|
|
|
- // }
|
|
|
|
|
|
+
|
|
|
|
+ values.accountId = this.accountId
|
|
|
|
+ values.strategyName=this.strategyName
|
|
let params={
|
|
let params={
|
|
...values,
|
|
...values,
|
|
- ...this.strategyInfo
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
+ console.log(params)
|
|
postAction('/kuaishouStrategy/add',params).then(res=>{
|
|
postAction('/kuaishouStrategy/add',params).then(res=>{
|
|
console.log(res)
|
|
console.log(res)
|
|
this.goNextloading=false
|
|
this.goNextloading=false
|
|
if(res.success){
|
|
if(res.success){
|
|
- this.$parent.strategyInfo={}
|
|
|
|
|
|
+
|
|
this.$router.replace('/autoLaunch/autoLaunchList')
|
|
this.$router.replace('/autoLaunch/autoLaunchList')
|
|
this.$bus.$emit('remove', '/autoLaunch/newStrategy')
|
|
this.$bus.$emit('remove', '/autoLaunch/newStrategy')
|
|
}else{
|
|
}else{
|
|
this.$messgae.error(res.message)
|
|
this.$messgae.error(res.message)
|
|
- this.$parent.strategyInfo={}
|
|
|
|
|
|
+
|
|
this.$router.replace('/autoLaunch/autoLaunchList')
|
|
this.$router.replace('/autoLaunch/autoLaunchList')
|
|
this.$bus.$emit('remove', '/autoLaunch/newStrategy')
|
|
this.$bus.$emit('remove', '/autoLaunch/newStrategy')
|
|
}
|
|
}
|
|
@@ -1719,7 +1850,7 @@ export default {
|
|
// 获取applist
|
|
// 获取applist
|
|
getAppList() {
|
|
getAppList() {
|
|
let params = {}
|
|
let params = {}
|
|
- params.accountId = this.accountInfo.value
|
|
|
|
|
|
+ params.accountId = this.accountId
|
|
getAction('/kuaishou/batch/getAppList', params).then(res => {
|
|
getAction('/kuaishou/batch/getAppList', params).then(res => {
|
|
if (res.success) {
|
|
if (res.success) {
|
|
this.appListAll = res.result.map((item, index) => {
|
|
this.appListAll = res.result.map((item, index) => {
|
|
@@ -1747,7 +1878,7 @@ export default {
|
|
},
|
|
},
|
|
getConvertList() {
|
|
getConvertList() {
|
|
var params = {}
|
|
var params = {}
|
|
- params.accountId = this.accountInfo.value
|
|
|
|
|
|
+ params.accountId = this.accountId
|
|
params.type = this.convertType
|
|
params.type = this.convertType
|
|
getAction('/kuaishou/batch/getConvertList', params).then(res => {
|
|
getAction('/kuaishou/batch/getConvertList', params).then(res => {
|
|
console.log(res)
|
|
console.log(res)
|
|
@@ -1766,7 +1897,10 @@ export default {
|
|
this.form.setFieldsValue({
|
|
this.form.setFieldsValue({
|
|
appIds:[],
|
|
appIds:[],
|
|
})
|
|
})
|
|
- this.appIdChange()
|
|
|
|
|
|
+ if(this.getFormData('marketingGoal')==2 || this.getFormData('marketingGoal')==7){
|
|
|
|
+ this.appIdChange(this.getFormData('appIds'))
|
|
|
|
+ }
|
|
|
|
+
|
|
if(this.sysType==1){
|
|
if(this.sysType==1){
|
|
this.appList=this.appListAll.filter(item=>{
|
|
this.appList=this.appListAll.filter(item=>{
|
|
return (item.platform==1 || item.platform==2)
|
|
return (item.platform==1 || item.platform==2)
|
|
@@ -1776,6 +1910,7 @@ export default {
|
|
return (item.platform==3||item.platform==4)
|
|
return (item.platform==3||item.platform==4)
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
+
|
|
},
|
|
},
|
|
getPlatForm(appId) {
|
|
getPlatForm(appId) {
|
|
if (appId) {
|
|
if (appId) {
|
|
@@ -1787,7 +1922,7 @@ export default {
|
|
},
|
|
},
|
|
showConvert() {
|
|
showConvert() {
|
|
this.convertChange()
|
|
this.convertChange()
|
|
- if (this.strategyInfo.marketingGoal == 2) {
|
|
|
|
|
|
+ if (this.getFormData('marketingGoal') == 2) {
|
|
if (this.getData('appIds')) {
|
|
if (this.getData('appIds')) {
|
|
this.convert = true;
|
|
this.convert = true;
|
|
|
|
|
|
@@ -1811,7 +1946,7 @@ export default {
|
|
if(appId.length){
|
|
if(appId.length){
|
|
appId.forEach((item,index)=>{
|
|
appId.forEach((item,index)=>{
|
|
getAction('/kuaishou/batch/getPageList', {
|
|
getAction('/kuaishou/batch/getPageList', {
|
|
- accountId: this.accountInfo.value,
|
|
|
|
|
|
+ accountId: this.accountId,
|
|
appId: item,
|
|
appId: item,
|
|
viewComp: 7,
|
|
viewComp: 7,
|
|
}).then((res) => {
|
|
}).then((res) => {
|
|
@@ -1824,6 +1959,33 @@ export default {
|
|
}
|
|
}
|
|
|
|
|
|
},
|
|
},
|
|
|
|
+
|
|
|
|
+ // 获取行动号召按钮
|
|
|
|
+ getActionBarText(){
|
|
|
|
+ this.actionBarTextList=[]
|
|
|
|
+ getAction('/kuaishou/batch/getActionBarTextByType', {
|
|
|
|
+ type:this.getFormData('marketingGoal')
|
|
|
|
+ }).then((res) => {
|
|
|
|
+ if (res.success) {
|
|
|
|
+ this.actionBarTextList = res.result
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 获取创意分类创意标签白名单
|
|
|
|
+ getWhiteList(){
|
|
|
|
+ this.whiteList={}
|
|
|
|
+ getAction('/kuaishou/batch/getWhiteList', {
|
|
|
|
+ accountId: this.accountId,
|
|
|
|
+ }).then((res) => {
|
|
|
|
+ if (res.success) {
|
|
|
|
+ // console.log(res)
|
|
|
|
+ if (res.result) {
|
|
|
|
+ this.whiteList=res.result
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
},
|
|
},
|
|
|
|
|
|
mounted() {
|
|
mounted() {
|
|
@@ -1833,39 +1995,7 @@ export default {
|
|
|
|
|
|
|
|
|
|
this.strategyName ='[预设]_'+ strategyNamepart+'_' + moment().format('MM_DD_hh:mm') ;
|
|
this.strategyName ='[预设]_'+ strategyNamepart+'_' + moment().format('MM_DD_hh:mm') ;
|
|
-
|
|
|
|
-
|
|
|
|
- this.$nextTick(()=>{
|
|
|
|
- if(this.$parent.strategyInfo.accountId){
|
|
|
|
- this.form.setFieldsValue(
|
|
|
|
- {
|
|
|
|
- ...this.$parent.strategyInfo
|
|
|
|
- }
|
|
|
|
- )
|
|
|
|
- this.accountId=this.$parent.strategyInfo.accountId
|
|
|
|
- this.strategyName=this.$parent.strategyInfo.strategyName
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- this.getAppList()
|
|
|
|
- getAction('/kuaishou/batch/getIsActivate', {
|
|
|
|
- accountId: this.accountInfo.value
|
|
|
|
- }).then(res => {
|
|
|
|
- if (res.success) {
|
|
|
|
- this.groupTypeData = res.result
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
- getAction('/kuaishou/batch/getCreativeCategory', {
|
|
|
|
- accountId:this.accountInfo.value,
|
|
|
|
- }).then((res) => {
|
|
|
|
- if (res.success) {
|
|
|
|
- console.log(res)
|
|
|
|
- this.createOptions = res.result
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
|
|
+ this.getActionBarText()
|
|
},
|
|
},
|
|
|
|
|
|
filters: {
|
|
filters: {
|
|
@@ -1996,6 +2126,17 @@ export default {
|
|
margin-bottom: 20px;
|
|
margin-bottom: 20px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ .inventoryTypes{
|
|
|
|
+ .ant-checkbox-wrapper,
|
|
|
|
+ .ant-checkbox-group-item {
|
|
|
|
+ display: block;
|
|
|
|
+ padding: 5px 15px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .ant-checkbox-wrapper:first-child {
|
|
|
|
+ padding: 0 15px 5px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
@@ -2015,6 +2156,45 @@ export default {
|
|
padding: 32px 24px 48px 32px;
|
|
padding: 32px 24px 48px 32px;
|
|
border-radius: 4px;
|
|
border-radius: 4px;
|
|
box-shadow: 0px 1px 6px 0px rgba(0, 0, 0, 0.05);
|
|
box-shadow: 0px 1px 6px 0px rgba(0, 0, 0, 0.05);
|
|
|
|
+ .ad-range2{
|
|
|
|
+ width: 680px;
|
|
|
|
+ padding: 5px 32px;
|
|
|
|
+ .ad-range2-title{
|
|
|
|
+ background: #f9f9f9;
|
|
|
|
+ // line-height: 32px;
|
|
|
|
+ // height: 32px;
|
|
|
|
+ padding: 15px 15px;
|
|
|
|
+ border: 1px solid #eaeaea;
|
|
|
|
+ border-bottom: 0;
|
|
|
|
+ }
|
|
|
|
+ .quanxuanDirectional{
|
|
|
|
+ // padding: 0 8px;
|
|
|
|
+ position: absolute;
|
|
|
|
+ right: 10px;
|
|
|
|
+ top: 15px;
|
|
|
|
+ color: #1890ff;
|
|
|
|
+ }
|
|
|
|
+ .title-list {
|
|
|
|
+ // width: calc(100% + 48px);
|
|
|
|
+ width: 100%;
|
|
|
|
+ margin: 0;
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
+ padding: 0;
|
|
|
|
+ background: #fff;
|
|
|
|
+ height: 363px;
|
|
|
|
+ border: 1px solid #eaeaea;
|
|
|
|
+ overflow: scroll;
|
|
|
|
+ overflow-x: hidden;
|
|
|
|
+ // margin-top: 10px;
|
|
|
|
+ }
|
|
|
|
+ .title-list .title-item{
|
|
|
|
+ padding: 10px 30px;
|
|
|
|
+ width: 100%;
|
|
|
|
+ // height: 32px;
|
|
|
|
+ // line-height: 32px;
|
|
|
|
+ // border-bottom: 1px solid #eaeaea;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
.moduler-title {
|
|
.moduler-title {
|
|
display: flex;
|
|
display: flex;
|
|
align-items: center;
|
|
align-items: center;
|
|
@@ -2070,6 +2250,34 @@ export default {
|
|
font-size: 12px;
|
|
font-size: 12px;
|
|
color: tomato;
|
|
color: tomato;
|
|
}
|
|
}
|
|
|
|
+ .inventory-tags-lists-header {
|
|
|
|
+ background-color: #F8F9FA;
|
|
|
|
+ border: 1px solid #E4E9ED;
|
|
|
|
+ height: 36px;
|
|
|
|
+ line-height: 33px;
|
|
|
|
+ border-radius: 4px 4px 0 0;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ display: flex;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .inventory-tags-lists-container {
|
|
|
|
+ border: 1px solid #E4E9ED;
|
|
|
|
+ margin-top: -1px;
|
|
|
|
+ height: 100%;
|
|
|
|
+ padding: 4px 0px;
|
|
|
|
+ border-radius: 0 0 4px 4px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .inventory-tags-lists-item {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 37px;
|
|
|
|
+ line-height: 37px;
|
|
|
|
+ padding-left: 12px;
|
|
|
|
+ padding-right: 12px;
|
|
|
|
+ display: flex;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: #333;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.opt {
|
|
.opt {
|