/**
* @fileoverview 卓望数码 jQuery Common Library
* @description:封装一些jQuery公共操作方法
* @author oCEAn Zhuang ( QQ: 153414843)
* @version 1.0
* @date 2013-09-18
*/
/**
* 将form属性转化为JSON对象,支持复选框和select多选
* @param {Object} $
* @memberOf {TypeName}
* @return {TypeName}
*/
;
(function($){
$.fn.serializeJson = function(){
var serializeObj = {};
var array = this.serializeArray();
var str = this.serialize();
$(array).each(function(){
if(serializeObj[this.name]){
if($.isArray(serializeObj[this.name])){
serializeObj[this.name].push(this.value);
}else{
serializeObj[this.name]=[serializeObj[this.name],this.value];
}
}else{
serializeObj[this.name]=this.value;
}
});
return serializeObj;
};
})(jQuery);
/**
* 对form进行jQuery扩展,可将json数据映射到对应的表单元素里,json中的属性名需跟form表单里的元素name一致。
* @namespace jQuery扩展封装
* @param {json} json格式数据
* @return void
*/
;
(function() {
jQuery.extend(jQuery.fn, {
json2Form: function(json) {
var _this = this;
jQuery.each(jQuery(_this).serializeArray(),
function(index) {
var name = this['name'];
for (var a in json) {
var key = "";
var val = "";
if (name.indexOf('.') != -1) {
key = name.split('.')[0];
var getval = name.split('.')[1];
val = json[a][getval];
} else {
key = name;
val = json[a];
}
if (jQuery.trim(key) == jQuery.trim(a)) {
var eve = jQuery(_this).find("[name='" + name + "']");
if (jQuery(eve).length > 1) {
for (var i = 0; i < jQuery(eve).length; i++) {
//判断单选按钮
if (jQuery(jQuery(eve)[i]).attr("type") == 'radio') {
if (jQuery(jQuery(eve)[i]).val() == val) {
jQuery(jQuery(eve)[i]).attr("checked", true);
}
}
}
} else {
jQuery(eve).val(val);
}
}
}
});
}
});
})(jQuery);
$.extend({
str2Value: function(p,str) {
var strs = str.split('.');
var _tt = p;
for (var i = 0;i < strs.length; i++){
var tmp = strs[i];
if (tmp.indexOf('[') != -1){
var pre = tmp.substring(0,tmp.indexOf('[')),num = tmp.substring(tmp.indexOf('[') + 1,tmp.indexOf(']'));
if (_tt[pre][num] && typeof (_tt[pre][num]) != 'undefined'){
_tt = _tt[pre][num];
continue;
}else{
return null;
}
}
if ((_tt[strs[i]]==0||_tt[strs[i]])&& typeof (_tt[strs[i]]) != 'undefined'){
_tt = _tt[strs[i]];
continue;
}else{
return null;
}
}
return _tt;
}
});
;
(function() {
jQuery.extend(jQuery.fn, {
json2Form2: function(json) {
var _this = this,tmp = json,_form = $(this).attr('id');
if (!_form){
_form = (new Date()).getTime();//随机生成一个ID
$(this).attr('id',_form);
}
jQuery("#" + _form + " :input" ).each(function(i){
var _name = $(this).attr('name');
if (_name){
var vv = $.str2Value(tmp,_name);
if (vv){
var _type = $(this).attr("type");
if (_type == 'text' || _type == 'hidden'){
$(this).val(vv);
} else if (_type == 'radio'){
$("#" + _form +" :input[type=radio][name='" + _name + "'][value='" + vv + "']").attr("checked","checked");
} else if (_type == 'checkbox'){
var arr = vv.split(',');
for (var i = 0; i < arr.length ;i++){
$("#" + _form +" :input[type=checkbox][name='" + _name + "'][value='" + arr[i] + "']").attr("checked","checked");
}
}
}
}
});
jQuery("#" + _form + " textarea" ).each(function(i){
var _name = $(this).attr('name');
if (_name){
var v = 'tmp.' + _name;
var vv = $.str2Value(tmp,_name);
if (vv){
$(this).val(vv);
}
}
});
jQuery("#" + _form + " select" ).each(function(i){
var _name = $(this).attr('name');
if (_name){
var vv = $.str2Value(tmp,_name);
if (vv){
if ($(this).attr('multiple')){
var _ss = vv.split(',');
for (var n = 0; n < _ss.length; n++){
$(this).children('option[value="'+_ss[n] + '"]').attr("selected","selected");
}
}else{
//if($(this).get(0).length > 0){
$(this).val(vv);
//}else{
$(this).attr('_defaultValue',vv);
//}
}
$(this).trigger('change');//解决firefox下通过js改变值后不触发onchange事件,这里手动触发
}
}
});
}
});
})(jQuery);
$.extend({
dataInput: function(elems, datas, callback) {
var _tmp = datas;
elems.each(function(i){
var _name = $(this).attr('name');
if (_name){
var vv = $.str2Value(_tmp,_name);
if(vv==null||vv=="null"){
vv="";
}
var formatter=$(this).attr('formatter');
if(formatter&&formatter!='null'){
var callFromatter=eval(formatter);
vv=callFromatter(vv);
}
if (vv==0||vv){
vv = '' + vv;
if ($(this).is('div') || $(this).is('span') || $(this).is('label') ){
$(this).html(vv);
}else if ($(this).is('input')){
var _type = $(this).attr("type");
if (_type == 'text' || _type == 'hidden'){
$(this).val(vv);
} else if (_type == 'radio'){
if ($(this).val() == vv){
$(this).attr("checked","checked")
}
} else if (_type == 'checkbox'){
var arr = vv.split(',');
for (var i = 0; i < arr.length ;i++){
if ($(this).val() == arr[i]){
$(this).attr("checked","checked")
}
}
}
}else if ($(this).is('select')){
//if($(this).get(0).length > 0){
$(this).val(vv);
//}else{
$(this).attr('_defaultValue',vv);
//}
$(this).trigger('change');//解决firefox下通过js改变值后不触发onchange事件,这里手动触发
/**var _tt = vv.split(',');
for (var n = 0; n < _tt.length; n++ ){
if ($(this).val() == _tt[n]){
$(this).attr("selected","selected");
}
}**/
}else if ($(this).is('textarea')){
$(this).val(vv);
}
}
}
});
if (typeof callback != 'undefined') {
callback(datas);
}
}
});
$.extend({
dataInputHtml: function(elems, datas, callback) {
var _tmp = datas;
elems.each(function(i){
var _name = $(this).attr('name');
if (_name){
var vv = $.str2Value(_tmp,_name);
if (vv==0||vv){
vv = '' + vv;
if(vv!=null && vv!=""){
vv = vv.replace(/\n/g,"</br>");
}
if ($(this).is('div') || $(this).is('span') || $(this).is('label') ){
$(this).html(vv);
}else if ($(this).is('input')){
var _type = $(this).attr("type");
if (_type == 'text' || _type == 'hidden'){
$(this).val(vv);
} else if (_type == 'radio'){
if ($(this).val() == vv){
$(this).attr("checked","checked")
}
} else if (_type == 'checkbox'){
var arr = vv.split(',');
for (var i = 0; i < arr.length ;i++){
if ($(this).val() == arr[i]){
$(this).attr("checked","checked")
}
}
}
}else if ($(this).is('select')){
//if($(this).get(0).length > 0){
$(this).val(vv);
//}else{
$(this).attr('_defaultValue',vv);
//}
$(this).trigger('change');//解决firefox下通过js改变值后不触发onchange事件,这里手动触发
/**var _tt = vv.split(',');
for (var n = 0; n < _tt.length; n++ ){
if ($(this).val() == _tt[n]){
$(this).attr("selected","selected");
}
}**/
}else if ($(this).is('textarea')){
$(this).val(vv);
}
}
}
});
if (typeof callback != 'undefined') {
callback(datas);
}
}
});
$.extend({
dataSubString: function(elems,callback) {
elems.each(function(i){
var subStringLength = $(this).attr('subStringLength');
if (subStringLength){
if ( $(this).is('span')){
var spanText = $(this).text();
var spanTextLength = $(this).text().replace(/[^\x00-\xff]/g, ' ').length;
if(spanTextLength && spanTextLength > subStringLength){
var subStringSpanText = spanText.substring(0,subStringLength)+"...";
$(this).text(subStringSpanText);
$(this).attr('title',spanText);
}
}else if ($(this).is('input')){
var inputVal = $(this).val();
var inputValLength = $(this).val().replace(/[^\x00-\xff]/g, ' ').length;
if(inputValLength && inputValLength > subStringLength){
var subStringInputVal = inputVal.substring(0,subStringLength)+"...";
$(this).val(subStringInputVal);
$(this).attr('title',inputVal);
}
}
}
});
if (typeof callback != 'undefined') {
callback(datas);
}
}
});
/**
* 对ajax请求做了封装,统一项目的ajax请求。
* @namespace jQuery扩展封装
* @param {url} 请求的url地址
* @param {params} JSON格式的参数,如{name:'abc','age':10}
* @param {callback} 调用成功后回调函数,可不传
* @return json数据
*/
;
$.extend({
ajaxSubmit: function(url, params, callback) {
jQuery.ajax({
url: url,
type: 'POST',
dataType: 'json',
data: params,
success: function(data) {
if (typeof callback != 'undefined') {
callback(data);
}
},
error: function() {
alert('发生系统错误');
},
beforeSend: function() {
// Handle the beforeSend event
},
complete: function() {
// Handle the complete event
}
});
}
});
/**
*同步提交
*/
$.extend({
ajaxAsyncSubmit: function(url, params, callback) {
jQuery.ajax({
url: url,
type: 'POST',
dataType: 'json',
data: params,
async:false,
success: function(data) {
if (typeof callback != 'undefined') {
callback(data);
}
},
error: function() {
alert('发生系统错误');
},
beforeSend: function() {
// Handle the beforeSend event
},
complete: function() {
// Handle the complete event
}
});
}
});
/**
* 对select进行jQuery扩展,select动态数据获取封装。
* @namespace jQuery扩展select封装
* @param {json} json格式数据
* @return void
*/
;
(function() {
jQuery.extend(jQuery.fn, {
ajaxRender: function(url, config, params) { //config:{firstOption:{text:'请选择分类',value:''},keyAlias:{text:'name',value:'value'}}
var _this = this,
c = config || {}, keyValue = {
text: 'name',
value: 'value'
};
if (c.keyValue) {
keyValue = c.keyValue;
}
$(_this).empty();
if (c.firstOption) {
$(_this).append('<option value="' + c.firstOption.value + '">' + c.firstOption.text + '</option>');
}
//var data = [{'name':'选项1','value':'值1'},{'name':'选项2','value':'值2'}];
jQuery.ajax({
url: url,
type: 'GET',
dataType: 'json',
async:false,
data: params,
success: function(data) {
var root = c.root;
if(root){
var arr;
if(root.indexOf(".") > 0){
arr =root.split(".");
}
data = data[arr[0]][arr[1]];
}
if (data) {
$(_this).empty();
if (c.firstOption) {
$(_this).append('<option value="' + c.firstOption.value + '">' + c.firstOption.text + '</option>');
}
for (var i = 0; i < data.length; i++) {
$(_this).append('<option value="' + data[i][keyValue.value] + '">' + data[i][keyValue.text] + '</option>');
}
//增加自定义值 add by xiaoliangqing 20150408
if (c.endOption) {
$(_this).append('<option value="' + c.endOption.value + '">' + c.endOption.text + '</option>');
}
if ($(_this).attr('_defaultValue')){
$(_this).val($(_this).attr('_defaultValue'));
$(_this).trigger('change');//解决firefox下通过js改变值后不触发onchange事件,这里手动触发
}
}
},
error: function() {
alert('列表数据获取发生系统错误......');
},
beforeSend: function() {
// Handle the beforeSend event
},
complete: function() {
// Handle the complete event
//select下拉框选中
if(c.selectedValue){
$(_this).val(c.selectedValue);
}
}
});
},
localRender:function(data, config){ //config:{firstOption:{text:'请选择分类',value:''},keyAlias:{text:'name',value:'value'}}
var _this = this,
c = config || {}, keyValue = {
text: 'name',
value: 'value'
};
if (c.keyValue) {
keyValue = c.keyValue;
}
$(_this).empty();
if (c.firstOption) {
$(_this).append('<option value="' + c.firstOption.value + '">' + c.firstOption.text + '</option>');
}
//var data = [{'name':'选项1','value':'值1'},{'name':'选项2','value':'值2'}];
if (data) {
for (var i = 0; i < data.length; i++) {
$(_this).append('<option value="' + data[i][keyValue.value] + '">' + data[i][keyValue.text] + '</option>');
}
if ($(_this).attr('_defaultValue')){
$(_this).val($(_this).attr('_defaultValue'));
}
}
}
});
})(jQuery);
/**
* 对移除和清空加了动态效果。
* @namespace jQuery扩展移除和清空加了动态效果
* @param {json}
* @return void
*/
;
(function() {
jQuery.extend(jQuery.fn, {
options : {
speed : 500
},
fadeRemove: function(config) {
var _this = this;
$.extend(_this.options, config);
_this.fadeOut(_this.options.speed,function(){_this.remove();});
},
fadeEmpty: function(config) {
var _this = this;
$.extend(_this.options, config);
_this.fadeOut(_this.options.speed,function(){
_this.empty();
if (typeof _this.options.callback == 'function'){
_this.options.callback();
}
});
}
});
})(jQuery);
/**
* 浮层。
* @namespace jQuery扩展浮层封装
* @return void
*/
;
(function() {
jQuery.extend(jQuery.fn, {
_getViewPort: function(obj) {
var viewportwidth = 0,
viewportheight = 0;
if (typeof window.innerWidth != 'undefined') {
var obj = obj || window;
viewportwidth = obj.innerWidth;
viewportheight = obj.innerHeight;
} else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) {
var obj = obj || document.documentElement;
viewportwidth = obj.clientWidth;
viewportheight = obj.clientHeight;
}
return {
width: viewportwidth,
height: viewportheight
};
},
_calPosition: function(w, h) {
l = (Math.max($(document).width(), $(window).width()) - w) / 2;
t = $(window).scrollTop() + $(window).height() / 9;
//w = this.width(),
//h = this.height(),
//st = document.documentElement.scrollTop,
//sl = document.documentElement.scrollLeft,
//vW = this._getViewPort().width,
//vH = this._getViewPort().height,
//l = vW / 2 - w / 2 + sl,
//t = vH / 2 - h / 2 + st - 240;
/**var t = (($(window).height() / 2) - (h / 2)) -75;
var l = (($(window).width() / 2) - (w / 2));
if( t < 0 ) t = 0;
if( l < 0 ) l = 0;
// IE6 fix
if( $.browser.msie && parseInt($.browser.version) <= 6 ) t = t + $(window).scrollTop();**/
return [l, t];
},
_setPosition: function(C, B) {
if (!C) {
return false;
}
var lt = this._calPosition(C.width(), C.height());
C.css({
left: lt[0],
top: lt[1],
position: 'absolute',
'z-index': 9991
});
var $h = Math.max($(document).height(), $(window).height()),
$hh = $("html").height();
//$h = Math.max($h,$hh);
B.height($h).width('100%');
},
_createMask: function() {
var divMaskId = "_maskDivId";
if (!document.getElementById(divMaskId)) {
$('<div id="' + divMaskId + '" style="display:none;"></div>').appendTo('body');
}
this._mask = $('#' + divMaskId);
this._mask.css({
background: '#666666',
filter: 'alpha(opacity=60)',
'-moz-opacity': 0.6,
opacity: 0.6,
position: 'absolute',
left: 0,
top: 0,
'z-index': 999
});
$('#' + divMaskId).bgiframe();
this._mask.show();
return this._mask;
},
floatDiv: function(options) {
var defaults = {};
this._YQ = $.extend(defaults, options);
var show = this._YQ.show;
var _this = this;
if (this._YQ && !show) {
$(_this).slideUp(200);
var divMaskId = "_maskDivId";
if (document.getElementById(divMaskId)) {
$('#' + divMaskId).hide();
}
return;
}
var mask = this._createMask();
$(this).slideDown(200);
this._setPosition($(this), mask);
if (this._YQ && this._YQ.clsBtn) {
this._YQ.clsBtn.click(function() {
$(_this).slideUp(200);
mask.hide();
});
}
}
});
})(jQuery);
/**
* 对checkbox全选做简单封装。
* @namespace jQuery扩展函数
* @param {chkAllId} checkbox全选Id,{chkName} 被选checkbox name,
* @return void
*/
;
$.extend({
checkbox_chkAll: function(chkAllId, chkName,callback) {
var checkBoxes = $("input[name=" + chkName + "]");
$('#' + chkAllId).click(function() {
var isCheck = $(this).attr('checked') || false;
$.each(checkBoxes, function() {
$(this).attr('checked', isCheck);
});
if (callback) callback($('#' + chkAllId),checkBoxes);
});
}
});
/**
* 统一弹出框
* @param {Object} $
*/
(function($) {
$.alerts = {
verticalOffset: -75, // vertical offset of the dialog from center screen, in pixels
horizontalOffset: 0, // horizontal offset of the dialog from center screen, in pixels/
repositionOnResize: true, // re-centers the dialog on window resize
overlayOpacity: .01, // transparency level of overlay
overlayColor: '#666666', // base color of overlay
draggable: false, // make the dialogs draggable (requires UI Draggables plugin)
okButton: ' 确认 ', // text for the OK button
cancelButton: ' 取消 ', // text for the Cancel button
dialogClass: null, // if specified, this class will be applied to all dialogs
// Public methods
alert: function(message, title, callback) {
if (title == null) title = 'Alert';
$.alerts._show(title, message, null, 'alert', function(result) {
if (callback) callback(result);
});
},
confirm: function(message, title, callback) {
if (title == null) title = 'Confirm';
$.alerts._show(title, message, null, 'confirm', function(result) {
if (callback) callback(result);
});
},
prompt: function(message, value, title, callback) {
if (title == null) title = 'Prompt';
$.alerts._show(title, message, value, 'prompt', function(result) {
if (callback) callback(result);
});
},
// Private methods
_show: function(title, msg, value, type, callback) {
$.alerts._hide();
$.alerts._overlay('show');
$("BODY").append(
'<div class="popwindow" id="popup_container">' + '<div class="popwintop">' + '<div class="poptitle" id="popup_title">我是标题</div>' + '<div class="popwinright">' + '<div class="closefenge"></div>' + '<div class="daibanright" id="popwindowclose"></div>' + '</div></div>' + '<div class="popwinframe" id="popup_message">' + '</div></div>');
if ($.alerts.dialogClass) $("#popup_container").addClass($.alerts.dialogClass);
// IE6 Fix
var pos = ($.browser.msie && parseInt($.browser.version) <= 6) ? 'absolute' : 'fixed';
$("#popup_container").css({
position: pos,
zIndex: 99999,
padding: 0,
margin: 0
});
$("#popup_title").text(title);
//$("#popup_content").addClass(type);
//$("#popup_message").text(msg);
//$("#popup_message").html($("#popup_message").text().replace(/\n/g, '<br />'));
$("#popup_container").css({
minWidth: $("#popup_container").outerWidth(),
maxWidth: $("#popup_container").outerWidth()
});
$.alerts._reposition();
$.alerts._maintainPosition(true);
$("#popwindowclose").click(function() {
$.alerts._hide();
if (callback) {
callback();
};
});
$('#popup_message').empty();
switch (type) {
case 'alert':
$('<table width="90%" border="0" cellpadding="0" cellspacing="0" class="pop_insert_table"><tr><td class="pop_center">' + msg + '</td></tr></table>').appendTo('#popup_message');
/**$("#popup_ok").focus().keypress(function(e) {
if (e.keyCode == 13 || e.keyCode == 27) $("#popup_ok").trigger('click');
});**/
break;
case 'confirm':
$('<table width="90%" border="0" cellpadding="0" cellspacing="0" class="pop_insert_table"><tr class="rizhiline"><td class="pop_center">' + msg + '</td></tr><tr><td style="padding-top:10px;"><p align="center"><input type="button" id="popup_ok" value="确认" class="bluebtn1" /> <input type="button" id="popup_cancel" value="取消" class="bluebtn1" /></p></td></tr></table>').appendTo('#popup_message');
$("#popup_ok").click(function() {
$.alerts._hide();
if (callback) callback(true);
});
$("#popup_cancel").click(function() {
$.alerts._hide();
if (callback) callback(false);
});
$("#popup_ok").focus();
$("#popup_ok, #popup_cancel").keypress(function(e) {
if (e.keyCode == 13) $("#popup_ok").trigger('click');
if (e.keyCode == 27) $("#popup_cancel").trigger('click');
});
break;
case 'prompt':
$('<table width="90%" border="0" cellpadding="0" cellspacing="0" class="pop_insert_table"><tr><td class="pop_center1"><p><img src="' + (value == 1 ? 'images/pop_right.png' : 'images/pop_wrong.png') + '" width="70" height="70" border="0"/></p><p style="line-height:50px">' + msg + '</p></td></tr></table>').appendTo('#popup_message');
/**$("#popup_ok").click(function() {
var val = $("#popup_prompt").val();
$.alerts._hide();
if (callback) callback(val);
});
$("#popup_cancel").click(function() {
$.alerts._hide();
if (callback) callback(null);
});
$("#popup_prompt, #popup_ok, #popup_cancel").keypress(function(e) {
if (e.keyCode == 13) $("#popup_ok").trigger('click');
if (e.keyCode == 27) $("#popup_cancel").trigger('click');
});
if (value) $("#popup_prompt").val(value);
$("#popup_prompt").focus().select();**/
break;
}
$("#popup_container").fadeIn(200);
},
_hide: function() {
$("#popup_container").remove();
$.alerts._overlay('hide');
$.alerts._maintainPosition(false);
},
_overlay: function(status) {
switch (status) {
case 'show':
$.alerts._overlay('hide');
$("BODY").append('<div id="popup_overlay"></div>');
$("#popup_overlay").css({
background: '#666666',
filter: 'alpha(opacity=60)',
'-moz-opacity': 0.6,
opacity: 0.6,
position: 'absolute',
left: 0,
top: 0,
width: '100%',
height: $(document).height(),
'z-index': 1001
});
break;
case 'hide':
$("#popup_overlay").remove();
$("#popup_container").fadeOut(200);
break;
}
},
_reposition: function() {
//var top = (($(window).height() / 2) - ($("#popup_container").outerHeight() / 2)) + $.alerts.verticalOffset;
//var left = (($(window).width() / 2) - ($("#popup_container").outerWidth() / 2)) + $.alerts.horizontalOffset;
var left = (Math.max($(document).width(), $(window).width()) - $("#popup_container").outerWidth()) / 2;
var top = $(window).scrollTop() + $(window).height() / 9;
if (top < 0) top = 0;
if (left < 0) left = 0;
// IE6 fix
if ($.browser.msie && parseInt($.browser.version) <= 6) top = top + $(window).scrollTop();
$("#popup_container").css({
top: top + 'px',
left: left + 'px',
position: 'absolute'
});
$("#popup_overlay").height($(document).height());
},
_maintainPosition: function(status) {
if ($.alerts.repositionOnResize) {
switch (status) {
case true:
$(window).bind('resize', function() {
$.alerts._reposition();
});
break;
case false:
$(window).unbind('resize');
break;
}
}
}
}
// 快捷方式
Q_Alert = function(message, callback) {
$.alerts.alert(message, "提示", callback);
}
Q_Confirm = function(message, callback) {
$.alerts.confirm(message, "提示", callback);
}
Q_Prompt = function(message, value, callback) {
$.alerts.prompt(message, value, "提示", callback);
}
Q_Prompt_SUCC = function(message, callback) {
$.alerts.prompt(message, 1, "提示", callback);
}
Q_Prompt_FAIL = function(message, callback) {
$.alerts.prompt(message, 0, "提示", callback);
}
})(jQuery);
//Tabs
//参数:按钮(JQ对象)[,对应的层(JQ对象),当前按钮class]
Tabs = function($bts,$divs,cls){
this.bts = $bts;
this.divs = $divs || $('<div />');
this.cls = cls || 'up';
}
Tabs.prototype = {
init: function(eventType,stopDefault){
eventType = eventType || 'click';
stopDefault = stopDefault || false;
var _this = this;
this.bts.bind(eventType,function(){
var index = _this.bts.index(this);
_this.bts.removeClass(_this.cls);
$(this).addClass(_this.cls);
_this.show(index, this);
//return false;
});
this.bts.click(function(){
return stopDefault;
});
},
show: function(index, bt){
this.divs.hide().eq(index).show();
this.done(index, bt);
},
done: function(index, bt){
}
}
/**
* 获取url参数值。
* @param n 为参数名
**/
var getP = function(n) {
var hrefstr, pos, parastr, para, tempstr;
hrefstr = window.location.href;
pos = hrefstr.indexOf("?");
parastr = hrefstr.substring(pos + 1);
para = parastr.split("&");
tempstr = "";
for (i = 0; i < para.length; i++) {
tempstr = para[i];
pos = tempstr.indexOf("=");
if (tempstr.substring(0, pos).toLowerCase() == n.toLowerCase()) {
return tempstr.substring(pos + 1);
}
}
return '';
}
var isEndTimeGtStartTime = function(startTime,endTime){
var start=new Date(startTime.replace("-", "/").replace("-", "/"));
var end=new Date(endTime.replace("-", "/").replace("-", "/"));
if(end<start){
return false;
}
return true;
}
/**
* ----------------------------------
* prm 封装的一些公共组件和工具类
* ----------------------------------
*/
//命名空间定义
Aspire = {
prm:{
SSL_SECURE_URL: ctxPaths + '/jquery/plugin/custom/css/image/s.gif'
}
};
(function($){
/**
* 为form表单添加导出功能
* @memberOf {TypeName}
*/
$.fn.extend({
exportData:function(setting){
var id = new Date();
frame = (
jQuery("<iframe frameborder='0' width='0' height='0'/>")
.attr({'id':id,'name':id,src:Aspire.prm.SSL_SECURE_URL}).addClass('export-hidden')
).appendTo( document.documentElement );
//frame加载后的回调喊出
function cb(){
var response = ''
// r.argument = setting ? setting.argument : null;
try { //
var doc = frame.contents();
if(doc && doc[0].body){//处理html数据
response =eval('(' + doc.find('body').html() + ')');
}
if(doc && doc[0].XMLDocument){//处理xml数据
response = doc[0].XMLDocument;
}else {//其他数据 当作文本来处理
response = eval('(' + doc + ')');
}
}
catch(e) {
// ignore
}
frame.unbind('load',cb);
if(setting.callback && typeof setting.callback == "function"){
setting.callback.call(frame,response,setting);
}
//this.fireEvent("requestcomplete", this, r, o);
setTimeout(function(){frame.remove();}, 100);
}
frame.bind('load',cb);
//form.submit();
//拼参数
var p = setting.data;
if(typeof p == "object"){
p = $.param(p);
}
//如果用自己定义的参数就不用从表单中取
if(setting.data==null){
setting.url = setting.url || $(this).attr('action');
var f = $(this).serialize();
p = p ? (p + '&' + f) : f;
}
//最终的url
setting.url += (setting.url.indexOf('?') != -1 ? '&' : '?') + '_dc=' + (new Date().getTime());
setting.url += (setting.url.indexOf('?') != -1 ? '&' : '?') + p;
setting.url += (setting.url.indexOf('?') != -1 ? '&' : '?') + "acceptContentType=html";
setting.url = $.appendExtraParams(setting.url);
frame.attr('src',setting.url);
}
})
})(jQuery);
(function() {
jQuery.extend(jQuery.fn, {
changePlus: function(callback) {
if(window.navigator.userAgent.indexOf("MSIE")>=1){
$(this).get(0).onpropertychange = callback;
}else{
$(this).bind('change',callback);
}
}
});
})(jQuery);
//form表单ajax提交
//请求示例
/*
function test(){
$('#form').importData({
type: 'post',
url: 'http://127.0.0.1:18080/admin/test/test.txt',
dataType: 'json',
success: function(data){
alert(data.data.list[0].baseId);
},
error: function(XmlHttpRequest, textStatus, errorThrown){
alert( "error");
}
});
}
*/
(function() {
$.extend($.fn, {
importData:function(config) {
//表单
//var $form = $('#'+config.id);
var $form = $('#'+$(this).attr('id'));
var form = $form[0];
//alert(111);
/*参数
var opts = $.extend({}, $.ajaxSettings, {
type: 'post',
url: "http://127.0.0.1:8080/test/test.txt" ,
dataType: 'json',
success: function(data){
alert("success");
alert(data.data.list[0].baseId);
},
error: function(XmlHttpRequest, textStatus, errorThrown){
alert( "error");
}
});*/
var opts = $.extend({}, $.ajaxSettings, config);
opts.url = $.appendExtraParams(opts.url);
//alert(222);
//var id = 'jqFormIO' + $.fn.ajaxSubmit.counter++;
var id = new Date();
var $io = $('<iframe id="' + id + '" name="' + id + '" />');
var io = $io[0];
//目前jquery新版本已经不支持$.browser方法了
//var op8 = $.browser.opera && window.opera.version() < 9;
//if ($.browser.msie || op8) io.src = 'javascript:false;document.write("");';
//隐藏iframe
$io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
//alert(333);
var xhr = { // mock object
responseText: null,
responseXML: null,
status: 0,
statusText: 'n/a',
getAllResponseHeaders: function() {},
getResponseHeader: function() {},
setRequestHeader: function() {}
};
var g = opts.global;
// trigger ajax global events so that activity/block indicators work like normal
if (g && ! $.active++) $.event.trigger("ajaxStart");
if (g) $.event.trigger("ajaxSend", [xhr, opts]);
//alert(444);
var cbInvoked = 0;
var timedOut = 0;
// take a breath so that pending repaints get some cpu time before the upload starts
setTimeout(function() {
$io.appendTo('body');
// jQuery's event binding doesn't work for iframe events in IE
//io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
//alert(555);
// make sure form attrs are set
var encAttr = form.encoding ? 'encoding' : 'enctype';
var t = $form.attr('target');
$form.attr({
target: id,
method: 'POST',
encAttr: 'multipart/form-data',
action: opts.url
});
// support timout
if (opts.timeout)
setTimeout(function() { timedOut = true; cb(); }, opts.timeout);
//添加ifram加载事件
io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
form.submit();
//alert(666);
$form.attr('target', t); // reset target
}, 10);
function cb() {
if (cbInvoked++) return;
io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
var ok = true;
try {
if (timedOut) throw 'timeout';
// extract the server response from the iframe
var data, doc;
//alert(777);
doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
xhr.responseText = doc.body ? doc.body.innerHTML : null;
xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
if (opts.dataType == 'json' || opts.dataType == 'script') {
var ta = doc.getElementsByTagName('textarea')[0];
data = ta ? ta.value : xhr.responseText;
if (opts.dataType == 'json')
//data = jQuery.parseJSON(jQuery(data).text());//可以去除<pre>标签
data = jQuery.parseJSON(data);
//eval("data = " + data);
else
$.globalEval(data);
}
else if (opts.dataType == 'xml') {
data = xhr.responseXML;
if (!data && xhr.responseText != null)
data = toXml(xhr.responseText);
}
else {
data = xhr.responseText;
}
//alert('999'+data);
}
catch(e){
//alert(e.message);
ok = false;
//$.handleError(opts, xhr, 'error', e);
opts.error(e);
}
// ordering of these callbacks/triggers is odd, but that's how $.ajax does it
if (ok) {
opts.success(data, xhr.responseText, 'success');
if (g) $.event.trigger("ajaxSuccess", [xhr, opts]);
}
if (g) $.event.trigger("ajaxComplete", [xhr, opts]);
if (g && ! --$.active) $.event.trigger("ajaxStop");
if (opts.complete) opts.complete(xhr, ok ? 'success' : 'error');
// clean up
setTimeout(function() {
$io.remove();
xhr.responseXML = null;
}, 100);
};
}
})
})(jQuery);
jQuery.fn.limit=function(){
//这里的div去掉的话,就可以运用li和其他元素上了,否则就只能div使用。
this.each(function(){
var objString = jQuery.trim($(this).text());
var objLength = jQuery.trim($(this).text()).length;
var num = $(this).attr("limit");
if(num&&objLength > num){
//这里可以设置鼠标移动上去后显示标题全文的title属性,可去掉。
$(this).attr("title",objString);
objString = $(this).text(objString.substring(0,num) + "...");
}
//如果存在该插件则初始化,反之则不初始化
if($(this).poshytip){
$(this).poshytip();
}
})
}
var ExtUtil={
getPortal:function(){
if(top===self){//topest window
if(window.portal){
return portal;
}
}else{
var p=parent;
while(p){
if(p.portal || p.top==p.self){
break;
}else{
p=p.parent;
}
}
if(p.portal){
return p.portal;
}
}
},sendUrl:function(url){
var portal = this.getPortal();
if(portal && portal.contMgr && url){
if(url.indexOf('?') > 0){
url+= "&isOldSystem=true";
}else{
url+= "?systemPlaceholder=1&isOldSystem=true";
}
portal.contMgr.switchContent(url,true);
}
},setTitle:function(title){
var portal = this.getPortal();
if(!portal){
return;
}
portal.contMgr.getActiveTab().setTitle(title);
},closeTab:function(){
var portal = this.getPortal();
if(portal && portal.contMgr){
portal.contMgr.closeActiveTab();
}
}
};
/**
*同步提交
*/
$.extend({
ajaxAsyncSubmit: function(url, params, callback) {
jQuery.ajax({
url: url,
type: 'POST',
dataType: 'json',
data: params,
async:false,
success: function(data) {
if (typeof callback != 'undefined') {
callback(data);
}
},
error: function() {
alert('发生系统错误');
},
beforeSend: function() {
},
complete: function() {
// Handle the complete event
}
});
}
});
$.extend({
addData:function(dataList,tBodyTabel){
var incrementHtml = '';
var len = dataList.length;
for(var i=0;i<len;i++){
if(i==0 || i%3 ==0){
incrementHtml +='<tr>';
}
incrementHtml += '<td>'+dataList[i].bizName+'</td>';
incrementHtml += '<td>'+dataList[i].number+'</td>';
if((i+1)==len){
if(i%3==0){
incrementHtml += '<td> </td><td> </td><td> </td><td> </td>';
}
if(i%3==1){
incrementHtml += '<td> </td><td> </td>';
}
}
if((i+1)==len || (i+1)% 3 ==0){
incrementHtml +='</tr>';
}
}
$(tBodyTabel).append(incrementHtml);
}
});
$.extend({
addDataByYear:function(dataList,tBodyTabel){
var tableHeadHtml = '';
var addTrHtml = '';
var modTrHtml = '';
var delTrHtml = '';
var sumTrHtml = '';
tableHeadHtml += '<tr><td width="10%" class="first">业务分类</td>';
addTrHtml += '<tr><td>新增</td>';
modTrHtml += '<tr><td>变更</td>';
delTrHtml += '<tr><td>删除</td>';
sumTrHtml += '<tr><td>合计</td>';
var collTypes = dataList.collType.split(",");
var addNums = dataList.addNum.split(",");
var modNums = dataList.modNum.split(",");
var delNums = dataList.delNum.split(",");
//var sumNums = otherIncrementlist[i].sumNum.split(",");
for(var j=0;j<collTypes.length;j++){
tableHeadHtml += '<td width="9%" class="first">'+collTypes[j]+'</td>';
addTrHtml +='<td>'+addNums[j]+'</td>';
modTrHtml +='<td>'+modNums[j]+'</td>';
delTrHtml +='<td>'+delNums[j]+'</td>';
sumTrHtml +='<td>'+(parseInt(addNums[j])+parseInt(modNums[j])+parseInt(delNums[j]))+'</td>';
}
tableHeadHtml += '</tr>';
addTrHtml += '</tr>';
modTrHtml += '</tr>';
delTrHtml += '</tr>';
sumTrHtml += '</tr>';
$(tBodyTabel).append(tableHeadHtml + addTrHtml + modTrHtml + delTrHtml + sumTrHtml);
}
});
$.extend({
addGprsData:function(dataList,tBodyTabel){
var tableHeadHtml = '';
var addTrHtml = '';
var modTrHtml = '';
var delTrHtml = '';
var sumTrHtml = '';
tableHeadHtml += '<tr>';
tableHeadHtml += '<td width="22%" class="first">业务分类</td>';
addTrHtml += '<tr><td>新增</td>';
modTrHtml += '<tr><td>变更</td>';
delTrHtml += '<tr><td>删除</td>';
sumTrHtml += '<tr><td>合计</td>';
for(var i=0;i<dataList.length;i++){
tableHeadHtml += '<td width="39%" class="first"><span class="charttitle">'+dataList[i].bizName+'</span></td>';
addTrHtml +='<td>'+dataList[i].addNum+'</td>';
modTrHtml +='<td>'+dataList[i].modNum+'</td>';
delTrHtml +='<td>'+dataList[i].delNum+'</td>';
var sumNum = parseInt(dataList[i].addNum)+parseInt(dataList[i].modNum)+parseInt(dataList[i].delNum);
sumTrHtml +='<td>'+sumNum+'</td>';
if(dataList[i].bizType=='GPRSINFO'){
$("#gprsNumberId").html(sumNum);
}
if(dataList[i].bizType=='NFPAYGPRS'){
$("#dxtfNumberId").html(sumNum);
}
}
tableHeadHtml += '</tr>';
addTrHtml += '</tr>';
modTrHtml += '</tr>';
delTrHtml += '</tr>';
sumTrHtml += '</tr>';
$(tBodyTabel).append(tableHeadHtml + addTrHtml + modTrHtml + delTrHtml + sumTrHtml);
}
});
$.extend({
addOtherData:function(dataList,tBodyTabel){
for(var i=0;i<dataList.length;i++){
if(dataList[i].bizType=='WLANFEE'){
$("#wlanNum").html(dataList[i].number);
}
if(dataList[i].bizType=='TCPARTNER'){
$("#tcpartnerNum").html(dataList[i].number);
}
if(dataList[i].bizType=='TCMARKETING'){
$("#tcmarketingNum").html(dataList[i].number);
}
}
}
});
|
/**
* @fileoverview 卓望数码 jQuery Common Library
* @description:封装一些系统公用模块numbers
* @author oCEAn Zhuang ( QQ: 153414843)
* @version 1.0
* @date 2013-10-30
*/
/**
* 统一弹出框
* @param {Object} $
*/
(function($) {
$.alerts = {
verticalOffset: -75, // vertical offset of the dialog from center screen, in pixels
horizontalOffset: 0, // horizontal offset of the dialog from center screen, in pixels/
repositionOnResize: true, // re-centers the dialog on window resize
overlayOpacity: .01, // transparency level of overlay
overlayColor: '#666666', // base color of overlay
draggable: false, // make the dialogs draggable (requires UI Draggables plugin)
okButton: ' 确认 ', // text for the OK button
cancelButton: ' 取消 ', // text for the Cancel button
dialogClass: null, // if specified, this class will be applied to all dialogs
// Public methods
alert: function(message, title, callback) {
if (title == null) title = 'Alert';
$.alerts._show(title, message, null, 'alert', function(result) {
if (callback) callback(result);
});
},
confirm: function(message, title, callback) {
if (title == null) title = 'Confirm';
$.alerts._show(title, message, null, 'confirm', function(result) {
if (callback) callback(result);
});
},
prompt: function(message, value, title, callback) {
if (title == null) title = 'Prompt';
$.alerts._show(title, message, value, 'prompt', function(result) {
if (callback) callback(result);
});
},
// Private methods
_show: function(title, msg, value, type, callback) {
$.alerts._hide();
$.alerts._overlay('show');
$("BODY").append(
'<div class="popwindow" id="popup_container">' + '<div class="popwintop">' + '<div class="poptitle" id="popup_title">我是标题</div>' + '<div class="popwinright">' + '<div class="closefenge"></div>' + '<div class="daibanright" id="popwindowclose"></div>' + '</div></div>' + '<div class="popwinframe" id="popup_message">' + '</div></div>');
if ($.alerts.dialogClass) $("#popup_container").addClass($.alerts.dialogClass);
// IE6 Fix
var pos = ($.browser.msie && parseInt($.browser.version) <= 6) ? 'absolute' : 'fixed';
$("#popup_container").css({
position: pos,
zIndex: 99999,
padding: 0,
margin: 0
});
$("#popup_title").text(title);
//$("#popup_content").addClass(type);
//$("#popup_message").text(msg);
//$("#popup_message").html($("#popup_message").text().replace(/\n/g, '<br />'));
$("#popup_container").css({
minWidth: $("#popup_container").outerWidth(),
maxWidth: $("#popup_container").outerWidth()
});
$.alerts._reposition();
$.alerts._maintainPosition(true);
$("#popwindowclose").click(function() {
$.alerts._hide();
if (callback) {
callback();
};
});
$('#popup_message').empty();
switch (type) {
case 'alert':
$('<table width="90%" border="0" cellpadding="0" cellspacing="0" class="pop_insert_table"><tr><td class="pop_center">' + msg + '</td></tr></table>').appendTo('#popup_message');
/**$("#popup_ok").focus().keypress(function(e) {
if (e.keyCode == 13 || e.keyCode == 27) $("#popup_ok").trigger('click');
});**/
break;
case 'confirm':
$('<table width="90%" border="0" cellpadding="0" cellspacing="0" class="pop_insert_table"><tr class="rizhiline"><td class="pop_center">' + msg + '</td></tr><tr><td style="padding-top:10px;"><p align="center"><input type="button" id="popup_ok" value="确认" class="bluebtn1" /> <input type="button" id="popup_cancel" value="取消" class="bluebtn1" /></p></td></tr></table>').appendTo('#popup_message');
$("#popup_ok").click(function() {
$.alerts._hide();
if (callback) callback(true);
});
$("#popup_cancel").click(function() {
$.alerts._hide();
if (callback) callback(false);
});
$("#popup_ok").focus();
$("#popup_ok, #popup_cancel").keypress(function(e) {
if (e.keyCode == 13) $("#popup_ok").trigger('click');
if (e.keyCode == 27) $("#popup_cancel").trigger('click');
});
break;
case 'prompt':
$('<table width="90%" border="0" cellpadding="0" cellspacing="0" class="pop_insert_table"><tr><td class="pop_center1"><p><img src="' + (value == 1 ? 'images/pop_right.png' : 'images/pop_wrong.png') + '" width="70" height="70" border="0"/></p><p style="line-height:50px">' + msg + '</p></td></tr></table>').appendTo('#popup_message');
/**$("#popup_ok").click(function() {
var val = $("#popup_prompt").val();
$.alerts._hide();
if (callback) callback(val);
});
$("#popup_cancel").click(function() {
$.alerts._hide();
if (callback) callback(null);
});
$("#popup_prompt, #popup_ok, #popup_cancel").keypress(function(e) {
if (e.keyCode == 13) $("#popup_ok").trigger('click');
if (e.keyCode == 27) $("#popup_cancel").trigger('click');
});
if (value) $("#popup_prompt").val(value);
$("#popup_prompt").focus().select();**/
break;
}
$("#popup_container").fadeIn(200);
},
_hide: function() {
$("#popup_container").remove();
$.alerts._overlay('hide');
$.alerts._maintainPosition(false);
},
_overlay: function(status) {
switch (status) {
case 'show':
$.alerts._overlay('hide');
$("BODY").append('<div id="popup_overlay"></div>');
$("#popup_overlay").css({
background: '#666666',
filter: 'alpha(opacity=60)',
'-moz-opacity': 0.6,
opacity: 0.6,
position: 'absolute',
left: 0,
top: 0,
width: '100%',
height: $(document).height(),
'z-index': 1001
});
break;
case 'hide':
$("#popup_overlay").remove();
$("#popup_container").fadeOut(200);
break;
}
},
_reposition: function() {
//var top = (($(window).height() / 2) - ($("#popup_container").outerHeight() / 2)) + $.alerts.verticalOffset;
//var left = (($(window).width() / 2) - ($("#popup_container").outerWidth() / 2)) + $.alerts.horizontalOffset;
var left = (Math.max($(document).width(), $(window).width()) - $("#popup_container").outerWidth()) / 2;
var top = $(window).scrollTop() + $(window).height() / 9;
if (top < 0) top = 0;
if (left < 0) left = 0;
// IE6 fix
if ($.browser.msie && parseInt($.browser.version) <= 6) top = top + $(window).scrollTop();
$("#popup_container").css({
top: top + 'px',
left: left + 'px',
position: 'absolute'
});
$("#popup_overlay").height($(document).height());
},
_maintainPosition: function(status) {
if ($.alerts.repositionOnResize) {
switch (status) {
case true:
$(window).bind('resize', function() {
$.alerts._reposition();
});
break;
case false:
$(window).unbind('resize');
break;
}
}
}
}
// 快捷方式
Q_Alert = function(message, callback) {
$.alerts.alert(message, "提示", callback);
}
Q_Confirm = function(message, callback) {
$.alerts.confirm(message, "提示", callback);
}
Q_Prompt = function(message, value, callback) {
$.alerts.prompt(message, value, "提示", callback);
}
Q_Prompt_SUCC = function(message, callback) {
$.alerts.prompt(message, 1, "提示", callback);
}
Q_Prompt_FAIL = function(message, callback) {
$.alerts.prompt(message, 0, "提示", callback);
}
})(jQuery);
/**
* 所有附件上传文本框绑定change事件,当选择文件后失去焦点后会重新校验
* add by lipeng
*/
$().ready(function() {
$("input[type=file]").each(function(){
$(this).live('change',function(){
$(this).blur();
});
});
});
/**
* 初始化列表,选项为最近10年。
*
**/
var initYearSelect = function(id) {
var s = document.getElementById(id),
size = 10,
d = new Date(),
year = d.getFullYear();
s.length = 0;
for (var i = size; i >= 0; i--) {
s.options[s.length] = new Option((year - (size - i)) + '年', (year - (size - i)));
}
};
/**
* 提供静态方法初始化业务相关的列表。
*
**/
var SelectObj = {
rendereSelect: function(id, datas) {
var s = null;
if (typeof(id) == 'string') {
s = document.getElementById(id);
} else if (typeof(id) == 'object') {
s = id;
}
var len = datas.length;
s.length = 0;
for (var i = 0; i < len; i++) {
s.options[s.length] = new Option(datas[i].text, datas[i].value);
}
},
initApprovalType: function(sid) { //报批类型
var arr = [{
value: '',
text: '全部'
}, {
value: '1',
text: '报批类型1'
}, {
value: '2',
text: '报批类型2'
}];
this.rendereSelect(sid, arr);
},
initProductType: function(sid) { //产品类型
var arr = [{
value: '',
text: '全部'
}, {
value: '1',
text: '产品类型1'
}, {
value: '2',
text: '产品类型2'
}];
this.rendereSelect(sid, arr);
},
initProductSort: function(sid) { //产品分类
var arr = [{
value: '',
text: '全部'
}, {
value: '1',
text: '产品分类1'
}, {
value: '2',
text: '产品分类2'
}];
this.rendereSelect(sid, arr);
},
initProductStatus: function(sid) { //产品状态
var arr = [{
value: '',
text: '全部'
}, {
value: '1',
text: '产品状态1'
}, {
value: '2',
text: '产品状态2'
}];
this.rendereSelect(sid, arr);
},
initProductSupportProvince: function(sid) { //产品支撑省
var arr = [{
value: '',
text: '全部'
}, {
value: '1',
text: '产品支撑省1'
}, {
value: '2',
text: '产品支撑省2'
}];
this.rendereSelect(sid, arr);
},
initTargetCustomer: function(sid) { //目标客户
var arr = [{
value: '',
text: '全部'
}, {
value: '1',
text: '目标客户1'
}, {
value: '2',
text: '目标客户2'
}];
this.rendereSelect(sid, arr);
},
initCustomerService: function(sid) { //客户服务
var arr = [{
value: '',
text: '全部'
}, {
value: '1',
text: '客户服务1'
}, {
value: '2',
text: '客户服务2'
}];
this.rendereSelect(sid, arr);
},
initProductAttr: function(sid) { //产品属性
var arr = [{
value: '',
text: '全部'
}, {
value: '1',
text: '产品属性1'
}, {
value: '2',
text: '产品属性2'
}];
this.rendereSelect(sid, arr);
},
initProductImportant: function(sid) { //重要性
var arr = [{
value: '',
text: '全部'
}, {
value: '1',
text: '重要性1'
}, {
value: '2',
text: '重要性2'
}];
this.rendereSelect(sid, arr);
},
initPartner: function(sid) { //合作方
var arr = [{
value: '',
text: '全部'
}, {
value: '1',
text: '合作方1'
}, {
value: '2',
text: '合作方2'
}];
this.rendereSelect(sid, arr);
},
initModeOfOperation: function(sid) { //运营方式
var arr = [{
value: '',
text: '全部'
}, {
value: '1',
text: '运营方式1'
}, {
value: '2',
text: '运营方式2'
}];
this.rendereSelect(sid, arr);
},
initChargingCntrolMnagement: function(sid) { //计费控制管理
var arr = [{
value: '',
text: '全部'
}, {
value: '1',
text: '计费控制管理1'
}, {
value: '2',
text: '计费控制管理2'
}];
this.rendereSelect(sid, arr);
},
initUserDataAndOrderRelations: function(sid) { //用户数据及订购关系说明
var arr = [{
value: '',
text: '全部'
}, {
value: '1',
text: '用户数据及订购关系说明1'
}, {
value: '2',
text: '用户数据及订购关系说明2'
}];
this.rendereSelect(sid, arr);
},
initProductStatus: function(sid) { //用户数据及订购关系说明
var arr = [{
value: '',
text: '全部'
}, {
value: '1',
text: '待受理'
}, {
value: '2',
text: '待初审'
}, {
value: '1',
text: '待复审'
}, {
value: '2',
text: '初审打回'
}, {
value: '1',
text: '复审打回'
}];
this.rendereSelect(sid, arr);
},
initFeedbackChannel: function(sid) { //用户数据及订购关系说明
var arr = [{
value: '',
text: '全部'
}, {
value: '1',
text: '反馈渠道1'
}, {
value: '2',
text: '反馈渠道2'
}];
this.rendereSelect(sid, arr);
},
initProduct: function(sid) { //用户数据及订购关系说明
$("#productName").ajaxRender("test/requirement/productName.json", {
keyValue: {
text: 'productName',
value: 'productCode'
}
});
},
initProductAndSubProduct: function(productId, subProductId) { //用户数据及订购关系说明
var productObj = productId,
subProductObj = subProductId;
if (typeof productId == 'string') {
productObj = $('#' + productId);
}
if (typeof subProductId == 'string') {
subProductObj = $('#' + subProductId);
}
/**productObj.bind('focus', function() {
if (subProductObj) {
subProductObj.length = 0;
subProductObj.options[subProductObj.length] = new Option('--请选择--', '');
}
})**/
productObj.bind('change',function(){
if($.browser.mozilla){
alert($(this).attr('_pid'));
if ($(this).attr('_pid')){
$(this).attr('pid',$(this).attr('_pid'));
$(this).attr('_pid','');
}else{
$(this).attr('pid','');
subProductObj.empty();
subProductObj.append('<option value="">--请选择--</option>');
subProductObj.trigger('blur');
}
}else{
subProductObj.empty();
subProductObj.append('<option value="">--请选择--</option>');
subProductObj.trigger('blur');
}
});
productObj.autocomplete({
minLength: 0,
//source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ],
source: function(request, response) {
$.ajax({
url: "test/requirement/productName.json",
dataType: "json",
data: {
featureClass: "P",
style: "full",
maxRows: 12,
name_startsWith: request.term
},
success: function(data) {
response($.map(data, function(item) {
return {
label: item.productName,
value: item.productCode
}
}));
}
});
},
select: function(event, ui) {
$(this).val(ui.item.label);
$(this).attr('pid',ui.item.value);
$(this).attr('_pid',ui.item.value);
if (typeof subProductObj != 'undefined') {
var pid = $(this).attr('pid');
if (pid){
subProductObj.ajaxRender("test/requirement/subProductName.json?pid=" + pid, {
firstOption: {
text: '--请选择--',
value: ''
},
keyValue: {
text: 'productName',
value: 'productCode'
}
});
}else{
subProductObj.empty();
subProductObj.append('<option value="">--请选择--</option>');
}
//subProductObj.trigger('blur');
}
return false;
}
});
/**productObj.autocomplete({
url:"test/requirement/productName2.json",
minChars: 0,
onNoMatch: true,
autoFill: true,
showResult: function(value, data) {
return '<span style="color:red">' + value + '</span>';
},
onItemSelect: function(item) {
productObj.attr('pid',item.value);
subProductObj.ajaxRender("test/requirement/subProductName.json",{firstOption:{text:'--请选择--',value:''},keyValue:{text:'productName',value:'productCode'}},{"suName":"1111"});
}
//data:[ ['apple', 1], ['apricot', 2], ['pear', 3], ['prume', 4], ['飞翔', 5], ['飞信', 6]]
});**/
/**productObj.bind('blur', function() {
subProductObj.ajaxRender("test/requirement/subProductName.json", {
firstOption: {
text: '--请选择--',
value: ''
},
keyValue: {
text: 'productName',
value: 'productCode'
}
}, {
"suName": "1111"
});
})**/
/**productObj.autocomplete({
source: function(request, response) {
$.ajax({
url: "test/requirement/productName3.json",
data: {
name: request.term
},
dataType: "json",
success: function(data, textStatus, jqXHR) {
response($.map(data, function(item, index) {
return item.label;
}));
},
minLength: 0
});
}
});**/
/**productObj.autocomplete({
url:'test/requirement/productName3.json',
showResult: function(value, data) {
return value.label;
},
onItemSelect: function(item) {
}
});**/
/**
productObj.ajaxRender("test/requirement/productName.json",{
keyValue:{text:'productName',value:'productCode'}
});
productObj.bind("change",function(){
subProductObj.ajaxRender("test/requirement/subProductName.json",{keyValue:{text:'productName',value:'productCode'}},{"suName":"1111"});
});
/**$('#' + productId).bind("change",function(){
$('#' + subProductId).ajaxRender("test/requirement/subProductName.json",{keyValue:{text:'productName',value:'productCode'}},{"suName":"1111"});
});**/
},
initRequirementType: function(sid) { //用户数据及订购关系说明
var obj = typeof(sid) == 'string' ? $('#' + sid) : sid;
obj.ajaxRender("test/requirement/reqType.json", {
firstOption: {
text: '--请选择--',
value: ''
},
keyValue: {
text: 'reqTypeDesc',
value: 'reqTypeCode'
}
});
},
initRequirementSource: function(sid) { //用户数据及订购关系说明
var obj = typeof(sid) == 'string' ? $('#' + sid) : sid;
obj.ajaxRender("test/requirement/reqSource.json", {
firstOption: {
text: '--请选择--',
value: ''
},
keyValue: {
text: 'reqSourceDesc',
value: 'reqSourceCode'
}
});
}
}
/**
* 弹出标签式的列表选项。
*
**/
var TagSelectObj = function(contenterId) {
this._contenterId = contenterId;
}
TagSelectObj.prototype = {
_options: {
btnName: '请选择',
url: ''
},
/**_getSelectedTags: function() {
var ids = [];
var choiceitems = $('#' + this._contenterId).children('div:eq(1) .choiceitem');
for (var j = 0; j < choiceitems.length; j++) {
ids.push(choiceitems[j].attr('tagId'));
}
},**/
getSelectedTags: function() {
var result = [],
tags = $('#' + this._contenterId + ' div.choice .item');
$.each(tags, function() {
var tagid = $(this).attr('tagid');
result.push(tagid);
});
return result.join(',');
},
getTagHTML: function(contenterId, id, text) {
return '<div class="item" id="' + contenterId + id + '" tagId="' + id + '"><div class="choiceitem">' + text + '</div><div class="closeitem1"> <a href="javascript:;" onclick="javascript:$(this).parent(\'div\').parent(\'div\').fadeRemove();$(\'#\' + $(this).parent(\'div\').parent(\'div\').attr(\'id\') + \'_cb\').attr(\'checked\',false);"></a> </div></div>';
},
init: function(opt) {
var _this = this;
$.extend(_this._options, opt);
var divId = _this._contenterId;
$(' <div style="float:left;"><input width="81px" type="button" style="width:81px;height:25px; line-height:25px;" class="bluebtn" value="' + _this._options.btnName + '"></div></br><div class="choice"></div><div style="clear:both"></div><div class="popwindow" style="z-index:998;position:absolute;" id="popwindow_' + divId + '"><div class="popwintop"> <div class="poptitle">请选择</div> <div class="popwinright"> <div class="closefenge"></div><a class="daibanright" href="javascript:;" onclick="javascript:$(\'#popwindow_' + divId + '\').hide(200);"></a> </div></div><div class="popwinframe"></div>').appendTo('#' + this._contenterId);
//$('<div></div><br /><div> <input type="button" width="81px" value="选择" class="bluebtn" style="width:81px;height:25px; line-height:25px;" /></div><div style="clear:both"></div><div class="popwindow" style="z-index:998" id="popwindow_'+divId + '"><div class="popwintop"> <div class="poptitle">请选择</div> <div class="popwinright"> <div class="closefenge"></div><a class="daibanright" href="javascript:;" onclick="javascript:$(\'#popwindow_'+divId + '\').hide(500);"></a> </div></div><div class="popwinframe"></div>').appendTo('#' + this._contenterId);
$('#' + divId + ' div:eq(0) :button').bind('click', function() {
$('#popwindow_' + divId).show();
if ($('#popwindow_' + divId).children('div.popwinframe').html() == '') {
$.ajaxSubmit(_this._options.url, {}, function(rtn) {
if (rtn.success) {
var datas = rtn.data;
var tmp = ['<div class="choice_list"><input type="checkbox" name="checkBoxAll" id="checkboxall_' + divId + '"/> 全选</div>'];
for (var i = 0; i < datas.length; i++) {
var width = 15;
if (datas[i].text.length > 3 && datas[i].text.length < 8) {
width = 30;
} else if (datas[i].text.length >= 8) {
width = 35;
}
tmp.push('<div class="choice_list" style="width:' + width + '%"><input type="checkbox" id="' + divId + datas[i].id + '_cb" name="checkbox_' + divId + '" value="' + datas[i].id + '"/> ' + datas[i].text + '</div>');
}
tmp.push('<div style="clear:both"></div>')
$('#popwindow_' + divId).children('div.popwinframe').append(tmp.join(''));
$('input[name=checkbox_' + divId + ']').bind('click', function() {
var isCheck = $(this).attr('checked') || false;
if (isCheck) {
$('#' + divId + ' .choice').append(_this.getTagHTML(divId, $(this).val(), $(this).parent().text()));
//$('<div class="choiceitem" id="' + divId + $(this).val() + '" tagId="'+ $(this).val() + '">' + $(this).parent().text() + '<div class="closeitem" style="position:relative;left:50px;"><a href="javascript:;" onclick="javascript:$(this).parent(\'div\').parent(\'div\').fadeRemove();$(\'#\' + $(this).parent(\'div\').parent(\'div\').attr(\'id\') + \'_cb\').attr(\'checked\',false);"><img src="images/closeitem.png" width="22" height="22" border="0" /></a></div></div>').appendTo(('#' + divId +' div:eq(0)'));
} else {
$('#' + divId + $(this).val()).fadeRemove();
}
});
$.checkbox_chkAll('checkboxall_' + divId, 'checkbox_' + divId, function(allObj, selObjs) {
var isCheck = allObj.attr('checked') || false;
if (isCheck) {
$.each(selObjs, function() {
$('#' + divId + ' .choice').append(_this.getTagHTML(divId, $(this).val(), $(this).parent().text()));
//$('<div class="choiceitem" id="' + divId + $(this).val() + '" tagId="' + $(this).val() + '">' + $(this).parent().text() + '<div class="closeitem" style="position:relative;left:50px;"><a href="javascript:;" onclick="javascript:$(this).parent(\'div\').parent(\'div\').fadeRemove();$(\'#\' + $(this).parent(\'div\').parent(\'div\').attr(\'id\') + \'_cb\').attr(\'checked\',false);"><img src="images/closeitem.png" width="22" height="22" border="0" /></a></div></div>').appendTo(('#' + divId +' div:eq(0)'));
});
} else {
$('#' + divId + ' .choice').empty();
}
});
}
});
}
});
}
}
/**
* 初始化列表,选项为12月份。
*
**/
var initMonthSelect = function(id) {
var s = document.getElementById(id),
m = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'],
size = m.length;
s.length = 0;
for (var i = 0; i < size; i++) {
s.options[s.length] = new Option(m[i] + '月', m[i]);
}
}
/**
* 对Pluploader附件上传插件按照业务需求做简单封装。
* 初始化:PlUploaderObj.init('uploadFileDiv');
* 获取上传成功的附件ID,多个以','隔开,PlUploaderObj.getSucc();
**/
var PlUploaderObj = function(contenterId) {
this._contenterId = contenterId;
this._uploadId = 'uploading_' + this._contenterId;
this._count = 0;
this._uploadFileBtnId = 'uploadFileBtn';
this._attachFileIds = [];
this._add_attachFileIds = [];
this._del_attachFileIds = [];
this._attachGroupId = '';
this._hiddenId = '';
this._uploadFinishedId = '';
this._isInit = false;
this.uploader = null;
this._options = {
btnName: '上传附件',
btnWidth : '',
max_file_size: '3mb',
max_file: 1,
addUrl: BIZCTX_PATH + '/attachment!add.action',
mutilAddUrl : BIZCTX_PATH + '/attachment!addForMulti.action',
delUrl: BIZCTX_PATH + '/attachment!withdraw.action',
downloadUrl: BIZCTX_PATH + '/attachment!download.action',
viewUrl:BIZCTX_PATH + '/attachment!view.action',
attachGroupId : '',
disTheme: 1,
hiddenName : '', //附件组ID
hiddenAttachId : '',//附件ID,多个用逗号隔开,多附件该参数不能为空
hiddenAttr :null,
uploadFinishedName : '',
uploadFinishedAttr : {'uploadfinishedflag':'1','datatype':'uploadFinished','uploadfinishedignore':'uploadfinishedignore'},
attachTypeId:'',
isView : false,
initData: [],
mime_types: [{
title: "图片文件(jpg,jpeg,gif)",
extensions: "jpg,jpeg,gif"
}, {
title: "Word文件(doc,docx)",
extensions: "doc,docx"
},{
title: "Pdf文件(pdf)",
extensions: "pdf"
}, {
title: "Rar文件(zip,rar)",
extensions: "zip,rar"
}, {
title: "Excel文件(xls,xlsx)",
extensions: "xls,xlsx"
}, {
title: "PowerPoint文件(ppt,pptx)",
extensions: "ppt,pptx"
}]
};
}
PlUploaderObj.prototype = {
_disableBrowse: function(flag) { //控制上传按钮启用/禁用以及按钮样式
var _this = this;
_this.uploader.disableBrowse(flag);
if (flag) {
$('#' + _this._uploadFileBtnId).removeClass('bluebtn').addClass('graybtn');
} else {
$('#' + _this._uploadFileBtnId).removeClass('graybtn').addClass('bluebtn');
}
},
_checkMaxSize: function() { //检查是否上传的附件总数已达到最大
var _this = this;
if (!_this.getSucc()){
$('#' + _this._uploadFileBtnId).parent().show();
//document.getElementById(_this._uploadFileBtnId).style.display = 'inline';
//$('#' + _this._uploadFileBtnId).parent().show();
//_this._disableBrowse(false);
//if (!_this._isInit){
_this._initPlUpload();
//_this._isInit = true;
//}
return;
}
if (_this.getSucc().split(',').length < _this._options.max_file) {
$('#' + _this._uploadFileBtnId).parent().show();
//document.getElementById(_this._uploadFileBtnId).style.display = 'inline';
//if (!_this._isInit){
_this._initPlUpload();
// _this._isInit = true;
//}
//$('#' + _this._uploadFileBtnId).parent().show();
//_this._disableBrowse(false);
} else {
//document.getElementById(_this._uploadFileBtnId).style.display = 'none';
$('#' + _this._uploadFileBtnId).parent().hide();
if (_this.uploader){
_this.uploader.destroy();
//_this._isInit = false;
//$('#' + _this._uploadFileBtnId).parent().hide();
//_this._disableBrowse(true);
}
}
},
_bindCloseItemEvent: function() { //绑定上传的附件关闭事件
var _this = this;
$('#' + this._contenterId + ' .uploading .closeitem a').bind("click",function() {
//_this.uploader.trigger('CancelUpload');
var o = $(this).parent('div').parent('div');
if (o.attr('attachfileid')){
$.ajaxSubmit(_this._options.delUrl,{'attachFileId':o.attr('attachfileid')},function(_data){
if (_data && _data.success){
_this._del_attachFileIds.push(o.attr('attachfileid'));
o.fadeOut(500, function() {
o.remove();
_this._checkMaxSize();
_this._initHiddenName();
_this._initHiddenUpLoadFinishedName();
});
}
});
}else{
o.fadeOut(500, function() {
o.remove();
_this._checkMaxSize();
_this._initHiddenName();
_this._initHiddenUpLoadFinishedName();
});
}
//_this.uploader.refresh();
//$(this).parent('div').parent('div').remove();
});
},
_changeParam: function(url, name, value) {
var newUrl = "";
var reg = new RegExp("(^|)" + name + "=([^&]*)(|$)");
var tmp = name + "=" + value;
if (url.match(reg) != null) {
newUrl = url.replace(eval(reg), tmp);
} else {
if (url.match("[\?]")) {
newUrl = url + "&" + tmp;
} else {
newUrl = url + "?" + tmp;
}
}
return newUrl;
},
_initDatas: function() { //初始化已上传的附件信息
var _this = this;
var _options = _this._options;
//if (_options.attachGroupId) {
/**$.ajaxSubmit(_options.viewUrl,{'attachGroupId':_options.attachGroupId},function(_data){
if (_data){
for (var i = 0; i < _data.files.length; i++) {
if (_this._options.disTheme == 2) {
$('#' + this._contenterId).append('<div class="uploading" fileid="' + _data.files[i].fileId + '" style="width:100px;height:100px;"><img src="' + _data.files[i].fileName + '"/>' + (_this._options.isView ? '<div style="margin-top:-38px;margin-left:192px;" class="closeitem"> <a href="javascript:;"></a>':'') + ' </div></div>');
} else {
$('#' + this._contenterId).append('<div class="uploading" fileid="' + _data.files[i].fileId + '"><div class="uploadfile">' + _data.files[i].fileName + '</div>'+(_this._options.isView ? '<div style="margin-top:-38px;margin-left:192px;" class="closeitem"> <a href="javascript:;"></a>':'') + '</div></div>');
}
}
this._bindCloseItemEvent();
}
});**/
if (_options.initData.length > 0){
for (var i = 0; i < _options.initData.length; i++) {
$('#' + _this._contenterId).attr('attachGroupId', _options.initData[i].groupId);
if (_options.disTheme == 2) {
$('#' + _this._contenterId).append('<div class="uploading" attachfileid="' + _options.initData[i].fileId + '" style="width:100px;height:100px;"><div class="uploadcontent"><img src="' + _options.initData[i].fileName + '"/></div>' + (!_this._options.isView ? '<div style="margin-top:-38px;margin-left:192px;" class="closeitem"> <a href="javascript:;"></a>':'') + ' </div></div>');
} else {
$('#' + _this._contenterId).append('<div class="uploading" attachfileid="' + _options.initData[i].fileId + '"><div class="uploadcontent"><div class="uploadfile"><a href="'+$.appendExtraParams(_this._options.downloadUrl + "?attachFileId=" + _options.initData[i].fileId) + '" target="_blank" title="' + _options.initData[i].fileName + '">' + _options.initData[i].fileName + '</a></div></div>'+(!_this._options.isView ? '<div style="margin-top:-38px;margin-left:192px;" class="closeitem"> <a href="javascript:;"></a>':'') + '</div></div>');
}
}
_this._initHiddenName();
_this._initHiddenUpLoadFinishedName();
_this._bindCloseItemEvent();
//}
}
_this._checkMaxSize();
},
_initHiddenName : function(){
/*var name = this._options.hiddenName ? this._options.hiddenName : '';
var id = 'hidden_' + this._contenterId;
if (!document.getElementById(id)){
this._hiddenId = id;
$('#' + this._uploadFileBtnId).parent().parent().append('<input type="hidden" '+ (this._options.hiddenName ? 'name="' + this._options.hiddenName + '"' : '') +' id="' + id + '"/>');
if (this._options.hiddenAttr){
for (var obj in this._options.hiddenAttr){
$('#' + id).attr(obj,this._options.hiddenAttr[obj]);
}
}
}*/
if (this._options.max_file > 1){
$('#' + this._hiddenId).val(this.getSucc());
$('#' + this._attachGroupId).val(this.getGroupId());
}else{
if (this.getSucc()){
$('#' + this._hiddenId).val(this.getGroupId());
}else{
$('#' + this._hiddenId).val('');
$('#' + this._hiddenId).trigger('blur');
}
}
/**if(this._options.max_file == 1){
$('#' + id).val(this.getGroupId());
}else{
$('#' + id).val(this.getGroupId() + "|" + this.getSucc());
}**/
$('#' + this._contenterId).attr('attachFiles',this.getAttachFiles());
//$('#' + this._hiddenId).trigger('blur');
},
_initHiddenUpLoadFinishedName : function(){
var uploadFinishedName = this._options.uploadFinishedName ? this._options.uploadFinishedName : 'hidden_uploadFinishedName_' + this._contenterId;
var uploadFinishedId = 'hidden_uploadFinishedId_' + this._contenterId;
$('#' + uploadFinishedId).parent('div').remove();
$('#' + this._uploadFileBtnId).parent().parent().append('<div><input type="hidden"'+' name="' + uploadFinishedName + '" id="' + uploadFinishedId + '" value="uploadFinished" /></div>');
if (this._options.uploadFinishedAttr){
for (var obj in this._options.uploadFinishedAttr){
$('#' + uploadFinishedId).attr(obj,this._options.uploadFinishedAttr[obj]);
}
}
$('#'+uploadFinishedId).trigger('blur');
},
_addAttacheTypeParam:function(){
var params = "attachTypeId="+this._options.attachTypeId;
if (this._options.max_file > 1){
params += '&attachGroupId=' + this.getGroupId() + '&attachFileIds=' + this.getSucc();
this._uploadUrl = this._options.mutilAddUrl;
}else{
this._uploadUrl = this._options.addUrl;
}
if(this._options.addUrl.indexOf("?") == -1){
this._uploadUrl += "?" + params;
}else{
this._uploadUrl += "&" + params;
}
},
_composeMimeTypes:function(){
var _this = this;
if(_this._options.mime_types && $.isArray(_this._options.mime_types)){//把mime_types组合到一起展示为所有文件
var all_extensions = [];
$.each(_this._options.mime_types, function(i,mimeTypes){
if(mimeTypes.extensions && $.trim(mimeTypes.extensions).length > 0){
all_extensions.push(mimeTypes.extensions);
}
});
//添加到类型开头
var all_extensionss = all_extensions.join(",");
_this._options.mime_types.unshift({title:'所有文件(' + all_extensionss + ')',extensions:all_extensionss});
}
},
_initPlUpload : function(){
var _this = this;
_this._addAttacheTypeParam();//byhaomingli
_this.uploader = new plupload.Uploader({
runtimes: 'gears,html5,silverlight,html4,flash',
browse_button: _this._uploadFileBtnId, // you can pass in id...
container: _this._contenterId, // ... or DOM Element itself
url: _this._uploadUrl,
multi_selection: false,
chunk_size: '250kb',
max_retries:0,
//multipart:true,
flash_swf_url: ctxPaths + '/jquery/plugin/plupload/Moxie.swf',
silverlight_xap_url: ctxPaths + '/jquery/plugin/plupload/Moxie.xap',
max_file_size: _this._options.max_file_size,
filters: _this._options.mime_types,
file_data_name:'attachment',
headers : {'attachTypeId':_this._options.attachTypeId},
init: {
PostInit: function() {
},
FilesAdded: function(up, files) {
$('#' + _this._uploadFileBtnId).parent().hide();
//document.getElementById(_this._uploadFileBtnId).style.display = 'none';
plupload.each(files, function(file) {
//$('#' + _this._contenterId).append('<div class="uploading"><div><div class="uploadfile"><a href="javascript:;" target="_blank">' + file.name + ' (' + plupload.formatSize(file.size) + ')</a></div><span class="red">0%</span></div><div class="uploadbar" style="width:0%"></div><div class="closeitem"> <a href="javascript:;"></a> </div></div>');
$('#' + _this._contenterId).append('<div class="uploading"> <div class="uploadcontent"> <div class="uploadfile"><a target="_blank" href="javascript:;" title="' + file.name + '">' + file.name + '</a></div> <div class="red uploadpercent">0%</div><div class="uploadbarbox"><div style="width: 0%;" class="uploadbar"></div></div> </div> <div class="closeitem"> <a href="javascript:;"></a></div></div>');
//$('.uploading:last').attr('attachFileId', file.name);
});
/**if ($('#' + _this._contenterId).attr('attachGroupId')) {
_this.uploader.settings.url = _this._changeParam(_this.uploader.settings.url, 'attachGroupId', $('#' + _this._contenterId).attr('attachGroupId'));
}**/
_this._bindCloseItemEvent();
//up.refresh();
//$('#uploadFileBtn').hide();
//$('#uploadFileBtn2').show();
up.refresh();
_this.uploader.disableBrowse(true);
_this.uploader.start();
},
BeforeUpload : function(up, file){
var uploadFinishedId = 'hidden_uploadFinishedId_' + _this._contenterId;
$('#'+uploadFinishedId).attr("uploadfinishedflag","0");
//添加额外参数 ,支持分块传输,by haomingli
if(up.settings.multipart_params == undefined){
up.settings.multipart_params = {fileId:file.id }
}
},
UploadProgress: function(up, file) {
var _percent=file.percent>1?file.percent-1:file.percent;
$('#' + _this._contenterId + ' .uploading .uploadcontent .uploadpercent:last').html(_percent + '%');
$('#' + _this._contenterId + ' .uploading .uploadcontent .uploadbarbox .uploadbar:last').width(_percent+ '%');
},
UploadComplete: function(up, file) {
//_this._disableBrowse(false);
//_this._checkMaxSize();
//$('.uploading:last').attr('fileId', file.name);
},
FileUploaded: function(up, file, res) {
var result = {'success':false};
var uploadFinishedId = 'hidden_uploadFinishedId_' + _this._contenterId;
$('#'+uploadFinishedId).attr("uploadfinishedflag","1");
//alert("FileUploaded1");
$('#'+uploadFinishedId).trigger('blur');
//alert("FileUploaded2");
if (res.response){
try{
result = eval(("(" + res.response + ")"));
}catch(err){
result = {'success':false,'data':{'msg':'发生未知错误'}};
}
}
if (result.success){
_this._add_attachFileIds.push(result.attachFileId);
$('#' + _this._contenterId + ' .uploading .uploadcontent .uploadpercent:last').remove();
$('#' + _this._contenterId + ' .uploading .uploadcontent .uploadbarbox:last').remove();
if (_this._options.disTheme == 2) {
$('#' + _this._contenterId + ' .uploading .uploadfile :last').remove();
$('#' + _this._contenterId + ' .uploading:last').css('width', '100px').css('height', '100px').append('<img src="'+$.appendExtraParams (_this._options.viewUrl + "?attachFileId=" + result.attachFileId + "&attachGroupId=" + result.attachGroupId) + '"/>');
}else{
$('#' + _this._contenterId + ' .uploading .uploadcontent .uploadfile a:last').attr('href',$.appendExtraParams (_this._options.downloadUrl + "?attachFileId=" + result.attachFileId));
}
$('#' + _this._contenterId + ' .uploading:last').attr('attachfileid', result.attachFileId);
$('#' + _this._contenterId).attr('attachGroupId', result.attachGroupId);
//$('#h_' + this._contenterId).val(result.attachGroupId + "|");
_this._initHiddenName();
_this._initHiddenUpLoadFinishedName();
}else{
alert(result.data.msg);
$('#' + _this._contenterId +' .uploading:last').append('<div style="float:bottom"><a href="javascript:void(0)">续传</a> </div>');
}
//$('#uploadFileBtn2').hide();
//$('#uploadFileBtn').show();
//_this.uploader.init();
//$('#uploadFileBtn').removeClass('graybtn').addClass('bluebtn');
up.refresh();
_this._bindCloseItemEvent();
//_this._disableBrowse(false);
_this._checkMaxSize();
$('#' + _this._hiddenId).trigger('blur');
if (_this.uploader)_this.uploader.disableBrowse(false);
},
ChunkUploaded:function(up, file, res){//分块文件每块上传后回调
result = {'success':false,'data':{'msg':'未知错误'}};
if (res.response){
try{
result = eval(("(" + res.response + ")"));
}catch(err){
result = {'success':false,'data':{'msg':'发生未知错误'}};
}
}
if(result.success == false){//上传失败
//继续上传 to
alert(result.data.msg);
$('#' + _this._contenterId +' .uploading:last').remove();
up.refresh();
_this._checkMaxSize();
if (_this.uploader)_this.uploader.disableBrowse(false);
}
},
Error: function(up, err) {
if(err.message.indexOf("HTTP")>-1){
alert("附件上传失败,请检查网络是否通畅!");
}else{
alert(err.message);
}
$('#' + _this._contenterId +' .uploading:last').append('<div style="float:bottom;margin-top:14px;"><a class="keepUpload" href="javascript:void(0)">续传</a> </div>');
$('#' + _this._contenterId +' .uploading .keepUpload').click(function(){
err.file.status = plupload.UPLOADING;
up.state= plupload.UPLOADING;
$('#' + _this._contenterId +' .uploading .keepUpload').remove();
_this.uploader.trigger("UploadFile", err.file);
});
if (_this.uploader)_this.uploader.disableBrowse(false);
}
}
});
_this.uploader.init();
},
init: function(ops) {
var _this = this;
if (typeof ops == 'object') {
$.extend(_this._options, ops);
}
_this._composeMimeTypes();
_this._uploadFileBtnId = 'uploadBtn_' + _this._contenterId;
var name = _this._options.hiddenName ? _this._options.hiddenName : '';
_this._hiddenId = 'hidden_' + _this._contenterId;
_this._attachGroupId = 'hidden_groupid_' + _this._contenterId;
//add by xiaoliangqing on 2014/01/07 start
var uploadFinishedName = _this._options.uploadFinishedName ? _this._options.uploadFinishedName : 'hidden_uploadFinishedName_' + _this._contenterId;
_this._options.uploadFinishedName = uploadFinishedName;
var uploadFinishedId = 'hidden_uploadFinishedId_' + _this._contenterId;
_this._uploadFinishedId = uploadFinishedId;
//add by xiaoliangqing on 2014/01/07 end
$('#' + _this._contenterId).empty();
if (_this._options.max_file > 1){
$('<div><input type="button" id="' + _this._uploadFileBtnId + '" value="' + _this._options.btnName + '" class="bluebtn" '+(_this._options.btnWidth?'style="width:'+_this._options.btnWidth+'"':'')+'/><input type="hidden" '+ (_this._options.hiddenAttachId ? 'name="' + _this._options.hiddenAttachId + '"' : '') +' id="' + _this._hiddenId + '"/><input type="hidden" '+ (_this._options.hiddenName ? 'name="' + _this._options.hiddenName + '"' : '') +' id="' + _this._attachGroupId + '"/></div>').appendTo('#' + _this._contenterId);
}else{
$('<div><input type="button" id="' + _this._uploadFileBtnId + '" value="' + _this._options.btnName + '" class="bluebtn" '+(_this._options.btnWidth?'style="width:'+_this._options.btnWidth+'"':'')+'/><input type="hidden" '+ (_this._options.hiddenName ? 'name="' + _this._options.hiddenName + '"' : '') +' id="' + _this._hiddenId + '"/></div>').appendTo('#' + _this._contenterId);
}
//$('<div><input type="button" id="' + _this._uploadFileBtnId + '" value="' + _this._options.btnName + '" class="bluebtn" '+(_this._options.btnWidth?'style="width:'+_this._options.btnWidth+'"':'')+'/>').appendTo('#' + _this._contenterId);
//if (_this._options.max_file > 1){
//$('#' + _this._contenterId).append('<input type="hidden" '+ (_this._options.hiddenAttachId ? 'name="' + _this._options.hiddenAttachId + '"' : '') +' id="' + _this._hiddenId + '"/><input type="hidden" '+ (_this._options.hiddenName ? 'name="' + _this._options.hiddenName + '"' : '') +' id="' + _this._attachGroupId + '"/></div>').appendTo('#' + _this._contenterId);
//}else{
//$('#' + _this._contenterId).append('<input type="hidden" '+ (_this._options.hiddenName ? 'name="' + _this._options.hiddenName + '"' : '') +' id="' + _this._hiddenId + '"/></div>').appendTo('#' + _this._contenterId);
//}
$('<div><input type="hidden"'+' name="' + uploadFinishedName + '" id="' + uploadFinishedId + '" value="uploadFinished" />').appendTo('#' + _this._contenterId);
//$('<div><input type="button" id="' + _this._uploadFileBtnId + '" value="' + _this._options.btnName + '" class="bluebtn"><input type="hidden" '+ (_this._options.hiddenName ? 'name="' + _this._options.hiddenName + '"' : '') +' id="' + id + '"/><input type="hidden" '+' name="' + uploadFinishedName + '" id="' + uploadFinishedId + '" value="uploadFinished" /></div>').appendTo('#' + _this._contenterId);
if (_this._options.hiddenAttr){
for (var obj in this._options.hiddenAttr){
$('#' + _this._hiddenId).attr(obj,this._options.hiddenAttr[obj]);
}
}
//add by xiaoliangqing on 2014/01/07 start
if (_this._options.uploadFinishedAttr){
for (var obj in this._options.uploadFinishedAttr){
$('#' + uploadFinishedId).attr(obj,this._options.uploadFinishedAttr[obj]);
}
}
//add by xiaoliangqing on 2014/01/07 end
//$('<div style="float:left;"><a id="' + _this._uploadFileBtnId + '" class="bluebtn">' + _this._options.btnName + '<a></div>').appendTo('#' + _this._contenterId);
_this._initDatas();
},
getGroupId: function() {
return $('#' + this._contenterId).attr('attachGroupId')?$('#' + this._contenterId).attr('attachGroupId'):'';
},
getAddAttachFileIds : function(){
return this._add_attachFileIds.join(',');
},
getDelAttachFileIds : function(){
return this._del_attachFileIds.join(',');
},
getAttachFiles: function() {
var succ = [];
$('#' + this._contenterId + ' .uploading').each(function(i) {
if ($(this).attr('attachfileid')) {
succ.push($(this).attr('attachfileid') + "|" + $(this).find('.uploadfile a').text());
}
})
return succ.join(',');
},
getSucc: function() {
var succ = [];
$('#' + this._contenterId + ' .uploading').each(function(i) {
if ($(this).attr('attachfileid')) {
succ.push($(this).attr('attachfileid'));
}
})
return succ.join(',');
}
}
/**
* 解决JS中获取不到base标签href的问题
*/
var linkTo = function(url) {
var _url = url;
if ($.browser.msie) {
if (document.getElementsByTagName('base') && document.getElementsByTagName('base')[0].href) {
_url = document.getElementsByTagName('base')[0].href + url;
}
}
window.location.href = _url;
}
var companyTipMsg = {
w:{
"n11":"限制为11位数字",
"n":"请输入数字",
"numbers":"请输入数字",
"len20":"长度不能超过20个字节",
"len30":"最大长度为30个字符",
"zj80":"最大长度为80个字节",
"h":"请输入汉字",
"zj100":"最大长度为50个汉字",
"len8":"最大长度为8个字符",
"len6":"最大长度为6位数字",
"len2":"最大长度为2位数字",
"zj50":"最大长度为25个汉字",
"len18":"最大长度为18个字符",
"zj1000":"最大长度为500个汉字",
"n6":"限制为6位数字",
"len80":"长度不能超过80个字节",
"zj160":"最大长度为80个汉字",
"zj200":"最大长度为100个汉字",
"zj60":"最大长度为30个汉字",
"zj50":"最大长度为25个汉字",
"ulogin":"申请帐号名已存在",
"uCompanyStatus":"该公司处于审批流程中,不允许进行帐号注册",
"rulogin":"申请帐号名已存在",
"uemail":"Email已存在",
"umobile":"手机号码已存在",
"ruemail":"Email已存在",
"rumobile":"手机号码已存在",
"value":"请输入大写英文字母和数字",
"pwd":"必须同时包含数字和字母",
"len6-20":"密码长度在6-20个字符",
"name":"只能输入汉字或字母",
"elen30":"只能输入不超过30个字节",
"rlen80":"不超过40个汉字,80个字节",
"nlen20":"申请帐号名只能由英文字母、数字和中文组成,最长20位",
"account":"申请帐号名只能由汉字、数字组成",
"mobile":"请输入正确的手机号码"
}
}
var getValidformDefaultConfig = function(config) {
var _default = {
tiptype: tipType.rightSide,
ajaxPost: false,
showAllError:true,
//dragonfly:true,
datatype: { //传入自定义datatype类型,可以是正则,也可以是函数(函数内会传入一个参数);
"zh1-6" : /^[\u4E00-\u9FA5\uf900-\ufa2d]{1,6}$/,
"zh1-25" : /^[\u4E00-\u9FA5\uf900-\ufa2d]{1,25}$/,
"s1-6":/^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]{1,6}$/,
"*1-1000":/^[\w\W]{1,1000}$/,
"*1-18":/^[\w\W]{1,18}$/,
"s1-50":/^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]{1,50}$/,
"h":/^[\u4E00-\u9FFF]+$/,
"n0-100":/^(0|[0-9][0-9]?|100)$/,
"len6":/^\d{1,6}$/,
"len2":/^\d{1,2}$/,
"len18":/^.{1,18}$/,
"g20":/^\d{20}$/,
"100%":/^(0|[0-9][0-9]?|100)$/,
"zj100":/^.{1,50}$/,
"len8":/^.{1,8}$/,
"nlen20":/^.{1,20}$/,
"name":/^[A-Za-z\u4e00-\u9fa5]+$/,
"pwd":/^(?=.*\d)(?=.*[A-Za-z])[0-9a-zA-Z]/,
//"pwd":"/(?:?<!(?:[^a-zA-Z][a-zA-Z0-9])) /",
"len6-20":/^[\w\W]{6,20}$/,
"zj50":/^.{1,25}$/,
"zj1000":/^.{1,500}$/,
"n6":/^\d{6}$/,
"len80":/^.{1,40}$/,
"zj160":/^.{1,80}$/,
"zj2000":/^.{1,1000}$/,
"zj80":/^.{1,40}$/,
"len20":/^.{1,10}$/,
"zj200":/^.{1,100}$/,
"zj60":/^.{1,30}$/,
"date" : /^(\d{4})\-(\d{2})\-(\d{2})$/,
"len30":/^.{1,30}$/,
"len20":/^.{1,20}$/,
"zj80":/^.{1,40}$/,
"rlen80":/^.{1,40}$/,
"elen30":/^.{1,30}$/,
"account":/^[\u4e00-\u9fa5]+[0-9]+$|^[0-9]+[\u4e00-\u9fa5]+$/,
"h":/^[\u4E00-\u9FFF]+$/,
"value":/^[-.A-Z0-9\u4E00-\u9FFF]+$/,
"n11":/^\d{11}$/,
"n":/^\d+$/,
"numbers":/^-?\d+\.?\d*$/,
"nlen20":/^.{1,20}$/,
"s1-80":/^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]{1,80}$/,
"mobile":dataType.mobile,
"ulogin":dataType.uLoginName,
"umobile":dataType.uMobile,
"uemail":dataType.uEmail,
"rulogin":dataType.ruLoginName,
"rumobile":dataType.ruMobile,
"ruemail":dataType.ruEmail,
"uCompanyStatus":dataType.uCompanyStatus,
"proportion":/^(100|[0-9]?\d((\.\d)?|((\.\d\d)?)))$/,
"phone":/^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/,
"fax":/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/,
"postCode":/^[0-9]\d{5}$/,
"positiveInteger":/^[1-9]\d*$/,
"orgCode":/^([a-zA-Z0-9]|[-]){9,10}$/,
"scoreCode":/^((0|[0-9][0-9]?|100)|[A-Z]{1})$/,
"email":dataType.email,
"number100":dataType.number100,
"bankAccount":/^[\d\-\*]*$/,
"getIntentionBase":dataType.getIntentionBase,
"vzhiben": /^[0-9]\d{0,5}(\.\d{0,2})?$/,
"examScore":/^([1-9]|[0-9]((\.[1-9])|((\.[0-9][1-9])|(\.[1-9][0])))|[1-9][0-9]|[1-9][0-9]?((\.\d)?|((\.\d\d)?)))$/,
"specialChars" : function(gets, obj, curform, regxp){//非法字符 ' " < >
var zh = /['">\\<]/;
if (zh.test(gets)){
return '不能含有特殊字符 > < \\ \' "';
}
return true;
},
"numberChars" : function(gets, obj, curform, regxp){//字母数字
var zh = /[a-zA-Z0-9]/;
if (zh.test(gets)){
return '不能含有字母、数字';
}
return true;
},
"konggeChars" : function(gets,obj,curform,regxp){
//参数gets是获取到的表单元素值,obj为当前表单元素,curform为当前验证的表单,regxp为内置的一些正则表达式的引用;
var result = false;
$.ajax({
url:BIZCTX_PATH + '/authprm/findULoginReg.action',
async:false,
data:{'accountApply.company.creditCode':gets,'accountApply.company.cnName':curform.find('#cnName').val()},
dataType:'json',
success:function(data){
if(data.success)
{
result=data.data.result;
}
}
})
if(result=="true")
{
return true;
}
if(result=="lengthfalse")
{
return '长度为18位';
}
if(result=="checkfalse")
{
return '统一代码由阿拉伯数字或大写英文字母(不使用I、O、Z、S、V)组成';
}
if(result=="lastfalse")
{
return '第18位不符合统一代码规范';
}
return '统一社会代码不能重复';
},
"recheck":function(gets, obj, curform, regxp){//校验重复密码,自带的在IE8下焦点有问题
var recheckpwd = obj.attr('recheckpwd');
if (gets && recheckpwd && gets != $('#' + recheckpwd).val()){
return false;
}
return true;
},
"checkOrgCode":function(gets, obj, curform, regxp){//组织结构代码简单校验
if (!gets && gets.length > 10){
return '不是有效的组织机构代码';
}
return true;
},
"validateMaxLength" :function(gets, obj, curform, regxp) {
if (!gets) {
return false;
}
var len = 0,_len = obj.attr('maxlength');
if (gets){
len = gets.replace(/[^\x00-\xff]/g, '..').length;
}
if (_len && len > _len){
return '长度不能超过' + _len + '个字节或'+ _len/2 + '个汉字';
}
return true;
},
"startTimeValid": function(gets, obj, curform, regxp) {
//参数gets是获取到的表单元素值,obj为当前表单元素,curform为当前验证的表单,regxp为内置的一些正则表达式的引用;
if (!gets) {
return false;
}
var from = obj,
to = $('#' + obj.attr('endtimeflag'));
if (from.val() != '' && to.val() != '' && !isEndTimeGtStartTime(from.val(), to.val())) {
return false;
}
setTimeout(function(){to.trigger('blur');},1000);
//to.trigger('blur');
return true;
//注意return可以返回true 或 false 或 字符串文字,true表示验证通过,返回字符串表示验证失败,字符串作为错误提示显示,返回false则用errmsg或默认的错误提示;
},
"endTimeValid": function(gets, obj, curform, regxp) {
//参数gets是获取到的表单元素值,obj为当前表单元素,curform为当前验证的表单,regxp为内置的一些正则表达式的引用;
if (!gets) {
return false;
}
var st = obj.attr('starttimeflag');
if (st) {
var from = $('#' + st),
to = obj;
if (from.val() != '' && to.val() != '' && !isEndTimeGtStartTime(from.val(), to.val())) {
return false;
}
}
setTimeout(function(){from.trigger('blur');},1000);
//from.trigger('blur');
return true;
//注意return可以返回true 或 false 或 字符串文字,true表示验证通过,返回字符串表示验证失败,字符串作为错误提示显示,返回false则用errmsg或默认的错误提示;
},
"validProductName": function(gets, obj, curform, regxp) {
//参数gets是获取到的表单元素值,obj为当前表单元素,curform为当前验证的表单,regxp为内置的一些正则表达式的引用;
if (obj.attr('pid') && obj.attr('pid') != '') {
return true;
}
return false;
},
"uploadFinished": function(gets, obj, curform, regxp) {
//参数gets是获取到的表单元素值,obj为当前表单元素,curform为当前验证的表单,regxp为内置的一些正则表达式的引用;
if (!gets) {
return false;
}
var uploadfinishedflag = obj.attr('uploadfinishedflag');
if (uploadfinishedflag && uploadfinishedflag == '0'){
return '附件上传未完成,不能提交';
}
return true;
},
"maxValue": function(gets, obj, curform, regxp) {
//参数gets是获取到的表单元素值,obj为当前表单元素,curform为当前验证的表单,regxp为内置的一些正则表达式的引用;
if (!gets) {
return true;
}
var value = gets,
_value = obj.attr('maxValue');
if(value){
var re =/^[1-9]+[0-9]*$/;
if(!re.test(value)){
return "请填入正确整数";
}
}
if(parseInt(_value) < parseInt(value)){
return "请输入大于"+_value+"的整数";
}
return true;
},
"maxNumberLength": function(gets, obj, curform, regxp) {
//参数gets是获取到的表单元素值,obj为当前表单元素,curform为当前验证的表单,regxp为内置的一些正则表达式的引用;
if (!gets) {
return true;
}
var value = gets,
_value = obj.attr('maxNumberLength');
if(value){
var re =/^[1-9]+[0-9]*$/;
if(!re.test(value)){
return "请填入正确整数";
}
}
if(parseInt(_value) < parseInt(value)){
return "请输入大于"+_value+"的整数";
}
return true;
}
}
}
//$.extend(validation.tipmsg.w,companyTipMsg.w);
return typeof config == 'object' ? $.extend(_default, config) : _default;
}
/**
* 根据常量值,select动态数据获取封装。
* @selectId select的id
* @constantKey 获取数据的健
* @config 传入的参数
* @return void
*/
function ajaxRenderConstant(selectId,constantKey, config,constats) { //config:{firstOption:{text:'请选择分类',value:''},keyAlias:{text:'name',value:'value'}}
var _this = $("#"+selectId);
c = config || {}, keyValue = {
text: 'name',
value: 'value'
};
if (c.keyValue) {
keyValue = c.keyValue;
}
_this.empty();
if (c.firstOption) {
_this.append('<option value="' + c.firstOption.value + '">' + c.firstOption.text + '</option>');
}
var data = constantData[constantKey];
if(constats){
data=constats;
}
if (data) {
for (var i = 0; i < data.length; i++) {
_this.append('<option value="' + data[i][keyValue.value] + '">' + data[i][keyValue.text] + '</option>');
}
}
//select下拉框选中
if(c.selectedValue){
$(_this).val(c.selectedValue);
}
}
/**
* 解析json数据
* @return void
*/
function parseData(values,key,oldValues){
if(!(values instanceof Array) && typeof values == 'object'){
if(oldValues == undefined){
oldValues = values;
}
for(var id in values){
if(typeof values[id] != 'function' && !(values[id] instanceof Array) && typeof values[id] != 'object'){
if(key != undefined){
oldValues[key + '.' + id] = values[id];
delete values[id];
}
}else if(typeof values[id] != 'function' && !(values[id] instanceof Array) && typeof values[id] == 'object'){
var valuess = values[id];
for(var idd in valuess){
var newKey = id + '.' + idd;
if(key != undefined){
newKey = key + '.' + id + '.' + idd;
}
oldValues[newKey] = valuess[idd];
delete values[id];
parseData(oldValues[newKey],newKey,oldValues);
}
}
}
}
};
/**
* 解析json数据put值到表单元素
* @return void
*/
function jsonToForm(json){
parseData(json);
var fields = $(".field,input");
jQuery.each( fields, function(i, field){
var name= $(field).attr("name");
var value = json[name];
if($(field).is('input')){
$(field).val(value);
}else{
$(field).text(value);
}
});
}
/**
*reset form elements
*/
function resetValue(formId){
var _ei = $('#'+formId);
_ei.find('input[type=text]').val('');
_ei.find('input[type=hidden]').val('');
_ei.find('select').attr('value','');
_ei.find('input[type=date]').val('');
}
/**
* PRM 业务层封装的一些工具类和对象
*/
;
(function($){
var downLoadAttachUrl = BIZCTX_PATH + '/attachment!download.action';
$.fn.extend({
createAttachLink:function(){
return this.each(function( j ) {
var attachFileId = $(this).find('span[isAttachId]').text();
var attachName = $(this).find('span[isAttachName]').text();
var dynamicField = $(this).find('span[isAttachName]').attr('dynamicField');
var subStringLength =$(this).find('span[isAttachName]').attr('subStringLength');
if($.trim(attachFileId) != '' && $.trim(attachName) != ''){
var attachNameLength = attachName.replace(/[^\x00-\xff]/g, ' ').length;
if(subStringLength==''||subStringLength==undefined || subStringLength==''){
subStringLength=30;
}
if(dynamicField){
var aHtml= '<span class="redtext">(修改前:<a style="color:red;" href="' + $.appendExtraParams(downLoadAttachUrl + '?attachFileId=' + attachFileId) + '" target="_blank">' + attachName + '</a>)</span> ';
}else{
var aHtml= '<a href="' + $.appendExtraParams(downLoadAttachUrl + '?attachFileId=' + attachFileId) + '" target="_blank">' + attachName + '</a> ';
}
if(attachNameLength &&attachNameLength>subStringLength){
var subStringSpanText = attachName.substring(0,subStringLength)+"...";
if(dynamicField){
aHtml = '<span class="redtext"><a style="color:red;" href="' + $.appendExtraParams(downLoadAttachUrl + '?attachFileId=' + attachFileId) + '" target="_blank" title="'+attachName+'">' + subStringSpanText + '</a>)</span>> ';
}else{
aHtml = '<a href="' + $.appendExtraParams(downLoadAttachUrl + '?attachFileId=' + attachFileId) + '" target="_blank" title="'+attachName+'">' + subStringSpanText + '</a> ';
}
}
$(this).empty().append(aHtml);
}
});
}
});
})(jQuery);
;
(function($){
$.fn.extend({
renderSelect:function(){
return this.each(function( j ) {
var size = 4,
d = new Date(),
year = d.getFullYear();
$(this).empty();
$(this).append('<option value="">请选择</option>');
for (var i = size; i >= 0; i--) {
$(this).append('<option value="' + ((year - (size - i))) + '">'+((year - (size - i)))+'</option>');
}
$(this).val('');
});
}
});
})(jQuery);
/**
* 初始化最近10年下拉列表
* @param {Object} id
*/
var initYearSelect = function(id) {
var s = document.getElementById(id),
size = 4,
d = new Date(),
year = d.getFullYear();
s.length = 0;
s.options[s.length] = new Option('请选择', (year - (size - i)));
for (var i = size; i >= 0; i--) {
s.options[s.length] = new Option((year - (size - i)), (year - (size - i)));
}
};
/**
* 扩展数组的包含功能
* @param {Object} obj
* @memberOf {TypeName}
* @return {TypeName}
*/
Array.prototype.contains = function(element) {
for (var i = 0; i < this.length; i++) {
if (this[i] == element) {
return true;
}
}
return false;
}
;
(function($){
$.fn.extend({
isValueDuplicate:function(){
var arr = [];
var flag = false;
this.each(function( j ) {
var v = $(this).val();
if (arr.contains(v)){
flag = true;
}
arr.push(v);
});
return flag;
}
});
})(jQuery);
//对datepicker进行扩展,增加清除功能
$(document).ready(function(){
try{
$( document ).tooltip();
$('a[name="attachFileTip"]').attr('title','上传的附件只支持:图片文件(jpg,jpeg,gif),Word文件(doc,docx),Pdf文件(pdf),Rar文件(zip,rar),Excel文件(xls,xlsx),PowerPoint文件(ppt,pptx)。');
$('a[name="attachFileTip"]').tooltip();
}catch(err){}
});
//阻止回退键的默认行为
$(document).bind("keydown",function(e){
if (e.which == 8 ){
var targetNodeName = '';
if(e.target && e.target.nodeName){
targetNodeName = e.target.nodeName.toLowerCase();
}
if((targetNodeName != 'input' && targetNodeName != 'textarea' && targetNodeName != 'password') || e.target.readOnly == true){
return false;
}
}
});
/**
* 通过button和链接button中设置的权限属性(属性名为permCheck的格式是"[resKey,]operKey[,hidden|disable]")发起后台鉴权请求,通过后台返回的结果,对按钮或链接进行置灰和隐藏操作
* @param {Object} url
* @param {Object} resKey
* @memberOf {TypeName}
*/
;
(function( $, undefined ) {
PermCheck=function(options){
if(this.initialized && this.initialized === true){
return;
}
this.options = options || {};
if(this.options.url == undefined){
this.options.url = ctxPaths+"/resAuth!pageComponentAuth.ajax";
}
}
PermCheck.prototype={
_setBehavior : function(behavior){
//判断是原生button还是链接button
if("button" == $(this).attr("type") || "submit" == $(this).attr("type")){
if(behavior == 'disable'){
$(this).attr("disabled",true);
}else{
$(this).hide();
}
}else{
var linkButton;
if('A' == $(this).get(0).tagName){
linkButton = $(this);
}else{
linkButton = $(this).find('a');
}
if(linkButton.length > 0){
var aText = linkButton.html();
if(behavior == 'disable'){
$('<span>' + aText + '</span>').appendTo($(this).parent()).addClass("graybutton");
//清除链接
linkButton.remove();
//批量审批按钮不可见 add by xiaoliangqing
$("#ba
|