CRM平台默认方法
CRM平台前端内置多个默认处理程序,便于高速开发,这些方法一般放在crm.portal.js里。
统一异步请求前处理
在这里统一处理网站的异步请求。
window._token = ($("meta[name='_csrf']").length ? $("meta[name='_csrf']") : $(top.document).find("meta[name='_csrf']")).attr("content");
window._header = ($("meta[name='_csrf_header']").length ? $("meta[name='_csrf_header']") : $(top.document).find("meta[name='_csrf_header']")).attr("content");
headers[_header] = _token;
$(document).ajaxSend(function (e, xhr) {
if (xhr.setRequestHeader) {//设置请求头
xhr.setRequestHeader(_header, _token);
xhr.setRequestHeader('sendType', 'ajax');
}
try {
xhr.done(function (data) {//超时处理
try {
data = typeof data == 'string' ? JSON.parse(data) : data;
} catch (e) {
}
if (data.status == 'timeout') {
top.location.href = top.location.href;
return;
}
});
} catch (e) {
console.log('xhr不存在或者xhr没有done方法')
}
});
表单
表单由多个程序处理,负责不同的功能
//这里处理表单只有一个name时button触发的表单默认事件
$('form.crm-form').on('submit', function () {
return false
});
//绑定查询表单的回车查询
$('form').on('keyup', function (e) {
if (e.keyCode == 13) {
var $query = $(this).find('*[data-type="query"]');
$query.length ? $query.click() : (event.currentTarget.id == 'myqueryForm' ? myquery() : (window.query || function () {
})());
}
});
//限制电话类型输入框长度和内容
$(document).on('input', "input[name=dhQuery],input[name=mphone],input[name=phoneNum],input[name=dhhm],input[name=osPhone],input[name=phone],input[data-type=phone]", function () {
//如果是固定电话类型可以加特殊符号‘-’,比正常电话11位号码多一位
var maxLength = /\-/g.test(this.value) ? 13 : 11;
$(this).val((this.value.split('-').length > 2 || this.value.length > maxLength) ? this.value.substring(0, this.value.length - 1) : this.value.replace([3, 4].indexOf(this.value.indexOf('-')) < 0 ? /[^\d]+/g : /[^\d-]+/g, ''));
}).on('input', 'input[data-type=money]', function () {
//只能输入浮点数字类型
var _val = this.value.replace(/[^.\d]+/g, '');
if (/(^\.+)|(([^]*[.]){2})/.test(this.value)) {
var _regex = /\d+(\.\d*)?/.exec(this.value);
_val = (_regex && _regex.length) ? _regex[0] : this.value.substring(0, this.value.length - 1);
}
$(this).val(_val);
});
// 去掉input框的空格
$('input[type=text]').on('blur', function () {
$(this).val($.trim($(this).val()));
});
kungeekUI插件触发
$(document).ready(function () {
// 触发数据表格
$('table.kungeekui-datagrid').each(function () {
new Datagrid({
target: $(this)
});
})
// 触发日期选择框
if (window.moment) {
$('input.kg-dateSelect[type="text"]').dateSelect();
}
})
bootstrap组件触发
在这里默认触发bootstrap的组件功能。
//页签
$('#navTabs a').click(function (e) {
e.preventDefault()
$(this).tab('show')
})
//显示更多
$('.crm-show-more').on('click', function () {
$(this).toggleClass('expand');
})