|
@ -23,6 +23,15 @@ function WechatMenuMgm() { |
|
|
if(res.status == 20000){ |
|
|
if(res.status == 20000){ |
|
|
// console.log(res.data) |
|
|
// console.log(res.data) |
|
|
setConfigArray(res.data) |
|
|
setConfigArray(res.data) |
|
|
|
|
|
if(res.data.length){ |
|
|
|
|
|
let temp = res.data[0] |
|
|
|
|
|
setRightData({ |
|
|
|
|
|
name: temp.name, |
|
|
|
|
|
type: temp.type, |
|
|
|
|
|
url: temp.url |
|
|
|
|
|
}) |
|
|
|
|
|
setActiveMenuIndex(0) |
|
|
|
|
|
} |
|
|
}else{ |
|
|
}else{ |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
@ -30,17 +39,7 @@ function WechatMenuMgm() { |
|
|
.catch(err=>{ |
|
|
.catch(err=>{ |
|
|
console.log(err) |
|
|
console.log(err) |
|
|
}) |
|
|
}) |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const choseOneMenu = (index, idx)=>{ |
|
|
|
|
|
setActiveMenuIndex(index) |
|
|
|
|
|
setActiveSubmenuIndex(idx) |
|
|
|
|
|
let temp = configArray[index].children[idx] |
|
|
|
|
|
setRightData(temp) |
|
|
|
|
|
setIsEdit(true) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
const deleteMenu = ()=>{ |
|
|
const deleteMenu = ()=>{ |
|
|
if(configArray[activeMenuIndex].children){ |
|
|
if(configArray[activeMenuIndex].children){ |
|
@ -67,9 +66,23 @@ function WechatMenuMgm() { |
|
|
temp.splice(activeMenuIndex, 1) |
|
|
temp.splice(activeMenuIndex, 1) |
|
|
setConfigArray(temp) |
|
|
setConfigArray(temp) |
|
|
} |
|
|
} |
|
|
setActiveMenuIndex(-1) |
|
|
|
|
|
|
|
|
// setActiveMenuIndex(-1) |
|
|
setActiveSubmenuIndex(-1) |
|
|
setActiveSubmenuIndex(-1) |
|
|
message.success('一级菜单删除成功') |
|
|
message.success('一级菜单删除成功') |
|
|
|
|
|
if(temp.length > 0){ |
|
|
|
|
|
setActiveMenuIndex(0) |
|
|
|
|
|
setRightData({ |
|
|
|
|
|
name: temp[0].name, |
|
|
|
|
|
type: temp[0].type, |
|
|
|
|
|
url: temp[0].url, |
|
|
|
|
|
}) |
|
|
|
|
|
}else{ |
|
|
|
|
|
setActiveMenuIndex(-1) |
|
|
|
|
|
setActiveSubmenuIndex(-1) |
|
|
|
|
|
setRightData({ |
|
|
|
|
|
name: '', type: '', url:'' |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const deleteSubMenu = ()=>{ |
|
|
const deleteSubMenu = ()=>{ |
|
@ -78,11 +91,16 @@ function WechatMenuMgm() { |
|
|
temp_children.splice(activeSubmenuIndex, 1) |
|
|
temp_children.splice(activeSubmenuIndex, 1) |
|
|
temp[activeMenuIndex].children = temp_children |
|
|
temp[activeMenuIndex].children = temp_children |
|
|
setConfigArray(temp) |
|
|
setConfigArray(temp) |
|
|
setActiveMenuIndex(-1) |
|
|
|
|
|
|
|
|
// setActiveMenuIndex(-1) |
|
|
setActiveSubmenuIndex(-1) |
|
|
setActiveSubmenuIndex(-1) |
|
|
message.success('子菜单删除成功') |
|
|
message.success('子菜单删除成功') |
|
|
|
|
|
setRightData({ |
|
|
|
|
|
name: temp[activeMenuIndex].name, |
|
|
|
|
|
type: temp[activeMenuIndex].type, |
|
|
|
|
|
url: temp[activeMenuIndex].url, |
|
|
|
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 点击一级菜单 |
|
|
const clickMenu = (index)=>{ |
|
|
const clickMenu = (index)=>{ |
|
|
setActiveMenuIndex(index) |
|
|
setActiveMenuIndex(index) |
|
|
setActiveSubmenuIndex(-1) |
|
|
setActiveSubmenuIndex(-1) |
|
@ -91,11 +109,29 @@ function WechatMenuMgm() { |
|
|
type: configArray[index].type, |
|
|
type: configArray[index].type, |
|
|
url: configArray[index].url |
|
|
url: configArray[index].url |
|
|
}) |
|
|
}) |
|
|
setIsEdit(true) |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 点击子菜单 |
|
|
|
|
|
const choseOneMenu = (index, idx)=>{ |
|
|
|
|
|
setActiveMenuIndex(index) |
|
|
|
|
|
setActiveSubmenuIndex(idx) |
|
|
|
|
|
let temp = configArray[index].children[idx] |
|
|
|
|
|
setRightData(temp) |
|
|
|
|
|
} |
|
|
|
|
|
// 添加子菜单 |
|
|
const addOneMenu = (index)=>{ |
|
|
const addOneMenu = (index)=>{ |
|
|
|
|
|
if(activeSubmenuIndex > -1){ |
|
|
|
|
|
if(!/^[\u4e00-\u9fa5]{1,4}$/.test(rightData.name) && !/^[a-zA-Z]{1,8}$/.test(rightData.name) ){ |
|
|
|
|
|
message.error('名称不符合规范, 请重新输入') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if(!rightData.url){ |
|
|
|
|
|
message.error('子菜单网络地址不能为空') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
let temp = [...configArray] |
|
|
let temp = [...configArray] |
|
|
|
|
|
temp[index].type = '' |
|
|
|
|
|
temp[index].url = '' |
|
|
if(temp[index].children){ |
|
|
if(temp[index].children){ |
|
|
let tempchildren = [...temp[index].children] |
|
|
let tempchildren = [...temp[index].children] |
|
|
tempchildren.push({name: '子菜单' , type: 1, url: ""}) |
|
|
tempchildren.push({name: '子菜单' , type: 1, url: ""}) |
|
@ -103,35 +139,43 @@ function WechatMenuMgm() { |
|
|
}else{ |
|
|
}else{ |
|
|
temp[index].children = [{name: '子菜单', type: 1, url: ""}] |
|
|
temp[index].children = [{name: '子菜单', type: 1, url: ""}] |
|
|
} |
|
|
} |
|
|
|
|
|
setRightData({name: '子菜单', type: 1, url: ""}) |
|
|
setConfigArray(temp) |
|
|
setConfigArray(temp) |
|
|
|
|
|
|
|
|
|
|
|
setActiveSubmenuIndex(temp[index].children?.length - 1) |
|
|
// setRightData({name: '子菜单', type: 1, url: ""}) |
|
|
// setRightData({name: '子菜单', type: 1, url: ""}) |
|
|
// setActiveMenuIndex(index) |
|
|
// setActiveMenuIndex(index) |
|
|
// if(configArray[index].children?.length){ |
|
|
|
|
|
// setActiveSubmenuIndex(configArray[index].children?.length) |
|
|
|
|
|
|
|
|
// if(temp[index].children?.length){ |
|
|
|
|
|
// setActiveSubmenuIndex(temp[index].children?.length) |
|
|
// }else{ |
|
|
// }else{ |
|
|
// setActiveSubmenuIndex(0) |
|
|
// setActiveSubmenuIndex(0) |
|
|
// } |
|
|
// } |
|
|
// setIsEdit(false) |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const addFirstMenu = ()=>{ |
|
|
const addFirstMenu = ()=>{ |
|
|
setRightData({name: '一级菜单', type: 1, url: ""}) |
|
|
|
|
|
|
|
|
if(activeSubmenuIndex > -1){ |
|
|
|
|
|
if(!/^[\u4e00-\u9fa5]{1,4}$/.test(rightData.name) && !/^[a-zA-Z]{1,8}$/.test(rightData.name) ){ |
|
|
|
|
|
message.error('子菜单名称不符合规范, 请重新输入') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if(!rightData.url){ |
|
|
|
|
|
message.error('子菜单网络地址不能为空') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
setRightData({name: '一级菜单', type: '', url: ""}) |
|
|
if(configArray.length < 3){ |
|
|
if(configArray.length < 3){ |
|
|
setActiveMenuIndex(configArray.length) |
|
|
setActiveMenuIndex(configArray.length) |
|
|
let temp = [...configArray] |
|
|
let temp = [...configArray] |
|
|
temp.push({name: '一级菜单', type: 1, url: ""}) |
|
|
|
|
|
|
|
|
temp.push({name: '一级菜单', type: '', url: ""}) |
|
|
setConfigArray(temp) |
|
|
setConfigArray(temp) |
|
|
} |
|
|
} |
|
|
setActiveSubmenuIndex(-1) |
|
|
setActiveSubmenuIndex(-1) |
|
|
setIsEdit(false) |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const onChange = (type, e)=>{ |
|
|
const onChange = (type, e)=>{ |
|
|
// let value = e.target.value, temp = {...rightData} |
|
|
|
|
|
// temp[type] = value |
|
|
|
|
|
// setRightData(temp) |
|
|
|
|
|
let value = e.target.value |
|
|
|
|
|
|
|
|
let value = e.target.value, temp = {...rightData} |
|
|
|
|
|
temp[type] = value |
|
|
|
|
|
setRightData(temp) |
|
|
let temp_config = [...configArray] |
|
|
let temp_config = [...configArray] |
|
|
if(activeSubmenuIndex > -1 && activeMenuIndex > -1){ |
|
|
if(activeSubmenuIndex > -1 && activeMenuIndex > -1){ |
|
|
temp_config[activeMenuIndex].children[activeSubmenuIndex][type] = value |
|
|
temp_config[activeMenuIndex].children[activeSubmenuIndex][type] = value |
|
@ -142,6 +186,39 @@ function WechatMenuMgm() { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const publish = ()=>{ |
|
|
const publish = ()=>{ |
|
|
|
|
|
if(configArray.length == 0){ |
|
|
|
|
|
message.error('请先进行配置') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if(activeSubmenuIndex > -1){ |
|
|
|
|
|
if(rightData.url == '' ){ |
|
|
|
|
|
message.error('子菜单网页地址不能为空') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
let flag = true; |
|
|
|
|
|
for(let i = 0; i < configArray.length; i++){ |
|
|
|
|
|
if(!configArray[i].children){ |
|
|
|
|
|
if(configArray[i].type == '' || configArray[i].url == ''){ |
|
|
|
|
|
if(configArray[i].url == ''){ |
|
|
|
|
|
message.error('未添加子菜单的一级菜单网页地址不能为空') |
|
|
|
|
|
}else if(configArray[i].type == ''){ |
|
|
|
|
|
message.error('未添加子菜单的一级菜单消息类型不能为空') |
|
|
|
|
|
} |
|
|
|
|
|
setActiveMenuIndex(i) |
|
|
|
|
|
setRightData({ |
|
|
|
|
|
name: configArray[i].name, |
|
|
|
|
|
type: configArray[i].type, |
|
|
|
|
|
url: configArray[i].url |
|
|
|
|
|
}) |
|
|
|
|
|
flag = false |
|
|
|
|
|
break |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if(!flag){ |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
ajax.publishMenu(configArray).then(res=>{ |
|
|
ajax.publishMenu(configArray).then(res=>{ |
|
|
if(res.status == 20000){ |
|
|
if(res.status == 20000){ |
|
|
message.success(res.message) |
|
|
message.success(res.message) |
|
@ -154,88 +231,7 @@ function WechatMenuMgm() { |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const save = ()=>{ |
|
|
|
|
|
if(!/^[\u4e00-\u9fa5]{1,4}$/.test(rightData.name) && !/^[a-zA-Z]{1,8}$/.test(rightData.name) ){ |
|
|
|
|
|
message.error('名称不符合规范, 请重新输入') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if(!rightData.url){ |
|
|
|
|
|
message.error('网络地址不能为空') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if(activeMenuIndex > -1 && activeSubmenuIndex == -1){ |
|
|
|
|
|
// 添加一级菜单 |
|
|
|
|
|
// if(configArray.length){ |
|
|
|
|
|
// let lastMenu = configArray[configArray.length - 1] |
|
|
|
|
|
// if(lastMenu.children?.length){ //如果有子菜单, 不验证是否设置消息类型和网页地址, 但是要验证每个子菜单是否设置完整 |
|
|
|
|
|
// let flag = true; |
|
|
|
|
|
// for(let i = 0; i < lastMenu.children.length ;i++){ |
|
|
|
|
|
// if(!lastMenu.children[i].url){ |
|
|
|
|
|
// message.error('所有子菜单的网络地址不能为空') |
|
|
|
|
|
// flag = false |
|
|
|
|
|
// break |
|
|
|
|
|
// } |
|
|
|
|
|
// } |
|
|
|
|
|
// if(!flag){ |
|
|
|
|
|
// return |
|
|
|
|
|
// } |
|
|
|
|
|
// }else{ |
|
|
|
|
|
// if(!/^[\u4e00-\u9fa5]{1,4}$/.test(lastMenu.name) && !/^[a-zA-Z]{1,8}$/.test(lastMenu.name) ){ |
|
|
|
|
|
// message.error('上一个菜单的名称不符合规范, 请重新输入') |
|
|
|
|
|
// return |
|
|
|
|
|
// } |
|
|
|
|
|
// if(!lastMenu.url){ |
|
|
|
|
|
// message.error('请先设置上一个一级菜单的网络地址') |
|
|
|
|
|
// return |
|
|
|
|
|
// } |
|
|
|
|
|
// } |
|
|
|
|
|
// } |
|
|
|
|
|
// let temp = [...configArray] |
|
|
|
|
|
// temp.push({name: '一级菜单', type: 1, url: ""}) |
|
|
|
|
|
// setConfigArray(temp) |
|
|
|
|
|
// setActiveMenuIndex(configArray.length - 1) |
|
|
|
|
|
// setRightData({name: '一级菜单', type: 1, url: ""}) |
|
|
|
|
|
if(isEdit){ |
|
|
|
|
|
let temp = [...configArray] |
|
|
|
|
|
temp[activeMenuIndex].name = rightData.name |
|
|
|
|
|
temp[activeMenuIndex].type = rightData.type |
|
|
|
|
|
temp[activeMenuIndex].url = rightData.url |
|
|
|
|
|
setConfigArray(temp) |
|
|
|
|
|
message.success('一级菜单编辑成功') |
|
|
|
|
|
}else{ |
|
|
|
|
|
let temp = [...configArray] |
|
|
|
|
|
temp.push(rightData) |
|
|
|
|
|
setConfigArray(temp) |
|
|
|
|
|
message.success('一级菜单添加成功') |
|
|
|
|
|
setIsEdit(true) |
|
|
|
|
|
} |
|
|
|
|
|
}else{ |
|
|
|
|
|
if(isEdit){ |
|
|
|
|
|
let temp_arr = [...configArray]; |
|
|
|
|
|
console.log(temp_arr[activeMenuIndex]) |
|
|
|
|
|
// if(temp_arr[activeMenuIndex]?.children[activeSubmenuIndex]){ |
|
|
|
|
|
// temp_arr[activeMenuIndex]?.children[activeSubmenuIndex] = rightData |
|
|
|
|
|
// } |
|
|
|
|
|
temp_arr[activeMenuIndex].children[activeSubmenuIndex] = rightData |
|
|
|
|
|
setConfigArray(temp_arr) |
|
|
|
|
|
message.success('子菜单编辑成功') |
|
|
|
|
|
}else{ |
|
|
|
|
|
let temp = [...configArray] |
|
|
|
|
|
if(temp[activeMenuIndex].children){ |
|
|
|
|
|
let tempchildren = [...temp[activeMenuIndex].children] |
|
|
|
|
|
tempchildren.push(rightData) |
|
|
|
|
|
temp[activeMenuIndex].children = tempchildren |
|
|
|
|
|
}else{ |
|
|
|
|
|
temp[activeMenuIndex].children = [rightData] |
|
|
|
|
|
} |
|
|
|
|
|
setConfigArray(temp) |
|
|
|
|
|
message.success('子菜单添加成功') |
|
|
|
|
|
setIsEdit(true) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const save = ()=>{ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
useEffect(()=>{ |
|
|
useEffect(()=>{ |
|
@ -350,8 +346,10 @@ function WechatMenuMgm() { |
|
|
{/*  <Button type="primary" onClick={save}>保存</Button>  */} |
|
|
{/*  <Button type="primary" onClick={save}>保存</Button>  */} |
|
|
</> : null |
|
|
</> : null |
|
|
} |
|
|
} |
|
|
|
|
|
{ |
|
|
|
|
|
configArray.length > 0 ? <>  <Button type="primary" onClick={publish}>保存并发布</Button></> : null |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
 <Button type="primary" onClick={publish}>保存并发布</Button> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|