优先级增加 只分享/只广告 地域选择 可不指定 调整UI

This commit is contained in:
yulixing 2019-06-06 17:38:50 +08:00
parent 70daacf1b7
commit 669519c38a
2 changed files with 72 additions and 27 deletions

View File

@ -3,7 +3,7 @@
<el-form <el-form
ref="shareForm" ref="shareForm"
:model="shareForm" :model="shareForm"
:rules="rules" :rules="shareFormRules"
label-width="120px" label-width="120px"
style="width: 60%" style="width: 60%"
> >
@ -30,6 +30,7 @@
<el-form-item label="地域" prop="area"> <el-form-item label="地域" prop="area">
<el-select v-model="shareForm.area" placeholder="请选择地域" style="width: 100%"> <el-select v-model="shareForm.area" placeholder="请选择地域" style="width: 100%">
<el-option label="不指定地域" value>不指定地域</el-option>
<el-option <el-option
v-for="(item,index) in areas" v-for="(item,index) in areas"
:key="index" :key="index"
@ -47,9 +48,11 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="优先级" prop="type"> <el-form-item label="优先级" prop="type">
<el-radio-group v-model="shareForm.type"> <el-radio-group v-model="shareForm.type" @change="changeType">
<el-radio :label="0">分享优先</el-radio> <el-radio :label="0">分享优先</el-radio>
<el-radio :label="1">广告优先</el-radio> <el-radio :label="1">广告优先</el-radio>
<el-radio :label="2">只分享</el-radio>
<el-radio :label="3">只广告</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="分享次数" prop="share_count"> <el-form-item label="分享次数" prop="share_count">
@ -86,17 +89,20 @@
<el-button v-if="permEdit" size="mini" @click="addShareGroup">添加分享语</el-button> <el-button v-if="permEdit" size="mini" @click="addShareGroup">添加分享语</el-button>
</el-form-item> </el-form-item>
<el-form-item label="广告 ID" prop="ad_id"> <div v-if="!onlyShare">
<el-input v-model="shareForm.ad_id"/> <el-form-item label="广告 ID" prop="ad_id">
</el-form-item> <el-input v-model="shareForm.ad_id"/>
<el-form-item label="广告次数" prop="ad_count"> </el-form-item>
<el-input v-model.number="shareForm.ad_count"/> <el-form-item label="广告次数" prop="ad_count">
<span class="ipt-tip">广告首先的情况下, 最多播放广告n次后, 将切换成分享, 暂时无用</span> <el-input v-model.number="shareForm.ad_count"/>
</el-form-item> <span class="ipt-tip">广告首先的情况下, 最多播放广告n次后, 将切换成分享, 暂时无用</span>
<el-form-item label="广告播放间隔" prop="ad_cd"> </el-form-item>
<el-input v-model.number="shareForm.ad_cd"/> <el-form-item label="广告播放间隔" prop="ad_cd">
<span class="ipt-tip">点击广告的间隔时间, 暂时无用</span> <el-input v-model.number="shareForm.ad_cd"/>
</el-form-item> <span class="ipt-tip">点击广告的间隔时间, 暂时无用</span>
</el-form-item>
</div>
<el-form-item label="备注" prop="comment"> <el-form-item label="备注" prop="comment">
<el-input v-model="shareForm.comment" type="textarea"/> <el-input v-model="shareForm.comment" type="textarea"/>
</el-form-item> </el-form-item>
@ -108,7 +114,7 @@
</el-form> </el-form>
<!-- Modal - 编辑分享类型 --> <!-- Modal - 编辑分享类型 -->
<el-dialog title="分享类型列表" :visible.sync="modalShareTypeVisible"> <el-dialog title="分享类型列表" :visible.sync="modalShareTypeVisible" width="35%">
<el-button v-if="permEdit" type="primary" @click="addShareType">新增</el-button> <el-button v-if="permEdit" type="primary" @click="addShareType">新增</el-button>
<el-table <el-table
:data="shareTypes" :data="shareTypes"
@ -136,6 +142,7 @@
:visible.sync="modalShareTypeEditVisible" :visible.sync="modalShareTypeEditVisible"
append-to-body append-to-body
:before-close="closeShareTypeEditModal" :before-close="closeShareTypeEditModal"
width="35%"
> >
<el-form <el-form
ref="shareTypeForm" ref="shareTypeForm"
@ -156,7 +163,7 @@
</span> </span>
</el-dialog> </el-dialog>
<!-- Modal - 编辑地域 --> <!-- Modal - 编辑地域 -->
<el-dialog title="地域列表" :visible.sync="modalAreaVisible"> <el-dialog title="地域列表" :visible.sync="modalAreaVisible" width="35%">
<el-button v-if="permEdit" type="primary" @click="addArea">新增</el-button> <el-button v-if="permEdit" type="primary" @click="addArea">新增</el-button>
<el-table <el-table
:data="areas" :data="areas"
@ -183,6 +190,7 @@
:visible.sync="modalAreaEditVisible" :visible.sync="modalAreaEditVisible"
append-to-body append-to-body
:before-close="closeModalAreaEdit" :before-close="closeModalAreaEdit"
width="35%"
> >
<el-form ref="areaForm" :model="areaForm" :rules="areaFormRules" label-width="50px"> <el-form ref="areaForm" :model="areaForm" :rules="areaFormRules" label-width="50px">
<el-form-item label="说明" prop="name"> <el-form-item label="说明" prop="name">
@ -280,6 +288,7 @@ export default {
regions: [], regions: [],
areas: [], areas: [],
token: '', token: '',
onlyShare: false,
// main // main
shareForm: { shareForm: {
default_share: false, default_share: false,
@ -298,7 +307,7 @@ export default {
comment: '', comment: '',
ad_id: '' ad_id: ''
}, },
rules: { shareFormRules: {
default_share: [ default_share: [
{ required: true, message: '请选择是否默认分享', trigger: 'blur' } { required: true, message: '请选择是否默认分享', trigger: 'blur' }
], ],
@ -307,13 +316,28 @@ export default {
{ type: 'number', message: '请输入数字', trigger: 'blur' } { type: 'number', message: '请输入数字', trigger: 'blur' }
], ],
ad_count: [ ad_count: [
{ required: true, message: '请输入广告次数', trigger: 'blur' }, {
required: !this.onlyShare,
message: this.onlyShare ? '' : '请输入广告次数',
trigger: 'blur'
},
{ type: 'number', message: '请输入数字', trigger: 'blur' } { type: 'number', message: '请输入数字', trigger: 'blur' }
], ],
ad_cd: [ ad_cd: [
{ required: true, message: '请输入广告播放间隔', trigger: 'blur' }, {
required: !this.onlyShare,
message: this.onlyShare ? '' : '请输入广告播放间隔',
trigger: 'blur'
},
{ type: 'number', message: '请输入数字', trigger: 'blur' } { type: 'number', message: '请输入数字', trigger: 'blur' }
], ],
ad_id: [
{
required: !this.onlyShare,
message: this.onlyShare ? '' : '请输入广告ID',
trigger: 'blur'
}
],
type: [{ required: true, message: '请选择类型', trigger: 'blur' }], type: [{ required: true, message: '请选择类型', trigger: 'blur' }],
share_type: [ share_type: [
{ required: true, message: '请选择分享类型', trigger: 'blur' } { required: true, message: '请选择分享类型', trigger: 'blur' }
@ -321,9 +345,7 @@ export default {
share_word: [ share_word: [
{ required: true, message: '请至少添加一个分享组', trigger: 'blur' } { required: true, message: '请至少添加一个分享组', trigger: 'blur' }
], ],
sex: [{ required: true, message: '请选择性别', trigger: 'blur' }], sex: [{ required: true, message: '请选择性别', trigger: 'blur' }]
area: [{ required: true, message: '请输入地域', trigger: 'blur' }],
ad_id: [{ required: true, message: '请输入广告ID', trigger: 'blur' }]
}, },
imageUrl: '', imageUrl: '',
// modal - shareType // modal - shareType
@ -454,12 +476,16 @@ export default {
share_image: this.shareForm.share_images[i] share_image: this.shareForm.share_images[i]
}) })
} }
if (this.shareForm.type === 2) this.onlyShare = true
} }
}) })
.catch(err => { .catch(err => {
console.log(err) console.log(err)
}) })
}, },
changeType(val) {
val === 2 ? (this.onlyShare = true) : (this.onlyShare = false)
},
submitForm(formName) { submitForm(formName) {
if (this.shareGroups.length > 0) { if (this.shareGroups.length > 0) {
this.shareForm.share_word = this.shareGroups[0].share_word this.shareForm.share_word = this.shareGroups[0].share_word

View File

@ -14,8 +14,10 @@
</el-form-item> </el-form-item>
<el-form-item label="类型" prop="type"> <el-form-item label="类型" prop="type">
<el-select v-model="filterForm.type" placeholder="请选择类型"> <el-select v-model="filterForm.type" placeholder="请选择类型">
<el-option label="分享图" :value="0"/> <el-option label="分享优先" :value="0"/>
<el-option label="广告" :value="1"/> <el-option label="广告优先" :value="1"/>
<el-option label="只分享" :value="2"/>
<el-option label="只广告" :value="3"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -66,7 +68,13 @@
sortable sortable
:formatter="formatDefault" :formatter="formatDefault"
/> />
<el-table-column prop="areaName" label="地域" show-overflow-tooltip sortable/> <el-table-column
prop="areaName"
label="地域"
show-overflow-tooltip
sortable
:formatter="formatArea"
/>
<el-table-column prop="sex" label="性别" show-overflow-tooltip sortable :formatter="formatSex"/> <el-table-column prop="sex" label="性别" show-overflow-tooltip sortable :formatter="formatSex"/>
<el-table-column prop="name" label="操作" fixed="right" width="126"> <el-table-column prop="name" label="操作" fixed="right" width="126">
<template slot-scope="scope"> <template slot-scope="scope">
@ -138,12 +146,12 @@ export default {
} }
this.permEdit = this.permEdit =
this.userInfo.permissions.includes(`${this.uid}-edit`) || this.userInfo.permissions.includes(`${this.uid}-edit`) ||
this.userInfo.permissions.includes(`${this.uid}-publish`)|| this.userInfo.permissions.includes(`${this.uid}-publish`) ||
this.userInfo.permissions.includes(`games-writeable`) this.userInfo.permissions.includes(`games-writeable`)
this.permView = this.permView =
this.userInfo.permissions.includes(`${this.uid}-readable`) || this.userInfo.permissions.includes(`${this.uid}-readable`) ||
this.userInfo.permissions.includes(`${this.uid}-edit`) || this.userInfo.permissions.includes(`${this.uid}-edit`) ||
this.userInfo.permissions.includes(`${this.uid}-publish`)|| this.userInfo.permissions.includes(`${this.uid}-publish`) ||
this.userInfo.permissions.includes(`games-writeable`) this.userInfo.permissions.includes(`games-writeable`)
}, },
methods: { methods: {
@ -253,7 +261,15 @@ export default {
return cellValue ? '是' : '否' return cellValue ? '是' : '否'
}, },
formatType(row, column, cellValue, index) { formatType(row, column, cellValue, index) {
return cellValue === 0 ? '分享图' : '广告' if (cellValue === 0) {
return '分享优先'
} else if (cellValue === 1) {
return '广告优先'
} else if (cellValue === 2) {
return '只分享'
} else if (cellValue === 3) {
return '只广告'
}
}, },
formatSex(row, column, cellValue, index) { formatSex(row, column, cellValue, index) {
if (cellValue === '0') { if (cellValue === '0') {
@ -264,6 +280,9 @@ export default {
return '女' return '女'
} }
}, },
formatArea(row, column, cellValue, index) {
return cellValue ? cellValue : '不指定'
},
delShare(row) { delShare(row) {
this.$confirm('是否删除该分享图?', '提示', { this.$confirm('是否删除该分享图?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',