glhcp/server/app/admin/view/wechat/oa/oamenu.html

1285 lines
40 KiB
HTML
Raw Normal View History

2023-08-10 06:59:52 +00:00
{layout name="layout1" /}
<div class="wrapper">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
<div class="layui-colla-content layui-show">
*配置微信公众号菜单,点击确认,保存菜单并发布至微信公众号。
</div>
</div>
</div>
</div>
<div class="layui-form" lay-filter="">
<div id="app" class="row">
<div class="col-sm-12">
<div class="wechat-reply-wrapper wechat-menu">
<div class="ibox-content clearfix">
<div class="view-wrapper col-sm-4">
<div class="mobile-header">公众号</div>
<section class="view-body">
<div class="time-wrapper"><span class="time">{:date('H:i:s', time())}</span></div>
</section>
<div class="menu-footer">
<ul class="flex" id="menu">
{foreach $menu as $item_menu => $val_menu}
<li data-id={$item_menu}>
<span class="active-menu"><i class="icon-sub"></i>{$val_menu.name}</span>
<div class="sub-menu">
<ul>
{foreach $val_menu.sub_button as $item_child => $val_child }
<li data-id={$item_menu}_{$item_child}>
<span class="active-menu">{$val_child.name}</span>
</li>
{/foreach}
{if count($val_menu.sub_button) <5}
<li data-id={$item_menu}_1 class="add-menu"><i class="icon-add"></i>
</li>
{/if}
</ul>
</div>
</li>
{/foreach}
{if (!empty($menu) && count($menu) < 3) }
<li data-id={++$item_menu} class="add-menu"><i class="icon-add"></i></li>
{/if}
{if empty($menu) }
<li data-id=1 class="add-menu"><i class="icon-add"></i></li>
{/if}
</ul>
</div>
</div>
<div class="control-wrapper menu-control col-sm-8">
<h3 class="popover-title">菜单名称 <a class="fr del-menu" href="javascript:void(0);">删除</a>
</h3>
<p class="tips-txt">已添加子菜单,仅可设置菜单名称。</p>
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">菜单名称</label>
<div class="layui-input-block">
<input type="text" name="name" id="menu_name" placeholder="请输入"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">菜单类型</label>
<div class="layui-input-block">
<select lay-filter="menu_type" class="select" id="menu_type">
<option value="click">关键字</option>
<option value="view">跳转网页</option>
<option value="miniprogram">小程序</option>
</select>
</div>
</div>
<div class="layui-inline click">
<label class="layui-form-label">关键字</label>
<div class="layui-input-block">
<input type="text" name="key" id="key" placeholder="请输入"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline view" style="display: none">
<label class="layui-form-label">网页链接</label>
<div class="layui-input-block">
<input type="text" name="url" id="url" placeholder="请输入"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline miniprogram" style="display: none">
<label class="layui-form-label">appid</label>
<div class="layui-input-block">
<input type="text" name="appid" id="appid" placeholder="请输入"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline miniprogram" style="display: none">
<label class="layui-form-label">小程序路径</label>
<div class="layui-input-block">
<input type="text" name="pagepath" id="pagepath" placeholder="请输入"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-block">
<button class="layui-btn layui-btn-sm layui-btn-add_menu {$view_theme_color}">
确定
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn {$view_theme_color} publish" lay-submit lay-filter="setmnp">发布菜单
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<style>
@charset "UTF-8";
.flex {
display: -webkit-box;
display: -moz-box;
display: -webkit-flex;
display: -moz-flex;
display: -ms-flexbox;
display: flex;
}
#app {
padding-bottom: 80px
}
#app .layout {
border: 1px solid #d7dde4;
background: #f5f7f9;
position: relative;
border-radius: 4px;
overflow: hidden
}
#app .layout-logo {
width: 100px;
height: 30px;
background: #5b6270;
border-radius: 3px;
float: left;
position: relative;
top: 15px;
left: 20px
}
#app .layout-copy {
text-align: center;
padding: 10px 0 20px;
color: #9ea7b4
}
#app .layout-ceiling {
background: #464c5b;
padding: 10px 0;
overflow: hidden
}
#app .layout-ceiling-main {
float: right;
margin-right: 15px;
}
#app .layout-ceiling-main a {
color: #9ba7b5
}
#app .layout-breadcrumb {
padding: 10px 15px 0
}
#app .layout-content {
min-height: 200px;
margin: 15px;
overflow: hidden;
background: #fff;
border-radius: 4px;
margin-right: 0;
}
#app .layout-content-main {
padding-left: 10px;
position: relative;
width: 98.5%;
}
#app .layout-copy {
text-align: center;
padding: 10px 0 20px;
color: #9ea7b4
}
#app .layout-menu-left {
background: #464c5b
}
#app .layout-header {
height: 40px;
padding-left: 15px;
background: #fff;
box-shadow: 0 1px 1px rgba(0, 0, 0, .1)
}
#app .layout-logo-left {
width: 90%;
height: 30px;
background: #5b6270;
border-radius: 3px;
margin: 15px auto
}
#app .m-frame {
position: absolute;
background-color: #fff;
}
#app .m-tag-item {
display: inline-block
}
#app .layout-header {
padding-left: 15px;
margin-bottom: 5px;
}
#table-list {
padding: 25px 25px 0 25px;
}
#table-list .mp-search-wrapper {
float: right;
margin-left: 12px;
}
#table-list .mp-header-wrapper {
overflow: hidden;
}
#table-list .mp-header-wrapper h1 {
padding-left: 15px;
float: left;
font-size: 18px;
line-height: 24px;
padding-bottom: 20px;
font-weight: 400;
color: #464c5b;
}
.mp-form {
padding: 20px 20px 20px 0;
}
.mp-form .ivu-tree li {
margin: 0;
}
.mp-form .ivu-color-picker .ivu-select-dropdown {
left: -38px !important;
}
.mp-form .mp-upload {
display: inline-block;
}
.mp-form .demo-upload-list {
display: inline-block;
width: 60px;
height: 60px;
text-align: center;
line-height: 60px;
border: 1px solid transparent;
border-radius: 4px;
overflow: hidden;
background: #fff;
position: relative;
box-shadow: 0 1px 1px rgba(0, 0, 0, .2);
margin-right: 4px;
}
.mp-form .demo-upload-list img {
width: 100%;
height: 100%;
}
.mp-form .demo-upload-list-cover {
display: none;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, .6);
}
.mp-form .demo-upload-list:hover .demo-upload-list-cover {
display: block;
}
.mp-form .demo-upload-list-cover i {
color: #fff;
font-size: 20px;
cursor: pointer;
margin: 0 2px;
}
[v-cloak] {
display: none
}
.mp-form .mp-upload-btn {
width: 58px;
height: 58px;
line-height: 58px;
}
.mp-form .add-submit-item .ivu-btn {
position: fixed;
left: 0;
bottom: 0;
border-radius: 0;
}
.frameMove-enter-active {
animation-name: slideInLeft;
animation-duration: 0.4s !important;
}
.frameMove-leave-active {
animation-name: slideOutRight;
animation-duration: 0.4s !important;
}
.vertical-center-modal {
display: flex;
align-items: center;
justify-content: center;
}
.vertical-center-modal .ivu-modal {
top: 0;
}
.vertical-center-modal .ivu-modal-header {
z-index: 9;
position: relative;
}
.vertical-center-modal .ivu-modal-close {
z-index: 10;
}
.layout-header {
height: 40px;
background: #fff;
box-shadow: 0 1px 1px rgba(0, 0, 0, .1);
}
.wechat-reply-wrapper .fl {
float: left;
}
.wechat-reply-wrapper .fr {
float: right;
}
.wechat-reply-wrapper .clearfix:after {
content: ".";
display: block;
height: 0;
visibility: hidden;
clear: both;
}
.wechat-reply-wrapper .ibox-title {
padding: 15px;
font-size: 16px;
border-bottom: 1px solid #e7eaec;
}
.wechat-reply-wrapper .ibox-title p {
border-left: 2px solid #2494f2;
text-indent: 8px;
}
.wechat-reply-wrapper .ibox-content {
padding: 15px;
display: flex;
flex-wrap: wrap
}
.wechat-reply-wrapper .ibox-content .view-wrapper {
position: relative;
margin-right: 20px;
width: 317px;
background-image: url("/static/admin/images/mobile_head.png");
background-repeat: no-repeat;
background-position: left top;
background-color: #f5f5f5;
margin-bottom: 20px;
}
.wechat-reply-wrapper .ibox-content .view-wrapper .mobile-header {
position: absolute;
left: 0;
top: 36px;
width: 100%;
text-align: center;
color: #fff;
font-size: 16px;
}
.wechat-reply-wrapper .ibox-content .view-wrapper .view-body {
margin-top: 65px;
height: 500px;
}
.wechat-reply-wrapper .view-wrapper .view-body .time-wrapper {
margin-bottom: 10px;
text-align: center;
}
.wechat-reply-wrapper .view-wrapper .view-body .time-wrapper .time {
display: inline-block;
color: #f5f5f5;
display: inline-block;
color: #f5f5f5;
background: rgba(0, 0, 0, .3);
padding: 3px 8px;
border-radius: 3px;
font-size: 12px;
}
.wechat-reply-wrapper .view-wrapper .view-body .view-item {
display: none;
}
.wechat-reply-wrapper .view-wrapper .view-body .view-item.show {
display: none;
}
.wechat-reply-wrapper .view-wrapper .view-body .view-item .avatar {
width: 40px;
height: 40px;
}
.wechat-reply-wrapper .view-wrapper .view-body .view-item .avatar img {
max-width: 100%;
height: auto;
}
.wechat-reply-wrapper .view-wrapper .view-body .view-item .box-content {
position: relative;
max-width: 60%;
min-height: 40px;
margin-left: 15px;
padding: 10px;
border: 1px solid #ccc;
word-break: break-all;
word-wrap: break-word;
line-height: 1.5;
border-radius: 5px;
}
.wechat-reply-wrapper .view-wrapper .view-body .view-item .box-content .picbox {
max-width: 100%;
}
.wechat-reply-wrapper .view-wrapper .view-body .view-item .box-content:before {
content: '';
position: absolute;
left: -13px;
top: 11px;
display: block;
width: 0;
height: 0;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
border-top: 10px solid #ccc;
-webkit-transform: rotate(90deg);
transform: rotate(90deg);
}
.wechat-reply-wrapper .view-wrapper .view-body .view-item .box-content:after {
content: '';
content: '';
position: absolute;
left: -12px;
top: 11px;
display: block;
width: 0;
height: 0;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
border-top: 10px solid #f5f5f5;
-webkit-transform: rotate(90deg);
transform: rotate(90deg);
}
.wechat-reply-wrapper .submit {
text-align: center;
}
/* 图文 */
.view-wrapper .view-body .view-item.news-box {
width: 100%;
background-color: #fff;
border-radius: 5px;
}
.view-wrapper .view-body .view-item .vn-content {
padding: 0;
}
.view-wrapper .view-body .view-item .vn-content .vn-title {
line-height: 1.5;
font-size: 16px;
}
.view-wrapper .view-body .view-item .vn-content .vn-time {
padding: 5px 0;
font-size: 12px;
color: #999;
}
.view-wrapper .view-body .view-item .vn-content .vn-picture {
width: 100%;
height: 150px;
background-size: cover;
background-position: center center;
border-radius: 5px 5px 0 0;
}
.view-wrapper .view-body .view-item .vn-content .vn-picture-info {
line-height: 22px;
color: #7b7b7b;
padding: 0;
display: block;
overflow: hidden;
word-break: break-all;
text-overflow: ellipsis;
font-size: 12px;
white-space: nowrap;
}
.view-wrapper .view-body .view-item .vn-more {
display: block;
padding: 10px 0 0;
border-top: 1px solid #dddddd;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.view-wrapper .view-body .view-item .vn-content .con-item-box {
position: relative;
}
.view-wrapper .view-body .view-item .vn-content .con-item-box .first-title {
width: 100%;
height: 44px;
line-height: 44px;
font-size: 14px;
position: absolute;
left: 0;
bottom: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap; /*background: rgba(0,0,0,.8);*/
color: #fff;
text-indent: 1em;
}
.view-wrapper .view-body .view-item .vn-content .con-item-list {
margin-top: 10px;
margin: 6px 10px 0 10px;
border-top: 1px solid #FBFBFB;
}
.view-wrapper .view-body .view-item .vn-content .con-item-list .list-tit-info {
width: 70%;
line-height: 1.5;
word-wrap: break-word;
}
.view-wrapper .view-body .view-item .vn-content .con-item-list .list-pic {
width: 20%;
min-height: 50px;
background-size: cover;
background-position: center center;
}
/* 音乐 */
.view-wrapper .view-body .view-item.music-box .box-content {
position: relative;
width: 100%;
background: #080;
color: #fff;
border-color: #080;
}
.view-wrapper .view-body .view-item.music-box .box-content p {
width: 75%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.view-wrapper .view-body .view-item.music-box .box-content .music-icon {
position: absolute;
right: 11px;
top: 50%;
width: 30px;
height: 30px;
background: #0a0;
text-align: center;
line-height: 30px;
margin-top: -15px;
font-size: 16px;
}
.view-wrapper .view-body .view-item.music-box .box-content:after {
display: none;
}
.view-wrapper .view-body .view-item.music-box .box-content:before {
border-top: 10px solid #080;
}
/* 视频 */
.view-wrapper .view-body .view-item.video-box {
width: 100%;
background-color: #fff;
border: 1px solid #ccc;
border-radius: 5px;
}
.view-wrapper .view-body .view-item.video-box .vn-title {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
/* 右侧控制器 */
.wechat-reply-wrapper .ibox-content .control-wrapper {
position: relative;
width: 535px;
height: 565px;
padding: 0;
border: 1px solid #e2e2e2;
display: none
}
.wechat-reply-wrapper .ibox-content .control-wrapper .control-title {
position: absolute;
left: 71px;
top: -12px;
width: auto;
padding: 0 10px;
font-size: 20px;
background-color: #fff;
}
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body {
margin-top: 40px;
padding: 0 10px;
}
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .form-group label {
font-weight: normal;
}
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .form-group .tips:after {
content: '*';
color: red;
position: absolute;
margin-left: 4px;
font-weight: bold;
line-height: 1.8em;
}
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .form-group .group-item {
position: relative;
}
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .form-group .group-item .file-btn {
position: absolute;
right: 15px;
top: 0;
display: block;
width: 66px;
border-radius: 6px;
cursor: pointer;
padding: .5rem;
background-color: #18a689;
color: #fff;
text-align: center;
height: 100%;
line-height: 23px;
}
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .form-group .group-item textarea {
resize: none;
width: 100%;
height: 100px;
padding: 10px;
}
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .tips-info {
padding-left: 100px;
font-size: 12px;
color: #737373;
}
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .control-main .control-item {
display: none;
}
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .control-main .control-item.show {
display: block;
}
/* 微信菜单定制 */
.wechat-menu {
position: relative;
}
.wechat-menu ul {
padding: 0;
}
.wechat-menu .menu-footer {
position: absolute;
left: 0;
bottom: -10px;
width: 100%;
padding-left: 43px;
box-sizing: border-box;
background: url("/static/admin/images/mobile_foot.png") no-repeat 0 0;
border-top: 1px solid #e7e7eb;
}
.wechat-menu .menu-footer span {
display: block;
}
.wechat-menu .menu-footer .icon-add {
background: url("/static/admin/images/index.png") 0 0 no-repeat;
width: 14px;
height: 14px;
vertical-align: middle;
display: inline-block;
margin-top: -2px;
border-bottom: none !important;
}
.wechat-menu .menu-footer li {
position: relative;
-webkit-flex: 1;
-moz-flex: 1;
-ms-flex: 1;
flex: 1;
height: 50px;
line-height: 50px;
text-align: center;
cursor: pointer;
list-style: none;
border: 1px solid transparent;
border-right: 1px solid #e7e7eb;
}
.wechat-menu .menu-footer .icon-sub {
background: url("/static/admin/images/index.png") 0 -48px no-repeat;
width: 7px;
height: 7px;
vertical-align: middle;
display: inline-block;
margin-right: 2px;
margin-top: -2px;
}
.wechat-menu .menu-footer .sub-menu {
position: absolute;
border-radius: 3px;
border: 1px solid #d0d0d0;
display: block;
bottom: 60px;
width: 100%;
background-color: #fafafa;
}
.wechat-menu .menu-footer .sub-menu:after {
content: '';
position: absolute;
width: 10px;
height: 10px;
background: #fafafa;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
bottom: -5px;
border-bottom: 1px solid #d0d0d0;
border-right: 1px solid #d0d0d0;
left: 50%;
margin-left: -5px;
}
.wechat-menu .menu-footer .sub-menu li {
border-right: 0;
border-bottom: 1px solid #d0d0d0;
}
.wechat-menu .menu-footer .sub-menu li:last-child {
border-bottom: 0;
}
.wechat-menu .menu-footer .active {
border: 1px solid #44b549;
}
.wechat-menu .menu-footer .sub-menu li.active {
border: 1px solid #44b549 !important;
}
/* 右侧 */
.wechat-menu .menu-control .popover-title {
padding: 8px 14px;
margin: 0;
font-size: 14px;
background-color: #f7f7f7;
border-bottom: 1px solid #ebebeb;
border-radius: 5px 5px 0 0;
font-weight: 400;
wechat-reply-wrapper . ibox-content . control-wrapper
}
.wechat-menu .menu-control .popover-title a {
color: #06C;
font-size: 12px;
}
.wechat-menu .menu-control .tips-txt {
line-height: 40px;
padding: 0 20px;
}
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body.menu-content {
padding: 0 20px;
margin-top: 0;
}
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body.menu-content .radio {
display: inline-block !important;
width: 45%;
}
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body.menu-content .menu-control-box {
padding: 0 20px;
}
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body.menu-content .menu-control-box .radio {
display: block !important;
width: 100%;
}
.menu-control-box .item {
display: none;
}
.menu-control-box .show {
display: block;
}
</style>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/' //静态资源所在路径
}).use(['element', 'table', 'jquery'], function () {
var $ = layui.$, form = layui.form;
var menu = JSON.parse('{:json_encode($menu)}');
// 菜单被选中
$(document).on('click', '.active-menu', function () {
var ids = $(this).parent().attr("data-id");
var id = ids.split("_");
$('.active').removeClass('active');
$(this).addClass("active");
if (id.length < 2) { //
var one_id = $('.active').parent().index();
menu_info = menu[one_id];
} else { // 二级菜单
var two_id = $('.active').parent().index();
var one_id = $('.active').parent().parent().parent().parent().index();
menu_info = menu[one_id].sub_button[two_id];
}
if (menu_info) {
// 回显菜单信息
menuInfo(menu_info);
// 显示 右侧菜单控制框
$('.menu-control').css('display', 'block');
} else { //
initMenu();
}
})
//删除菜单
$(document).on('click', '.del-menu', function () {
var data_id = $('.active').parent();
//用于判断几级菜单
var ids = data_id.attr("data-id");
var id = ids.split("_");
if (id.length == 1) { // 一级菜单
var one_id = $('.active').parent().index();
menu.splice(one_id, 1);
if (menu.length == 2) { // 如果一级菜单的第3个菜单被删除了要追加一个 添加一级菜单 的按钮
var data_id = parseInt(id[0]) + 1;
$('#menu').append("<li data-id='" + data_id + " ' class='add-menu'> <i class='icon-add'></i></li>");
}
} else { // 二级菜单
var two_id = $('.active').parent().index();
var one_id = $('.active').parent().parent().parent().parent().index();
menu[one_id].sub_button.splice(two_id, 1);
if (menu[one_id].sub_button.length < 5) { //
var sub_button_id = parseInt(id[1]) + 1
var data_id = id[0] + '_' + sub_button_id;
if (menu[one_id].sub_button.length == 4) { // 如果删除的是二级菜单的第5个菜单追加 添加菜单按钮
$('.active').parent().parent().append("<li data-id='" + data_id + " ' class='add-menu'><i class='icon-add'></i></li>");
}
}
}
$('.active').parent().remove()
$('.active').removeClass('active');
$('.menu-control').css('display', 'none');
})
//添加菜单
$(document).on('click', '.add-menu', function () {
if ($('.menu-control').css('display') == 'block') {
layer.msg('请先确定菜单', {
time: 2000, //2s后自动关闭
});
return false;
}
$(this).removeClass("add-menu");
var ids = $(this).attr("data-id");
var id = ids.split("_");
$('.menu-control').css('display', 'block');
initMenu();
if (id.length == 1) { // 一级菜单
// 只有一个一级菜单
if (menu.length < 2) {
var data_id = menu.length + 1
// 追加 添加菜单按钮
$(this).parent().append("<li data-id='" + data_id + " ' class='add-menu'> <i class='icon-add'></i></li>");
// 移除添加图标
$(this).children().remove();
// 增加 一级菜单 文本
$(this).append("<span class='active-menu'> <i class='icon-sub'></i>一级菜单</span>")
// 置为 被激活状态
$(this).children().addClass('active');
}
// 最后一个一级菜单
if (menu.length == 2) {
$(this).children().remove();
$(this).append("<span class='active-menu'><i class='icon-sub'></i>一级菜单</span>")
$(this).children().addClass('active');
}
// 追加 二级菜单添加按钮
var data_id = id[0] + '_' + 0;
$(this).append("<div class='sub-menu'><ul><li data-id='" + data_id + " 'class='add-menu'><i class='icon-add'></i></li></ul></div>");
} else { //二级菜单
var one_id = $(this).parent().parent().parent().index();
if (menu[one_id].sub_button.length < 4) { //
var sub_button_id = parseInt(id[1]) + 1
var data_id = id[0] + '_' + sub_button_id;
$(this).parent().append("<li data-id='" + data_id + " ' class='add-menu'> <i class='icon-add'></i></li>");
$(this).children().remove();
$(this).append("<span class='active-menu' >二级菜单</span>")
$(this).children().addClass('active');
return 0;
}
// 最后一个二级菜单
if (menu[one_id].sub_button.length == 4) {
$(this).children().remove();
$(this).append("<span class='active-menu'>二级菜单</span>")
}
$(this).children().addClass('active');
}
})
// 右侧菜单控制器输入完菜单名称后,同步至被激活的菜单上
$(document).on('change', '#menu_name', function () {
menu_name = $(this).val();
active = $('.active').text(menu_name);
});
// 确认添加菜单
$(document).on('click', '.layui-btn-add_menu', function () {
var menu_name = $('#menu_name').val();
var menu_type = $('#menu_type').val();
var result = checkData(menu_name, menu_type); //验证数据
if (result) {
mergeMenu(menu_name, menu_type); //合并菜单
$('.active').removeClass('active');
$('.menu-control').css('display', 'none');
}
})
//菜单类型切换
form.on('select(menu_type)', function (data) {
if (data.value == 'click') {
$('.click').css('display', 'block');
$('.view').css('display', 'none');
$('.miniprogram').css('display', 'none');
}
if (data.value == 'view') {
$('.click').css('display', 'none');
$('.view').css('display', 'block');
$('.miniprogram').css('display', 'none');
}
if (data.value == 'miniprogram') {
$('.click').css('display', 'none');
$('.view').css('display', 'block');
$('.miniprogram').css('display', 'block');
}
})
//回显菜单信息
function menuInfo(menu_info) {
$('#menu_name').val(menu_info.name);
$("#menu_type").val(menu_info.type);
form.render('select');
if (menu_info.type == 'click') { // 关键字
$('.click').css('display', 'block');
$('.view').css('display', 'none');
$('.miniprogram').css('display', 'none');
$('#key').val(menu_info.key);
}
if (menu_info.type == 'view') { // 跳转网页
$('.click').css('display', 'none');
$('.view').css('display', 'block');
$('.miniprogram').css('display', 'none');
$('#url').val(menu_info.url);
}
if (menu_info.type == 'miniprogram') { // 小程序
$('.click').css('display', 'none');
$('.view').css('display', 'block');
$('.miniprogram').css('display', 'block');
$('#url').val(menu_info.url);
$('#appid').val(menu_info.appid);
$('#miniprogram').val(menu_info.pagepath);
}
}
//验证数据
function checkData(name, type) {
if ($.trim(name) == '') {
layer.msg('请输入菜单名称', {
time: 2000, //2s后自动关闭
});
return false;
}
switch (type) {
case 'click':
if ($('#key').val() == '') {
layer.msg('请输入关键词', {
time: 2000, //2s后自动关闭
});
return false;
}
break;
case 'view':
if ($('#url').val() == '') {
layer.msg('请输入网页链接', {
time: 2000, //2s后自动关闭
});
return false;
}
break;
case 'miniprogram':
if ($('#url').val() == '') {
layer.msg('请输入网页链接', {
time: 2000, //2s后自动关闭
});
return false;
}
if ($('#appid').val() == '') {
layer.msg('请输入appid', {
time: 2000, //2s后自动关闭
});
return false;
}
if ($('#pagepath').val() == '') {
layer.msg('请输入小程序路径', {
time: 2000, //20s后自动关闭
});
return false;
}
break;
}
return true;
}
//合并菜单
function mergeMenu(name, type) {
var data_id = $('.active').parent();
var ids = data_id.attr("data-id");
var id = ids.split("_");
var data = new Object();
switch (type) {
case 'click':
data = {
'name': name,
'key': $('#key').val(),
'type': type,
}
break;
case 'view':
data = {
'name': name,
'url': $('#url').val(),
'type': type,
}
break;
case 'miniprogram':
data = {
'name': name,
'url': $('#url').val(),
'appid': $('#appid').val(),
'pagepath': $('#pagepath').val(),
'type': type,
}
break;
}
if (id.length < 2) { //
var one_id = $('.active').parent().index();
data.sub_button = [];
if (menu[one_id]) { //如果存在数组,进行更新
menu[one_id] = data;
return true
}
menu.push(data);
} else { // 二级菜单
var two_id = $('.active').parent().index();
var one_id = $('.active').parent().parent().parent().parent().index();
if (menu[one_id].sub_button[two_id]) { //如果存在数组,进行更新
menu[one_id].sub_button[two_id] = data;
return true;
}
menu[one_id].sub_button.push(data);
}
return true;
}
//初始化菜单
function initMenu() {
// 显示 关键字输入框
$('.click').css('display', 'block');
// 隐藏 网页链接输入框
$('.view').css('display', 'none');
// 隐藏 appid/小程序路径 输入框
$('.miniprogram').css('display', 'none');
// 设置 菜单类型 为 click(关键字)
$("#menu_type").val('click');
// 刷新 下拉菜单
form.render('select');
// 设置输入框初始值为 空字符串
$('#menu_name').val('');
$('#url').val('');
$('#key').val('');
$('#appid').val('');
$('#pagepath').val('');
}
//发布
$(document).on('click', '.publish', function () {
if (menu.length === 0) {
layer.msg('请先设置菜单', {
time: 2000, //20s后自动关闭
});
return false;
}
like.ajax({
url: '{:url("wechat.oa/pulishMenu")}',
data: JSON.stringify({button: menu}),
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (res) {
if (res.code) {
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
});
} else {
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 2
, time: 2000
});
}
}
})
})
});
</script>