/*避免console.log错误*/ if(typeof(console) == 'undefined') console = {log:function(){}} /** * 全局的消息提示 * 弹窗消息工具 * 支持提醒,错误,警告,支持自定义延迟时间,消息位置等 * @type {} */ var Msg ={ /** * 提醒消息 * @param {} msg 消息提内容 * @param {} option {duration:延迟关闭时间 0不关闭, title:标题, location:位置(right,left,center)} * @return {} */ info : function(msg, option){ var option = $.extend(option||{}, {title: msg||'无'}) if(!option.message) option.message = ""; return $.growl.notice(option); }, /** * 错误消息 * @param {} msg 消息提内容 * @param {} option {duration:延迟关闭时间 0不关闭, title:标题, location:位置(right,left,center)} * @return {} */ error : function(msg, option){ var opt; if(typeof(option) == "string"){ var a = { title: (msg || ''), message: option }; console.log(a); opt = a; }else{ var a = { title: (msg || '错误') }; opt = $.extend(option||{}, {title: msg || '无' }); } if(!opt.title) opt.title = "错误"; if(!opt.message) opt.message = ""; console.log(opt); var g= $.growl.error(opt); return g; }, /** * 警告消息 * @param {} msg 消息提内容 * @param {} option {duration:延迟关闭时间 0不关闭, title:标题, location:位置(right,left,center)} * @return {} */ warning : function(msg, option){ var option = $.extend(option||{}, {title: msg||'无' }) if(!option.message) option.message = ""; return $.growl.warning(option); }, /** * 确认 */ confirm: function(text, callback, modalId){ var cid = '#' + (modalId || 'confirmDialog'); $(cid).find('.modal-body').empty().append(text||'您确认操作吗?'); $(cid).modal('show'); $(cid + ' .btn-primary').unbind("click").click(function(){ $(cid).modal('hide'); if(callback){ callback(); } }); } } /** * Ajax请求时间 * @type {} */ var AjaxUtils= { /** * * @param {} url * @param {} params * @param {} success * @author yebo */ post: function(url, params, success, error){ this.asyncReq(url, params, success, error) }, /** * Ajax Get Method */ get: function(url, params, success, error){ var options = {data:params, type:'GET'}; return this.ajax(url, options, success, error, $.noop) }, /** * 异步Ajax请求 * * @param {Object} * url http服务的地址 * @param {Object} * params json对象 * @param {Object} * callback 正常回调callback * @param {Object} * failed 回调failed * @author yebo */ asyncReq: function(url,p,suc,err,bef){ $.ajax({ url:url, dataType:"json", type:"POST", timeout:30000, data: p, success:function(r,request){ if(r.success){ if (suc) suc(r) }else{ if(err) err(r) else Msg.error(r? r.msg: '提交失败'); } }, beforeSend:function(r){ if(bef) bef(r) }, error:function(XMLHttpRequest,textStatus,errorThrown){ if(err) err(XMLHttpRequest,textStatus,errorThrown); } }); }, /** * ajax全局初始化 * @author ligh */ init: function(config){ //全局设置 $.ajaxSetup($.extend({ cache: true, global: false, //全局监控 type: "POST", dataType :"json" }, config||{})); }, /** * ajax请求 * @author ligh * @param {} url * @param {} options 请求参数,参数包含成功,失败事件,则后面回调参数无效 * @param {} success 成功回调函数 * @param {} error 失败回调函数 * @return {} */ ajax: function(url, options, success, error, complete){ var def = $.Deferred(); var opt = $.extend( { url: Url.getWebRoot(url), success: function(data, textStatus, jqXHR){ if(data && data.success) { (success||$.noop).call(null, data, this) if(def) def.resolve(); } else { (error||$.noop).call(null, data, this) if(def) def.reject(); } }, error: function(){ if(def) def.reject(); }, complete: function(XHR, TS){ (complete||$.noop).call(null, XHR, TS, this) }, statusCode: { 404: function() { MessageUtil.error('page not found'); } } }, options||{} ) $.ajax(opt) return def.promise(); } } /** 日期公用方法 */ var DateUtil = { /** * 日期范围空间初始化方法 * * @param {} from 开始ID * @param {} to 结束ID * @param {} fromday 开始值 * @param {} endday 结束值 * @param {} dep 结束深度 year到月 month到天 * @param {} dep 开始深度 year到月 month到天 */ dateRange : function(from,to,fromday,endday,fomart,dep,st) { function startChange() { var startDate = start.value(), endDate = end.value(); if (startDate) { startDate = new Date(startDate); startDate.setDate(startDate.getDate()); end.min(startDate); } else if (endDate) { start.max(new Date(endDate)); } else { endDate = new Date(); start.max(endDate); end.min(endDate); } } /** 发布日期 结束*/ function endChange() { var endDate = end.value(), startDate = start.value(); if (endDate) { endDate = new Date(endDate); endDate.setDate(endDate.getDate()); start.max(endDate); } else if (startDate) { end.min(new Date(startDate)); } else { endDate = new Date(); start.max(endDate); end.min(endDate); } } /** 发布日期开始按钮*/ var start = $("#"+from).kendoDatePicker({ change: startChange, format: fomart||"yyyy-MM-dd", start: st||'month', depth: dep||"year", value: fromday }).data("kendoDatePicker"); /** 发布日期结束按钮*/ var end = $("#"+to).kendoDatePicker({ change: endChange, format: fomart||"yyyy-MM-dd", start: st||'month', depth: dep||"year", value:endday }).data("kendoDatePicker"); start.max(end.value()); end.min(start.value()); }, /** * 功能:实现日期加减功能. * 参数:interval,字符串表达式,表示要添加的时间间隔. * 参数:number,数值表达式,表示要添加的时间间隔的个数. * 参数:date,时间对象. * 返回:新的时间对象. * * var newDate = dateAdd( "d", 5, new Date()); */ dateAdd:function (interval, number, date) { switch (interval) { case "y": { date.setFullYear(date.getFullYear() + number); return date; break; } case "q": { date.setMonth(date.getMonth() + number * 3); return date; break; } case "m": { date.setMonth(date.getMonth() + number); return date; break; } case "w": { date.setDate(date.getDate() + number * 7); return date; break; } case "d": { date.setDate(date.getDate() + number); return date; break; } case "h": { date.setHours(date.getHours() + number); return date; break; } case "m": { date.setMinutes(date.getMinutes() + number); return date; break; } case "s": { date.setSeconds(date.getSeconds() + number); return date; break; } default: { date.setDate(date.getDate() + number); return date; break; } } }, /** * 字符串转换为日期类型,兼容IE浏览器new Date问题 * @param {} time * @return {} */ getDate: function(time){ // var se = CommonUtil.browser() // if (!se.ie && !se.firefox) { // return new Date(time); // } var arr = time.split(/-|:| |\/|,/);//time.split(time.match(/\D+/g)[0]); var date = new Date(arr[0], arr[1] - 1, arr[2]); if(arr[3]) date.setHours(arr[3]) if(arr[4]) date.setMinutes(arr[4]) if(arr[5]) date.setSeconds(arr[5]) return date; }, format : function(data, fmt){ var o = { "M+" : data.getMonth()+1, //月份 "d+" : data.getDate(), //日 "h+" : data.getHours(), //小时 "m+" : data.getMinutes(), //分 "s+" : data.getSeconds(), //秒 "q+" : Math.floor((data.getMonth()+3)/3), //季度 "S" : data.getMilliseconds() //毫秒 }; if(/(y+)/.test(fmt)) fmt=fmt.replace(RegExp.$1, (data.getFullYear()+"").substr(4 - RegExp.$1.length)); for(var k in o) if(new RegExp("("+ k +")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); return fmt; }, copy: function(data){ var dt = new Date(); dt.setTime(data.getTime()); return dt; } } /*全局的AjaxForm * 表单验证、ajax提交 */ FormUtils = { $reset: function(id){ var scp = $('#' + id).scope(); if(scp){ for(v in scp){ if(v.indexOf('$') <0){ delete scp[v]; } } scp.$digest(); } }, getValues : function(form){ //$(formId).find('input') var values = $.extend({},$(form).data('formdata')); $(form).find('input,select,checkbox,radio,textarea') .each(function(i,element){ var val = null; switch (element.tagName) { case "INPUT": if(typeof $(element).attr("type") =='undefined') return true; var type = $(element).attr("type").toUpperCase(); switch (type) { case "CHECKBOX": val = $(element).prop('checked')?$(element).val() : null; break; case "RADIO": val = $(element).prop('checked')?$(element).val() : null; //keys for all radio[name] should match break; default: val = $(element).val(); break; } break; case "SELECT": val = $(element).val(); break; case "TEXTAREA": val = $(element).val(); break; } if((element.name && val) || val===0 || val===false){ if(values[element.name] && $.isArray(values[element.name])) toString.apply(values[element.name])=='[object Array]'?values[element.name].push(val):values[element.name]=[values[element.name],val]; else values[element.name]=val; } }) return values; }, /*提交到form*/ post: function(form,url,success){ var data = FormUtils.getValues(form) $.post(url, data, function(r){ if(r.success){ success(r) }else{ Msg.error(r.msg) } }); }, /*提交到form*/ restPost: function(form,url,success){ var data = FormUtils.getValues(form) $.post(url,{ json: $.toJSON(data) }, function(r){ if(r.success){ if(success) success(r) }else{ Msg.error(r.msg) } }); }, /**表单赋值**/ setValue: function(form, data){ $(form).data('formdata',data); $(form).find('input,select,checkbox,radio,textarea') .each(function(i, element){ var ele$ = $(element); var val = FormUtils._getVal(ele$, data); if(val instanceof Function) return true; switch (element.tagName) { case "INPUT": var type = ele$.attr("type").toUpperCase(); switch (type) { case "CHECKBOX": if(val){ if(ele$.iCheck) ele$.iCheck('check'); ele$.attr('checked',true); }else{ if(ele$.iCheck) ele$.iCheck('uncheck'); ele$.removeAttr('checked'); } break; case "RADIO": if(val)ele$.val(val); break; case "TEXT": if(val) ele$.val(val); else ele$.val(''); break; default: if(val)ele$.val(val); break; } break; case "SELECT": if(val)$(element).val(val); break; case "TEXTAREA": if(val)$(element).val(val); break; } }); }, _getVal: function(element, data){ var name = element.attr("name"); if(name!=null && name!='' && (data||{})[name]!=null) { var val = (data||{})[name]; if(val instanceof Function) { (val||$.noop).call(null, $(element)) return Function } else if(val instanceof Object) { return val.id }else{ return val; } } return false; }, create: function(url, array, target){ var form = $('#_seq_radom_form') if(form && form.length>0){ form.empty(); }else{ form = $('
'); $('body').append(form) } form.attr('method', 'post'); form.attr('target', target||'_self'); form.attr("action", Url.getWebRoot(url)); if($.isArray(array)) $.each(array, function(i, d){ var data = d.split(','); if(typeof data=='undefined' || data.length<2) throw new Error('form data validate is false :'+data); var i = d.indexOf(',') form.append($('')); }) form.submit(); } } GridUtils = { build : function(_opts){ var opts = $.extend({ url: Url.getWebRoot('/static/tms/js/db.js'), metaCls: null, autoLoad:true, checkbox: false, checkWidth: 10, cToggled: $.noop, grid:{ id : "grid", fields: [ { name: "Name", type: "text", width: 150 }, { name: "Age", type: "number", width: 50 }, { name: "Address", type: "text", width: 200 }, { name: "Country", type: "text" }, { name: "Married", type: "checkbox", title: "Is Married" } ] }, page:{ id:"pageBar" }, getQ: function(){ return {}; } },_opts) /*checkbox*/ if(opts.checkbox){ opts.grid.fields.length=(opts.grid.fields.length+1) for(var i=opts.grid.fields.length-1;i>0;--i) opts.grid.fields[i]=opts.grid.fields[i-1]; var __all_chk = $('') __all_chk.on('change',function(){ var checked = this.checked; $("#" + opts.grid.id).find('input[type=checkbox][name=__item_chk]').each(function(i,o){ if(checked) $(o).iCheck('check') }) }) opts.grid.fields[0]={ type: "checkbox", title: __all_chk, width: opts.checkWidth, sorting: false, itemTemplate:function(i,o){ return $('').data('i',o).on("ifChanged",function(e){ var $ck =$(e.target); var $tr = $ck.parent().parent().parent(); if(e.target.checked){ if($tr.is("tr")){ $tr.addClass("jsgrid-chose-row"); } }else{ if($tr.is("tr")){ $tr.removeClass("jsgrid-chose-row"); } } if(opts.onSelect && typeof opts.onSelect =="function"){ opts.onSelect(o,e.target.checked,e); } }); } } } /*总控制器*/ var ctrl = { url : opts.url, q: {}, loadData : function(page,q,callback){ if(page) pgOpt.currentPage = page else page = pgOpt.currentPage ctrl.q = q? q : ctrl.q $.extend(ctrl.q, opts.getQ()) var start = (page-1) * pgOpt.pageSize var limit = pgOpt.pageSize if(opts.metaCls){ var fields = ["id"] $.each(opts.grid.fields,function(i,o){ if(o.name) fields.push(o.name) }) var param = { "cls":opts.metaCls, "q": ctrl.q, "sort": opts.sort, "fields":fields, "start":start, "limit":limit, "pagesize":pgOpt.pageSize, "page":page } AjaxUtils.post(ctrl.url, {q: $.toJSON(param)}, function(r){ pgOpt.totalPages = Math.ceil(r.total / pgOpt.pageSize) if(pgOpt.totalPages ==0) pgOpt.totalPages =1 if(r.total>0){ $('#' +opts.page.id).bootstrapPaginator(pgOpt) } if(callback){ callback(r); } }) }else{ ctrl.q.start = start; ctrl.q.limit = limit; AjaxUtils.post(ctrl.url,ctrl.q,function(r){ pgOpt.totalPages = Math.ceil(r.total / pgOpt.pageSize) if(pgOpt.totalPages ==0) pgOpt.totalPages =1 if(r.total>0){ $('#' +opts.page.id).bootstrapPaginator(pgOpt) } if(callback){ callback(r); } }) } } } /**分页初始化*/ var pgOpt = $.extend({ bootstrapMajorVersion:3, pageSize: 25, currentPage: 1, numberOfPages: 10, totalPages:1, onPageClicked: function(e,oe,t,page){ pgOpt.currentPage = page $("#" + opts.grid.id).jsGrid('search') } },opts.page) /*grid初始化*/ var gridCtrl = { loadData: function(q) { var d = $.Deferred(); ctrl.loadData((q && q.page)?q.page:null, q, function(r){ d.resolve(r.data, r); }) return d.promise(); }, insertItem: function(insertingClient) {}, updateItem: function(updatingClient) {}, deleteItem: function(deletingClient) {} }; var onDataLoaded = function(args){ var o = $('#'+args.grid.id).data('JSGrid') $('#'+args.grid.id).find('input[name=__item_chk]').iCheck({ checkboxClass: 'icheckbox_minimal-blue', radioClass: 'iradio_minimal-blue', increaseArea: '20%' }).on('ifToggled',function(e){ if(opts.cToggled) { var data = $(this).data('i') var objects = o.getObject() opts.cToggled(this.checked, data, args, objects[o._getIndex(data)]) } }) var ckFst = $('#'+args.grid.id).find('input[type="checkbox"][name=__all_chk]:first'); if(!(ckFst && ckFst.data('iCheck'))){ $('#'+args.grid.id).find('input[name=__all_chk]').iCheck({ checkboxClass: 'icheckbox_minimal-blue', radioClass: 'iradio_minimal-blue', increaseArea: '20%' }) $('#'+args.grid.id).find('input[type="checkbox"][name=__all_chk]:first').on('ifClicked',function(){ var isChk = !this.checked $('#'+args.grid.id).find('input[type="checkbox"][name=__item_chk]').each(function(){ //待支付页面,运单申请终止、成功时,全选时不可勾选 var status = $(this).data().i.applyStopE; if(!$.isEmptyObject(status)){ if(status != '申请成功' && status != '申请中'){ $(this).iCheck(isChk?'check':'uncheck') }else{ $(this).iCheck('uncheck') //不勾选 } }else{ $(this).iCheck(isChk?'check':'uncheck') } }) }); } ckFst.iCheck('uncheck') } var gridOpts= $.extend(true, { height: _opts.height?_opts.height:"480px", width: "100%", autoload:false, sorting: true, paging: false, loadMessage:'载入中', pagerFormat: "Pages: {first} {prev} {pages} {next} {last}    {pageIndex} of {pageCount}", pagePrevText: "上一页", pageNextText: "下一页", pageFirstText: "首页", pageLastText: "末页", noDataContent: "无数据", controller: gridCtrl, fields: opts.grid.fields }, opts.grid, { getSelects:function(name){ var selects = new Array(); $('#'+this.id).find('input[type="checkbox"][name=__item_chk]').each(function(){ if($(this).is(':checked')) selects.push(name?$(this).data('i')[name]:$(this).data('i')); }) return selects; }, getSelectsObject:function(){ var o = this; var selects = new Array(); var objects = o.getObject(); $('#'+this.id).find('input[type="checkbox"][name=__item_chk]').each(function(){ if($(this).is(':checked')) { var e = {data:$(this).data('i'), object:$(this)} var v = objects[o._getIndex($(this).data('i'))] if(v){ $.extend(true, e, { tr : v }) } selects.push(e); } }) return selects; }, _getIndex:function(data){ var d = $('#'+this.id).data('JSGrid').data var k = -1 $.each(d, function(i,o){ if(o==data) { k = i return false; } }) return k; }, getObject: function(){ var d = $('#'+this.id).data('JSGrid').data var b = $('#'+this.id).data('JSGrid')._body.find('tr') var l = [] $.each(d,function(i,o){ l.push({ data:o, html:b[i], input:FormUtils.getValues(b[i]) }) }) return l; }, onRefreshed:function(grid){ onDataLoaded(grid); if(opts.grid.onDataLoaded) opts.grid.onDataLoaded(grid.grid); }, empty:function(){ $('#'+this.id).find('.jsgrid-row, .jsgrid-alt-row').remove(); if(opts.grid.empty) opts.grid.empty(); }, getCheckBox:function(index){ } }) if(_opts.noHeight==true) delete gridOpts.height $('#'+ opts.page.id).bootstrapPaginator(pgOpt) $("#" + opts.grid.id).jsGrid(gridOpts); if(opts.autoLoad) $("#" + opts.grid.id).jsGrid('search'); }, buildBtnGroup:function(_opts){ var opts = $.extend({ width: "35px", edit: function(){ }, delete: function(){ } },_opts) return { title:'操作', width: opts.width, itemTemplate: function(value, item){ var objEdit = $('编辑'); var objDel = $('删除'); objDel.on('click',function(){ $('#confirmDialog').modal('show'); $('#confirmDialog .btn-primary').unbind("click").click(function(){ $('#confirmDialog').modal('hide'); opts.delete(item); }) }) objEdit.on('click',function(){ opts.edit(item); }) return [objEdit,objDel]; } } } } $(function(){ /**数据ID**/ $.fn.s2Val = function(v){ if(typeof v !='undefined') return $(this).select2('val', v); else return $(this).select2('val'); } /**数据对象**/ $.fn.s2Data = function(v){ if(typeof v !='undefined') return $(this).select2('data', v); else return $(this).select2('data') } }) String.format = function(format){ var args = $.makeArray(arguments); args.shift(0); format = format.replace(/\{(\d+)\}/g, function(m, i){ return args[i]; }); return format; } /** * 文件上传通用类 */ IoUtils = { /** * 上传通用按钮 * * @param {} * cfg 上传参数 * @return {} */ bindUpload : function(cfg) { var cfg = $.extend({noAlert:false}, cfg, { limitSize :cfg.limitSize ? cfg.limitSize : 20*1024 }) if(!cfg.fileTypes){ cfg.fileTypes ="*.*" } var reg = new RegExp("\\*","g"); cfg.accept = cfg.fileTypes.replace(reg,"").split(";").join(",") cfg.fileTypes = new RegExp(("(" + cfg.fileTypes.split(";").join(")|(") + ")").replace(/\*\./g , ".*."), "i"); var uploadingCfg = { post_params : $.extend({},cfg.params), // uploading events formatBytes : function(size) { if (!size) { size = 0; } var suffix = [ "B", "KB", "MB", "GB" ]; var result = size; size = parseInt(size, 10); result = size + " " + suffix[0]; var loop = 0; while (size / 1024 > 1) { size = size / 1024; loop++; } result = Math.round(size) + " " + suffix[loop]; return result; if (isNaN(bytes)) { return (''); } var unit, val; if (bytes < 999) { unit = 'B'; val = (!bytes && this.progressRequestCount >= 1) ? '~' : bytes; } else if (bytes < 999999) { unit = 'kB'; val = Math.round(bytes / 1000); } else if (bytes < 999999999) { unit = 'MB'; val = Math.round(bytes / 100000) / 10; } else if (bytes < 999999999999) { unit = 'GB'; val = Math.round(bytes / 100000000) / 10; } else { unit = 'TB'; val = Math.round(bytes / 100000000000) / 10; } return (val + ' ' + unit); }, fileQueue : function(file) { this.wait(); }, fileQueueError : function(file, code, message) { // console.log(code) switch (code) { case -100: var slots = "文件队列已满"; Msg.error(this.strings.text_error, String.format( this.strings.error_queue_exceeded + ' ' + slots, this.file_queue_limit)); break; case -110: Msg.error(this.strings.text_error, String.format( this.strings.error_size_exceeded, this .formatBytes(this.file_size_limit * 1024))); break; case -120: Msg.error(this.strings.text_error, this.strings.error_zero_byte_file); break; case -130: Msg.error(this.strings.text_error, this.strings.error_invalid_filetype); break; } }, fileDialogComplete : function(file_count) { if(cfg.fileDialogComplete && typeof cfg.fileDialogCompletee){ cfg.fileDialogComplete(file_count); } if (typeof (cfg.afterLoadParams) == 'function') {// 增加加载页面后表单参数 if (cfg.afterLoadInptIDs != null || cfg.afterLoadInptIDs != undefined) { for (var i = 0; i < cfg.afterLoadInptIDs.length; i++) { var key = cfg.afterLoadInptIDs[i]; var value = $('#'+key).attr('value'); this.suo.addPostParam(key, value); } } } this.suo.startUpload() }, validate:function(file){ if(!cfg.fileTypes.test(file.name)){ Msg.error('文件格式有误'); return false; }else if(file.size > cfg.limitSize*1024){ Msg.error('请上传小于'+cfg.limitSize/1024 +'M的文件'); return false; }else{ return true; } }, fileuploadadd:function(e,data){ if(cfg.fileDialogComplete && typeof cfg.fileDialogCompletee){ cfg.fileDialogComplete(1); } if(this.validate(data.files[0])){ data.submit(); this.wait(); } }, uploadProgress : function(e,data) { if(cfg.progress && typeof cfg.progress =="function"){ cfg.progress(e,data); }else{ this; var _id = "_"+cfg.id; var percent=Math.ceil( (data.loaded / data.total) *100); var progressArea= $("#progressArea"+_id); progressArea.show(); progressArea.find(".progressBar>span ").each(function(){ $(this).text(percent+'%'); if(percent === 100){ $(this).text('上传完成!'); } }); progressArea.find(".progressBar>canvas").each(function(){//绘制动态矩形框 var dheight = -(percent/100)* parseFloat(this.clientHeight) var context=this.getContext("2d"); context.fillStyle="#3C8DBC"; //填充的颜色 context.fillRect(0,this.clientHeight,this.clientWidth,dheight); //填充颜色 x y坐标 宽 高 context.font="16px Courier New"; context.strokeStyle="#fff"; context.textAlign='center'; if(percent ===100){ context.strokeText('上传完成,正在处理...',this.clientWidth/2,this.clientHeight-(-dheight/2)); }else{ context.strokeText(percent+'%',this.clientWidth/2,this.clientHeight-(-dheight/2)); } }); } }, uploadFail : function(e,data) { Msg.error('文件上传失败!'); }, uploadSuccess : function(e,data) { //console.log(response) var r = data.result if (cfg.end) cfg.end(r) if (r.success) { if (cfg.success) cfg.success(r.data) if (r.picMsg != undefined) Msg.error('图片识别问题',r.picMsg ||'未知服务器错误') } else { if(!cfg.noAlert) Msg.error('提交失败',r.msg || '未知服务器错误'); } }, uploadComplete : function(e,data) { if(cfg.uploadComplete && typeof cfg.uploadComplete){ cfg.uploadComplete(data.files[0]); } this.end() var _id = "_"+cfg.id; var progressArea= $("#progressArea"+_id); progressArea.find(".progressBar>canvas").each(function(){ var context=this.getContext("2d"); context.clearRect(0,0,this.clientWidth,this.clientHeight);//清除画布元素 }); progressArea.hide(); }, wait: function() { if(cfg.wait) cfg.wait(); }, end: function() { if (this.oldText) { this.setDisabled(false) this.setIconClass(this.oldIconCls) this.setText(this.oldText) this.oldText= null } }, initUpload: function() { var ct = $('#'+cfg.id); var suoID = cfg.id + "uploadSwf"; var em = $('').prependTo(ct); var h = ct.outerHeight()<30?0:ct.outerHeight(); if(cfg.params && cfg.params.height && h==0){ h=cfg.params.height } var w = ct.outerWidth()<30?0:ct.outerWidth(); if(cfg.params && cfg.params.width && w==0){ w=cfg.params.width } em.css({ position : 'absolute', display : 'block' }).height(h).width(w); $("
").appendTo(em); $(em).after($("")) $(em).click(function(e){ e.preventDefault(); $('#file'+suoID).click() }) var suo = $('#file'+suoID).fileupload({ url : cfg.upload_url,//请求发送的目标地址 Type : 'GET',//请求方式 ,可以选择POST,PUT或者PATCH,默认POST //dataType : 'json',//服务器返回的数据类型 autoUpload : false, acceptFileTypes : cfg.fileTypes,//验证图片格式 /(gif|jpe?g|png)$/i processQueue: { acceptFileTypes: '@' }, paramName:"filedata", fileInput:$('#file'+suoID), formData:this.post_params, maxNumberOfFiles : 1,//最大上传文件数目 maxFileSize : this.limitSize, // 文件上限 1024*1024 = 1Mb minFileSize : 100,//文件下限 100b messages : {//文件错误信息 acceptFileTypes : '文件类型不匹配', maxFileSize : '文件过大', minFileSize : '文件过小' } }) //图片添加完成后触发的事件 .on('fileuploadadd',this.fileuploadadd.bind(uploadingCfg)) //当一个单独的文件处理队列结束触发(验证文件格式和大小) .on('fileuploadprocessalways',function(e, data){debugger}) //显示上传进度条 .on('fileuploadprogressall',this.uploadProgress.bind(uploadingCfg)) //上传请求失败时触发的回调函数 .on('fileuploadfail',this.uploadFail.bind(uploadingCfg)) //上传请求成功时触发的回调函数 .on('fileuploaddone',this.uploadSuccess.bind(uploadingCfg)) //上传请求结束后,不管成功,错误或者中止都会被触发 .on('fileuploadalways',this.uploadComplete.bind(uploadingCfg)) // var suoMv = $('#'+this.suo.movieName); // suoMv.css({ // position : 'absolute', // top : 0, // left : 0 // }); } }//end uploadingCfg uploadingCfg.initUpload() } } /**订单公用内容**/ TdoUtils = { /**跳转订单详情**/ toDtl: function(no) { if($('#_inform').length>0){ $('#_inform').find('input[name=no1]:first').val(no) $('#_inform').attr("action", Url.getWebRoot('tms/order/dtl/init.action')+'?no='+no); $('#_inform').submit(); }else{ var form = document.createElement("form"); form.setAttribute("id", "_inform"); form.setAttribute("method", "post"); form.setAttribute("action", Url.getWebRoot('tms/order/dtl/init.action')+'?no='+no); form.setAttribute("target", "_blank"); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "no1"); hiddenField.setAttribute("value", no); form.appendChild(hiddenField); document.body.appendChild(form); form.submit(); } }, toNewDtl: function(no) { // return Url.getWebRoot('tms/order/dtl/init4J.action?no='+item.no+'&qid='+item.q_id); if($('#_inform').length>0){ $('#_inform').find('input[name=no1]:first').val(no) $('#_inform').attr("action", Url.getWebRoot('tms/order/dtl/init4J.action')+'?no='+no); $('#_inform').submit(); }else{ var form = document.createElement("form"); form.setAttribute("id", "_inform"); form.setAttribute("method", "post"); form.setAttribute("action", Url.getWebRoot('tms/order/dtl/init4J.action')+'?no='+no); form.setAttribute("target", "_blank"); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "no1"); hiddenField.setAttribute("value", no); form.appendChild(hiddenField); document.body.appendChild(form); form.submit(); } }, /**跳转车主详情**/ toVhc: function(vhc) { if($('#_inform').length>0){ // $('#_inform').find('input[name=no1]:first').val(vhc) $('#_inform').attr("action", Url.getWebRoot('tms/vhc/init.action')+'?vhc='+vhc); $('#_inform').submit(); }else{ var form = document.createElement("form"); form.setAttribute("id", "_inform"); form.setAttribute("method", "post"); form.setAttribute("action", Url.getWebRoot('tms/vhc/init.action')+'?vhc='+vhc); form.setAttribute("target", "_blank"); var hiddenField = document.createElement("input"); // hiddenField.setAttribute("name", "no1"); // hiddenField.setAttribute("value", no); form.appendChild(hiddenField); document.body.appendChild(form); form.submit(); } } }