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

1285 lines
40 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{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>