1285 lines
40 KiB
HTML
1285 lines
40 KiB
HTML
{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> |