123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- var CMS = {
- events: {
- //请求成功的回调
- onAjaxSuccess: function (ret, onAjaxSuccess) {
- var data = typeof ret.data !== 'undefined' ? ret.data : null;
- var msg = typeof ret.msg !== 'undefined' && ret.msg ? ret.msg : '操作成功';
- if (typeof onAjaxSuccess === 'function') {
- var result = onAjaxSuccess.call(this, data, ret);
- if (result === false)
- return;
- }
- layer.msg(msg, {icon: 1});
- },
- //请求错误的回调
- onAjaxError: function (ret, onAjaxError) {
- var data = typeof ret.data !== 'undefined' ? ret.data : null;
- var msg = typeof ret.msg !== 'undefined' && ret.msg ? ret.msg : '操作失败';
- if (typeof onAjaxError === 'function') {
- var result = onAjaxError.call(this, data, ret);
- if (result === false) {
- return;
- }
- }
- layer.msg(msg, {icon: 2});
- },
- //服务器响应数据后
- onAjaxResponse: function (response) {
- try {
- var ret = typeof response === 'object' ? response : JSON.parse(response);
- if (!ret.hasOwnProperty('code')) {
- $.extend(ret, {code: -2, msg: response, data: null});
- }
- } catch (e) {
- var ret = {code: -1, msg: e.message, data: null};
- }
- return ret;
- }
- },
- api: {
- //获取修复后可访问的cdn链接
- cdnurl: function (url) {
- return /^(?:[a-z]+:)?\/\//i.test(url) ? url : Config.upload.cdnurl + url;
- },
- //发送Ajax请求
- ajax: function (options, success, error) {
- options = typeof options === 'string' ? {url: options} : options;
- var st, index = 0;
- st = setTimeout(function () {
- index = layer.load();
- }, 150);
- options = $.extend({
- type: "POST",
- dataType: "json",
- xhrFields: {
- withCredentials: true
- },
- success: function (ret) {
- clearTimeout(st);
- index && layer.close(index);
- ret = CMS.events.onAjaxResponse(ret);
- if (ret.code === 1) {
- CMS.events.onAjaxSuccess(ret, success);
- } else {
- CMS.events.onAjaxError(ret, error);
- }
- },
- error: function (xhr) {
- clearTimeout(st);
- index && layer.close(index);
- var ret = {code: xhr.status, msg: xhr.statusText, data: null};
- CMS.events.onAjaxError(ret, error);
- }
- }, options);
- return $.ajax(options);
- },
- //提示并跳转
- msg: function (message, url) {
- var callback = typeof url === 'function' ? url : function () {
- if (typeof url !== 'undefined' && url) {
- location.href = url;
- }
- };
- layer.msg(message, {
- icon: 1,
- time: 2000
- }, callback);
- },
- //表单提交事件
- form: function (elem, success, error, submit) {
- var delegation = typeof elem === 'object' && typeof elem.prevObject !== 'undefined' ? elem.prevObject : document;
- $(delegation).on("submit", elem, function (e) {
- var form = $(e.target);
- if (typeof submit === 'function') {
- if (false === submit.call(form, success, error)) {
- return false;
- }
- }
- $("[type=submit]", form).prop("disabled", true);
- CMS.api.ajax({
- url: form.attr("action"),
- data: form.serialize(),
- complete: function (xhr) {
- var token = xhr.getResponseHeader('__token__');
- if (token) {
- $("input[name='__token__']").val(token);
- }
- $("[type=submit]", form).prop("disabled", false);
- }
- }, function (data, ret) {
- //刷新客户端token
- if (data && typeof data.token !== 'undefined') {
- $("input[name='__token__']").val(data.token);
- }
- //自动保存草稿设置
- var autosaveKey = $("textarea[data-autosave-key]", form).data("autosave-key");
- if (autosaveKey && localStorage) {
- localStorage.removeItem("autosave-" + autosaveKey);
- $(".md-autosave", form).addClass("hidden");
- }
- if (typeof success === 'function') {
- if (false === success.call(form, data, ret)) {
- return false;
- }
- }
- }, function (data, ret) {
- //刷新客户端token
- if (data && typeof data.token !== 'undefined') {
- $("input[name='__token__']").val(data.token);
- }
- if (typeof error === 'function') {
- if (false === error.call(form, data, ret)) {
- return false;
- }
- }
- });
- return false;
- });
- },
- //localStorage存储
- storage: function (key, value) {
- key = key.split('.');
- var _key = key[0];
- var o = JSON.parse(localStorage.getItem(_key));
- if (typeof value === 'undefined') {
- if (o == null)
- return null;
- if (key.length === 1) {
- return o;
- }
- _key = key[1];
- return typeof o[_key] !== 'undefined' ? o[_key] : null;
- } else {
- if (key.length === 1) {
- o = value;
- } else {
- if (o && typeof o === 'object') {
- o[key[1]] = value;
- } else {
- o = {};
- o[key[1]] = value;
- }
- }
- localStorage.setItem(_key, JSON.stringify(o));
- }
- }
- }
- }
|