123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214 |
- var pubfn = {};
- import debounce from './debounce.js'
- import throttle from './throttle.js'
- import queryParams from './queryParams.js'
- import setClipboardData from './setClipboardData.js'
- import timeUtil from './timeUtil.js'
- import treeUtil from './treeUtil.js'
- pubfn.treeUtil = treeUtil;
- pubfn.timeUtil = timeUtil;
- pubfn.debounce = debounce;
- pubfn.throttle = throttle;
- pubfn.queryParams = queryParams;
- pubfn.setClipboardData = setClipboardData;
- pubfn.sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
- pubfn.timeFormat = pubfn.timeUtil.timeFormat;
- pubfn.getFullTime = pubfn.timeUtil.getFullTime;
- pubfn.getCommonTime = pubfn.timeUtil.getCommonTime;
- pubfn.getOffsetTime = pubfn.timeUtil.getOffsetTime;
- pubfn.getWeekStartAndEnd = pubfn.timeUtil.getWeekStartAndEnd;
- pubfn.getDayOffsetStartAndEnd = pubfn.timeUtil.getDayOffsetStartAndEnd;
- pubfn.getMonthOffsetStartAndEnd = pubfn.timeUtil.getMonthOffsetStartAndEnd;
- pubfn.getYearOffsetStartAndEnd = pubfn.timeUtil.getYearOffsetStartAndEnd;
- pubfn.getMonthStartAndEnd = pubfn.timeUtil.getMonthStartAndEnd;
- pubfn.validator = function(type) {
- return function(rule, value, callback) {
- let key = pubfn.test(value, type);
- if (typeof callback === "function") {
- if (key || !value) {
- callback();
- } else {
- return callback(false);
- }
- } else {
- return callback(false);
- }
- }
- };
- pubfn.test = function(str, type = "") {
- type = type.toLowerCase();
- switch (type) {
- case 'mobile':
- return new RegExp(/^1[3|4|5|6|7|8|9][0-9]{9}$/).test(str);
- case 'tel':
- return new RegExp(/^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/).test(str);
- case 'card':
- return new RegExp(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/).test(str);
- case 'mobilecode':
- return new RegExp(/^[0-9]{6}$/).test(str);
- case 'username':
- return new RegExp(/^[a-zA-Z]([-_a-zA-Z0-9]{5,17})$/).test(str)
- case 'pwd':
- return new RegExp(/^([a-zA-Z0-9_@]){6,18}$/).test(str)
- case 'password':
- return new RegExp(/^([a-zA-Z0-9_@]){6,18}$/).test(str)
- case 'paypwd':
- return new RegExp(/^[0-9]{6}$/).test(str)
- case 'postal':
- return new RegExp(/[1-9]\d{5}(?!\d)/).test(str);
- case 'qq':
- return new RegExp(/^[1-9][0-9]{4,9}$/).test(str);
- case 'email':
- return new RegExp(/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/).test(str);
- case 'money':
- return new RegExp(/^\d*(?:\.\d{0,2})?$/).test(str);
- case 'url':
- return new RegExp(/(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/).test(str);
- case 'ip':
- return new RegExp(/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/).test(
- str);
- case 'date':
- return new RegExp(/^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/).test(str);
- case 'time':
- return new RegExp(/^(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/).test(str);
- case 'datetime':
- return new RegExp(/^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/).test(str);
- case 'english+number':
- return new RegExp(/^[a-zA-Z0-9]*$/).test(str);
- case 'english+number+_':
- return new RegExp(/^[a-zA-Z0-9_]*$/).test(str);
- case 'english+number+_-':
- return new RegExp(/^[a-zA-Z0-9_-]*$/).test(str);
- case 'number':
- return new RegExp(/^[0-9]*$/).test(str);
- case 'english':
- return new RegExp(/^[a-zA-Z]+$/).test(str);
- case 'chinese':
- return new RegExp(/^[\u4e00-\u9fa5]+$/gi).test(str);
- case 'lower':
- return new RegExp(/^[a-z]+$/).test(str);
- case 'upper':
- return new RegExp(/^[A-Z]+$/).test(str);
- case 'html':
- return new RegExp(/<("[^"]*"|'[^']*'|[^'">])*>/).test(str);
- default:
- return true;
- }
- };
- pubfn.checkStr = pubfn.test;
- pubfn.objectAssign = function(obj1, obj2) {
- return Object.assign(obj1, obj2);
- };
- pubfn.copyObject = function(obj) {
- if (typeof obj !== "undefined") {
- return JSON.parse(JSON.stringify(obj));
- } else {
- return obj;
- }
- };
- pubfn.deepClone = function(obj) {
-
- if ([null, undefined, NaN, false].includes(obj)) return obj;
- if (typeof obj !== "object" && typeof obj !== 'function') {
-
- return obj;
- }
- let o = Object.prototype.toString.call(obj) === '[object Array]' ? [] : {};
- for (let i in obj) {
- if (obj.hasOwnProperty(i)) {
- o[i] = typeof obj[i] === "object" ? pubfn.deepClone(obj[i]) : obj[i];
- }
- }
- return o;
- };
- pubfn.formAssign = function(defaultData, itemData) {
- let newDefaultData = pubfn.copyObject(defaultData);
- return pubfn.objectAssign(newDefaultData, itemData);
- };
- pubfn.arr_concat = function(arr1, arr2, flag) {
- if (!flag) flag = "id";
- var arr3 = arr1.concat(arr2);
- var arr = [];
- if (flag != -1) {
- var arr_id = [];
- for (var i in arr3) {
-
-
- if (arr_id.indexOf(arr3[i][flag]) == -1) {
- arr_id.push(arr3[i][flag]);
- arr.push(arr3[i]);
- }
- }
- } else {
- arr = arr3;
- }
- return arr;
- };
- pubfn.getData = function(dataObj, name, defaultValue) {
- let newDataObj;
- if (pubfn.isNotNull(dataObj)) {
- newDataObj = JSON.parse(JSON.stringify(dataObj));
- let k = "",
- d = ".",
- l = "[",
- r = "]";
- name = name.replace(/\s+/g, k) + d;
- let tstr = k;
- for (let i = 0; i < name.length; i++) {
- let theChar = name.charAt(i);
- if (theChar != d && theChar != l && theChar != r) {
- tstr += theChar;
- } else if (newDataObj) {
- if (tstr != k) newDataObj = newDataObj[tstr];
- tstr = k;
- }
- }
- }
- if (typeof newDataObj === "undefined" && typeof defaultValue !== "undefined") newDataObj = defaultValue;
- return newDataObj;
- };
- pubfn.setData = function(dataObj, name, value) {
-
- let dataValue;
- if (typeof value === "object") {
- dataValue = pubfn.copyObject(value);
- } else {
- dataValue = value;
- }
- let regExp = new RegExp("([\\w$]+)|\\[(:\\d)\\]", "g");
- const patten = name.match(regExp);
-
- for (let i = 0; i < patten.length - 1; i++) {
- let keyName = patten[i];
- if (typeof dataObj[keyName] !== "object") dataObj[keyName] = {};
- dataObj = dataObj[keyName];
- }
-
- dataObj[patten[patten.length - 1]] = dataValue;
- };
- pubfn.isNull = function(value) {
- let key = false;
- if (
- typeof value == "undefined" ||
- Object.prototype.toString.call(value) == "[object Null]" ||
- JSON.stringify(value) == "{}" ||
- JSON.stringify(value) == "[]" ||
- value === "" ||
- JSON.stringify(value) === undefined
- ) {
- key = true;
- }
- return key;
- };
- pubfn.isNotNull = function(value) {
- return !pubfn.isNull(value);
- };
- pubfn.isNullOne = function(...strS) {
- let key = false;
- for (let i = 0; i < strS.length; i++) {
- let str = strS[i];
- if (pubfn.isNull(str)) {
- key = true;
- break;
- }
- }
- return key;
- };
- pubfn.isNullOneByObject = function(obj) {
- let key;
- for (let name in obj) {
- let val = obj[name];
- if (pubfn.isNull(val)) {
- key = name;
- break;
- }
- }
- return key;
- };
- pubfn.isNullAll = function(...strS) {
- let key = true;
- for (let i = 0; i < strS.length; i++) {
- let str = strS[i];
- if (pubfn.isNotNull(str)) {
- key = false;
- break;
- }
- }
- return key;
- };
- pubfn.isNotNullAll = function(...strS) {
- return !pubfn.isNullOne(...strS);
- };
- pubfn.getListItem = function(list, key, value) {
- let item;
- for (let i = 0; i < list.length; i++) {
- if (list[i][key] === value) {
- item = list[i];
- break;
- }
- }
- return item;
- };
- pubfn.getListIndex = function(list, key, value) {
- let index = -1;
- for (let i = 0; i < list.length; i++) {
- if (list[i][key] === value) {
- index = i;
- break;
- }
- }
- return index;
- };
- pubfn.getListItemIndex = function(list, key, value) {
- let obj = {};
- let item;
- let index = -1;
- for (let i = 0; i < list.length; i++) {
- if (list[i][key] === value) {
- index = i;
- item = list[i];
- break;
- }
- }
- obj = {
- item,
- index
- }
- return obj;
- };
- pubfn.arrayToJson = function(list, key) {
- let json = {};
- for (let i in list) {
- let item = list[i];
- json[item[key]] = item;
- }
- return json;
- };
- pubfn.listToJson = pubfn.arrayToJson;
- pubfn.arrayObjectGetArray = function(list, key) {
- return list.map(obj => { return obj[key] });
- };
- pubfn.random = function(length, str, arr) {
- let s;
- if (pubfn.isNull(arr)) {
- s = pubfn.randomFn(length, str);
- } else {
- let i = 0;
- let maxForCount = 100000;
- do {
- i++;
- s = pubfn.randomFn(length, str);
- } while (arr.indexOf(s) > -1 && i < maxForCount);
- if (i === maxForCount) {
- s = undefined;
- }
- }
- return s;
- };
- pubfn.randomFn = function(length, str) {
- let s = "";
- let list = "123456789";
-
- if (pubfn.isNotNull(str)) {
- if (str == "a-z,0-9") {
- str = "abcdefghijklmnopqrstuvwxyz0123456789";
- } else if (str == "A-Z,0-9") {
- str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
- } else if (str == "a-z,A-Z,0-9" || str == "A-Z,a-z,0-9") {
- str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
- }
- list = str;
- }
- for (let i = 0; i < length; i++) {
- let code = list[Math.floor(Math.random() * list.length)];
- s += code;
- }
- return s;
- };
- pubfn.stringIdToNumberId = function(str, length) {
- let s = "";
- let list = "0123456789";
- for (let i = 0; i < length; i++) {
- if (str.length > i) {
- let index = str[i].charCodeAt() % 10;
- s += list[index];
- } else {
- s = "0" + s;
- }
- }
- return s;
- };
- pubfn.hidden = function(str = "", first = 0, last = 0) {
- let len = str.length - first - last;
- let xing = '';
- for (let i = 0; i < len; i++) {
- xing += '*';
- }
- return str.substring(0, first) + xing + str.substring(str.length - last);
- };
- pubfn.checkArrayIntersection = function(arr1 = [], arr2 = []) {
- let checkKey = false;
- for (let i = 0; i < arr2.length; i++) {
- if (arr1.indexOf(arr2[i]) > -1) {
- checkKey = true;
- }
- }
- return checkKey;
- };
- pubfn.checkDataExpText = function(data = {}, expText) {
- expText = expText.replace(new RegExp("\\s", "g"), "");
-
- let orArr = expText.split("||");
-
- let checkKey = false;
- for (let index1 = 0; index1 < orArr.length; index1++) {
- let orItem = orArr[index1];
- let andArr = orItem.split("&&");
-
- let itemKey = true;
- for (let index2 = 0; index2 < andArr.length; index2++) {
- let andItem = andArr[index2];
-
- if (andItem.indexOf("!=") > -1) {
- let andItemArr = andItem.split("!=");
- let key = andItemArr[0];
- let value = andItemArr[1];
- itemKey = data[key] != value ? true : false;
- } else if (andItem.indexOf("==") > -1) {
- let andItemArr = andItem.split("==");
- let key = andItemArr[0];
- let value = andItemArr[1];
- itemKey = (typeof data[key] !== "undefined" && data[key].toString() == value) ? true : false;
- } else if (andItem.indexOf(">=") > -1) {
- let andItemArr = andItem.split(">=");
- let key = andItemArr[0];
- let value = andItemArr[1];
- if (isNaN(value)) {
- itemKey = (typeof data[key] !== "undefined" && data[key].toString() >= value) ? true : false;
- } else {
- itemKey = (typeof data[key] !== "undefined" && data[key] >= Number(value)) ? true : false;
- }
- } else if (andItem.indexOf(">") > -1) {
- let andItemArr = andItem.split(">");
- let key = andItemArr[0];
- let value = andItemArr[1];
- if (isNaN(value)) {
- itemKey = (typeof data[key] !== "undefined" && data[key].toString() > value) ? true : false;
- } else {
- itemKey = (typeof data[key] !== "undefined" && data[key] > Number(value)) ? true : false;
- }
- } else if (andItem.indexOf("<=") > -1) {
- let andItemArr = andItem.split("<=");
- let key = andItemArr[0];
- let value = andItemArr[1];
- if (isNaN(value)) {
- itemKey = (typeof data[key] !== "undefined" && data[key].toString() <= value) ? true : false;
- } else {
- itemKey = (typeof data[key] !== "undefined" && data[key] <= Number(value)) ? true : false;
- }
- } else if (andItem.indexOf("<") > -1) {
- let andItemArr = andItem.split("<");
- let key = andItemArr[0];
- let value = andItemArr[1];
- if (isNaN(value)) {
- itemKey = (typeof data[key] !== "undefined" && data[key].toString() < value) ? true : false;
- } else {
- itemKey = (typeof data[key] !== "undefined" && data[key] < Number(value)) ? true : false;
- }
- } else {
- let andItemArr = andItem.split("=");
- let key = andItemArr[0];
- let value = andItemArr[1];
- itemKey = (typeof data[key] !== "undefined" && data[key].toString() == value) ? true : false;
-
- }
- if (!itemKey) {
- break;
- }
- }
- if (itemKey) {
- checkKey = true;
- break;
- }
- }
- return checkKey;
- };
- pubfn.isArray = function(value) {
- return Object.prototype.toString.call(value) === "[object Array]" ? true : false;
- };
- pubfn.isObject = function(value) {
- return Object.prototype.toString.call(value) === "[object Object]" ? true : false;
- };
- pubfn.calcFreights = function(freightsItem, weight) {
- let {
- first_weight,
- first_weight_price,
- continuous_weight,
- continuous_weight_price,
- max_weight = 100000000
- } = freightsItem;
- let money = 0;
- let packagesNum = 0;
- let packagesSurplusWeight = max_weight;
- let first_weight_key = false;
- let continuous_weight_count = 0;
- let logArr = [];
- let logRun = false;
- while (weight > 0) {
- if (!first_weight_key) {
-
- first_weight_key = true;
- packagesNum++;
- packagesSurplusWeight = max_weight;
- weight -= first_weight;
- packagesSurplusWeight -= first_weight;
- } else {
-
- continuous_weight_count++;
- weight -= continuous_weight;
- packagesSurplusWeight -= continuous_weight;
- }
- if (logRun) logArr.push({
- "总重量剩余": weight,
- "当前包裹重量剩余": packagesSurplusWeight,
- "当前第几个包裹": packagesNum,
- "续重计算次数": continuous_weight_count
- });
- if (packagesSurplusWeight <= 0) {
-
- first_weight_key = false;
- }
- }
- if (logRun) console.log(JSON.stringify(logArr));
- money = packagesNum * first_weight_price + continuous_weight_price * continuous_weight_count;
- return money;
- };
- pubfn.getNewObject = function(obj, keys) {
- let selectedObj = pubfn.copyObject(obj);
- let newObject = {};
- if (keys && keys.length > 0) {
- for (let i in keys) {
- let key = keys[i];
- if (pubfn.isNotNull(selectedObj[key])) {
- newObject[key] = selectedObj[key];
- }
- }
- } else {
- newObject = selectedObj;
- }
- return newObject;
- };
- pubfn.deleteObjectKeys = function(data, deleteKeys = []) {
- var newData = {};
- if (data) {
- for (let key in data) {
- if (deleteKeys.indexOf(key) == -1) {
- newData[key] = data[key];
- }
- }
- }
- return newData;
- }
- pubfn.arrayToTree = pubfn.treeUtil.arrayToTree;
- pubfn.treeToArray = pubfn.treeUtil.treeToArray;
- pubfn.wildcardTestOne = function(text, expText) {
- if (!expText) return false;
- let regExpText = expText.replace(new RegExp("\\*"), "(.*)");
- let startText = expText.indexOf("*") !== 0 ? "^" : "";
- let endText = expText[expText.length - 1] !== "*" ? "$" : "";
- let regExp = new RegExp(startText + regExpText + endText);
- return regExp.test(text);
- };
- pubfn.wildcardTest = function(text, expText) {
- let matchNum = 0;
- let regExp1 = new RegExp("\\*");
- if (typeof expText === "string") {
-
- if (pubfn.wildcardTestOne(text, expText)) {
- matchNum++;
- }
- } else if (typeof expText === "object") {
-
- for (let i = 0; i < expText.length; i++) {
- let expTextItem = expText[i];
- if (pubfn.wildcardTestOne(text, expTextItem)) {
- matchNum++;
- }
- }
- }
- return matchNum;
- }
- pubfn.regExpTestOne = function(text, expText) {
- if (!expText) return false;
- let regExp = new RegExp(expText);
- return regExp.test(text);
- };
- pubfn.regExpTest = function(text, expText) {
- let matchNum = 0;
- if (typeof expText === "string") {
-
- if (pubfn.regExpTestOne(text, expText)) {
- matchNum++;
- }
- } else if (typeof expText === "object") {
-
- for (let i = 0; i < expText.length; i++) {
- let expTextItem = expText[i];
- if (pubfn.regExpTestOne(text, expTextItem)) {
- matchNum++;
- }
- }
- }
- return matchNum;
- }
- pubfn.createOrderNo = function(prefix = "", num = 25) {
-
- let fullTime = pubfn.getFullTime(new Date(), 1);
- fullTime = fullTime.substring(2);
- let randomNum = num - (prefix + fullTime).length;
- return prefix + fullTime + pubfn.random(randomNum);
- };
- const isSnakeCase = new RegExp('_(\\w)', 'g');
- const isCamelCase = new RegExp('[A-Z]', 'g');
- function parseObjectKeys(obj, type) {
- let parserReg;
- let parser;
- switch (type) {
- case 'snake2camel':
- parser = pubfn.snake2camel
- parserReg = isSnakeCase
- break
- case 'camel2snake':
- parser = pubfn.camel2snake
- parserReg = isCamelCase
- break
- }
- for (const key in obj) {
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
- if (parserReg.test(key)) {
- const keyCopy = parser(key)
- obj[keyCopy] = obj[key]
- delete obj[key]
- if (Object.prototype.toString.call((obj[keyCopy])) === '[object Object]') {
- obj[keyCopy] = parseObjectKeys(obj[keyCopy], type)
- } else if (Array.isArray(obj[keyCopy])) {
- obj[keyCopy] = obj[keyCopy].map((item) => {
- return parseObjectKeys(item, type)
- })
- }
- }
- }
- }
- return obj
- }
- pubfn.snake2camel = function(value) {
- return value.replace(isSnakeCase, (_, c) => (c ? c.toUpperCase() : ''))
- }
- pubfn.camel2snake = function(value) {
- return value.replace(isCamelCase, str => '_' + str.toLowerCase())
- }
- pubfn.snake2camelJson = function(obj) {
- return parseObjectKeys(obj, 'snake2camel');
- };
- pubfn.camel2snakeJson = function(obj) {
- return parseObjectKeys(obj, 'camel2snake');
- };
- pubfn.string2Number = function(obj, option = {}) {
- const type = Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();
- switch (type) {
- case 'string':
- if (obj && !isNaN(obj)) {
- let {
- mobile = true,
- idCard = true,
- startFrom0 = true,
- maxLength = 14,
- } = option;
- if (obj.length > maxLength) {
- return obj;
- } else if (mobile && pubfn.test(obj, "mobile")) {
- return obj;
- } else if (idCard && pubfn.test(obj, "card")) {
- return obj;
- } else if (startFrom0 && obj.length > 1 && obj.indexOf("0") === 0 && obj.indexOf(".") !== 1) {
- return obj;
- }
- return Number(obj);
- } else {
- return obj;
- }
- case 'object':
- const keys = Object.keys(obj);
- for (let i = 0; i < keys.length; i++) {
- const key = keys[i];
- obj[key] = pubfn.string2Number(obj[key]);
- }
- return obj;
- case 'array':
- for (let i = 0; i < obj.length; i++) {
- obj[i] = pubfn.string2Number(obj[i]);
- }
- return obj;
- default:
- return obj;
- }
- };
- pubfn.toDecimal = function(val, precision = 0) {
- if (typeof val === "string") val = Number(val);
- return parseFloat(val.toFixed(precision));
- };
- pubfn.getFileType = function(url) {
- let fileType;
- if (pubfn.checkFileSuffix(url, ["png", "jpg", "jpeg", "gif", "bmp", "svg"])) {
- fileType = "image";
- } else if (pubfn.checkFileSuffix(url, ["avi", "mp4", "3gp", "mov", "rmvb", "rm", "flv", "mkv"])) {
- fileType = "video";
- } else if (pubfn.checkFileSuffix(url, ["mp3"])) {
- fileType = "audio";
- } else {
- fileType = "other";
- }
- return fileType;
- };
- pubfn.getFileSuffix = function(url) {
- let suffix;
- let index = url.lastIndexOf(".");
- if (index > -1) {
- suffix = url.substring(index + 1);
- }
- return suffix;
- };
- pubfn.checkFileSuffix = function(url, list) {
- let key = false;
- let suffix = pubfn.getFileSuffix(url);
- for (let i = 0; i < list.length; i++) {
- if (list.indexOf(suffix) > -1) {
- key = true;
- break;
- }
- }
- return key;
- };
- pubfn.dateDiff = function(startTime, suffix = "前") {
- if (!startTime) {
- return "";
- }
- if (typeof startTime === "string" && !isNaN(startTime)) startTime = Number(startTime);
- if (typeof startTime == "number") {
- if (startTime.toString().length == 10) startTime *= 1000;
- startTime = new Date(startTime);
- startTime = pubfn.getFullTime(startTime);
- }
- if (typeof startTime == "string") {
- startTime = startTime.replace("T", " ");
- startTime = startTime;
- startTime = new Date(startTime.replace(/-/g, "/"));
- }
- var endTime = new Date();
- var nd = 1000 * 24 * 60 * 60;
- var nh = 1000 * 60 * 60;
- var nm = 1000 * 60;
- var ns = 1000;
- var diff = endTime.getTime() - startTime.getTime();
- var day = Math.floor(diff / nd);
- var hour = Math.floor(diff % nd / nh);
- var min = Math.floor(diff % nd % nh / nm);
- var sec = Math.round(diff % nd % nh % nm / ns);
- var showStr = "1 秒";
- if (day > 0) {
- showStr = day + "天";
- } else if (hour > 0) {
- showStr = hour + "小时";
- } else if (min > 0) {
- showStr = min + "分钟";
- } else if (sec > 0) {
- showStr = sec + "秒";
- }
- showStr += suffix;
- return showStr;
- }
- pubfn.dateDiff2 = function(startTime, str = "1秒") {
- if (!startTime) {
- return "";
- }
- if (typeof startTime === "string" && !isNaN(startTime)) startTime = Number(startTime);
- if (typeof startTime == "number") {
- if (startTime.toString().length == 10) startTime *= 1000;
- startTime = new Date(startTime);
- startTime = pubfn.getFullTime(startTime);
- }
- if (typeof startTime == "string") {
- startTime = startTime.replace("T", " ");
- startTime = startTime;
- startTime = new Date(startTime.replace(/-/g, "/"));
- }
- var endTime = new Date();
- var nd = 1000 * 24 * 60 * 60;
- var nh = 1000 * 60 * 60;
- var nm = 1000 * 60;
- var ns = 1000;
- var diff = startTime.getTime() - endTime.getTime();
- var day = Math.floor(diff / nd);
- var hour = Math.floor(diff % nd / nh);
- var min = Math.floor(diff % nd % nh / nm);
- var sec = Math.round(diff % nd % nh % nm / ns);
- var showStr = str;
- if (day > 0) {
- showStr = day + "天";
- } else if (hour > 0) {
- showStr = hour + "小时";
- } else if (min > 0) {
- showStr = min + "分钟";
- } else if (sec > 0) {
- showStr = sec + "秒";
- }
- return showStr;
- };
- pubfn.numStr = function(n) {
- if (typeof n == "string") {
- n = parseFloat(n);
- }
- var str = n;
- if (n < 1000) {
- str = n;
- } else if (n < 10000) {
- var n1 = Math.floor(n / 100);
- str = n1 / 10 + "千"
- } else if (n < 1000000) {
- var n1 = Math.floor(n / 1000);
- str = n1 / 10 + "万"
- } else if (n < 10000000) {
- var n1 = Math.floor(n / 1000000);
- str = n1 + "百万"
- } else if (n < 100000000) {
- var n1 = Math.floor(n / 10000000);
- str = n1 + "千万"
- } else if (n >= 100000000) {
- var n1 = Math.floor(n / 10000000);
- str = n1 / 10 + "亿"
- }
- return str;
- };
- pubfn.priceFilter = function(money, defaultValue = "") {
- if (pubfn.isNull(money)) {
- return defaultValue;
- }
- if (isNaN(money)) {
- return money;
- }
- if (typeof money == "string") {
- money = parseFloat(money);
- }
- return (money / 100).toFixed(2);
- };
- pubfn.priceLeftFilter = function(n) {
- let s = "";
- if (n) {
- s = pubfn.priceFilter(n).split(".")[0];
- }
- return s;
- };
- pubfn.priceRightFilter = function(n) {
- let s = "";
- if (n) {
- s = pubfn.priceFilter(n).split(".")[1];
- }
- return s;
- };
- pubfn.percentageFilter = function(value, needShowSymbol = true, defaultValue = "") {
- if (pubfn.isNull(value)) {
- return defaultValue;
- }
- if (isNaN(value)) {
- return value;
- }
- if (typeof value == "string") {
- value = parseFloat(value);
- }
- value = parseFloat((value * 100).toFixed(2));
- if (needShowSymbol) {
- value += "%";
- }
- return value;
- };
- pubfn.discountFilter = function(value, needShowSymbol = true, defaultValue = "") {
- if (pubfn.isNull(value)) {
- return defaultValue;
- }
- if (isNaN(value)) {
- return value;
- }
- if (typeof value == "string") {
- value = parseFloat(value);
- }
- value = parseFloat((value * 10).toFixed(2));
- if (value > 10) {
- return "折扣不可以大于原价";
- }
- if (value == 10) {
- return "原价";
- }
- if (value == 0) {
- return "免费";
- }
- if (value < 0) {
- return "折扣不可以小于0";
- }
- if (needShowSymbol) {
- value += " 折";
- }
- return value;
- };
- pubfn.toTimeLong = function(dateString) {
- if (!dateString) {
- return "";
- }
- dateString = dateString.substring(0, 19);
- dateString = dateString.replace(new RegExp(/-/, "g"), '/');
- let time = new Date(dateString).getTime();
- if (isNaN(time)) {
- time = "";
- }
- return time;
- };
- pubfn.calcSize = function(length = 0, arr, ary, precision = 2, showType = "auto") {
- length = parseFloat(length);
- let size = 0;
- let type = "";
- if (length < ary || arr.length <= 1) {
- type = arr[0];
- size = parseFloat(length.toFixed(precision));
- } else {
- for (let i = 1; i < arr.length; i++) {
- let currentType = arr[i];
- length = length / ary;
- if (showType === "auto") {
- if (length < ary) {
- type = currentType;
- size = parseFloat(length.toFixed(precision));
- break;
- }
- } else {
- if (showType === currentType) {
- type = currentType;
- size = parseFloat(length.toFixed(precision));
- break;
- }
- }
- }
- }
- return {
- size: size,
- type: type,
- title: size + " " + type
- }
- };
- pubfn.getListData2 = function(obj = {}) {
- let {
- that,
- listName,
- listKey = "rows",
- url,
- dataPreprocess,
- idKeyName = "_id"
- } = obj;
- if (listName) listKey = listName;
-
- let { vk } = that;
- let queryForm1 = that.queryForm1 || that.queryForm;
-
- that.loading = true;
- let hasMore = true;
- if (queryForm1.pagination.pageIndex === 1) {
- that.firstLoading = true;
- }
- vk.callFunction({
- url: url,
- data: queryForm1,
- success: function(data) {
- let list = data[listKey] || [];
-
- if (typeof dataPreprocess == "function") {
- list = dataPreprocess(list);
- }
- if (queryForm1.pagination.pageIndex > 1) {
-
- if (list.length == 0) {
-
- hasMore = false;
- queryForm1.pagination.pageIndex--;
- list = that.data.list;
- } else {
-
- if (list.length < queryForm1.pagination.pageSize) {
- hasMore = false;
- }
-
- list = vk.pubfn.arr_concat(that.data.list, list, idKeyName);
- }
- } else if (queryForm1.pagination.pageIndex == 1) {
-
- if (list.length < queryForm1.pagination.pageSize) {
- hasMore = false;
- }
- if (list.length == 0) {
- that.state.isEmpty = true;
- } else {
- that.state.isEmpty = false;
- }
- }
-
- if (typeof data.hasMore !== "undefined") {
- hasMore = data.hasMore;
- }
- data = {
- ...data,
- total: data.total,
- list: list,
- hasMore: hasMore,
- pageIndex: data.pageIndex,
- pageSize: data.pageSize
- };
- that.state.loadmore = hasMore ? "loadmore" : "nomore";
- that.data = vk.pubfn.objectAssign(that.data, data);
- if (typeof obj.success == "function") obj.success(data);
- },
- fail: function(err) {
- that.state.loadmore = "loadmore";
- if (queryForm1.pagination.pageIndex > 1) {
- queryForm1.pagination.pageIndex--;
- }
- if (typeof obj.fail == "function") {
- obj.fail(data);
- } else if (err && err.msg) {
- vk.toast(err.msg, "none");
- }
- },
- complete: function(res) {
- that.loading = false;
- if (queryForm1.pagination.pageIndex === 1) {
- that.state.firstLoading = false;
- }
- if (typeof obj.complete == "function") obj.complete(res);
- }
- });
- };
- pubfn.getListData = function(obj = {}) {
- var {
- that,
- listName,
- listKey = "rows",
- url,
- dataPreprocess,
- loading
- } = obj;
- if (listName) listKey = listName;
- var { form1 = {}, data = {} } = that;
- var { pageKey = true } = data;
- var vk = that.vk;
- if (!form1.pageIndex) form1.pageIndex = 1;
- if (!form1.pageSize) form1.pageSize = 20;
- var addTime = form1.addTime;
- var endTime = form1.endTime;
- if (endTime) endTime += " 23:59:59";
- if (!pageKey && form1.pageIndex > 1) {
- form1.pageIndex--;
- return false;
- }
- if (addTime) form1.addTimeLong = pubfn.toTimeLong(addTime);
- if (endTime) form1.endTimeLong = pubfn.toTimeLong(endTime);
- if (obj.data && JSON.stringify(obj.data) != "{}") {
- pubfn.objectAssign(form1, obj.data);
- }
- let title = obj.title;
- if (typeof obj.title == "undefined" && !loading) {
- title = form1.pageIndex == 1 ? "请求中..." : "";
- }
- vk.callFunction({
- url: url,
- data: form1,
- title: title,
- loading: loading,
- success: function(data) {
- var list = data[listKey] || [];
-
- if (typeof dataPreprocess == "function") {
- list = dataPreprocess(list);
- }
- if (form1.pageIndex > 1) {
-
- if (list.length == 0) {
-
- pageKey = false;
- form1.pageIndex--;
- list = that.data.list;
- } else {
-
- if (list.length < form1.pageSize) {
- pageKey = false;
- }
- let oldList = that.data.list;
-
- list = pubfn.arr_concat(oldList, list, "_id");
- }
- } else if (form1.pageIndex == 1) {
- if (list.length < form1.pageSize) {
- pageKey = false;
- }
- }
-
- data = {
- ...data,
- total: data.total,
- list: list,
- pageKey: pageKey,
- loadmore: pageKey ? "loadmore" : "nomore"
- };
- that.data = pubfn.objectAssign(that.data, data);
- if (typeof obj.success == "function") obj.success(data);
- },
- fail: function(err) {
- if (form1.pageIndex > 1) { form1.pageIndex--; }
- if (typeof obj.fail == "function") {
- obj.fail(data);
- } else if (err && err.msg) {
- vk.toast(err.msg, "none");
- }
- },
- complete: function(res) {
- if (typeof obj.complete == "function") obj.complete(res);
- },
- });
- };
- pubfn.getComponentsDynamicData = function(obj = {}) {
- var {
- that,
- keyName = "componentsDynamic",
- title,
- url = "plugs/components_dynamic/client/pub/getComponentsDynamicData",
- ids
- } = obj;
- var vk = that.vk;
- let form1 = {
- ids: ids
- };
- if (obj.data && JSON.stringify(obj.data) != "{}") {
- pubfn.objectAssign(form1, obj.data);
- }
-
- let cacheKey = "pub-componentsDynamic";
- let cacheData = uni.getStorageSync(cacheKey) || {};
- let cacheDataKey = JSON.stringify(ids);
- if (cacheData[cacheDataKey]) {
-
- that[keyName] = cacheData[cacheDataKey];
- }
-
- vk.callFunction({
- url: url,
- data: form1,
- title: title,
- success: function(data) {
- if (JSON.stringify(cacheData[cacheDataKey]) !== JSON.stringify(data.componentsDynamic)) {
-
- that[keyName] = data.componentsDynamic;
-
- cacheData[cacheDataKey] = data.componentsDynamic;
- uni.setStorageSync(cacheKey, cacheData);
- }
- if (typeof obj.success == "function") obj.success(data);
- },
- fail: function(err) {
- console.error(err);
- if (typeof obj.fail == "function") obj.fail(data);
- },
- complete: function() {
- if (typeof obj.complete == "function") obj.complete(data);
- },
- });
- };
- pubfn.getPageFullPath = function(url) {
- let fullPath = url;
- if (fullPath.indexOf("/") !== 0) {
- if (fullPath.indexOf("./") === 0) {
-
- fullPath = fullPath.substring(2);
- }
- let urlSplit = fullPath.split("../");
-
- let level = urlSplit.length;
-
- let urlEnd = urlSplit[level - 1];
-
- let pages = getCurrentPages();
- let currentPage = pages[pages.length - 1];
- let currentPagePath = currentPage.route;
-
- let urlArr = currentPagePath.split("/");
- let urlSplicing = "";
-
- for (let i = 0; i < urlArr.length - level; i++) {
- urlSplicing += urlArr[i] + "/";
- }
-
- fullPath = urlSplicing + urlEnd;
- if (fullPath.indexOf("/") != 0) {
- fullPath = "/" + fullPath;
- }
- }
- return fullPath;
- };
- pubfn.getPlatform = function() {
- let platform;
-
- platform = "app-plus";
-
-
- platform = "h5";
-
-
- platform = "mp-weixin";
-
-
- platform = "mp-alipay";
-
-
- platform = "mp-baidu";
-
-
- platform = "mp-toutiao";
-
-
- platform = "mp-qq";
-
-
- platform = "mp-360";
-
-
- platform = "mp-toutiao";
-
- return platform;
- };
- pubfn.getCurrentPage = function() {
- let res = {};
- let pages = getCurrentPages();
- let page = pages[pages.length - 1];
- res.fullPath = page.$page.fullPath;
- res.options = page.options;
- res.route = page.route;
- res.$vm = page.$vm;
- return res;
- };
- pubfn.getCurrentPageRoute = function(removeSlash) {
- let pages = getCurrentPages();
- let page = pages[pages.length - 1];
- if (removeSlash) {
- return page.route;
- } else {
- return "/" + page.route;
- }
- };
- pubfn.fileToBase64 = function(obj = {}) {
- let { file } = obj;
- return new Promise(function(resolve, reject) {
-
- let reader = new FileReader();
- reader.readAsDataURL(file);
- reader.onload = function(res) {
- let base64 = this.result;
- if (base64.indexOf(";base64,") == -1) {
- base64 = "data:image/jpeg;base64," + base64;
- }
- if (obj.success) obj.success(base64);
- if (obj.complete) obj.complete(base64);
- resolve(base64);
- };
- reader.onerror = function(err) {
- if (obj.fail) obj.fail(err);
- if (obj.complete) obj.complete(err);
- reject(err);
- };
-
-
- uni.getFileSystemManager().readFile({
- filePath: file.path,
- encoding: "base64",
- success: function(res) {
- let base64 = res.data;
- if (base64.indexOf(";base64,") == -1) {
- base64 = "data:image/jpeg;base64," + base64;
- }
- if (obj.success) obj.success(base64);
- if (obj.complete) obj.complete(base64);
- resolve(base64);
- },
- fail: function(err) {
- if (obj.fail) obj.fail(err);
- reject(err);
- },
- complete: obj.complete
- });
-
-
-
-
-
-
- plus.io.resolveLocalFileSystemURL(pubfn.getLocalFilePath(file.path), function(entry) {
- entry.file(function(file) {
- let fileReader = new plus.io.FileReader();
- fileReader.onload = function(data) {
- if (obj.success) obj.success(data.target.result);
- if (obj.complete) obj.complete(data.target.result);
- resolve(data.target.result);
- }
- fileReader.onerror = function(err) {
- if (obj.fail) obj.fail(err);
- reject(err);
- }
- fileReader.readAsDataURL(file)
- }, function(err) {
- if (obj.fail) obj.fail(err);
- reject(err);
- })
- }, function(err) {
- if (obj.fail) obj.fail(err);
- reject(err);
- })
-
- });
- };
- pubfn.base64ToFile = function(obj = {}) {
- let {
- base64 = "",
- filePath
- } = obj;
- let extName = base64.split(',')[0].match(/data\:\S+\/(\S+);/);
- if (extName) {
- extName = extName[1];
- } else {
- reject(new Error('base64 error'));
- }
- if (!filePath) {
- filePath = pubfn.random(32, "abcdefghijklmnopqrstuvwxyz0123456789") + '.' + extName;
- }
- let index = base64.indexOf("base64,");
- let base64Data = base64;
- if (index > -1) {
- base64Data = base64.substring(base64.indexOf("base64,") + 7);
- }
- let savePath;
- return new Promise(function(resolve, reject) {
-
- savePath = wx.env.USER_DATA_PATH + '/' + filePath;
- let fs = uni.getFileSystemManager();
- fs.writeFile({
- filePath: savePath,
- data: base64Data,
- encoding: "base64",
- success: function(res) {
- let file = {
- path: savePath,
- lastModifiedDate: new Date(),
- name: filePath
- };
- if (obj.success) obj.success(file);
- resolve(file);
- },
- fail: function(res) {
- if (obj.fail) obj.fail(res);
- reject(res);
- },
- complete: obj.complete
- });
-
-
- savePath = filePath;
- let blob = pubfn.base64toBlob(base64);
- let file = pubfn.blobToFile(blob, savePath);
- if (obj.success) obj.success(file);
- if (obj.complete) obj.complete(file);
- resolve(file);
-
-
- let fileName = filePath;
- let basePath = '_user_resources';
- let dirPath = 'vk_temp';
- savePath = basePath + '/' + dirPath + '/' + fileName;
- let bitmap = new plus.nativeObj.Bitmap(fileName);
- bitmap.loadBase64Data(base64, function() {
- bitmap.save(savePath, {}, function() {
- bitmap.clear();
- let file = {
- path: savePath,
- lastModifiedDate: new Date(),
- name: filePath
- };
- if (obj.success) obj.success(file);
- if (obj.complete) obj.complete(file);
- resolve(file);
- }, function(error) {
- bitmap.clear();
- if (obj.fail) obj.fail(error);
- reject(error);
- })
- }, function(error) {
- bitmap.clear();
- if (obj.fail) obj.fail(error);
- reject(error);
- })
-
- });
- };
- pubfn.base64toBlob = function(base64) {
- let arr = base64.split(',');
- let mime = arr[0].match(/:(.*?);/)[1];
- let bstr = atob(arr[1]);
- let n = bstr.length;
- let u8arr = new Uint8Array(n);
- while (n--) {
- u8arr[n] = bstr.charCodeAt(n);
- }
- return new Blob([u8arr], { type: mime });
- };
- pubfn.blobToFile = function(blob, fileName) {
- blob.lastModifiedDate = new Date();
- blob.name = fileName;
- blob.path = URL.createObjectURL(blob);
- return blob;
- };
- pubfn.requestSubscribeMessage = function(obj) {
-
- return uni.requestSubscribeMessage(obj);
-
- };
- pubfn.checkLogin = function(obj = {}) {
- let vk = uni.vk;
- let loginUrl = vk.getVuex("$app.config.login.url");
- try {
- let url;
- try {
- url = obj.url || vk.pubfn.getCurrentPageRoute();
- } catch (err) {
- url = vk.getVuex("$app.config.index.url") || "/pages/index/index";
- }
- vk.navigate.checkNeedLogin({
- url: url,
- success: function(res) {
- if (res.needLogin) {
-
- url = vk.pubfn.getPageFullPath(url);
- vk.navigate.originalPage = { url };
- if (obj.isOnLaunch) vk.navigate.isOnLaunchToLogin = true;
- uni.reLaunch({
- url: loginUrl,
- success: () => {
-
- setTimeout(() => {
- uni.hideHomeButton();
- }, 400);
-
- }
- });
- } else {
- vk.navigate.originalPage = null;
- }
- }
- });
- } catch (err) {
- console.error("catch", err);
- uni.reLaunch({
- url: loginUrl
- });
-
- uni.hideHomeButton();
-
- }
- };
- pubfn.getLocalFilePath = function(path) {
- if (path.indexOf('_www') === 0 || path.indexOf('_doc') === 0 || path.indexOf('_documents') === 0 || path.indexOf('_downloads') === 0) {
- return path
- }
- if (path.indexOf('file://') === 0) {
- return path
- }
- if (path.indexOf('/storage/emulated/0/') === 0) {
- return path
- }
- if (path.indexOf('/') === 0 && typeof plus !== "undefined") {
- let localFilePath = plus.io.convertAbsoluteFileSystem(path)
- if (localFilePath !== path) {
- return localFilePath
- } else {
- path = path.substr(1)
- }
- }
- return '_www/' + path
- };
- pubfn.getLocaleList = function() {
- let localeList = [
- { value: "zh-Hans", label: "简体中文" },
- { value: "zh-Hant", label: "繁體中文" },
- { value: "en", label: "English" }
- ];
- return localeList;
- };
- pubfn.getLocale = function() {
- let localeValue;
- if (typeof uni.getLocale === "function") {
- localeValue = uni.getLocale();
- } else {
- localeValue = "zh-Hans";
- }
- let localeObj = {
- "zh_CN": "zh-Hans",
- "zh_HK": "zh-Hant",
- "zh_MO": "zh-Hant",
- "zh_SG": "zh-Hans",
- "zh_TW": "zh-Hant",
- };
- if (localeObj[localeValue]) localeValue = localeObj[localeValue];
- return localeValue;
- };
- pubfn.getLocaleObject = function() {
- let value = pubfn.getLocale();
- let list = pubfn.getLocaleList();
- return pubfn.getListItem(list, "value", value);
- };
- pubfn.setLocale = function(...e) {
- return uni.setLocale(...e);
- };
- function biggerThan(v1, v2) {
- let v1Array = v1.split('.')
- let v2Array = v2.split('.')
- let update = false
- for (let index = 0; index < v2Array.length; index++) {
- let diff = v1Array[index] - v2Array[index]
- if (diff !== 0) {
- update = diff > 0
- break
- }
- }
- return update
- }
- export default pubfn;
|