2 lines
6.0 KiB
JavaScript
Raw Normal View History

2025-02-28 09:29:43 +08:00
(function($){$.fn.imageCrop=function(__width,__height){$(this).on("load",function(){var width,height,left,top;var orgRate=this.width/this.height;var cropRate=__width/__height;if(orgRate>=cropRate){height=__height;width=__width*orgRate;top=0;left=(width-__width)/2}else{width=__width;height=__height/orgRate;left=0;top=0}$(this).css({position:"absolute",top:-top+"px",left:-left+"px",width:width+"px",height:height+"px"})})};$.fn.draggable=function(options){var defaults={handler:null};options=$.extend(defaults,options);var __self=this;$(options.handler).mousedown(function(e){var offsetLeft=e.pageX-$(__self).position().left;var offsetTop=e.pageY-$(__self).position().top;$(document).mousemove(function(e){window.getSelection?window.getSelection().removeAllRanges():document.selection.empty();$(__self).css({top:e.pageY-offsetTop+"px",left:e.pageX-offsetLeft+"px"})})}).mouseup(function(){$(document).unbind("mousemove")})};if(Array.prototype.remove==undefined){Array.prototype.remove=function(item){for(var i=0;i<this.length;i++){if(this[i]==item){this.splice(i,1);break}}}}if(Array.prototype.uinque==undefined){Array.prototype.uinque=function(){var result=[],hash={};for(var i=0,item;(item=this[i])!=null;i++){if(!hash[item]){result.push(item);hash[item]=true}}return result}}window.FManager=function(options){options=$.extend({lang:{},list_url:null,data_type:"json",fileType:"image",top:20,multiple:false,callback:function(data){console.log(data)}},options);var o={};o.dialog=null;o.selectedList=new Array;o.page=1;o.marker=null,o.noRecord=false;o.close=function(){o.dialog.remove();try{JDialog.lock.hide()}catch(e){}if(typeof options.close=="function"){options.close()}};function createDialog(){var builder=new StringBuilder;builder.append('<div class="uedbody ke-animated"><div class="ued_title">');builder.append('<div class="uedbar"><span>'+options.lang.title+'</span></div><div class="close_btn icon" title="'+options.lang.closeText+'"></div>');builder.append('</div><div class="wrapper"><div class="wra_body wra_body_server">');builder.append('<div class="tab-panel online"><div class="imagelist"><ul class="list clearfix"></ul><div class="no-data"></div></div></div>');builder.append('<div class="loading-icon"></div></div></div><div class="wra-btn-group">');builder.append('<div class="tip-text">'+options.lang.loadMoreData+"</div>");builder.append('<span class="btn btn-primary btn-confirm">'+options.lang.confirmBtnText+"</span>");builder.append('<span class="btn btn-default btn-cancel">'+options.lang.cancelBtnText+"</span></div></div>");o.dialog=$(builder.toString());$("body").append(o.dialog);if(options.top==0){options.top=Math.max(0,$(window).height()-o.dialog.height())/2}o.dialog.css({left:($(window).width()-o.dialog.width())/2+"px",top:options.top+"px"});$(".wrapper",o.dialog).css("max-height",$(window).height()-100+"px");o.dialog.draggable({handler:o.dialog.find(".ued_title")});loadFilesFromServer()}function bindEvent(){G(".close_btn").on("click",function(){o.close()});G(".btn-confirm").on("click",function(){options.callback(o.selectedList);o.close()});G(".btn-cancel").on("click",function(){o.close()});G(".imagelist").on("scroll",function(){if(this.scrollTop+this.clientHeight>=this.scrollHeight){loadFilesFromServer()}})}function G(query){return o.dialog.find(query)}function loadFilesFromServer(){if(!options.list_url){G(".online .no-data").html('<span class="error">'+options.lang.noListUrl+"</span>").show();return false}if(o.noRecord)return false;G(".loading-icon").show();$.get(options.list_url,{page:o.page,marker:o.marker,fileType:options.fileType},function(res){G(".loading-icon").hide();if(res.code=="000"){if(!res.data[0]){G(".online .no-data").html(options.lang.noDataText).show();return}o.page++;o.marker=res.extra;appendFiles(res.data)}else{G(".online .no-data").text(options.lang.noDataText).show();o.noRecord=true}},"json")}function appendFiles(data){$.each(data,function(idx,item){var builder=new StringBuilder;builder.append("<li>");var extension=getFileExt(item.thumbURL);if(extension=="")extension="default";extension=extension.toLowerCase()