+bannerid

This commit is contained in:
yulixing 2019-08-05 17:44:04 +08:00
parent 866bc5f3fe
commit 294a8d796f
3 changed files with 91 additions and 7 deletions

View File

@ -454,12 +454,18 @@ export default {
title: '插屏广告开关',
type: 'bool',
value: 1
}
},
{
key: 'video_count',
title: '每日视频广告限额',
type: 'num',
value: 10
},
]
this.showTip = true
this.settingsForm.settings = [...defaultSettings]
this.selectedSettings = [...defaultSettings]
this.settingKeys = ['openAD', 'blackTech', 'isTestMode', 'openAdBanner', 'openADInsert']
this.settingKeys = ['openAD', 'blackTech', 'isTestMode', 'openAdBanner', 'openADInsert', 'video_count']
}
if (data.published === false) {

View File

@ -35,6 +35,32 @@
:value="item.platform.platform_id"
/>
</el-select>
<h3>广告 ID </h3>
<el-form
ref="adIdForm"
:model="adIdForm"
:rules="adIdFormRules"
style="width: 100%"
label-width="140px"
class="mgt-20 mgb-20"
>
<el-form-item
label="默认Banner广告ID"
prop="ids"
>
<el-input
type="textarea"
v-model="adIdForm.ids"
style="width: 70%;"
:rows="5"
placeholder="默认Banner广告ID"
/>
<span class="ipt-tip">多条广告 ID 则用回车分隔</span>
<span class="ipt-tip">配置 banner 若选择随机 ID则从中抽取</span>
</el-form-item>
</el-form>
<h3>banner 配置</h3>
<el-collapse
v-model="activeNames"
v-if="allBanner.length > 0"
@ -57,7 +83,7 @@
:model="item"
:rules="bannerFormRules"
style="width: 100%"
label-width="120px"
label-width="140px"
class="mgt-20 mgb-20"
>
<el-form-item
@ -188,6 +214,7 @@ export default {
permEdit: false,
permPublish: false,
hasList: false,
hasIds: false,
areaList: {},
// form
bannerForm: {},
@ -209,6 +236,12 @@ export default {
{ required: true, message: '请填写刷新间隔时间', trigger: 'blur' }
]
},
adIdForm: {
ids: ''
},
adIdFormRules: {
ids: [{ required: true, message: '请填写广告 ID', trigger: 'blur' }]
},
activeNames: [],
defaultSetting: {
id: '',
@ -280,7 +313,9 @@ export default {
}
this.cfgs = data.records
this.hasList = false
this.hasIds = false
this.resolveBanner(this.cfgs)
this.resolveAdId(this.cfgs)
})
},
getAdAreaList() {
@ -312,6 +347,18 @@ export default {
if (!this.hasList) this.allBanner = []
},
resolveAdId(settings) {
for (let i = 0; i < settings.length; i++) {
const setting = settings[i]
if (setting.key === 'wxBannerAdId') {
this.adIdForm.ids = setting.value.replace(/\|/g, '\n')
this.hasIds = true
break
}
}
if (!this.hasIds) this.adIdForm.ids = ''
},
changePlatform() {
this.getGameSettings()
},
@ -363,6 +410,27 @@ export default {
}
}
},
updateIds() {
let ids = this.adIdForm.ids.replace(/\n/g, '|')
while (ids.endsWith('|')) {
ids = ids.substr(0, ids.length - 1)
}
if (!this.hasIds) {
this.cfgs.push({
key: 'wxBannerAdId',
title: '默认Banner广告ID',
type: 'string',
value: ids
})
return
}
for (let i = 0; i < this.cfgs.length; i++) {
if (this.cfgs[i].key === 'wxBannerAdId') {
this.cfgs[i].value = ids
break
}
}
},
saveAllBanner() {
if (this.allBanner.length === 0) {
this.$confirm('当前无配置,是否清空?', '提示', {
@ -372,6 +440,7 @@ export default {
})
.then(() => {
this.updateBannerList()
this.updateIds()
this.saveSettings()
})
.catch(() => {
@ -384,9 +453,11 @@ export default {
for (let i = 0; i < this.allBanner.length; i++) {
validArr.push(this.validForm(`bannerForm${i}`))
}
validArr.push(this.validForm(`adIdForm`, true))
Promise.all(validArr)
.then(() => {
this.updateBannerList()
this.updateIds()
this.saveSettings()
})
.catch(err => {
@ -394,11 +465,17 @@ export default {
this.$message.error('请按要求填写表单')
})
},
validForm(formName) {
validForm(formName, isSingle) {
return new Promise((resolve, reject) => {
this.$refs[formName][0].validate(valid => {
valid ? resolve() : reject()
})
if (isSingle) {
this.$refs[formName].validate(valid => {
valid ? resolve() : reject()
})
} else {
this.$refs[formName][0].validate(valid => {
valid ? resolve() : reject()
})
}
})
},
saveSettings() {

View File

@ -52,6 +52,7 @@
<el-input
v-model="resetForm.reset_time"
placeholder="重置时间"
style="width: 70%"
/>
</el-form-item>