|
@@ -34,7 +34,7 @@
|
|
<div class="create-unit">
|
|
<div class="create-unit">
|
|
<a-card :body-style="{ padding: '24px 32px' }" :bordered="false">
|
|
<a-card :body-style="{ padding: '24px 32px' }" :bordered="false">
|
|
<a-form-model ref="unitCreate" :model="form" :label-col="labelCol" :wrapper-col="wrapperCol">
|
|
<a-form-model ref="unitCreate" :model="form" :label-col="labelCol" :wrapper-col="wrapperCol">
|
|
- <a-tabs type="card" :label-col="labelCol" :wrapper-col="wrapperCol">
|
|
|
|
|
|
+ <a-tabs type="card" :label-col="labelCol" :wrapper-col="wrapperCol" @change="changeAccount">
|
|
<a-tab-pane
|
|
<a-tab-pane
|
|
:key="item.account.accountId"
|
|
:key="item.account.accountId"
|
|
:tab="'账户:' + item.account.accountName"
|
|
:tab="'账户:' + item.account.accountName"
|
|
@@ -49,7 +49,7 @@
|
|
<a-form-model-item label="计划下组数量" prop="unitCount">
|
|
<a-form-model-item label="计划下组数量" prop="unitCount">
|
|
<a-input-number v-model="item.account.unitCount" :min="1" :max="10" @change="changeCreateTotal(item)" />
|
|
<a-input-number v-model="item.account.unitCount" :min="1" :max="10" @change="changeCreateTotal(item)" />
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
- <!-- <a-form-model-item label="计划名称" prop="campaign"> -->
|
|
|
|
|
|
+
|
|
<a-tabs type="card" v-if="item.account.campaignAgreement == 1">
|
|
<a-tabs type="card" v-if="item.account.campaignAgreement == 1">
|
|
<a-tab-pane
|
|
<a-tab-pane
|
|
:key="campaign.campaignId"
|
|
:key="campaign.campaignId"
|
|
@@ -97,32 +97,76 @@
|
|
style="width: 60%; margin-right: 8px"
|
|
style="width: 60%; margin-right: 8px"
|
|
/>
|
|
/>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
|
|
+ <a-form-model-item label="目标应用" ref="appId" prop="appId" v-if="item.account.campaignType == 2">
|
|
|
|
+ <a-select
|
|
|
|
+ v-model="unitName.appId"
|
|
|
|
+ showSearch
|
|
|
|
+ allowClear
|
|
|
|
+ placeholder="选择应用目标"
|
|
|
|
+ optionFilterProp="children"
|
|
|
|
+ style="width: 500px"
|
|
|
|
+ @focus="handleFocus"
|
|
|
|
+ @blur="handleBlur"
|
|
|
|
+ @change="handleChange"
|
|
|
|
+ :filterOption="filterOption"
|
|
|
|
+ >
|
|
|
|
+ <a-select-option v-for="appModel in appList" :key="appModel.appId" :value="appModel.appId">
|
|
|
|
+ {{ appModel.appName }}   
|
|
|
|
+ {{ appModel.appVersion }}   {{ appModel.platform | platform }}
|
|
|
|
+ </a-select-option>
|
|
|
|
+ </a-select>
|
|
|
|
+ </a-form-model-item>
|
|
</a-tab-pane>
|
|
</a-tab-pane>
|
|
</a-tabs>
|
|
</a-tabs>
|
|
<div v-else>
|
|
<div v-else>
|
|
<a-form-model-item
|
|
<a-form-model-item
|
|
label="组名称"
|
|
label="组名称"
|
|
- :prop="'accountArr.' + index + '.account.campaignList.' + campaignIndex + '.unitIdentical.unitName'"
|
|
|
|
|
|
+ :prop="
|
|
|
|
+ 'accountArr.' +
|
|
|
|
+ index +
|
|
|
|
+ '.account.campaignList.' +
|
|
|
|
+ campaignIndex +
|
|
|
|
+ '.unitIdentical.unitName.' +
|
|
|
|
+ unitIndex +
|
|
|
|
+ '.name'
|
|
|
|
+ "
|
|
:rules="{
|
|
:rules="{
|
|
required: true,
|
|
required: true,
|
|
message: '组名称必填',
|
|
message: '组名称必填',
|
|
trigger: 'blur',
|
|
trigger: 'blur',
|
|
}"
|
|
}"
|
|
|
|
+ v-for="(unitCount, unitIndex) in campaign.unitIdentical.unitName"
|
|
|
|
+ :key="unitIndex"
|
|
|
|
+ :label="unitIndex == 0 ? '组名称' : ''"
|
|
|
|
+ v-bind="unitIndex !== 0 ? formItemLayout : {}"
|
|
>
|
|
>
|
|
<a-input
|
|
<a-input
|
|
- v-model="campaign.unitIdentical.unitName"
|
|
|
|
|
|
+ v-model="unitCount.name"
|
|
placeholder="请输入组名称"
|
|
placeholder="请输入组名称"
|
|
style="width: 60%; margin-right: 8px"
|
|
style="width: 60%; margin-right: 8px"
|
|
/>
|
|
/>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
|
|
+ <a-form-model-item label="目标应用" ref="appId" prop="appId" v-if="item.account.campaignType == 2">
|
|
|
|
+ <a-select
|
|
|
|
+ v-model="campaign.unitIdentical.appId"
|
|
|
|
+ showSearch
|
|
|
|
+ allowClear
|
|
|
|
+ placeholder="选择应用目标"
|
|
|
|
+ optionFilterProp="children"
|
|
|
|
+ style="width: 500px"
|
|
|
|
+ @focus="handleFocus"
|
|
|
|
+ @blur="handleBlur"
|
|
|
|
+ @change="handleChange"
|
|
|
|
+ :filterOption="filterOption"
|
|
|
|
+ >
|
|
|
|
+ <a-select-option v-for="appModel in appList" :key="appModel.appId" :value="appModel.appId">
|
|
|
|
+ {{ appModel.appName }}    {{ appModel.appVersion }}   {{
|
|
|
|
+ appModel.platform | platform
|
|
|
|
+ }}
|
|
|
|
+ </a-select-option>
|
|
|
|
+ </a-select>
|
|
|
|
+ </a-form-model-item>
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
- <!-- <a-form-model-item label="渠道包是否相同">
|
|
|
|
- <a-radio-group buttonStyle="solid" v-model="campaign.channel">
|
|
|
|
- <a-radio-button value="1">是</a-radio-button>
|
|
|
|
- <a-radio-button value="2">否</a-radio-button>
|
|
|
|
- </a-radio-group>
|
|
|
|
- </a-form-model-item> -->
|
|
|
|
<a-form-model-item label="投放范围">
|
|
<a-form-model-item label="投放范围">
|
|
<a-radio-group buttonStyle="solid" v-model="campaign.unitIdentical.allianceAccount">
|
|
<a-radio-group buttonStyle="solid" v-model="campaign.unitIdentical.allianceAccount">
|
|
<a-radio-button value="1">默认</a-radio-button>
|
|
<a-radio-button value="1">默认</a-radio-button>
|
|
@@ -146,15 +190,154 @@
|
|
}"
|
|
}"
|
|
><a-input v-model="unitName.value" placeholder="请输入组名称" style="width: 60%; margin-right: 8px" />
|
|
><a-input v-model="unitName.value" placeholder="请输入组名称" style="width: 60%; margin-right: 8px" />
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
|
|
+
|
|
|
|
+ <a-form-model-item label="目标应用" ref="appId" prop="appId" v-if="item.account.campaignType == 2">
|
|
|
|
+ <a-select
|
|
|
|
+ v-model="item.account.campaignOne.appId"
|
|
|
|
+ showSearch
|
|
|
|
+ allowClear
|
|
|
|
+ placeholder="选择应用目标"
|
|
|
|
+ optionFilterProp="children"
|
|
|
|
+ style="width: 500px"
|
|
|
|
+ @focus="handleFocus"
|
|
|
|
+ @blur="handleBlur"
|
|
|
|
+ @change="handleChange"
|
|
|
|
+ :filterOption="filterOption"
|
|
|
|
+ >
|
|
|
|
+ <a-select-option v-for="appModel in appList" :key="appModel.appId" :value="appModel.appId">
|
|
|
|
+ {{ appModel.appName }}    {{ appModel.appVersion }}   {{
|
|
|
|
+ appModel.platform | platform
|
|
|
|
+ }}
|
|
|
|
+ </a-select-option>
|
|
|
|
+ </a-select>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item label="转化类型" ref="urlType" prop="urlType" v-if="item.account.campaignType == 3">
|
|
|
|
+ <a-radio-group buttonStyle="solid" v-model="item.account.campaignOne.urlType">
|
|
|
|
+ <a-radio-button value="1">淘宝商品</a-radio-button>
|
|
|
|
+ <a-radio-button value="2">淘客商品</a-radio-button>
|
|
|
|
+ </a-radio-group>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item
|
|
|
|
+ :label="item.account.campaignType == 3 ? ' ' : '链接'"
|
|
|
|
+ v-if="item.account.campaignType != 2"
|
|
|
|
+ :rules="{
|
|
|
|
+ required: true,
|
|
|
|
+ message: '链接不能为空',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ }"
|
|
|
|
+ >
|
|
|
|
+ <a-input placeholder="请填写链接" v-model="item.account.campaignOne.url" />
|
|
|
|
+ </a-form-model-item>
|
|
<a-form-model-item label="投放范围" v-if="item.account.allianceAccount">
|
|
<a-form-model-item label="投放范围" v-if="item.account.allianceAccount">
|
|
<a-radio-group buttonStyle="solid" v-model="item.account.campaignOne.allianceAccount">
|
|
<a-radio-group buttonStyle="solid" v-model="item.account.campaignOne.allianceAccount">
|
|
<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-model-item>
|
|
</a-form-model-item>
|
|
- </div>
|
|
|
|
|
|
|
|
- <!-- </a-form-model-item> -->
|
|
|
|
|
|
+ <a-form-model-item label="单日预算">
|
|
|
|
+ <a-radio-group buttonStyle="solid" v-model="item.account.campaignOne.dayBudgetType">
|
|
|
|
+ <a-radio-button value="0">不限</a-radio-button>
|
|
|
|
+ <a-radio-button value="1">统一预算</a-radio-button>
|
|
|
|
+ </a-radio-group>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item
|
|
|
|
+ label=""
|
|
|
|
+ v-bind="item.account.campaignOne.dayBudgetType == '1' ? formItemLayout : {}"
|
|
|
|
+ v-if="item.account.campaignOne.dayBudgetType == '1'"
|
|
|
|
+ :prop="'accountArr.' + index + '.account.campaignOne.dayBudget'"
|
|
|
|
+ :rules="{
|
|
|
|
+ required: true,
|
|
|
|
+ message: '预算不能为空',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ }"
|
|
|
|
+ >
|
|
|
|
+ <a-input
|
|
|
|
+ placeholder="不小于100,不超过100000000,仅支持输入自然数"
|
|
|
|
+ style="width: 60%"
|
|
|
|
+ v-model="item.account.campaignOne.dayBudget"
|
|
|
|
+ />
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item label="投放方式">
|
|
|
|
+ <a-radio-group buttonStyle="solid" v-model="item.account.campaignOne.speed">
|
|
|
|
+ <a-radio-button value="1">正常投放</a-radio-button>
|
|
|
|
+ <a-radio-button value="2">平滑投放</a-radio-button>
|
|
|
|
+ </a-radio-group>
|
|
|
|
+ <br />
|
|
|
|
+ <span>
|
|
|
|
+ {{ item.account.campaignOne.speed == '2' ? '平滑匀速投放' : '尽快展示广告消耗预算' }}
|
|
|
|
+ </span>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+
|
|
|
|
+ <a-form-model-item label="排期">
|
|
|
|
+ <!-- v-decorator="['speed', { initialValue: '1' }]" -->
|
|
|
|
+ <a-radio-group
|
|
|
|
+ buttonStyle="solid"
|
|
|
|
+ v-model="item.account.campaignOne.time"
|
|
|
|
+ @change="setTime(item.account.campaignOne)"
|
|
|
|
+ >
|
|
|
|
+ <a-radio-button value="1">从今天开始长期投放</a-radio-button>
|
|
|
|
+ <a-radio-button value="2">设置开始和结束日期</a-radio-button>
|
|
|
|
+ </a-radio-group>
|
|
|
|
+ <br />
|
|
|
|
+ <a-range-picker
|
|
|
|
+ v-if="item.account.campaignOne.time == '2'"
|
|
|
|
+ v-model="item.account.campaignOne.timeRange"
|
|
|
|
+ format="YYYY-MM-DD"
|
|
|
|
+ style="margin-top: 15px"
|
|
|
|
+ :allowClear="false"
|
|
|
|
+ />
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item label="投放时段">
|
|
|
|
+ <a-radio-group
|
|
|
|
+ buttonStyle="solid"
|
|
|
|
+ v-model="item.account.campaignOne.scheduleTimeData"
|
|
|
|
+ @change="setTimeAll(item.account.campaignOne)"
|
|
|
|
+ >
|
|
|
|
+ <a-radio-button value="1">全天</a-radio-button>
|
|
|
|
+ <a-radio-button value="2">特定时间</a-radio-button>
|
|
|
|
+ </a-radio-group>
|
|
|
|
+ <br />
|
|
|
|
+ <selectCheckAll
|
|
|
|
+ style="width: 60%; margin-top: 15px"
|
|
|
|
+ v-if="item.account.campaignOne.scheduleTimeData == '2'"
|
|
|
|
+ :scheduleTime.sync="item.account.campaignOne.scheduleTime"
|
|
|
|
+ ref="selectCheck"
|
|
|
|
+ />
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item label="创意展现方式" prop="campaign">
|
|
|
|
+ <a-radio-group buttonStyle="solid" v-model="item.account.campaignOne.showMode">
|
|
|
|
+ <a-radio-button value="2">智能优选</a-radio-button>
|
|
|
|
+ <a-radio-button value="1">随机轮播</a-radio-button>
|
|
|
|
+ </a-radio-group>
|
|
|
|
+ <br />
|
|
|
|
+ <span>
|
|
|
|
+ {{
|
|
|
|
+ item.account.campaignOne.showMode == '1'
|
|
|
|
+ ? '广告组包含的广告创意将随机展现'
|
|
|
|
+ : '每一次展现的时候,系统会进行CTR预估,预估CTR高的会得到展现机会'
|
|
|
|
+ }}
|
|
|
|
+ </span>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item label="场景广告位">
|
|
|
|
+ <!-- v-decorator="['speed', { initialValue: '1' }]" -->
|
|
|
|
+ <!-- <a-radio-group buttonStyle="solid" v-decorator="['sceneId', { initialValue: '1' }]">
|
|
|
|
+ <a-radio-button value="1">优选广告位</a-radio-button>
|
|
|
|
+ <a-radio-button value="2">按场景选择广告位</a-radio-button>
|
|
|
|
+ </a-radio-group> -->
|
|
|
|
+ <checkBoxGroup
|
|
|
|
+ :options="[
|
|
|
|
+ { label: '优选广告位', value: 1 },
|
|
|
|
+ { label: '信息流广告', value: 7 },
|
|
|
|
+ { label: '上下滑大屏广告', value: 6 },
|
|
|
|
+ { label: '视频播放页广告', value: 3 },
|
|
|
|
+ ]"
|
|
|
|
+ v-model="item.account.campaignOne.sceneId"
|
|
|
|
+ @change="changeData"
|
|
|
|
+ />
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <!-- {{ item.account.campaignOne.sceneId }} -->
|
|
|
|
+ </div>
|
|
</a-tab-pane>
|
|
</a-tab-pane>
|
|
</a-tabs>
|
|
</a-tabs>
|
|
<a-form-model-item
|
|
<a-form-model-item
|
|
@@ -177,6 +360,7 @@
|
|
required: true,
|
|
required: true,
|
|
message: '组名称必填',
|
|
message: '组名称必填',
|
|
trigger: 'blur',
|
|
trigger: 'blur',
|
|
|
|
+
|
|
}"
|
|
}"
|
|
><a-input v-model="domain.value" placeholder="请输入组名称" style="width: 60%; margin-right: 8px" />
|
|
><a-input v-model="domain.value" placeholder="请输入组名称" style="width: 60%; margin-right: 8px" />
|
|
</a-form-model-item> -->
|
|
</a-form-model-item> -->
|
|
@@ -190,13 +374,18 @@ import { deleteAction, postAction, getAction } from '@/api/manage'
|
|
import moment from 'moment'
|
|
import moment from 'moment'
|
|
import { mapActions, mapGetters } from 'vuex'
|
|
import { mapActions, mapGetters } from 'vuex'
|
|
import Treeselect from '@/views/modules/Statistics/components/Treeselect.vue'
|
|
import Treeselect from '@/views/modules/Statistics/components/Treeselect.vue'
|
|
|
|
+import selectCheckAll from '../account/stepForm/stepModule/test'
|
|
|
|
+import checkBoxGroup from '@/components/formComponents/checkBoxGroup'
|
|
export default {
|
|
export default {
|
|
name: 'create-unit',
|
|
name: 'create-unit',
|
|
components: {
|
|
components: {
|
|
Treeselect,
|
|
Treeselect,
|
|
|
|
+ selectCheckAll,
|
|
|
|
+ checkBoxGroup,
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ appList: [],
|
|
labelCol: { span: 7 },
|
|
labelCol: { span: 7 },
|
|
wrapperCol: { span: 17 },
|
|
wrapperCol: { span: 17 },
|
|
formItemLayout: {
|
|
formItemLayout: {
|
|
@@ -224,11 +413,48 @@ export default {
|
|
campaignId: 1231231,
|
|
campaignId: 1231231,
|
|
campaignName: '测试',
|
|
campaignName: '测试',
|
|
check: '1',
|
|
check: '1',
|
|
- unit: [{ name: '', directional: '', allianceAccount: '1' }],
|
|
|
|
- unitIdentical: { unitName: '', directional: '', allianceAccount: '1' },
|
|
|
|
|
|
+ unit: [
|
|
|
|
+ {
|
|
|
|
+ name: '',
|
|
|
|
+ directional: '',
|
|
|
|
+ allianceAccount: '1',
|
|
|
|
+ appId: '',
|
|
|
|
+ urlType: '1',
|
|
|
|
+ url: '',
|
|
|
|
+ dayBudget: null,
|
|
|
|
+ dayBudgetType: '0',
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
|
|
+ unitIdentical: {
|
|
|
|
+ unitName: [{ name: '' }],
|
|
|
|
+ directional: '',
|
|
|
|
+ allianceAccount: '1',
|
|
|
|
+ appId: '',
|
|
|
|
+ urlType: '1',
|
|
|
|
+ url: '',
|
|
|
|
+ dayBudget: null,
|
|
|
|
+ dayBudgetType: '0',
|
|
|
|
+ },
|
|
},
|
|
},
|
|
],
|
|
],
|
|
- campaignOne: { unitNames: [{ value: '' }], directional: '', allianceAccount: '1' },
|
|
|
|
|
|
+ campaignOne: {
|
|
|
|
+ unitNames: [{ value: '' }],
|
|
|
|
+ directional: '',
|
|
|
|
+ allianceAccount: '1',
|
|
|
|
+ appId: '',
|
|
|
|
+ urlType: '1',
|
|
|
|
+ url: '',
|
|
|
|
+ dayBudget: null,
|
|
|
|
+ dayBudgetType: '0',
|
|
|
|
+ speed: '1',
|
|
|
|
+ time: '1',
|
|
|
|
+ timeRange: [],
|
|
|
|
+ scheduleTimeData: '1',
|
|
|
|
+ scheduleTime:
|
|
|
|
+ '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
|
|
|
|
+ showMode: '2',
|
|
|
|
+ sceneId: [1],
|
|
|
|
+ },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
],
|
|
@@ -292,12 +518,69 @@ export default {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ changeData(data) {
|
|
|
|
+ if (data.length > 1 && data.findIndex((item) => item == 1) == 0) {
|
|
|
|
+ data.splice(
|
|
|
|
+ data.findIndex((item) => item == 1),
|
|
|
|
+ 1
|
|
|
|
+ )
|
|
|
|
+ } else if (data.length > 1 && data.findIndex((item) => item == 1) == data.length - 1) {
|
|
|
|
+ data.splice(0, data.length - 1)
|
|
|
|
+ } else if (data.length == 0) {
|
|
|
|
+ data.push(1)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ setTime(item) {
|
|
|
|
+ console.log(item)
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
+ if (item.time == '2') {
|
|
|
|
+ item.timeRange = []
|
|
|
|
+ item.timeRange[0] = moment().startOf('day')
|
|
|
|
+ item.timeRange[1] = moment().add(1, 'months')
|
|
|
|
+ } else {
|
|
|
|
+ item.timeRange = []
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ setTimeAll(item) {
|
|
|
|
+ // console.log(moment('2019-12-27'))
|
|
|
|
+ if (item.scheduleTimeData == '2') {
|
|
|
|
+ } else {
|
|
|
|
+ item.scheduleTime =
|
|
|
|
+ '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ changeAccount(data) {
|
|
|
|
+ this.getAppList(data)
|
|
|
|
+ },
|
|
|
|
+ getAppList(accountId) {
|
|
|
|
+ this.appList = []
|
|
|
|
+ let params = {}
|
|
|
|
+ params.accountId = accountId
|
|
|
|
+ getAction('/kuaishou/batch/getAppList', params).then((res) => {
|
|
|
|
+ if (res.success) {
|
|
|
|
+ this.appList = res.result.map((item, index) => {
|
|
|
|
+ return {
|
|
|
|
+ ...item,
|
|
|
|
+ key: index,
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
submitForm(formName) {
|
|
submitForm(formName) {
|
|
this.$refs[formName].validate((valid) => {
|
|
this.$refs[formName].validate((valid) => {
|
|
if (valid) {
|
|
if (valid) {
|
|
alert('submit!')
|
|
alert('submit!')
|
|
console.log(this.tabList)
|
|
console.log(this.tabList)
|
|
|
|
+ console.log(this.form)
|
|
} else {
|
|
} else {
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ var isError = document.getElementsByClassName('has-error')
|
|
|
|
+ console.log(isError)
|
|
|
|
+ isError[0].querySelector('input').focus()
|
|
|
|
+ }, 1)
|
|
|
|
+
|
|
console.log('error submit!!')
|
|
console.log('error submit!!')
|
|
return false
|
|
return false
|
|
}
|
|
}
|
|
@@ -324,14 +607,19 @@ export default {
|
|
// if()
|
|
// if()
|
|
console.log(item)
|
|
console.log(item)
|
|
var arr = []
|
|
var arr = []
|
|
|
|
+ var arrUnitName = []
|
|
for (let i = 0; i < item.account.unitCount; i++) {
|
|
for (let i = 0; i < item.account.unitCount; i++) {
|
|
arr.push({ name: '', directional: '', allianceAccount: '1' })
|
|
arr.push({ name: '', directional: '', allianceAccount: '1' })
|
|
|
|
+ arrUnitName.push({ name: '' })
|
|
}
|
|
}
|
|
item.account.campaignOne.unitNames = JSON.parse(JSON.stringify(arr))
|
|
item.account.campaignOne.unitNames = JSON.parse(JSON.stringify(arr))
|
|
item.account.campaignList.forEach((element) => {
|
|
item.account.campaignList.forEach((element) => {
|
|
if (element.check == '1') {
|
|
if (element.check == '1') {
|
|
- element.unitIdentical = JSON.parse(JSON.stringify({ unitName: '', directional: '', allianceAccount: '1' }))
|
|
|
|
|
|
+ element.unitIdentical = JSON.parse(
|
|
|
|
+ JSON.stringify({ unitName: arrUnitName, directional: '', allianceAccount: '1' })
|
|
|
|
+ )
|
|
} else {
|
|
} else {
|
|
|
|
+ element.unit = []
|
|
element.unit = JSON.parse(JSON.stringify(arr))
|
|
element.unit = JSON.parse(JSON.stringify(arr))
|
|
}
|
|
}
|
|
})
|
|
})
|
|
@@ -348,15 +636,15 @@ export default {
|
|
nameTypeChange(item, accountData) {
|
|
nameTypeChange(item, accountData) {
|
|
console.log(item)
|
|
console.log(item)
|
|
if (item.unitName == '1') {
|
|
if (item.unitName == '1') {
|
|
- item.unit = [{ value: '' }]
|
|
|
|
|
|
+ // item.unit = [{ value: '' }]
|
|
} else {
|
|
} else {
|
|
- this.$nextTick(() => {
|
|
|
|
- var arr = []
|
|
|
|
- for (let i = 0; i < accountData.unitCount; i++) {
|
|
|
|
- arr.push({ value: '' })
|
|
|
|
- }
|
|
|
|
- item.unit = JSON.parse(JSON.stringify(arr))
|
|
|
|
- })
|
|
|
|
|
|
+ // this.$nextTick(() => {
|
|
|
|
+ // var arr = []
|
|
|
|
+ // for (let i = 0; i < accountData.unitCount; i++) {
|
|
|
|
+ // arr.push({ name: '', directional: '', allianceAccount: '1' })
|
|
|
|
+ // }
|
|
|
|
+ // item.unit = JSON.parse(JSON.stringify(arr))
|
|
|
|
+ // })
|
|
}
|
|
}
|
|
},
|
|
},
|
|
getChangeAll(name, indexBest, index, items) {
|
|
getChangeAll(name, indexBest, index, items) {
|
|
@@ -577,10 +865,32 @@ export default {
|
|
})
|
|
})
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
+ filters: {
|
|
|
|
+ getDate(value) {
|
|
|
|
+ let date = new Date(value)
|
|
|
|
+ let y = date.getFullYear()
|
|
|
|
+ let MM = date.getMonth() + 1
|
|
|
|
+ MM = MM < 10 ? '0' + MM : MM
|
|
|
|
+ let d = date.getDate()
|
|
|
|
+ d = d < 10 ? '0' + d : d
|
|
|
|
+ return y + '-' + MM + '-' + d
|
|
|
|
+ },
|
|
|
|
+ platform(str) {
|
|
|
|
+ var data = {
|
|
|
|
+ 1: 'Android应用下载',
|
|
|
|
+ 2: 'Android网页游戏',
|
|
|
|
+ 3: 'iOS应用下载',
|
|
|
|
+ 4: 'iOS网页游戏',
|
|
|
|
+ }
|
|
|
|
+ return data[str]
|
|
|
|
+ },
|
|
|
|
+ },
|
|
mounted: function () {
|
|
mounted: function () {
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
// this.changeCreateTotal()
|
|
// this.changeCreateTotal()
|
|
this.activeIndex = this.tabList.findIndex((item) => this.key == item.key)
|
|
this.activeIndex = this.tabList.findIndex((item) => this.key == item.key)
|
|
|
|
+
|
|
|
|
+ this.getAppList(this.form.accountArr[0].account.accountId)
|
|
})
|
|
})
|
|
},
|
|
},
|
|
}
|
|
}
|