12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207 |
- if(typeof jQuery === 'undefined') {
- throw new Error('this JavaScript requires jQuery')
- } +
- function($) {
-
- * QF = query flag
- * CC = css class
- */
- var
- CC_BRANCH_ITEM = "branch-item",
- QF_BRANCH_ITEM = ".branch-item > a",
- CC_TREE = "tree",
- QF_SELECT = ".select",
- CC_SELECT = "select",
- QF_HIDDEN = ".hidden",
- CC_HIDDEN = "hidden",
- QF_TEXT = ".text",
- CC_TEXT = "text",
- CC_FORM_ITEM = "form-item",
- QF_FORM_ITEM = ".form-item",
- CC_TRIM = "trim",
- CC_STRING = "string",
- CC_INT = "int",
- CC_BOOL = "bool",
- CC_FLOAT = "float",
- CC_SELECT_ITEM = "select-item",
- QF_SELECT_ITEM = ".select-item",
- CC_SELECT_CAPTION = "select-caption",
- QF_SELECT_CAPTION = ".select-caption",
- CC_READONLY = "readOnly",
- CC_SHOWONLY = "showOnly",
- QF_DROP_DOWN_CONTAINER = ".dd-ctn",
- CC_DROP_DOWN_CONTAINER = "dd-ctn",
- CC_DROP_DOWN_BACKGROUP = "dd-bg",
- QF_DROP_DOWN_BACKGROUP = ".dd-bg",
- CC_DROP_DOWN_HAND = "dd-hand",
- QF_DROP_DOWN_HAND = ".dd-hand",
- CC_DROP_DOWN_PANEL = "dd-drop",
- QF_DROP_DOWN_PANEL = ".dd-drop",
- CC_DROP_CLEAN = "dd-clean",
- QF_DROP_CLEAN = ".dd-clean",
- QF_OPEN = ".open",
- CC_OPEN = "open",
- CC_DISABLED = "disabled",
- QF_DISABLED = ".disabled :disabled";
-
- * AK = attribate key
- * DK = data key
- * EN = element name
- * TN = type name
- * CK = const data key
- *
- */
- var AK_DEF_VAL = "defVal",
- AK_PLACEHOLDER = "placeholder",
- AK_ID = "id",
- AK_NAME = "name",
- AK_DICT_CODE = "dictCode",
- AK_CODE = "code",
- AK_READONLY = "readonly",
- AK_REQUIRED = "required",
- EN_HEAD, EN_BASE = "base",
- EN_SCRIPT = "script",
- EN_INPUT = "input",
- TN_STRING = CC_STRING,
- TN_NUMBER = "number",
- TN_ARRAY = "array",
- TN_OBJ = "object",
- TN_FNC = "function",
- TN_BOOL = "boolean",
- CK_TRUE = true,
- CK_FALSE = false,
- CK_UNDEF = undefined,
- CK_YYYYMMDD = "YYYYMMDD",
- CK_YYYY = "YYYY",
- CK_MM = "MM",
- CK_YYYYMM = "YYYYMM",
- DK_FORM_VALUE = "form_value";
-
- * TK = template key
- */
- var TK_TEXT_INPUT = "<input type='text' />",
- TK_SPAN = "<span></span>",
- TK_UL = "<ul></ul>",
- TK_LI = "<li></li>",
- TK_ICON = "<i class='icon'></i>",
- TK_DD_DROP = "<div class='dd-drop'></div>",
- TK_DD_HAND = "<a class='dd-hand' href='javascript:;'><i class='icon'></i></a>",
- TK_HIDDEN_INPUT = "<input type='hidden' />",
- doc = document,
- head = doc.head || doc.getElementsByTagName(EN_HEAD)[0] || doc.documentElement,
- baseElement = head.getElementsByTagName(EN_BASE)[0],
- noop = function() {},
- body = $("body"),
- returnFalse = function() {
- return CK_FALSE
- },
- returnTrue = function() {
- return CK_TRUE
- },
- _infoDiv = $("#g_info"),
- _errDiv = $("#g_err"),
- _warnDiv = $("#g_warn"),
- _msgDiv = $("#g_msg"),
- _loadingDiv = $("#g_loading"),
- _g_css_ref = 1,
- _g_script_ref = 1,
- _g_err_msg = {
- "1": function() {
- window.location.href = "login.html";
- }
- },
- _g_layer_curr = { index: 5000000, remove: noop, css: noop },
- layer_remove = function() {
- this.shade.remove();
- this.ctn.empty();
- this.ctn.remove();
- this.prev.css("display", "block");
- _g_layer_curr = this.prev;
- },
- _g_loadRef = 0;
- var util = {
- createModalLayer: function(p) {
- var inx = _g_layer_curr.index + 2;
- var ly = { index: inx, remove: layer_remove, prev: _g_layer_curr };
- ly.shade = $("<div class='layer-shade layer-" + inx + "' style='z-index:" + inx + ";'></div>").appendTo(body);
- ++inx;
- ly.ctn = $("<div class='layer-ctn layer-" + inx + "' style='z-index:" + inx + ";'></div>").appendTo(body);
- ly.prev = _g_layer_curr;
- _g_layer_curr = ly;
- if(p) {
- if(typeof p === "string") {
- ly.ctn.html(p);
- } else if(typeof p == "function") {
- p.call(ly.ctn);
- } else if(p.jquery) {
- ly.ctn.append(p);
- }
- }
- return ly;
- },
- closeModalLayer: function() {
- _g_layer_curr.remove();
- },
-
-
-
-
-
- error: function(cnt, timeInternal) {
- var $errCtn = $("<div class='err-ctn'><i class='icon click-hide-parent'></i></div>").appendTo(_errDiv);
- $(TK_SPAN).appendTo($errCtn).html(cnt);
- setTimeout(function() {
- $errCtn.remove()
- }, timeInternal ? timeInternal : 10000);
- },
-
- warn: function(cnt, timeInternal) {
- var $warnCtn = $("<div class='warn-ctn'><i class='icon click-hide-parent'></i></div>").appendTo(_warnDiv);
- $(TK_SPAN).appendTo($warnCtn).html(cnt);
- setTimeout(function() {
- $warnCtn.remove()
- }, timeInternal ? timeInternal : 3000);
- },
-
- msg: function(cnt, timeInternal) {
- var $msgCtn = $("<div class='msg-ctn'><i class='icon click-hide-parent'></i></div>").appendTo(_msgDiv);
- $(TK_SPAN).appendTo($msgCtn).html(cnt);
- setTimeout(function() {
- $msgCtn.remove()
- }, timeInternal ? timeInternal : 2000);
- },
-
- showLoading: function() {
- ++_g_loadRef;
- if(_g_loadRef === 1) {
- _loadingDiv.show()
- }
- },
-
- hideLoading: function() {
- --_g_loadRef;
- if(_g_loadRef === 0) {
- _loadingDiv.hide()
- }
- },
-
- * 弹出提示信息,不会自动消失 parent is body z - index 5000000 - 9999997
- */
- alertMsg: function(title, content,hand) {
- if(content){
- if($.isFunction(content)){
- hand = content;
- content = title;
- title = "提示";
- }
- }else{
- content = title;
- title = "提示";
- }
- hand=hand || noop;
- var ly = util.createModalLayer('<div class="modal-dialog"><div class="modal-content"><div class="modal-header"><h4 class="modal-title"></h4></div><div class="modal-body"><p></p></div><div class="modal-footer"><button type="button" class="btn">关闭</button></div></div></div>');
- ly.ctn.find(".modal-title").text(title);
- $content = ly.ctn.find("p").text(content);
- ly.ctn.find("button").on("click", function() {
- util.closeModalLayer();
- hand();
- });
- },
-
- *弹出确认信息,不会自动消失 parent is body z - index 1000000 - 4999999
- * btns is Array
- * btns like [{catpion:"button caption",handler:function(){}},...]
- */
- boxMsg: function(obj) {
- var ly = util.createModalLayer('<div class="modal-dialog"><div class="modal-content"><div class="modal-header"><h4 class="modal-title"></h4></div><div class="modal-body"><p></p></div><div class="modal-footer"></div></div></div>');
- ly.ctn.find(".modal-title").text(obj.title || "确认");
- ly.ctn.find("p").text(obj.content);
- var m_footer = ly.ctn.find(".modal-footer"),
- btnH = function(btn) {
- var $btn = $('<button type="button" class="btn"></button>').appendTo(m_footer);
- var caption = btn.caption || "未命名的",
- handler = btn.hand || noop;
- $btn.text(caption);
- $btn.on("click", function() {
- util.closeModalLayer();
- handler();
- });
- };
- for(var i = 0; i < obj.btns.length; ++i) {
- btnH(obj.btns[i]);
- }
- },
-
- *弹出确认信息,不会自动消失 parent is body z - index 1000000 - 4999999
- * == Util.boxMsg(cnt,[{caption:"确定",handler:yesHandler},{caption:"取消",handler:noHandler}]);
- */
- confirmMsg: function(cnt, yesHandler, noHandler) {},
- loadScript: function(url) {
- var node = doc.createElement(EN_SCRIPT);
- node.async = CK_TRUE;
- node.src = url;
- node.charset = "UTF-8";
- var supportOnload = "onload" in node;
- util.showLoading();
- if(supportOnload) {
-
- node.onload = function() {
- node.onerror = null;
- node.onload = null;
- util.hideLoading();
- };
-
- node.onerror = function() {
- util.error("load script error:" + url);
- node.onload = null;
- node.onerror = null;
- util.hideLoading();
- };
- } else {
-
- node.onreadystatechange = function() {
- if(/loaded|complete/.test(node.readyState)) {
- node.onreadystatechange = null;
- util.msg("load script over:" + url);
- util.hideLoading();
- }
- };
- }
- baseElement ?
- head.insertBefore(node, baseElement) :
- head.appendChild(node);
- },
- loadCSS: function(href) {
- var link = doc.createElement('link');
- link.rel = 'stylesheet';
- link.href = href;
- link.media = 'all';
- var id = "g_css_" + _g_css_ref;
- ++_g_css_ref;
- link.id = id;
- head.appendChild(link);
- return id;
- },
- removeCSS: function(id) {
- var node = doc.getElementById(id);
- if(node) {
- head.removeChild(node);
- }
- },
- regErrorHandler: function(key, handler) {
- _g_err_msg[key] = handler;
- },
- ajax: function(method, pUrl, pData, sh, eh) {
- util.showLoading();
- $.ajax({
- type: method,
- url: pUrl,
-
- traditional:true,
- data: pData,
- contentType: method == "put" ? "application/json" : "application/x-www-form-urlencoded",
- }).done(function(rd) {
- if(rd.success) {
- sh(rd.data);
- } else {
- if(eh) {
- var eht = $.type(eh);
- if(eht == TN_FNC) {
- eh(rd.code, rd.msg, rd.detailMsg);
- } else if(eht == TN_BOOL) {
- if(eht) {
- util.error("load resource error:" + pUrl + "\n" + (rd.detailMsg ? rd.detailMsg : ""));
- }
- } else {
- var msg = eh["" + rd.code] || _g_err_msg["" + rd.code];
- if(msg) {
- if($.type(msg) == TN_FNC) {
- msg(rd.code, rd.msg, rd.detailMsg);
- } else {
- util.error(msg ? msg : "未定义的错误");
- }
- }
- }
- }
- }
- }).fail(function(jqXHR, textStatus, errorThrown) {
- util.msg("load resouce[" + pUrl + "] error:" + textStatus);
- }).always(util.hideLoading);
- },
- get: function(url, data, sh, eh) {
- util.ajax("get", url, data, sh, eh);
- },
- post: function(url, data, sh, eh) {
- util.ajax("post", url, data, sh, eh);
- },
- put: function(url, data, sh, eh) {
- if(data && ("string"!=$.type(data))){
- data =JSON.stringify(data);
- }
- util.ajax("put", url, data, sh, eh);
- },
- del: function(url, sh, eh) {
- util.ajax("post", url, null, sh, eh);
- },
- };
-
-
-
- var dd_clearMenus = function(e) {
- if(e && e.which === 3) return
- $(QF_DROP_DOWN_BACKGROUP).remove()
- $(QF_DROP_DOWN_CONTAINER).each(function() {
- var $this = $(this)
- var relatedTarget = {
- relatedTarget: this
- }
- if(!$this.hasClass(CC_OPEN)) return
- $this.trigger(evt = $.Event('hide.jr.dropdown', relatedTarget))
- if(evt.isDefaultPrevented()) return
- $this.removeClass(CC_OPEN).trigger('hidden.jr.dropdown', relatedTarget)
- if(!$this.hasClass(CC_DROP_CLEAN)) return
- $this.find(QF_DROP_DOWN_PANEL).remove();
- });
- },
- dd_toggle = function(e) {
- var $this = $(this);
- var $ddc = $this.parents(QF_DROP_DOWN_CONTAINER);
- if(!$ddc.length) return;
- if($ddc.is(QF_DISABLED)) return;
- var isActive = $ddc.hasClass(CC_OPEN);
- dd_clearMenus();
- if($ddc.hasClass(CC_FORM_ITEM) && ($ddc.hasClass(CC_READONLY) || $ddc.hasClass(CC_SHOWONLY))) return;
- if(!isActive) {
- var relatedTarget = {
- relatedTarget: this
- }
- $ddc.trigger(e = $.Event('show.jr.dropdown', relatedTarget))
- if(e.isDefaultPrevented()) return
- $ddc.toggleClass(CC_OPEN).trigger('shown.jr.dropdown', relatedTarget)
- }
- return CK_FALSE
- },
-
-
- dict_dictCache = {},
- dict_dictHandleCache = {},
- dict_dictGuid = 1,
- dict_handerArray = "handlers",
- dict_baseUri = "/ajax/sys/dict/item/",
- dict_load = function(dictCode) {
- util.showLoading();
- $.ajax({ url: dict_baseUri + dictCode, type: "get", dataType: "json" }).done(function(data) {
- util.hideLoading();
- if(data.success) {
- data = data.data;
- dict_dictCache[dictCode] = data;
- var handlers = dict_dictHandleCache[dictCode];
- if(handlers && handlers.length) {
- for(var i = 0; i < handlers.length; ++i) {
- handlers[i](data);
- }
- delete dict_dictHandleCache[dictCode];
- }
- } else {
- var m = "load dict[" + dictCode + "] error";
- util.error(m);
- }
- }).fail(function() {
- util.hideLoading();
- var m = "load dict[" + dictCode + "] error";
- util.error(m);
- });
- },
- dict_apply = function(dictCode, handler) {
- var dict = dict_dictCache[dictCode];
- if(!dict) {
- var hs = dict_dictHandleCache[dictCode];
- if(!hs) {
- dict_dictHandleCache[dictCode] = hs = [];
- dict_load(dictCode);
- }
- hs.push(handler);
- } else {
- handler(dict);
- }
- },
- dict_refresh = function(dictCode, handler) {
- if(handler) {
- var hs = dict_dictHandleCache[dictCode];
- if(!hs) {
- dict_dictHandlerCache[dictCode] = hs = [];
- }
- hs.push(handler);
- }
- var dict = dict_dictCache[dictCode];
- if(dict) {
- delete dict_dictCache[dictCode];
- util.loadScript(dict_baseUri + dictCode + ".js");
- }
- },
-
- * content:[{code:"12345",caption:"",shortCode:"",enabled:true,children:[{code:"",catpion:"",enabled:true,children:[]]}},....]
- *
- */
- dict_define = function(dictCode, content, dynamic) {
- if(!dynamic) {
- dict_dictCache[dictCode] = dict_dictCache[dictCode] || content;
- }
- var handlers = dict_dictHandleCache[dictCode];
- if(handlers && handlers.length) {
- for(var i = 0; i < handlers.length; ++i) {
- handlers[i](content);
- }
- delete dict_dictHandleCache[dictCode];
- }
- },
- dict_get = function(dict, code) {
- if(code) {
- for(var i = 0; i < dict.length; ++i) {
- var item = dict[i];
- if(code === item.code) {
- return item.caption;
- } else if(item.children && item.children.length) {
- var ret = dict_get(item.children, code);
- if(ret) return ret;
- }
- }
- }
- return CK_FALSE;
- },
- dict_display = function() {
- $(".do-dict-display").each(function() {
- var $this = $(this),
- dictCode = $this.attr("dict");
- if(dictCode) {
- dict_apply(dictCode, function(dict) {
- var dh = dict_get(dict, $this.attr("code"));
- $this.html(dh ? dh : "");
- $this.removeClass("do-dict-display");
- });
- }
- });
- },
-
- Jhidden = function(ele) {
- if($.type(ele) == CC_STRING) {
- this.name = ele;
- } else {
- this.name = ele.attr(AK_NAME) || ele.attr(AK_ID);
- if(!this.name) {
- throw "Attribute[name] is invalid";
- }
- ele.data(DK_FORM_VALUE, this);
- }
- },
- Jtext = function(ele) {
- this.name = ele.attr(AK_NAME) || ele.attr(AK_ID);
- if(!this.name) {
- throw "Attribute[name] is invalid";
- }
- this.trimed = ele.hasClass(CC_TRIM);
- this.readOnly = ele.hasClass(CC_READONLY);
- this.showOnly = ele.hasClass(CC_SHOWONLY);
- this.ele = ele;
- this.dv = ele.attr(AK_DEF_VAL) || "";
- this.dt = 0;
- if(ele.hasClass(CC_INT)) {
- this.dt = 1;
- } else if(ele.hasClass(CC_FLOAT)) {
- this.dt = 2;
- }
- ele.data(DK_FORM_VALUE, this);
- },
- Jtextarea = function(ele) {
- this.name = ele.attr(AK_NAME) || ele.attr(AK_ID);
- if(!this.name) {
- throw "Attribute[name] is invalid";
- }
- this.trimed = ele.hasClass(CC_TRIM);
- this.readOnly = ele.hasClass(CC_READONLY);
- this.showOnly = ele.hasClass(CC_SHOWONLY);
- this.ele = ele;
- this.dv = ele.attr(AK_DEF_VAL) || "";
- ele.data(DK_FORM_VALUE, this);
- },
- Jselect = function(ele) {
- this.name = ele.attr(AK_NAME) || ele.attr(AK_ID);
- if(!this.name) {
- throw "Attribute[name] is invalid";
- }
- this.readOnly = ele.hasClass(CC_READONLY);
- this.showOnly = ele.hasClass(CC_SHOWONLY);
- this.dictCode = ele.attr(AK_DICT_CODE);
- this.showInvalidItem = ele.attr("show-invalid-item");
- this.ele = ele;
- this.dv = ele.attr(AK_DEF_VAL) || "";
- this.isBool = ele.hasClass(CC_BOOL);
- this.isTree = ele.hasClass(CC_TREE);
- ele.data(DK_FORM_VALUE, this);
- },
- select_display = function(select, code, caption) {
- select.codeEle.val(code ? code : "");
- select.captionEle.text(code ? caption : "");
- },
- select_change = function(select, code) {
- if(select.codeEle.val() !== code) {
- select.codeEle.val(code);
- dict_apply(select.dictCode, function(dc) {
- var cap = code ? dict_get(dc, code) : "";
- select_display(select, cap ? code : null, cap);
- });
- }
- },
- Jmselect = function(ele) {
- this.name = ele.attr(AK_NAME) || ele.attr(AK_ID);
- if(!this.name) {
- throw "Attribute[name] is invalid";
- }
- this.readOnly = ele.hasClass(CC_READONLY);
- this.showOnly = ele.hasClass(CC_SHOWONLY);
- this.dictCode = ele.attr(AK_DICT_CODE);
- this.showInvalidItem = ele.attr("show-invalid-item");
- this.ele = ele;
- this.dv = [];
- var defV = ele.attr(AK_DEF_VAL);
- if(defV && defV != "[]") {
- this.dv = JSON.parse(defV);
- }
- this.isTree = ele.hasClass(CC_TREE);
- ele.data(DK_FORM_VALUE, this);
- },
- mselect_remove = function(e) {
- $(this).parent().remove();
- },
- mselect_add = function(mselect, code, init_add) {
- var found = false;
- if(!init_add) {
- mselect.captionEle.find(QF_SELECT_CAPTION).each(function() {
- if($(this).find(EN_INPUT).val() == code) {
- found = true;
- return false;
- }
- });
- }
- if(!found) {
- var $li = $("<li><div>x</div></li>");
- $li.addClass(CC_SELECT_CAPTION).append($(TK_HIDDEN_INPUT).val(code)).appendTo(mselect.captionEle);
- if((!mselect.readOnly) && (!mselect.showOnly)) {
- $li.children('div').on("click.jr_mselect_remove_api", mselect_remove);
- }
- dict_apply(mselect.dictCode, function(dict) {
- var cp = dict_get(dict, code);
- if(cp) {
- $li.append($(TK_SPAN).html(cp));
- } else {
- $li.append($("<span style='color:red;'></span>").html("error"));
- }
- });
- return true;
- }
- },
- mselect_change = function(mselect, value) {
- mselect.captionEle.empty();
- if(value && value.length) {
- for(var i = 0; i < value.length; ++i) {
- var cv = value[i];
- if(cv) {
- mselect_add(mselect, cv, true);
- }
- }
- }
- },
- select_buildListDrop = function(dict) {
- var $ul = $(TK_UL);
- for(var i = 0; i < dict.length; ++i) {
- var item = dict[i];
- if(item.enabled || this.showInvalidItem) {
- var $li = $("<li class='select-item'></li>");
- $li.attr(AK_CODE, item.code);
- $li.text(item.caption);
- $li.appendTo($ul);
- }
- }
- $ul.find(QF_SELECT_ITEM).on("click.jr_select_api", select_selectItem);
- return $ul;
- },
- select_buildTreeDrop = function(dict) {
- var $ul = $(TK_UL);
- for(var i = 0; i < dict.length; ++i) {
- var item = dict[i];
- if(item.enabled || this.showInvalidItem) {
- var $li = $(TK_LI);
- if(item.children && item.children.length) {
- var $ti = $("<a href='javascript:void(0)'><i class='icon'></a>");
- $ti.attr(AK_CODE, item.code).append($(TK_SPAN).text(item.caption));
- $li.addClass(CC_BRANCH_ITEM).append($ti).append(select_buildTreeDrop.call(this, item.children));
- } else {
- $li.addClass(CC_SELECT_ITEM).attr(AK_CODE, item.code).text(item.caption);
- }
- $li.appendTo($ul);
- }
- }
- $ul.find(QF_SELECT_ITEM).on("click.jr_select_api", select_selectItem);
- $ul.find(QF_BRANCH_ITEM).on("click.jr_select_api", select_branchItem);
- return $ul;
- },
- select_selectItem = function(e) {
- var $this = $(this);
- var select = $this.parents(QF_FORM_ITEM);
- if(select && select.length) {
- select = $(select).data(DK_FORM_VALUE);
- if(select && select.selectItem) {
- select.selectItem($this, e);
- }
- }
- },
- select_branchItem = function(evt) {
- $(this).toggleClass(CC_OPEN);
- evt.stopPropagation();
- },
- date_year = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
- date_leapYear = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
- date_isleap = function(y) {
- return(y % 4 === 0 && y % 100 !== 0) || y % 400 === 0;
- },
- date_validDate = function(v) {
- if(v.length != 8) return false;
- for(var i = 0; i < 8; ++i) {
- var c = v.charAt(i);
- if(c > '9' || c < '0') return false;
- }
- var m = parseInt(v.substring(4, 6)) - 1;
- if(m < 0 || m > 11) return false;
- var d = parseInt(v.substring(6, 8));
- var ym = date_isleap(parseInt(v.substring(0, 4))) ? date_leapYear : date_year;
- if(d < 1 || d > ym[m]) return false;
- return true;
- },
- date_fmt = function(v) {
- return(v > 9 ? "" : "0") + v;
- },
- date_MS_IN_DAY = 24 * 60 * 60 * 1000,
- date_incDay = function(d) {
- return new Date(d.getTime() + date_MS_IN_DAY);
- },
- date_decDay = function(d) {
- return new Date(d.getTime() - date_MS_IN_DAY);
- },
- date_dayFmt = function(d) {
- return "" + d.getFullYear() + date_fmt(d.getMonth() + 1) + date_fmt(d.getDate());
- },
- date_now = function() {
- var d = new Date();
- return "" + d.getFullYear() + date_fmt(d.getMonth() + 1) + date_fmt(d.getDate()) + date_fmt(d.getHours()) + date_fmt(d.getMinutes()) + date_fmt(d.getSeconds());
- },
- date_change = function(date, val) {
- if(val) {
- if(val == "current") {
- val = date_now().substr(0, 8);
- }
- var dt = val.substring(0, 4) + "-" + val.substring(4, 6) + "-" + val.substring(6, 8);
- date.captionEle.text(dt);
- date.valEle.val(val);
- } else {
- date.valEle.val("");
- date.captionEle.text(date.nullVal ? date.nullVal : "");
- }
- },
- Jdate = function(ele) {
- this.name = ele.attr(AK_NAME) || ele.attr(AK_ID);
- if(!this.name) {
- throw "Attribute[name] is invalid";
- }
- this.readOnly = ele.hasClass(CC_READONLY);
- this.showOnly = ele.hasClass(CC_SHOWONLY);
- this.ele = ele;
- this.dv = ele.attr(AK_DEF_VAL);
- this.nullVal = ele.attr("nullVal");
- ele.data(DK_FORM_VALUE, this);
- },
- datetime_change = function(date, val) {
- if(val) {
- if(val == "current") {
- val = date_now();
- }
- var dt = val.sustring(0, 4) + "-" + val.substring(4, 6) + "-" + val.substring(6, 8) + " " + val.substring(8, 10) + ":" + val.substring(10, 12) + ":" + val.substring(12);
- date.captionEle.text(dt);
- date.valEle.val(val);
- } else {
- date.valEle.val("");
- date.captionEle.text(date.nullVal ? date.nullVal : "");
- }
- },
- Jdatetime = function(ele) {
- this.name = ele.attr(AK_NAME) || ele.attr(AK_ID);
- if(!this.name) {
- throw "Attribute[name] is invalid";
- }
- this.readOnly = ele.hasClass(CC_READONLY);
- this.showOnly = ele.hasClass(CC_SHOWONLY);
- this.ele = ele;
- this.dv = ele.attr(AK_DEF_VAL);
- this.nullVal = ele.attr("nullVal");
- ele.data(DK_FORM_VALUE, this);
- },
- FORM_ITEM_CREATER = [Jhidden, Jtext, Jselect, Jmselect, Jdate, Jdatetime, Jtextarea],
- serialize = function(obj, name, val, r) {
- var ret = r || "";
- var tn = $.type(val);
- if(tn == TN_BOOL) {
- ret = ret + name + "=" + (val ? "1" : "0") + "&";
- } else if(tn == TN_NUMBER) {
- ret = ret + name + "=" + val + "&";
- } else if(tn == TN_STRING) {
- if(val)
- ret = ret + name + "=" + encodeURIComponent(val) + "&";
- } else if(tn == TN_FNC) {
- ret = serialize(obj, name, val.call(obj), ret)
- } else if(tn == TN_ARRAY) {
- for(var i = 0; i < val.length; ++i) {
- ret = serialize(obj, name, val[i], ret);
- }
- } else if(tn == TN_OBJ) {
- ret = ret + name + "=" + encodeURIComponent(JSON.stringify(val)) + "&";
- }
- return ret;
- },
- g_form_uploader_file_ref = 1,
- upload_remove = function(form) {
- form.addClass("hide");
- setTimeout(function() { form.remove(); }, 1000);
- },
- upload_create = function(uploader) {
- var form, $form, finput, $file;
- form = doc.createElement("form");
- form.setAttribute("enctype", "multipart/form-data");
- form.setAttribute("class", "upload-form");
- form.setAttribute("testRef", "" + (new Date()).getTime());
- finput = doc.createElement("input");
- finput.setAttribute("type", "file");
- finput.setAttribute("name", "filename");
- if(uploader.accept) finput.setAttribute("accept", uploader.accept);
- form.appendChild(finput);
- $form = $(form);
- $file = $(finput);
- $file.on("change", function() {
- console.log("entry file change")
- var files = finput.files,
- file, fsize, xhr, formData, eobj, state;
- console.log("files.len=" + files.length);
- if(files.length) {
- file = files[0];
- fsize = file.size;
- if(uploader.maxSize && uploader.maxSize < fsize) {
- util.error("上传文件太大[size > " + fsize + "]");
- return;
- }
- $file.off("change");
- upload_remove($form);
- upload_create(uploader);
- var over = function() {
- xhr.onerror = null;
- xhr.onload = null;
- xhr.ontimeout = null;
- xhr.onabort = null;
- if(xhr.upload) xhr.upload.onprogress = null;
- },
- af = function() {
- if(!state) {
- xhr.abort();
- raiseError("abort");
- }
- },
- eContext = { name: file.name, size: file.size, type: file.type, abort: af },
- raiseError = function(er, data) {
- if(!state) {
- over();
- state = er;
- if(uploader.fail) uploader.fail.call(eContext, er, data);
- }
- },
- formData = new FormData(form);
- xhr = new XMLHttpRequest();
- xhr.onerror = function() {
- raiseError("error");
- };
- xhr.onabort = function() {
- raiseError("abort");
- };
- xhr.ontimeout = function() {
- raiseError("timeout");
- };
- xhr.onload = function() {
- if(!state) {
- if(xhr.status == 200) {
- var ro, rs = xhr.responseText;
- if(rs) {
- try {
- ro = JSON.parse(rs);
- } catch(err) {
- raiseError("parse", err);
- }
- if(ro.success) {
- over();
- state = "done";
- if(uploader.done) uploader.done.call(eContext, ro.data);
- } else {
- raiseError("logic", ro);
- }
- } else {
- raiseError("emptyResponseText");
- }
- } else {
- raiseError("invalidHttpStatus", xhr.statusText);
- }
- }
- };
- if(uploader.start) uploader.start.call(eContext);
- xhr.open("POST", uploader.uri);
- if(xhr.upload) xhr.upload.onprogress = function(event) {
- if(event.lengthComputable && uploader.notity) {
- uploader.notity.call(eContext, event.total, event.loaded);
- }
- };
- if(uploader.timeout) {
- try {
- xhr.timeout = uploader.timeout;
- } catch(er) {
- setTimeout(function() {
- raiseError("timeout");
- }, uploader.timeout);
- }
- }
- xhr.send(formData);
- }
- });
- $form.appendTo(uploader.ele);
- },
- upload_def_fail_hanler = function(etype, ep) {
- util.error("upload error[" + type + "]:" + (ep ? JSON.stringify(ep) : ""));
- },
- Jupload = function(pele) {
- this.ele = pele;
- console.log(pele)
- this.maxSize = parseInt(pele.attr("fileMaxSize") || "1048576");
- this.accept = pele.attr("accept");
- this.uri = pele.attr("uri");
- this.fail = upload_def_fail_hanler;
- pele.data(DK_FORM_VALUE, this);
- },
- Jform = function(ele) {
- this.items = {};
- var that = this;
- ele.find(QF_FORM_ITEM).each(function() {
- var $this = $(this);
- for(var i = 0; i < FORM_ITEM_CREATER.length; ++i) {
- var item = FORM_ITEM_CREATER[i].build($this);
- if(item) {
- that.items[item.name] = item;
- break;
- }
- }
- });
- },
- UploadPlugin = function(options) {
- if(this.length) {
- var ele = $(this[0]);
- var ret = ele.data(DK_FORM_VALUE);
- if(!ret) {
- ret = new Jupload(ele);
- if(options) {
- $.extend(ret, options);
- }
- upload_create(ret);
- }
- return ret;
- }
- },
- FormPlugin = function(val) {
- if(this.length) {
- var form = $(this[0]);
- var ret = form.data(DK_FORM_VALUE);
- if(!ret) {
- ret = new Jform(form);
- for(var key in ret.items) {
- ret.items[key].render();
- }
- if(val) {
- ret.init(val);
- }
- form.data(DK_FORM_VALUE, ret);
- }
- return ret;
- }
- },
- _version = "1.1";
- util.dictDisplay = dict_display;
- Jhidden.build = function(ele) {
- return ele.hasClass(CC_HIDDEN) ? new Jhidden(ele) : CK_FALSE;
- };
- Jtext.build = function(ele) {
- return ele.hasClass(CC_TEXT) ? new Jtext(ele) : CK_FALSE;
- };
- Jtextarea.build = function(ele) {
- return ele.hasClass("textarea") ? new Jtextarea(ele) : CK_FALSE;
- }
- Jselect.build = function(ele) {
- return ele.hasClass(CC_SELECT) ? new Jselect(ele) : CK_FALSE;
- };
- Jmselect.build = function(ele) {
- return ele.hasClass("mselect") ? new Jmselect(ele) : CK_FALSE;
- };
- Jdate.build = function(ele) {
- return ele.hasClass("date") ? new Jdate(ele) : CK_FALSE;
- };
- Jdatetime.build = function(ele) {
- return ele.hasClass("datetime") ? new Jdatetime(ele) : CK_FALSE;
- };
- $.extend(Jhidden.prototype, {
- val: function(val) {
- if(val) {
- this.value = val;
- } else {
- return this.value;
- }
- },
- reset: function() {
- return this.value = this.dv;
- },
- render: noop,
- validate: function() {
- return CK_TRUE
- },
- setDefaultValue: function(value) {
- this.dv = value;
- },
- });
- $.extend(Jtext.prototype, {
- render: function() {
- this.ele.empty();
- if(this.showOnly) {
- this.ele.html("");
- } else {
- this.valEle = $(TK_TEXT_INPUT);
- if(this.ele.hasClass("password")) {
- this.valEle.attr("type", "password");
- }
- var tmp = this.ele.attr(AK_PLACEHOLDER);
- if(tmp) this.valEle.attr(AK_PLACEHOLDER, tmp);
- if(this.readOnly) this.valEle.prop(AK_READONLY, AK_READONLY);
- this.valEle.appendTo(this.ele);
- }
- this.val(this.dv);
- },
- val: function(val) {
- if(arguments.length) {
- var ct = (val === null ? "" : ("" + val));
- this.showOnly ? this.ele.text(ct) : this.valEle.val(ct);
- } else if(!this.isShowOnly) {
- var v = this.valEle.val();
- v = this.trimed ? $.trim(v) : v;
- return this.dt == 0 ? v : (v ? (this.dt == 1 ? parseInt(v) : parseFloat(v)) : 0);
- }
- },
- reset: function() {
- if(arguments.length) {
- this.dv = arguments[0];
- } else {
- this.val(this.dv);
- }
- },
- validate: function() {
-
-
-
-
-
- return true;
- }
- });
- $.extend(Jtextarea.prototype, {
- render: function() {
- this.ele.empty();
- if(this.showOnly) {
- this.ele.html("");
- } else {
- this.valEle = $("<textarea></textarea>");
- this.valEle.attr("rows", this.ele.attr("rows") || "3");
- this.valEle.attr("cols", this.ele.attr("cols") || "20");
- var tmp = this.ele.attr(AK_PLACEHOLDER);
- if(tmp) this.valEle.attr(AK_PLACEHOLDER, tmp);
- if(this.readOnly) this.valEle.prop(AK_READONLY, AK_READONLY);
- this.valEle.appendTo(this.ele);
- }
- this.val(this.dv);
- },
- val: function(val) {
- if(arguments.length) {
- var ct = (val === null ? "" : ("" + val));
- this.showOnly ? this.ele.text(ct) : this.valEle.val(ct);
- } else if(!this.isShowOnly) {
- var v = this.valEle.val();
- return this.trimed ? $.trim(v) : v;
- }
- },
- reset: function() {
- if(arguments.length) {
- this.dv = arguments[0];
- } else {
- this.val(this.dv);
- }
- },
- validate: function() {
-
-
-
-
-
- return true;
- }
- });
- $.extend(Jselect.prototype, {
- render: function() {
- var that = this;
- this.ele.empty();
- if(!this.ele.hasClass(CC_DROP_DOWN_CONTAINER)) this.ele.addClass(CC_DROP_DOWN_CONTAINER);
- this.codeEle = $(TK_HIDDEN_INPUT).appendTo(this.ele);
- this.captionEle = $(TK_SPAN).appendTo($(TK_DD_HAND).appendTo(this.ele));
- var closeIcon = $("<i class='close'></i>");
- this.captionEle.parent().append(closeIcon);
-
- select_change(this, this.dv);
- if((!this.readOnly) && (!this.showOnly)) {
- this.selectItemEle = $(TK_DD_DROP).append($("<div class='select-loading'></div>"));
- this.selectItemEle.appendTo(this.ele);
- dict_apply(this.dictCode, function(dd) {
- that.selectItemEle.empty();
- if(that.dropItem) {
- that.dropItem.call(that, dd);
- } else {
- that.selectItemEle.append((that.isTree ? select_buildTreeDrop : select_buildListDrop).call(that, dd));
- }
- });
- }
- closeIcon.on("click", function() {
- that.codeEle.val("");
- that.captionEle.text("");
- });
- },
- val: function(val) {
- if(arguments.length) {
- select_change(this, this.isBool ? (true===val ? "1" :(false===val? "0":"")) : (val ? val : ""));
- } else if(!this.isShowOnly) {
- var v = this.codeEle.val();
- return this.isBool ? (v ? (v==='1') : CK_UNDEF) : (v ? v : CK_UNDEF);
- }
- },
- reset: function() {
- if(arguments.length) {
- var val = arguments[0];
- this.dv = this.isBool ? (val ? "1" : "0") : (val ? val : "")
- } else select_change(this, this.dv);
- },
- validate: function() {
- return true;
-
-
-
-
- },
- selectItem: function($item, evt) {
- var val = $item.attr(AK_CODE);
- select_change(this, val ? val : "");
- }
- });
- $.extend(Jmselect.prototype, {
- render: function() {
- this.ele.empty();
- if(!this.ele.hasClass(CC_DROP_DOWN_CONTAINER)) this.ele.addClass(CC_DROP_DOWN_CONTAINER);
- this.captionEle = $(TK_UL).appendTo($(TK_DD_HAND).appendTo(this.ele));
- mselect_change(this, this.dv);
- if((!this.readOnly) && (!this.showOnly)) {
- this.selectItemEle = $(TK_DD_DROP).append($("<div class='select-loading'></div>"));
- this.selectItemEle.appendTo(this.ele);
- dict_apply(this.dictCode, (function(that) {
- return function(dd) {
- that.selectItemEle.empty();
- if(that.dropItem) {
- that.dropItem.call(that, dd);
- } else {
- that.selectItemEle.append((that.isTree ? select_buildTreeDrop : select_buildListDrop).call(that, dd));
- }
- }
- })(this));
- }
- },
- val: function(val) {
- if(arguments.length) {
- mselect_change(this, val);
- return this;
- } else if(!this.isShowOnly) {
- var ret = [];
- this.captionEle.find(EN_INPUT).each(function() {
- ret.push($(this).val);
- })
- return ret;
- }
- },
- reset: function() {
- if(arguments.length) {
- var val = arguments[0];
- this.dv = val ? val : [];
- } else mselect_change(this, this.dv);
- },
- validate: returnTrue,
- selectItem: function($item, evt) {
- if(!mselect_add(this, $item.attr(AK_CODE)))
- evt.stopPropagation();
- }
- });
- $.extend(Jdate.prototype, {
- render: function() {
- this.ele.empty();
- if(!this.ele.hasClass(CC_DROP_DOWN_CONTAINER)) this.ele.addClass(CC_DROP_DOWN_CONTAINER);
- if(!this.ele.hasClass(CC_DROP_CLEAN)) this.ele.addClass(CC_DROP_CLEAN);
- this.valEle = $(TK_HIDDEN_INPUT);
- this.captionEle = $(TK_SPAN);
- var closeIcon = $("<i class='close'></i>");
- $(TK_DD_HAND).append(this.valEle).append(this.captionEle).append(closeIcon).appendTo(this.ele);
- date_change(this, this.dv);
- var that = this;
- closeIcon.on("click",function(){
- that.valEle.val("");
- that.captionEle.text("");
- });
- },
- val: function(val) {
- if(arguments.length) {
- date_change(this, val);
- return this;
- } else if(!this.isShowOnly) {
- var ret = this.valEle.val();
- return ret ? ret : CK_UNDEF;
- }
- },
- reset: function() {
- if(arguments.length) {
- this.dv = arguments[0];
- } else date_change(this, this.dv);
- },
- validate: returnTrue,
- show: function($ctn) {
- if(this.readOnly || this.showOnly) return;
- var val = this.valEle.val();
- var n = date_now();
- val = val ? (date_validDate(val) ? val : n) : n;
- var $div = $("<div class='dd-drop date'></div>").appendTo(this.ele);
- this.showDay($div, parseInt(val.substring(0, 4)), parseInt(val.substring(4, 6)) - 1);
- },
- showDay: function(div, y, m) {
- div.empty();
- var table = $("<table></table>").appendTo(div).addClass("day");
- table.attr("year", "" + y);
- table.attr("month", "" + (m + 1));
- var head = $("<thead></thead>").appendTo(table);
- var body = $("<tbody></tbody>").appendTo(table);
- var foot = $("<tfoot></tfoot>").appendTo(table);
- var caption = $("<tr><th class='prev-year'><i class='icon-arrow-left'></i></th><th class='prev-month'><i class='icon-chevron-left'></i></th><th colspan='3' class='switch'></th><th class='next-month'><i class='icon-chevron-right'></i></th><th class='next-year'><i class='icon-arrow-right'></i></th></tr><tr><th class='dow'>日</th><th class='dow'>一</th><th class='dow'>二</th><th class='dow'>三</th><th class='dow'>四</th><th class='dow'>五</th><th class='dow'>六</th></tr>").appendTo(head).find(".switch");
- caption.html(date_fmt(m + 1) + "月 " + y + "年");
- var dd = new Date();
- dd.setFullYear(y);
- dd.setMonth(m);
- dd.setDate(1);
- var dayInWeek = dd.getDay();
- var days = ["<tr>"];
- for(var i = 0; i < dayInWeek; ++i) {
- var cd = date_dayFmt(new Date(dd.getTime() - ((dayInWeek - i) * date_MS_IN_DAY)));
- days.push("<td class='no-current-month' day='" + cd + "'>" + cd.substring(6, 8) + "</td>");
- }
- var ld = date_isleap(y) ? date_leapYear[m] : date_year[m];
- for(var i = 0; i < ld; ++i) {
- var cd = date_dayFmt(dd);
- days.push("<td class='day-item' day='" + cd + "'>" + cd.substring(6, 8) + "</td>");
- if(dd.getDay() == 6) days.push("</tr><tr>");
- dd = date_incDay(dd);
- }
- dayInWeek = dd.getDay();
- if(dayInWeek) {
- for(var i = dayInWeek; i < 7; ++i) {
- var cd = date_dayFmt(dd);
- days.push("<td class='no-current-month' day='" + cd + "'>" + cd.substring(6, 8) + "</td>");
- dd = date_incDay(dd);
- }
- } else {
- days.pop();
- }
- days.push("</tr>");
- body.html(days.join(""));
- }
- });
- $.extend(Jform.prototype, {
- init: function(options) {
- if($.type(options) == TN_FNC) {
- options.call(this);
- } else {
- for(var key in options) {
- var io = this.items[key] || (this.items[key] = new Jhidden(key));
- io.val(options[key]);
- }
- }
- },
- item: function(name) {
- return this.items[name];
- },
- validate: function() {
- for(var key in this.items) {
- if(!this.items[key].validate()) return CK_FALSE;
- }
- return CK_TRUE;
- },
- reset: function(data) {
- if(data) {
- for(var key in data) {
- (this.items[key] || (this.items[key] = new Jhidden(key))).reset(data[key]);
- }
- } else {
- for(var key in this.items) {
- this.items[key].reset();
- }
- }
- return this;
- },
- val: function(data) {
- if(!data) {
- if(!this.validate()) return CK_FALSE;
- var ret = {};
- for(var key in this.items) {
- var val = this.items[key].val();
- if(val !== CK_UNDEF) {
- ret[key] = val;
- }
- }
- return ret;
- }
- for(var key in data) {
- (this.items[key] || (this.items[key] = new Jhidden(key))).val(data[key]);
- }
- return this;
- },
- queryString: function() {
- if(!this.validate()) return CK_FALSE;
- var qs = "";
- for(var key in this.items) {
- var obj = this.items[key];
- var val = obj.val();
- qs = serialize(obj, key, val, qs);
- }
- if(qs.length > 1) {
- qs.substr(0, qs.length - 1);
- }
- return qs;
- },
- get: function(url, data, check, eh) {
- if(CK_FALSE === data) return;
- var self = this;
- util.get(url, data, function(rd) {
- if(check(rd)) {
- self.reset();
- self.val(rd);
- }
- }, eh);
- },
- post: function(url, data, check, eh) {
- if(CK_FALSE === data) return;
- var self = this;
- util.post(url, data, function(rd) {
- if(check(rd)) {
- self.reset();
- self.val(rd);
- }
- }, eh);
- },
- doGet: function(url, sh, eh) {
- var data = this.val();
- if(data !== CK_FALSE) {
- util.get(url, data, sh, eh);
- }
- },
- doPost: function(url, sh, eh) {
- var data = this.val();
- if(data !== CK_FALSE) {
- util.post(url, data, sh, eh);
- }
- },
- doPut: function(url, sh, eh) {
- var data = this.val();
- if(data !== CK_FALSE) {
- util.put(url, data, sh, eh);
- }
- },
- doDel: function(url, sh, eh) {
- var data = this.val();
- if(data !== CK_FALSE) {
- util.del(url, data, sh, eh);
- }
- },
- });
- $.fn.form = FormPlugin;
- $.fn.form.Constructor = Jform;
- $.fn.upload = UploadPlugin;
- $.fn.upload.Constructor = Jupload;
- $.util = util;
- (function() {
- var DK_CODE_TEMPLATE_FUNC = "code_templat_func",
- reg_strikethrough_all = /-/g,
- g_codeRef = 1,
- qf = function(pnd) {
- var cr = pnd.children;
- for(var i = 0; i < cr.length; ++i) {
- var nd = cr[i];
- if(nd.nodeType == 1) {
- var $nd = $(nd);
- if($nd.hasClass("code-tpl")) {
- $nd.removeClass("code-tpl");
- return nd;
- }
- $nd = qf(nd);
- if($nd) return $nd;
- }
- };
- return null;
- },
- parseCodeTemplate = function(ele, handlers) {
- var hds = handlers;
- var childCode = null;
- while((childCode = qf(ele[0]))) {
- var $child = $(childCode);
- var key = $child.attr("code-func");
- if(key) {
- var cf = "_" + g_codeRef;
- ++g_codeRef;
- hds[cf] = parseCodeTemplate($(childCode), hds);
- var ccode = "{{" + key + "-" + cf + "}}";
- if($child.hasClass("code-tag-hlod")) {
- $child.html(ccode);
- } else {
-
-
-
-
- childCode.parentNode.insertBefore(document.createTextNode("{{" + key + "-" + cf + "}}"), childCode);
-
- $child.remove();
- }
- }
- }
- var src = $.trim(ele.html());
-
- var ret = [],
- index = 0,
- len = src.length,
- b, e, ni;
- while(index < len) {
- b = src.indexOf('{{', index);
- if(b != -1) {
- ni = b + 2;
- var e = src.indexOf('}}', ni);
- if(e == -1) break;
- if(b > index) {
- ret.push({
- f: "_copy",
- k: null,
- sv: [src.substring(index, b)]
- });
- }
- if(e > ni) {
- var sh = src.substring(ni, e);
- var shlist = sh.split('-');
- var h = {
- pv: []
- };
- h.k = shlist[0];
- if(shlist.length == 1) {
- h.f = "toString";
- } else {
- h.f = shlist[1];
- for(var i = 2; i < shlist.length; ++i) {
- h.pv.push(shlist[i]);
- }
- }
- h.sv = sh;
- ret.push(h);
- }
- index = e + 2;
- } else {
- break;
- }
- }
- if(index < len) {
- ret.push({
- f: "_copy",
- k: null,
- sv: [src.substring(index, len)]
- });
- }
-
- return function(data, k, _index, pv, sv, hds) {
- var r = [];
- for(var i = 0; i < ret.length; ++i) {
- var h = ret[i];
- r.push((hds[h.f] || hds["_def"])(data, h.k, _index, h.pv, h.sv, hds));
-
- }
- return r.join("");
- }
- },
- hc_base_fnc = {
- "_def": function(data, key, _index, pv, sv, hds) {
- return "<!--" + sv.replace(reg_strikethrough_all, ' - ') + "-->";
- },
- "toString": function(data, key, _index, pv, sv, hds) {
- var v = data[key];
- return v ? v.toString() : (v === 0 ? "0" : (v === false ? "false" : ""));
- },
- "_copy": function(data, key, _index, pv, sv, hds) {
- return sv
- },
- "list": function(data, key, _index, pv, sv, hds) {
- var v = data[key] || [],
- fn = pv[0],
- r = [];
- if(v && v.length) {
- for(var i = 0; i < v.length; ++i) {
- var h = hds[fn] || hds["_def"];
- r.push(h(v[i], null, i, null, null, hds));
- }
- }
- return r.join("");
- },
- "emptylist": function(data, key, _index, pv, sv, hds) {
- var v = data[key] || [];
- if(!v.length) {
- return(hds[pv[0]] || hds["_def"])(data, null, null, null, null, hds);
- }
- },
- "[]": function(data, key, _index, pv, sv, hds) { return _index + 1 },
- "json": function(data, key, _index, pv, sv, hds) {
- return data ? (data[key] ? JSON.stringify(data[key]) : "") : "";
- },
- "bool": function(data, key) {
- return data ? (data[key] ? "是" : (data[key] === false ? "否" : "")) : "";
- },
- },
- HtmlCode = function(ele) {
- this.ele = ele;
- this.fnc = {};
- this.listener = [];
- $.extend(this.fnc, hc_base_fnc);
- ele.data(DK_CODE_TEMPLATE_FUNC, this);
- };
- $.extend(HtmlCode.prototype, {
- val: function(data) {
- if(!this.hand) {
- this.hand = parseCodeTemplate(this.ele, this.fnc);
- }
- this.ele.html(this.hand(data, null, -1, null, null, this.fnc));
- for(var i = 0; i < this.listener.length; ++i) {
- if(CK_FALSE === this.listener[i].call(this, data)) return;
- }
- },
- empty: function() {
- this.ele.empty();
- },
- shell: function(name, func) {
- if(name) {
- if(func) {
- this.fnc[name] = func;
- } else {
- return this.fnc[name];
- }
- } else {
- return this.fnc;
- }
- },
- addValueListener: function(h) {
- this.listener.push(h)
- },
- });
- var CodePlugin = function() {
- if(this.length) {
- var code = $(this[0]);
- var ret = code.data(DK_CODE_TEMPLATE_FUNC);
- if(!ret) {
- ret = new HtmlCode(code);
- }
- return ret;
- }
- };
- $.fn.code = CodePlugin;
- $.fn.code.Constructor = HtmlCode;
- })();
- (function() {
- var DK_DATA_TABLE = "dk_data_table",
- DataTable = function(ele) {
- this.ele = ele;
- this.codeRef = ele.find(".dt-tpl").code();
- this.formRef = ele.find(".dt-form").form();
- this.uri = ele.attr("loadUri");
- this.eh = true;
- this.ele.data(DK_DATA_TABLE, this);
- };
- $.extend(DataTable.prototype, {
- load: function() {
- var qd = this.formRef.val();
- if(qd === CK_FALSE) return;
- if(this.ch) {
- this.ch === true ? this.codeRef.empty() : this.ch();
- }
- var self = this;
- util.get(self.uri, qd, function(data) {
- self.codeRef.val({ "data": data, "length": data ? data.length : 0 });
- }, self.eh);
- },
- error: function(eh) {
- this.eh = eh;
- },
- beforLoad: function(ch) { this.ch = ch }
- });
- var DataTablePlugin = function() {
- if(this.length) {
- var dt = $(this[0]);
- var ret = dt.data(DK_DATA_TABLE);
- if(!ret) {
- ret = new DataTable(dt);
- }
- return ret;
- }
- }
- $.fn.dg = DataTablePlugin;
- $.fn.dg.Constructor = DataTable;
- var DK_PAGE_DATA_TABLE = "dk_page_data_table",
- pdt_pager_builder = function(data) {
- if(data.total) {
- var pages = Math.ceil(data.total / data.pageSize),
- no = data.pageNo,
- i = no - 2,
- hc = [];
- hc.push("<li class='");
- if(no > 1) {
- hc.push("active' no='" + (no - 1) + "'");
- } else {
- hc.push("disabled'");
- }
- hc.push("><a href='javascript:;'>«</a></li>");
- hc.push("<li class='" + (no == 1 ? "curr'" : "active' no='1'") + "><a href='javascript:;'>1</a></li>");
- if(no > 4) hc.push("<li><a href='javascript:;'>...</a></li>");
- for(i = Math.max(2, no - 2); i < no; ++i) {
- hc.push("<li class='active' no='" + i + "'><a href='javascript:;'>" + i + "</a></li>");
- }
- if(no != 1) {
- hc.push("<li class='curr'><a href='javascript:;'>" + no + "</a></li>");
- }
- i = no + 1;
- var min = Math.min(pages, no + 3);
- for(; i < min; ++i) {
- hc.push("<li class='active' no='" + i + "'><a href='javascript:;'>" + i + "</a></li>");
- }
- if(pages - no > 3) hc.push("<li><a href='javascript:;'>...</a></li>");
- if(pages != no) hc.push("<li class='active' no='" + pages + "'><a href='javascript:;'>" + pages + "</a></li>");
- hc.push("<li class='");
- if(no != pages) {
- hc.push("active' no='" + (no + 1) + "'");
- } else {
- hc.push("disabled'");
- }
- hc.push("><a href='javascript:;'>»</a></li>");
- this.pagerEle.html(hc.join(""));
- var self = this;
- this.pagerEle.children("li.active").on("click", function() {
- self.goPage(parseInt($(this).attr("no")));
- });
- } else {
- this.pagerEle.empty();
- }
- },
- pdt_build_pageIndex = function(data, key, pageSize, pageNo) {
- var bi = pageSize * (pageNo - 1) + 1;
- for(var i = 0; i < data.length; ++i) {
- data[i][key] = bi++;
- }
- },
- PageDataTable = function(ele) {
- this.ele = ele;
- this.codeRef = ele.find(".dt-tpl").code();
- this.formRef = ele.find(".dt-form").form();
- this.pagerEle = ele.find(".dt-pager");
- this.uri = ele.attr("loadUri");
- this.pagerPrefix = ele.attr("pagerPrefix") ? "_" : "";
- this.pageSize = parseInt(ele.attr("pageSize") || "1");
- this.pageNo = parseInt(ele.attr("pageNo") || "10");
- this.ph = pdt_pager_builder;
- this.ele.data(DK_PAGE_DATA_TABLE, this);
- this.eh = true;
- this.pageIndex = ele.attr("pageIndex");
- };
- $.extend(PageDataTable.prototype, {
- error: function(eh) { this.eh = eh },
- beforLoad: function(ch) { this.ch = ch },
- load: function() {
- var qd = this.formRef.val();
- if(qd === CK_FALSE) return;
- this.cache = qd || {};
- this.cache[this.pagerPrefix + "pageNo"] = this.pageNo;
- this.cache[this.pagerPrefix + "pageSize"] = this.pageSize;
- this.reload();
- },
- reload: function() {
- if(this.ch) {
- this.ch === true ? (this.codeRef.empty() || this.pagerEle.empty()) : this.ch();
- }
- var self = this;
- util.get(self.uri, this.cache, function(data) {
- self.total = data.total;
- data.length = data.data.length;
- if(self.pageIndex) {
- pdt_build_pageIndex(data.data, self.pageIndex, data.pageSize, data.pageNo);
- }
- self.codeRef.val(data);
- self.ph(data);
- }, self.eh);
- },
- goPage: function(pageNo, pageSize) {
- this.cache[this.pagerPrefix + "pageNo"] = pageNo;
- this.cache[this.pagerPrefix + "pageSize"] = (pageSize || this.cache[this.pagerPrefix + "pageSize"]);
- this.reload();
- },
- buildPager: function(ph) { this.ph = ph }
- });
- var PageDataTablePlugin = function() {
- if(this.length) {
- var dt = $(this[0]);
- var ret = dt.data(DK_PAGE_DATA_TABLE);
- if(!ret) {
- ret = new PageDataTable(dt);
- }
- return ret;
- }
- }
- $.fn.pdg = PageDataTablePlugin;
- $.fn.pdg.Constructor = PageDataTable;
- })();
- (function() {
- var spa_modal_index = 0,
- spa_load_res = function() {
- var self = this;
- if(this.resUri) {
- util.get(self.resUri, null, function(data) {
-
- * res =[{id:"",uri:"",css:"",script:""},{id:"",uri:"",css:"",script:""},...........]
- */
- self.res = {};
- for(var i = 0; i < data.length; ++i) {
- var item = data[i];
- self.res[item.id] = item;
- }
- if(self.menuUri) {
- spa_load_menu.call(self);
- } else {
- self.showMain();
- }
- }, {})
- }
- },
- spa_load_menu = function() {
- var self = this;
- util.get(this.menuUri, null, function(menu) {
- self.menu = menu;
- spa_build_menu.call(self);
- self.showMain();
- }, function(errCode, errMsg, errDetailMsg) {
- util.error("load spa menu data error");
- });
- },
- spa_build_menu = function() {
- if(this.menuEle && this.menu) {
- var pEle = $("<ul class='nav nav-root'></ul>");
- spa_build_menu_item(this, pEle, this.menu);
- pEle.appendTo(this.menuEle);
- var self = this;
- this.menuEle.find(".nav-hand").on("click", function(e) {
- var $this = $(this);
- pEle.find(".nav-hand.active").removeClass("active");
- $this.addClass("active");
- if($this.hasClass("spa-modal")) {
- self.showModal($this.attr("res"));
- } else {
- location.hash = "#" + $this.attr("res");
- self.showMain();
- }
- });
- this.menuEle.find(".nav-branch-hand").on("click", function(e) {
- var prt = $(this).parent();
- if(prt.hasClass("open")) {
- prt.removeClass("open");
- } else {
- prt.parent().children(".open").removeClass("open");
- prt.addClass("open");
- }
- });
- }
- },
- spa_build_menu_item = function(that, pEle, items) {
- var item, res, caption, iconClass;
- for(var i = 0; i < items.length; ++i) {
- item = items[i];
- var $li = $("<li></li>");
- var $a = $("<a href='javascript:;'></a>").appendTo($li);
- caption = item.caption;
- iconClass = item.icon || (item.res ? "book" : "branch");
- $a.html("<i class='icon-" + iconClass + "'></i>" + caption);
- if(item.res) {
- $a.attr("res", item.res).addClass("nav-hand");
- if(item.modal) {
- $a.addClass("spa-modal");
- }
- } else {
- $a.append($("<i class='icon fold'></i>")).addClass("nav-branch-hand");
- $li.addClass("nav-parent");
- var $ul = $("<ul class='nav'></ul>").appendTo($li);
- spa_build_menu_item(that, $ul, item.children);
- }
- $li.appendTo(pEle);
- }
- },
- spa_loadModelCss = function(model) {
- if(model.css) {
- var found = false;
- $("link").each(function() {
- if(model.css == this.getAttribute("href")) {
- var ref = parseInt(this.getAttribute("spa-css-ref") || "1");
- this.setAttribute("spa-css-ref", "" + (ref + 1));
- found = true;
- return false;
- }
- });
- if(!found) {
- var link = doc.createElement('link');
- link.rel = 'stylesheet';
- link.href = model.css;
- link.media = 'all';
- link.setAttribute("spa-css-ref", "1");
- head.appendChild(link);
- }
- }
- },
- spa_showMainInternal = function(model) {
- spa_cleanMain.call(this);
- this.main = model;
- if(model.css) spa_loadModelCss.call(this, model);
- if(model.html) this.mainEle.html(model.html);
- this.mainEle.attr("spa-model-id", model.id);
- if(model.factory && model.factory.main) {
- model.factory.main.call(this);
- }
- },
- spa_showModalInternal = function(model, data) {
- if(model.css) spa_loadModelCss.call(this, model);
- var ly = util.createModalLayer(model.html);
- ++spa_modal_index;
-
- ly.ctn.addClass("spa-modal").addClass("spa-modal-index-" + spa_modal_index).attr("spa-model-id", model.id);
- if(model.factory && model.factory.modal) {
- model.factory.modal.call(this, data);
- }
- },
- spa_cacheModel = function(model) {
- var m = this.cache[model.id] = {};
- m.html = model.html;
- m.factory = model.factory;
- m.css = model.css;
- m.id = model.id;
- m.data = model.data;
- delete this.res[model.id];
- return m;
- },
- spa_afterLoadByMain = function(model, data) {
- spa_showMainInternal.call(this, spa_cacheModel.call(this, model));
- },
- spa_afterLoadByModal = function(model, data) {
- spa_showModalInternal.call(this, spa_cacheModel.call(this, model), data);
- },
- spa_loadModel = function(model, handler, data) {
- var self = this;
- if(model.html) {
- model.state = 11;
- if(model.script) {
- spa_loadModelScript.call(self, model, handler, data);
- } else {
- handler.call(self, model, data);
- }
- } else if(model.uri) {
- util.showLoading();
- model.state = 10;
- $.ajax({ url: model.uri, dataType: "html", type: "GET" }).done(function(hc) {
- model.state = 11;
- model.html = hc;
- util.hideLoading();
- if(model.script) {
- spa_loadModelScript.call(self, model, handler, data);
- } else {
- handler.call(self, model, data);
- }
- }).fail(function() {
- model.state = 12;
- util.hideLoading();
- util.error("load resource[" + model.id + "] html error");
- });
- }
- },
- spa_removeModelCss = function(model) {
- if(model.css) {
- $("link").each(function() {
- if(model.css == this.getAttribute("href")) {
- var ref = parseInt(this.getAttribute("spa-css-ref") || "1");
- if(ref == 1) {
- this.parentNode.removeChild(this);
- } else {
- this.setAttribute("spa-css-ref", "" + (ref - 1));
- }
- }
- });
- }
- },
- spa_loadModelScript = function(model, handler, data) {
- var self = this;
- model.factory = this.scriptCache[model.script];
- if(model.factory) {
- model.state = 31;
- handler.call(this, model, data);
- return;
- }
- var node = doc.createElement(EN_SCRIPT);
- node.async = CK_TRUE;
- node.src = model.script;
- node.charset = "UTF-8";
- var supportOnload = "onload" in node;
- util.showLoading();
- window.spa_define = function(factoryBuilder) {
- model.state = 30;
- util.showLoading();
- try {
- self.scriptCache[model.script] = model.factory = factoryBuilder.call(null, self);
- model.state = 31;
- util.hideLoading();
- } catch(error) {
- model.state = 32;
- util.hideLoading();
- util.error("init model[" + model.id + "] error");
- }
- handler.call(self, model, data);
- }
- if(supportOnload) {
- node.onload = function() {
- if(model.state < 21) model.state = 21;
- node.onerror = null;
- node.onload = null;
- head.removeChild(node);
- util.hideLoading();
- };
- node.onerror = function() {
- if(model.state < 22) {
- model.state = 22;
- util.error("load script error:" + model.script);
- node.onload = null;
- node.onerror = null;
- }
- head.removeChild(node);
- util.hideLoading();
- };
- } else {
- node.onreadystatechange = function() {
- if(/loaded|complete/.test(node.readyState)) {
- node.onreadystatechange = null;
- if(model.state < 21) {
- model.state = 21;
- var to = model.timeout || 1000;
- setTimeout(function() {
- if(model.state == 21) {
- model.state = 22;
- util.error("load script error:" + model.script);
- head.removeChild(node);
- util.hideLoading();
- }
- }, model.timeout || 1000);
- } else {
- head.removeChild(node);
- util.hideLoading();
- }
- }
- };
- }
- model.state = 20;
- baseElement ?
- head.insertBefore(node, baseElement) :
- head.appendChild(node);
- },
- spa_cleanMain = function() {
- if(this.main) {
- spa_removeModelCss.call(this, this.main);
- if(this.main.factory && this.main.factory.mainDestory) this.main.factory.mainDestory.call(this);
- this.mainEle.empty();
- }
- },
- SPA = function(ele) {
- this.ele = ele;
- ele.data(DK_FORM_VALUE, this);
- this.menuEle = ele.find(".spa-menu");
- this.mainEle = ele.find(".spa-main");
- this.menuUri = ele.attr("menu");
- this.resUri = ele.attr("resource");
- this.cache = {};
- this.scriptCache = {};
- };
- $.extend(SPA.prototype, {
- init: function() {
- spa_load_res.call(this);
- },
- getModel: function(id) {
- return this.cache ? this.cache[id] : this.res[id];
- },
- showModal: function(id, data) {
- if(this.cache[id]) {
- spa_showModalInternal.call(this, this.cache[id], data);
- } else {
- var model = this.res[id];
- if(model) {
- spa_loadModel.call(this, model, spa_afterLoadByModal, data);
- } else {
- util.error("invalid resource id[" + id + "]");
- }
- }
- },
- showMain: function() {
- var id = location.hash;
- if(id && id.length > 1) {
- id = id.substring(1);
- } else return;
- if(this.main && id == this.main.id) return;
- if(this.cache[id]) {
- spa_showMainInternal.call(this, this.cache[id]);
- } else {
- var model = this.res[id];
- if(model) {
- spa_loadModel.call(this, model, spa_afterLoadByMain);
- } else {
- util.error("invalid resource id[" + id + "]");
- }
- }
- },
- getLastModalIndex: function() {
- return spa_modal_index;
- },
- getLastModalCtn: function() {
- return $(".spa-modal-index-" + spa_modal_index);
- },
- getLastModalModel: function() {
- var ctn = $(".spa-modal-index-" + spa_modal_index);
- var id = modalCtn.attr("spa-model-id");
- return getModel(id);
- },
- closeModal: function() {
- var ctn = $(".spa-modal-index-" + spa_modal_index);
- var id = ctn.attr("spa-model-id");
- var inx = _g_layer_curr.index + 1;
- if(ctn.hasClass("layer-" + inx)) {
- var model = this.cache ? this.cache[id] : this.res[id];
- if(model) {
- if(model.factory.modalDestory) model.factory.modalDestory.call(this);
- if(model.css) spa_removeModelCss.call(this, model);
- --spa_modal_index;
- util.closeModalLayer();
- }
- } else {
- util.error("can't close modal:has top layer ");
- }
- }
- });
- $.buildSpa = function() {
- var sbody = $("body");
- if(sbody.length == 1 && sbody.hasClass("spa-page")) {
- $.spa = new SPA(sbody);
- $.spa.init();
- }
- };
- })();
- $(doc).on("click.jr_dropdown_api", dd_clearMenus);
- $(doc).on("click.jr_dropdown_api", QF_DROP_DOWN_HAND, dd_toggle);
- $(doc).on("show.jr.dropdown", ".dd-ctn.date,.dd-ctn.datetime,.dd-ctn.time", function() {
- var $dateCtn = $(this);
- var date = $dateCtn.data(DK_FORM_VALUE);
- if(date && date.show) {
- date.show();
- }
- });
- $(doc).on("click", ".dd-ctn.date .day .day-item ,.dd-ctn.date .day .no-current-month", function() {
- var $this = $(this);
- var $dateCtn = $this.parents(".dd-ctn.date");
- var date = $dateCtn.data(DK_FORM_VALUE);
- if(date && date.val && $this.attr("day")) {
- date.val($this.attr("day"));
- }
- });
- $(doc).on("click", ".day .prev-year", function(e) {
- var $this = $(this);
- var table = $this.parents("table");
- if(table) {
- var year = table.attr("year");
- if(year) {
- var month = table.attr("month");
- if(month) {
- month = parseInt(month) - 1;
- year = parseInt(year) - 1;
- var dddrop = table.parents(".dd-drop.date");
- if(dddrop) {
- $ddc = dddrop.parents(".dd-ctn");
- if($ddc) {
- var date = $ddc.data(DK_FORM_VALUE);
- if(date && date.showDay) {
- date.showDay(dddrop, year, month);
- e.stopPropagation();
- }
- }
- }
- }
- }
- }
- });
- $(doc).on("click", ".day .prev-month", function(e) {
- var $this = $(this);
- var table = $this.parents("table");
- if(table) {
- var year = table.attr("year");
- if(year) {
- var month = table.attr("month");
- if(month) {
- month = parseInt(month) - 1;
- year = parseInt(year);
- if(month > 0) {
- month--;
- } else {
- year--;
- month = 11;
- }
- var dddrop = table.parents(".dd-drop.date");
- if(dddrop) {
- $ddc = dddrop.parents(".dd-ctn");
- if($ddc) {
- var date = $ddc.data(DK_FORM_VALUE);
- if(date && date.showDay) {
- date.showDay(dddrop, year, month);
- e.stopPropagation();
- }
- }
- }
- }
- }
- }
- });
- $(doc).on("click", ".day .next-year", function(e) {
- var $this = $(this);
- var table = $this.parents("table");
- if(table) {
- var year = table.attr("year");
- if(year) {
- var month = table.attr("month");
- if(month) {
- month = parseInt(month) - 1;
- year = parseInt(year) + 1;
- var dddrop = table.parents(".dd-drop.date");
- if(dddrop) {
- $ddc = dddrop.parents(".dd-ctn");
- if($ddc) {
- var date = $ddc.data(DK_FORM_VALUE);
- if(date && date.showDay) {
- date.showDay(dddrop, year, month);
- e.stopPropagation();
- }
- }
- }
- }
- }
- }
- });
- $(doc).on("click", ".day .next-month", function(e) {
- var $this = $(this);
- var table = $this.parents("table");
- if(table) {
- var year = table.attr("year");
- if(year) {
- var month = table.attr("month");
- if(month) {
- month = parseInt(month) - 1;
- year = parseInt(year);
- if(month == 11) {
- year++;
- month = 0;
- } else {
- month++;
- }
- var dddrop = table.parents(".dd-drop.date");
- if(dddrop) {
- $ddc = dddrop.parents(".dd-ctn");
- if($ddc) {
- var date = $ddc.data(DK_FORM_VALUE);
- if(date && date.showDay) {
- date.showDay(dddrop, year, month);
- e.stopPropagation();
- }
- }
- }
- }
- }
- }
- });
- $(doc).on("click", ".click-hide-parent", function() {
- $(this).parent().hide();
- });
- }(jQuery);
|