Commit e99afee9 authored by 王's avatar

菜单管理

parent 1bf64e23
......@@ -52,59 +52,86 @@
<div id="js_rightBox" class="portable_editor to_left" style="display: block;">
<div class="editor_inner">
<div class="menu_form_hd flex-bt">
<h4 class="global_info"> {{selectedItem && selectedItem.name}} </h4>
<h4 class="global_info"> {{selectedChildIndex !== -1 ? buttonList[selectedIndex].sub_button[selectedChildIndex].name : buttonList[selectedIndex].name}} </h4>
<div class="global_extra">
<a v-if="selectedChildIndex === -1" href="javascript:void(0);" @click="delMenu">删除菜单</a>
<a v-else href="javascript:void(0);" @click="delSubMenu">删除子菜单</a>
</div>
</div>
<div class="menu_form_bd" id="view">
<div id="js_innerNone" style="display: block;" class="msg_sender_tips tips_global" v-if="selectedItem && selectedItem.sub_button.length > 0">
<div id="js_innerNone" style="display: block;" class="msg_sender_tips tips_global" v-if="buttonList[selectedIndex] && buttonList[selectedIndex].sub_button.length > 0">
已添加子菜单,仅可设置菜单名称。
</div>
<div class="frm_control_group js_setNameBox">
<label for="" class="frm_label"> <strong class="title js_menuTitle">{{selectedChildIndex === -1 ? '菜单名称' : '子菜单名称'}}</strong> </label>
<div class="frm_controls">
<span class="frm_input_box with_counter counter_in append">
<input :value="selectedItem.name" type="text" class="frm_input js_menu_name" @input="onInput"/>
<input :value="selectedChildIndex === -1 ? buttonList[selectedIndex].name : buttonList[selectedIndex].sub_button[selectedChildIndex].name" type="text" class="frm_input js_menu_name" @input="onInput"/>
</span>
<p class="frm_msg fail js_titleEorTips dn" v-if="showErrorTips">字数超过上限</p>
<p class="frm_msg fail js_titlenoTips dn" style="display: none;">请输入菜单名称</p>
<p class="frm_tips js_titleNolTips">字数不超过4个汉字或8个字母</p>
</div>
</div>
<div class="frm_control_group" :class="selectedItem && (selectedItem.sub_button.length === 0 || selectedChildIndex > -1) ? '' : 'hideMenu'">
<div class="frm_control_group" :class="(selectedChildIndex == -1 && buttonList[selectedIndex].sub_button.length > 0 )? 'hideMenu' : ''">
<label for="" class="frm_label"> <strong class="title js_menuContent">{{selectedChildIndex === -1 ? '菜单内容' : '子菜单内容'}}</strong> </label>
<div class="frm_controls frm_vertical_pt">
<el-radio-group v-model="selectedItem.type" @change="onTypeChange">
<el-radio-group v-model="selectedChildIndex === -1 ? buttonList[selectedIndex].type : buttonList[selectedIndex].sub_button[selectedChildIndex].type" @change="onTypeChange">
<el-radio label="click">发送消息</el-radio>
<el-radio label="view">跳转网页</el-radio>
</el-radio-group>
</div>
</div>
<div class="menu_content_container" :class="selectedItem && selectedItem.sub_button.length === 0 ? '' : 'hideMenu'">
<div v-if="selectedItem.type === 'view'" class="menu_content url jsMain" id="url" style="display: block;">
<div class="menu_content_container" :class="(selectedChildIndex == -1 && buttonList[selectedIndex].sub_button.length > 0 )? 'hideMenu' : ''">
<template v-if="selectedChildIndex == -1">
<div v-if="buttonList[selectedIndex].type === 'view'" class="menu_content url jsMain" id="url" style="display: block;">
<p class="menu_content_tips tips_global">订阅者点击该子菜单会跳到以下链接</p>
<div class="frm_control_group">
<label for="" class="frm_label">页面地址</label>
<div class="frm_controls">
<span class="frm_input_box">
<input v-model="selectedItem.url" type="text" class="frm_input" name="urlText" />
<input v-model="buttonList[selectedIndex].url" type="text" class="frm_input" name="urlText" />
</span>
</div>
</div>
</div>
<div v-else class="menu_content url jsMain" style="display: block;">
<p class="menu_content_tips tips_global">click</p>
<div class="frm_control_group">
<label for="" class="frm_label">key</label>
<div class="frm_controls">
</div>
<div v-else class="menu_content url jsMain" style="display: block;">
<p class="menu_content_tips tips_global">click</p>
<div class="frm_control_group">
<label for="" class="frm_label">key</label>
<div class="frm_controls">
<span class="frm_input_box">
<input v-model="selectedItem.key" type="text" class="frm_input" name="clickKey"/>
<input v-model="buttonList[selectedIndex].key" type="text" class="frm_input" name="clickKey"/>
</span>
</div>
</div>
</div>
</div>
</template>
<template v-else>
<div v-if="buttonList[selectedIndex].sub_button[selectedChildIndex].type === 'view'" class="menu_content url jsMain" style="display: block;">
<p class="menu_content_tips tips_global">订阅者点击该子菜单会跳到以下链接</p>
<div class="frm_control_group">
<label for="" class="frm_label">页面地址</label>
<div class="frm_controls">
<span class="frm_input_box">
<input v-model="buttonList[selectedIndex].sub_button[selectedChildIndex].url" type="text" class="frm_input" name="urlText" />
</span>
</div>
</div>
</div>
<div v-else class="menu_content url jsMain" style="display: block;">
<p class="menu_content_tips tips_global">click</p>
<div class="frm_control_group">
<label for="" class="frm_label">key</label>
<div class="frm_controls">
<span class="frm_input_box">
<input v-model="buttonList[selectedIndex].sub_button[selectedChildIndex].key" type="text" class="frm_input" name="clickKey"/>
</span>
</div>
</div>
</div>
</template>
</div>
</div>
</div>
......@@ -155,20 +182,12 @@
this.selectedIndex = index
this.selectedChildIndex = -1
this.selectedItem = item
getPublicMenuApi().then(res=> {
if (res.menu && res.menu.button) {
this.buttonList = res.menu.button
}
})
},
clickSubMenu(index, item){
this.selectedChildIndex = index
this.selectedItem = item
getPublicMenuApi().then(res=> {
if (res.menu && res.menu.button) {
this.buttonList = res.menu.button
}
})
console.log('clickSubMenu', this.buttonList)
console.log('click sub menu', this.buttonList[this.selectedIndex].sub_button[this.selectedChildIndex].type);
},
onInput(val) {
let value = val.target.value
......@@ -182,19 +201,27 @@
this.selectedItem.name = value
},
addSubMenu(){
getPublicMenuApi().then(res=> {
if (res.menu && res.menu.button) {
this.buttonList = res.menu.button
this.selectedItem = {
name: '子菜单名',
sub_button: [],
type: 'view',
url: ''
}
this.buttonList[this.selectedIndex].sub_button.push(this.selectedItem)
this.selectedChildIndex = this.buttonList[this.selectedIndex].sub_button.length - 1
}
})
let item = {
name: '子菜单名',
sub_button: [],
type: 'view',
url: ''
}
this.buttonList[this.selectedIndex].sub_button.push(item)
this.selectedChildIndex = this.buttonList[this.selectedIndex].sub_button.length - 1
// getPublicMenuApi().then(res=> {
// if (res.menu && res.menu.button) {
// this.buttonList = res.menu.button
// this.selectedItem = {
// name: '子菜单名',
// sub_button: [],
// type: 'view',
// url: ''
// }
// this.buttonList[this.selectedIndex].sub_button.push(this.selectedItem)
// this.selectedChildIndex = this.buttonList[this.selectedIndex].sub_button.length - 1
// }
// })
},
delSubMenu(){
this.$confirm('此操作将删除该子菜单?', '提示', {
......@@ -202,31 +229,45 @@
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
getPublicMenuApi().then(res => {
if (res.menu && res.menu.button) {
this.buttonList = res.menu.button
this.buttonList[this.selectedIndex].sub_button.splice(this.selectedChildIndex, 1)
this.selectedChildIndex = this.buttonList[this.selectedIndex].sub_button.length - 1
this.selectedItem = this.selectedChildIndex > -1 ? this.buttonList[this.selectedIndex][this.selectedChildIndex] : this.buttonList[this.selectedIndex]
}
});
this.buttonList[this.selectedIndex].sub_button.splice(this.selectedChildIndex, 1)
this.selectedChildIndex = this.buttonList[this.selectedIndex].sub_button.length - 1
this.selectedItem = this.selectedChildIndex > -1 ? this.buttonList[this.selectedIndex][this.selectedChildIndex] : this.buttonList[this.selectedIndex]
// getPublicMenuApi().then(res => {
// if (res.menu && res.menu.button) {
// this.buttonList = res.menu.button
// this.buttonList[this.selectedIndex].sub_button.splice(this.selectedChildIndex, 1)
// this.selectedChildIndex = this.buttonList[this.selectedIndex].sub_button.length - 1
// this.selectedItem = this.selectedChildIndex > -1 ? this.buttonList[this.selectedIndex][this.selectedChildIndex] : this.buttonList[this.selectedIndex]
// }
// });
});
},
onAddMenu(){
getPublicMenuApi().then(res=> {
if (res.menu && res.menu.button) {
this.buttonList = res.menu.button
this.selectedItem = {
name: '菜单名',
sub_button: [],
type: 'view',
url: ''
}
this.buttonList.push(this.selectedItem)
this.selectedIndex = this.buttonList.length - 1
this.selectedChildIndex = -1
}
})
let item = {
name: '菜单名',
sub_button: [],
type: 'view',
url: ''
}
this.buttonList.push(item)
this.selectedIndex = this.buttonList.length - 1
this.selectedChildIndex = -1
console.log('this.buttonList', this.buttonList)
console.log('this.buttonList selectedChildIndex', this.selectedChildIndex)
// getPublicMenuApi().then(res=> {
// if (res.menu && res.menu.button) {
// this.buttonList = res.menu.button
// this.selectedItem = {
// name: '菜单名',
// sub_button: [],
// type: 'view',
// url: ''
// }
// this.buttonList.push(this.selectedItem)
// this.selectedIndex = this.buttonList.length - 1
// this.selectedChildIndex = -1
// }
// })
},
delMenu(){
this.$confirm('此操作将删除该菜单?', '提示', {
......@@ -234,18 +275,30 @@
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
getPublicMenuApi().then(res=> {
if (res.menu && res.menu.button) {
this.buttonList = res.menu.button
this.buttonList.splice(this.selectedIndex,1)
this.selectedItem = this.buttonList.length > 0 ? this.buttonList[0] : {
name: '菜单名',
sub_button: [],
type: 'view',
url: ''}
this.selectedChildIndex = -1
}
})
this.buttonList.splice(this.selectedIndex,1)
if (this.buttonList.length == 0 ){
this.buttonList.push({
name: '菜单名',
sub_button: [],
type: 'view',
url: ''
})
}
this.selectedIndex = this.buttonList.length -1;
this.selectedChildIndex = -1
// getPublicMenuApi().then(res=> {
// if (res.menu && res.menu.button) {
// this.buttonList = res.menu.button
// this.buttonList.splice(this.selectedIndex,1)
// this.selectedItem = this.buttonList.length > 0 ? this.buttonList[0] : {
// name: '菜单名',
// sub_button: [],
// type: 'view',
// url: ''}
// this.selectedChildIndex = -1
// }
// })
});
},
onTypeChange(val){
......@@ -253,15 +306,17 @@
},
onSave(){
let buttonList = this.buttonList
if (this.selectedIndex > -1 && this.selectedChildIndex > -1) {
buttonList[this.selectedIndex].sub_button[this.selectedChildIndex] = this.selectedItem
}
if (this.selectedIndex > -1 && this.selectedChildIndex === -1) {
buttonList[this.selectedIndex] = this.selectedItem
}
// if (this.selectedIndex > -1 && this.selectedChildIndex > -1) {
// buttonList[this.selectedIndex].sub_button[this.selectedChildIndex] = this.selectedItem
// }
// if (this.selectedIndex > -1 && this.selectedChildIndex === -1) {
// buttonList[this.selectedIndex] = this.selectedItem
// }
let json = {
buttons: JSON.stringify(buttonList)
}
console.log('json', buttonList)
return
savePublicMenuApi(json).then(res=>{
if (res.errcode === 0){
this.$message({
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment