mp:menu 前端的新增、删除操作的完善

This commit is contained in:
YunaiV 2023-01-14 22:39:29 +08:00
parent 02ec5d455c
commit c0b950257f

View File

@ -60,11 +60,11 @@ SOFTWARE.
</div>
</div>
<!-- 一级菜单加号 -->
<div class="menu_bottom menu_addicon" v-if="menuKeyLength < 3" @click="addMenu"><i class="el-icon-plus"></i></div>
<div class="menu_bottom menu_addicon" v-if="this.menuList.length < 3" @click="addMenu"><i class="el-icon-plus"></i></div>
</div>
<div class="save_div">
<!--<el-button class="save_btn" type="warning" size="small" @click="saveFun">保存菜单</el-button>-->
<el-button class="save_btn" type="success" size="small" @click="saveAndReleaseFun">保存并发布菜单</el-button>
<el-button class="save_btn" type="success" size="small" @click="handleSaveAndReleaseFun">保存并发布菜单</el-button>
</div>
</div>
<!--右边配置-->
@ -75,9 +75,9 @@ SOFTWARE.
</div>
<div>
<span>菜单名称</span>
<el-input class="input_width" v-model="tempObj.name" placeholder="请输入菜单名称" :maxlength=nameMaxlength clearable></el-input>
<el-input class="input_width" v-model="tempObj.name" placeholder="请输入菜单名称" :maxlength=nameMaxLength clearable></el-input>
</div>
<div v-if="showConfigurContent">
<div v-if="showConfigureContent">
<div class="menu_content">
<span>菜单内容</span>
<el-select v-model="tempObj.type" clearable placeholder="请选择" class="menu_option">
@ -130,7 +130,7 @@ SOFTWARE.
</div>
</div>
<!-- 一进页面就显示的默认页面当点击左边按钮的时候就不显示了-->
<div v-if="!showRightFlag" class="right">
<div v-else class="right">
<p>请选择菜单配置</p>
</div>
</div>
@ -138,7 +138,6 @@ SOFTWARE.
</template>
<script>
// import { save, saveAndRelease ,getList} from '@/api/wxmp/wxmenu'
import WxReplySelect from '@/views/mp/components/wx-news/main.vue'
import WxNews from '@/views/mp/components/wx-news/main.vue';
import WxMaterialSelect from '@/views/mp/components/wx-news/main.vue'
@ -154,6 +153,7 @@ export default {
},
data(){
return {
// ======================== ========================
//
loading: true,
//
@ -164,24 +164,28 @@ export default {
children: [],
},
showRightFlag:false, //
menu:{ //
button:[
]
},
// ======================== ========================
isActive: -1,//
isSubMenuActive: -1, //
isSubMenuFlag: -1, //
// ======================== ========================
showRightFlag: false, //
nameMaxLength: 0, // 1 4 2 7
showConfigureContent: true, //
tempObj:{}, //
tempSelfObj: {
// tempObjmenu
tempSelfObj: { // tempObjmenu
},
visible2: false, // ""
tableData:[], //,
menuName:'',
showConfigurContent:true,
nameMaxlength:0,//
menuOptions: [{
value: 'view',
label: '跳转网页'
@ -231,12 +235,6 @@ export default {
this.getList();
})
},
computed: {
menuKeyLength:function() {
// menuObj 3
return this.menu.button.length;
}
},
methods: {
// ======================== ========================
/** 设置账号编号 */
@ -271,34 +269,92 @@ export default {
this.handleQuery()
},
// TODO
// ======================== ========================
//
menuClick(i, item) {
//
this.resetEditor();
this.showRightFlag = true; //
this.tempObj = item; // flag
this.tempSelfObj.grand = "1"; //
this.tempSelfObj.index = i; //
this.nameMaxLength = 4
this.showConfigureContent = !(item.children && item.children.length > 0); //
deleteTempObj(){
this.$delete(this.tempObj,'repName')
this.$delete(this.tempObj,'repUrl')
this.$delete(this.tempObj,'content')
//
this.isActive = i; //
this.isSubMenuFlag = i; //
this.isSubMenuActive = -1; //
},
openMaterial(){
this.dialogNewsVisible = true
//
subMenuClick(subItem, index, k) {
//
this.resetEditor();
this.showRightFlag = true; //
this.tempObj = subItem;//
this.tempSelfObj.grand = "2"; //
this.tempSelfObj.index = index; //
this.tempSelfObj.secondIndex = k; //
this.nameMaxLength = 7
this.showConfigureContent = true;
//
this.isActive = -1; //
this.isSubMenuActive = index + "" + k; //
},
selectMaterial(item){
if(item.content.articles.length>1){
this.$alert('您选择的是多图文,将默认跳转第一篇', '提示', {
confirmButtonText: '确定'
})
//
addMenu(){
const menuKeyLength = this.menuList.length;
const addButton = {
name: "菜单名称",
children: []
}
this.dialogNewsVisible = false
this.tempObj.article_id = item.articleId
this.tempObj.mediaName = item.name
this.tempObj.url = item.url
item.mediaType = this.tempObj.mediaType
item.content.articles = item.content.articles.slice(0,1)
this.tempObj.content = item.content
this.$set(this.menuList, menuKeyLength, addButton)
this.menuClick(this.menuKeyLength - 1, addButton)
},
handleClick(tab, event){
this.tempObj.mediaType = tab.name
// item
addSubMenu(i, item) {
if (!item.children || item.children.length <= 0){
this.$set( item, 'children',[])
// TODO
this.$delete( item, 'type')
this.$delete( item, 'pagepath')
this.$delete( item, 'url')
this.$delete( item, 'key')
this.$delete( item, 'article_id')
this.$delete( item, 'textContent')
this.showConfigureContent = false
}
let subMenuKeyLength = item.children.length; // key
let addButton = {
name: "子菜单名称"
}
this.$set(item.children, subMenuKeyLength, addButton);
this.subMenuClick(item.children[subMenuKeyLength], i, subMenuKeyLength)
},
saveAndReleaseFun(){
//
deleteMenu(item) {
this.$modal.confirm('确定要删除吗?').then(() => {
//
if (this.tempSelfObj.grand === "1") { //
this.menuList.splice(this.tempSelfObj.index, 1);
} else if (this.tempSelfObj.grand === "2") { //
this.menuList[this.tempSelfObj.index].children.splice(this.tempSelfObj.secondIndex, 1);
}
//
this.$modal.msgSuccess("删除成功");
//
this.tempObj = {};
this.showRightFlag = false;
this.isActive = -1;
this.isSubMenuActive = -1;
}).catch(() => {});
},
// ======================== ========================
handleSaveAndReleaseFun(){
this.$confirm('确定要保证并发布该菜单吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@ -324,102 +380,38 @@ export default {
}).catch(() => {
})
},
//
menuClick(i, item){
this.hackResetWxReplySelect = false//
// Editor
resetEditor() {
this.hackResetEditor = false //
this.$nextTick(() => {
this.hackResetWxReplySelect = true//
this.hackResetEditor = true //
})
this.showRightFlag = true;//
this.tempObj = item;//flag
this.tempSelfObj.grand = "1";//
this.tempSelfObj.index = i;//
this.isActive = i; //
this.isSubMenuFlag = i; //
this.isSubMenuActive = -1; //
this.nameMaxlength = 4
if(item.sub_button && item.sub_button.length > 0){
this.showConfigurContent = false
}else{
this.showConfigurContent = true
}
},
//
subMenuClick(subItem, index, k){
this.hackResetWxReplySelect = false//
this.$nextTick(() => {
this.hackResetWxReplySelect = true//
// TODO
deleteTempObj(){
this.$delete(this.tempObj,'repName')
this.$delete(this.tempObj,'repUrl')
this.$delete(this.tempObj,'content')
},
openMaterial(){
this.dialogNewsVisible = true
},
selectMaterial(item){
if(item.content.articles.length>1){
this.$alert('您选择的是多图文,将默认跳转第一篇', '提示', {
confirmButtonText: '确定'
})
this.showRightFlag = true;//
this.tempObj = subItem;//
this.tempSelfObj.grand = "2";//
this.tempSelfObj.index = index;//
this.tempSelfObj.secondIndex = k;//
this.isSubMenuActive = index + "" + k; //
this.isActive = -1;//
this.showConfigurContent = true;
this.nameMaxlength = 7
}
this.dialogNewsVisible = false
this.tempObj.article_id = item.articleId
this.tempObj.mediaName = item.name
this.tempObj.url = item.url
item.mediaType = this.tempObj.mediaType
item.content.articles = item.content.articles.slice(0,1)
this.tempObj.content = item.content
},
//
addMenu(){
let menuKeyLength = this.menuKeyLength
let addButton = {
name: "菜单名称",
sub_button: []
}
this.$set(this.menu.button,menuKeyLength,addButton)
this.menuClick(this.menuKeyLength-1, addButton)
},
//
addSubMenu(i,item){
if(!item.sub_button||item.sub_button.length<=0){
this.$set( item, 'sub_button',[])
this.$delete( item, 'type')
this.$delete( item, 'pagepath')
this.$delete( item, 'url')
this.$delete( item, 'key')
this.$delete( item, 'article_id')
this.$delete( item, 'textContent')
this.showConfigurContent = false
}
let subMenuKeyLength = item.sub_button.length;//key
let addButton = {
name: "子菜单名称"
}
this.$set(item.sub_button,subMenuKeyLength,addButton);
this.subMenuClick(item.sub_button[subMenuKeyLength], i, subMenuKeyLength)
},
//
deleteMenu(obj){
let _this = this;
this.$confirm('确定要删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
_this.deleteData();//
_this.tempObj = {};
_this.showRightFlag = false;
this.isActive = -1;
this.isSubMenuActive = -1;
}).catch(() => {
});
},
//
deleteData(){
//
if(this.tempSelfObj.grand == "1"){
this.menu.button.splice(this.tempSelfObj.index,1);
}
//
if(this.tempSelfObj.grand == "2"){
this.menu.button[this.tempSelfObj.index].sub_button.splice(this.tempSelfObj.secondIndex, 1);
}
this.$message({
type: 'success',
message: '删除成功!'
});
}
},
}
</script>