/**
*ZMP
*加载之外的扩展
*/
var _token = $('#token').attr('content');
layui.config({
base: '/static/manager/extend/'
}).extend({
iconPicker: 'iconPicker'
});
layui.use(['element','form','carousel','layer','laydate'], function(){
var element = layui.element,//导航的hover效果、二级菜单等功能,需要依赖element模块
form = layui.form,iconPicker = layui.iconPicker,layer=layui.layer,laydate=layui.laydate,carousel = layui.carousel;
element.render();
form.render();
/**
* ZMP
* @desc 权限列表的全选与不全选
*/
$('.perm-read-only').each(function(){
$(this).prop("checked", true);
form.render();
})
form.on('checkbox(parents)', function(data){
if($(this).hasClass('perm-read-only')){
data.elem.checked=true;
}
var a = data.elem.checked,
$childCheck=$(this).parents(".rules-group").children(".layui-card-body").find('input[type="checkbox"]'); //所有子复选框
if (a) {
$($childCheck).prop("checked", true);
} else {
$($childCheck).each(function(){
if(!$(this).hasClass('perm-read-only')){
$(this).prop("checked", false);
}
})
}
form.render('checkbox');
});
form.on('checkbox(childrens)', function (data) {
var $parentCheck = $(this).parents(".rules-group").find(".layui-card-header").find('input[type="checkbox"]'), //所属父复选框
$brotherCheck = $(this).parent(".layui-card-body").find('input[type="checkbox"]');//同级子复选框
var status = true;
if($(this).hasClass('perm-read-only')){
$(this).prop("checked", true);
}
//只要存在一个子选项被选中则复选项状态修改为选中
$brotherCheck.each(function () {
if (this.checked && !$(this).hasClass('perm-read-only')) {
status = true;
}
});
if (status) {
$($parentCheck).prop('checked', true);
} else {
$($parentCheck).prop('checked', false);
}
form.render('checkbox');
});
// layui-table 全选操作(默认选中的用perm-read-only类标识,默认禁选用disabled="disabled"标识)
form.on('checkbox(select_all)', function(data){
var parentTableCheck = $(this).parents(".layui-table").find('input[lay-filter="select_all"]'); //所属全选复选框
var childrenCheck = $(this).parents(".layui-table").find('input[lay-filter="select_item"]'); //所属子同复选框
if(data.elem.checked) {
$(childrenCheck).each(function(){
if (!$(this).prop('disabled')) {
$(this).prop("checked", true);
}
});
} else {
$(childrenCheck).each(function(){
if(!$(this).hasClass('perm-read-only')){
$(this).prop("checked", false);
}
});
}
form.render('checkbox');
});
// layui-table 单个选择操作
form.on('checkbox(select_item)', function(data){
var parentTableCheck = $(this).parents(".layui-table").find('input[lay-filter="select_all"]'); //所属全选复选框
var brotherCheck = $(this).parents(".layui-table").find('input[lay-filter="select_item"]'); //所属同级复选框
var allChecked = true;
if($(this).hasClass('perm-read-only')){
$(this).prop("checked", true);
}
brotherCheck.each(function () {
if (!$(this).prop("disabled") && !$(this).hasClass('perm-read-only')) {
if (!$(this).prop("checked")) {
allChecked = false;
}
}
});
if(allChecked) {
parentTableCheck.prop('checked', true);
} else {
parentTableCheck.prop('checked', false);
}
form.render('checkbox');
});
//栏目分类 编辑页面 模型修改事件
form.on('select(cate-model)', function (data) {
//获取原始选中value
var select_value = $('.cate-model').data('selected');
// 获取文本
// console.log($(data.elem).find("option:selected").text());
//当前选中value
var curr_value = data.value;
if (select_value != curr_value) { // 斗笔layui.form 实现一个onchange都这么麻烦
//提示
layer.alert('更改栏目类型提交后,将清空旧有栏目下所有数据,请谨慎操作', {
skin: 'layui-layer-molv'
,closeBtn: 0
});
}
});
var answerCount = $('#answer-count').data('count');
$('.add-answer').click(function () {
var html = '
';
$('.add-answer-btn').before(html);
answerCount ++;
form.render('checkbox');
});
$('body').on('click', '.close-answer', function () {
$(this).parent().parent().remove();
});
/**
* ZMP
* @desc 表格复选框操作(每个页面仅限一个input[lay-filter="childrens-table"]表格表单)
*/
var values=[];
form.on('checkbox(parents-table)', function(data){
var a = data.elem.checked,
$childCheck=$(this).parents(".layui-table").find('input[lay-filter="childrens-table"]');//所有子复选框
values = [];
if($(this).hasClass('perm-read-only')){
$(this).prop("checked", true);
}
if (a) {
$($childCheck).each(function(){
if (!$(this).prop('disabled')) {
$(this).prop("checked", true);
values.push($(this).val());
}
})
} else {
$($childCheck).each(function(){
if($(this).hasClass('perm-read-only')) {
$(this).prop("checked", true);
values.push($(this).val());
} else {
$(this).prop("checked", false);
}
})
values=[];
}
form.render('checkbox');
});
form.on('checkbox(childrens-table)', function (data) {
var $parentCheck = $(this).parents(".layui-table").find('input[lay-filter="parents-table"]'), //所属父复选框
$brotherCheck = $(this).parents(".layui-table").find('input[lay-filter="childrens-table"]');//同级子复选框
if($(this).hasClass('perm-read-only')){
$(this).prop("checked", true);
}
var status = false;
if(data.elem.checked){
values.push(data.value)
}else{
var index = values.indexOf(data.value);
values.splice(index, 1);
}
$brotherCheck.each(function () {
if (!this.checked) {
status = true;
}
});
if($($parentCheck).hasClass('perm-read-only')) {
$($parentCheck).prop('checked', true);
} else if (status) {
$($parentCheck).prop('checked', false);
} else {
$($parentCheck).prop('checked', true);
}
form.render('checkbox');
});
// 角色分配权限
form.on('checkbox(parent-rule)', function(data){
var a = data.elem.checked,
$childCheck=$(this).parents(".layui-table").find('input[lay-filter="children-rule"]');//所有子集
if($(this).hasClass('perm-read-only')){
$(this).prop("checked", true);
}
if (a) {
$($childCheck).each(function(){
if (!$(this).prop('disabled')) {
$(this).prop("checked", true);
}
})
} else {
$($childCheck).each(function(){
if($(this).hasClass('perm-read-only')) {
$(this).prop("checked", true);
} else {
$(this).prop("checked", false);
}
})
}
form.render('checkbox');
});
form.on('checkbox(children-rule)', function (data) {
var $parentCheck = $(this).parents(".layui-table").find('input[lay-filter="parent-rule"]'), // 父级
$brotherCheck = $(this).parents(".layui-table").find('input[lay-filter="children-rule"]');// 子级
if($(this).hasClass('perm-read-only')){
$(this).prop("checked", true);
}
var allChecked = false;
$brotherCheck.each(function () {
var isShow = $(this).data('show');
var name = $(this).data('name');
var nameSplit = name.split('/');
if (this.checked && ((parseInt(isShow) > 0 || (nameSplit.length > 0 && nameSplit[nameSplit.length - 1] == 'index')) || $($parentCheck).prop('checked'))) {
allChecked = true;
}
});
if($($parentCheck).hasClass('perm-read-only')) {
$($parentCheck).prop('checked', true);
} else if (allChecked) {
$($parentCheck).prop('checked', true);
} else {
$($parentCheck).prop('checked', false);
}
form.render('checkbox');
});
// 批量删除(单页仅限一个input[lay-filter="parents-table"] 表格表单)
if($('.delAll').length > 0){
$('.delAll').click(function(){
if (values.length > 0){
var url = $(this).data('url');
layerConfirm('primary','确定删除?',url,{"ids":values})
} else {
layer.msg('请选择需要操作的数据')
}
});
}
// 批量设置(单页仅限一个checkTable设置类表格表单)
if($('.setAll').length > 0){
$('.setAll').click(function(){
var result = [];
var setCheck = $(".checkTable").find('input[lay-filter="childrens-table"]');
setCheck.each(function () {
if ($(this).prop('checked')) {
result.push($(this).val());
}
});
if (result.length > 0){
var url = $(this).data('url');
layerConfirm('primary','确定需要对选中的数据进行设置吗?',url,{"ids":result})
} else {
layer.msg('请选择需要操作的数据')
}
});
}
// 文章批量操作
if($('.batch_all').length > 0){
$('.batch_all').click(function(){
if (values.length > 0){
var url = $(this).data('url');
var title = $(this).attr('title')
batch_box_show(url,values,'','','',title);
} else {
layer.msg('请选择需要操作的数据')
}
})
}
// 单文章属性批量操作
if($('.batch_btn').length > 0){
$('.batch_btn').click(function(){
var url = $(this).data('url');
var id = $(this).data('id');
var top = $(this).data('top');
var hot = $(this).data('hot');
var recommend = $(this).data('recommend');
var title = $(this).attr('title')
batch_box_show(url,id,top,hot,recommend,title);
})
}
// 耗时操作
if($('.btn-long-time').length > 0) {
$('.btn-long-time').click(function () {
layer.msg('这是一个耗时操作!请耐心等待...', {time: 1500});
var loading = layer.load(2, {shade: false});
var url = $(this).data('url');
var refresh = parseInt($(this).data('refresh'));
$.ajax({
url: url,
data: {_token:_token},
type: 'POST',
dataType: 'json',
timeout: 10000,
success: function(data){
layer.close(loading);
if (data.code == 0){
if($('.operate-result').length > 0) {
$('.operate-result').text(data.msg);
}
layer.msg('操作成功!', {time: 1500});
if (refresh > 0) {
setTimeout(function () {
location.reload();
}, 3000);
}
} else {
layer.msg(data.msg);
}
},
error:function(xhr,type,errorThrown){
layer.close(loading);
layer.msg('操作失败!', {time: 1500});
}
});
});
}
// 文件批量删除(按路径)
if($('.file-del').length > 0) {
$('.file-del').click(function () {
var vals = new Array();
var tableId = $(this).data('filter');
var url = $(this).data('url');
$('#'+tableId).find('.select_item').each(function () {
if($(this).prop('checked')) {
vals.push($(this).val());
}
});
if (vals.length > 0){
layerConfirm('primary','确定删除?',url,{"paths":vals})
} else {
layer.msg('请选择需要操作的数据')
}
});
}
//获取hash来切换选项卡,假设当前地址的hash为lay-id对应的值
var layid = location.hash.replace(/^#site=/, '');
element.tabChange('site', layid); //假设当前地址为:http://a.com#site=222,那么选项卡会自动切换到“发送消息”这一项
//监听Tab切换,以改变地址hash值
element.on('tab(site)', function(){
location.hash = 'site='+ this.getAttribute('lay-id');
});
form.on('submit(submitAll)', function(data){
var url=$(data.elem).parents('form').data('action')
if(typeof(editor)!=='undefined'){
//data.field.content=editor.getData()
}
formSubmit(url,data.field)
return false
});
form.verify({
require: function(value, item){ //value:表单的值、item:表单的DOM对象
if(!value){
var masg= $(item).attr('placeholder');
return masg;
}
}
});
});
//属性功能
function batch_box_show(url,values,top,hot,recommend,title){
var html = '';
layer.open({
type: 1,
title: title,
shadeClose: true,
area: ['480px',''], //宽高
move: false,
content: html,
success:function(layero, index) {
alertRender()
}
});
}
function betch_form(obj){
var id = $(obj).attr('data-id');
var url = $(obj).attr('data-url');
var top = $(".batch_box select[name='top']").val();
var hot = $(".batch_box select[name='hot']").val();
var recommend = $(".batch_box select[name='recommend']").val();
var arr = new Array();
$.each(id.split(','),function(i,item){
arr.push(item)
})
$.ajax(url,{
data:{
id:arr,
top:top,
hot:hot,
recommend:recommend,
_token:_token
},
dataType:'json',//服务器返回json格式数据
type:'post',//HTTP请求类型
timeout:10000,//超时时间设置为10秒;
success:function(data){
if (data.code == 0){
layer.msg('操作成功!');
location.reload();
} else {
layer.msg(data.msg);
}
},
error:function(xhr,type,errorThrown){
}
});
}
/**
* 推荐、置顶、热门操作
*/
if ($('.recommend').length > 0) {
$('.recommend').click(function () {
var id = $(this).data('id');
var param = $(this).data('param');
var url = $(this).data('url');
$.post(url,{id:id,param:param,_token:_token},function(data){
if(data.code == 0){
layer.msg('操作成功', {time:1000}, function (index) {
layer.close(index);
location.reload();
});
}else{
layer.msg(data.msg, {time:1500});
}
});
});
}
/**
* 删除操作
*/
if($('.del').length > 0){
$('.del').click(function(){
var that = $(this);
var tip = '';
if(that.data('tip') != '' && that.data('tip') != undefined){
tip = that.data('tip')
}
layerConfirm('primary','确定删除'+tip+'?',that.data('url'),{id:that.data('id')})
});
}
/**
* 日期插件
* milo
* 2018-01-30
*/
if($('.layui-date').length) {
$('.layui-date').each(function(){
id = '#' + $(this).attr('id');
layui.use('laydate',function(){
var laydate = layui.laydate;
laydate.render({
elem: id
});
});
});
}
//排序操作
if($('.sort').length > 0){
$('.sort').click(function(){
var url = $(this).data('url');
var id = $(this).data('id');
var sort = $(this).data('sort');
$.post(url,{id:id,sort:sort,_token:_token},function(data){
if(data.code == 0){
layer.msg('排序成功', {time:1000}, function (index) {
location.reload();
});
}else{
layer.msg(data.msg, {time:1500});
}
});
});
var timeout;
$(".sort").mousedown(function() {
var title = '信息';
var id = $(this).attr('data-id');
var url = $(this).data('url');
var sort = $(this).attr('data-sort');
if($(this).attr('data-sort') == 'up'){
title = '向上'
}
if($(this).attr('data-sort') == 'down'){
title = '向下'
}
timeout = setTimeout(function() {
layer.prompt({
formType: 0,
value: '',
placeholder:'请输入位数',
title: title
}, function(value, index, elem){
$.ajax(url,{
data:{
id:id,
sort:sort,
num:value,
_token:_token
},
dataType:'json',//服务器返回json格式数据
type:'post',//HTTP请求类型
timeout:10000,//超时时间设置为10秒;
success:function(data){
if(data.code == 0){
layer.msg('排序成功');
location.reload();
}else{
layer.msg(data.msg)
}
},
error:function(xhr,type,errorThrown){
}
});
layer.close(index);
});
}, 1000);
});
$(".sort").mouseup(function() {
clearTimeout(timeout);
});
$(".sort").mouseout(function() {
clearTimeout(timeout);
});
}
//图片点击放大
layer.photos({
photos: '.layer-photos'
,anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数)
});
//视频弹出
$('.layer-video').click(function(){
var that = $(this);
var videoUrl = that.find('video').attr('src');
layer.open({
type:2,
title:false,
area:['640px','340px'],
shade:0.8,
closeBtn:0,
shadeClose:true,
content:videoUrl
})
})
/**
* 弹出层调用方法
* 20158-1-6 赵虹
*/
// if (!$('.modleOpen').size()) {
$('.modleOpen').click(function(event) {
var content = $(this).data('href');//需要弹出的层的名字
var title = $(this).data('title');//需要显示的title名称
modleOpen(content,title);
});
// }
/**
* 弹出层调用方法
* 20158-1-6 赵虹
* @param {[type]} title [需要弹出的层的名字]
* @return {[type]} [需要显示的title名称]
*/
function modleOpen(content,title){
// console.log($('.' + content).html());
layer.open({
type: 1,
skin: 'layui-layer-demo', //样式类名
anim: 5,
area: ['500px', 'auto'],
shadeClose: true, //开启遮罩关闭
title: title,
content: $('.' + content).html()
});
}
/**
* 侧边栏折叠效果
* ZMP
* @param {isMenufold} 判断导航栏是否打开
*
*/
var _isMenufold=false,_t;
$('.layui-side').on('click','li',function(){
$('#tip-menu').remove()
var str=''
if(_isMenufold){
$(this).removeClass('layui-nav-itemed')
$('body').append(str)
layui.element.render('nav');
time(3000)
}
})
function time(tim){
_t= setTimeout(function(){
if($('#tip-menu').length > 0) {
$('#tip-menu').remove()
}
},tim)
}
$('html').on('mouseenter mouseleave','#tip-menu',function(e){
if(e.type=='mouseenter' ){
clearTimeout(_t)
}else{
time(200)
}
})
$('#menu-fold').click(function(){
_isMenufold=!_isMenufold
if(_isMenufold){
$('body').attr('id','menu-salce')
$('.layui-nav-tree .layui-this,.layui-nav .layui-nav-item').removeClass('layui-nav-itemed')
$(this).css('left','0px')
}else{
$("body").removeAttr("id");
$(this).css('left','180px')
$('.layui-side li.layui-this').addClass('layui-nav-itemed')
$('li.layui-this').parents('li .layui-nav-item').addClass('layui-nav-itemed')
}
})
$('.layui-lv2').find('a.one .layui-nav-more').click(function(){
// $('.layui-nav-item.layui-lv2').removeClass('layui-nav-itemed')
// if($(this).attr('class') != 'layui-nav-item layui-lv2 layui-nav-itemed'){
// $(this).addClass('layui-nav-itemed')
// }else{
// $(this).removeClass('layui-nav-itemed')
// }
if($(this).parent().attr('class') != 'one active'){
$(this).parent().addClass('active')
$(this).parent().parent().addClass('layui-nav-itemed')
$(this).parent().parent().find('.layui-nav-child').eq(0).show()
}else{
$(this).parent().removeClass('active')
$(this).parent().parent().removeClass('layui-nav-itemed')
$(this).parent().parent().find('.layui-nav-child').eq(0).hide()
}
return false;
})
/**
*高亮rgba(0,150,136,.2)
*ZMP
*/
$('.layui-side li.layui-this').addClass('layui-nav-itemed layui-this')
$('li.layui-this').parents('li .layui-nav-item').addClass('layui-nav-itemed layui-this')
$('#refresh').click(function(){
window.location.reload()
})
var leftMenu=$('.layui-nav-tree .layui-this'),opticy=4;
// function LightColor(menu,num){
// let that=this;
// menu.find('a:first').css('background-color','rgba(0,150,136,.'+num+')')
// menu.each(function(){
// if($(this).children('ul').length>0){
// let child=$(this).find('li.layui-this')
// num=num-1
// LightColor(child,num)
// }else{
// $(this).find('a:first').css('background-color','rgba(0,150,136,.'+num+')')
// }
// })
// }
// LightColor(leftMenu,opticy)
// 弹窗表单刷新
//编辑或者添加按钮
$('a.layui-btn').click(function() {
var text=$(this).attr('title')
var $href=$(this).data('href')
var width=$(this).data('width')
var state=$(this).data('state')
var that = $(this)
if($href && text){
layerAlert('get',text,$href,'',width,state,that)
}
})
/**
* 弹窗重新渲染的内容
* @param filter lay-filter
* @param iconName 图标名称,自动识别fontClass/unicode
*/
function alertRender(){
layui.use(['form','iconPicker'], function(){
var form=layui.form,iconPicker=layui.iconPicker
form.render();
iconPicker.render({
// 选择器,推荐使用input
elem: '#iconPicker',
// 数据类型:fontClass/unicode,推荐使用fontClass
type: 'fontClass',
// 是否开启搜索:true/false
search: true,
// 是否开启分页
page: true,
// 每页显示数量,默认12
limit: 12,
// 点击回调
click: function (data) {
},
// 渲染成功后的回调
success: function(d) {
$('#iconPicker').val('iconpicker');
}
});
var iconStr = $('#iconPicker').val();
if (iconStr) {
iconPicker.checkIcon('iconPicker', iconStr);
} else {
iconPicker.checkIcon('iconPicker', 'layui-icon-star-fill');
}
})
setTimeout(function(){
$(window).trigger("resize");
},100)
}
// alert弹窗方法
function layerAlert(type,text,href,parms,width,state,that){
if(width == undefined || width == ''){
width = 900
}
var load = layer.load(2);
$.ajax({
type: type,
url: href,
data: {_token:_token},
success: function(data){
if (data.code !== undefined && !isNaN(data.code) && data.code != 0) {
layer.close(load);
layer.msg(data.msg, {time: 2000})
} else {
layer.open({
type: 1,
title: text,
shadeClose: true,
area: ''+width+'px', //宽高
maxmin: true,
move: false,
content: data,
success:function(layero, index) {
layer.close(load);
alertRender()
editor();
codeEditor()
layui_select_show();
//判断弹框内容高度
if($(window).height()-180 < $('.layui-layer-content .layui-card-body').height()){
layer.style(index,{
height:$(window).height() - 80,
top:40
})
$('.layui-layer-content').height($(window).height()-123)
$('.layui-layer-content').css('max-height','85vh');
$('.eject-layuiBox').height($(window).height()-123)
$('.eject-layuiBox').css('max-height','85vh');
}else{
$('.layui-layer-content').css('max-height','79vh');
$('.eject-layuiBox').css('max-height','79vh');
}
if(state == 'edit'){
var syg = 0;
var xyg = 0;
if(that.attr('class') == 'layui-btn layui-btn-warm layui-btn-xs' || that.attr('class') == 'layui-btn layui-btn-title'){
syg = that.closest('tr').index()-1;
xyg = that.closest('tr').index()+1;
}else{
syg = parseInt(that.attr('data-xyg'))-1;
xyg = parseInt(that.attr('data-xyg'))+1;
}
var sygurl;
var xygurl;
if(syg >= 0){
$('table tbody tr').eq(syg).find('.layui-btn').each(function(i){
if($(this).attr('data-state') == 'edit'){
sygurl = $(this).attr('data-href')
}
})
}
$('table tbody tr').eq(xyg).find('.layui-btn').each(function(i){
if($(this).attr('data-state') == 'edit'){
xygurl = $(this).attr('data-href')
}
})
$('body').append('');
if(syg < 0){
$('.layui-edit-btn .between-center .prev').css({'opacity':'0','pointer-events':'none'})
}
if(xyg == $('table tbody tr').length){
$('.layui-edit-btn .between-center .next').css({'opacity':'0','pointer-events':'none'})
}
}
},
end:function(){
if(state == 'edit'){
$('.layui-edit-btn').remove();
}
}
});
}
}
});
// $.get(href,parms,function(data){
// console.log(data)
// });
}
//编辑左右翻页
function edit_page(obj){
layer.closeAll();
var text=$(obj).attr('title')
var $href=$(obj).data('href')
var width=$(obj).data('width')
var state=$(obj).data('state')
var that = $(obj)
if($href && text){
layerAlert('get',text,$href,'',width,state,that)
}
}
//ajax确认弹窗方法
/**
* type {table,primary} 使用在layuitable里面还是外面
* title 弹窗标题
* url ajax链接
*/
function layerConfirm(type,title,url,usedata) {
layer.confirm(title, {
btn: ['确定','取消'] //按钮
}, function(){
usedata._token=_token;
$.post(url,usedata,function(data){
if (data.code == 0){
layer.msg('操作成功!');
if(type=='table'){
location.reload();
}else{
location.reload();
}
} else {
layer.msg(data.msg);
}
})
}, function(){
layer.msg('已取消!');
});
}
//表单ajax提交
function formSubmit(url,fromdata) {
if(fromdata._token != ''){
fromdata._token = _token;
}
$.post(url,fromdata,function(data) {
if(data.code==0){
layer.msg('提交成功!')
setTimeout(function(){
//var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
//parent.layer.close(index); //再执行关闭
parent.layer.closeAll();
parent.location.reload()
},500)
}else {
layer.msg(data.msg)
}
})
}
$('.upload-single').on('change',function(e){
var files=e.currentTarget.files;
var fileName = files[0].name;
if(fileName.split('.')[1].toLowerCase()!=='zip'){
layer.msg('文件格式错误!请上传ZIP格式文件', {icon: 5})
}else{
$(this).parents('.layui-form-item').find('.layui-form-mid').html(fileName)
}
})
$('button[form-submit]').on('click',function(e) {
var required=$(this).parents('form').find('[lay-verify="required"]'),isSubmit=true
required.each(function(index,item){
var name=$(item).parents('.layui-form-item').find('label').html()
if(!$(item).val()){
isSubmit=false
layer.msg(name+'不能为空!', {icon: 5})
return false
}
})
if(isSubmit){
$(this).parents('form').submit()
// var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
// parent.layer.close(index); //再执行关闭
// parent.location.reload()
}
})
$('.three-list li').each(function(index,item){
if($(item).find('ul').length>0){
$(item).children('a').addClass('has-c')
}
})
$('.three-list li a').click(function(){
if($(this).find('ul').eq(0).length>0){
if($(this).hasClass('active')){
$(this).removeClass('active')
}else{
$(this).addClass('active')
}
}
})
//图片删除
$('.upload.more').on('click','.multi_del',function(){
var that=this;
layer.confirm('是否删除?', {
btn: ['确认','取消'] //按钮
}, function(){
$(that).parents('div.img-item').remove();
layer.msg('删除成功');
}, function(){
layer.msg('已取消')
});
});
// 向前后调序
$('.upload.more').on('click','.operate a',function(e){
var curBtnClass=e.currentTarget.classList.value
var img=$(this).parents('.img-item').find('.item-src'),
curInput=$(this).parents('.img-item').find('input,textarea'), //当前所有inuput
$currentImg=img.attr('src'),
$curphoto=img.attr('photo-src'),
input=''//所有上一个或者下一个input
if(curBtnClass=='multi_up'){
var $prevDom=$(this).parents('.img-item').prev() //上一个图组
if($prevDom.length==0){
layer.msg('已到第一个了')
return false
}
var prevImg=$prevDom.find('.item-src'),//获取上一个
prev1=prevImg .attr('src'),
prevp=prevImg.attr('photo-src')
input=$prevDom.find('input,textarea') //上一个所有的input
img.attr({'src':prev1, //当前
'photo-src':prevp
})
prevImg.attr({'src':$currentImg, //上一张图
'photo-src':$curphoto
})
}else if(curBtnClass=='multi_down'){
var $nextDom=$(this).parents('.img-item').next()
if($nextDom.length==0){
layer.msg('已到最后一个了')
return false
}
var nextImg=$nextDom.find('.item-src')
next=nextImg .attr('src'), //获取下一个
nextp=nextImg.attr('photo-src')
input=$nextDom.find('input,textarea')
img.attr({'src':next, //当前
'photo-src':nextp
})
nextImg.attr({'src':$currentImg, //下一张图
'photo-src':$curphoto
})
}
curInput.each(function(index1,item1) {
var temp=$(item1).val();
$(item1).val($(input[index1]).val())
$(input[index1]).val(temp)
})
})
//富文本编辑器ckeditor,单页面可以添加多个,需要使用不同的ID
function editor(){
if($('.editor').length){
$.each($('.editor'),function(i){
var E = window.wangEditor;
var id = $(this).attr('id');
var wang = new E(this);
var $text1 = $(this).parent().find('textarea');
wang.customConfig.onchange = function (html) {
// 监控变化,同步更新到 textarea
$text1.val(html)
}
wang.customConfig.menus = [
'head', // 标题
'bold', // 粗体
'fontSize', // 字号
'fontName', // 字体
'italic', // 斜体
'underline', // 下划线
'strikeThrough', // 删除线
'foreColor', // 文字颜色
'backColor', // 背景颜色
'link', // 插入链接
'list', // 列表
'justify', // 对齐方式
'quote', // 引用
'emoticon', // 表情
'image', // 插入图片
'table', // 表格
'video', // 插入视频
'code', // 插入代码
'undo', // 撤销
'redo', // 重复
]
// 隐藏“网络图片”tab
wang.customConfig.showLinkImg = true
wang.customConfig.uploadFileName = 'wang_img[]'
wang.customConfig.showLinkVideo = true
wang.customConfig.uploadImgHooks = {
before: function (xhr, editor, files) {
// 图片上传之前触发
// xhr 是 XMLHttpRequst 对象,editor 是编辑器对象,files 是选择的图片文件
// 如果返回的结果是 {prevent: true, msg: 'xxxx'} 则表示用户放弃上传
},
success: function (xhr, editor, result) {
// 图片上传并返回结果,图片插入成功之后触发
// xhr 是 XMLHttpRequst 对象,editor 是编辑器对象,result 是服务器端返回的结果
},
fail: function (xhr, editor, result) {
// 图片上传并返回结果,但图片插入错误时触发
// xhr 是 XMLHttpRequst 对象,editor 是编辑器对象,result 是服务器端返回的结果
},
error: function (xhr, editor) {
// 图片上传出错时触发
// xhr 是 XMLHttpRequst 对象,editor 是编辑器对象
},
timeout: function (xhr, editor) {
// 图片上传超时时触发
// xhr 是 XMLHttpRequst 对象,editor 是编辑器对象
},
// 如果服务器端返回的不是 {errno:0, data: [...]} 这种格式,可使用该配置
// (但是,服务器端返回的必须是一个 JSON 格式字符串!!!否则会报错)
customInsert: function (insertImg, result, editor) {
// 图片上传并返回结果,自定义插入图片的事件(而不是编辑器自动插入图片!!!)
// insertImg 是插入图片的函数,editor 是编辑器对象,result 是服务器端返回的结果
console.log(result);
if(result.errno == 0) {
if(result.data.length > 0) {
$.each(result.data,function(i,val){
insertImg(val);
})
}
} else {
// 错误提示
layer.msg(result.data[0])
}
}
}
wang.customConfig.uploadImgParams = {_token:_token}
wang.customConfig.uploadVideoParams = {_token:_token}
//上传视频
wang.customConfig.uploadVideoServer = "/manager/upload/video.html"
wang.customConfig.uploadVideoHooks = {
customInsert: function (insertImg, result, editor) {
var url =result.data.src;//获取后台返回的url
insertImg(url);
}
};
wang.customConfig.uploadImgServer = '/manager/upload/wangImage.html'
wang.customConfig.customAlert = function (info) {
// info 是需要提示的内容
layer.msg(info)
}
wang.create();
wang.txt.html($text1.val())
$text1.val(wang.txt.html())
editorSelector = '.editor';
$(editorSelector + " .w-e-toolbar").eq(i).append('');
window.wangEditor.fullscreen = {
// editor create之后调用
toggleFullscreen: function(editorSelector){
$(editorSelector).closest('.editor-text').toggleClass('fullscreen-editor')
if($(editorSelector).text() == '全屏'){
$(editorSelector).text('退出全屏');
}else{
$(editorSelector).text('全屏');
}
},
charu:function(obj){
insertHtmlAtCaret('',$(obj).closest('.editor').find('.w-e-text'))
$(obj).closest('.editor').find('.w-e-panel-container').remove();
}
};
$(editorSelector + " .w-e-toolbar").eq(i).append('');
window.wangEditor.viewsource = {
toggleViewsource: function(editorSelector) {
$('.editor').each(function(i){
if($(editorSelector).attr('data-id') == i){
if($(editorSelector).text() == '源码'){
$(editorSelector).text('返回');
$(this).addClass('active')
$(this).parent().find('textarea.layui-textarea').removeClass('layui-hide')
}else{
$(editorSelector).text('源码');
$(this).removeClass('active')
$(this).parent().find('textarea.layui-textarea').addClass('layui-hide')
}
}
})
},recovery:function(editorSelector){
$('.editor').each(function(i){
if($(editorSelector).text() == '返回'){
editorHtml = $(editorSelector).closest('.editor').find('.w-e-text').html().replace(/</ig, "<").replace(/>/ig, ">").replace(/ /ig, " ");
$(editorSelector).text('源码');
$(editorSelector).closest('.editor').find('.w-e-text').html(editorHtml);
$(editorSelector).closest('.editor').parent().find('textarea').val(editorHtml)
}
})
}
};
$(editorSelector + " .w-e-toolbar").eq(i).append('');
window.wangEditor.eliminate = {
toggleViewsource: function(editorSelector) {
$('.editor').each(function(i){
if($(editorSelector).attr('data-id') == i){
var str = $(editorSelector).closest('.editor').find('.w-e-text').html();
str = str.replace(/[\s\S]*?<\/xml>/ig, '');
str = str.replace(/