123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- const $A = {
- /**
- * 获取缓存
- * @param key
- * @returns {string}
- */
- getStorage(key) {
- return localStorage.getItem(key);
- },
- /**
- * 设置缓存
- * @param key
- * @param value
- */
- setStorage(key, value) {
- return localStorage.setItem(key, value);
- },
- /**
- * 删除缓存
- * @param keys
- */
- removeStorage(keys) {
- return localStorage.removeItem(keys);
- },
- /**
- * 清空缓存
- */
- clearStorage() {
- return localStorage.clear();
- },
- /**
- * 显示通知
- * @param title
- * @param options
- * @param link
- */
- showNotify(title, options, link) {
- var notification = new Notification(title, Object.assign({
- dir: "rtl",
- lang: "zh-CN",
- icon: "images/icon-message.png",
- }, options));
- notification.onclick = function () {
- if (link) {
- window.open(link);
- }
- };
- },
- /**
- * 地址获取域名
- * @param url
- * @returns {string}
- */
- getHost(url) {
- if (/^chrome:\/\//.test(url)) {
- return "";
- }
- try {
- var info = new URL(url);
- return info.host || info.hostname;
- } catch (err) {
- console.log(err);
- return "";
- }
- },
- /**
- * 地址获取目录
- * @param url
- * @returns {string}
- */
- getPathname(url) {
- if (/^chrome:\/\//.test(url)) {
- return "";
- }
- try {
- var info = new URL(url);
- return info.pathname;
- } catch (err) {
- console.log(err);
- return "";
- }
- },
- /**
- * 删除地址中的参数
- * @param url
- * @param parameter
- * @returns {string|*}
- */
- removeURLParameter(url, parameter) {
- if (parameter instanceof Array) {
- parameter.forEach((key) => {
- url = $A.removeURLParameter(url, key)
- });
- return url;
- }
- var urlparts = url.split('?');
- if (urlparts.length >= 2) {
- //参数名前缀
- var prefix = encodeURIComponent(parameter) + '=';
- var pars = urlparts[1].split(/[&;]/g);
- //循环查找匹配参数
- for (var i = pars.length; i-- > 0;) {
- if (pars[i].lastIndexOf(prefix, 0) !== -1) {
- //存在则删除
- pars.splice(i, 1);
- }
- }
- return urlparts[0] + (pars.length > 0 ? '?' + pars.join('&') : '');
- }
- return url;
- },
- /**
- * 连接加上参数
- * @param url
- * @param params
- * @returns {*}
- */
- urlAddParams(url, params) {
- if (typeof params === "object" && params !== null) {
- url+= "";
- url+= url.indexOf("?") === -1 ? '?' : '';
- for (var key in params) {
- if (!params.hasOwnProperty(key)) {
- continue;
- }
- url+= '&' + key + '=' + params[key];
- }
- }
- return url.replace("?&", "?");
- },
- /**
- * 将一个 JSON 字符串转换为对象(已try)
- * @param str
- * @param defaultVal
- * @returns {*}
- */
- jsonParse(str, defaultVal) {
- if (str === null) {
- return defaultVal ? defaultVal : {};
- }
- if (typeof str === "object") {
- return str;
- }
- try {
- return JSON.parse(str);
- } catch (e) {
- return defaultVal ? defaultVal : {};
- }
- },
- /**
- * 将 JavaScript 值转换为 JSON 字符串(已try)
- * @param json
- * @param defaultVal
- * @returns {string}
- */
- jsonStringify(json, defaultVal) {
- if (typeof json !== 'object') {
- return json;
- }
- try {
- return JSON.stringify(json);
- } catch (e) {
- return defaultVal ? defaultVal : "";
- }
- },
- /**
- * 转数字
- * @param str
- * @param fixed
- * @returns {number}
- */
- runNum(str, fixed) {
- var _s = Number(str);
- if (_s + "" === "NaN") {
- _s = 0;
- }
- if (/^[0-9]*[1-9][0-9]*$/.test(fixed)) {
- _s = _s.toFixed(fixed);
- var rs = _s.indexOf('.');
- if (rs < 0) {
- _s += ".";
- for (var i = 0; i < fixed; i++) {
- _s += "0";
- }
- }
- }
- return _s;
- },
- /**
- * 消息内容取描述
- * @param content
- * @returns {*}
- */
- getMsgDesc(content) {
- var desc;
- switch (content.type) {
- case 'text':
- desc = content.text;
- break;
- case 'image':
- desc = '[图片]';
- break;
- case 'file':
- desc = '[文件]';
- break;
- case 'taskB':
- desc = content.text + " [任务消息]";
- break;
- case 'report':
- desc = content.text + " [工作报告]";
- break;
- default:
- desc = '[未知类型]';
- break;
- }
- return desc;
- },
- /**
- * 更新参数
- * @param key
- * @param updateConfig
- */
- updateConfigLists(key, updateConfig) {
- var configLists = $A.jsonParse($A.getStorage("configLists"), {});
- var keyConfig = configLists[key];
- if (keyConfig !== null
- && typeof keyConfig == "object"
- && updateConfig !== null
- && typeof updateConfig == "object") {
- var up = false;
- for (var k in updateConfig) {
- if (!updateConfig.hasOwnProperty(k)) {
- continue;
- }
- if (updateConfig[k] !== keyConfig[k]) {
- up = true;
- break;
- }
- }
- if (up) {
- keyConfig = Object.assign(keyConfig, updateConfig);
- $A.setStorage("configLists", $A.jsonStringify(configLists));
- }
- }
- }
- }
|