|
@@ -447,17 +447,16 @@
|
|
|
v-decorator="[
|
|
|
'bid',
|
|
|
{
|
|
|
- rules: [{ required: true, message: '出价必填' }],
|
|
|
+ rules: [{ required: true, message: '出价必填' }, {validator: bidCheck}],
|
|
|
},
|
|
|
]"
|
|
|
- @change="showTip(index)"
|
|
|
:style="{ borderColor: item.showTipCheck ? 'red' : '#d9d9d9' }"
|
|
|
style="width: 100%"
|
|
|
>
|
|
|
</a-input-number>
|
|
|
- <span style="color: red" v-if="item.showTipCheck && item.ocpxActionType == 180"
|
|
|
+ <!-- <span style="color: red" v-if="item.showTipCheck && item.ocpxActionType == 180"
|
|
|
>不得低于0.2元,不得高于项目最高出价{{ maxBid }}元</span
|
|
|
- >
|
|
|
+ > -->
|
|
|
</a-form-item>
|
|
|
<a-form-item
|
|
|
label="目标成本"
|
|
@@ -471,20 +470,20 @@
|
|
|
v-decorator="[
|
|
|
'cpaBid',
|
|
|
{
|
|
|
- rules: [{ required: true, message: '目标成本必填' }],
|
|
|
+ rules: [{ required: true, message: '目标成本必填' }, {validator: cpaBidCheck}],
|
|
|
},]"
|
|
|
- @change="showTip(index)"
|
|
|
+
|
|
|
style="width: 100%"
|
|
|
>
|
|
|
</a-input-number>
|
|
|
- <span style="color: red" v-if="item.showTipCheck">{{
|
|
|
+ <!-- <span style="color: red" v-if="item.showTipCheck">{{
|
|
|
item.bidType == 1
|
|
|
? '不得低于1元,不得高于项目最高出价' + maxBid + '元'
|
|
|
: '不得低于1元,不得高于项目最高出价' + maxBid + '元'
|
|
|
- }}</span>
|
|
|
+ }}</span> -->
|
|
|
<span
|
|
|
style="color: red; font-weight: 700"
|
|
|
- v-else-if="item.ocpxActionType == 2 && getData('cpaBid') && getData('cpaBid') > 1"
|
|
|
+ v-if="item.ocpxActionType == 2 && getData('cpaBid') && getData('cpaBid') > 1"
|
|
|
>
|
|
|
行为出价大于1元,请注意!!!
|
|
|
</span>
|
|
@@ -519,7 +518,7 @@
|
|
|
<a-input v-decorator="[
|
|
|
'unitName',
|
|
|
{
|
|
|
- rules: [{ required: true, message: '广告组必填' }],
|
|
|
+ rules: [{ required: true, message: '广告组必填' }, {validator: handleConfirmValue}],
|
|
|
},]" @change="checkGroup($event, index)"></a-input>
|
|
|
<span style="color: red" v-if="item.unitNameCheck">广告组名称重复</span>
|
|
|
</a-form-item>
|
|
@@ -1949,12 +1948,18 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
resData(index) {
|
|
|
- this.allForm.group[index].bid = ''
|
|
|
- this.allForm.group[index].cpaBid = ''
|
|
|
+ // this.allForm.group[index].bid = ''
|
|
|
+ // this.allForm.group[index].cpaBid = ''
|
|
|
this.allForm.group[index].showTipCheck = false
|
|
|
this.allForm.group[index].deepConversionBidCheck = false
|
|
|
this.allForm.group[index].deepConversionType = ''
|
|
|
this.allForm.group[index].deepConversionBid = ''
|
|
|
+ this.form.setFieldsValue({
|
|
|
+ bid: undefined,
|
|
|
+ })
|
|
|
+ this.form.setFieldsValue({
|
|
|
+ cpaBid: undefined,
|
|
|
+ })
|
|
|
},
|
|
|
removeGroup(index) {
|
|
|
this.allForm.group.splice(index, 1)
|
|
@@ -2018,24 +2023,38 @@ export default {
|
|
|
getData(className) {
|
|
|
return this.form.getFieldValue(className)
|
|
|
},
|
|
|
-
|
|
|
+ bidCheck(rule, value, callback) {
|
|
|
+ if (value < 0.2 || value > this.maxBid) {
|
|
|
+ callback('不得低于0.2元,不得高于项目最高出价' + this.maxBid + '元')
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ cpaBidCheck(rule, value, callback) {
|
|
|
+ if (value < 1 || value > this.maxBid) {
|
|
|
+ callback('不得低于1元,不得高于项目最高出价' + this.maxBid + '元')
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ },
|
|
|
handleConfirmValue(rule, value, callback) {
|
|
|
- if (this.campaignType == 3) {
|
|
|
- if (value == '') {
|
|
|
- callback('请填写链接')
|
|
|
- }
|
|
|
- } else if (this.campaignType == 4) {
|
|
|
- if (/(http|https):\/\/([\w.]+\/?)\S*/.test(value) && value != '' && value.length < 10000) {
|
|
|
- callback()
|
|
|
- } else {
|
|
|
- callback('链接不能为空且开头为http://或https://,并且长度小于10000')
|
|
|
- }
|
|
|
- } else if (this.campaignType == 5) {
|
|
|
- if (/(http|https):\/\/([\w.]+\/?)\S*/.test(value) && value != '' && value.length < 10000) {
|
|
|
- callback()
|
|
|
- } else {
|
|
|
- callback('链接不能为空且开头为http://或https://,并且长度小于10000')
|
|
|
- }
|
|
|
+ if (value != '' && value != undefined) {
|
|
|
+ getAction('/kuaishou/batch/checkUnitName', {
|
|
|
+ campaignId: localStorage.getItem('campaignList'),
|
|
|
+ unitName: value + '_0',
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.success) {
|
|
|
+ if (!res.result) {
|
|
|
+ callback('广告组名称重复')
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
}
|
|
|
},
|
|
|
budgetValue(rule, value, callback) {
|
|
@@ -2153,7 +2172,7 @@ export default {
|
|
|
? this.$message.error('选择的素材不能小于创建条数')
|
|
|
: this.$message.error('选择的素材不能小于创建条数*15')
|
|
|
} else {
|
|
|
- this.form.validateFields((err, values) => {
|
|
|
+ this.form.validateFieldsAndScroll((err, values) => {
|
|
|
if (!err) {
|
|
|
this.loading = true
|
|
|
var groupArr = this.allForm.group.map((item) => {
|