fix settings bug

This commit is contained in:
yulixing 2019-05-24 17:48:01 +08:00
parent 2f645252fe
commit 6004ac2ac3
2 changed files with 64 additions and 11 deletions

View File

@ -64,7 +64,12 @@
</el-select> </el-select>
<div class="btn-group"> <div class="btn-group">
<el-button type="success" size="small" @click="addSetting">添加新的配置项</el-button> <el-button type="success" size="small" @click="addSetting">添加新的配置项</el-button>
<el-button type="danger" size="small" @click="clearSettings">清空</el-button> <el-button
type="danger"
size="small"
@click="clearSettings"
v-show="selectedSettings.length> 0"
>清空</el-button>
</div> </div>
</div> </div>
</el-col> </el-col>
@ -194,6 +199,10 @@ export default {
this.getSettingsList() this.getSettingsList()
}, },
methods: { methods: {
changeState(changed) {
this.$emit('change', changed)
console.log('子change', changed)
},
// left // left
getGameInfo(cb) { getGameInfo(cb) {
request({ request({
@ -245,6 +254,7 @@ export default {
this.tip = '配置已发布' this.tip = '配置已发布'
} }
if (this.settingsForm.settings.length === 0) this.tip = '' if (this.settingsForm.settings.length === 0) this.tip = ''
this.changeState(false)
}) })
}, },
openEditor(index) { openEditor(index) {
@ -348,12 +358,14 @@ export default {
} }
this.$message.success('配置保存成功!') this.$message.success('配置保存成功!')
this.tip = '配置已保存,待发布' this.tip = '配置已保存,待发布'
this.changeState(false)
resolve() resolve()
}) })
}) })
}, },
changTip() { changTip() {
this.tip = '配置已修改' this.tip = '配置已修改'
this.changeState(true)
}, },
// right // right
getSettingsList() { getSettingsList() {
@ -373,9 +385,18 @@ export default {
}) })
}, },
clearSettings() { clearSettings() {
this.selectedSettings = [] this.$confirm('是否要清空配置项?', '提示', {
this.settingKeys = [] confirmButtonText: '确定',
this.settingsForm.settings = [] cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.selectedSettings = []
this.settingKeys = []
this.settingsForm.settings = []
this.$message.success('已清空配置项!')
})
.catch(() => {})
}, },
addSetting() { addSetting() {
this.openNewSettingModal() this.openNewSettingModal()
@ -391,8 +412,10 @@ export default {
let index1 = 0 let index1 = 0
const index2 = this.settingKeys.indexOf(key) const index2 = this.settingKeys.indexOf(key)
for (let i = 0; i < this.settingsForm.settings.length; i++) { for (let i = 0; i < this.settingsForm.settings.length; i++) {
if (this.settingsForm.settings[i].key === key) index1 = i if (this.settingsForm.settings[i].key === key) {
break index1 = i
break
}
} }
this.settingsForm.settings.splice(index1, 1) this.settingsForm.settings.splice(index1, 1)
this.settingKeys.splice(index2, 1) this.settingKeys.splice(index2, 1)

View File

@ -1,11 +1,11 @@
<template> <template>
<div class="main-content p-game-settings"> <div class="main-content p-game-settings">
<el-tabs tab-position="left"> <el-tabs tab-position="left" :value="active" :before-leave="handleLeave">
<el-tab-pane label="普通配置"> <el-tab-pane label="普通配置" name="normal">
<setting-panle type="normal"/> <setting-panle type="normal" @change="handleChange"/>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="私有配置"> <el-tab-pane label="私有配置" name="private">
<setting-panle type="private"/> <setting-panle type="private" @change="handleChange"/>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
@ -16,8 +16,38 @@ import SettingPanle from './SettingPanel.vue'
export default { export default {
name: 'GameDetailsSettings', name: 'GameDetailsSettings',
data() {
return {
changed: false,
active: 'normal',
}
},
components: { components: {
SettingPanle SettingPanle
},
methods: {
handleLeave(activeName, oldActiveName) {
if (this.changed) {
this.$confirm('配置项已修改未保存,是否离开', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {})
.catch(() => {
return false
})
}
},
handleChange(val) {
this.changed = val
},
openModal() {
this.modaleVisible = true
},
closeModal() {
this.modaleVisible = false
},
} }
} }
</script> </script>