layui.define(['upload', 'laypage','form'], function(exports) { var $ = layui.$ var upload = layui.upload; var admin = layui.admin; var listable=layui.listable; form = layui.form; var custorm = { upload_one: uploadOne, upload_more: uploadMore, layerpage: laypageList, diy_open:diyOpen, ajax_area:ajaxArea, openjson:openJsonSelecte, layer_open:openLayer, layer_open_parent:openLayerParent } layer.photos({ photos: '#layer-photos-demo' ,anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数) }); function uploadOne(obj, accept_type,callback) { var upload_type = $(obj).data('type'); var screen_type = $(obj).data('screen_type'); accept_type = accept_type || 'images'; upload_type = upload_type || 'image'; screen_type = screen_type || ''; if (accept_type != 'images') { accept_type = 'file'; } upload.render({ elem: $(obj + " .upload-event"), url: g_upload_url + '?uptype=' + upload_type+'&screen_type='+screen_type, data: { _token: $('[name="csrf-token"]').attr('content') }, accept: accept_type, done: function(res) { if (res.success == 1) { $(obj + " .layui-upload-drag").hide(); $(obj + ' .upload_img').parents().show().end().attr('src', res.view_img); $(obj + " .upload_input").val(res.path); if(typeof callback == "function"){ callback(res.path); } } else { layer.msg(res.state); } } }); }; // $(document).on('click', '.upload-close', function(event) { /* Act on the event */ var obj = $(this); layer.confirm('确定删除吗?', function(index) { obj.parents('.layui-input-inline,.layui-upload-img').hide(); layer.close(index); obj.parents('.layui-input-inline').find('.upload_input').val(''); obj.parents('.layui-input-inline').find('.upload_img').attr('src', '') obj.parents('.layui-input-inline').prev().find('.layui-upload-drag').show(); obj.parents('.layui-input-inline').prev().show(); //判断是否多图上传 has_more_obj=obj.parents(".item"); if(has_more_obj.html()) { obj.parents('.item').remove(); pic_item=obj.data('obj'); pic_input_item=obj.data('input_obj'); jsonThumbs(pic_item,pic_input_item); } }); }); $(document).on('click','.table-del-pic',function(event){ var obj = $(this); layer.confirm('确定删除吗?', function(index) { obj.parents('.pic-item').remove(); pic_item=obj.data('obj'); pic_input_item=obj.data('input_obj'); jsonThumbs(pic_item,pic_input_item); layer.close(index); }); }); //重新计算图片json function jsonThumbs(obj,input_name){ thumbs_arr=new Array(); $(obj).each(function(){ path=$(this).data('path'); size=$(this).data('size'); tmpname=$(this).data('tmpname'); file_type=$(this).data('type'); thumbs_arr.push({tmpname:encodeURI(tmpname),type:file_type,size:size,path:path}); }); json=JSON.stringify(thumbs_arr); console.log(json) $(input_name).val(json); } function uploadMore(obj, more, url,display) { url = url || g_upload_more_url; more = more || 1; config={ type:2, title:'上传多图', url:url, h:'500px', w:'720px', btn: ['确定', '取消'] }; openLayer(config,function(layero,index){ var iframeWindow = window['layui-layer-iframe' + index], submitID = 'LAY-user-back-submit', submit = layero.find('iframe').contents().find('#' + submitID); var item_img = layero.find('iframe').contents().find('.on'); if (more == 1) { var html_str = ''; var upload_thumbs_json=new Array(); if($(obj + " .upload_input").val()) { upload_thumbs_json=JSON.parse( $(obj + " .upload_input").val()); } item_img.each(function() { var tmpname = $(this).find('p').text(); var path = $(this).data('src'); var img_src = $(this).find('img').attr('src'); var file_type=$(this).data('type'); var size=$(this).data('size'); upload_thumbs_json.push({'path':path,size:size,'type':file_type,'tmpname':encodeURI(tmpname)}); if(display=='table') { item_obj=obj + " .layui-upload-list .pic-item"; input_obj=obj + " .upload_input"; html_str+=''+tmpname+' ' + ''+size+'' + ''; }else { if(file_type=='vedio') { html_str += '
' + ' ' + '

' + tmpname + '

'; }else if(file_type=='image') { item_obj=obj + " .layui-upload-list .item"; input_obj=obj + " .upload_input"; html_str += '
' + ' ' + '

' + tmpname + '

'; } } }); $(obj + " .upload_input").val(JSON.stringify(upload_thumbs_json)); if(display!='table') { $(obj + " .layui-upload-list").append(html_str); }else { $(obj + " .layui-upload-list table tbody").append(html_str); } } else { path = item_img.data('src'); img_src = item_img.find('img').attr('src'); img_src = img_src || item_img.find('video').attr('src'); // console.log(img_src); $(obj + " .layui-upload-drag").hide(); $(obj + ' .upload_img').parents('.layui-input-inline').show().end().attr('src', img_src); $(obj + " .upload_input").val(path); } //sortable('.layui-upload-list'); layer.close(index); //关闭弹层 }); } function diyOpen(obj, yesFun) { $(obj).click(function() { console.log(222); w = $(this).data('w'); h = $(this).data('h'); title = $(this).data('title'); url = $(this).data('url'); url_params=$(this).data('url_params'); url_params=url_params || ''; config={ type:2, title:title, url:url+url_params, h:h, w:w }; openLayer(config,yesFun); }); } function layuiPx(w,h){ var config=new Array(); if(is_mobile()) { var base_w=1200; var view_w=$(window).width(); var view_h=$(window).height(); config[0]=w; config[1]=h; console.log(config); if(w.indexOf('px')!=-1) { console.log('px 计算'); w=w.replace(/px/g,""); h=h.replace(/px/g,""); //如果存在px单位则进行计算 config[0]=( view_w * 90/100)+'px'; var mh=( h * view_h / 960); config[1]=( h * view_h / 960)+'px'; if(mh>100) { config[0]='100%'; config[1]='100%'; } }else{ config[0]='100%'; config[1]='100%'; } }else { config[0]=w; config[1]=h; } return config; } function openLayer(config,yesFun,susFuc,cacFun){ btn=config.btn || ['确定', '取消']; var area_config=layuiPx(config.w, config.h); layer.open({ btnAlign: 'c', type: config.type, title: config.title, content: config.url, area: area_config, btn: btn, yes: function(index, layero) { if ( typeof(yesFun) == "function") { return yesFun(layero, index); }else { layer.close(index) } }, success:function(layero,index) { if ( typeof(susFuc) == "function") { return susFuc(layero, index); } }, cancel:function(index, layero){ if ( typeof(cacFun) == "function") { return cacFun(layero, index); } } }); } function openLayerParent(config,yesFun,susFuc,cacFun){ btn=config.btn || ['确定', '取消']; var area_config=layuiPx(config.w, config.h); parent.layer.open({ btnAlign: 'c', type: config.type, title: config.title, content: config.url, area: area_config, btn: btn, yes: function(index, layero) { if ( typeof(yesFun) == "function") { return yesFun(layero, index); }else { layer.close(index) } }, success:function(index, layero) { if ( typeof(susFuc) == "function") { return susFuc(layero, index); } }, cancel:function(index, layero){ if ( typeof(cacFun) == "function") { return cacFun(layero, index); } } }); } //openLayui admin.events.openLayer=function(othis){ w = $(othis).data('w'); h = $(othis).data('h'); title = $(othis).data('title'); url = $(othis).data('url'); url_params=$(othis).data('url_params'); url_params=url_params || ''; btn=$(othis).data('btn'); btn=btn || ['关闭']; config={ type:2, title:title, url:url+url_params, h:h, w:w, btn:btn }; openLayer(config); } //图片空间 admin.events.uploadplace = function(othis) { obj = $(othis).data('obj'); upload_type = $(othis).data('type'); screen_type = $(othis).data('screen_type'); upload_type = upload_type || 'image'; screen_type = screen_type || ''; display=$(othis).data('display'); display=display || ''; is_more = $(othis).data('more'); is_more=is_more || 2; if(is_more==1) { uploadMore(obj, is_more, g_upload_more_url + '?uptype=' + upload_type+'&screen_type='+screen_type,display); }else { uploadMore(obj, is_more, g_upload_one_url + '?uptype=' + upload_type+'&screen_type='+screen_type); } }; admin.events.viewpic=function(othis){ var src = $(othis).attr('src'); layer.photos({ photos: { "title": "查看图片" //相册标题 , "data": [{ "src": src //原图地址 }] }, shade: 0.01, closeBtn: 1, anim: 5 }); } function openJsonSelecte(clallback){ admin.events.openselected = function(othis) { obj = $(othis).data('obj'); w = othis.data('w'); h = othis.data('h'); title = othis.data('title'); url = othis.data('url'); layer.open({ type: 2, title: title, content: url, area: [w, h], btn: ['确定', '取消'], success: function(layero, index){ if ( typeof(clallback) == "function") { return clallback(layero, index); } } }); }; } function laypageList(url, pageconfig, handleFun, successCallback, errorCallback) { layer.load(3); //风格1的加载 pageconfig = pageconfig || {}; var laypage = layui.laypage; var laypageparams = { obj_id: 'page', limit: 10, limits: [1, 10, 30, 50, 70], layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'], }; laypageparams = $.extend(laypageparams, pageconfig); $.ajax({ url: url, dataType: 'json', type: 'post', data: { limit: laypageparams.limit, _token: $('[name="csrf-token"]').attr('content') }, success: function(data) { if (data.total <= 0) { return false; } laypage.render({ limit: laypageparams.limit, elem: laypageparams.obj_id, count: data.total, limits: laypageparams.limits, layout: laypageparams.layout, theme: "#62a8ea", jump: function(obj, first) { if (typeof(handleFun) != "function" && typeof(successCallback) == "function") { return successCallback(obj, first); } if (first) { if (typeof(handleFun) == "function") { return handleFun(data); } else { return $(".tuku-list").empty().append(data.contents); } } layer.load(3); //风格1的加载 $.ajax({ url: url, dataType: 'json', type: 'post', data: { offset: obj.curr, limit: obj.limit, _token: $('[name="csrf-token"]').attr('content') }, success: function(tdata) { if (tdata.total <= 0) { return false; } if (typeof(handleFun) == "function") { return handleFun(tdata); } else { console.log(tdata.contents); $(".tuku-list").empty().append(tdata.contents); return ''; } }, complete: function() { layer.closeAll('loading'); } }) } }); }, beforeSend: function() { }, complete: function() { layer.closeAll('loading'); } }); } function ajaxArea(id,setobj,ajaxfun,select_id,input_type){ input_type=input_type || 'option'; select_id=select_id || ''; $.ajax({ url: g_area_url, dataType: 'json', type: 'get', data: { id:id , input_type:input_type, select_id:select_id, _token: $('[name="csrf-token"]').attr('content') }, success: function(tdata) { console.log(tdata); $(setobj).empty().append(tdata.data); form.render('select', 'layuiadmin-form-role'); if ( typeof(ajaxfun) == "function") { return ajaxfun(tdata); } }, complete: function() { layer.closeAll('loading'); } }) } var kq_events={ msg:function(othis){ var title=othis.data('title'); var text=othis.data('content'); console.log(text); layer.open({ title: title?title:'提示', btnAlign: 'c' ,content: text }); } }; $body = $('body'); //点击事件 $body.on('click', '*[kq-event]', function(){ var othis = $(this) ,attrEvent = othis.attr('kq-event'); kq_events[attrEvent] && kq_events[attrEvent].call(this, othis); }); exports('custorm', custorm); });