App.js
/**
* 1,定制组件
* 2,对应cookie中的全局变量
* 3,jquery扩展方法及对验证规则的扩展
* @author wWX235558
*/
define(['jquery'], function ($) {
var App = {
token720: '',
user: {},
maps: []
};
/**
* 定义一个模块
* @param moduleName 模块名称
* @param fn 模块体
*/
App.defineModule = function (moduleName, fn) {
!(function($, b) {
if (typeof define === "function" && define.amd) {
define(['jquery', 'core/core'], b);
} else {
b($);
}
}(jQuery, function() {
var args = this.arguments;
//console.log(args);
return fn(args.slice(2));
}));
};
App.initAjax = function () {
$("#loading").bind("ajaxSend", function () {
$(this).show();
}).bind("ajaxComplete", function () {
$(this).hide();
});
$.ajaxSetup({
global: true,
cache: false,
dataType: "json",
contentEncoding: "gzip",
contentType: 'application/json',
headers: {
/* "Access-Token": App.token720 ? App.token720 : "",
"Prefer_Lang": window.mac && mac.Lang*/
}
});
};
return App;
});
core.js
/**
* mac.core 1.2
*/
(function () {
define([
'App'
], function (App) {
window.App = App;
App.initAjax();
/****************************************jquery validate的扩展*************************************************/
if (jQuery)(function ($) {
/**
* jQuery 静态方法扩展
*/
$.extend({
/**
* Ajax调用扩展
*
* @param url {string} 链接地址
* @param params
* @param callback
* @param error
* @param async true:异步 | false:同步
*/
omcAjax: function (url, params, callback, error, async) {
params.token720 = "";
$.ajax({
type: "POST",
url: url,
data: JSON.stringify(params),
//timeout : 120000,
async: async,
success: function (data) {
if (callback)
callback(data);
},
error: error || function (data) {
}
});
},
/**
* 获取加载对象中指定参数名称的值
* @param action {Object} 加载对象
* @param name {String} 参数名称
* @returns {Object} 返回值
*/
});
/**
* jQuery对象方法扩展
*/
$.fn.extend({
mac: function () {
var func = arguments[0];
arguments[0] = this;
return eval('mac.' + func).apply(this, arguments);
},
seek: function (name) {
return $(this).find('[name=' + name + ']');
}
});
})(jQuery);
/*****************************************************原型扩展**************************************************
* @param {Object} target 目标对象。
* @param {Object} source 源对象。
* @param {boolean} deep 是否复制(继承)对象中的对象。
* @returns {Object} 返回继承了source对象属性的新对象。
*/
Object.extend = function (target, source, deep) {
target = target || {};
var sType = typeof source, i = 1, options;
if (sType === 'undefined' || sType === 'boolean') {
deep = sType === 'boolean' ? source : false;
source = target;
target = this;
}
if (typeof source !== 'object' && Object.prototype.toString.call(source) !== '[object Function]')
source = {};
while (i <= 2) {
options = i === 1 ? target : source;
if (options != null) {
for (var name in options) {
var src = target[name], copy = options[name];
if (target === copy)
continue;
if (deep && copy && typeof copy === 'object' && !copy.nodeType)
target[name] = this.extend(src ||
(copy.length != null ? [] : {}), copy, deep);
else if (copy !== undefined)
target[name] = copy;
}
}
i++;
}
return target;
};
/**
* 字符串(String)原型对象扩展
*/
Object.extend(String, {});
Object.extend(String.prototype, {
/**
* 从字符串中左、右或两端删除空格、Tab、回车符或换行符等空白字符
* @author cWX235881
*/
trim: function () {
return this.replace(/(^\s*)|(\s*$)/g, "");
},
ltrim: function () {
return this.replace(/(^\s*)/g, "");
},
rtrim: function () {
return this.replace(/(\s*$)/g, "");
},
/**
* HTML转义字符
*/
replaceHTMLChar: function () {
return this.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/ /g, ' ').replace(/"/g, 'x22').replace(/'/g, 'x27');
},
/**
* 转义特殊字符
*/
replaceIllegalChar: function () {
return this.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/ /g, ' ').replace(/x22/g, '"').replace(/x27/g, ''');
},
/**
* 以指定字符串匹配字符串头部或尾部,相同时返回true
* @author cWX235881
*/
endWith: function (str) {
if (str == null || str == "" || this.length == 0
|| str.length > this.length)
return false;
return (this.substring(this.length - str.length) == str);
},
startWith: function (str) {
if (str == null || str == "" || this.length == 0
|| str.length > this.length)
return false;
return (this.substr(0, str.length) == str);
},
/**
* 获取URL传递参数中指定参数名称的值
* @param name {String} 参数名称
* @returns {Object} 返回值
*/
getValue: function (name) {
var regex = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var b = this.substr(this.indexOf("\?") + 1).match(regex);
if (b && b != null) return unescape(b[2]);
return null;
},
/**
* 对数字字符串格式进行小数截断
* @param length {Int} 小数截断位数
*/
fixed: function (length) {
if (isNaN(this))
return this;
return parseFloat(Number(this).fixed(length));
},
/**
* 对数字格式进行单位转换
* @param length {Int} 转换的比率,默认为4,如4:相当于处以10000
*/
unit: function (length) {
if (isNaN(this))
return 0;
return parseFloat(Number(this).unit(length));
},
/**
*
*/
format: function () {
var value = this;
var source = value.replace(/,/g, '').split('.');
source[0] = source[0].replace(/(\d)(?=(\d{3})+$)/ig, '$1,');
return source.join('.');
},
/**
* 判断字符串中是否包含指定字符串
*/
contains: function (str) {
var value = this;
return value.indexOf(str) > -1;
},
encrypt: function () {
var result = "";
if (this == undefined || this == null || this == "") {
return undefined;
}
var length = this.length;
var charArray = [];
for (var i = 0; i < length; i++) {
charArray[i] = this.charCodeAt(i);
charArray[i] = charArray[i] * 2;
}
return charArray.toString().replace(/,/g, "@");
}
});
/**
* 日期时间(Date)原型对象扩展
*/
Object.extend(Date, {});
Object.extend(Date.prototype, {
/**
* 时间格式化
* @param fmt {String} 格式字符串,如:'%Y-%M-%d %H:%m:%s %S'
* (%Y:4位年,%M:2位月,%d:2位日,%H:24小时制时,%m:2位分,%s:2位秒,%S:3位毫秒)
* @return {String} 指定日期格式字符串(如:2014-12-12 22:22:22:234)
*/
format: function (fmt) {
var date = this;
var dateData = {
year: date.getFullYear(),
month: (date.getMonth() + 1) < 10 ? "0" + (date.getMonth() + 1) : (date.getMonth() + 1),
day: date.getDate() < 10 ? "0" + date.getDate() : date.getDate(),
hours: date.getHours() < 10 ? "0" + date.getHours() : date.getHours(),
minutes: date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(),
seconds: date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds(),
mSeconds: date.getMilliseconds()
};
return fmt.replace('%Y', dateData.year)
.replace('%M', dateData.month)
.replace('%d', dateData.day)
.replace('%H', dateData.hours)
.replace('%m', dateData.minutes)
.replace('%s', dateData.seconds)
.replace('%S', dateData.mSeconds);
},
format: function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
});
/**
* 数组(Array)原型对象扩展
*/
Object.extend(Array, {});
Object.extend(Array.prototype, {
/**
* 获取数组中的最大值
* @returns {number}
*/
max: function () {
return Math.max.apply(Math, this);
},
/**
* 获取数组中的最小值
* @returns {number}
*/
min: function () {
return Math.min.apply(Math, this);
},
/**
* 判断数组中是否包含某个元素
* @param obj {*}
*/
contains: function (obj) {
var i = this.length;
while (i--) {
if (this[i] == obj) {
return true;
}
}
return false;
},
/**
* 删除数组中是某个值得所有元素
* @param val {*}
*/
removeAll: function (val) {
var temp = this.slice(0);
var i = temp.length;
while (i--) {
if (temp[i] === val) {
temp.splice(i, 1);
}
}
return temp;
},
/**
* 获取数组中是某个值的元素序列号
* @param val {*}
*/
indexOf: function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) {
return i;
}
}
return -1;
},
/**
* 删除数组中是某个值的元素
* @param val {*}
*/
remove: function (val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
}
});
/**
* 数值(Number)原型对象扩展
*/
Object.extend(Number, {});
Object.extend(Number.prototype, {
format: function () {
var value = this + '';
var source = value.replace(/,/g, '').split('.');
source[0] = source[0].replace(/(\d)(?=(\d{3})+$)/ig, '$1,');
return source.join('.');
},
/**
* 对数字格式进行小数截断
* @param length {int} 小数截断位数,默认为0
*/
fixed: function (length) {
if (isNaN(this))
return 0;
var s = Math.pow(10, Math.abs(parseInt(length || 0)));
return parseFloat(Math.round(this * s) / s);
},
/**
* 对数字格式进行单位转换
* @param length {int} 转换的比率,默认为4,如4:相当于处以10000
*/
unit: function (length) {
if (isNaN(this))
return 0;
var len = 4;
if (length) {
len = length;
}
var num = 1;
for (var i = 0; i < Math.abs(len); i++) {
num *= 10;
}
if (len > 0) {
return parseFloat(this / num);
} else {
return parseFloat(this * num);
}
}
});
/**
* 加载系统页面(系统模块入口)
*/
mac.loadSystem = function () {
if(window.location.pathname=="/changeMenu/changeMenu.html"){
return;
}
//license 提示
App.showLicense();
App.initValidate();
if (Funsionwebsocket != undefined) {
Funsionwebsocket.close();
}
$.omcAjax("/jk/info", {}, function (data) {
if (data.success) {
var url = data.data;
SockJs.init(url); //初始化websocket
}
});
var enterPath = omc.login;
var title = Msg.systemName;
var bdy = $('#main_view');
Msg.wind.ip = "";
//在cookie里面设置登陆类型,后端根据不同的类型进行不同的流程跳转
Cookies.set("loginType720", "SSO");
var isUserInDomain = true; //当前用户是否在该域中
//设置多权限sid,集团多权限,资源多权限sids
$.omcAjax("/groupSystem/setSids", {}, function (data) {
if (data.success) {
App.stationIds = data.data;
} else {
$.omcAlert(data.data, function () {
$.omcAjax("/groupSystem/logout", {}, function (data) {
var ro = data;
if (ro.success && ro.data != '') {
var rec = ro.data.CasServerUrl + "/logout?service=";
rec = rec + ro.data.ServerName;
rec = encodeURI(rec);
rec = rec + "/index.html?t=";
rec = rec + new Date().getTime();
window.location.href = rec;
}
//Cookies.clear("token720");
Cookies.clear("loginType720");
//Cookies.clear("user");
Cookies.clear("loadUrl");
});
});
isUserInDomain = false;
}
}, null, false);
$.omcAjax("/groupSystem/auth", {}, function (data) {
/*var screenType=App.stationIds.groupType;*/
if (data.success) {
if (data.data.userType == "main") {
omc.systemMenu = data.data.listMenu;
omc.goToButtons = data.data.listButtons;
enterPath = omc.main;
if (data.data.gsNameKey == Msg.subSystemName || data.data.gsNameKey ==null ) {
title = Msg.systemName + " " + Msg.subSystemName ;
}else {
title = Msg.systemName + " " + data.data.gsNameKey ;
}
} else if (data.data.userType == "innerUser") {
enterPath = omc.household;
}
if (data.data && data.data.sessionid) {
Cookies.setSessionid(data.data.sessionid);
}
if (Cookies.isGeMaxSize()) {
Cookies.clearOne();
}
enterPath = Cookies.get("loadUrl") || enterPath;
var _date = new Date();
_date.setDate(_date.getDate() + 1);
App.token = data.params[0];
App.majorServerIp = data.params[1];
App.user = data.data.user;
App.group = data.data.group;
if(data.data.windIp.indexOf('127.0.0.1') == -1){
Msg.wind.ip = data.data.windIp;
}
//Cookies.set("token720", App.token);
//Cookies.set("group", App.group);
}
else {
location.href = data.data.url;
}
}, null, false);
// TODO 获取电站状态配置
$.omcAjax("/groupParameter/getByIds", {
keys: ['stationStatus_0', 'stationStatus_1', 'stationStatus_2', 'stationStatus_3', 'gsNameKey',
'systemLogo', 'loginBackground', 'systemNameKey', 'mediaUploadKey', 'largeScreenAreaSwitchingTime', 'largeScreenMode', 'carouselInterval'],
order: 'asc'
}, function (data) {
if (data.success) {
if (data.params && data.params.length > 0) {
Cookies.setSessionid(data.params[0]);
}
if (data.data && data.data.length > 0) {
var stationStatus = [];
for (var i = 0; i < data.data.length; i++) {
var key = data.data[i]['paramKey'];
if (key == 'gsNameKey') {
Msg.gs.title = data.data[i]['paramValue'];
}
else if (key == 'systemLogo') {
Msg.systemLogo = data.data[i]['paramValue'];
}
else if (key == 'loginBackground') {
Msg.loginBackground = data.data[i]['paramValue'];
}
else if (key == 'mediaUploadKey') {
Msg.directVideo = data.data[i]['paramValue'];
}
else if (key == 'systemNameKey'
&& data.data[i]['paramValue'] && data.data[i]['paramValue'].trim().length > 0) {
Msg.subSystemName = data.data[i]['paramValue'];
}
else if (key == 'largeScreenAreaSwitchingTime') {
Msg.largeScreenAreaSwitchingTime = data.data[i]['paramValue'];
}
else if (key == 'largeScreenMode') {
Msg.largeScreenMode = data.data[i]['paramValue'];
}
else if (key == 'carouselInterval') {
Msg.carouselInterval = data.data[i]['paramValue'];
}
else {
stationStatus[+(key.split('_')[1])] = data.data[i]['paramValue'];
}
}
Msg.sm.psm.status_value = stationStatus;
}
}
//如果数据库连接失败将会弹出异常信息
else if (data != null) {
$.omcAlert(data.data.message);
}
}, null, false);
if (!isUserInDomain) return;
var styleList = [];
var prevLoad;
if (enterPath.indexOf('plants') != -1) {
styleList = ['css!/plants/css/css.css'];
}
else if (enterPath.indexOf('demostration') != -1) {
styleList = ['css!/demostration/css/css.css'];
}
else if (enterPath.indexOf('gs') != -1) {
styleList = ['css!/main/gs/css/gs.css'];
}
else if (enterPath.indexOf('hh') != -1) {
styleList = ['css!/main/hh/css/ownerDetail.css'];
prevLoad = function () {
if (Msg.loginBackground) {
var bg = new Image();
bg.src = '/temp/system/image/' + Msg.loginBackground;
bg.onload = function () {
setTimeout(function () {
$('#main_view').css('background-image', 'url(/temp/system/image/' + Msg.loginBackground + ')');
}, 1000);
};
}
};
}
else {
styleList = [
"css!/main/sm/ms/mapSettingManager.css",
"css!/main/sm/license/licenseManager.css",
"css!/main/sm/logManagment/logManager.css",
"css!/main/sm/fm/fileManager.css",
"css!/main/ckpi/css/page.css",
"css!/main/default/css/default.css",
"css!/main/default/page/css/powerAmount.css",
"css!/main/default/page/css/envi.css",
"css!/main/default/page/css/operationStatistics.css",
"css!/main/default/page/css/powerPlan.css",
"css!/main/default/page/css/powerPlant.css",
"css!/main/default/page/css/powerPr.css",
"css!/main/pskpi/css/powerStationQuota.css",
"css!/main/pskpi/css/KPIWorkTicketMonth.css",
"css!/main/pskpi/css/KPILossAnalysis.css",
"css!/main/pskpi/css/KPIAlarmMonth.css",
"css!/main/pskpi/css/KPIInefficientInverter.css",
"css!/main/pskpi/css/KPIPowerAmount.css",
"css!/main/pskpi/css/KPIPowerPlan.css",
"css!/main/wa/css/createRpTemp.css",
"css!/main/hh/css/ownerDetail.css",
"css!/main/mm/css/ticket.css"
];
prevLoad = function () {
if (Msg.loginBackground) {
var bg = new Image();
bg.src = '/temp/system/image/' + Msg.loginBackground;
bg.onload = function () {
setTimeout(function () {
$('#main_view').css('background-image', 'url(/temp/system/image/' + Msg.loginBackground + ')');
}, 1000);
};
}
};
}
require(styleList, function () {
bdy.omcLoad(enterPath, {}, prevLoad);
});
document.title = title;
i18n.initData(mac.Lang, Msg);
mac.setLanguage(mac.Lang);
};
/**
* 切换多语言
*/
mac.switchLanguage = function (langValue) {
var data = {"lang": langValue};
Cookies.set("Prefer_Lang", langValue);
$.ajax({
type: "POST",
url: "/i18n/switchlang",
async: true,
data: JSON.stringify(data),
success: function (data) {
if (data.success) {
var lang = eval('(' + data.data.data + ')');
Msg = lang.Msg;
mac.Lang = data.data.lang;
App.initAjax();
mac.loadSystem();
}
},
error: function () {
document.location.reload();
}
});
};
mac.getMousePos = function (e) {
var e = e || window.event, d = document
, de = d.documentElement, db = d.body;
return {
x: e.pageX || (e.clientX + (de.scrollLeft || db.scrollLeft)),
y: e.pageY || (e.clientY + (de.scrollTop || db.scrollTop))
};
};
mac.eval = function (str) {
var r;
try {
r = eval('(' + str + ')');
} catch (e) {
}
return r ? r : str;
};
mac.getMsg = function (msg, params) {
if (params && params.length)
for (var i = 0; i < params.length; i++)
msg = msg.replace('{' + i + '}', params[i]);
return msg;
};
/**
* set language
*/
mac.setLanguage = function (lan) {
$('.text').each(function (n, c) {
var ec = $(c);
var msg = ec.html();
if (msg && msg.length > 4 && msg.substr(0, 4) == 'Msg.')
ec.html(mac.eval(msg));
});
$("input.text[placeholder]").each(function (i, e) {
var p = $(e).attr("placeholder");
var n = "";
try {
n = mac.eval(p);
} catch (e) {
n = p;
}
$(e).attr("placeholder", n);
});
$("textarea.text[placeholder]").each(function (i, e) {
var p = $(e).attr("placeholder");
var n = "";
try {
n = mac.eval(p);
} catch (e) {
n = p;
}
$(e).attr("placeholder", n);
});
$(".text[title]").each(function (i, e) {
var p = $(e).attr("title");
var n = "";
try {
n = mac.eval(p);
} catch (e) {
n = p;
}
$(e).attr("title", n);
});
i18n.setLanguage(lan || mac.Lang || 'zh');
};
/**
* form id
*/
mac.init = function (id, data) {
$("#" + id + " :input").each(function () {
var name = $(this).attr('name');
if (name && data[name]) {
$(this).val(data[name]);
}
});
};
mac.findChlidrenId = function (id) {
var l = omc.systemMenu.length;
var arr = [];
for (var i = 0; i < l; i++) {
(function () {
var jsonArray = arguments[0];
for (var k in jsonArray) {
if ((k.indexOf('children') != -1 && jsonArray[k] != null) || !isNaN(k)) {
arguments.callee(jsonArray[k]);
} else {
if (k == 'qtip' && jsonArray[k] == id) {
arr.push(jsonArray["id"]);
}
}
}
})(omc.systemMenu[i]);
}
var ids = [];
var n = 0;
for (var i = 0; i < arr.length; i++) {
var idi = {};
idi.pid = id;
idi.id = arr[i];
ids[n++] = idi;
}
return ids;
};
mac.initCurrentTime = function () {
var currentTimer;
var getCurrentTime = function () {
//$('.currentTimeShow').text(new Date().toLocaleString());
$.omcAjax('epmsDate/getCurrentTime', {}, function (res) {
if (res.success) {
var now = Date.parse(res.data);
clearInterval(currentTimer);
currentTimer = setInterval(function () {
now += 1000;
var dateFormat = "yyyy-MM-dd hh:mm:ss";
var lang = (mac.Lang && mac.Lang.indexOf('zh') > -1 ? 'zh_cn' : 'en');
if (mac.Lang == 'uk'){lang = 'uk';}
if (lang == "en") {
dateFormat = 'hh:mm:ss MM/dd/yyyy';
}else if(lang == "uk"){
dateFormat = 'dd/MM/yyyy hh:mm:ss';
}
$('.currentTimeShow').text(new Date(now || Date.now()).format(dateFormat));
}, 1000);
}
});
};
getCurrentTime();
setInterval(getCurrentTime, 10 * 60 * 1000);
};
mac.exeLogout = function () {
//Cookies.clear("token720");
Cookies.clear("loginType720");
//Cookies.clear("user");
Cookies.clear("loadUrl");
$.omcAjax("/groupSystem/logout", {}, function (data) {
var ro = data;
if (ro.success && ro.data != '') {
var rec = ro.data.CasServerUrl + "/logout?service=";
rec = rec + ro.data.ServerName;
rec = encodeURI(rec);
rec = rec + "/index.html?Prefer_Lang=";
// rec = rec + new Date().getTime();
rec = rec + mac.Lang;
window.location.href = rec;
}
});
};
/**
* 注销客户
*/
mac.logout = function () {
App.confirm({
title: Msg.info,
message: Msg.logoutInfo
}, function () {
mac.exeLogout();
});
};
/***********************************************************************************/
/**
* 获取系统根网络路径
* @returns {string}
*/
var rootPath = function () {
var html = window.location.href;
var host = window.location.host;
return html.substring(0, html.lastIndexOf(host) + host.length + 1);
};
/**
* 获取浏览器类型
* @returns {Object}
*/
var getBrowser = function () {
var browser = $.browser;
if (!browser) {
function uaMatch(ua) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
/(msie) ([\w.]+)/.exec(ua) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
[];
return {
browser: match[1] || "",
version: match[2] || "0"
};
}
var matched = uaMatch(navigator.userAgent);
browser = {};
if (matched.browser) {
browser[matched.browser] = true;
browser.version = matched.version;
}
// 区分 Chrome 和 Safari
if (browser.chrome) {
browser.webkit = true;
} else if (browser.webkit) {
browser.safari = true;
}
}
return browser;
};
var StringUtil = {
/**
* 字符串格式化
* 例子:
* "{0}{1}".format("hello", "world");
*/
format: function () {
if (arguments.length == 0) {
return null;
}
var formatStr = arguments[0];
for (var i = 1; i < arguments.length; i++) {
formatStr = formatStr.replace(new RegExp('\\{' + (i - 1) + '\\}', 'gm'), arguments[i]);
}
return formatStr;
}
};
window.StringUtil = StringUtil;
return {
rootPath: rootPath,
getBrowser: getBrowser,
StringUtil: StringUtil
};
});
})();
main.js
/**
* Created by PL02053 on 2016/3/10.
*/
require.config({
urlArgs: '_=' + (new Date()).getTime(),
baseUrl: '/js/',
paths: {
/*'d3': 'd3.v3.min',*/
'jquery': 'jquery',
'json2': 'json2',
'cookie': 'jquery/Cookies',
'i18n': '../language/i18n',
'App':"core/App",
'core':"core/core"
},
waitSeconds: 0
});
require([
'jquery'
], function () {
(function ($) {
require([
'i18n', 'json2','jquery', 'cookie','App'
], function (i18n) {
require(['core'],function (core) {
/* $.omcAjax("/user/delDepartment.do", [
{ "stuId": 1, "stuName": "li","stuSex":"man"},
{ "stuId": 2, "stuName": "hai","stuSex": "man"},
{ "stuId": 3, "stuName": "feng", "stuSex":"man"}
], function (data) {
});*/
$.omcAjax("/user/delDepartment", {
"stuId": 1,
"stuName": "li",
"stuSex":"man"
}, function (data) {
});
})
/* $.ajax({
url:'/delDepartment.do',
type:'POST', //GET
async: true,
data: JSON.stringify({'name':'test','passwd':'123456'}),
timeout:5000, //超时时间
// dataType:'json', //返回的数据格式:json/xml/html/script/jsonp/text
beforeSend:function(xhr){
console.log(xhr)
console.log('发送前')
},
success:function(data,textStatus,jqXHR){
console.log(data)
console.log(textStatus)
console.log(jqXHR)
},
error:function(xhr,textStatus){
console.log('错误')
console.log(xhr)
console.log(textStatus)
},
complete:function(){
console.log('结束')
}
})*/
//获取设置sessionid
/* $.ajax({
type: "POST",
url: "/admin/users",
data: JSON.stringify({keys: ['systemLogo']}),
async: false,
dataType: "json",
contentEncoding: "gzip",
contentType: 'application/json',
success: function (data) {
if (data.success) {
if (data.params && data.params.length > 0) {
Cookies.setSessionid(data.params[0]);
}
}
}
});*/
});
})(jQuery);
/********************************************************************************************************************************/
/* function test(){
$.ajax({
//提交数据的类型 POST GET
type:"POST",
//提交的网址
url:"/delDepartment.do",
//提交的数据
data:{Name:"sanmao",Password:"sanmaoword"},
//返回数据的格式
datatype: "html",//"xml", "html", "script", "json", "jsonp", "text".
//在请求之前调用的函数
beforeSend:function(){},
//成功返回之后调用的函数
success:function(data){
alert(11111111111);
} ,
//调用执行后调用的函数
complete: function(XMLHttpRequest, textStatus){
alert(XMLHttpRequest.responseText);
alert(textStatus);
//HideLoading();
},
//调用出错执行的函数
error: function(){
//请求出错处理
}
});
}*/
/* $.ajax({
url : "http://localhost:8080/user/delDepartment.do",
type : "POST",
contentType: "application/json;charset=utf-8",
data : JSON.stringify({
"Student": [
{ "stuId": 1, "stuName": "li","stuSex":"man"},
{ "stuId": 2, "stuName": "hai","stuSex": "man"},
{ "stuId": 3, "stuName": "feng", "stuSex":"man"}
]
}),
// dataType : "text",
dataType : "json",
success : function(result) {
alert(111111111111)
},
error:function(msg){
alert(222222222222)
}
})*/
/*$.ajax({
type : 'POST',
contentType : 'application/json',
url : 'user/add.do',
data : $.toJSON({}),
dataType : 'json',
success : function(data) {
alert("新增成功!");
},
error : function(data) {
alert("error")
}
});*/
});
相关推荐
FPGA 上的 YOLOv8 实时目标检测:从模型优化到硬件加速全解析
本文全面解析了将YOLOv8目标检测模型部署到FPGA进行硬件加速的完整流程。通过模型裁剪、混合精度量化等优化手段,结合HLS设计专用计算引擎与数据流,实现了高能效比的实时推理。文章深入探讨了软硬协同部署、性能调试与优化技巧,为追求极致实时性与低功耗的边缘AI应用提供了从算法到硬件的实战指南。
springMVC(二)、springMVC向前台页面传值及前台页面显示值
本文以三种springMVC请求处理方法的书写来详细说明SpringMVC交互。 一、使用原生态的Servlet来做参数处理数据交互 先看代码: @RequestMapping("add") public void addStudent(HttpServletRequest req,HttpServletResponse resp){ StudentEntity student0=n
实战STM32G0驱动DRV8870/AT8870:PWM+DMA精准调速与H桥衰减模式详解
本文详细介绍了如何使用STM32G0单片机结合DRV8870/AT8870电机驱动芯片实现直流有刷电机的精准控制。重点讲解了PWM与DMA结合实现高效调速的硬件配置与软件驱动方法,并深入剖析了H桥快衰减与慢衰减模式的工作原理及应用场景,为嵌入式电机控制项目提供了完整的实战解决方案。
前端跨域问题
没有特别的幸运,那么就加倍的努力!!! 什么是跨域? 简单的来讲——就是违背了同源策略, “协议+域名+端口” 三者只要有一者不同,就会存在跨域 在我们前端开发中,常常碰到一些接口上的跨域问题,现在分享几种常用的解决方案: 方案一:jsonp 1.jquery ajax: $.ajax({ url: 'http://www.tpWang.com:8080/login', type:...
【多模态大模型】GLIP:零样本目标检测新范式与视觉语言理解
本文深入解析了多模态大模型GLIP在零样本目标检测和视觉语言理解领域的创新应用。GLIP通过统一目标检测与自然语言理解任务,实现了零样本学习能力,能够精准定位复杂文本描述对应的图像区域。文章详细介绍了GLIP的核心技术、数据策略及实战表现,并对比了与其他多模态模型的差异,为AI视觉理解提供了新范式。
Maven证书信任危机:PKIX path building failed的全面解析与实战修复
本文全面解析了Maven构建中常见的`PKIX path building failed`证书验证错误。该错误通常在使用特定镜像仓库或自建仓库时,因SSL/TLS证书不被JDK默认信任而触发。文章深入剖析了错误根源,对比了临时忽略检查与永久导入证书等不同修复方案的安全性与适用场景,并推荐通过`keytool`将证书导入JDK信任库的根治方法,以保障构建安全与稳定。
手写SpringMVC 关键功能实现
根据SpringMVC手写自己的MVC框架 此文章的GITEE地址 分析SpringMVC 执行原理 【tomcat加载->web.xml】 ↓ 【前端控制器DispatcherServlet->加载指定配置文件Springmvc.xml】 ↓ 【包扫描,扫描注解->@controller/@Service/@RequestMapping/AutoWired】 ↓ 【Ioc容器进行相应Bean初始化以及依赖注入维护】 ↓ 【SpringMVC 相关组件初始化…、建立Url与Method之
l0phtcrack 7(爆破管理员密码)使用教程
l0phtcrack7简称lc7,是爆破计算机管理员密码的软件,早期是网络安全管理员用来检测系统用户是否使用了不安全的密码,后被黑客用于用户口令破解 功能:该工具支持远程破解,理论上能破解所有密码,但对复杂度比较高的密码,破解时间很长 使用前提:1.登录了需要破解的计算机 2.知道需要破解的计算机的一个管理员的账户,密码 ** 也许你会疑惑,我都知道了一个管理员账户密码了,还要另外的管理员密码...
JQuery中Ajax的操作
Java软件开发中,后台中我们可以通过各种框架,像SSH等进行对代码的封装,方便我们对Java代码的编写,例如,Struts,SpringMVC对从前台到action的流程进行封装控制,使我们只需要进行一些简单配置就可以实现;而Spring进行了对各种对象的管理进行封装,提供了AOP编程的方式,大大方便了我们;而Hibernate和IBatis则是对JDBC代码进行封装,不需要我们每次都写那些重复
保姆级教程:在PX4 Gazebo仿真中为Iris无人机挂载Intel D435i深度相机(含完整配置流程)
本文提供在PX4 Gazebo仿真环境中为Iris无人机挂载Intel D435i深度相机的完整配置流程,涵盖环境准备、模型部署、插件安装及调试技巧。通过详细步骤和常见问题解决方案,帮助开发者快速搭建深度相机仿真环境,适用于无人机视觉开发与算法测试。
ASTRA Toolbox学习笔记-Python
ASTRA Toolbox 是一个用于处理 X 射线相干散射和 X 射线传输成像的开源算法工具箱。本文档概述了该工具箱的基本概念。
java前台传值_Springmvc如何实现向前台传递数据
1) 在springmvc方法的形参中定义Map,Model,ModelMap,并在方法中通过这三个对象进行值的传递;①其中Map和ModelMap使用方式是一致的;@RequestMapping("/detail")public String detail(Integer id,//ModelMap modelMapMap modelMap){HashMap conditions=new Has...
Python爬虫实战:如何抓取POI信息(公共场所)位置信息
获取公共场所的信息:如餐厅、商店、医院、景点等。抓取POI的基本信息:如名称、类别、地址、评分等。获取POI的地理坐标:经度和纬度信息。存储POI数据:将抓取到的POI信息存储到本地数据库中。通过本篇文章,我们详细介绍了如何使用Python爬虫抓取POI信息。通过Google Maps API和OpenStreetMap(Overpass API),我们展示了如何获取餐厅、商店、医院等公共场所的位置信息,并进一步探讨了如何处理分页、存储数据以及反爬虫策略。
springmvc接收前台参数为null解决方法
在使用springmvc时,遇到接收前台参数为null可能是没有使用@RequestParam注解的方法进行接参数。 @RequestParam(org.springframework.web.bind.annotation.RequestParam):GET和POST请求传的参数会自动转换赋值到@RequestParam 所注解的变量上。 这个定义什么意思呢?就是说,我们在开发后台时,一定要注意...
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
【SpringMVC】【接收前台参数】【向前台传递参数】
接收前台参数jsp中,传递的参数为: username=Armo. age=18. 姓名:<input type="text" name="username" value="Armo"> 年龄:<input type="text" name="age" value="18">方式1:用req手动提取 @RequestMapping("/method1") public
怀旧版电脑GBC模拟器
再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。
【SpringMVC学习09】SpringMVC与前台的json数据交互
转载 https://blog.youkuaiyun.com/eson_15/article/details/51742864 json数据格式在接口调用中、html页面中比较常用,json格式比较简单,解析也比较方便,所以使用很普遍。在springmvc中,也支持对json数据的解析和转换,这篇文章主要总结一下springmvc中如何和前台交互json数据。 1. 两种交互形式 springm...
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
SpringMVC学习——SpringMVC与前台的json数据交互
json数据格式在接口调用中、html页面中比较常用,json格式比较简单,解析也比较方便,所以使用很普遍。在SpringMVC中,也支持对json数据的解析和转换,这篇文章主要总结一下在SpringMVC中如何和前台交互json数据。 两种交互形式 SpringMVC和前台交互主要有两种形式,如下图所示: 可以看出,前台传过来的方式有两种,一种是传json格式的数据过来,另一种就是在url...
SpringMvc中ajax后台可以收到请求,前台依旧报错
在后台方法上记得写注解 @ResponseBody
SpringMVC中如何和前台交互json数据
http://blog.youkuaiyun.com/yerenyuan_pku/article/details/72514022 json数据格式在接口调用中、html页面中比较常用,json格式比较简单,解析也比较方便,所以使用很普遍。在SpringMVC中,也支持对json数据的解析和转换,这篇文章主要总结一下在SpringMVC中如何和前台交互json数据。 两种交互形式 SpringMVC和...
SpringMVC在后台获取前台输入的时间
前台: 后台: @ModelAttribute Date date 报404,类型不匹配 1. springmvc中前台Date类型直接传到后台需要添加一个时间属性编辑器 @InitBinder public void initBinder(ServletRequestDataBinder bin) { SimpleDateFormat sdf =
SpringMVC前台向后台传输对象
通过注解实现SpringMVC, 一直按照Struts的思路去做传参,发现后台没有接收到前台的对象参数,试验了多种方法,终于发现了原因,在此做一下记录。 前台: <form action="method" method="post"> <input name='id' value='张三'> <input name='...
springMvc接前台传来的参数
springMvc接前台传来的参数:记录一下… https://blog.youkuaiyun.com/wabiaozia/article/details/50803581
SSM--SpringMVC获取处理前台表单数据
大家都知道怎么用Servlet来接受处理前台表单数据,即通过request来获取数据,我们也应该清楚在SpringMVC是取代了Web层的,也就是取代了Servlet的那么在SpringMVC如何接受处理呢? 1.Result风格传值: 我们熟悉的链接传参应该是这个样子: <a href="SpringMVCHandler/welcome2?name=zs">参数传递</...
SpringMVC:前台jsp页面和后台传值
前台jsp页面和后台传值的几种方式: 不用SpringMVC自带的标签 前台---->后台,通过表单传递数据(): 1.jsp页面代码如下, modelattribute 有没有都行 <%@ page language="java" contentType="text/html; charset=utf-8" ...
springMVC系列之前台参数的传递——05
摘要:本文实现如何将前台数据传递到后台的几种方式、使用ajax传递参数时遇到点问题、、、、先弄好文件上传、待补充
SpringMVC级联获取前台数据
SpringMVC级联获取前台数据
604



被折叠的 条评论
为什么被折叠?



