"use strict";

var _oMultiDiff;

function _typeof(obj) {
    return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
        return typeof obj;
    } : function(obj) {
        return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    })(obj);
}

function _defineProperty(obj, key, value) {
    return key in obj ? Object.defineProperty(obj, key, {
        value: value,
        enumerable: !0,
        configurable: !0,
        writable: !0
    }) : obj[key] = value, obj;
}

var strChineseFirstPY = "YDYQSXMWZSSXJBYMGCCZQPSSQBYCDSCDQLDYLYBSSJGYZZJJFKCCLZDHWDWZJLJPFYYNWJJTMYHZWZHFLZPPQHGSCYYYNJQYXXGJHHSDSJNKKTMOMLCRXYPSNQSECCQZGGLLYJLMYZZSECYKYYHQWJSSGGYXYZYJWWKDJHYCHMYXJTLXJYQBYXZLDWRDJRWYSRLDZJPCBZJJBRCFTLECZSTZFXXZHTRQHYBDLYCZSSYMMRFMYQZPWWJJYFCRWFDFZQPYDDWYXKYJAWJFFXYPSFTZYHHYZYSWCJYXSCLCXXWZZXNBGNNXBXLZSZSBSGPYSYZDHMDZBQBZCWDZZYYTZHBTSYYBZGNTNXQYWQSKBPHHLXGYBFMJEBJHHGQTJCYSXSTKZHLYCKGLYSMZXYALMELDCCXGZYRJXSDLTYZCQKCNNJWHJTZZCQLJSTSTBNXBTYXCEQXGKWJYFLZQLYHYXSPSFXLMPBYSXXXYDJCZYLLLSJXFHJXPJBTFFYABYXBHZZBJYZLWLCZGGBTSSMDTJZXPTHYQTGLJSCQFZKJZJQNLZWLSLHDZBWJNCJZYZSQQYCQYRZCJJWYBRTWPYFTWEXCSKDZCTBZHYZZYYJXZCFFZZMJYXXSDZZOTTBZLQWFCKSZSXFYRLNYJMBDTHJXSQQCCSBXYYTSYFBXDZTGBCNSLCYZZPSAZYZZSCJCSHZQYDXLBPJLLMQXTYDZXSQJTZPXLCGLQTZWJBHCTSYJSFXYEJJTLBGXSXJMYJQQPFZASYJNTYDJXKJCDJSZCBARTDCLYJQMWNQNCLLLKBYBZZSYHQQLTWLCCXTXLLZNTYLNEWYZYXCZXXGRKRMTCNDNJTSYYSSDQDGHSDBJGHRWRQLYBGLXHLGTGXBQJDZPYJSJYJCTMRNYMGRZJCZGJMZMGXMPRYXKJNYMSGMZJYMKMFXMLDTGFBHCJHKYLPFMDXLQJJSMTQGZSJLQDLDGJYCALCMZCSDJLLNXDJFFFFJCZFMZFFPFKHKGDPSXKTACJDHHZDDCRRCFQYJKQCCWJDXHWJLYLLZGCFCQDSMLZPBJJPLSBCJGGDCKKDEZSQCCKJGCGKDJTJDLZYCXKLQSCGJCLTFPCQCZGWPJDQYZJJBYJHSJDZWGFSJGZKQCCZLLPSPKJGQJHZZLJPLGJGJJTHJJYJZCZMLZLYQBGJWMLJKXZDZNJQSYZMLJLLJKYWXMKJLHSKJGBMCLYYMKXJQLBMLLKMDXXKWYXYSLMLPSJQQJQXYXFJTJDXMXXLLCXQBSYJBGWYMBGGBCYXPJYGPEPFGDJGBHBNSQJYZJKJKHXQFGQZKFHYGKHDKLLSDJQXPQYKYBNQSXQNSZSWHBSXWHXWBZZXDMNSJBSBKBBZKLYLXGWXDRWYQZMYWSJQLCJXXJXKJEQXSCYETLZHLYYYSDZPAQYZCMTLSHTZCFYZYXYLJSDCJQAGYSLCQLYYYSHMRQQKLDXZSCSSSYDYCJYSFSJBFRSSZQSBXXPXJYSDRCKGJLGDKZJZBDKTCSYQPYHSTCLDJDHMXMCGXYZHJDDTMHLTXZXYLYMOHYJCLTYFBQQXPFBDFHHTKSQHZYYWCNXXCRWHOWGYJLEGWDQCWGFJYCSNTMYTOLBYGWQWESJPWNMLRYDZSZTXYQPZGCWXHNGPYXSHMYQJXZTDPPBFYHZHTJYFDZWKGKZBLDNTSXHQEEGZZYLZMMZYJZGXZXKHKSTXNXXWYLYAPSTHXDWHZYMPXAGKYDXBHNHXKDPJNMYHYLPMGOCSLNZHKXXLPZZLBMLSFBHHGYGYYGGBHSCYAQTYWLXTZQCEZYDQDQMMHTKLLSZHLSJZWFYHQSWSCWLQAZYNYTLSXTHAZNKZZSZZLAXXZWWCTGQQTDDYZTCCHYQZFLXPSLZYGPZSZNGLNDQTBDLXGTCTAJDKYWNSYZLJHHZZCWNYYZYWMHYCHHYXHJKZWSXHZYXLYSKQYSPSLYZWMYPPKBYGLKZHTYXAXQSYSHXASMCHKDSCRSWJPWXSGZJLWWSCHSJHSQNHCSEGNDAQTBAALZZMSSTDQJCJKTSCJAXPLGGXHHGXXZCXPDMMHLDGTYBYSJMXHMRCPXXJZCKZXSHMLQXXTTHXWZFKHCCZDYTCJYXQHLXDHYPJQXYLSYYDZOZJNYXQEZYSQYAYXWYPDGXDDXSPPYZNDLTWRHXYDXZZJHTCXMCZLHPYYYYMHZLLHNXMYLLLMDCPPXHMXDKYCYRDLTXJCHHZZXZLCCLYLNZSHZJZZLNNRLWHYQSNJHXYNTTTKYJPYCHHYEGKCTTWLGQRLGGTGTYGYHPYHYLQYQGCWYQKPYYYTTTTLHYHLLTYTTSPLKYZXGZWGPYDSSZZDQXSKCQNMJJZZBXYQMJRTFFBTKHZKBXLJJKDXJTLBWFZPPTKQTZTGPDGNTPJYFALQMKGXBDCLZFHZCLLLLADPMXDJHLCCLGYHDZFGYDDGCYYFGYDXKSSEBDHYKDKDKHNAXXYBPBYYHXZQGAFFQYJXDMLJCSQZLLPCHBSXGJYNDYBYQSPZWJLZKSDDTACTBXZDYZYPJZQSJNKKTKNJDJGYYPGTLFYQKASDNTCYHBLWDZHBBYDWJRYGKZYHEYYFJMSDTYFZJJHGCXPLXHLDWXXJKYTCYKSSSMTWCTTQZLPBSZDZWZXGZAGYKTYWXLHLSPBCLLOQMMZSSLCMBJCSZZKYDCZJGQQDSMCYTZQQLWZQZXSSFPTTFQMDDZDSHDTDWFHTDYZJYQJQKYPBDJYYXTLJHDRQXXXHAYDHRJLKLYTWHLLRLLRCXYLBWSRSZZSYMKZZHHKYHXKSMDSYDYCJPBZBSQLFCXXXNXKXWYWSDZYQOGGQMMYHCDZTTFJYYBGSTTTYBYKJDHKYXBELHTYPJQNFXFDYKZHQKZBYJTZBXHFDXKDASWTAWAJLDYJSFHBLDNNTNQJTJNCHXFJSRFWHZFMDRYJYJWZPDJKZYJYMPCYZNYNXFBYTFYFWYGDBNZZZDNYTXZEMMQBSQEHXFZMBMFLZZSRXYMJGSXWZJSPRYDJSJGXHJJGLJJYNZZJXHGXKYMLPYYYCXYTWQZSWHWLYRJLPXSLSXMFSWWKLCTNXNYNPSJSZHDZEPTXMYYWXYYSYWLXJQZQXZDCLEEELMCPJPCLWBXSQHFWWTFFJTNQJHJQDXHWLBYZNFJLALKYYJLDXHHYCSTYYWNRJYXYWTRMDRQHWQCMFJDYZMHMYYXJWMYZQZXTLMRSPWWCHAQBXYGZYPXYYRRCLMPYMGKSJSZYSRMYJSNXTPLNBAPPYPYLXYYZKYNLDZYJZCZNNLMZHHARQMPGWQTZMXXMLLHGDZXYHXKYXYCJMFFYYHJFSBSSQLXXNDYCANNMTCJCYPRRNYTYQNYYMBMSXNDLYLYSLJRLXYSXQMLLYZLZJJJKYZZCSFBZXXMSTBJGNXYZHLXNMCWSCYZYFZLXBRNNNYLBNRTGZQYSATSWRYHYJZMZDHZGZDWYBSSCSKXSYHYTXXGCQGXZZSHYXJSCRHMKKBXCZJYJYMKQHZJFNBHMQHYSNJNZYBKNQMCLGQHWLZNZSWXKHLJHYYBQLBFCDSXDLDSPFZPSKJYZWZXZDDXJSMMEGJSCSSMGCLXXKYYYLNYPWWWGYDKZJGGGZGGSYCKNJWNJPCXBJJTQTJWDSSPJXZXNZXUMELPXFSXTLLXCLJXJJLJZXCTPSWXLYDHLYQRWHSYCSQYYBYAYWJJJQFWQCQQCJQGXALDBZZYJGKGXPLTZYFXJLTPADKYQHPMATLCPDCKBMTXYBHKLENXDLEEGQDYMSAWHZMLJTWYGXLYQZLJEEYYBQQFFNLYXRDSCTGJGXYYNKLLYQKCCTLHJLQMKKZGCYYGLLLJDZGYDHZWXPYSJBZKDZGYZZHYWYFQYTYZSZYEZZLYMHJJHTSMQWYZLKYYWZCSRKQYTLTDXWCTYJKLWSQZWBDCQYNCJSRSZJLKCDCDTLZZZACQQZZDDXYPLXZBQJYLZLLLQDDZQJYJYJZYXNYYYNYJXKXDAZWYRDLJYYYRJLXLLDYXJCYWYWNQCCLDDNYYYNYCKCZHXXCCLGZQJGKWPPCQQJYSBZZXYJSQPXJPZBSBDSFNSFPZXHDWZTDWPPTFLZZBZDMYYPQJRSDZSQZSQXBDGCPZSWDWCSQZGMDHZXMWWFYBPDGPHTMJTHZSMMBGZMBZJCFZWFZBBZMQCFMBDMCJXLGPNJBBXGYHYYJGPTZGZMQBQTCGYXJXLWZKYDPDYMGCFTPFXYZTZXDZXTGKMTYBBCLBJASKYTSSQYYMSZXFJEWLXLLSZBQJJJAKLYLXLYCCTSXMCWFKKKBSXLLLLJYXTYLTJYYTDPJHNHNNKBYQNFQYYZBYYESSESSGDYHFHWTCJBSDZZTFDMXHCNJZYMQWSRYJDZJQPDQBBSTJGGFBKJBXTGQHNGWJXJGDLLTHZHHYYYYYYSXWTYYYCCBDBPYPZYCCZYJPZYWCBDLFWZCWJDXXHYHLHWZZXJTCZLCDPXUJCZZZLYXJJTXPHFXWPYWXZPTDZZBDZCYHJHMLXBQXSBYLRDTGJRRCTTTHYTCZWMXFYTWWZCWJWXJYWCSKYBZSCCTZQNHXNWXXKHKFHTSWOCCJYBCMPZZYKBNNZPBZHHZDLSYDDYTYFJPXYNGFXBYQXCBHXCPSXTYZDMKYSNXSXLHKMZXLYHDHKWHXXSSKQYHHCJYXGLHZXCSNHEKDTGZXQYPKDHEXTYKCNYMYYYPKQYYYKXZLTHJQTBYQHXBMYHSQCKWWYLLHCYYLNNEQXQWMCFBDCCMLJGGXDQKTLXKGNQCDGZJWYJJLYHHQTTTNWCHMXCXWHWSZJYDJCCDBQCDGDNYXZTHCQRXCBHZTQCBXWGQWYYBXHMBYMYQTYEXMQKYAQYRGYZSLFYKKQHYSSQYSHJGJCNXKZYCXSBXYXHYYLSTYCXQTHYSMGSCPMMGCCCCCMTZTASMGQZJHKLOSQYLSWTMXSYQKDZLJQQYPLSYCZTCQQPBBQJZCLPKHQZYYXXDTDDTSJCXFFLLCHQXMJLWCJCXTSPYCXNDTJSHJWXDQQJSKXYAMYLSJHMLALYKXCYYDMNMDQMXMCZNNCYBZKKYFLMCHCMLHXRCJJHSYLNMTJZGZGYWJXSRXCWJGJQHQZDQJDCJJZKJKGDZQGJJYJYLXZXXCDQHHHEYTMHLFSBDJSYYSHFYSTCZQLPBDRFRZTZYKYWHSZYQKWDQZRKMSYNBCRXQBJYFAZPZZEDZCJYWBCJWHYJBQSZYWRYSZPTDKZPFPBNZTKLQYHBBZPNPPTYZZYBQNYDCPJMMCYCQMCYFZZDCMNLFPBPLNGQJTBTTNJZPZBBZNJKLJQYLNBZQHKSJZNGGQSZZKYXSHPZSNBCGZKDDZQANZHJKDRTLZLSWJLJZLYWTJNDJZJHXYAYNCBGTZCSSQMNJPJYTYSWXZFKWJQTKHTZPLBHSNJZSYZBWZZZZLSYLSBJHDWWQPSLMMFBJDWAQYZTCJTBNNWZXQXCDSLQGDSDPDZHJTQQPSWLYYJZLGYXYZLCTCBJTKTYCZJTQKBSJLGMGZDMCSGPYNJZYQYYKNXRPWSZXMTNCSZZYXYBYHYZAXYWQCJTLLCKJJTJHGDXDXYQYZZBYWDLWQCGLZGJGQRQZCZSSBCRPCSKYDZNXJSQGXSSJMYDNSTZTPBDLTKZWXQWQTZEXNQCZGWEZKSSBYBRTSSSLCCGBPSZQSZLCCGLLLZXHZQTHCZMQGYZQZNMCOCSZJMMZSQPJYGQLJYJPPLDXRGZYXCCSXHSHGTZNLZWZKJCXTCFCJXLBMQBCZZWPQDNHXLJCTHYZLGYLNLSZZPCXDSCQQHJQKSXZPBAJYEMSMJTZDXLCJYRYYNWJBNGZZTMJXLTBSLYRZPYLSSCNXPHLLHYLLQQZQLXYMRSYCXZLMMCZLTZSDWTJJLLNZGGQXPFSKYGYGHBFZPDKMWGHCXMSGDXJMCJZDYCABXJDLNBCDQYGSKYDQTXDJJYXMSZQAZDZFSLQXYJSJZYLBTXXWXQQZBJZUFBBLYLWDSLJHXJYZJWTDJCZFQZQZZDZSXZZQLZCDZFJHYSPYMPQZMLPPLFFXJJNZZYLSJEYQZFPFZKSYWJJJHRDJZZXTXXGLGHYDXCSKYSWMMZCWYBAZBJKSHFHJCXMHFQHYXXYZFTSJYZFXYXPZLCHMZMBXHZZSXYFYMNCWDABAZLXKTCSHHXKXJJZJSTHYGXSXYYHHHJWXKZXSSBZZWHHHCWTZZZPJXSNXQQJGZYZYWLLCWXZFXXYXYHXMKYYSWSQMNLNAYCYSPMJKHWCQHYLAJJMZXHMMCNZHBHXCLXTJPLTXYJHDYYLTTXFSZHYXXSJBJYAYRSMXYPLCKDUYHLXRLNLLSTYZYYQYGYHHSCCSMZCTZQXKYQFPYYRPFFLKQUNTSZLLZMWWTCQQYZWTLLMLMPWMBZSSTZRBPDDTLQJJBXZCSRZQQYGWCSXFWZLXCCRSZDZMCYGGDZQSGTJSWLJMYMMZYHFBJDGYXCCPSHXNZCSBSJYJGJMPPWAFFYFNXHYZXZYLREMZGZCYZSSZDLLJCSQFNXZKPTXZGXJJGFMYYYSNBTYLBNLHPFZDCYFBMGQRRSSSZXYSGTZRNYDZZCDGPJAFJFZKNZBLCZSZPSGCYCJSZLMLRSZBZZLDLSLLYSXSQZQLYXZLSKKBRXBRBZCYCXZZZEEYFGKLZLYYHGZSGZLFJHGTGWKRAAJYZKZQTSSHJJXDCYZUYJLZYRZDQQHGJZXSSZBYKJPBFRTJXLLFQWJHYLQTYMBLPZDXTZYGBDHZZRBGXHWNJTJXLKSCFSMWLSDQYSJTXKZSCFWJLBXFTZLLJZLLQBLSQMQQCGCZFPBPHZCZJLPYYGGDTGWDCFCZQYYYQYSSCLXZSKLZZZGFFCQNWGLHQYZJJCZLQZZYJPJZZBPDCCMHJGXDQDGDLZQMFGPSYTSDYFWWDJZJYSXYYCZCYHZWPBYKXRYLYBHKJKSFXTZJMMCKHLLTNYYMSYXYZPYJQYCSYCWMTJJKQYRHLLQXPSGTLYYCLJSCPXJYZFNMLRGJJTYZBXYZMSJYJHHFZQMSYXRSZCWTLRTQZSSTKXGQKGSPTGCZNJSJCQCXHMXGGZTQYDJKZDLBZSXJLHYQGGGTHQSZPYHJHHGYYGKGGCWJZZYLCZLXQSFTGZSLLLMLJSKCTBLLZZSZMMNYTPZSXQHJCJYQXYZXZQZCPSHKZZYSXCDFGMWQRLLQXRFZTLYSTCTMJCXJJXHJNXTNRZTZFQYHQGLLGCXSZSJDJLJCYDSJTLNYXHSZXCGJZYQPYLFHDJSBPCCZHJJJQZJQDYBSSLLCMYTTMQTBHJQNNYGKYRQYQMZGCJKPDCGMYZHQLLSLLCLMHOLZGDYYFZSLJCQZLYLZQJESHNYLLJXGJXLYSYYYXNBZLJSSZCQQCJYLLZLTJYLLZLLBNYLGQCHXYYXOXCXQKYJXXXYKLXSXXYQXCYKQXQCSGYXXYQXYGYTQOHXHXPYXXXULCYEYCHZZCBWQBBWJQZSCSZSSLZYLKDESJZWMYMCYTSDSXXSCJPQQSQYLYYZYCMDJDZYWCBTJSYDJKCYDDJLBDJJSODZYSYXQQYXDHHGQQYQHDYXWGMMMAJDYBBBPPBCMUUPLJZSMTXERXJMHQNUTPJDCBSSMSSSTKJTSSMMTRCPLZSZMLQDSDMJMQPNQDXCFYNBFSDQXYXHYAYKQYDDLQYYYSSZBYDSLNTFQTZQPZMCHDHCZCWFDXTMYQSPHQYYXSRGJCWTJTZZQMGWJJTJHTQJBBHWZPXXHYQFXXQYWYYHYSCDYDHHQMNMTMWCPBSZPPZZGLMZFOLLCFWHMMSJZTTDHZZYFFYTZZGZYSKYJXQYJZQBHMBZZLYGHGFMSHPZFZSNCLPBQSNJXZSLXXFPMTYJYGBXLLDLXPZJYZJYHHZCYWHJYLSJEXFSZZYWXKZJLUYDTMLYMQJPWXYHXSKTQJEZRPXXZHHMHWQPWQLYJJQJJZSZCPHJLCHHNXJLQWZJHBMZYXBDHHYPZLHLHLGFWLCHYYTLHJXCJMSCPXSTKPNHQXSRTYXXTESYJCTLSSLSTDLLLWWYHDHRJZSFGXTSYCZYNYHTDHWJSLHTZDQDJZXXQHGYLTZPHCSQFCLNJTCLZPFSTPDYNYLGMJLLYCQHYSSHCHYLHQYQTMZYPBYWRFQYKQSYSLZDQJMPXYYSSRHZJNYWTQDFZBWWTWWRXCWHGYHXMKMYYYQMSMZHNGCEPMLQQMTCWCTMMPXJPJJHFXYYZSXZHTYBMSTSYJTTQQQYYLHYNPYQZLCYZHZWSMYLKFJXLWGXYPJYTYSYXYMZCKTTWLKSMZSYLMPWLZWXWQZSSAQSYXYRHSSNTSRAPXCPWCMGDXHXZDZYFJHGZTTSBJHGYZSZYSMYCLLLXBTYXHBBZJKSSDMALXHYCFYGMQYPJYCQXJLLLJGSLZGQLYCJCCZOTYXMTMTTLLWTGPXYMZMKLPSZZZXHKQYSXCTYJZYHXSHYXZKXLZWPSQPYHJWPJPWXQQYLXSDHMRSLZZYZWTTCYXYSZZSHBSCCSTPLWSSCJCHNLCGCHSSPHYLHFHHXJSXYLLNYLSZDHZXYLSXLWZYKCLDYAXZCMDDYSPJTQJZLNWQPSSSWCTSTSZLBLNXSMNYYMJQBQHRZWTYYDCHQLXKPZWBGQYBKFCMZWPZLLYYLSZYDWHXPSBCMLJBSCGBHXLQHYRLJXYSWXWXZSLDFHLSLYNJLZYFLYJYCDRJLFSYZFSLLCQYQFGJYHYXZLYLMSTDJCYHBZLLNWLXXYGYYHSMGDHXXHHLZZJZXCZZZCYQZFNGWPYLCPKPYYPMCLQKDGXZGGWQBDXZZKZFBXXLZXJTPJPTTBYTSZZDWSLCHZHSLTYXHQLHYXXXYYZYSWTXZKHLXZXZPYHGCHKCFSYHUTJRLXFJXPTZTWHPLYXFCRHXSHXKYXXYHZQDXQWULHYHMJTBFLKHTXCWHJFWJCFPQRYQXCYYYQYGRPYWSGSUNGWCHKZDXYFLXXHJJBYZWTSXXNCYJJYMSWZJQRMHXZWFQSYLZJZGBHYNSLBGTTCSYBYXXWXYHXYYXNSQYXMQYWRGYQLXBBZLJSYLPSYTJZYHYZAWLRORJMKSCZJXXXYXCHDYXRYXXJDTSQFXLYLTSFFYXLMTYJMJUYYYXLTZCSXQZQHZXLYYXZHDNBRXXXJCTYHLBRLMBRLLAXKYLLLJLYXXLYCRYLCJTGJCMTLZLLCYZZPZPCYAWHJJFYBDYYZSMPCKZDQYQPBPCJPDCYZMDPBCYYDYCNNPLMTMLRMFMMGWYZBSJGYGSMZQQQZTXMKQWGXLLPJGZBQCDJJJFPKJKCXBLJMSWMDTQJXLDLPPBXCWRCQFBFQJCZAHZGMYKPHYYHZYKNDKZMBPJYXPXYHLFPNYYGXJDBKXNXHJMZJXSTRSTLDXSKZYSYBZXJLXYSLBZYSLHXJPFXPQNBYLLJQKYGZMCYZZYMCCSLCLHZFWFWYXZMWSXTYNXJHPYYMCYSPMHYSMYDYSHQYZCHMJJMZCAAGCFJBBHPLYZYLXXSDJGXDHKXXTXXNBHRMLYJSLTXMRHNLXQJXYZLLYSWQGDLBJHDCGJYQYCMHWFMJYBMBYJYJWYMDPWHXQLDYGPDFXXBCGJSPCKRSSYZJMSLBZZJFLJJJLGXZGYXYXLSZQYXBEXYXHGCXBPLDYHWETTWWCJMBTXCHXYQXLLXFLYXLLJLSSFWDPZSMYJCLMWYTCZPCHQEKCQBWLCQYDPLQPPQZQFJQDJHYMMCXTXDRMJWRHXCJZYLQXDYYNHYYHRSLSRSYWWZJYMTLTLLGTQCJZYABTCKZCJYCCQLJZQXALMZYHYWLWDXZXQDLLQSHGPJFJLJHJABCQZDJGTKHSSTCYJLPSWZLXZXRWGLDLZRLZXTGSLLLLZLYXXWGDZYGBDPHZPBRLWSXQBPFDWOFMWHLYPCBJCCLDMBZPBZZLCYQXLDOMZBLZWPDWYYGDSTTHCSQSCCRSSSYSLFYBFNTYJSZDFNDPDHDZZMBBLSLCMYFFGTJJQWFTMTPJWFNLBZCMMJTGBDZLQLPYFHYYMJYLSDCHDZJWJCCTLJCLDTLJJCPDDSQDSSZYBNDBJLGGJZXSXNLYCYBJXQYCBYLZCFZPPGKCXZDZFZTJJFJSJXZBNZYJQTTYJYHTYCZHYMDJXTTMPXSPLZCDWSLSHXYPZGTFMLCJTYCBPMGDKWYCYZCDSZZYHFLYCTYGWHKJYYLSJCXGYWJCBLLCSNDDBTZBSCLYZCZZSSQDLLMQYYHFSLQLLXFTYHABXGWNYWYYPLLSDLDLLBJCYXJZMLHLJDXYYQYTDLLLBUGBFDFBBQJZZMDPJHGCLGMJJPGAEHHBWCQXAXHHHZCHXYPHJAXHLPHJPGPZJQCQZGJJZZUZDMQYYBZZPHYHYBWHAZYJHYKFGDPFQSDLZMLJXKXGALXZDAGLMDGXMWZQYXXDXXPFDMMSSYMPFMDMMKXKSYZYSHDZKXSYSMMZZZMSYDNZZCZXFPLSTMZDNMXCKJMZTYYMZMZZMSXHHDCZJEMXXKLJSTLWLSQLYJZLLZJSSDPPMHNLZJCZYHMXXHGZCJMDHXTKGRMXFWMCGMWKDTKSXQMMMFZZYDKMSCLCMPCGMHSPXQPZDSSLCXKYXTWLWJYAHZJGZQMCSNXYYMMPMLKJXMHLMLQMXCTKZMJQYSZJSYSZHSYJZJCDAJZYBSDQJZGWZQQXFKDMSDJLFWEHKZQKJPEYPZYSZCDWYJFFMZZYLTTDZZEFMZLBNPPLPLPEPSZALLTYLKCKQZKGENQLWAGYXYDPXLHSXQQWQCQXQCLHYXXMLYCCWLYMQYSKGCHLCJNSZKPYZKCQZQLJPDMDZHLASXLBYDWQLWDNBQCRYDDZTJYBKBWSZDXDTNPJDTCTQDFXQQMGNXECLTTBKPWSLCTYQLPWYZZKLPYGZCQQPLLKCCYLPQMZCZQCLJSLQZDJXLDDHPZQDLJJXZQDXYZQKZLJCYQDYJPPYPQYKJYRMPCBYMCXKLLZLLFQPYLLLMBSGLCYSSLRSYSQTMXYXZQZFDZUYSYZTFFMZZSMZQHZSSCCMLYXWTPZGXZJGZGSJSGKDDHTQGGZLLBJDZLCBCHYXYZHZFYWXYZYMSDBZZYJGTSMTFXQYXQSTDGSLNXDLRYZZLRYYLXQHTXSRTZNGZXBNQQZFMYKMZJBZYMKBPNLYZPBLMCNQYZZZSJZHJCTZKHYZZJRDYZHNPXGLFZTLKGJTCTSSYLLGZRZBBQZZKLPKLCZYSSUYXBJFPNJZZXCDWXZYJXZZDJJKGGRSRJKMSMZJLSJYWQSKYHQJSXPJZZZLSNSHRNYPZTWCHKLPSRZLZXYJQXQKYSJYCZTLQZYBBYBWZPQDWWYZCYTJCJXCKCWDKKZXSGKDZXWWYYJQYYTCYTDLLXWKCZKKLCCLZCQQDZLQLCSFQCHQHSFSMQZZLNBJJZBSJHTSZDYSJQJPDLZCDCWJKJZZLPYCGMZWDJJBSJQZSYZYHHXJPBJYDSSXDZNCGLQMBTSFSBPDZDLZNFGFJGFSMPXJQLMBLGQCYYXBQKDJJQYRFKZTJDHCZKLBSDZCFJTPLLJGXHYXZCSSZZXSTJYGKGCKGYOQXJPLZPBPGTGYJZGHZQZZLBJLSQFZGKQQJZGYCZBZQTLDXRJXBSXXPZXHYZYCLWDXJJHXMFDZPFZHQHQMQGKSLYHTYCGFRZGNQXCLPDLBZCSCZQLLJBLHBZCYPZZPPDYMZZSGYHCKCPZJGSLJLNSCDSLDLXBMSTLDDFJMKDJDHZLZXLSZQPQPGJLLYBDSZGQLBZLSLKYYHZTTNTJYQTZZPSZQZTLLJTYYLLQLLQYZQLBDZLSLYYZYMDFSZSNHLXZNCZQZPBWSKRFBSYZMTHBLGJPMCZZLSTLXSHTCSYZLZBLFEQHLXFLCJLYLJQCBZLZJHHSSTBRMHXZHJZCLXFNBGXGTQJCZTMSFZKJMSSNXLJKBHSJXNTNLZDNTLMSJXGZJYJCZXYJYJWRWWQNZTNFJSZPZSHZJFYRDJSFSZJZBJFZQZZHZLXFYSBZQLZSGYFTZDCSZXZJBQMSZKJRHYJZCKMJKHCHGTXKXQGLXPXFXTRTYLXJXHDTSJXHJZJXZWZLCQSBTXWXGXTXXHXFTSDKFJHZYJFJXRZSDLLLTQSQQZQWZXSYQTWGWBZCGZLLYZBCLMQQTZHZXZXLJFRMYZFLXYSQXXJKXRMQDZDMMYYBSQBHGZMWFWXGMXLZPYYTGZYCCDXYZXYWGSYJYZNBHPZJSQSYXSXRTFYZGRHZTXSZZTHCBFCLSYXZLZQMZLMPLMXZJXSFLBYZMYQHXJSXRXSQZZZSSLYFRCZJRCRXHHZXQYDYHXSJJHZCXZBTYNSYSXJBQLPXZQPYMLXZKYXLXCJLCYSXXZZLXDLLLJJYHZXGYJWKJRWYHCPSGNRZLFZWFZZNSXGXFLZSXZZZBFCSYJDBRJKRDHHGXJLJJTGXJXXSTJTJXLYXQFCSGSWMSBCTLQZZWLZZKXJMLTMJYHSDDBXGZHDLBMYJFRZFSGCLYJBPMLYSMSXLSZJQQHJZFXGFQFQBPXZGYYQXGZTCQWYLTLGWSGWHRLFSFGZJMGMGBGTJFSYZZGZYZAFLSSPMLPFLCWBJZCLJJMZLPJJLYMQDMYYYFBGYGYZMLYZDXQYXRQQQHSYYYQXYLJTYXFSFSLLGNQCYHYCWFHCCCFXPYLYPLLZYXXXXXKQHHXSHJZCFZSCZJXCPZWHHHHHAPYLQALPQAFYHXDYLUKMZQGGGDDESRNNZLTZGCHYPPYSQJJHCLLJTOLNJPZLJLHYMHEYDYDSQYCDDHGZUNDZCLZYZLLZNTNYZGSLHSLPJJBDGWXPCDUTJCKLKCLWKLLCASSTKZZDNQNTTLYYZSSYSSZZRYLJQKCQDHHCRXRZYDGRGCWCGZQFFFPPJFZYNAKRGYWYQPQXXFKJTSZZXSWZDDFBBXTBGTZKZNPZZPZXZPJSZBMQHKCYXYLDKLJNYPKYGHGDZJXXEAHPNZKZTZCMXCXMMJXNKSZQNMNLWBWWXJKYHCPSTMCSQTZJYXTPCTPDTNNPGLLLZSJLSPBLPLQHDTNJNLYYRSZFFJFQWDPHZDWMRZCCLODAXNSSNYZRESTYJWJYJDBCFXNMWTTBYLWSTSZGYBLJPXGLBOCLHPCBJLTMXZLJYLZXCLTPNCLCKXTPZJSWCYXSFYSZDKNTLBYJCYJLLSTGQCBXRYZXBXKLYLHZLQZLNZCXWJZLJZJNCJHXMNZZGJZZXTZJXYCYYCXXJYYXJJXSSSJSTSSTTPPGQTCSXWZDCSYFPTFBFHFBBLZJCLZZDBXGCXLQPXKFZFLSYLTUWBMQJHSZBMDDBCYSCCLDXYCDDQLYJJWMQLLCSGLJJSYFPYYCCYLTJANTJJPWYCMMGQYYSXDXQMZHSZXPFTWWZQSWQRFKJLZJQQYFBRXJHHFWJJZYQAZMYFRHCYYBYQWLPEXCCZSTYRLTTDMQLYKMBBGMYYJPRKZNPBSXYXBHYZDJDNGHPMFSGMWFZMFQMMBCMZZCJJLCNUXYQLMLRYGQZCYXZLWJGCJCGGMCJNFYZZJHYCPRRCMTZQZXHFQGTJXCCJEAQCRJYHPLQLSZDJRBCQHQDYRHYLYXJSYMHZYDWLDFRYHBPYDTSSCNWBXGLPZMLZZTQSSCPJMXXYCSJYTYCGHYCJWYRXXLFEMWJNMKLLSWTXHYYYNCMMCWJDQDJZGLLJWJRKHPZGGFLCCSCZMCBLTBHBQJXQDSPDJZZGKGLFQYWBZYZJLTSTDHQHCTCBCHFLQMPWDSHYYTQWCNZZJTLBYMBPDYYYXSQKXWYYFLXXNCWCXYPMAELYKKJMZZZBRXYYQJFLJPFHHHYTZZXSGQQMHSPGDZQWBWPJHZJDYSCQWZKTXXSQLZYYMYSDZGRXCKKUJLWPYSYSCSYZLRMLQSYLJXBCXTLWDQZPCYCYKPPPNSXFYZJJRCEMHSZMSXLXGLRWGCSTLRSXBZGBZGZTCPLUJLSLYLYMTXMTZPALZXPXJTJWTCYYZLBLXBZLQMYLXPGHDSLSSDMXMBDZZSXWHAMLCZCPJMCNHJYSNSYGCHSKQMZZQDLLKABLWJXSFMOCDXJRRLYQZKJMYBYQLYHETFJZFRFKSRYXFJTWDSXXSYSQJYSLYXWJHSNLXYYXHBHAWHHJZXWMYLJCSSLKYDZTXBZSYFDXGXZJKHSXXYBSSXDPYNZWRPTQZCZENYGCXQFJYKJBZMLJCMQQXUOXSLYXXLYLLJDZBTYMHPFSTTQQWLHOKYBLZZALZXQLHZWRRQHLSTMYPYXJJXMQSJFNBXYXYJXXYQYLTHYLQYFMLKLJTMLLHSZWKZHLJMLHLJKLJSTLQXYLMBHHLNLZXQJHXCFXXLHYHJJGBYZZKBXSCQDJQDSUJZYYHZHHMGSXCSYMXFEBCQWWRBPYYJQTYZCYQYQQZYHMWFFHGZFRJFCDPXNTQYZPDYKHJLFRZXPPXZDBBGZQSTLGDGYLCQMLCHHMFYWLZYXKJLYPQHSYWMQQGQZMLZJNSQXJQSYJYCBEHSXFSZPXZWFLLBCYYJDYTDTHWZSFJMQQYJLMQXXLLDTTKHHYBFPWTYYSQQWNQWLGWDEBZWCMYGCULKJXTMXMYJSXHYBRWFYMWFRXYQMXYSZTZZTFYKMLDHQDXWYYNLCRYJBLPSXCXYWLSPRRJWXHQYPHTYDNXHHMMYWYTZCSQMTSSCCDALWZTCPQPYJLLQZYJSWXMZZMMYLMXCLMXCZMXMZSQTZPPQQBLPGXQZHFLJJHYTJSRXWZXSCCDLXTYJDCQJXSLQYCLZXLZZXMXQRJMHRHZJBHMFLJLMLCLQNLDXZLLLPYPSYJYSXCQQDCMQJZZXHNPNXZMEKMXHYKYQLXSXTXJYYHWDCWDZHQYYBGYBCYSCFGPSJNZDYZZJZXRZRQJJYMCANYRJTLDPPYZBSTJKXXZYPFDWFGZZRPYMTNGXZQBYXNBUFNQKRJQZMJEGRZGYCLKXZDSKKNSXKCLJSPJYYZLQQJYBZSSQLLLKJXTBKTYLCCDDBLSPPFYLGYDTZJYQGGKQTTFZXBDKTYYHYBBFYTYYBCLPDYTGDHRYRNJSPTCSNYJQHKLLLZSLYDXXWBCJQSPXBPJZJCJDZFFXXBRMLAZHCSNDLBJDSZBLPRZTSWSBXBCLLXXLZDJZSJPYLYXXYFTFFFBHJJXGBYXJPMMMPSSJZJMTLYZJXSWXTYLEDQPJMYGQZJGDJLQJWJQLLSJGJGYGMSCLJJXDTYGJQJQJCJZCJGDZZSXQGSJGGCXHQXSNQLZZBXHSGZXCXYLJXYXYYDFQQJHJFXDHCTXJYRXYSQTJXYEFYYSSYYJXNCYZXFXMSYSZXYYSCHSHXZZZGZZZGFJDLTYLNPZGYJYZYYQZPBXQBDZTZCZYXXYHHSQXSHDHGQHJHGYWSZTMZMLHYXGEBTYLZKQWYTJZRCLEKYSTDBCYKQQSAYXCJXWWGSBHJYZYDHCSJKQCXSWXFLTYNYZPZCCZJQTZWJQDZZZQZLJJXLSBHPYXXPSXSHHEZTXFPTLQYZZXHYTXNCFZYYHXGNXMYWXTZSJPTHHGYMXMXQZXTSBCZYJYXXTYYZYPCQLMMSZMJZZLLZXGXZAAJZYXJMZXWDXZSXZDZXLEYJJZQBHZWZZZQTZPSXZTDSXJJJZNYAZPHXYYSRNQDTHZHYYKYJHDZXZLSWCLYBZYECWCYCRYLCXNHZYDZYDYJDFRJJHTRSQTXYXJRJHOJYNXELXSFSFJZGHPZSXZSZDZCQZBYYKLSGSJHCZSHDGQGXYZGXCHXZJWYQWGYHKSSEQZZNDZFKWYSSTCLZSTSYMCDHJXXYWEYXCZAYDMPXMDSXYBSQMJMZJMTZQLPJYQZCGQHXJHHLXXHLHDLDJQCLDWBSXFZZYYSCHTYTYYBHECXHYKGJPXHHYZJFXHWHBDZFYZBCAPNPGNYDMSXHMMMMAMYNBYJTMPXYYMCTHJBZYFCGTYHWPHFTWZZEZSBZEGPFMTSKFTYCMHFLLHGPZJXZJGZJYXZSBBQSCZZLZCCSTPGXMJSFTCCZJZDJXCYBZLFCJSYZFGSZLYBCWZZBYZDZYPSWYJZXZBDSYUXLZZBZFYGCZXBZHZFTPBGZGEJBSTGKDMFHYZZJHZLLZZGJQZLSFDJSSCBZGPDLFZFZSZYZYZSYGCXSNXXCHCZXTZZLJFZGQSQYXZJQDCCZTQCDXZJYQJQCHXZTDLGSCXZSYQJQTZWLQDQZTQCHQQJZYEZZZPBWKDJFCJPZTYPQYQTTYNLMBDKTJZPQZQZZFPZSBNJLGYJDXJDZZKZGQKXDLPZJTCJDQBXDJQJSTCKNXBXZMSLYJCQMTJQWWCJQNJNLLLHJCWQTBZQYDZCZPZZDZYDDCYZZZCCJTTJFZDPRRTZTJDCQTQZDTJNPLZBCLLCTZSXKJZQZPZLBZRBTJDCXFCZDBCCJJLTQQPLDCGZDBBZJCQDCJWYNLLZYZCCDWLLXWZLXRXNTQQCZXKQLSGDFQTDDGLRLAJJTKUYMKQLLTZYTDYYCZGJWYXDXFRSKSTQTENQMRKQZHHQKDLDAZFKYPBGGPZREBZZYKZZSPEGJXGYKQZZZSLYSYYYZWFQZYLZZLZHWCHKYPQGNPGBLPLRRJYXCCSYYHSFZFYBZYYTGZXYLXCZWXXZJZBLFFLGSKHYJZEYJHLPLLLLCZGXDRZELRHGKLZZYHZLYQSZZJZQLJZFLNBHGWLCZCFJYSPYXZLZLXGCCPZBLLCYBBBBUBBCBPCRNNZCZYRBFSRLDCGQYYQXYGMQZWTZYTYJXYFWTEHZZJYWLCCNTZYJJZDEDPZDZTSYQJHDYMBJNYJZLXTSSTPHNDJXXBYXQTZQDDTJTDYYTGWSCSZQFLSHLGLBCZPHDLYZJYCKWTYTYLBNYTSDSYCCTYSZYYEBHEXHQDTWNYGYCLXTSZYSTQMYGZAZCCSZZDSLZCLZRQXYYELJSBYMXSXZTEMBBLLYYLLYTDQYSHYMRQWKFKBFXNXSBYCHXBWJYHTQBPBSBWDZYLKGZSKYHXQZJXHXJXGNLJKZLYYCDXLFYFGHLJGJYBXQLYBXQPQGZTZPLNCYPXDJYQYDYMRBESJYYHKXXSTMXRCZZYWXYQYBMCLLYZHQYZWQXDBXBZWZMSLPDMYSKFMZKLZCYQYCZLQXFZZYDQZPZYGYJYZMZXDZFYFYTTQTZHGSPCZMLCCYTZXJCYTJMKSLPZHYSNZLLYTPZCTZZCKTXDHXXTQCYFKSMQCCYYAZHTJPCYLZLYJBJXTPNYLJYYNRXSYLMMNXJSMYBCSYSYLZYLXJJQYLDZLPQBFZZBLFNDXQKCZFYWHGQMRDSXYCYTXNQQJZYYPFZXDYZFPRXEJDGYQBXRCNFYYQPGHYJDYZXGRHTKYLNWDZNTSMPKLBTHBPYSZBZTJZSZZJTYYXZPHSSZZBZCZPTQFZMYFLYPYBBJQXZMXXDJMTSYSKKBJZXHJCKLPSMKYJZCXTMLJYXRZZQSLXXQPYZXMKYXXXJCLJPRMYYGADYSKQLSNDHYZKQXZYZTCGHZTLMLWZYBWSYCTBHJHJFCWZTXWYTKZLXQSHLYJZJXTMPLPYCGLTBZZTLZJCYJGDTCLKLPLLQPJMZPAPXYZLKKTKDZCZZBNZDYDYQZJYJGMCTXLTGXSZLMLHBGLKFWNWZHDXUHLFMKYSLGXDTWWFRJEJZTZHYDXYKSHWFZCQSHKTMQQHTZHYMJDJSKHXZJZBZZXYMPAGQMSTPXLSKLZYNWRTSQLSZBPSPSGZWYHTLKSSSWHZZLYYTNXJGMJSZSUFWNLSOZTXGXLSAMMLBWLDSZYLAKQCQCTMYCFJBSLXCLZZCLXXKSBZQCLHJPSQPLSXXCKSLNHPSFQQYTXYJZLQLDXZQJZDYYDJNZPTUZDSKJFSLJHYLZSQZLBTXYDGTQFDBYAZXDZHZJNHHQBYKNXJJQCZMLLJZKSPLDYCLBBLXKLELXJLBQYCXJXGCNLCQPLZLZYJTZLJGYZDZPLTQCSXFDMNYCXGBTJDCZNBGBQYQJWGKFHTNPYQZQGBKPBBYZMTJDYTBLSQMPSXTBNPDXKLEMYYCJYNZCTLDYKZZXDDXHQSHDGMZSJYCCTAYRZLPYLTLKXSLZCGGEXCLFXLKJRTLQJAQZNCMBYDKKCXGLCZJZXJHPTDJJMZQYKQSECQZDSHHADMLZFMMZBGNTJNNLGBYJBRBTMLBYJDZXLCJLPLDLPCQDHLXZLYCBLCXZZJADJLNZMMSSSMYBHBSQKBHRSXXJMXSDZNZPXLGBRHWGGFCXGMSKLLTSJYYCQLTSKYWYYHYWXBXQYWPYWYKQLSQPTNTKHQCWDQKTWPXXHCPTHTWUMSSYHBWCRWXHJMKMZNGWTMLKFGHKJYLSYYCXWHYECLQHKQHTTQKHFZLDXQWYZYYDESBPKYRZPJFYYZJCEQDZZDLATZBBFJLLCXDLMJSSXEGYGSJQXCWBXSSZPDYZCXDNYXPPZYDLYJCZPLTXLSXYZYRXCYYYDYLWWNZSAHJSYQYHGYWWAXTJZDAXYSRLTDPSSYYFNEJDXYZHLXLLLZQZSJNYQYQQXYJGHZGZCYJCHZLYCDSHWSHJZYJXCLLNXZJJYYXNFXMWFPYLCYLLABWDDHWDXJMCXZTZPMLQZHSFHZYNZTLLDYWLSLXHYMMYLMBWWKYXYADTXYLLDJPYBPWUXJMWMLLSAFDLLYFLBHHHBQQLTZJCQJLDJTFFKMMMBYTHYGDCQRDDWRQJXNBYSNWZDBYYTBJHPYBYTTJXAAHGQDQTMYSTQXKBTZPKJLZRBEQQSSMJJBDJOTGTBXPGBKTLHQXJJJCTHXQDWJLWRFWQGWSHCKRYSWGFTGYGBXSDWDWRFHWYTJJXXXJYZYSLPYYYPAYXHYDQKXSHXYXGSKQHYWFDDDPPLCJLQQEEWXKSYYKDYPLTJTHKJLTCYYHHJTTPLTZZCDLTHQKZXQYSTEEYWYYZYXXYYSTTJKLLPZMCYHQGXYHSRMBXPLLNQYDQHXSXXWGDQBSHYLLPJJJTHYJKYPPTHYYKTYEZYENMDSHLCRPQFDGFXZPSFTLJXXJBSWYYSKSFLXLPPLBBBLBSFXFYZBSJSSYLPBBFFFFSSCJDSTZSXZRYYSYFFSYZYZBJTBCTSBSDHRTJJBYTCXYJEYLXCBNEBJDSYXYKGSJZBXBYTFZWGENYHHTHZHHXFWGCSTBGXKLSXYWMTMBYXJSTZSCDYQRCYTWXZFHMYMCXLZNSDJTTTXRYCFYJSBSDYERXJLJXBBDEYNJGHXGCKGSCYMBLXJMSZNSKGXFBNBPTHFJAAFXYXFPXMYPQDTZCXZZPXRSYWZDLYBBKTYQPQJPZYPZJZNJPZJLZZFYSBTTSLMPTZRTDXQSJEHBZYLZDHLJSQMLHTXTJECXSLZZSPKTLZKQQYFSYGYWPCPQFHQHYTQXZKRSGTTSQCZLPTXCDYYZXSQZSLXLZMYCPCQBZYXHBSXLZDLTCDXTYLZJYYZPZYZLTXJSJXHLPMYTXCQRBLZSSFJZZTNJYTXMYJHLHPPLCYXQJQQKZZSCPZKSWALQSBLCCZJSXGWWWYGYKTJBBZTDKHXHKGTGPBKQYSLPXPJCKBMLLXDZSTBKLGGQKQLSBKKTFXRMDKBFTPZFRTBBRFERQGXYJPZSSTLBZTPSZQZSJDHLJQLZBPMSMMSXLQQNHKNBLRDDNXXDHDDJCYYGYLXGZLXSYGMQQGKHBPMXYXLYTQWLWGCPBMQXCYZYDRJBHTDJYHQSHTMJSBYPLWHLZFFNYPMHXXHPLTBQPFBJWQDBYGPNZTPFZJGSDDTQSHZEAWZZYLLTYYBWJKXXGHLFKXDJTMSZSQYNZGGSWQSPHTLSSKMCLZXYSZQZXNCJDQGZDLFNYKLJCJLLZLMZZNHYDSSHTHZZLZZBBHQZWWYCRZHLYQQJBEYFXXXWHSRXWQHWPSLMSSKZTTYGYQQWRSLALHMJTQJSMXQBJJZJXZYZKXBYQXBJXSHZTSFJLXMXZXFGHKZSZGGYLCLSARJYHSLLLMZXELGLXYDJYTLFBHBPNLYZFBBHPTGJKWETZHKJJXZXXGLLJLSTGSHJJYQLQZFKCGNNDJSSZFDBCTWWSEQFHQJBSAQTGYPQLBXBMMYWXGSLZHGLZGQYFLZBYFZJFRYSFMBYZHQGFWZSYFYJJPHZBYYZFFWODGRLMFTWLBZGYCQXCDJYGZYYYYTYTYDWEGAZYHXJLZYYHLRMGRXXZCLHNELJJTJTPWJYBJJBXJJTJTEEKHWSLJPLPSFYZPQQBDLQJJTYYQLYZKDKSQJYYQZLDQTGJQYZJSUCMRYQTHTEJMFCTYHYPKMHYZWJDQFHYYXWSHCTXRLJHQXHCCYYYJLTKTTYTMXGTCJTZAYYOCZLYLBSZYWJYTSJYHBYSHFJLYGJXXTMZYYLTXXYPZLXYJZYZYYPNHMYMDYYLBLHLSYYQQLLNJJYMSOYQBZGDLYXYLCQYXTSZEGXHZGLHWBLJHEYXTWQMAKBPQCGYSHHEGQCMWYYWLJYJHYYZLLJJYLHZYHMGSLJLJXCJJYCLYCJPCPZJZJMMYLCQLNQLJQJSXYJMLSZLJQLYCMMHCFMMFPQQMFYLQMCFFQMMMMHMZNFHHJGTTHHKHSLNCHHYQDXTMMQDCYZYXYQMYQYLTDCYYYZAZZCYMZYDLZFFFMMYCQZWZZMABTBYZTDMNZZGGDFTYPCGQYTTSSFFWFDTZQSSYSTWXJHXYTSXXYLBYQHWWKXHZXWZNNZZJZJJQJCCCHYYXBZXZCYZTLLCQXYNJYCYYCYNZZQYYYEWYCZDCJYCCHYJLBTZYYCQWMPWPYMLGKDLDLGKQQBGYCHJXY", oMultiDiff = (_defineProperty(_oMultiDiff = {
    19969: "DZ",
    19975: "WM",
    19988: "QJ",
    20048: "YL",
    20056: "SC",
    20060: "NM",
    20094: "QG",
    20127: "QJ",
    20167: "QC",
    20193: "YG",
    20250: "KH",
    20256: "ZC",
    20282: "SC",
    20285: "QJG",
    20291: "TD",
    20314: "YD",
    20340: "NE",
    20375: "TD",
    20389: "YJ",
    20391: "CZ",
    20415: "PB",
    20446: "YS",
    20447: "SQ",
    20504: "TC",
    20608: "KG",
    20854: "QJ",
    20857: "ZC",
    20911: "PF"
}, "20504", "TC"), _defineProperty(_oMultiDiff, "20608", "KG"), _defineProperty(_oMultiDiff, "20854", "QJ"), 
_defineProperty(_oMultiDiff, "20857", "ZC"), _defineProperty(_oMultiDiff, "20911", "PF"), 
_defineProperty(_oMultiDiff, 20985, "AW"), _defineProperty(_oMultiDiff, 21032, "PB"), 
_defineProperty(_oMultiDiff, 21048, "XQ"), _defineProperty(_oMultiDiff, 21049, "SC"), 
_defineProperty(_oMultiDiff, 21089, "YS"), _defineProperty(_oMultiDiff, 21119, "JC"), 
_defineProperty(_oMultiDiff, 21242, "SB"), _defineProperty(_oMultiDiff, 21273, "SC"), 
_defineProperty(_oMultiDiff, 21305, "YP"), _defineProperty(_oMultiDiff, 21306, "QO"), 
_defineProperty(_oMultiDiff, 21330, "ZC"), _defineProperty(_oMultiDiff, 21333, "SDC"), 
_defineProperty(_oMultiDiff, 21345, "QK"), _defineProperty(_oMultiDiff, 21378, "CA"), 
_defineProperty(_oMultiDiff, 21397, "SC"), _defineProperty(_oMultiDiff, 21414, "XS"), 
_defineProperty(_oMultiDiff, 21442, "SC"), _defineProperty(_oMultiDiff, 21477, "JG"), 
_defineProperty(_oMultiDiff, 21480, "TD"), _defineProperty(_oMultiDiff, 21484, "ZS"), 
_defineProperty(_oMultiDiff, 21494, "YX"), _defineProperty(_oMultiDiff, 21505, "YX"), 
_defineProperty(_oMultiDiff, 21512, "HG"), _defineProperty(_oMultiDiff, 21523, "XH"), 
_defineProperty(_oMultiDiff, 21537, "PB"), _defineProperty(_oMultiDiff, 21542, "PF"), 
_defineProperty(_oMultiDiff, 21549, "KH"), _defineProperty(_oMultiDiff, 21571, "E"), 
_defineProperty(_oMultiDiff, 21574, "DA"), _defineProperty(_oMultiDiff, 21588, "TD"), 
_defineProperty(_oMultiDiff, 21589, "O"), _defineProperty(_oMultiDiff, 21618, "ZC"), 
_defineProperty(_oMultiDiff, 21621, "KHA"), _defineProperty(_oMultiDiff, 21632, "ZJ"), 
_defineProperty(_oMultiDiff, 21654, "KG"), _defineProperty(_oMultiDiff, 21679, "LKG"), 
_defineProperty(_oMultiDiff, 21683, "KH"), _defineProperty(_oMultiDiff, 21710, "A"), 
_defineProperty(_oMultiDiff, 21719, "YH"), _defineProperty(_oMultiDiff, 21734, "WOE"), 
_defineProperty(_oMultiDiff, 21769, "A"), _defineProperty(_oMultiDiff, 21780, "WN"), 
_defineProperty(_oMultiDiff, 21804, "XH"), _defineProperty(_oMultiDiff, 21834, "A"), 
_defineProperty(_oMultiDiff, 21899, "ZD"), _defineProperty(_oMultiDiff, 21903, "RN"), 
_defineProperty(_oMultiDiff, 21908, "WO"), _defineProperty(_oMultiDiff, 21939, "ZC"), 
_defineProperty(_oMultiDiff, 21956, "SA"), _defineProperty(_oMultiDiff, 21964, "YA"), 
_defineProperty(_oMultiDiff, 21970, "TD"), _defineProperty(_oMultiDiff, 22003, "A"), 
_defineProperty(_oMultiDiff, 22031, "JG"), _defineProperty(_oMultiDiff, 22040, "XS"), 
_defineProperty(_oMultiDiff, 22060, "ZC"), _defineProperty(_oMultiDiff, 22066, "ZC"), 
_defineProperty(_oMultiDiff, 22079, "MH"), _defineProperty(_oMultiDiff, 22129, "XJ"), 
_defineProperty(_oMultiDiff, 22179, "XA"), _defineProperty(_oMultiDiff, 22237, "NJ"), 
_defineProperty(_oMultiDiff, 22244, "TD"), _defineProperty(_oMultiDiff, 22280, "JQ"), 
_defineProperty(_oMultiDiff, 22300, "YH"), _defineProperty(_oMultiDiff, 22313, "XW"), 
_defineProperty(_oMultiDiff, 22331, "YQ"), _defineProperty(_oMultiDiff, 22343, "YJ"), 
_defineProperty(_oMultiDiff, 22351, "PH"), _defineProperty(_oMultiDiff, 22395, "DC"), 
_defineProperty(_oMultiDiff, 22412, "TD"), _defineProperty(_oMultiDiff, 22484, "PB"), 
_defineProperty(_oMultiDiff, 22500, "PB"), _defineProperty(_oMultiDiff, 22534, "ZD"), 
_defineProperty(_oMultiDiff, 22549, "DH"), _defineProperty(_oMultiDiff, 22561, "PB"), 
_defineProperty(_oMultiDiff, 22612, "TD"), _defineProperty(_oMultiDiff, 22771, "KQ"), 
_defineProperty(_oMultiDiff, 22831, "HB"), _defineProperty(_oMultiDiff, 22841, "JG"), 
_defineProperty(_oMultiDiff, 22855, "QJ"), _defineProperty(_oMultiDiff, 22865, "XQ"), 
_defineProperty(_oMultiDiff, 23013, "ML"), _defineProperty(_oMultiDiff, 23081, "WM"), 
_defineProperty(_oMultiDiff, 23487, "SX"), _defineProperty(_oMultiDiff, 23558, "QJ"), 
_defineProperty(_oMultiDiff, 23561, "YW"), _defineProperty(_oMultiDiff, 23586, "YW"), 
_defineProperty(_oMultiDiff, 23614, "YW"), _defineProperty(_oMultiDiff, 23615, "SN"), 
_defineProperty(_oMultiDiff, 23631, "PB"), _defineProperty(_oMultiDiff, 23646, "ZS"), 
_defineProperty(_oMultiDiff, 23663, "ZT"), _defineProperty(_oMultiDiff, 23673, "YG"), 
_defineProperty(_oMultiDiff, 23762, "TD"), _defineProperty(_oMultiDiff, 23769, "ZS"), 
_defineProperty(_oMultiDiff, 23780, "QJ"), _defineProperty(_oMultiDiff, 23884, "QK"), 
_defineProperty(_oMultiDiff, 24055, "XH"), _defineProperty(_oMultiDiff, 24113, "DC"), 
_defineProperty(_oMultiDiff, 24162, "ZC"), _defineProperty(_oMultiDiff, 24191, "GA"), 
_defineProperty(_oMultiDiff, 24273, "QJ"), _defineProperty(_oMultiDiff, 24324, "NL"), 
_defineProperty(_oMultiDiff, 24377, "TD"), _defineProperty(_oMultiDiff, 24378, "QJ"), 
_defineProperty(_oMultiDiff, 24439, "PF"), _defineProperty(_oMultiDiff, 24554, "ZS"), 
_defineProperty(_oMultiDiff, 24683, "TD"), _defineProperty(_oMultiDiff, 24694, "WE"), 
_defineProperty(_oMultiDiff, 24733, "LK"), _defineProperty(_oMultiDiff, 24925, "TN"), 
_defineProperty(_oMultiDiff, 25094, "ZG"), _defineProperty(_oMultiDiff, 25100, "XQ"), 
_defineProperty(_oMultiDiff, 25103, "XH"), _defineProperty(_oMultiDiff, 25153, "PB"), 
_defineProperty(_oMultiDiff, 25170, "PB"), _defineProperty(_oMultiDiff, 25179, "KG"), 
_defineProperty(_oMultiDiff, 25203, "PB"), _defineProperty(_oMultiDiff, 25240, "ZS"), 
_defineProperty(_oMultiDiff, 25282, "FB"), _defineProperty(_oMultiDiff, 25303, "NA"), 
_defineProperty(_oMultiDiff, 25324, "KG"), _defineProperty(_oMultiDiff, 25341, "ZY"), 
_defineProperty(_oMultiDiff, 25373, "WZ"), _defineProperty(_oMultiDiff, 25375, "XJ"), 
_defineProperty(_oMultiDiff, 25384, "A"), _defineProperty(_oMultiDiff, 25457, "A"), 
_defineProperty(_oMultiDiff, 25528, "SD"), _defineProperty(_oMultiDiff, 25530, "SC"), 
_defineProperty(_oMultiDiff, 25552, "TD"), _defineProperty(_oMultiDiff, 25774, "ZC"), 
_defineProperty(_oMultiDiff, 25874, "ZC"), _defineProperty(_oMultiDiff, 26044, "YW"), 
_defineProperty(_oMultiDiff, 26080, "WM"), _defineProperty(_oMultiDiff, 26292, "PB"), 
_defineProperty(_oMultiDiff, 26333, "PB"), _defineProperty(_oMultiDiff, 26355, "ZY"), 
_defineProperty(_oMultiDiff, 26366, "CZ"), _defineProperty(_oMultiDiff, 26397, "ZC"), 
_defineProperty(_oMultiDiff, 26399, "QJ"), _defineProperty(_oMultiDiff, 26415, "ZS"), 
_defineProperty(_oMultiDiff, 26451, "SB"), _defineProperty(_oMultiDiff, 26526, "ZC"), 
_defineProperty(_oMultiDiff, 26552, "JG"), _defineProperty(_oMultiDiff, 26561, "TD"), 
_defineProperty(_oMultiDiff, 26588, "JG"), _defineProperty(_oMultiDiff, 26597, "CZ"), 
_defineProperty(_oMultiDiff, 26629, "ZS"), _defineProperty(_oMultiDiff, 26638, "YL"), 
_defineProperty(_oMultiDiff, 26646, "XQ"), _defineProperty(_oMultiDiff, 26653, "KG"), 
_defineProperty(_oMultiDiff, 26657, "XJ"), _defineProperty(_oMultiDiff, 26727, "HG"), 
_defineProperty(_oMultiDiff, 26894, "ZC"), _defineProperty(_oMultiDiff, 26937, "ZS"), 
_defineProperty(_oMultiDiff, 26946, "ZC"), _defineProperty(_oMultiDiff, 26999, "KJ"), 
_defineProperty(_oMultiDiff, 27099, "KJ"), _defineProperty(_oMultiDiff, 27449, "YQ"), 
_defineProperty(_oMultiDiff, 27481, "XS"), _defineProperty(_oMultiDiff, 27542, "ZS"), 
_defineProperty(_oMultiDiff, 27663, "ZS"), _defineProperty(_oMultiDiff, 27748, "TS"), 
_defineProperty(_oMultiDiff, 27784, "SC"), _defineProperty(_oMultiDiff, 27788, "ZD"), 
_defineProperty(_oMultiDiff, 27795, "TD"), _defineProperty(_oMultiDiff, 27812, "O"), 
_defineProperty(_oMultiDiff, 27850, "PB"), _defineProperty(_oMultiDiff, 27852, "MB"), 
_defineProperty(_oMultiDiff, 27895, "SL"), _defineProperty(_oMultiDiff, 27898, "PL"), 
_defineProperty(_oMultiDiff, 27973, "QJ"), _defineProperty(_oMultiDiff, 27981, "KH"), 
_defineProperty(_oMultiDiff, 27986, "HX"), _defineProperty(_oMultiDiff, 27994, "XJ"), 
_defineProperty(_oMultiDiff, 28044, "YC"), _defineProperty(_oMultiDiff, 28065, "WG"), 
_defineProperty(_oMultiDiff, 28177, "SM"), _defineProperty(_oMultiDiff, 28267, "QJ"), 
_defineProperty(_oMultiDiff, 28291, "KH"), _defineProperty(_oMultiDiff, 28337, "ZQ"), 
_defineProperty(_oMultiDiff, 28463, "TL"), _defineProperty(_oMultiDiff, 28548, "DC"), 
_defineProperty(_oMultiDiff, 28601, "TD"), _defineProperty(_oMultiDiff, 28689, "PB"), 
_defineProperty(_oMultiDiff, 28805, "JG"), _defineProperty(_oMultiDiff, 28820, "QG"), 
_defineProperty(_oMultiDiff, 28846, "PB"), _defineProperty(_oMultiDiff, 28952, "TD"), 
_defineProperty(_oMultiDiff, 28975, "ZC"), _defineProperty(_oMultiDiff, 29100, "A"), 
_defineProperty(_oMultiDiff, 29325, "QJ"), _defineProperty(_oMultiDiff, 29575, "SL"), 
_defineProperty(_oMultiDiff, 29602, "FB"), _defineProperty(_oMultiDiff, 30010, "TD"), 
_defineProperty(_oMultiDiff, 30044, "CX"), _defineProperty(_oMultiDiff, 30058, "PF"), 
_defineProperty(_oMultiDiff, 30091, "YSP"), _defineProperty(_oMultiDiff, 30111, "YN"), 
_defineProperty(_oMultiDiff, 30229, "XJ"), _defineProperty(_oMultiDiff, 30427, "SC"), 
_defineProperty(_oMultiDiff, 30465, "SX"), _defineProperty(_oMultiDiff, 30631, "YQ"), 
_defineProperty(_oMultiDiff, 30655, "QJ"), _defineProperty(_oMultiDiff, 30684, "QJG"), 
_defineProperty(_oMultiDiff, 30707, "SD"), _defineProperty(_oMultiDiff, 30729, "XH"), 
_defineProperty(_oMultiDiff, 30796, "LG"), _defineProperty(_oMultiDiff, 30917, "PB"), 
_defineProperty(_oMultiDiff, 31074, "NM"), _defineProperty(_oMultiDiff, 31085, "JZ"), 
_defineProperty(_oMultiDiff, 31109, "SC"), _defineProperty(_oMultiDiff, 31181, "ZC"), 
_defineProperty(_oMultiDiff, 31192, "MLB"), _defineProperty(_oMultiDiff, 31293, "JQ"), 
_defineProperty(_oMultiDiff, 31400, "YX"), _defineProperty(_oMultiDiff, 31584, "YJ"), 
_defineProperty(_oMultiDiff, 31896, "ZN"), _defineProperty(_oMultiDiff, 31909, "ZY"), 
_defineProperty(_oMultiDiff, 31995, "XJ"), _defineProperty(_oMultiDiff, 32321, "PF"), 
_defineProperty(_oMultiDiff, 32327, "ZY"), _defineProperty(_oMultiDiff, 32418, "HG"), 
_defineProperty(_oMultiDiff, 32420, "XQ"), _defineProperty(_oMultiDiff, 32421, "HG"), 
_defineProperty(_oMultiDiff, 32438, "LG"), _defineProperty(_oMultiDiff, 32473, "GJ"), 
_defineProperty(_oMultiDiff, 32488, "TD"), _defineProperty(_oMultiDiff, 32521, "QJ"), 
_defineProperty(_oMultiDiff, 32527, "PB"), _defineProperty(_oMultiDiff, 32562, "ZSQ"), 
_defineProperty(_oMultiDiff, 32564, "JZ"), _defineProperty(_oMultiDiff, 32735, "ZD"), 
_defineProperty(_oMultiDiff, 32793, "PB"), _defineProperty(_oMultiDiff, 33071, "PF"), 
_defineProperty(_oMultiDiff, 33098, "XL"), _defineProperty(_oMultiDiff, 33100, "YA"), 
_defineProperty(_oMultiDiff, 33152, "PB"), _defineProperty(_oMultiDiff, 33261, "CX"), 
_defineProperty(_oMultiDiff, 33324, "BP"), _defineProperty(_oMultiDiff, 33333, "TD"), 
_defineProperty(_oMultiDiff, 33406, "YA"), _defineProperty(_oMultiDiff, 33426, "WM"), 
_defineProperty(_oMultiDiff, 33432, "PB"), _defineProperty(_oMultiDiff, 33445, "JG"), 
_defineProperty(_oMultiDiff, 33486, "ZN"), _defineProperty(_oMultiDiff, 33493, "TS"), 
_defineProperty(_oMultiDiff, 33507, "QJ"), _defineProperty(_oMultiDiff, 33540, "QJ"), 
_defineProperty(_oMultiDiff, 33544, "ZC"), _defineProperty(_oMultiDiff, 33564, "XQ"), 
_defineProperty(_oMultiDiff, 33617, "YT"), _defineProperty(_oMultiDiff, 33632, "QJ"), 
_defineProperty(_oMultiDiff, 33636, "XH"), _defineProperty(_oMultiDiff, 33637, "YX"), 
_defineProperty(_oMultiDiff, 33694, "WG"), _defineProperty(_oMultiDiff, 33705, "PF"), 
_defineProperty(_oMultiDiff, 33728, "YW"), _defineProperty(_oMultiDiff, 33882, "SR"), 
_defineProperty(_oMultiDiff, 34067, "WM"), _defineProperty(_oMultiDiff, 34074, "YW"), 
_defineProperty(_oMultiDiff, 34121, "QJ"), _defineProperty(_oMultiDiff, 34255, "ZC"), 
_defineProperty(_oMultiDiff, 34259, "XL"), _defineProperty(_oMultiDiff, 34425, "JH"), 
_defineProperty(_oMultiDiff, 34430, "XH"), _defineProperty(_oMultiDiff, 34485, "KH"), 
_defineProperty(_oMultiDiff, 34503, "YS"), _defineProperty(_oMultiDiff, 34532, "HG"), 
_defineProperty(_oMultiDiff, 34552, "XS"), _defineProperty(_oMultiDiff, 34558, "YE"), 
_defineProperty(_oMultiDiff, 34593, "ZL"), _defineProperty(_oMultiDiff, 34660, "YQ"), 
_defineProperty(_oMultiDiff, 34892, "XH"), _defineProperty(_oMultiDiff, 34928, "SC"), 
_defineProperty(_oMultiDiff, 34999, "QJ"), _defineProperty(_oMultiDiff, 35048, "PB"), 
_defineProperty(_oMultiDiff, 35059, "SC"), _defineProperty(_oMultiDiff, 35098, "ZC"), 
_defineProperty(_oMultiDiff, 35203, "TQ"), _defineProperty(_oMultiDiff, 35265, "JX"), 
_defineProperty(_oMultiDiff, 35299, "JX"), _defineProperty(_oMultiDiff, 35782, "SZ"), 
_defineProperty(_oMultiDiff, 35828, "YS"), _defineProperty(_oMultiDiff, 35830, "E"), 
_defineProperty(_oMultiDiff, 35843, "TD"), _defineProperty(_oMultiDiff, 35895, "YG"), 
_defineProperty(_oMultiDiff, 35977, "MH"), _defineProperty(_oMultiDiff, 36158, "JG"), 
_defineProperty(_oMultiDiff, 36228, "QJ"), _defineProperty(_oMultiDiff, 36426, "XQ"), 
_defineProperty(_oMultiDiff, 36466, "DC"), _defineProperty(_oMultiDiff, 36710, "JC"), 
_defineProperty(_oMultiDiff, 36711, "ZYG"), _defineProperty(_oMultiDiff, 36767, "PB"), 
_defineProperty(_oMultiDiff, 36866, "SK"), _defineProperty(_oMultiDiff, 36951, "YW"), 
_defineProperty(_oMultiDiff, 37034, "YX"), _defineProperty(_oMultiDiff, 37063, "XH"), 
_defineProperty(_oMultiDiff, 37218, "ZC"), _defineProperty(_oMultiDiff, 37325, "ZC"), 
_defineProperty(_oMultiDiff, 38063, "PB"), _defineProperty(_oMultiDiff, 38079, "TD"), 
_defineProperty(_oMultiDiff, 38085, "QY"), _defineProperty(_oMultiDiff, 38107, "DC"), 
_defineProperty(_oMultiDiff, 38116, "TD"), _defineProperty(_oMultiDiff, 38123, "YD"), 
_defineProperty(_oMultiDiff, 38224, "HG"), _defineProperty(_oMultiDiff, 38241, "XTC"), 
_defineProperty(_oMultiDiff, 38271, "ZC"), _defineProperty(_oMultiDiff, 38415, "YE"), 
_defineProperty(_oMultiDiff, 38426, "KH"), _defineProperty(_oMultiDiff, 38461, "YD"), 
_defineProperty(_oMultiDiff, 38463, "AE"), _defineProperty(_oMultiDiff, 38466, "PB"), 
_defineProperty(_oMultiDiff, 38477, "XJ"), _defineProperty(_oMultiDiff, 38518, "YT"), 
_defineProperty(_oMultiDiff, 38551, "WK"), _defineProperty(_oMultiDiff, 38585, "ZC"), 
_defineProperty(_oMultiDiff, 38704, "XS"), _defineProperty(_oMultiDiff, 38739, "LJ"), 
_defineProperty(_oMultiDiff, 38761, "GJ"), _defineProperty(_oMultiDiff, 38808, "SQ"), 
_defineProperty(_oMultiDiff, 39048, "JG"), _defineProperty(_oMultiDiff, 39049, "XJ"), 
_defineProperty(_oMultiDiff, 39052, "HG"), _defineProperty(_oMultiDiff, 39076, "CZ"), 
_defineProperty(_oMultiDiff, 39271, "XT"), _defineProperty(_oMultiDiff, 39534, "TD"), 
_defineProperty(_oMultiDiff, 39552, "TD"), _defineProperty(_oMultiDiff, 39584, "PB"), 
_defineProperty(_oMultiDiff, 39647, "SB"), _defineProperty(_oMultiDiff, 39730, "LG"), 
_defineProperty(_oMultiDiff, 39748, "TPB"), _defineProperty(_oMultiDiff, 40109, "ZQ"), 
_defineProperty(_oMultiDiff, 40479, "ND"), _defineProperty(_oMultiDiff, 40516, "HG"), 
_defineProperty(_oMultiDiff, 40536, "HG"), _defineProperty(_oMultiDiff, 40583, "QJ"), 
_defineProperty(_oMultiDiff, 40765, "YQ"), _defineProperty(_oMultiDiff, 40784, "QJ"), 
_defineProperty(_oMultiDiff, 40840, "YK"), _defineProperty(_oMultiDiff, 40863, "QJG"), 
_oMultiDiff);

function makePy(str) {
    if ("string" != typeof str) throw new Error(-1, "函数makePy需要字符串类型参数!");
    for (var arrResult = new Array(), i = 0, len = str.length; i < len; i++) {
        var ch = str.charAt(i);
        arrResult.push(checkCh(ch));
    }
    return mkRslt(arrResult);
}

function checkCh(ch) {
    var uni = ch.charCodeAt(0);
    return 40869 < uni || uni < 19968 ? ch : oMultiDiff[uni] ? oMultiDiff[uni] : strChineseFirstPY.charAt(uni - 19968);
}

function mkRslt(arr) {
    for (var arrRslt = [ "" ], i = 0, len = arr.length; i < len; i++) {
        var str = arr[i], strlen = str.length;
        if (1 == strlen) for (var k = 0; k < arrRslt.length; k++) arrRslt[k] += str; else {
            var tmpArr = arrRslt.slice(0);
            for (arrRslt = [], k = 0; k < strlen; k++) {
                for (var tmp = tmpArr.slice(0), j = 0; j < tmp.length; j++) tmp[j] += str.charAt(k);
                arrRslt = arrRslt.concat(tmp);
            }
        }
    }
    return arrRslt;
}

String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}, String.prototype.replaceAll = function(a, b) {
    var reg = new RegExp(a, "g");
    return this.replace(reg, b);
};

var pinyin = {};

pinyin.makePy = makePy, Date.prototype.format = function(fmt) {
    var o = {
        "M+": this.getMonth() + 1,
        "d+": this.getDate(),
        "h+": this.getHours(),
        "m+": this.getMinutes(),
        "s+": this.getSeconds(),
        "q+": Math.floor((this.getMonth() + 3) / 3),
        S: this.getMilliseconds()
    };
    for (var k in /(y+)/.test(fmt) && (fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length))), 
    o) new RegExp("(" + k + ")").test(fmt) && (fmt = fmt.replace(RegExp.$1, 1 == RegExp.$1.length ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}, "undefined" != typeof dhtmlXCalendarObject && dhtmlXCalendarObject && (dhtmlXCalendarObject.prototype.langData.ch = {
    dateformat: "%Y-%m-%d",
    monthesFNames: [ "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" ],
    monthesSNames: [ "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" ],
    daysFNames: [ "星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" ],
    daysSNames: [ "日", "一", "二", "三", "四", "五", "六" ],
    weekstart: "周日",
    weekname: "星期",
    today: "今天",
    clear: "清除"
}, dhtmlXCalendarObject.prototype.lang = "ch");

var Prolog = {
    GridImageBasePath: "/prologui/dist/images/PlgGrid/",
    token: "",
    reloadToken: function() {
        Prolog.token = localStorage.getItem("authorization");
    },
    loginUrl: "",
    loginPage: "",
    refreshTokenUrl: "",
    showLoginForm: !1
};

function _t(key, selector) {
    try {
        if (!selector) {
            var v = i18next.t(key);
            return null == v ? key : v;
        }
        $(selector).attr("data-i18n", key);
    } catch (_unused) {
        return key;
    }
}

function setNavLang(element, arr, color) {
    var lan;
    if (arr && i18next) {
        lan = localStorage.getItem("lag");
        var li = '<a href="javascript:;"><i class="icon iconfont p-icon-lang_'.concat(lan, '" style="color:').concat(color || "", ';height:0.32rem;margin:0 10px;\n          font-size: 0.32rem;\n          vertical-align: middle;"></i>\n</a><dl class="plg-nav-child layui-nav-child">');
        for (var key in arr) li += "<dd " + (lan == key ? 'class="layui-this"' : "") + '><a href="javascript:;" title="' + key + '">' + arr[key] + "</a></dd>";
        li += "</dl>", li = $(li);
        var a = $(li[0]);
        $(li[1]).find("dd").click(function(e) {
            e.preventDefault(), $(this).addClass("layui-this").siblings().removeClass("layui-this"), 
            i18next.changeLanguage($(this).children("a").attr("title")), a.find("i").attr("class", "icon iconfont p-icon-lang_".concat($(this).children("a").attr("title"))), 
            $(this).parents("dl.plg-nav-child").hide();
        }), $(element).append(li).localize(), layui.element.render("nav"), null;
    }
}

Prolog.reloadToken(), Prolog.getTop = function(e) {
    var offset = e.offsetTop;
    return null != e.offsetParent && (offset += Prolog.getTop(e.offsetParent)), offset;
}, Prolog.getLeft = function(e) {
    var offset = e.offsetLeft;
    return null != e.offsetParent && (offset += Prolog.getLeft(e.offsetParent)), offset;
}, Prolog.hasJson = function(jsonArray, json) {
    for (var i = 0; i < jsonArray.length; i++) {
        var b = !0;
        for (var key in jsonArray[i]) if (jsonArray[i][key] != json[key]) {
            b = !1;
            break;
        }
        if (b) return i;
    }
    return -1;
}, Prolog.validatePassword = function(pass, options) {
    var close = PlgDialog.loading2();
    if (null == pass || "" == pass) return close(), layer.msg(_t("请输入有效密码"), function() {}), 
    !1;
    var userinfo = JSON.parse(localStorage.getItem("userinfo"));
    null != userinfo && null != userinfo.p_username ? $.ajax({
        url: Prolog.loginUrl,
        method: "POST",
        async: !1,
        data: {
            username: userinfo.p_username,
            password: pass
        },
        dataType: "json",
        success: function(data) {
            data.success ? (localStorage.setItem("authorization", "Bearer " + data.data.token), 
            localStorage.setItem("token_expir", data.data.expir), Prolog.reloadToken(), options && Prolog.ajax(options)) : layer.msg(_t("密码错误"), {
                icon: 5
            });
        }
    }) : (localStorage.clear(), location.href = Prolog.loginPage), close();
}, Prolog.requireLogin = function(options) {
    var url = options.url;
    if (null == url) return !1;
    if (-1 < url.indexOf(Prolog.loginUrl)) return !1;
    if (Prolog.isLogined()) return !1;
    if (Prolog.showLoginForm) return !1;
    if (Prolog.showLoginForm = !0, null != Prolog.loginUrl && "" != Prolog.loginUrl) {
        var iidx = layer.prompt({
            title: _t("请验证你的密码"),
            formType: 1,
            closeBtn: 0,
            btn: [ _t("确认"), _t("退出登录") ],
            success: function(layero, index) {
                var inp = layero.find("input");
                Prolog.removeLoading(), inp[0].onkeydown = function(event) {
                    if (13 == event.keyCode) {
                        inp[0].blur();
                        var pass = layero.find("input").val();
                        Prolog.validatePassword(pass, options), Prolog.showLoginForm = !1, layer.close(iidx);
                    }
                };
            },
            btn2: function() {
                return localStorage.clear(), location.href = Prolog.loginPage, !0;
            }
        }, function(pass, index) {
            var btn = $("#layui-layer" + index).find(".layui-layer-btn0");
            btn.hasClass("layui-btn-disabled") || (btn.addClass("layui-btn-disabled"), Prolog.validatePassword(pass, options), 
            Prolog.showLoginForm = !1, layer.close(index));
        });
        return !0;
    }
    null != Prolog.loginPage && "" != Prolog.loginPage && (localStorage.clear(), location.href = Prolog.loginPage);
}, Prolog.refreshToken = function() {
    var expir = localStorage.getItem("token_expir"), authorization = localStorage.getItem("authorization");
    if (expir && authorization) {
        var exp = parseInt(expir), now = new Date().getTime();
        exp - now < 36e4 && now < exp && null != Prolog.refreshTokenUrl && "" != Prolog.refreshTokenUrl && $.ajax({
            url: Prolog.refreshTokenUrl,
            method: "GET",
            beforeSend: function(xhr) {
                xhr.setRequestHeader("Authorization", authorization);
            },
            success: function(data) {
                data.success && (localStorage.setItem("authorization", "Bearer " + data.data.token), 
                localStorage.setItem("token_expir", data.data.expir), Prolog.reloadToken());
            }
        });
    }
}, Prolog.showErrorMsg = function(text) {
    Prolog.showLoginForm || layer.alert(text, {
        time: 0,
        title: "错误",
        btn: [ "确认" ],
        yes: function(index) {
            layer.close(index);
        }
    });
}, Prolog.ajax = function(options) {
    if (Prolog.requireLogin(options)) Prolog.closeLoading(); else {
        Prolog.refreshToken(), Prolog.reloadToken();
        var _this = this, opt = $.extend(!0, {
            timeout: 3e4,
            dataType: "json"
        }, options);
        opt.error = function(XMLHttpRequest, textStatus, errorThrown) {
            layer.closeAll("loading"), 401 == XMLHttpRequest.status ? Prolog.showErrorMsg(_t("未认证")) : 403 == XMLHttpRequest.status ? Prolog.showErrorMsg(_t("无权限访问")) : 404 == XMLHttpRequest.status ? Prolog.showErrorMsg(opt.url + "<br>" + _t("找不到服务或资源")) : 500 <= XMLHttpRequest.status ? Prolog.showErrorMsg(opt.url + "<br>" + _t("服务异常")) : Prolog.showErrorMsg(_t("访问错误，错误状态：" + XMLHttpRequest.status)), 
            options.error && options.error(XMLHttpRequest, textStatus, errorThrown);
        }, opt.beforeSend = function(xhr) {
            xhr.setRequestHeader("Authorization", _this.token), options.beforeSend && options.beforeSend(xhr);
        }, $.ajax(opt);
    }
}, Prolog.syncAjax = function(options) {
    if (Prolog.requireLogin(options)) Prolog.closeLoading(); else {
        Prolog.refreshToken(), Prolog.reloadToken();
        var _this = this, opt = $.extend(!0, {
            timeout: 3e4
        }, options);
        opt.error = function(XMLHttpRequest, textStatus, errorThrown) {
            layer.closeAll("loading"), 401 == XMLHttpRequest.status ? Prolog.showErrorMsg(_t("未认证")) : 403 == XMLHttpRequest.status ? Prolog.showErrorMsg(_t("无权限访问")) : 404 == XMLHttpRequest.status ? Prolog.showErrorMsg(opt.url + "<br>" + _t("找不到服务或资源")) : 500 <= XMLHttpRequest.status ? Prolog.showErrorMsg(opt.url + "<br>" + _t("服务异常")) : Prolog.showErrorMsg(_t("访问错误，错误状态：" + XMLHttpRequest.status)), 
            options.error && options.error(XMLHttpRequest, textStatus, errorThrown);
        }, opt.async = !1, opt.beforeSend = function(xhr) {
            xhr.setRequestHeader("Authorization", _this.token), options.beforeSend && options.beforeSend(xhr);
        }, $.ajax(opt);
    }
}, Prolog.getFormById = function(systemId, menuId, formId) {
    var myform = null, data = Prolog.getJsonData("/japi/sysform2/form", "GET", {
        systemId: systemId,
        menuId: menuId,
        formId: formId,
        id: systemId + "_" + menuId + "_" + formId
    });
    if (null != data && 1 == data.success) if (null != data.data && null != data.data.fields) {
        myform = new PrologForm();
        var formdata = JSON.parse(data.data.fields);
        myform.init(formdata);
    } else layer.msg("未定义表单内容");
    return myform;
}, Prolog.createRandomId = function() {
    return new Date().getTime() + Math.random().toString().substr(2, 5);
}, Prolog.loading = function(el) {
    return Prolog.loading2(el);
}, Prolog.closeLoading = function(id) {
    layer.close(id);
}, Prolog.deepClone = function(o) {
    if ("string" == typeof o || "number" == typeof o || "boolean" == typeof o || void 0 === o || "function" == typeof o) return o;
    if (Array.isArray(o)) {
        var _arr = [];
        return o.forEach(function(item) {
            _arr.push(item);
        }), _arr;
    }
    if ("object" === _typeof(o)) {
        var _o = {};
        for (var key in o) _o[key] = Prolog.deepClone(o[key]);
        return _o;
    }
}, Prolog.removeLoading = function() {
    return $(".load-bar").remove();
}, Prolog.loading2 = function() {
    var target = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "body", options = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
    Prolog.removeLoading();
    var opts = {
        title: _t("数据加载中...")
    };
    opts = Object.assign(opts, options);
    var ele = $('<div class="load-bar">\n    <div class="ant-spin ant-spin-spinning ant-spin-show-text">\n        <div class="plg-loading"></div>\n  <div class="ant-spin-text"></div></div>\n  </div>');
    return $(target).append(ele), function() {
        return $(target).children(".load-bar").remove();
    };
}, Prolog.delGridRowData = function(grid, url, type, contenttype, param, multiselect) {
    if (!1 === multiselect) {
        if (null == grid.getSelectedRowId() && param.length < 1) return void PlgDialog.msg("请选择行!");
    } else if (null == grid.getCheckedIds()) return void PlgDialog.msg("请选择行!");
    PlgDialog.confirm("是否删除吗？", {
        title: "删除提示",
        btn: [ "确定", "取消" ],
        zIndex: layer.zIndex
    }, function(index) {
        PlgDialog.close(index), "" === type && (type = "post"), "" === contenttype && (contenttype = "application/x-www-form-urlencoded"), 
        layer.msg("数据处理中..."), Prolog.ajax({
            url: url,
            type: type,
            contentType: contenttype,
            data: param,
            success: function(data) {
                "object" != _typeof(data) && (data = JSON.parse(data)), data.success ? (grid.reload(), 
                layer.closeAll()) : layer.open({
                    type: 1,
                    offset: "auto",
                    id: "layerError",
                    area: [ "500px" ],
                    title: "错误提示",
                    content: '<div style="padding: 10px;">' + $.parseJSON(data).message + "</div>",
                    btn: "关闭",
                    btnAlign: "r",
                    shade: 0,
                    yes: function() {
                        layer.closeAll();
                    }
                });
            },
            error: function() {}
        });
    });
}, Prolog.setLocalStorage = function(name, val) {
    localStorage.setItem(name, JSON.stringify(val));
}, Prolog.getLocalStorage = function(name) {
    return JSON.parse(localStorage.getItem(name));
}, Prolog.removeItemLocalStorage = function(name) {
    localStorage.removeItem(name);
}, Prolog.setSessionStorage = function(name, val) {
    sessionStorage.setItem(name, JSON.stringify(val));
}, Prolog.getSessionStorage = function(name) {
    return JSON.parse(sessionStorage.getItem(name));
}, Prolog.removeItemSessionStorage = function(name) {
    sessionStorage.removeItem(name);
}, Prolog.getRequestParams = function() {
    var u = window.document.location.href.toString().split("?");
    if ("string" != typeof u[1]) return {};
    u = u[1].split("&");
    var get = {};
    for (var i in u) {
        var j = u[i].split("=");
        get[j[0]] = decodeURIComponent(j[1]);
    }
    return get;
}, Prolog.isLogined = function() {
    var tk = null, exp = null, P_GET = Prolog.getRequestParams();
    if (P_GET.access_token && P_GET.expir ? (tk = P_GET.access_token, exp = P_GET.expir, 
    localStorage.setItem("authorization", tk), localStorage.setItem("token_expir", exp)) : (tk = localStorage.getItem("authorization"), 
    exp = localStorage.getItem("token_expir")), null == tk || "" == tk || null == exp || "" == exp) return !1;
    var expir = parseInt(exp);
    return !(new Date().getTime() > expir);
};
"use strict";

!function($, layui) {
    layui.use([ "layer" ], function() {
        var layer = layui.layer;
        layer.config({
            anim: 0,
            zIndex: 1e4,
            shade: .5,
            btnAlign: "r",
            fixed: !1
        });
        var plgDialog = layer;
        plgDialog.showUploadDialog = function(url) {
            var winoptions = {
                title: "上传文件",
                skin: "layui-layer-lan",
                closeBtn: 1,
                type: 1,
                resize: !0,
                btn: [ "上传", "取消" ],
                btn1: function(index, layero) {
                    PlgDialog.close(index);
                },
                btn2: function(index, layero) {
                    PlgDialog.close(index);
                },
                area: [ "300px", "300px" ],
                content: '<div id="xx-win-dd-1"></div>',
                success: function(layero, index) {
                    new PlgForm({
                        items: [ {
                            type: "upload",
                            name: "files",
                            url: url
                        } ]
                    }).renderTo("xx-win-dd-1");
                }
            };
            layer.open(winoptions);
        }, plgDialog.showGridDialog = function(plgGrid, callback, opts) {
            var winoptions = {
                title: opts.title ? opts.title : "",
                skin: "layui-layer-lan",
                closeBtn: 1,
                type: 1,
                resize: !0,
                tipsMore: !0,
                btn: [ "选择", "取消" ],
                btn1: function(index, layero) {
                    var id = plgGrid.getSelectedRowId();
                    if (id) {
                        var record = plgGrid.getSelectedRowData();
                        callback && callback(id, record), PlgDialog.close(index);
                    } else layer.msg("为选择数据");
                },
                btn2: function(index, layero) {
                    PlgDialog.close(index);
                },
                area: [ opts.width + "px", opts.height + "px" ],
                content: '<div id="' + panelId + '-win-grid-1"></div>',
                success: function(layero, index) {
                    plgGrid.renderTo(panelId + "-win-grid-1"), plgGrid.loadData(), plgGrid.on("onRowDblClicked", function(rid, ind) {
                        var record = plgGrid.getUserData(rid, "data");
                        callback && callback(rid, record), PlgDialog.close(index);
                    });
                }
            };
            1 == type && (winoptions.btn = [ "保存", "取消" ], winoptions.btn2 = winoptions.btn3, 
            winoptions.btn3 = null), PlgDialog.open(winoptions);
        }, plgDialog.loading2 = Prolog.loading2, plgDialog.removeLoading = Prolog.removeLoading, 
        window.PlgDialog = plgDialog;
    });
}(jQuery, layui);
"use strict";

function _typeof(obj) {
    return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
        return typeof obj;
    } : function(obj) {
        return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    })(obj);
}

function eXcell_button(cell) {
    cell && (this.cell = cell, this.grid = this.cell.parentNode.grid), this.edit = function() {}, 
    this.isDisabled = function() {
        return !0;
    }, this.setValue = function(val) {
        var row_id = this.cell.parentNode.idd, row_data = JSON.stringify(this.grid.getUserData(row_id, "data"));
        row_data = row_data.replaceAll("'", "");
        for (var btns = (val = val.replaceAll(",", ";")).split(";"), str = "", k = 0; k < btns.length; k++) {
            var btnstr = btns[k], btnv = btnstr.substring(0, btnstr.indexOf("^"));
            str += "<div class='plg-divider plg-divider-vertical'></div><a class='' href='javascript:void(0);' onclick='" + btnstr.substring(btnstr.indexOf("^") + 1) + '("' + row_id + '",' + row_data + ")' >" + btnv + "</a>";
        }
        str = str.substring(str.indexOf("<a")), this.setCValue(str, val);
    };
}

eXcell_button.prototype = new eXcell(), function($) {
    $.fn.initPlgGrid = function(options) {
        var pg = new plgGrid(options), id = $(this).attr("id");
        return pg.renderTo(id), pg;
    };
    var plgGrid = function(options) {
        var opts, panel, laypage, panelId, sideBarId, sideBarFormId, pageBarId, gridId, toolBarId, pageBarPanelId, gridTitleId, centerPanelId, mygrid, toolBarForm, sideBarForm, gridForm, formDisableFields, beforeDialogOpenEvent, afterDialogOpenEvent, columnArray, headerArray, hidenArray, plgGrid_default = {
            isI18n: window.isI18n || !1,
            title: "",
            renderer: "",
            fixedLast: !1,
            columns: [],
            multiselect: !1,
            url: "data.json",
            type: "get",
            pageNum: "pageNum",
            pageSize: "pageSize",
            params: {
                pageSize: 10,
                pageNum: 1
            },
            contentType: "application/x-www-form-urlencoded",
            page: !0,
            totalCount: "totalCount",
            toolbar: [],
            formData: [],
            pagebar: {
                buttons: [],
                type: "full"
            },
            beforeLoadData: null
        };
        opts = $.extend({}, plgGrid_default, options), this.opts = opts;
        var rand = Prolog.createRandomId(), pageNum = plgGrid_default.params.pageNum, pageSize = plgGrid_default.params.pageSize;
        if (opts.params) {
            var _tmp = opts.params;
            if ("object" == _typeof(_tmp)) pageNum = null != _tmp.pageNum ? _tmp.pageNum : pageNum, 
            pageSize = null != _tmp.pageSize ? _tmp.pageSize : pageSize; else {
                var _tmpObj = JSON.parse(_tmp);
                pageNum = null != _tmpObj.pageNum ? _tmpObj.pageNum : pageNum, pageSize = null != _tmpObj.pageSize ? _tmpObj.pageSize : pageSize;
            }
        }
        var containerId, loadDataCallback, rownum = 1, Jumpcallback = null, fixColumn = {}, gscroll = 0, _this = this;
        function resetSize() {
            var objbox = $("#" + gridId + " .objbox"), gtable = $("#" + gridId + " .objbox table"), hdtable = $("#" + gridId + " .xhdr table");
            if (opts.fixedLast && objbox.width() > gtable.width()) {
                var ls_th, cw = objbox.width() - gtable.width() - 1;
                (ls_th = gtable.find("tbody tr:first-child th:last-child")).width(ls_th.width() + cw);
                var ls_header = hdtable.find("tbody tr:first-child th:last-child");
                ls_header.width(ls_header.width() + cw);
            }
            gtable.height() > objbox.height() && (ls_th = gtable.find("tbody tr:first-child th:last-child")).width(ls_th.width() - 8);
            var mtop = $("#" + toolBarId)[0] ? $("#" + toolBarId).height() + 5 : 0;
            $("#" + panelId + " .center-panel .plg-grid-sidebuttonpanel a").css("top", mtop), 
            fixedColumn();
        }
        function renderTo(id) {
            $("#" + (containerId = id)).empty(), id + "-colsetting-" + rand, panelId = id + "-panel-" + rand, 
            centerPanelId = id + "-centerPanelId-" + rand, sideBarId = id + "-sidebar-" + rand, 
            sideBarFormId = id + "-sidebarform-" + rand, toolBarId = id + "-toolbar-" + rand, 
            pageBarPanelId = id + "-pagebar-panel-" + rand, pageBarId = id + "-pagebar-" + rand, 
            gridId = id + "-panel-grid-" + rand, gridTitleId = id + "-panel-grid-title-" + rand, 
            function(containerId) {
                (panel = document.createElement("div")).className = "plg-grid-panel layui-row", 
                panel.setAttribute("id", panelId), $("#" + containerId).append(panel);
                var centerPanel = document.createElement("div");
                centerPanel.setAttribute("id", centerPanelId), centerPanel.className = "center-panel layui-col-md12", 
                panel.appendChild(centerPanel);
                var centerContainerPanel = document.createElement("div");
                if (centerContainerPanel.setAttribute("id", centerPanelId), centerContainerPanel.className = "plg-grid-body", 
                opts.enableSideBar && null != !opts.sideBar) {
                    var sideBtnPanel = function() {
                        var sideButtonPanel = document.createElement("div");
                        sideButtonPanel.className = "plg-grid-sidebuttonpanel";
                        var alink = document.createElement("a");
                        return alink.setAttribute("href", "javascript:void(0);"), alink.innerHTML = "<i class='layui-icon layui-icon-next'></i>", 
                        sideButtonPanel.appendChild(alink), alink.onclick = function() {
                            var b = $("#" + sideBarId), m = $("#" + centerPanelId);
                            b.is(":hidden") ? (m.removeClass("layui-col-md12"), m.addClass("layui-col-md9"), 
                            b.show(), alink.innerHTML = "<i class='layui-icon layui-icon-next'></i>") : (b.hide(), 
                            m.removeClass("layui-col-md9"), m.addClass("layui-col-md12"), alink.innerHTML = "<i class='layui-icon layui-icon-prev'></i>");
                        }, sideButtonPanel;
                    }();
                    centerPanel.appendChild(sideBtnPanel);
                }
                if (centerPanel.appendChild(centerContainerPanel), opts.title && "" != opts.title) {
                    var gridTitleDiv = document.createElement("div");
                    gridTitleDiv.className = "plg-grid-title", gridTitleDiv.setAttribute("id", gridTitleId), 
                    gridTitleDiv.innerHTML = opts.title, centerContainerPanel.appendChild(gridTitleDiv);
                }
                if (opts.toolbar && 0 < opts.toolbar.length) {
                    var toolBarDiv = document.createElement("div");
                    toolBarDiv.setAttribute("id", toolBarId), toolBarDiv.className = "plg-toolbar", 
                    centerContainerPanel.appendChild(toolBarDiv), function(toolBarId, items) {
                        toolBarForm = new PlgForm({
                            renderer: toolBarId,
                            items: items
                        }), $("#" + toolBarId).addClass("plg-toolbar");
                    }(toolBarId, opts.toolbar);
                }
                var gridDiv = document.createElement("div");
                if (gridDiv.setAttribute("id", gridId), gridDiv.className = "plg-grid", centerContainerPanel.appendChild(gridDiv), 
                function(id) {
                    mygrid = new dhtmlXGridObject(id);
                    var cdata, Items, newObj, imp = opts.imagePath || Prolog.GridImageBasePath;
                    imp && 0 < imp.length && (imp = "/" != imp.substr(imp.length - 1, 1) ? imp + "/" : imp, 
                    mygrid.setImagePath(imp)), cdata = opts.isI18n && 0 < opts.columns.length ? (Items = opts.columns, 
                    newObj = [], Items.map(function(item, index) {
                        return newObj[index] = Prolog.deepClone(item), item.name && i18next.exists(item.name.toString()) && (newObj[index].name = i18next.t(item.name)), 
                        newObj;
                    }), newObj) : opts.columns.slice(0), columnArray = new Array(), headerArray = new Array(), 
                    hidenArray = new Array();
                    var widthArray = new Array(), alignArray = new Array(), headerAlignArray = new Array(), typeArray = new Array(), typeArray = new Array(), sortArray = new Array();
                    columnArray.push("chbx000"), headerArray.push("<a href='javascript:void(0);' class='plg-grid-first-col'><i class='layui-icon layui-icon-component'></i></a>"), 
                    headerAlignArray.push("text-align:center"), widthArray.push("35"), alignArray.push("center"), 
                    typeArray.push("ro"), sortArray.push("int"), hidenArray.push(!1), opts.multiselect && (columnArray.push("chbx001"), 
                    headerArray.push('<img src="' + mygrid._imgURL + 'dhxgrid_web/item_chk0.gif" class="plg-grid-second-col" title="">'), 
                    headerAlignArray.push("text-align:center"), widthArray.push("35"), alignArray.push("center"), 
                    typeArray.push("ch"), sortArray.push("na"), hidenArray.push(!1)), sortArray.push("str");
                    for (var i = 0; i < cdata.length; i++) {
                        columnArray.push(cdata[i].id), headerArray.push(null == cdata[i].name ? cdata[i].id : cdata[i].name), 
                        widthArray.push(null == cdata[i].width ? "*" : cdata[i].width), alignArray.push(null == cdata[i].align ? "left" : cdata[i].align);
                        var halign = cdata[i].headerAlign ? cdata[i].headerAlign : cdata[i].align;
                        headerAlignArray.push(null == halign ? "text-align:left" : "text-align:" + cdata[i].align), 
                        typeArray.push(null == cdata[i].type ? "ro" : cdata[i].type), sortArray.push(null == cdata[i].sort ? "str" : cdata[i].sort), 
                        1 == opts.fixedLast && i == cdata.length - 1 && (fixColumn.width = cdata[i].width, 
                        opts.multiselect ? fixColumn.index = i + 2 : fixColumn.index = i + 1), cdata[i].hidden ? (hidenArray.push(!0), 
                        opts.multiselect ? mygrid.setColumnHidden(i + 2, !0) : mygrid.setColumnHidden(i + 1, !0)) : hidenArray.push(!1);
                    }
                    mygrid.setColumnIds(columnArray.toString()), mygrid.setHeader(headerArray.toString(), null, headerAlignArray), 
                    mygrid.setInitWidths(widthArray.toString()), mygrid.setColAlign(alignArray.toString()), 
                    mygrid.setColTypes(typeArray.toString()), mygrid.setColSorting(sortArray.toString()), 
                    opts.filters && (opts.multiselect ? mygrid.attachHeader(",," + opts.filters.toString()) : mygrid.attachHeader("," + opts.filters.toString())), 
                    mygrid.enableMultiselect(opts.multiselect), mygrid.enableAutoHeight(!1), mygrid.enableRowsHover(!0, "plg-grid-hover"), 
                    mygrid.opts = opts, mygrid.attachEvent("onCheck", function(rId, cInd, state) {
                        if (1 == cInd && opts.multiselect) {
                            changePageBtnStatus();
                            var ch = $("#" + panelId + " .plg-grid-second-col"), cstr = ch.attr("src");
                            return mygrid.getAllRowIds().split(",").length == mygrid.getCheckedRows(1).split(",").length ? ch.attr("src", cstr.replaceAll("chk0", "chk1")) : ch.attr("src", cstr.replaceAll("chk1", "chk0")), 
                            !0;
                        }
                        return !0;
                    }), mygrid.attachEvent("onAfterSorting", function(index, type, direction) {
                        return resetSize(), !0;
                    }), mygrid.attachEvent("onResizeEnd", function(index, type, direction) {
                        return resetSize(), !0;
                    }), mygrid.attachEvent("onHeaderClick", function(ind, obj) {
                        if (0 == ind) return function(selector) {
                            for (var html = '<div class="layui-form plg-clsset-form" >', i = opts.multiselect ? 2 : 1; i < columnArray.length; i++) html += '<div class="layui-form-item plg-clsset-item"><input type="checkbox"  lay-filter="plgclssetitem" index=' + i + ' name="' + columnArray[i] + '" lay-skin="primary" title="' + headerArray[i] + '" ' + (hidenArray[i] ? "" : "checked") + "></div>";
                            html += '<div style="clear:both;margin:0px;height:1px;">&nbsp;</div>', html += "</div>", 
                            PlgDialog.tips(html, selector, {
                                tips: [ 3, "#fff" ],
                                time: 0,
                                shade: .001,
                                shadeClose: !0,
                                success: function(layero, ind) {
                                    $(layero).find(".layui-layer-TipsG").remove(), layui.form.render("checkbox"), layui.form.on("checkbox(plgclssetitem)", function(data) {
                                        var ind = $(data.elem).attr("index");
                                        data.elem.checked ? (mygrid.setColumnHidden(ind, !1), hidenArray[ind] = !1) : (mygrid.setColumnHidden(ind, !0), 
                                        hidenArray[ind] = !0), resetSize();
                                    });
                                }
                            });
                        }("#" + panelId + " .plg-grid-first-col i"), !1;
                        if (1 != ind) return !0;
                        if (opts.multiselect) {
                            var ch = $("#" + panelId + " .plg-grid-second-col"), cstr = ch.attr("src");
                            -1 < cstr.indexOf("chk0") ? (checkAll(!0), ch.attr("src", cstr.replaceAll("chk0", "chk1"))) : (checkAll(!1), 
                            ch.attr("src", cstr.replaceAll("chk1", "chk0"))), event.stopPropagation();
                        }
                        return !0;
                    }), mygrid.init();
                }(gridId), function() {
                    if (null != opts.formData) {
                        gridForm = new PlgForm({
                            items: opts.formData
                        }), formDisableFields = new Array();
                        for (var i = 0; i < opts.formData.length; i++) setEditable(opts.formData[i]);
                    }
                }(), opts.pagebar || opts.page) {
                    var pageBarPanel = document.createElement("div");
                    if (pageBarPanel.className = "plg-grid-pagebar", pageBarPanel.setAttribute("id", pageBarPanelId), 
                    centerContainerPanel.appendChild(pageBarPanel), opts.pagebar && opts.pagebar.buttons && 0 < opts.pagebar.buttons.length && function(parentEl) {
                        if (opts.pagebar && opts.pagebar.buttons && 0 < opts.pagebar.buttons.length) {
                            var pdiv = document.createElement("div");
                            pdiv.className = "div-pagebtn disable";
                            var infodiv = document.createElement("div");
                            infodiv.className = "div-pagebtn-info", infodiv.innerHTML = '<i class="layui-icon layui-icon-about"></i>已选择&nbsp;<span class="selectedCount">0</span>&nbsp;项', 
                            pdiv.appendChild(infodiv);
                            for (var i = 0; i < opts.pagebar.buttons.length; i++) {
                                var bop = opts.pagebar.buttons[i], btn = document.createElement("button");
                                btn.className = "layui-btn pagebar-button layui-btn-disabled " + (null != bop.className ? bop.className : ""), 
                                btn.innerHTML = bop.text, bop.name && btn.setAttribute("name", bop.name), pdiv.appendChild(btn);
                            }
                            parentEl.appendChild(pdiv);
                        }
                    }(pageBarPanel), opts.page) {
                        var pageBarDiv = document.createElement("div");
                        pageBarDiv.setAttribute("id", pageBarId), pageBarDiv.className = "div-pagebar", 
                        pageBarPanel.appendChild(pageBarDiv);
                    }
                }
                if (opts.enableSideBar && null != !opts.sideBar) {
                    centerPanel.className = "center-panel layui-col-md9";
                    var sidePanel = function(sideBarId, sideBarFormId) {
                        var sidePanel = document.createElement("div");
                        sidePanel.className = "layui-col-md3 plg-grid-sidebar", sidePanel.setAttribute("id", sideBarId);
                        var sideContainerPanel = document.createElement("div");
                        return sideContainerPanel.setAttribute("id", sideBarFormId), sideContainerPanel.className = "plg-grid-sidebarform", 
                        sidePanel.appendChild(sideContainerPanel), sidePanel;
                    }(sideBarId, sideBarFormId);
                    panel.appendChild(sidePanel), function(sideBarId, items) {
                        sideBarForm = new PlgForm({
                            renderer: sideBarId,
                            items: items
                        });
                    }(sideBarFormId, opts.sideBar);
                }
            }(containerId), function() {
                for (var key in mygrid.entBox.onselectstart = null, mygrid) if (-1 === key.indexOf("_") && "function" == typeof mygrid[key] && !self[key]) {
                    var objm = mygrid[key];
                    self[key] = objm.bind(mygrid);
                }
            }(), $("#" + containerId).addClass("grid-container-full"), $(_this.getElement()).resize(function() {
                var xhdr = this.querySelector(".xhdr");
                0 < xhdr.scrollLeft && (xhdr.scrollLeft = 0);
                var ee = $(this).find(".objbox table tr:first-child th:last-child");
                ee.width(ee.width() + .1), ee.width(ee.width() - .1), resetSize();
            });
        }
        function changePageBtnStatus() {
            var ch = mygrid.getCheckedRows(1), pl = $("#" + pageBarPanelId + " .div-pagebtn"), len = null != ch && "" != ch ? ch.split(",").length : 0;
            pl.find(".selectedCount").text(len), null != ch && "" != ch ? pl.hasClass("disable") && (pl.removeClass("disable"), 
            pl.find("button").removeClass("layui-btn-disabled")) : pl.hasClass("disable") || (pl.addClass("disable"), 
            pl.find("button").addClass("layui-btn-disabled"));
        }
        function setEditable(opt) {
            if (null != opt.editable && 0 == opt.editable && formDisableFields.push(opt.name), 
            opt.list && 0 < opt.list.length) for (var i = 0; i < opt.list.length; i++) setEditable(opt.list[i]);
        }
        function pageJump(obj, first) {
            pageNum = obj.curr, pageSize = obj.limit, Jumpcallback && Jumpcallback(obj, first), 
            first || reload();
        }
        function fixedColumn() {
            if (opts.fixedLast) {
                $("#" + gridId + " .objbox table.obj tr td:last-child").children().css("display", "none"), 
                $("#" + gridId + " .objbox table.obj tr td:last-child").css("border-left", "none"), 
                $("#" + gridId + " .xhdr table.hdr tr td:last-child").children().css("display", "none"), 
                $("#" + gridId + " .xhdr table.hdr tr td:last-child").css("border-left", "none");
                var grd = $("#" + gridId), ghd = grd.find(".xhdr:first-child"), grdbox = $("#" + gridId + " .objbox");
                if (!(grd.length < 1 || ghd.length < 1 || grdbox.length < 1)) {
                    $("#" + gridId + " .objbox table.obj tr:first-child th:last-child").width(), grd.height();
                    var fixdiv = $("#" + gridId + "-fixed-panel");
                    null == fixdiv || 0 == fixdiv.length ? ((fixdiv = $(document.createElement("div"))).attr("id", gridId + "-fixed-panel"), 
                    fixdiv.addClass("grid-fexed-column"), grd.append(fixdiv)) : fixdiv.empty();
                    var headerText = ghd.find("table tr:last-child td:last-child .hdrcell").html(), headerHeight = ghd.height(), trs = (ghd.find("table tr:last-child td:last-child").width(), 
                    grd.find(".objbox table tr")), headerDiv = $(document.createElement("div"));
                    headerDiv.addClass("header"), headerDiv.height(headerHeight), headerDiv.css("line-height", headerHeight + "px"), 
                    headerDiv.html(headerText), fixdiv.append(headerDiv);
                    var containerDiv = $(document.createElement("div"));
                    containerDiv.addClass("ul-container");
                    for (var tableList = $(document.createElement("table")), i = 1; i < trs.length; i++) {
                        var tr = trs[i], td = $(tr).find("td:last-child"), ntr = $(document.createElement("tr")), ntd = $(document.createElement("td"));
                        ntd.attr("valign", "middle"), ntd.attr("align", "center"), ntd.css("height", $(tr).height() + "px"), 
                        ntd.html(td.html()), ntd.children().css("display", ""), ntr.append(ntd), tableList.append(ntr);
                    }
                    containerDiv.append(tableList), fixdiv.append(containerDiv), setTimeout(function() {
                        containerDiv.css("max-height", grdbox[0].clientHeight + "px");
                        try {
                            containerDiv.scrollTop(grdbox.scrollTop());
                        } catch (e) {}
                    }, 100), grdbox.scroll(function() {
                        0 == gscroll && containerDiv.scrollTop(grdbox.scrollTop());
                    }), grdbox.mouseover(function() {
                        gscroll = 0;
                    }), containerDiv.scroll(function() {
                        1 == gscroll && grdbox.scrollTop(containerDiv.scrollTop());
                    }), containerDiv.mouseover(function() {
                        gscroll = 1;
                    });
                }
            }
        }
        function checkAll(b) {
            for (var count = mygrid.getRowsNum(), k = b ? 1 : 0, i = 0; i < count; i++) mygrid.cellByIndex(i, 1).setValue(k);
            changePageBtnStatus();
        }
        function loadData(data, callback) {
            var fixdiv, close = Prolog.loading2("#" + centerPanelId);
            if (opts.fixedLast && (null != (fixdiv = $("#" + gridId + "-fixed-panel")) && fixdiv.empty()), 
            opts.beforeDataLoad && opts.beforeDataLoad(opts), data) return close(), parseData(data);
            callback && (loadDataCallback = callback);
            if (null != opts.url && "" != opts.url) {
                var pp = opts.params;
                if (opts.page) if ("object" == _typeof(pp)) pp[opts.pageNum] = pageNum, pp[opts.pageSize] = pageSize; else {
                    var ppobj = JSON.parse(pp);
                    ppobj[opts.pageNum] = pageNum, ppobj[opts.pageSize] = pageSize, pp = JSON.stringify(ppobj);
                }
                Prolog.ajax({
                    url: opts.url,
                    type: opts.type,
                    data: pp,
                    contentType: opts.contentType,
                    success: function(da) {
                        close(), da.success && parseData(da), loadDataCallback && loadDataCallback(!0);
                    },
                    error: function(_error) {
                        close(), loadDataCallback && loadDataCallback(!1);
                    }
                });
            }
        }
        function reload(data, callback) {
            mygrid.clearAll(), loadData(data, callback);
        }
        function parseData(da) {
            if ("function" == typeof opts.beforeLoadData && (da = opts.beforeLoadData(da)), 
            "object" != _typeof(da) && (da = JSON.parse(da)), null == da.success || 0 != da.success) if (da.data && "" != da.data) {
                var ldata;
                ldata = da.data.list ? da.data.list : da.data, rownum = (pageNum - 1) * pageSize + 1;
                try {
                    mygrid.parse(function(data) {
                        for (var v, gridrows = new Array(), colArray = opts.columns, i = 0; i < data.length; i++) {
                            var rd = data[i], row = new Array();
                            opts.multiselect ? (row.push(rownum), row.push(0)) : row.push(rownum), rownum += 1;
                            for (var j = 0; j < colArray.length; j++) {
                                var col = colArray[j].id;
                                colArray[j].render && (v = colArray[j].render(rd[col], rd)) ? row.push(v) : row.push(rd[col]);
                            }
                            gridrows.push({
                                id: rd[colArray[0].id],
                                data: row,
                                userdata: {
                                    data: rd
                                }
                            });
                        }
                        return {
                            rows: gridrows
                        };
                    }(ldata), "json"), changePageBtnStatus();
                } catch (ex) {
                    return void PlgDialog.msg("数据错误！");
                }
                if (opts.page && function(id, totalCount, curr) {
                    if (0 != opts.page) {
                        pageSize = null == pageSize ? 0 : pageSize, totalCount = null == totalCount ? 0 : totalCount, 
                        $("#" + id).empty(), laypage = layui.laypage;
                        var layout = [ "count", "prev", "page", "next", "limit", "skip", "refresh" ];
                        opts.pagebar && "simple" == opts.pagebar.type ? layout = [ "count", "prev", "page", "next", "refresh" ] : opts.pagebar && "min" == opts.pagebar.type && (layout = [ "count", "prev", "next" ]), 
                        laypage.render({
                            elem: id,
                            count: totalCount,
                            limit: pageSize,
                            curr: curr,
                            limits: [ 5, 10, 20, 30, 50, 100, 200, 500, 1e3, 2e3 ],
                            groups: 4,
                            theme: "plg",
                            prev: '<i class="layui-icon layui-icon-left"></i>',
                            next: '<i class="layui-icon layui-icon-right"></i>',
                            layout: layout,
                            jump: pageJump
                        });
                    }
                }(pageBarId, da.data[opts.totalCount], pageNum), opts.multiselect) {
                    var ch = $("#" + panelId + " .plg-grid-second-col");
                    if (ch && 0 < ch.length) {
                        var cstr = ch.attr("src");
                        ch.attr("src", cstr.replaceAll("chk1", "chk0"));
                    }
                }
                resetSize();
            } else PlgDialog.msg("数据为空"); else PlgDialog.alert(da.message ? da.message : "空指针异常");
        }
        _this.t = this.t(_this.opts.isI18n), _this.getPanelId = function() {
            return panelId;
        }, _this.getGridId = function() {
            return gridId;
        }, _this.getToolBarId = function() {
            return toolBarId;
        }, _this.getPageBarPanelId = function() {
            return pageBarPanelId;
        }, _this.getGridTitleId = function() {
            return gridTitleId;
        }, _this.getCombo = function(col_ind) {
            return mygrid.getCombo(col_ind);
        }, this.getSideBarForm = function() {
            return sideBarForm;
        }, this.attachPageBarEvent = function(callback) {
            $("#" + pageBarPanelId).on("click", ".pagebar-button", function() {
                var _this = $(this);
                if (!_this.hasClass("layui-btn-disabled")) {
                    var name = _this.attr("name"), ids = mygrid.getCheckedRows(1);
                    callback(name, ids);
                }
            });
        }, this.PageBarJump = function(callback) {
            "function" == typeof callback && (Jumpcallback = callback);
        }, this.showDialogResetBtn = null, this.showDialog = function(type, title, width, height, requestParams, isMultipleRow) {
            beforeDialogOpenEvent && beforeDialogOpenEvent(type, title, width, height, requestParams);
            var _this = this;
            if (null != gridForm) if (1 != type || _this.getSelectedRowId()) {
                var winoptions = {
                    title: title,
                    closeBtn: 1,
                    type: 1,
                    resize: !0,
                    tipsMore: !0,
                    btn: [ _this.t("保存"), _this.t("重置"), _this.t("取消") ],
                    btn1: function(index, layero) {
                        if (0 != gridForm.validate()) {
                            var dp, close = PlgDialog.loading2();
                            isMultipleRow ? (dp = new Array()).push(gridForm.getFormData()) : dp = gridForm.getFormData();
                            var checkoutList = [];
                            if (opts.formData && 1 < opts.formData.length && (opts.formData.map(function(val) {
                                "label" === val.type && val.list.map(function(value) {
                                    checkoutList.push(value.name);
                                });
                            }), checkoutList = checkoutList.filter(function(val) {
                                return val;
                            })), null != requestParams.contentType && -1 < requestParams.contentType.indexOf("application/json") ? requestParams.data = JSON.stringify(dp) : requestParams.data = dp, 
                            "function" == typeof requestParams.saveAfter) try {
                                if (requestParams.data = requestParams.saveAfter(gridForm, requestParams.data), 
                                !requestParams.data) throw "saveAfter 回调没有return data";
                                if (void 0 === requestParams.data.id) throw "data.id 没有定义";
                            } catch (e) {
                                throw close(), new Error(e);
                            }
                            requestParams.success = function(data) {
                                data.success ? (_this.reload(), PlgDialog.close(index)) : data.message ? PlgDialog.alert(data.message) : PlgDialog.alert("数据返回失败"), 
                                close();
                            }, Prolog.ajax(requestParams);
                        }
                    },
                    btn2: function(index, layero) {
                        return gridForm.clear(), Object.keys(gridForm.getFormData()).forEach(function(item) {
                            try {
                                gridForm.getDForm().clearNote(item), $(gridForm.getDForm().getInput(item)).parent().parent().removeClass("validate_error");
                            } catch (e) {}
                        }), "function" == typeof requestParams.resetAfter && requestParams.resetAfter(gridForm), 
                        !1;
                    },
                    btn3: function(index, layero) {
                        PlgDialog.close(index);
                    },
                    area: [ width + "px", height + "px" ],
                    content: '<div id="' + panelId + '-win-form-1"></div>',
                    success: function(layero, index) {
                        if (gridForm.renderTo(panelId + "-win-form-1"), 1 == type) {
                            !function(plgform, data) {
                                var items = plgform.getFormData();
                                for (var key in items) items[key] = data[key];
                                plgform.setFormData(items);
                            }(gridForm, _this.getSelectedRowData());
                            for (var k = 0; k < formDisableFields.length; k++) gridForm.disableItem(formDisableFields[k]);
                        } else for (k = 0; k < formDisableFields.length; k++) gridForm.enableItem(formDisableFields[k]);
                        afterDialogOpenEvent && afterDialogOpenEvent(gridForm);
                    }
                };
                1 == type && (winoptions.btn = [ _this.t("保存"), _this.t("取消") ], winoptions.btn2 = winoptions.btn3, 
                winoptions.btn3 = null), PlgDialog.open(winoptions);
            } else PlgDialog.msg("请选择行!"); else PlgDialog.msg(_this.t("未设置表单"));
        }, this.fixedColumn = function() {
            fixedColumn();
        }, this.getElement = function() {
            return panel;
        }, this.renderTo = function(id) {
            return renderTo(id), this;
        }, this.getGrid = function(id) {
            return mygrid;
        }, this.loadData = function(data, callback) {
            return loadData(data, callback), this;
        }, this.getParams = function() {
            return opts.params;
        }, this.setParams = function(params) {
            opts.params = params, pageSize = params.pageSize ? params.pageSize : pageSize, pageNum = params.pageNum ? params.pageNum : pageNum;
        }, this.getGridData = null, this.reload = function(data) {
            reload(data);
        }, this.getCheckedIds = function() {
            return mygrid.getCheckedRows(1);
        }, this.getSelectedRowId = function() {
            return mygrid.getSelectedRowId();
        }, this.getSelectedRowData = function(name) {
            var rid = mygrid.getSelectedRowId();
            return name ? mygrid.getUserData(rid, "data")[name] : mygrid.getUserData(rid, "data");
        }, this.getRowData = function(rowId, fields) {
            if (null == fields || 0 == fields.length) return mygrid.getUserData(rowId, "data");
            if (Array.isArray(fields)) {
                for (var data = {}, i = 0; i < fields.length; i++) data[fields[i]] = mygrid.getUserData(rowId, "data")[fields[i]];
                return data;
            }
            return mygrid.getUserData(rowId, "data")[fields];
        }, this.setRowSelectCheck = function(rowId) {
            if (opts.multiselect || rowId) {
                var row = this.getCellObject(rowId, 1), img = row.cell.children[0];
                -1 < img.src.indexOf("chk0") ? (img.src = img.src.replaceAll("chk0", "chk1"), row.setChecked(!0)) : (img.src = img.src.replaceAll("chk1", "chk0"), 
                row.setChecked(!1));
                var headerCh = $("#" + panelId + " .plg-grid-second-col");
                this.getAllRowIds().split(",").length == this.getCheckedRows(1).split(",").length ? headerCh.attr("src", headerCh.attr("src").replaceAll("chk0", "chk1")) : headerCh.attr("src", headerCh.attr("src").replaceAll("chk1", "chk0"));
            }
        }, this.getSelectedCellIndex = function() {
            return mygrid.getSelectedCellIndex();
        }, this.getRowId = function(rowIndex) {
            return mygrid.getRowId(rowIndex);
        }, this.getRowIndex = function(rowId) {
            return mygrid.getRowIndex(rowId);
        }, this.getCellObject = function(rowId, colIndex) {
            return mygrid.cells(rowId, colIndex);
        }, this.getCellValue = function(rowId, colIndex) {
            return mygrid.cells(rowId, colIndex).getValue();
        }, this.getCellObject2 = function(rowIndex, colIndex) {
            return mygrid.cells2(rowIndex, colIndex);
        }, this.getCellValue2 = function(rowIndex, colIndex) {
            return mygrid.cells2(rowIndex, colIndex).getValue();
        }, this.setCellValue = function(rowId, colIndex, value) {
            mygrid.cells(rowId, colIndex).setValue(value);
            var cname = columnArray[colIndex], data = mygrid.getUserData(rowId, "data");
            null != data && "" != data || (data = {}), data[cname] = value, mygrid.setUserData(rowId, "data", data);
        }, this.addRow = function(rowId, row_data, index) {
            var rdarray = [];
            rdarray.push(mygrid.getRowsNum() + 1);
            var start = 1;
            opts.multiselect && (rdarray.push(0), start = 2);
            for (var i = start; i < columnArray.length; i++) {
                var t = row_data[columnArray[i]];
                rdarray.push(t || "");
            }
            null != index ? mygrid.addRow(rowId, rdarray.toString(), index) : mygrid.addRow(rowId, rdarray.toString()), 
            mygrid.setUserData(rowId, "data", row_data), resetSize();
        }, this.deleteRow = function(rid) {
            mygrid.deleteRow(rid), resetSize();
        }, this.getColumnsNum = function() {
            return mygrid.getColumnsNum();
        }, this.getColumns = function() {
            return columnArray;
        }, this.getColumn = function(index) {
            return columnArray[index];
        }, this.getHeaders = function() {
            return headerArray;
        }, this.getColumnHeader = function(index) {
            return headerArray[index];
        }, this.getGridForm = function() {
            return gridForm;
        }, this.getToolBarForm = function() {
            return toolBarForm;
        }, this.setColWidth = function(colIndex, width) {
            mygrid.setColWidth(colIndex, width.toString());
        }, this.setColumnColor = function(array) {
            mygrid.setColumnColor(array.toString());
        }, this.setColumnHidden = function(colIndex, isHidden) {
            mygrid.setColumnHidden(colIndex, isHidden);
        }, this.setRowHidden = function(rowId, isHidden) {
            mygrid.setRowHidden(rowId, isHidden);
        }, this.selectRowById = function(rowId) {
            mygrid.selectRowById(rowId);
        }, this.resetSize = resetSize, this.on = function(eventName, callback) {
            "beforeDialogOpen" == eventName ? beforeDialogOpenEvent = callback : "afterDialogOpen" == eventName ? afterDialogOpenEvent = callback : "onAfterSorting" == eventName ? mygrid.attachEvent(eventName, function(index, type, direction) {
                resetSize(), callback(index, type, direction);
            }) : "onResizeEnd" == eventName ? mygrid.attachEvent(eventName, function(obj) {
                resetSize(), callback(obj);
            }) : "onCheck" == eventName ? mygrid.attachEvent(eventName, function(rId, cInd, state) {
                1 == cInd && opts.multiselect && changePageBtnStatus(), callback(rId, cInd, state);
            }) : mygrid.attachEvent(eventName, callback);
        }, this.attachEvent = this.on, this.attachToolBarEvent = function(eventName, callback) {
            toolBarForm && toolBarForm.on(eventName, callback);
        }, this.attachSideBarEvent = function(eventName, callback) {
            sideBarForm && sideBarForm.on(eventName, callback);
        }, this.splitAt = function(colIndex) {
            mygrid.splitAt(colIndex);
            for (var i = 0; i < hidenArray.length; i++) hidenArray[i] && mygrid.setColumnHidden(i, !0);
        };
        var self = this;
        opts.renderer && "" != opts.renderer && renderTo(opts.renderer);
    };
    plgGrid.prototype.t = function(is) {
        return this.t = is ? function(text) {
            return i18next.t(text);
        } : function(text) {
            return text;
        };
    }, window.PlgGrid = plgGrid;
}(jQuery);
"use strict";

!function($) {
    var calendar, renderDetails_area, fullMonth_title, detailMonth, detailMonth_title, detailMonth_day, ChineseCalendar = {
        lunarInfo: [ 19416, 19168, 42352, 21717, 53856, 55632, 91476, 22176, 39632, 21970, 19168, 42422, 42192, 53840, 119381, 46400, 54944, 44450, 38320, 84343, 18800, 42160, 46261, 27216, 27968, 109396, 11104, 38256, 21234, 18800, 25958, 54432, 59984, 28309, 23248, 11104, 100067, 37600, 116951, 51536, 54432, 120998, 46416, 22176, 107956, 9680, 37584, 53938, 43344, 46423, 27808, 46416, 86869, 19872, 42416, 83315, 21168, 43432, 59728, 27296, 44710, 43856, 19296, 43748, 42352, 21088, 62051, 55632, 23383, 22176, 38608, 19925, 19152, 42192, 54484, 53840, 54616, 46400, 46752, 103846, 38320, 18864, 43380, 42160, 45690, 27216, 27968, 44870, 43872, 38256, 19189, 18800, 25776, 29859, 59984, 27480, 21952, 43872, 38613, 37600, 51552, 55636, 54432, 55888, 30034, 22176, 43959, 9680, 37584, 51893, 43344, 46240, 47780, 44368, 21977, 19360, 42416, 86390, 21168, 43312, 31060, 27296, 44368, 23378, 19296, 42726, 42208, 53856, 60005, 54576, 23200, 30371, 38608, 19195, 19152, 42192, 118966, 53840, 54560, 56645, 46496, 22224, 21938, 18864, 42359, 42160, 43600, 111189, 27936, 44448, 84835, 37744, 18936, 18800, 25776, 92326, 59984, 27424, 108228, 43744, 41696, 53987, 51552, 54615, 54432, 55888, 23893, 22176, 42704, 21972, 21200, 43448, 43344, 46240, 46758, 44368, 21920, 43940, 42416, 21168, 45683, 26928, 29495, 27296, 44368, 84821, 19296, 42352, 21732, 53600, 59752, 54560, 55968, 92838, 22224, 19168, 43476, 41680, 53584, 62034, 54560 ],
        Gan: [ "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸" ],
        Zhe: [ "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥" ],
        Animals: [ "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪" ],
        solarTerm: [ "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至" ],
        weekend: [ "日", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十" ],
        lunarStr: [ "初", "十", "廿", "卅" ],
        lunarMonStr: [ "正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "冬", "腊" ],
        sTermInfo: [ 0, 21208, 42467, 63836, 85337, 107014, 128867, 150921, 173149, 195551, 218072, 240693, 263343, 285989, 308563, 331033, 353350, 375494, 397447, 419210, 440795, 462224, 483532, 504758 ],
        wFestive: [ "0520-母亲节", "0630-父亲节", "1144-感恩节" ],
        cFestive: [ "0101-元旦", "0214-情人节", "0305#1963-雷锋日", "0308-妇女节", "0312-植树节", "0401-愚人节", "0501-劳动日", "0504-青年节", "0512-护士节", "0601#1925-儿童节", "0701#1997-建党节", "0801#1927-建军节", "0910-教师节", "1001#1949-国庆节", "1224-平安夜", "1225-圣诞节" ],
        lFestive: [ "1230-除夕", "0101-春节", "0102-正月初二", "0115-元宵节", "0505-端午节", "0707-七夕节", "0715-中元节", "0815-中秋节", "0909-重阳节", "1208-腊八节", "1224-小年" ],
        lunarYearLength: function(y) {
            for (var sum = 348, i = 32768; 8 < i; i >>= 1) sum += ChineseCalendar.lunarInfo[y - 1900] & i ? 1 : 0;
            return sum += ChineseCalendar.leapMonthLengths(y);
        },
        lunarMonthLength: function(y, m) {
            return ChineseCalendar.lunarInfo[y - 1900] & 65536 >> m ? 30 : 29;
        },
        isLeapMonth: function(y) {
            return !!(15 & ChineseCalendar.lunarInfo[y - 1900]);
        },
        leapMonth: function(y) {
            return ChineseCalendar.isLeapMonth(y) ? 15 & ChineseCalendar.lunarInfo[y - 1900] : 0;
        },
        leapMonthLengths: function(y) {
            return ChineseCalendar.isLeapMonth(y) ? 65536 & ChineseCalendar.lunarInfo[y - 1900] ? 30 : 29 : 0;
        },
        year2GanZhe: function(y) {
            var gan = (y - 3) % 10;
            0 === gan && (gan = 10);
            var zhe = (y - 3) % 12;
            return 0 === zhe && (zhe = 12), ChineseCalendar.Gan[gan - 1] + ChineseCalendar.Zhe[zhe - 1];
        },
        month2GanZhe: function(y, m) {
            var ganY = (y - 3) % 10;
            0 === ganY && (ganY = 10);
            var month = (ganY - 1) % 5 * 12 + m + 1;
            return ChineseCalendar.Gan[month % 10] + ChineseCalendar.Zhe[month % 12];
        },
        day2GanZhe: function(offset) {
            var temp = 40 + offset;
            return ChineseCalendar.Gan[temp % 10] + ChineseCalendar.Zhe[temp % 12];
        },
        sTerm: function(y, n) {
            var ms = 31556925974.7 * (y - 1900) + 6e4 * ChineseCalendar.sTermInfo[n], base = Date.UTC(1900, 0, 6, 2, 5);
            return new Date(ms + base);
        },
        isTerm: function(y, m, d) {
            var date = new Date(y, m - 1, d), n = 2 * (m - 1), dateTerm = ChineseCalendar.sTerm(y, n);
            return ChineseCalendar.isSameDay(dateTerm, date) ? ChineseCalendar.solarTerm[n] : (n += 1, 
            dateTerm = ChineseCalendar.sTerm(y, n), !!ChineseCalendar.isSameDay(dateTerm, date) && ChineseCalendar.solarTerm[n]);
        },
        isSameDay: function(date1, date2) {
            return date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate();
        },
        getStar: function(month, day) {
            return [ "魔羯", "水瓶", "双鱼", "白羊", "金牛", "双子", "巨蟹", "狮子", "处女", "天秤", "天蝎", "射手", "魔羯" ][month - 1 + ([ 20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22 ][month - 1] < day ? 1 : 0)] + "座";
        },
        toLunarMonth: function(m, flag) {
            return flag ? "闰" + ChineseCalendar.lunarMonStr[m - 1] + "月" : ChineseCalendar.lunarMonStr[m - 1] + "月";
        },
        toLunarDay: function(d) {
            return 10 === d ? "初十" : ChineseCalendar.lunarStr[Math.floor(d / 10)] + (d % 10 == 0 ? "十" : ChineseCalendar.weekend[d % 10]);
        },
        getAnimal: function(y) {
            return ChineseCalendar.Animals[(y - 4) % 12];
        },
        isTody: function(date) {
            var now = new Date();
            return date.getFullYear() === now.getFullYear() && date.getMonth() === now.getMonth() && date.getDate() === now.getDate();
        },
        isFestive: function(y, m, d, ly, lm, ld) {
            var lstr = 9 < lm ? lm + "" : "0" + lm;
            lstr += 9 < ld ? ld + "" : "0" + ld;
            var cstr = 9 < m ? m + "" : "0" + m;
            cstr += 9 < d ? d + "" : "0" + d;
            for (var festive = ChineseCalendar.lFestive, i = 0, l = festive.length; i < l; i += 1) {
                if ((test = festive[i].match(/(\d*)-(.*)/))[1] === lstr) return test[2];
            }
            for (i = 0, l = (festive = ChineseCalendar.cFestive).length; i < l; i += 1) {
                var year = (test = festive[i].match(/(\d*#?\d*)-(.*)/))[1].split("#");
                if (year[1] && y > year[1]) {
                    if (year[0] === cstr) return test[2];
                } else if (!year[1] && test[1] === cstr) return test[2];
            }
            festive = ChineseCalendar.wFestive;
            var date = new Date(y, m - 1, d);
            for (i = 0, l = festive.length; i < l; i += 1) {
                var test, month = (test = festive[i].match(/(\d*)-(.*)/))[1].substring(0, 2), day = test[1].substring(3, 4), nWeek = test[1].substring(2, 3);
                if ((9 < m ? m + "" : "0" + m) === month && date.getDay() === parseInt(day)) if (ChineseCalendar.theNoWeek(y, m, d) === parseInt(nWeek)) return test[2];
            }
            return !1;
        },
        theNoWeek: function(y, m, d) {
            var first = new Date(y, m - 1, d);
            first.setDate(1);
            var date = new Date(y, m - 1, d), day = first.getDay(), current = date.getDate();
            0 === day && (day = 7);
            for (var head = 1, tail = 8 - day, result = 1; ;) {
                if (head <= current && current <= tail) return result;
                result += 1, tail = (head = tail + 1) + 6;
            }
        },
        isRunYear: function(year) {
            return year % 400 == 0 || year % 4 == 0 && year % 100 != 0;
        },
        getlunarYMD: function(date) {
            for (var result = {
                year: date.getFullYear(),
                month: date.getMonth() + 1,
                day: date.getDate()
            }, offset = (Date.UTC(result.year, result.month - 1, result.day) - Date.UTC(1900, 0, 31)) / 864e5, temp = 0, i = 1900; i < 2101 && 0 < offset; i++) offset -= temp = ChineseCalendar.lunarYearLength(i);
            offset < 0 && (offset += temp, i--), result.lunarYear = i;
            var isLear = !1, lunarMonth = ChineseCalendar.leapMonth(result.lunarYear);
            for (i = 1; i < 13 && 0 <= offset; i++) offset -= temp = ChineseCalendar.lunarMonthLength(result.lunarYear, i), 
            isLear = !1, i === lunarMonth && (offset < 0 ? (i--, isLear = !0) : offset -= temp = ChineseCalendar.leapMonthLengths(result.lunarYear));
            return offset < 0 && (i === lunarMonth && isLear ? (offset += temp, isLear = !1) : (i === lunarMonth + 1 ? (offset += temp, 
            isLear = !0) : offset += temp, i--)), result.lunarMonth = i, result.lunarMonthChiness = ChineseCalendar.toLunarMonth(result.lunarMonth, isLear), 
            result.lunarDay = offset + 1, result.lunarDayChiness = ChineseCalendar.toLunarDay(result.lunarDay), 
            result;
        },
        lunarFestival: function(date) {
            var result = ChineseCalendar.getlunarYMD(date), festive = ChineseCalendar.isFestive(result.year, result.month, result.day, result.lunarYear, result.lunarMonth, result.lunarDay);
            ChineseCalendar.isTerm(result.year, result.month, result.day);
            if (festive) return festive;
        },
        lunarTerm: function(date) {
            var result = ChineseCalendar.getlunarYMD(date), term = ChineseCalendar.isTerm(result.year, result.month, result.day);
            if (term) return term;
        },
        lunarTime: function(date) {
            return ChineseCalendar.getlunarYMD(date).lunarDayChiness;
        },
        date2lunar: function(date) {
            var result = {
                year: (date = date || new Date()).getFullYear(),
                month: date.getMonth() + 1,
                day: date.getDate()
            }, offset = (Date.UTC(result.year, result.month - 1, result.day) - Date.UTC(1900, 0, 31)) / 864e5, temp = 0;
            result.gzD = ChineseCalendar.day2GanZhe(offset);
            for (var i = 1900; i < 2101 && 0 < offset; i++) offset -= temp = ChineseCalendar.lunarYearLength(i);
            offset < 0 && (offset += temp, i--), result.lunarYear = i;
            var isLear = !1, lunarMonth = ChineseCalendar.leapMonth(result.lunarYear);
            for (i = 1; i < 13 && 0 <= offset; i++) offset -= temp = ChineseCalendar.lunarMonthLength(result.lunarYear, i), 
            isLear = !1, i === lunarMonth && (offset < 0 ? (i--, isLear = !0) : offset -= temp = ChineseCalendar.leapMonthLengths(result.lunarYear));
            return offset < 0 && (i === lunarMonth && isLear ? (offset += temp, isLear = !1) : (i === lunarMonth + 1 ? (offset += temp, 
            isLear = !0) : offset += temp, i--)), result.lunarMonth = i, result.lunarMonthChiness = ChineseCalendar.toLunarMonth(result.lunarMonth, isLear), 
            result.lunarDay = offset + 1, result.lunarDayChiness = ChineseCalendar.toLunarDay(result.lunarDay), 
            result.animal = ChineseCalendar.getAnimal(result.year), result.week = "星期" + ChineseCalendar.weekend[date.getDay()], 
            result.start = ChineseCalendar.getStar(result.month, result.day), result.gzY = ChineseCalendar.year2GanZhe(result.lunarYear), 
            result.isTody = ChineseCalendar.isTody(date), result.gzM = ChineseCalendar.month2GanZhe(result.lunarYear, result.lunarMonth), 
            result.isTerm = ChineseCalendar.isTerm(result.year, result.month, result.day), result.isTerm && (result.term = result.isTerm, 
            result.isTerm = !0), result.isFestive = ChineseCalendar.isFestive(result.year, result.month, result.day, result.lunarYear, result.lunarMonth, result.lunarDay), 
            result.isFestive && (result.festive = result.isFestive, result.isFestive = !0), 
            result;
        }
    }, tools = {
        renderDetailMonth: function(dayWrapper, recivedYear, recivedMonth) {
            var array = [], recivedDate = new Date(), _html = "", date = new Date(recivedYear, recivedMonth, 1);
            date.setDate(1);
            var week = date.getDay();
            date.setDate(1 - week);
            for (var month = date.getMonth(), i = 0; i < 42; i++) month !== recivedMonth ? 0 === date.getDay() || 6 === date.getDay() ? array.push({
                month: date.getMonth(),
                day: date.getDate(),
                lunar: ChineseCalendar.lunarTime(date),
                state: "weekend",
                festival: "",
                term: "",
                dateStr: tools.returnDateStr(date)
            }) : array.push({
                month: date.getMonth(),
                day: date.getDate(),
                lunar: ChineseCalendar.lunarTime(date),
                state: "",
                festival: "",
                term: "",
                dateStr: tools.returnDateStr(date)
            }) : tools.curDay(date, recivedDate) ? 0 === date.getDay() || 6 === date.getDay() ? array.push({
                month: date.getMonth(),
                day: date.getDate(),
                lunar: ChineseCalendar.lunarTime(date),
                state: "weekend cur-day",
                festival: "",
                term: "",
                dateStr: tools.returnDateStr(date)
            }) : array.push({
                month: date.getMonth(),
                day: date.getDate(),
                lunar: ChineseCalendar.lunarTime(date),
                state: "cur-day",
                festival: "",
                term: "",
                dateStr: tools.returnDateStr(date)
            }) : 0 === date.getDay() || 6 === date.getDay() ? array.push({
                month: date.getMonth(),
                day: date.getDate(),
                lunar: ChineseCalendar.lunarTime(date),
                state: "weekend cur-month",
                festival: "",
                term: "",
                dateStr: tools.returnDateStr(date)
            }) : array.push({
                month: date.getMonth(),
                day: date.getDate(),
                lunar: ChineseCalendar.lunarTime(date),
                state: "cur-month",
                festival: "",
                term: "",
                dateStr: tools.returnDateStr(date)
            }), date.setDate(date.getDate() + 1), month = date.getMonth();
            this.params.startTime = array[0].dateStr, this.params.endTime = array[array.length - 1].dateStr;
            for (var j = 0; j < array.length; j++) {
                var festival_state = array[j].festival ? "festival show" : "festival", term_state = array[j].term ? "term show" : "term", first_lunarday = "初一" == array[j].lunar ? ChineseCalendar.date2lunar(date).lunarMonthChiness + array[j].lunar : array[j].lunar;
                if ("初一" == array[j].lunar) if ("正月" == ChineseCalendar.date2lunar(date).lunarMonthChiness) var lunar_state = "lunar first-lunarJanuary"; else lunar_state = "lunar first-lunarday"; else lunar_state = "lunar";
                _html += '<li data-time="'.concat(array[j].dateStr, '" class="').concat(array[j].state, '">\n                      <p class="info">\n                        <span class="').concat(lunar_state, '">').concat(first_lunarday, '</span>\n                        <span class="date">').concat(1 === array[j].day ? array[j].month + 1 + "月" : "", "<em>").concat(array[j].day, '</em>日</span>\n                      </p>\n                      <div class="').concat(festival_state, '">').concat(array[j].festival, '</div>\n                      <div class="').concat(term_state, '">').concat(array[j].term, '</div>\n                      <div class="addForm"></div>\n                    </li>');
            }
            dayWrapper.html(_html);
        },
        nowDate: function() {
            return new Date();
        },
        returnDateStr: function(date) {
            var year = date.getFullYear(), month = date.getMonth() + 1, day = date.getDate();
            return year + "-" + (month = month <= 9 ? "0" + month : "" + month) + "-" + (day = day <= 9 ? "0" + day : "" + day);
        },
        curDay: function(oldTime, nowTime) {
            return oldTime.getFullYear() === nowTime.getFullYear() && oldTime.getMonth() === nowTime.getMonth() && oldTime.getDate() === nowTime.getDate();
        },
        strFormatDate: function(str) {
            return new Date(parseInt(str.substr(0, 4)), parseInt(str.substr(4, 2)), parseInt(str.substr(6)));
        }
    };
    function PlgCalendarPanel(config) {
        return this.tab_num = 0, this.today = new Date(), this.year = this.today.getFullYear(), 
        this.month = this.today.getMonth(), this.detailsShow = !1, this.options = {
            renderer: "",
            data: null,
            column: {
                timeKey: "deliverdate",
                width: 110,
                height: 110
            },
            ajaxInit: {
                url: "",
                type: "get",
                params: null,
                success: null
            },
            addItemClick: null,
            addItem: {
                width: 600,
                height: 500,
                title: "新增日程",
                formData: null,
                url: null,
                type: "post",
                contentType: "application/json",
                saveAfter: null
            },
            customDayRender: null,
            clickDetails: null,
            detailsDay: {
                formData: null
            }
        }, this.params = {
            startTime: "",
            endTime: ""
        }, this.options = $.extend(!0, this.options, config), this.options.detailsShow && (this.detailsShow = this.options.detailsShow), 
        this.element = function() {
            return (calendar = $('\n   <div id="calendar">\n   <header class="header">\n   \n   </header>\n\n   <div class="container">\n     <div id="renderMonth" class="render render-show">\n     <div class="toolbar">\n       <h2 class="title"></h2>\n       <ul class="week">\n          <li>周日</li><li>周一</li><li>周二</li> <li>周三</li> <li>周四</li><li>周五</li><li>周六</li>\n        </ul> \n        </div>   \n       <ul class="day" style="grid-template-columns: repeat(7,'.concat(this.options.column.width, "px);grid-template-rows: repeat(6,").concat(this.options.column.height, 'px);"></ul>\n     </div>\n     <div id="renderDetails" class="render">\n       <div class="title">\n         <h2></h2>\n         <p>\n           <button class="layui-btn layui-btn-primary layui-btn-sm layui-icon layui-icon-left"> 返回 </button>\n           </p>\n       </div>\n\n       <div class="details-body">\n        <div id="plgCalendar-details-content"></div>\n       </div>\n\n     </div>\n     <div id="control">\n       <input type="button" value="<" class="btn btn-prev">\n       <input type="button" value="今天" class="today">\n       <input type="button" value=">" class="btn btn-next">\n     </div>\n     <div id="popup" style="display: none;">\n     <h3 class="title">\n      <input type="text">\n     </h3>\n     <i class="arrow arrow-left"></i>\n     <i class="arrow arrow-right"></i>\n     <p class="date"></p>\n     <p class="lunar"></p>\n   </div>\n   </div>\n </div>'))).find(".toolbar .week li").width(this.options.column.width), 
            renderDetails_area = calendar.find("#renderDetails"), fullMonth_title = renderDetails_area.find("h2"), 
            detailMonth = calendar.find("#renderMonth"), detailMonth_title = detailMonth.find(".title"), 
            detailMonth_day = detailMonth.find(".day"), calendar;
        }.call(this), this.init(), this.promiseGetDate = loadData.call(this), this;
    }
    function loadData() {
        var _this = this;
        return new Promise(function(resolve, error) {
            if (_this.options.data) return _this.options.data;
            if (!_this.options.ajaxInit.url) return null;
            var object = {
                url: _this.options.ajaxInit.url,
                type: _this.options.ajaxInit.type,
                data: Object.assign(_this.options.ajaxInit.params, _this.params)
            }, close = PlgDialog.loading2();
            object.success = function(response) {
                if (close(), response.success) return _this.options.data = response.data, "function" == typeof _this.options.ajaxInit.success && _this.options.ajaxInit.success(_this.options.data), 
                _this.options.data.forEach(function(item) {
                    var key = _this.options.column.timeKey, li = detailMonth_day.children('li[data-time="'.concat(item[key], '"]'));
                    item = "function" == typeof _this.options.customDayRender ? _this.options.customDayRender(item) : Object.values(item).join(","), 
                    li.children(".festival").show().append(item);
                }), resolve(_this.options.data);
            }, object.error = function(XMLHttpRequest, textStatus, errorThrown) {}, object.complete = function() {
                close();
            }, Prolog.ajax(object);
        });
    }
    function initalToday() {
        detailMonth_title.html(this.year + "年" + (this.month + 1) + "月"), tools.renderDetailMonth.call(this, detailMonth_day, this.year, this.month);
    }
    PlgCalendarPanel.prototype.reset = function() {
        return this.options.data = null, initalToday.call(this), this.promiseGetDate = loadData.call(this), 
        this;
    }, PlgCalendarPanel.prototype.getData = function() {
        return this.options.data;
    }, PlgCalendarPanel.prototype.init = function() {
        initalToday.call(this), function() {
            var _this = this, control = calendar.find("#control"), control_btnPrev = control.find(".btn-prev"), control_today = control.find(".today"), control_btnNext = control.find(".btn-next"), container_day = (calendar.find("#popup"), 
            calendar.find(".container ul.day"));
            control_today.click(function() {
                _this.year = _this.today.getFullYear(), _this.month = _this.today.getMonth(), _this.reset();
            }), control_btnPrev.click(function() {
                0 == _this.month ? (_this.year--, _this.month = 11) : _this.month--, _this.reset();
            }), control_btnNext.click(function() {
                0 == _this.tab_num ? 11 == _this.month ? (_this.year++, _this.month = 0) : _this.month++ : _this.year++, 
                _this.reset();
            }), renderDetails_area.find(".layui-icon-left").click(function(e) {
                e.preventDefault(), renderDetails_area.hide(), detailMonth.show(), control.show();
            }), container_day.on("click", "li>div", function(event) {
                event.stopPropagation();
                var date = $(this).parent().data("time");
                return $(this).is(".festival") && (renderDetails_area.width(detailMonth.width()), 
                renderDetails_area.height(detailMonth.height()), "function" == typeof _this.options.clickDetails && _this.options.clickDetails(_this.getData().find(function(item) {
                    return item[_this.options.column.timeKey] == date;
                })), _this.detailsShow && (_this.options.detailsDay.formData && new PlgForm({
                    renderer: "plgCalendar-details-content",
                    items: _this.options.detailsDay.formData
                }), fullMonth_title.html(new Date(date).format("yyyy年MM月dd")), detailMonth.hide(), 
                control.hide(), renderDetails_area.show())), !!$(this).is(".addForm") && ("function" == typeof _this.options.addItemClick ? _this.options.addItemClick(date, _this.showDialog.bind(_this)) : void _this.showDialog());
            });
        }.call(this), this.options.renderer && this.renderTo(this.options.renderer);
    }, PlgCalendarPanel.prototype.setAddItemFormData = function(array) {
        if (Array.isArray(array)) return this.options.addItem.formData = array, this;
    }, PlgCalendarPanel.prototype.getDialogForm = function() {
        return new PlgForm({
            items: this.options.addItem.formData
        });
    }, PlgCalendarPanel.prototype.showDialog = function() {
        var _this = this;
        if (this.options.addItem.formData) {
            var gridForm, winoptions = {
                title: this.options.addItem.title,
                closeBtn: 1,
                type: 1,
                area: [ this.options.addItem.width + "px", this.options.addItem.height + "px" ],
                resize: !0,
                tipsMore: !0,
                btn: [ "保存", "重置", "取消" ],
                btn3: function(index, layero) {
                    PlgDialog.close(index);
                },
                btn1: function() {
                    if (0 != gridForm.validate()) {
                        var close = PlgDialog.loading2(), paramsData = gridForm.getFormData();
                        "function" == typeof _this.options.addItem.saveAfter && _this.options.addItem.saveAfter(paramsData, gridForm);
                        var requestParams = {
                            url: _this.options.addItem.url,
                            type: _this.options.addItem.type,
                            contentType: _this.options.addItem.contentType,
                            data: paramsData,
                            success: function(data) {
                                data.success ? (_this.options.addItem && _this.options.addItem.yes(), _this.reset()) : data.message ? PlgDialog.alert(data.message) : PlgDialog.alert("保存失败"), 
                                close();
                            },
                            error: function() {
                                close();
                            }
                        };
                        Prolog.ajax(requestParams);
                    }
                },
                btn2: function() {
                    return gridForm.clear(), Object.keys(gridForm.getFormData()).forEach(function(item) {
                        try {
                            gridForm.getDForm().clearNote(item), $(gridForm.getDForm().getInput(item)).parent().parent().removeClass("validate_error");
                        } catch (e) {}
                    }), !1;
                },
                content: '<div id="plgCalendar-win-form-1"></div>',
                success: function(layero, index) {
                    gridForm = _this.getDialogForm().renderTo("plgCalendar-win-form-1");
                }
            };
            return PlgDialog.open(winoptions), this;
        }
        PlgDialog.msg("addItem.formData", "未设置表单");
    }, PlgCalendarPanel.prototype.renderTo = function(domId) {
        return this.options.renderer = domId, $("#" + this.options.renderer).addClass("plg-calendar-panel").empty().append(this.element), 
        this;
    }, window.PlgCalendarPanel = PlgCalendarPanel;
}(jQuery);
"use strict";

function _defineProperty(obj, key, value) {
    return key in obj ? Object.defineProperty(obj, key, {
        value: value,
        enumerable: !0,
        configurable: !0,
        writable: !0
    }) : obj[key] = value, obj;
}

!function($) {
    $.fn.initPlgCard = function(options) {
        var pg = new PlgCard(options), id = $(this).attr("id");
        return pg.renderTo(id), pg;
    };
    var PlgCard = function(options) {
        var _factory;
        if (options && options.renderer) {
            var config;
            config = {};
            var factory = (_defineProperty(_factory = {
                _style: (config = $.extend({}, config, options.config)).style,
                _data: config.data || "",
                _strTitle: function() {
                    return '<div class="plg-card-components">                   <div class="plg-card-header-container">                  <fieldset><legend>';
                },
                _strHead: function() {
                    return '<div class="plg-card-group">';
                },
                _strTitleHead: function() {
                    return '</legend></fieldset></div><div class="plg-card-group">';
                },
                _strFooter: function() {
                    return "</div>";
                }
            }, "_strFooter", function() {
                return "</div></div>";
            }), _defineProperty(_factory, "generateOneTemplate", function(data) {
                var temFragment = "";
                return data.forEach(function(val) {
                    temFragment += '\n                <div class="plg-card">\n                  <div class="plg-card-body">\n                    <div class="plg-card-no">'.concat(val.cardNo, '</div>\n                    <div class="plg-card-main">').concat(val.cardName, '</div>\n                   </div>\n  \n                   <ul class="plg-card-btn-group">\n              ');
                    var temBtns = "";
                    val.btn.forEach(function(value) {
                        temBtns += "\n                <li>".concat(value.text, "</li>\n              ");
                    }), temFragment += temBtns, temFragment += "\n                </ul>\n              </div>\n            ";
                }), temFragment;
            }), _defineProperty(_factory, "oneTemplate", function() {
                var temFragment = "";
                return this._data.forEach(function(val) {
                    temFragment += '\n                <div class="plg-card">\n                  <div class="plg-card-body">\n                    <div class="plg-card-no">'.concat(val.cardNo, '</div>\n                    <div class="plg-card-main">').concat(val.cardName, '</div>\n                   </div>\n  \n                   <ul class="plg-card-btn-group">\n              ');
                    var temBtns = "";
                    val.btn.forEach(function(value) {
                        temBtns += "\n                <li>".concat(value.text, "</li>\n              ");
                    }), temFragment += temBtns, temFragment += "\n                </ul>\n              </div>\n            ";
                }), this._strHead() + temFragment + this._strFooter();
            }), _defineProperty(_factory, "twoTemplate", function() {
                var temFragment = "";
                return this._data.forEach(function(val) {
                    temFragment += '\n                <div class="plg-card">\n                  <div class="plg-card-body primary">\n                    '.concat(val.cardName, '\n                   </div>\n  \n                   <ul class="plg-card-btn-group">\n              ');
                    var temBtns = "";
                    val.btn.forEach(function(value) {
                        temBtns += "\n                <li>".concat(value.text, "</li>\n              ");
                    }), temFragment += temBtns, temFragment += "\n                </ul>\n              </div>\n            ";
                }), this._strHead() + temFragment + this._strFooter();
            }), _defineProperty(_factory, "threeTemplate", function() {
                var temFragment = "";
                return this._data.forEach(function(val) {
                    temFragment += '\n                <div class="plg-card">\n                  <div class="plg-card-body primary">\n                    '.concat(val.cardName, '\n                   </div>\n  \n                   <ul class="plg-card-btn-group">\n              ');
                    var temBtns = "";
                    val.btn.forEach(function(value) {
                        temBtns += "\n                <li>".concat(value.text, "</li>\n              ");
                    }), temFragment += temBtns, temFragment += "\n                </ul>\n              </div>\n            ";
                }), this._strHead() + temFragment + this._strFooter();
            }), _defineProperty(_factory, "addTemplate", function() {
                return '<div class="plg-card plg-add">\n                  <div class="layui-icon layui-icon-add-1 "></div>\n                </div>';
            }), _defineProperty(_factory, "oneTitleTemplate", function() {
                var self = this, temFragment = "";
                return self._data.forEach(function(val) {
                    temFragment += '<div class="plg-card-components"><div class="plg-card-header-container">\n                <fieldset><legend>\n                '.concat(val.title, "\n                <legend><fieldset></div>"), 
                    temFragment += self._strHead(), temFragment += self.generateOneTemplate(val.dataList), 
                    temFragment += self._strFooter(), temFragment += "</div>";
                }), temFragment;
            }), _defineProperty(_factory, "oneTitleAddTemplate", function() {
                var self = this, temFragment = "";
                return !(!self._data || self._data.length < 1) && (self._data.forEach(function(val) {
                    temFragment += '<div class="plg-card-components"><div class="plg-card-header-container">\n                <fieldset><legend>\n                '.concat(val.title, "\n                <legend><fieldset></div>"), 
                    temFragment += self._strHead(), temFragment += self.generateOneTemplate(val.dataList), 
                    temFragment += self.addTemplate(), temFragment += self._strFooter(), temFragment += "</div>";
                }), temFragment);
            }), _defineProperty(_factory, "getHtmlFragment", function() {
                var attrName = this._style + "Template";
                return this[attrName] ? this[attrName]() : new Error("不存在这个方法");
            }), _factory);
            this.on = function(eventname, callback) {
                config && "add" !== config.style && eventname && "click" == eventname && ([ "one", "two", "three" ].includes(config.style) && $("#" + options.renderer).on("click", "li", function(e) {
                    var temIndex = $(this).closest(".plg-card").index(), cardNo = config.data[temIndex].cardNo, call_back_fn = config.data[temIndex].btn[$(this).index()].fn;
                    callback && callback(cardNo, call_back_fn);
                }), [ "oneTitle", "twoTitle", "threeTitle", "oneTitleAdd", "twoTitleAdd", "threeTitleAdd" ].includes(config.style) && ($("#" + options.renderer).off("click").on("click", "li", function(e) {
                    var cardNo, call_back_fn, groupIndex = $(this).closest(".plg-card-components").index(), temIndex = $(this).closest(".plg-card").index(), currentData = config.data[groupIndex].dataList[temIndex];
                    cardNo = currentData.cardNo, call_back_fn = currentData.btn[$(this).index()].fn;
                    var title = config.data[groupIndex].title;
                    title ? callback && callback(cardNo, call_back_fn, title) : callback && callback(cardNo, call_back_fn);
                }), $("#" + options.renderer).on("click", ".plg-add", function(e) {
                    var groupIndex = $(this).closest(".plg-card-components").index(), title = config.data[groupIndex].title;
                    title ? callback && callback(void 0, void 0, title) : callback && callback(void 0, void 0);
                }))), config && "add" === config.style && eventname && "click" == eventname && $("#" + options.renderer).on("click", ".plg-card", function(e) {
                    callback && callback();
                });
            }, this.renderTo = function(id) {
                $("#" + id).append(factory.getHtmlFragment());
            }, options.renderer && this.renderTo(options.renderer);
        }
    };
    window.PlgCard = PlgCard;
}(jQuery);
"use strict";

!function($) {
    $.fn.initPlgCardList = function(options) {
        var pg = new PlgCardList(options), id = $(this).attr("id");
        return pg.renderTo(id), pg;
    };
    var PlgCardList = function PlgCardList(options) {
        if (!options) return !1;
        var config;
        config = {
            isShowAdd: !0
        };
        var factory = {
            _data: (config = Object.assign({}, config, options.data)) || "",
            _strTitle: function() {
                var temStr = "";
                return temStr += '<div class="plg-zone-container">\n        <div class="plg-zone-header">\n          <div class="plg-title"><i class="layui-icon layui-icon-location"></i>\n          '.concat(this._data.zoneName, "</div>"), 
                this._data.isShowAdd && (temStr += '<div class="plg-add">\n            <button class="layui-btn layui-btn-normal" data-zoneid='.concat(this._data.zoneId, ' name="plg-add">\n              添加\n            </button>\n          </div>')), 
                temStr += '</div>\n          <div class="plg-customer-list">\n          <ul class="layui-row">';
            },
            _strCellStart: function() {
                return '<li class="layui-col-lg3 layui-col-md4 layui-col-sm6 \n        layui-col-xs12">\n        <div class="plg-cell">';
            },
            _strCellHead: function(head) {
                return '<div class="plg-customer-name">\n          <i class="plg-badge-dot"></i>'.concat(head, "\n        </div>");
            },
            _strCellBody: function(des) {
                return '<div class="plg-customer-des">'.concat(des, "</div>");
            },
            _strCellFooter: function(obj) {
                var temFragment = "";
                temFragment += '<div class="plg-customer-other">\n          <div class="plg-cutomer-no">编号:<span>'.concat(obj.useNo, "</span></div>");
                var temStr = "";
                if (0 < Object.keys(obj.btns).length) {
                    var item;
                    JSON.stringify(obj.id);
                    for (item in temStr += '<div class="plg-cutomer-operating" data-id='.concat(obj.id, ">"), 
                    obj.btns) temStr += '<span class="plg-'.concat(item, '">').concat(obj.btns[item], "</span>");
                    temStr += "</div>";
                }
                return temFragment += temStr, temFragment += "</div>";
            },
            _strCellEnd: function() {
                return "</div>\n        </li>";
            },
            _strFooter: function() {
                return "</ul>\n          </div>\n        </div>";
            },
            getHtmlFragment: function() {
                var self = this, temFragment = "";
                return self._data.customerList && 0 < self._data.customerList.length && self._data.customerList.map(function(val) {
                    var temObj = {
                        id: val.id,
                        useNo: val.useNo,
                        btns: val.btns
                    };
                    temFragment += self._strCellStart(), temFragment += self._strCellHead(val.name), 
                    temFragment += self._strCellBody(val.description), temFragment += self._strCellFooter(temObj), 
                    temFragment += self._strCellEnd();
                }), $(self._strTitle() + temFragment + self._strFooter());
            }
        };
        function getData(id) {
            if (null == config || null == config.customerList || config.customerList.length < 1) return null;
            var result = null;
            return config.customerList.map(function(item) {
                item.id != id || (result = item);
            }), result;
        }
        PlgCardList.prototype.cuson = function() {}, this.on = function(eventname, callback) {
            "add" !== eventname ? this.event.find(".plg-" + eventname).length && this.event.find(".plg-" + eventname).on("click", function() {
                var currentId = $(this).closest(".plg-cutomer-operating").data("id"), chddata = getData(currentId);
                callback && callback(currentId, chddata);
            }) : this.event.find(".plg-add").eq(0).on("click", function() {
                var currentId = $(this).find(".layui-btn").eq(0).data("zoneid");
                callback && callback(currentId);
            });
        }, this.getData = getData, this.renderTo = function(id) {
            this.event = factory.getHtmlFragment(), $("#" + id).append(this.event);
        }, options.renderer && this.renderTo(options.renderer);
    };
    window.PlgCardList = PlgCardList;
}(jQuery);
"use strict";

!function($, layui) {
    layui.use([ "laydate" ], function() {
        var plgDate = layui.laydate;
        window.plgDate = plgDate, $.fn.plgDateRender = function(options) {
            var _this = this, opts = $.extend(!0, {
                value: ""
            }, options);
            return 1 < this.length ? $(this).each(function(index, value) {
                opts.elem = this, _this.otps = plgDate.render(opts);
            }) : (opts.elem = this.selector, _this.otps = plgDate.render(opts)), _this;
        };
    });
}(jQuery, layui);
"use strict";

!function($, h, c) {
    var i, a = $([]), e = $.resize = $.extend($.resize, {}), k = "setTimeout", j = "resize", d = j + "-special-event", b = "delay", f = "throttleWindow";
    e[b] = 250, e[f] = !0, $.event.special[j] = {
        setup: function() {
            if (!e[f] && this[k]) return !1;
            var l = $(this);
            a = a.add(l), $.data(this, d, {
                w: l.width(),
                h: l.height()
            }), 1 === a.length && function g() {
                i = h[k](function() {
                    a.each(function() {
                        var n = $(this), m = n.width(), l = n.height(), o = $.data(this, d);
                        m === o.w && l === o.h || n.trigger(j, [ o.w = m, o.h = l ]);
                    }), g();
                }, e[b]);
            }();
        },
        teardown: function() {
            if (!e[f] && this[k]) return !1;
            var l = $(this);
            a = a.not(l), l.removeData(d), a.length || clearTimeout(i);
        },
        add: function(l) {
            if (!e[f] && this[k]) return !1;
            var n;
            function m(s, o, p) {
                var q = $(this), r = $.data(this, d);
                r.w = o !== c ? o : q.width(), r.h = p !== c ? p : q.height(), n.apply(this, arguments);
            }
            if ($.isFunction(l)) return n = l, m;
            n = l.handler, l.handler = m;
        }
    };
}(jQuery, window);
"use strict";

dhtmlXForm.prototype.items.blockSelect = {
    render: function(item, data) {
        item._type = "blockSelect", item._idd = data.name, item._value = "", item._eable = !0;
        var _self = this, cid = "dhxId_blockSelect_" + Prolog.createRandomId();
        item._cid = cid;
        var label = document.createElement("div");
        label.setAttribute("class", "dhxform_label " + data.labelAlign), label.innerHTML = '<label for="' + cid + '">' + data.label + "</label>", 
        data.labelWidth && (label.style.width = data.labelWidth + "px"), item.appendChild(label);
        var control = document.createElement("div");
        control.setAttribute("class", "dhxform_control");
        var selectList = document.createElement("div");
        selectList.setAttribute("class", "plg-form-multiSelect"), selectList.setAttribute("id", cid), 
        selectList.style.width = data.width + "px";
        var ul = document.createElement("ul");
        if (item._ul = ul, data.params = null == data.params ? {} : data.params, data.requestMethod = null == data.requestMethod ? "GET" : data.requestMethod, 
        data.valueField = null == data.valueField ? "value" : data.valueField, data.textField = null == data.textField ? "text" : data.textField, 
        null != data.url && "" != data.url) Prolog.ajax({
            url: data.url,
            type: data.requestMethod,
            data: data.params,
            success: function(da) {
                if (da.success) {
                    for (var cdata = da.data.list ? da.data.list : da.data, i = 0; i < cdata.length; i++) {
                        var li = document.createElement("li");
                        li.innerHTML = "<span>" + cdata[i][data.textField] + "</span>", li.setAttribute("value", cdata[i][data.valueField]), 
                        ul.appendChild(li);
                    }
                    if (selectList.appendChild(ul), control.appendChild(selectList), item.appendChild(control), 
                    data.disabled) return this.disable(item), this;
                    _self.bindClickEvent(item, data);
                }
            }
        }); else {
            if (data.data && 0 < data.data.length) for (var i = 0; i < data.data.length; i++) {
                var li = document.createElement("li");
                li.innerHTML = "<span>" + data.data[i][data.textField] + "</span>", li.setAttribute("value", data.data[i][data.valueField]), 
                ul.appendChild(li);
            }
            if (selectList.appendChild(ul), control.appendChild(selectList), item.appendChild(control), 
            data.disabled) return this.disable(item), this;
            this.bindClickEvent(item, data);
        }
        return data.hidden && (item.style.display = "none"), this;
    },
    bindClickEvent: function(item, data) {
        var cid = item._cid;
        $("#" + cid).on("click", "li", function() {
            if (!$(this).hasClass("disabled")) {
                null == data.multiSelect || 0 == data.multiSelect ? $(this).hasClass("active") ? $(this).removeClass("active") : ($("#" + cid + " li").removeClass("active"), 
                $(this).addClass("active")) : $(this).hasClass("active") ? $(this).removeClass("active") : $(this).addClass("active");
                for (var values = [], selecteds = $("#" + cid + " .active"), k = 0; k < selecteds.length; k++) values.push($(selecteds[k]).attr("value"));
                item._value = values.join(","), data.listener && data.listener(item._value);
            }
        });
    },
    destruct: function(item) {
        $("#" + item._cid + " li").unbind("click"), item.innerHTML = "";
    },
    setValue: function(item, value) {
        var values = (item._value = value).toString();
        [].slice.call(item._ul.childNodes).forEach(function(item) {
            var _val = item.getAttribute("value");
            0 <= values.indexOf(_val) && item.classList.add("active");
        });
    },
    getValue: function(item) {
        return item._value;
    },
    enable: function(item) {
        $("#" + item._cid + " li").removeClass("disabled"), item._eable = !0;
    },
    disable: function(item) {
        item._eable = !1, $("#" + item._cid + " li").addClass("disabled");
    },
    reset: function(item) {
        $("#" + item._cid + " li").removeClass("active"), item._value = "";
    },
    clear: function(item) {
        this.reset(item);
    },
    showItem: function(item) {
        item.style.display = "block";
    },
    hideItem: function(item) {
        item.style.display = "none";
    }
}, dhtmlXForm.prototype.clearBlockSelect = function(name) {
    return this.doWithItem(name, "clear");
}, dhtmlXForm.prototype.getFormData_blockSelect = function(name) {
    return this.doWithItem(name, "getValue");
}, dhtmlXForm.prototype.setFormData_blockSelect = function(name, value) {
    return this.doWithItem(name, "setValue", value);
};
"use strict";

dhtmlXForm.prototype.items.buttonGroup = {
    render: function(item, data) {
        item._idd = data.name, item._value = "", item._type = "buttonGroup", item._enabled = !data.disabled, 
        item.classList.add("buttonGroup");
        var btnEl = document.createElement("div");
        return 1 == data.hidden && this.hide(item), item._enabled || (this.userDisable(item), 
        item.classList.add("disabled")), btnEl.classList.add("dhxform_btn", "more_btn"), 
        btnEl.setAttribute("role", "link"), btnEl.innerHTML = '<div class="dhxform_btn_txt">' + data.value + '<i class="layui-icon layui-icon-right" style="font-size:12px;"></i></div><div class="dhxform_btn_filler" disabled="true"></div>', 
        item.appendChild(btnEl), data.width && (item.childNodes[0].style.width = data.width + "px"), 
        item._addSubListNode = function() {
            var t = document.createElement("DIV");
            return t._custom_css = "_child_list", t._ofsNested = 0, setTimeout(function() {
                t.childNodes[0].setAttribute("class", "list-child");
            }, 0), t.style.width = this.childNodes[0].offsetWidth + "px", this.appendChild(t), 
            t;
        }, this;
    },
    destruct: function(item) {
        for (this.doUnloadNestedLists(item), item.callEvent = null, item.checkEvent = null, 
        item.getForm = null, item._autoCheck = null, item._type = null, item._enabled = null, 
        item._cmd = null, item._name = null, item._doOnFocus = null, item._doOnBlur = null, 
        item._doOnKeyUpDown = null, item.onselectstart = null, item.firstChild.onselectstart = null, 
        item.firstChild.onkeypress = null, item.firstChild.ontouchstart = null, item.firstChild.onfocus = null, 
        item.firstChild.onblur = null, item.firstChild.onkeyup = null, item.firstChild.onkeydown = null, 
        item.firstChild.onmouseover = null, item.firstChild.onmouseout = null, item.firstChild.onmousedown = null, 
        item.firstChild.onmouseup = null; 0 < item.childNodes.length; ) item.removeChild(item.childNodes[0]);
        item.parentNode.removeChild(item), item = null;
    },
    enable: function(item) {
        0 <= String(item.className).search("disabled") && (item.className = String(item.className).replace(/disabled/gi, "")), 
        item._enabled = !0, item.childNodes[0].removeAttribute("disabled"), item.childNodes[0].setAttribute("role", "link"), 
        item.childNodes[0].setAttribute("tabIndex", "0");
    },
    disable: function(item) {
        String(item.className).search("disabled") < 0 && (item.className += " disabled"), 
        item._enabled = !1, item.childNodes[0].setAttribute("disabled", "true"), item.childNodes[0].removeAttribute("role"), 
        item.childNodes[0].removeAttribute("tabIndex");
    }
};
"use strict";

dhtmlXCombo.prototype.getOption = function(value) {
    for (var id = null, index = null, q = 0; q < this.list.childNodes.length; q++) if (null == id) {
        var a = this.list.childNodes[q]._optId;
        value && this.t[a].obj.getValue(this.t[a].item).toString() == value.toString() && (id = a, 
        index = q);
    }
    return null == id ? null : this._getOption(id, index);
};
"use strict";

!function($) {
    $.fn.initPlgForm = function(options) {
        var pg = new plgForm(options), id = $(this).attr("id");
        return pg.renderTo(id), pg;
    };
    var plgForm = function plgForm(options) {
        var opts, myForm, formStructure, _m_this = this, hiddenItems = new Array(), _default = {
            renderer: null,
            items: [],
            isI18n: window.isI18n && "undefined" != typeof i18next || !1
        };
        function tips(is, txt, myForm, name) {
            if (name) {
                if ("hidden" == myForm.getItemType(name)) return !0;
                var t_name = name;
                is ? (myForm && myForm.clearNote(name), $(myForm.getInput(t_name)).parent().parent().removeClass("validate_error")) : myForm && (myForm.setNote(t_name, {
                    text: txt,
                    width: "auto"
                }), $(myForm.getInput(t_name)).parents(".dhxform_item_label_left").addClass("validate_error"));
            }
        }
        function resetSize(id) {
            for (var i = 0; i < formStructure.length; i++) {
                var item = formStructure[i];
                setPlaceholder(id, item), setHiddenItems(item), setComboWidth(item), setToggleBtn(item);
            }
            $(".plg-toolbar-right").parent().css("float", "right"), $(".plg-toolbar-left").parent().css("float", "left"), 
            $("#" + id + " input").addClass("plg-input"), $("#" + id + " textarea").addClass("plg-input"), 
            $("#" + id + " select").addClass("plg-input"), $("#" + id).find(".layui-row").parent().css("width", "100%");
        }
        function renderTo(id) {
            if (0 != $("#" + id).length) {
                for (var key in $("#" + id).empty(), myForm = new dhtmlXForm(id, formStructure)) if (-1 === key.indexOf("_") && "function" == typeof myForm[key] && !_m_this[key]) {
                    var objm = myForm[key];
                    _m_this[key] = objm.bind(myForm);
                }
                Object.assign(plgForm.prototype, myForm.__proto__), resetSize(id), $("input.calendar").attr("autocomplete", "off");
            }
        }
        function setComboWidth(item) {
            if ("combo" == item.type) {
                var dhxCombo = myForm.getCombo(item.name);
                item.width ? (myForm.setItemWidth(item.name, item.width), dhxCombo.conf.combo_width = item.width, 
                dhxCombo.base.style.width = Math.max(0, dhxCombo.conf.combo_width) + "px") : setTimeout(function() {
                    dhxCombo.conf.combo_width = dhxCombo.DOMParent.clientWidth, dhxCombo.base.style.width = Math.max(0, dhxCombo.conf.combo_width) + "px";
                }, 0), dhxCombo.DOMelem.parentNode.parentNode.append(dhxCombo.DOMlist), dhxCombo.attachEvent("onOpen", function() {
                    var w = $(dhxCombo.DOMelem).width();
                    return $(dhxCombo.DOMlist).width(w), dhxCombo.DOMlist.style.top = dhxCombo.DOMParent.offsetHeight + "px", 
                    dhxCombo.DOMlist.style.left = 0, !(dhxCombo.DOMlist.style.right = 0);
                });
            }
            if (item.list && 0 < item.list.length) for (var i = 0; i < item.list.length; i++) setComboWidth(item.list[i]);
        }
        function setToggleBtn(item) {
            if ("button" == item.type && item.className && -1 < item.className.indexOf("toggle") && _m_this.renderHiddenToggleItem(item.name), 
            item.list && 0 < item.list.length) for (var i = 0; i < item.list.length; i++) setToggleBtn(item.list[i]);
        }
        function setHiddenItems(item) {
            if (item.hidden && item.name && hiddenItems.push(item.name), item.list && 0 < item.list.length) for (var i = 0; i < item.list.length; i++) setHiddenItems(item.list[i]);
        }
        function setPlaceholder(id, item) {
            if (item && item.placeholder && ("input" == item.type || "password" == item.type ? ($("#" + id + " textarea[name='" + item.name + "']").attr("placeholder", item.placeholder), 
            $("#" + id + " input[name='" + item.name + "']").attr("placeholder", item.placeholder)) : "select" == item.type ? $("#" + id + " select[name='" + item.name + "']").attr("placeholder", item.placeholder) : "combo" == item.type ? $("#" + id + " input[name='" + item.name + "']").parent().children("input").attr("placeholder", item.placeholder) : "calendar" == item.type && $("#" + id + " input[name='" + item.name + "']").parent().children("input").attr("placeholder", item.placeholder)), 
            item.list && 0 < item.list.length) for (var i = 0; i < item.list.length; i++) setPlaceholder(id, item.list[i]);
        }
        opts = $.extend({}, _default, options), this.t = this.t(this.isI18n), "undefined" != typeof i18next && opts.isI18n && 0 < opts.items.length && (opts.items = function setI18nItems(Items) {
            var newObj = [];
            return Items.map(function(item, index) {
                if (newObj[index] = Prolog.deepClone(item), item.label) {
                    var labelOf = item.label.indexOf(":");
                    if (-1 != labelOf) {
                        var arr = item.label.toString().split("");
                        arr.splice(labelOf), item.label = arr.join("");
                    }
                    i18next.exists(item.label.toString()) && (newObj[index].label = i18next.t(item.label)), 
                    -1 != labelOf && i18next.exists(item.label) && (newObj[index].label += ":");
                }
                return item.placeholder && i18next.exists(item.placeholder.toString()) && (newObj[index].placeholder = i18next.t(item.placeholder)), 
                "function" == typeof item.value ? newObj[index].value = item.value() : item.value && i18next.exists(item.value.toString()) && (newObj[index].value = i18next.t(item.value)), 
                item.text && i18next.exists(item.text.toString()) && (newObj[index].text = i18next.t(item.text)), 
                item.list && 0 < item.list.length ? newObj[index].list = setI18nItems(item.list) : item.options && 0 < item.options.length && (newObj[index].options = setI18nItems(item.options)), 
                newObj;
            }), newObj;
        }(opts.items)), formStructure = opts.items, this.resetSize = function() {
            return resetSize(opts.renderer), this;
        }, this.loadComboData = function(name, cfg) {
            var item = function getOptsByName(name, array) {
                for (var i = 0; i < array.length; i++) {
                    var item = array[i];
                    if (item.name == name) return item;
                    if (item.list) {
                        var re = getOptsByName(name, item.list);
                        if (null != re) return re;
                    }
                }
                return null;
            }(name, formStructure);
            if (null == item) PlgDialog.msg("找不到组件"); else {
                var myCombo = myForm.getCombo(item.name), opss = (myconfig = item.remote ? item.remote : {}) ? myconfig.success : null;
                if (cfg) var myconfig = $.extend(!0, item.remote, cfg);
                myCombo.clearAll(!1);
                var lind = PlgDialog.load(1);
                myconfig.error = function() {
                    PlgDialog.close(lind);
                }, myconfig.success = function(da) {
                    if (0 == da.success) return PlgDialog.msg("数据加载失败，" + da.message), void PlgDialog.close(lind);
                    var obj = null;
                    obj = function(obj, cfg) {
                        for (var data = {
                            options: []
                        }, i = 0; i < obj.length; i++) {
                            var d = obj[i];
                            cfg.valueField && (d.value = d[cfg.valueField]), cfg.textField && (d.text = d[cfg.textField]), 
                            data.options.push(d);
                        }
                        return data;
                    }(obj = da.data.list ? da.data.list : da.data, myconfig), "function" == typeof myconfig.beforeLoadData && (obj = myconfig.beforeLoadData(obj)), 
                    myCombo.load(obj, function() {
                        PlgDialog.close(lind);
                    }), opss && opss(da);
                }, Prolog.ajax(myconfig);
            }
        }, this.getFormData = function() {
            return myForm.getFormData();
        }, this.getDForm2 = function() {
            var myForm = myForm;
            return function() {
                return myForm;
            };
        }, this.getDForm = function() {
            return myForm;
        }, this.getInput = function(name) {
            return myForm.getInput(name);
        }, this.getItemWidth = function(name) {
            return myForm.getItemWidth(name);
        }, this.getOptions = function(name) {
            return myForm.getOptions(name);
        }, this.getSelect = function(name) {
            return myForm.getSelect(name);
        }, this.getCheckedValue = function(name) {
            return myForm.getCheckedValue(name);
        }, this.getCombo = function(name) {
            return myForm.getCombo(name);
        }, this.hideItem = function(name, value) {
            myForm.hideItem(name, value);
        }, this.showItem = function(name, value) {
            myForm.showItem(name, value);
        }, this.showAllHItems = function() {
            for (var i = 0; i < hiddenItems.length; i++) myForm.showItem(hiddenItems[i]);
            hh = !1;
        }, this.hideAllHItems = function() {
            for (var i = 0; i < hiddenItems.length; i++) myForm.hideItem(hiddenItems[i]);
            hh = !0;
        };
        var hh = !0;
        function gid_openBtn() {
            var i = "<i class='layui-icon layui-icon-down'></i>";
            return opts.isI18n ? i18next.t("展开") + i : "展开" + i;
        }
        function gid_closeBtn() {
            var i = "<i class='layui-icon layui-icon-up'></i>";
            return opts.isI18n ? i18next.t("收起") + i : "收起" + i;
        }
        this.toggleHItems = function() {
            return !(hh = hh ? (this.showAllHItems(), !1) : (this.hideAllHItems(), !0));
        }, this.addHiddenToggleItem = function(pId, pos, insertAfter) {
            var _this = this;
            myForm.addItem(pId, {
                type: "button",
                name: "plg-more-001",
                value: gid_openBtn,
                className: "link"
            }, pos, insertAfter), myForm.attachEvent("onButtonClick", function(name) {
                "plg-more-001" == name && (_this.toggleHItems() ? _this.setItemLabel("plg-more-001", gid_closeBtn()) : _this.setItemLabel("plg-more-001", gid_openBtn()));
            });
        }, this.renderHiddenToggleItem = function(name) {
            var _this = this;
            _this.setItemLabel(name, gid_openBtn()), myForm.attachEvent("onButtonClick", function(na) {
                name == na && (_this.toggleHItems() ? _this.setItemLabel(name, gid_closeBtn()) : _this.setItemLabel(name, gid_openBtn()));
            });
        }, this.disableItem = function(name) {
            myForm.disableItem(name);
        }, this.disableAllItem = function() {
            myForm.forEachItem(function(name) {
                myForm.disableItem(name);
            });
        }, this.enableItem = function(name) {
            myForm.enableItem(name);
        }, this.enableAllItem = function(name) {
            myForm.forEachItem(function(name) {
                myForm.enableItem(name);
            });
        }, this.clear = function() {
            myForm.clear();
            var data = myForm.getFormData();
            for (var key in data) data[key] = "";
            myForm.setFormData(data);
        }, this.addItem = function(pid, itemData, pos, insertAfter) {
            myForm.addItem(pid, itemData, pos, insertAfter);
        }, this.removeItem = function(name, value) {
            myForm.removeItem(name, value);
        }, this.reset = function() {
            myForm.reset();
        }, this.getItemLabel = function(name, value) {
            return 2 == arguments.length ? myForm.getItemLabel(name, value) : myForm.getItemLabel(name);
        }, this.getItemValue = function(name) {
            return myForm.getItemValue(name);
        }, this.setFormData = function(jsonData) {
            myForm.setFormData(jsonData);
        }, this.setFormItemData = function(name, value) {
            var item = {};
            item[name] = value, myForm.setFormData(item);
        }, this.setItemFocus = function(name) {
            myForm.setItemFocus(name);
        }, this.setItemHeight = function(name, height) {
            myForm.setItemHeight(name, height);
        }, this.setItemWidth = function(name, width) {
            myForm.setItemWidth(name, width);
        }, this.setItemLabel = function(name, label) {
            myForm.setItemLabel(name, label);
        }, this.setItemValue = function(name, value) {
            myForm.setItemValue(name, value);
        }, this.setItemReadonly = function(name, state) {
            myForm.setReadonly(name, state);
        }, this.setItemRequired = function(name, state) {
            myForm.setRequired(name, state);
        }, this.setItemValidation = function(name, rule) {
            myForm.setValidation(name, rule);
        }, this.validateItem = function(name) {
            return myForm.validateItem(name);
        }, this.validate = function() {
            return Object.setPrototypeOf(dhtmlxValidation, function(myForm) {
                return {
                    isPlusNumeric: function(value, name) {
                        var is = !!value.toString().match(/(^\d\d*\.\d*$)|(^\d\d*$)/);
                        return tips(is, "该项只能输入正数", myForm, name), is;
                    },
                    isNot24h: function(value, name) {
                        value = Number(value);
                        var is = isNaN(value);
                        return tips(is = value <= 24, "该项不能大于24小时", myForm, name), is;
                    },
                    isNotNegativeNume: function(value, name) {
                        value = Number(value);
                        var is = isNaN(value);
                        return tips(is = !!value.toString().match(/(^\d+$)/), "该项只能输入正整数", myForm, name), 
                        is;
                    },
                    isEmpty: function(a) {
                        return "" == a;
                    },
                    isNotEmpty: function(a, name) {
                        null != a && (a = a.toString());
                        var is = a instanceof Array ? 0 < a.length : "" == !a;
                        return tips(is, "该项不能为空", myForm, name), is;
                    },
                    isValidBoolean: function(a) {
                        return !!a.toString().match(/^(0|1|true|false)$/);
                    },
                    isValidEmail: function(a) {
                        return !!a.toString().match(/(^[a-z0-9]([0-9a-z\-_\.]*)@([0-9a-z_\-\.]*)([.][a-z]{3})$)|(^[a-z]([0-9a-z_\.\-]*)@([0-9a-z_\-\.]*)(\.[a-z]{2,5})$)/i);
                    },
                    isValidInteger: function(a, name) {
                        var is = !!a.toString().match(/(^-?\d+$)/);
                        return tips(is, "该项只能为整数", _m_this.getDForm(), name), is;
                    },
                    isValidNumeric: function(a, name) {
                        var is = !!a.toString().match(/(^-?\d\d*[\.|,]\d*$)|(^-?\d\d*$)|(^-?[\.|,]\d\d*$)/);
                        return tips(is, "该项只能输入数字!", myForm, name), is;
                    },
                    isValidAplhaNumeric: function(a, name) {
                        var is = !!a.toString().match(/^[_\-a-z0-9]+$/gi);
                        return tips(is, "只能输入数字或小写字母!", myForm, name), is;
                    },
                    isValidDatetime: function(b) {
                        var a = b.toString().match(/^(\d{4})-(\d{2})-(\d{2})\s(\d{2}):(\d{2}):(\d{2})$/);
                        return a && !!(a[1] <= 9999 && a[2] <= 12 && a[3] <= 31 && a[4] <= 59 && a[5] <= 59 && a[6] <= 59) || !1;
                    },
                    isValidDate: function(a, name) {
                        var b = a.toString().match(/^(\d{4})-(\d{2})-(\d{2})$/), is = b && !!(b[1] <= 9999 && b[2] <= 12 && b[3] <= 31) || !1;
                        return tips(is, "日期格式不正确!", myForm, name), is;
                    },
                    isValidTime: function(b) {
                        var a = b.toString().match(/^(\d{1,2}):(\d{1,2}):(\d{1,2})$/);
                        return a && !!(a[1] <= 24 && a[2] <= 59 && a[3] <= 59) || !1;
                    },
                    isValidIPv4: function(a, name) {
                        var b = a.toString().match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/), is = b && !!(b[1] <= 255 && b[2] <= 255 && b[3] <= 255 && b[4] <= 255) || !1;
                        return tips(is, "IP地址格式不正确!", myForm, name), is;
                    },
                    isValidCurrency: function(a) {
                        return !!a.toString().match(/^\$?\s?\d+?([\.,\,]?\d+)?\s?\$?$/);
                    },
                    isValidSSN: function(a) {
                        return !!a.toString().match(/^\d{3}\-?\d{2}\-?\d{4}$/);
                    },
                    isValidSIN: function(a, name) {
                        var is = !!a.toString().match(/^\d{9}$/);
                        return tips(is, "该项必须输入9位数字", myForm, name), is;
                    },
                    isMoney_11bit: function(a, name) {
                        a = Number(a);
                        var is = isNaN(a);
                        return tips(is = !!a.toString().match(/(^[1-9](\d){0,10}?(\.\d{1,2})?$)|(^0$)|(^\d\.\d{1,2}$)/), "该项只能输入0-11位数字,保留小数点后两位", myForm, name), 
                        is && myForm.setItemValue(name, a), is;
                    }
                };
            }(myForm)), myForm.validate();
        }, this.forEachItem = function(callback) {
            callback && myForm.forEachItem(callback);
        }, this.renderTo = function(id) {
            return renderTo(id), opts.renderer = id, this;
        }, this.on = function(eventName, callback) {
            myForm.attachEvent(eventName, callback);
        }, this.attachEvent = this.on, this.attachComboEvent = function(name, eventName, callback) {
            myForm.getCombo(name) && myForm.getCombo(name).attachEvent(eventName, callback);
        }, this.getLayDate = function(name) {
            return myForm.getLaydate(name);
        }, this.attachLayDateEvent = function(name, eventName, callback) {
            this.getLayDate(name) && this.getDForm().attachLayDateEvent(name, eventName, callback);
        }, opts.renderer && renderTo(opts.renderer);
    };
    plgForm.prototype.t = function(is) {
        return this.t = is ? function(text) {
            return i18next.t(text);
        } : function(text) {
            return text;
        };
    }, dhtmlXForm.prototype.setFormData = function(c) {
        for (var b in c) {
            var d = this.getItemType(b);
            switch (d) {
              case "checkbox":
                this[1 == c[b] || 1 == parseInt(c[b]) || "true" == c[b] || c[b] == this.getItemValue(b, "realvalue") ? "checkItem" : "uncheckItem"](b);
                break;

              case "radio":
                this.checkItem(b, c[b]);
                break;

              case "input":
              case "laydate":
              case "textarea":
              case "password":
              case "select":
              case "multiselect":
              case "hidden":
              case "template":
              case "blockSelect":
              case "combo":
              case "calendar":
              case "colorpicker":
              case "editor":
                this.setItemValue(b, c[b]);
                break;

              default:
                this["setFormData_" + d] ? this["setFormData_" + d](b, c[b]) : (this.hId || (this.hId = this._genStr(12)), 
                this.setUserData(this.hId, b, c[b]));
            }
        }
    }, window.PlgForm = plgForm;
}(jQuery);
"use strict";

dhtmlXForm.prototype.items.laydate = {
    render: function(item, data) {
        var t = this;
        item._type = "calendar";
        item._enabled = !0;
        data = Object.assign({
            placeholder: "",
            value: "",
            lang: "zh_CN",
            dateType: "date",
            dateFormat: "yyyy/MM/dd",
            range: !1,
            showBottom: !0
        }, data);
        var n = navigator.userAgent;
        0 <= n.indexOf("MSIE 6.0") || 0 <= n.indexOf("MSIE 7.0") || n.indexOf("MSIE 8.0");
        this.doAddLabel(item, data), this.doAddInput(item, data, "INPUT", "TEXT", !0, !0, "dhxform_textarea laydate"), 
        this.doAttachChangeLS(item);
        document.createElement("input"), item.getForm();
        var _input = item.childNodes[item._ll ? 1 : 0].childNodes[0];
        _input.placeholder = data.placeholder, _input.setAttribute("readonly", !0), item.childNodes[item._ll ? 1 : 0].childNodes[0]._idd = item._idd, 
        item._f = data.dateFormat, item._lang = data.lang, item.value = data.value, "function" == typeof data.done && (item._done = data.done), 
        "function" == typeof data.ready && (item._ready = data.ready), "function" == typeof data.change && (item._change = data.change);
        var paramDate = function(date) {
            if (0 < !Object.getOwnPropertyNames(date).length) return null;
            var dobj = {
                year: 0,
                month: 1,
                date: 1,
                hours: 0,
                minutes: 0,
                seconds: 0
            };
            for (var key in date) dobj[key] = date[key];
            return new Date(Object.values(dobj).splice(0, 3).join("-") + " " + Object.values(dobj).splice(3).join(":"));
        }, laydate_default = {
            elem: _input,
            type: data.dateType,
            format: item._f,
            value: item.value,
            lang: item._lang,
            showBottom: data.showBottom,
            range: data.range,
            ready: function(date) {
                item.ready && item._ready(date);
            },
            done: function(value, date, endDate) {
                var res = "";
                res = date = paramDate(date), 0 < Object.getOwnPropertyNames(endDate).length && (endDate = paramDate(endDate), 
                (res = []).push(date, endDate)), item._done && item._done(value, date, endDate), 
                t.setValue(item, res);
            },
            change: function(value, date, endDate) {
                var res = "";
                res = date = paramDate(date), 0 < Object.getOwnPropertyNames(endDate).length && (endDate = paramDate(endDate), 
                (res = []).push(date, endDate)), item._change && item._change(value, date, endDate), 
                t.setValue(item, res);
            }
        };
        return item._c = layui.laydate.render(laydate_default), this;
    },
    onReady: function(item, callback) {
        return "function" == typeof callback ? item._ready = callback : null;
    },
    onDone: function(item, callback) {
        return "function" == typeof callback ? item._done = callback : null;
    },
    onChange: function(item, callback) {
        return "function" == typeof callback ? item._change = callback : null;
    },
    setLaydateLang: function(item, lang) {
        return lang && (item._lang = lang, item._c.config.lang = item._f), item._lang;
    },
    getLaydate: function(item) {
        return item;
    },
    setSkin: function(item, skin) {
        return item._c.config.skin = skin;
    },
    setValue: function(item, value, cUpd) {
        value && null != value && void 0 !== value && "" != value ? Array.isArray(value) ? (item.value = [], 
        value.forEach(function(v_item) {
            v_item instanceof Date && item.value.push(new Date(v_item));
        })) : (item.value = value instanceof Date ? value : new Date(value), item.childNodes[item._ll ? 1 : 0].childNodes[0].value = value instanceof Date ? layui.util.toDateString(value, item._f) : value) : (item.value = null, 
        item.childNodes[item._ll ? 1 : 0].childNodes[0].value = "");
    },
    getValue: function(item, asString) {
        var d = item.value || null;
        return !0 !== asString || d ? !0 === asString ? item.childNodes[item._ll ? 1 : 0].childNodes[0].value : d : "";
    },
    setLaydateFormat: function(item, dateFormat) {
        item._f = dateFormat, item._c.config.format = item._f, this.setValue(item, this.getValue(item));
    },
    destruct: function(item) {
        item._c = null, item._f = null, item.childNodes[item._ll ? 1 : 0].childNodes[0]._idd = null, 
        item.childNodes[item._ll ? 1 : 0].childNodes[0].onblur = null, this.d2(item), item = null;
    },
    checkEnteredValue: function(item) {}
}, function() {
    for (var a in {
        doAddLabel: 1,
        doAddInput: 1,
        doUnloadNestedLists: 1,
        setText: 1,
        getText: 1,
        enable: 1,
        disable: 1,
        isEnabled: 1,
        setWidth: 1,
        setReadonly: 1,
        isReadonly: 1,
        setFocus: 1,
        getInput: 1
    }) dhtmlXForm.prototype.items.laydate[a] = dhtmlXForm.prototype.items.input[a];
}(), dhtmlXForm.prototype.items.laydate.doAttachChangeLS = dhtmlXForm.prototype.items.select.doAttachChangeLS, 
dhtmlXForm.prototype.items.laydate.d2 = dhtmlXForm.prototype.items.input.destruct, 
dhtmlXForm.prototype.getLaydate = function(name) {
    return this.doWithItem(name, "getLaydate");
}, dhtmlXForm.prototype.setLaydateLang = function(name, lan) {
    return this.doWithItem(name, "setLaydateLang", lan);
}, dhtmlXForm.prototype.attachLayDateEvent = function(name, event, callback) {
    return this.doWithItem(name, event, callback);
}, dhtmlXForm.prototype.setLaydateFormat = function(name, dateFormat) {
    this.doWithItem(name, "setLaydateFormat", dateFormat);
};
"use strict";

dhtmlXForm.prototype.items.row = {
    _index: !1,
    render: function(item, data) {
        item._type = "row", item._idd = data.name, item.className = "row_" + data.position + ("string" == typeof data.className ? " " + data.className : ""), 
        item._enabled = !0, item._checked = !0;
        var cid = "dhxId_row" + Prolog.createRandomId(), rowDiv = document.createElement("div");
        return rowDiv.id = item._cid = cid, rowDiv.className = "cl", data.style && (rowDiv.style.cssText = data.style), 
        isNaN(data.width) ? item._width = "100%" : item._width = data.width + "px", rowDiv.style.width = item._width, 
        item.parentNode.style.cssText = "width:100%; ", item.parentNode.parentNode.style.width = "100%", 
        item.parentNode.parentNode.style.clear = "both", item.parentNode.parentNode.style.float = "none", 
        item.appendChild(rowDiv), 1 == data.hidden && this.hide(item), 1 == data.disabled && this.userDisable(item), 
        item._addSubListNode = function() {
            var t = document.createElement("DIV");
            return t._custom_css = "_row_list", t._ofsNested = 0, setTimeout(function() {
                t.childNodes[0].setAttribute("class", "layui-row");
            }, 0), this.childNodes[0].appendChild(t), t;
        }, this;
    },
    destruct: function(item) {
        item.innerHTML = "";
    },
    setValue: function(item) {},
    getValue: function(item) {},
    enable: function(itme) {},
    disable: function(itme) {},
    getText: function(itme) {},
    getWidth: function() {},
    getFormRow: function(item) {
        return item;
    }
}, dhtmlXForm.prototype.getFormRow = function(name) {
    return this.doWithItem(name, "getFormRow");
};
"use strict";

function _typeof(obj) {
    return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
        return typeof obj;
    } : function(obj) {
        return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    })(obj);
}

dhtmlXForm.prototype.items.selectTable = {
    render: function(item, data) {
        item._type = "selectTable", item._idd = data.name, item._value = "", item._table = data.table, 
        item._active = !1;
        var sgrid, cid = "dhxId_selectTable_" + Prolog.createRandomId(), label = document.createElement("div");
        label.setAttribute("class", "dhxform_label " + data.labelAlign), label.innerHTML = '<label for="' + cid + '">' + data.label + "</label>", 
        data.labelWidth && (label.style.width = data.labelWidth + "px"), item.appendChild(label);
        var control = document.createElement("div");
        control.setAttribute("class", "dhxform_control");
        var mainInput = document.createElement("input");
        mainInput.setAttribute("type", "text"), mainInput.setAttribute("class", "dhxform_textarea plg-input"), 
        mainInput.style.width = data.width + "px", mainInput.setAttribute("placeholder", data.placeholder), 
        mainInput.setAttribute("readonly", "readonly"), control.appendChild(mainInput);
        var hiddenInput = document.createElement("input");
        if (hiddenInput.setAttribute("type", "hidden"), hiddenInput.setAttribute("name", data.name), 
        control.appendChild(hiddenInput), item.appendChild(control), 1 == data.disabled) return mainInput.setAttribute("disabled", "disabled"), 
        hiddenInput.setAttribute("disabled", "disabled"), item._enabled = !1, this;
        var win_index = -1;
        function singleSelect(rId, cInd) {
            var jo = sgrid.getRowData(rId, data.fieldValue), valueArray = [];
            try {
                valueArray = null != item._value && "" != item._value ? JSON.parse(item._value) : [];
            } catch (e) {
                valueArray = [];
            }
            -1 < Prolog.hasJson(valueArray, jo) ? setUnSelectedValue(rId) : setSelectedValue(rId), 
            PlgDialog.close(win_index);
        }
        function setUnSelectedValue(selectId) {
            if (selectId) {
                var jo = sgrid.getRowData(selectId, data.fieldValue), valueArray = [];
                try {
                    valueArray = null != item._value && "" != item._value ? JSON.parse(item._value) : [];
                } catch (e) {}
                if (-1 == Prolog.hasJson(valueArray, jo)) return;
                var showText = mainInput.getAttribute("value") ? mainInput.getAttribute("value").split(",") : [], textField = data.fieldText, valueFields = data.fieldValue, vData = sgrid.getRowData(selectId, valueFields), index = Prolog.hasJson(valueArray, vData);
                -1 < index && valueArray.splice(index, 1);
                var tData = sgrid.getRowData(selectId, textField);
                showText.splice(showText.indexOf(tData), 1), mainInput.setAttribute("value", showText.toString()), 
                hiddenInput.setAttribute("value", JSON.stringify(valueArray)), item._textValue = showText.toString(), 
                item._value = JSON.stringify(valueArray), "object" === _typeof(data.listener) && "function" == typeof data.listener.afterSelect && data.listener.afterSelect(!1, selectId, sgrid);
            }
        }
        function setSelectedValue(selectId) {
            if (selectId) {
                var jo = sgrid.getRowData(selectId, data.fieldValue), valueArray = [];
                try {
                    valueArray = null != item._value && "" != item._value ? JSON.parse(item._value) : [];
                } catch (e) {}
                if (-1 < Prolog.hasJson(valueArray, jo)) return;
                var showText = mainInput.getAttribute("value") ? mainInput.getAttribute("value").split(",") : [];
                0 == item._table.multiselect && (valueArray = [], showText = []);
                var textField = data.fieldText, valueFields = data.fieldValue, vData = sgrid.getRowData(selectId, valueFields);
                valueArray.push(vData);
                var tData = sgrid.getRowData(selectId, textField);
                showText.push(tData), mainInput.setAttribute("value", showText.toString()), hiddenInput.setAttribute("value", JSON.stringify(valueArray)), 
                item._textValue = showText.toString(), item._value = JSON.stringify(valueArray), 
                "object" === _typeof(data.listener) && "function" == typeof data.listener.afterSelect && data.listener.afterSelect(!0, selectId, sgrid);
            }
        }
        return mainInput.onclick = function(e) {
            var left = Prolog.getLeft(this), _width = (Prolog.getTop(this), $(this).parent().height(), 
            $(this).width()), layerId = ($(this).height(), data.fieldText, data.fieldValue, 
            "layer" + Prolog.createRandomId()), tableWidth = data.tableWidth ? data.tableWidth : 600, tableHeight = data.tableHeight ? data.tableHeight : 500;
            left + _width > document.body.clientWidth ? left = document.body.clientWidth - tableWidth - 30 : left + tableWidth > document.body.clientWidth && (left = left - tableWidth + _width + 10), 
            window.innerHeight, win_index = layer.open({
                type: 1,
                id: layerId,
                title: !1,
                resize: !1,
                offset: "auto",
                btn: [],
                closeBtn: 0,
                area: [ tableWidth + "px", tableHeight + "px" ],
                shadeClose: !0,
                shade: .5,
                content: '<div id="' + cid + '_grid" style="width:100%;height:' + (tableHeight - 30) + 'px;"></div>',
                end: function() {
                    item._active = !1, "object" === _typeof(data.listener) && "function" == typeof data.listener.afterClose && data.listener.afterClose(item._textValue, item._value, sgrid);
                },
                success: function(layero, index) {
                    item._active = !0, $("#layui-layer" + index + " .layui-layer-btn").hide(), $("#layui-layer" + index).height($("#layui-layer" + index).height() - 23), 
                    $("#layui-layer" + index + " .layui-layer-content").css("padding", "0px"), (sgrid = new PlgGrid(item._table)).renderTo(cid + "_grid"), 
                    sgrid.loadData(null, function() {
                        for (var rownum = sgrid.getGrid().getRowsNum(), i = 0; i < rownum; i++) {
                            var rid = sgrid.getGrid().getRowId(i), jo = sgrid.getRowData(rid, data.fieldValue), valueArray = [];
                            try {
                                valueArray = null != item._value && "" != item._value ? JSON.parse(item._value) : [];
                            } catch (e) {}
                            -1 < Prolog.hasJson(valueArray, jo) && (item._table.multiselect ? sgrid.setCellValue(rid, 1, 1) : sgrid.selectRowById(rid));
                        }
                    }), item._table.multiselect ? (sgrid.on("onCheck", function(rId, cInd, state) {
                        1 == cInd && (state ? setSelectedValue(rId) : setUnSelectedValue(rId));
                    }), sgrid.on("onHeaderClick", function(ind, obj) {
                        if (1 != ind) return !0;
                        if (-1 < $("#" + cid + "_grid .plg-grid-second-col").attr("src").indexOf("chk0")) for (var rownum = sgrid.getGrid().getRowsNum(), i = 0; i < rownum; i++) {
                            setUnSelectedValue(sgrid.getGrid().getRowId(i));
                        } else sgrid.getCheckedIds().split(",").forEach(function(val) {
                            setSelectedValue(val);
                        });
                        return !0;
                    })) : (sgrid.on("onRowSelect", singleSelect), sgrid.attachEvent("onRowDblClicked", singleSelect)), 
                    data.listener && ("function" == typeof data.listener ? data.listener(sgrid) : "object" === _typeof(data.listener) && "function" == typeof data.listener.init && data.listener.init(sgrid));
                }
            });
        }, data.hidden && (item.style.display = "none"), this;
    },
    destruct: function(item) {
        item.getElementsByTagName("input")[0].onclick = null, item.innerHTML = "";
    },
    setValue: function(item, value) {
        item.getElementsByTagName("input")[1].setAttribute("value", value), item._value = value;
    },
    getValue: function(item) {
        return item._value;
    },
    enable: function(item) {
        var inputs = item.getElementsByTagName("input");
        inputs[0].removeAttribute("disabled"), inputs[1].removeAttribute("disabled");
    },
    disable: function(item) {
        var inputs = item.getElementsByTagName("input");
        inputs[0].setAttribute("disabled", "disabled"), inputs[1].setAttribute("disabled", "disabled");
    },
    getText: function(item) {
        return item._textValue;
    },
    setText: function(item, value) {
        item._textValue = value, item.getElementsByTagName("input")[0].setAttribute("value", value);
    },
    reset: function(item) {
        var inputs = item.getElementsByTagName("input");
        inputs[0].setAttribute("value", ""), inputs[1].setAttribute("value", ""), item._textValue = "", 
        item._value = "";
    },
    clear: function(item) {
        this.reset(item);
    },
    setTableConfig: function(item, data) {
        item._table = data;
    },
    showItem: function(item) {},
    hideItem: function(item) {
        item.style.display = "none";
    },
    active: function(item) {
        var inputs = item.getElementsByTagName("input");
        $(inputs[0]).trigger("click");
    },
    isActive: function(item) {
        return item._active;
    },
    setData: function(item, txt, value) {
        this.setText(item, txt), this.setValue(item, value);
    }
}, dhtmlXForm.prototype.setData = function(name, txt, value) {
    this.doWithItem(name, "setData", txt, value);
}, dhtmlXForm.prototype.active = function(name) {
    this.doWithItem(name, "active");
}, dhtmlXForm.prototype.isActive = function(name) {
    return this.doWithItem(name, "isActive");
}, dhtmlXForm.prototype.getText = function(name) {
    return this.doWithItem(name, "getText");
}, dhtmlXForm.prototype.setText = function(name, value) {
    return this.doWithItem(name, "setText", value);
}, dhtmlXForm.prototype.clearSelectTable = function(name) {
    return this.doWithItem(name, "clear");
}, dhtmlXForm.prototype.setTableConfig = function(name, data) {
    return this.doWithItem(name, "setTableConfig", data);
}, dhtmlXForm.prototype.getFormData_selectTable = function(name) {
    return this.doWithItem(name, "getValue");
}, dhtmlXForm.prototype.setFormData_selectTable = function(name, value) {
    return this.doWithItem(name, "setValue", value);
};
"use strict";

function eXcell_button(cell) {
    cell && (this.cell = cell, this.grid = this.cell.parentNode.grid, cell.align = "center"), 
    this.edit = function() {}, this.isDisabled = function() {
        return !0;
    }, this.setValue = function(val) {
        var row_id = this.cell.parentNode.idd, row_data = JSON.stringify(this.grid.getUserData(row_id, "data"));
        row_data = row_data.replaceAll("'", "");
        for (var btns = (val = val.replaceAll(",", ";")).split(";"), str = "", k = 0; k < btns.length; k++) {
            var btnstr = btns[k], btnv = btnstr.substring(0, btnstr.indexOf("^"));
            str += "<div class='plg-divider plg-divider-vertical'></div><a class='' href='javascript:void(0);' onclick='" + btnstr.substring(btnstr.indexOf("^") + 1) + '("' + row_id + '",' + row_data + ")' >" + btnv + "</a>";
        }
        str = str.substring(str.indexOf("<a")), this.setCValue(str, val);
    };
}

eXcell_button.prototype = new eXcell();
"use strict";

function eXcell_co(a) {
    a && (this.cell = a, this.grid = this.cell.parentNode.grid, this.combo = this.cell._combo || this.grid.getCombo(this.cell._cellIndex), 
    this.editable = !0), this.selectWidth = this.grid.opts.columns[this.cell._cellIndex - 1].selectWidth + "px" || this.cell.offsetWidth + "px", 
    this.selectHeight = this.grid.opts.columns[this.cell._cellIndex - 1].selectHeight + "px" || "auto", 
    this.shiftNext = function() {
        var b = this.list.options[this.list.selectedIndex + 1];
        return b && (b.selected = !0), this.obj.value = this.list.options[this.list.selectedIndex].text, 
        !0;
    }, this.shiftPrev = function() {
        if (0 != this.list.selectedIndex) {
            var b = this.list.options[this.list.selectedIndex - 1];
            b && (b.selected = !0), this.obj.value = this.list.options[this.list.selectedIndex].text;
        }
        return !0;
    }, this.edit = function() {
        var d = this.grid.getPosition(this.cell, this.cell);
        this.list = document.createElement("SELECT"), this.list.className = "dhx_combo_select", 
        this.val = this.getValue(), this.text = this.getText()._dhx_trim(), this.obj = document.createElement("TEXTAREA"), 
        this.obj.className = "dhx_combo_edit", this.obj.style.height = this.cell.offsetHeight - (this.grid.multiLine ? 9 : 4) + "px", 
        this.obj.wrap = "soft", this.obj.style.textAlign = this.cell.style.textAlign, this.obj.onclick = function(i) {
            (i || event).cancelBubble = !0;
        }, this.obj.onmousedown = function(i) {
            (i || event).cancelBubble = !0;
        }, this.obj.value = this.text, this.obj.onselectstart = function(i) {
            return i || (i = event), i.cancelBubble = !0;
        };
        var f = this;
        this.obj.onkeyup = function(m) {
            var l = (m || event).keyCode;
            if (38 != l && 40 != l && 9 != l) for (var n = this.readonly ? String.fromCharCode(l) : this.value, o = f.list.options, j = 0; j < o.length; j++) if (0 == o[j].text.indexOf(n)) return o[j].selected = !0;
        }, this.list.style.width = this.selectWidth, this.list.style.height = this.selectHeight, 
        this.list.style.left = 0, this.list.style.right = 0, this.list.style.left = this.cell.offsetLeft + "px", 
        this.list.style.top = d[1] + this.cell.offsetTop + this.cell.offsetHeight + "px";
        this.list.onclick = function(l) {
            var j = l || window.event, i = j.target || j.srcElement;
            "OPTION" == i.tagName && (i = i.parentNode), f.editable = !1, f.grid.editStop(), 
            j.cancelBubble = !0, j.target.text;
        };
        for (var b = this.combo.getKeys(), e = !1, h = 0, c = 0; c < b.length; c++) {
            var g = this.combo.get(b[c]);
            this.list.options[this.list.options.length] = new Option(g, b[c]), b[c] == this.val && (h = this.list.options.length - 1, 
            e = !0);
        }
        0 == e && (this.list.options[this.list.options.length] = new Option(this.text, null === this.val ? "" : this.val), 
        h = this.list.options.length - 1), this.cell.style.overflow = "hidden", this.cell.appendChild(this.list), 
        document.getSelection().empty(), this.list.size = "6", this.cstate = 1, this.editable ? this.cell.innerHTML = "" : (this.obj.style.width = "0px", 
        this.obj.style.height = "0px"), this.cell.appendChild(this.obj), this.list.options[h].selected = !0, 
        this.editable && this.obj.focus(), this.editable || (this.obj.style.visibility = "hidden", 
        this.obj.style.position = "absolute", this.list.focus(), this.list.onkeydown = function(i) {
            if (i = i || window.event, f.grid.setActive(!0), i.keyCode < 30) return f.grid.doKey({
                target: f.cell,
                keyCode: i.keyCode,
                shiftKey: i.shiftKey,
                ctrlKey: i.ctrlKey
            });
        }), Array.prototype.slice.call(this.list.options).forEach(function(item) {
            item.style.padding = "5px";
        });
    }, this.getValue = function() {
        return this.cell.combo_value == window.undefined ? "" : this.cell.combo_value;
    }, this.detach = function() {
        if (this.val != this.getValue() && (this.cell.wasChanged = !0), null != this.list.parentNode) if (this.editable) {
            var b = this.list.options[this.list.selectedIndex];
            if (b && b.text == this.obj.value) this.setValue(this.list.value); else {
                var c = this.cell._combo || this.grid.getCombo(this.cell._cellIndex), d = c.values._dhx_find(this.obj.value);
                -1 != d ? this.setValue(c.keys[d]) : this.setValue(this.cell.combo_value = this.obj.value);
            }
        } else this.setValue(this.list.value);
        return this.list.parentNode && this.list.parentNode.removeChild(this.list), this.obj.parentNode && this.obj.parentNode.removeChild(this.obj), 
        this.val != this.getValue();
    };
}
"use strict";

function _typeof(obj) {
    return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
        return typeof obj;
    } : function(obj) {
        return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    })(obj);
}

function eXcell_selectTable(cell) {
    cell && (this.cell = cell, this.grid = this.cell.parentNode.grid, this.cell.selectTable = null, 
    this.cellIndex = cell.cellIndex, this.cellColumnId = this.grid.columnIds[this.cellIndex], 
    this.cellWidth = this.grid.cellWidthPX[this.cellIndex], this.cell.selectTable_value = "", 
    this.cell.selectTable_text = ""), this.setValue = function(val) {
        if (null != val) {
            this.setPTCellValue();
            var row_id = this.cell.parentNode.idd, data = this.grid.getUserData(row_id, "data");
            if (null != data && "" != data || (data = {}), "object" == _typeof(val)) this.setCValue(val.text), 
            this.cell.selectTable_value = val.value, this.cell.selectTable_text = val.text; else try {
                var jo = JSON.parse(val);
                this.setCValue(jo.text);
                var tv = jo.value;
                "object" == _typeof(tv) && (tv = JSON.stringify(tv)), this.cell.selectTable_value = tv, 
                this.cell.selectTable_text = jo.text;
            } catch (e) {
                this.setCValue(val), this.cell.selectTable_value = val, this.cell.selectTable_text = val;
            }
            data[this.cellColumnId] = val, this.grid.setUserData(row_id, "data", data);
            var editTableCellData = this.grid.getUserData(row_id, "editTableCellData");
            null != editTableCellData && "" != editTableCellData || (editTableCellData = {}), 
            editTableCellData[this.cellColumnId] = val, this.grid.setUserData(row_id, "editTableCellData", editTableCellData);
        }
    }, this.getValue = function() {
        var row_id = this.cell.parentNode.idd, data = this.grid.getUserData(row_id, "editTableCellData");
        return null != data && "" != data && null != data[this.cellColumnId] ? data[this.cellColumnId] : "";
    }, this.getData = function() {
        var row_id = this.cell.parentNode.idd, data = this.grid.getUserData(row_id, "editTableCellData");
        return null != data && "" != data ? data[this.cellColumnId] : null;
    }, this.edit = function() {
        var rda = this.getData(), cv = this.cell.selectTable_value, ct = this.cell.selectTable_text;
        null != rda && (cv = rda.value, ct = rda.text);
        for (var columnOpt, opts = this.grid.opts, i = 0; i < opts.columns.length; i++) if (opts.columns[i].id == this.cellColumnId) {
            columnOpt = opts.columns[i];
            break;
        }
        var table = columnOpt.table;
        this.cell.innerHTML = "<div id='selectTable_xcell_00001'></div>";
        var _this = this;
        table.beforeLoad && (0, table.beforeLoad)(table);
        opts = {
            renderer: "selectTable_xcell_00001",
            items: [ {
                type: "settings",
                position: "label-left",
                labelWidth: 0
            }, {
                type: "selectTable",
                table: table,
                width: _this.cellWidth - 8,
                fieldText: columnOpt.fieldText,
                fieldValue: columnOpt.fieldValue,
                name: this.cellColumnId,
                label: "",
                placeholder: "单击选择",
                listener: {
                    afterClose: function(txt, value, plgGrid) {
                        (null != txt && null != txt && "" != txt && (_this.cell.innerHTML = "", _this.setValue({
                            text: txt,
                            value: value
                        })), columnOpt.listener && columnOpt.listener.afterClose) && (0, columnOpt.listener.afterClose)(txt, value, plgGrid);
                    },
                    init: function(grid) {
                        columnOpt.listener && columnOpt.listener.init && (0, columnOpt.listener.init)(grid);
                    },
                    afterSelect: function(isSelected, selectId, sgrid) {
                        columnOpt.listener && columnOpt.listener.afterSelect && (0, columnOpt.listener.afterSelect)(isSelected, selectId, sgrid);
                    }
                }
            } ]
        };
        var frm = new PlgForm(opts);
        this.cell.selectTable = frm, null != cv && null != ct && frm.getDForm().setData(this.cellColumnId, ct, cv);
    }, this.detach = function() {
        this.setPTCellValue();
    }, this.setPTCellValue = function() {
        var rda = this.getData();
        this.cell.innerHTML = null != rda && null != rda.text ? rda.text : "";
    };
}

eXcell_selectTable.prototype = new eXcell();
"use strict";

function _toConsumableArray(arr) {
    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
}

function _nonIterableSpread() {
    throw new TypeError("Invalid attempt to spread non-iterable instance");
}

function _iterableToArray(iter) {
    if (Symbol.iterator in Object(iter) || "[object Arguments]" === Object.prototype.toString.call(iter)) return Array.from(iter);
}

function _arrayWithoutHoles(arr) {
    if (Array.isArray(arr)) {
        for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
        return arr2;
    }
}

function _typeof(obj) {
    return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
        return typeof obj;
    } : function(obj) {
        return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    })(obj);
}

!function($) {
    $.fn.initPlgGridExpand = function(options) {
        var pg = new plgGridExpand(options), id = $(this).attr("id");
        return pg.renderTo(id), pg;
    };
    var plgGridExpand = function(options) {
        var opts, panel, laypage, panelId, sideBarId, sideBarFormId, pageBarId, gridId, toolBarId, pageBarPanelId, gridTitleId, centerPanelId, mygrid, toolBarForm, sideBarForm, gridForm, formDisableFields, beforeDialogOpenEvent, afterDialogOpenEvent, columnArray, headerArray, hidenArray, plgGrid_default = {
            expandRow: !1,
            isI18n: window.isI18n || !1,
            title: "",
            renderer: "",
            fixedLast: !1,
            columns: [],
            multiselect: !1,
            url: "data.json",
            type: "get",
            pageNum: "pageNum",
            pageSize: "pageSize",
            params: {
                pageSize: 10,
                pageNum: 1
            },
            contentType: "application/x-www-form-urlencoded",
            page: !0,
            expandedRowRender: null,
            totalCount: "totalCount",
            toolbar: [],
            formData: [],
            pagebar: {
                buttons: [],
                type: "full"
            }
        };
        opts = $.extend({}, plgGrid_default, options), this.opts = opts;
        var rand = Prolog.createRandomId(), pageNum = plgGrid_default.params.pageNum, pageSize = plgGrid_default.params.pageSize;
        if (opts.params) {
            var _tmp = opts.params;
            if ("object" == _typeof(_tmp)) pageNum = null != _tmp.pageNum ? _tmp.pageNum : pageNum, 
            pageSize = null != _tmp.pageSize ? _tmp.pageSize : pageSize; else {
                var _tmpObj = JSON.parse(_tmp);
                pageNum = null != _tmpObj.pageNum ? _tmpObj.pageNum : pageNum, pageSize = null != _tmpObj.pageSize ? _tmpObj.pageSize : pageSize;
            }
        }
        var containerId, loadDataCallback, rownum = 1, Jumpcallback = null, fixColumn = {}, gscroll = 0, _this = this;
        function resetSize() {
            var objbox = $("#" + gridId + " .objbox"), gtable = $("#" + gridId + " .objbox table"), hdtable = $("#" + gridId + " .xhdr table");
            if (opts.expandRow || opts.fixedLast && objbox.width() > gtable.width()) gtable.find("tbody tr:first-child th:last-child"), 
            hdtable.find("tbody tr:first-child th:last-child");
            gtable.height(), objbox.height();
            var mtop = $("#" + toolBarId)[0] ? $("#" + toolBarId).height() + 5 : 0;
            $("#" + panelId + " .center-panel .plg-grid-sidebuttonpanel a").css("top", mtop);
        }
        function renderTo(id) {
            $("#" + (containerId = id)).empty(), id + "-colsetting-" + rand, panelId = id + "-panel-" + rand, 
            centerPanelId = id + "-centerPanelId-" + rand, sideBarId = id + "-sidebar-" + rand, 
            sideBarFormId = id + "-sidebarform-" + rand, toolBarId = id + "-toolbar-" + rand, 
            pageBarPanelId = id + "-pagebar-panel-" + rand, pageBarId = id + "-pagebar-" + rand, 
            gridId = id + "-panel-grid-" + rand, gridTitleId = id + "-panel-grid-title-" + rand, 
            function(containerId) {
                (panel = document.createElement("div")).className = "plg-grid-panel layui-row", 
                panel.setAttribute("id", panelId), $("#" + containerId).append(panel);
                var centerPanel = document.createElement("div");
                centerPanel.setAttribute("id", centerPanelId), centerPanel.className = "center-panel layui-col-md12", 
                panel.appendChild(centerPanel);
                var centerContainerPanel = document.createElement("div");
                if (centerContainerPanel.setAttribute("id", centerPanelId), centerContainerPanel.className = "plg-grid-body", 
                opts.enableSideBar && null != !opts.sideBar) {
                    var sideBtnPanel = function() {
                        var sideButtonPanel = document.createElement("div");
                        sideButtonPanel.className = "plg-grid-sidebuttonpanel";
                        var alink = document.createElement("a");
                        return alink.setAttribute("href", "javascript:void(0);"), alink.innerHTML = "<i class='layui-icon layui-icon-next'></i>", 
                        sideButtonPanel.appendChild(alink), alink.onclick = function() {
                            var b = $("#" + sideBarId), m = $("#" + centerPanelId);
                            b.is(":hidden") ? (m.removeClass("layui-col-md12"), m.addClass("layui-col-md9"), 
                            b.show(), alink.innerHTML = "<i class='layui-icon layui-icon-next'></i>") : (b.hide(), 
                            m.removeClass("layui-col-md9"), m.addClass("layui-col-md12"), alink.innerHTML = "<i class='layui-icon layui-icon-prev'></i>");
                        }, sideButtonPanel;
                    }();
                    centerPanel.appendChild(sideBtnPanel);
                }
                if (centerPanel.appendChild(centerContainerPanel), opts.title && "" != opts.title) {
                    var gridTitleDiv = document.createElement("div");
                    gridTitleDiv.className = "plg-grid-title", gridTitleDiv.setAttribute("id", gridTitleId), 
                    gridTitleDiv.innerHTML = opts.title, centerContainerPanel.appendChild(gridTitleDiv);
                }
                if (opts.toolbar && 0 < opts.toolbar.length) {
                    var toolBarDiv = document.createElement("div");
                    toolBarDiv.setAttribute("id", toolBarId), toolBarDiv.className = "plg-toolbar", 
                    centerContainerPanel.appendChild(toolBarDiv), function(toolBarId, items) {
                        toolBarForm = new PlgForm({
                            renderer: toolBarId,
                            items: items
                        }), $("#" + toolBarId).addClass("plg-toolbar");
                    }(toolBarId, opts.toolbar);
                }
                var gridDiv = document.createElement("div");
                gridDiv.setAttribute("id", gridId), gridDiv.className = "plg-grid", gridDiv.classList.add("plg-gridExpand"), 
                opts.fixedLast && gridDiv.classList.add("fixed-right");
                if (centerContainerPanel.appendChild(gridDiv), function(id) {
                    mygrid = new dhtmlXGridObject(id);
                    var cdata, Items, newObj, imp = opts.imagePath || Prolog.GridImageBasePath;
                    imp && 0 < imp.length && (imp = "/" != imp.substr(imp.length - 1, 1) ? imp + "/" : imp, 
                    mygrid.setImagePath(imp)), cdata = opts.isI18n && 0 < opts.columns.length ? (Items = opts.columns, 
                    newObj = [], Items.map(function(item, index) {
                        return newObj[index] = {}, newObj[index] = Object.assign(item, newObj[index]), newObj[index] = JSON.stringify(newObj[index]), 
                        newObj[index] = JSON.parse(newObj[index]), item.name && i18next.exists(item.name.toString()) && (newObj[index].name = i18next.t(item.name)), 
                        newObj;
                    }), newObj) : opts.columns.slice(0), columnArray = new Array(), headerArray = new Array(), 
                    hidenArray = new Array();
                    var widthArray = new Array(), alignArray = new Array(), headerAlignArray = new Array(), typeArray = new Array(), typeArray = new Array(), sortArray = new Array();
                    columnArray.push("chbx000"), headerArray.push("<a href='javascript:void(0);' class='plg-grid-first-col'><i class='layui-icon layui-icon-component'></i></a>"), 
                    headerAlignArray.push("text-align:center"), widthArray.push("35"), alignArray.push("center"), 
                    typeArray.push("ro"), sortArray.push("int"), hidenArray.push(!1), opts.expandRow && (columnArray.push("exp"), 
                    headerArray.push(""), headerAlignArray.push("text-align:center"), widthArray.push("28"), 
                    alignArray.push("left"), typeArray.push("ro"), sortArray.push("na"), hidenArray.push(!1)), 
                    opts.multiselect && (columnArray.push("chbx001"), headerArray.push('<img src="' + mygrid._imgURL + 'dhxgrid_web/item_chk0.gif" class="plg-grid-second-col" title="">'), 
                    headerAlignArray.push("text-align:center"), widthArray.push("35"), alignArray.push("center"), 
                    typeArray.push("ch"), sortArray.push("na"), hidenArray.push(!1)), sortArray.push("str");
                    for (var i = 0; i < cdata.length; i++) {
                        columnArray.push(cdata[i].id), headerArray.push(null == cdata[i].name ? cdata[i].id : cdata[i].name), 
                        widthArray.push(cdata[i].width ? cdata[i].width : "*"), alignArray.push(cdata[i].align ? cdata[i].align : "left");
                        var halign = cdata[i].headerAlign ? cdata[i].headerAlign : cdata[i].align;
                        if (headerAlignArray.push(null == halign ? "text-align:left" : "text-align:" + cdata[i].align), 
                        typeArray.push(null == cdata[i].type ? "ro" : cdata[i].type), sortArray.push(null == cdata[i].sort ? "str" : cdata[i].sort), 
                        1 == opts.fixedLast && i == cdata.length - 1 && (fixColumn.width = cdata[i].width, 
                        headerAlignArray.splice(headerAlignArray.length - 1, 1, "text-align:center;visibility: hidden;"), 
                        opts.multiselect ? fixColumn.index = i + 2 : opts.expandRow && opts.multiselect ? fixColumn.index = i + 3 : fixColumn.index = i + 1), 
                        cdata[i].hidden) {
                            hidenArray.push(!0);
                            var int = i + 1;
                            opts.expandRow && (int += 1), opts.multiselect && (int += 1), mygrid.setColumnHidden(int, !0);
                        } else hidenArray.push(!1);
                    }
                    mygrid.setColumnIds(columnArray.toString()), mygrid.setHeader(headerArray.toString(), null, headerAlignArray), 
                    mygrid.setInitWidths(widthArray.toString()), mygrid.setColAlign(alignArray.toString()), 
                    mygrid.setColTypes(typeArray.toString()), mygrid.setColSorting(sortArray.toString()), 
                    opts.filters && (opts.multiselect ? mygrid.attachHeader(",," + opts.filters.toString()) : mygrid.attachHeader("," + opts.filters.toString())), 
                    mygrid.enableMultiselect(opts.multiselect), mygrid.enableAutoHeight(!1), mygrid.enableRowsHover(!0, "plg-grid-hover"), 
                    mygrid.opts = opts, mygrid.attachEvent("onCheck", function(rId, cInd, state) {
                        _this.ch_ids = state ? (_this.ch_ids.push(rId), _toConsumableArray(new Set(_this.ch_ids))) : _this.ch_ids.filter(function(item) {
                            return rId !== item;
                        });
                        var num = 1;
                        if (!opts.expandRow && opts.multiselect ? num = 1 : opts.expandRow && opts.multiselect && (num = 2), 
                        cInd == num && opts.multiselect) {
                            changePageBtnStatus();
                            var ch = $("#" + panelId + " .plg-grid-second-col"), cstr = ch.attr("src");
                            return mygrid.getAllRowIds().split(",").length == mygrid.getCheckedRows(num).split(",").length ? ch.attr("src", cstr.replaceAll("chk0", "chk1")) : ch.attr("src", cstr.replaceAll("chk1", "chk0")), 
                            !0;
                        }
                        return !0;
                    }), mygrid.attachEvent("onAfterSorting", function(index, type, direction) {
                        return resetSize(), !0;
                    }), mygrid.attachEvent("onResizeEnd", function(index, type, direction) {
                        return resetSize(), !0;
                    }), opts.expandRow && mygrid.attachEvent("onRowSelect", function(id, ind) {
                        if (isNaN(id) || (id = id.toString()), !(-1 < id.indexOf("exp-"))) return 1 == ind && (_this.expandedRowsChange(createEXPID(id), id, $(mygrid.cell.children).hasClass("plg-table-row-collapsed")), 
                        $(mygrid.cell.children).hasClass("plg-table-row-collapsed") ? _this.checkExpandColumn(id, !0) : _this.checkExpandColumn(id, !1)), 
                        !0;
                    }), mygrid.attachEvent("onHeaderClick", function(ind, obj) {
                        var num = 1;
                        if (!opts.expandRow && opts.multiselect ? num = 1 : opts.expandRow && opts.multiselect && (num = 2), 
                        0 == ind) return function(selector) {
                            var html = '<div class="layui-form plg-clsset-form" >', k = 1;
                            opts.expandRow && (k += 1), opts.multiselect && (k += 1);
                            for (var i = k; i < columnArray.length; i++) html += '<div class="layui-form-item plg-clsset-item"><input type="checkbox"  lay-filter="plgclssetitem" index=' + i + ' name="' + columnArray[i] + '" lay-skin="primary" title="' + headerArray[i] + '" ' + (hidenArray[i] ? "" : "checked") + "></div>";
                            html += '<div style="clear:both;margin:0px;height:1px;">&nbsp;</div>', html += "</div>", 
                            PlgDialog.tips(html, selector, {
                                tips: [ 3, "#fff" ],
                                time: 0,
                                shade: .001,
                                shadeClose: !0,
                                success: function(layero, ind) {
                                    $(layero).find(".layui-layer-TipsG").remove(), layui.form.render("checkbox"), layui.form.on("checkbox(plgclssetitem)", function(data) {
                                        var ind = $(data.elem).attr("index");
                                        data.elem.checked ? (mygrid.setColumnHidden(ind, !1), hidenArray[ind] = !1) : (mygrid.setColumnHidden(ind, !0), 
                                        hidenArray[ind] = !0), resetSize();
                                    });
                                }
                            });
                        }("#" + panelId + " .plg-grid-first-col i"), !1;
                        if (ind != num) return !1;
                        if (opts.multiselect) {
                            var ch = $("#" + panelId + " .plg-grid-second-col"), cstr = ch.attr("src");
                            -1 < cstr.indexOf("chk0") ? (checkAll(!0), _this.ch_ids = _this.getCheckedRows(0).split(","), 
                            ch.attr("src", cstr.replaceAll("chk0", "chk1"))) : (checkAll(!(_this.ch_ids = [])), 
                            ch.attr("src", cstr.replaceAll("chk1", "chk0"))), event.stopPropagation();
                        }
                        return !1;
                    }), mygrid.init();
                }(gridId), function() {
                    if (null != opts.formData) {
                        gridForm = new PlgForm({
                            items: opts.formData
                        }), formDisableFields = new Array();
                        for (var i = 0; i < opts.formData.length; i++) setEditable(opts.formData[i]);
                    }
                }(), opts.pagebar || opts.page) {
                    var pageBarPanel = document.createElement("div");
                    if (pageBarPanel.className = "plg-grid-pagebar", pageBarPanel.setAttribute("id", pageBarPanelId), 
                    centerContainerPanel.appendChild(pageBarPanel), opts.pagebar && opts.pagebar.buttons && 0 < opts.pagebar.buttons.length && function(parentEl) {
                        if (opts.pagebar && opts.pagebar.buttons && 0 < opts.pagebar.buttons.length) {
                            var pdiv = document.createElement("div");
                            pdiv.className = "div-pagebtn disable";
                            var infodiv = document.createElement("div");
                            infodiv.className = "div-pagebtn-info", infodiv.innerHTML = '<i class="layui-icon layui-icon-about"></i>已选择&nbsp;<span class="selectedCount">0</span>&nbsp;项', 
                            pdiv.appendChild(infodiv);
                            for (var i = 0; i < opts.pagebar.buttons.length; i++) {
                                var bop = opts.pagebar.buttons[i], btn = document.createElement("button");
                                btn.className = "layui-btn pagebar-button layui-btn-disabled " + (null != bop.className ? bop.className : ""), 
                                btn.innerHTML = bop.text, bop.name && btn.setAttribute("name", bop.name), pdiv.appendChild(btn);
                            }
                            parentEl.appendChild(pdiv);
                        }
                    }(pageBarPanel), opts.page) {
                        var pageBarDiv = document.createElement("div");
                        pageBarDiv.setAttribute("id", pageBarId), pageBarDiv.className = "div-pagebar", 
                        pageBarPanel.appendChild(pageBarDiv);
                    }
                }
                if (opts.enableSideBar && null != !opts.sideBar) {
                    centerPanel.className = "center-panel layui-col-md9";
                    var sidePanel = function(sideBarId, sideBarFormId) {
                        var sidePanel = document.createElement("div");
                        sidePanel.className = "layui-col-md3 plg-grid-sidebar", sidePanel.setAttribute("id", sideBarId);
                        var sideContainerPanel = document.createElement("div");
                        return sideContainerPanel.setAttribute("id", sideBarFormId), sideContainerPanel.className = "plg-grid-sidebarform", 
                        sidePanel.appendChild(sideContainerPanel), sidePanel;
                    }(sideBarId, sideBarFormId);
                    panel.appendChild(sidePanel), function(sideBarId, items) {
                        sideBarForm = new PlgForm({
                            renderer: sideBarId,
                            items: items
                        });
                    }(sideBarFormId, opts.sideBar);
                }
            }(containerId), function() {
                for (var key in mygrid.entBox.onselectstart = null, mygrid) if (-1 === key.indexOf("_") && "function" == typeof mygrid[key] && !self[key]) {
                    var objm = mygrid[key];
                    self[key] = objm.bind(mygrid);
                }
            }(), $("#" + containerId).addClass("grid-container-full"), $(_this.getElement()).resize(function() {});
        }
        function changePageBtnStatus() {
            var ch = mygrid.getCheckedRows(1), pl = $("#" + pageBarPanelId + " .div-pagebtn"), len = null != ch && "" != ch ? ch.split(",").length : 0;
            pl.find(".selectedCount").text(len), null != ch && "" != ch ? pl.hasClass("disable") && (pl.removeClass("disable"), 
            pl.find("button").removeClass("layui-btn-disabled")) : pl.hasClass("disable") || (pl.addClass("disable"), 
            pl.find("button").addClass("layui-btn-disabled"));
        }
        function setEditable(opt) {
            if (null != opt.editable && 0 == opt.editable && formDisableFields.push(opt.name), 
            opt.list && 0 < opt.list.length) for (var i = 0; i < opt.list.length; i++) setEditable(opt.list[i]);
        }
        function pageJump(obj, first) {
            pageNum = obj.curr, pageSize = obj.limit, Jumpcallback && Jumpcallback(obj, first), 
            first || reload();
        }
        function emptyFixedColumn() {
            null != _this.fixdiv && _this.fixdiv.empty();
        }
        function checkAll(b) {
            var num = 1;
            !opts.expandRow && opts.multiselect ? num = 1 : opts.expandRow && opts.multiselect && (num = 2);
            for (var count = mygrid.getRowsNum(), k = b ? 1 : 0, i = 0; i < count; i++) opts.expandRow && i % 2 == 1 || mygrid.cellByIndex(i, num).setValue(k);
            changePageBtnStatus();
        }
        function loadData(data, callback) {
            var close = Prolog.loading2("#" + centerPanelId);
            if (opts.fixedLast && emptyFixedColumn(), opts.beforeDataLoad && opts.beforeDataLoad(opts), 
            data) return parseData(data), close();
            if (callback && (loadDataCallback = callback), null != opts.url && "" != opts.url) {
                var pp = opts.params;
                if (opts.page) if ("object" == _typeof(pp)) pp[opts.pageNum] = pageNum, pp[opts.pageSize] = pageSize; else {
                    var ppobj = JSON.parse(pp);
                    ppobj[opts.pageNum] = pageNum, ppobj[opts.pageSize] = pageSize, pp = JSON.stringify(ppobj);
                }
                Prolog.ajax({
                    url: opts.url,
                    type: opts.type,
                    data: pp,
                    contentType: opts.contentType,
                    success: function(da) {
                        parseData(da), loadDataCallback && loadDataCallback(!0), close();
                    },
                    error: function() {
                        loadDataCallback && loadDataCallback(!1), close();
                    }
                });
            }
        }
        function reload(data, callback) {
            mygrid.clearAll(), loadData(data, callback);
        }
        function createEXPID(id) {
            return "exp-".concat(id, "-").concat(rand);
        }
        function parseData(da) {
            if ("object" != _typeof(da) && (da = JSON.parse(da)), _this.grdbox = $(_this.getElement().querySelector(".objbox")), 
            null == da.success || 0 != da.success) if (da.data && "" != da.data) {
                var ldata, data, arr, ids, end;
                ldata = da.data.list ? da.data.list : da.data, rownum = (pageNum - 1) * pageSize + 1, 
                mygrid.enableColSpan(!0);
                try {
                    var _converData = function(data) {
                        for (var v, gridrows = new Array(), colArray = opts.columns, i = 0; i < data.length; i++) {
                            var rd = data[i], row = new Array();
                            row.push(rownum), rownum += 1, opts.expandRow && row.push('<div class="plg-table-row-expand-icon plg-table-row-collapsed"></div>'), 
                            opts.multiselect && row.push(0);
                            for (var j = 0; j < colArray.length; j++) {
                                var col = colArray[j].id;
                                colArray[j].render && (v = colArray[j].render(rd[col], rd)) ? row.push(v) : row.push(rd[col]);
                            }
                            gridrows.push({
                                id: rd[colArray[0].id],
                                data: row,
                                userdata: {
                                    data: rd
                                }
                            });
                        }
                        return {
                            rows: gridrows
                        };
                    }(ldata);
                    0 < ldata.length && opts.expandRow ? (data = _converData, arr = [], ids = [], end = Object.keys(data.rows[0].userdata.data).length + 1, 
                    opts.multiselect && (end += 1), opts.fixedLast, data.rows.forEach(function(item, index) {
                        ids.push("".concat(createEXPID(item.id))), !opts.fixedLast && opts.multiselect, 
                        arr.push(item, {
                            id: "".concat(createEXPID(item.id)),
                            data: [ "", '<div class="plg-table-expand-row" id=\''.concat(createEXPID(item.id), "'></div>") ],
                            userdata: {
                                data: {}
                            }
                        });
                    }), 1 + end - 1, data.rows = arr, mygrid.parse(data, "json"), ids.forEach(function(id) {
                        mygrid.setColspan(id, 1, mygrid.getColumnsNum() - 1), mygrid.setRowHidden(id, !0);
                    }), _this.getExpandIds = function() {
                        return ids;
                    }, _this.getExpandIds().forEach(function(ids) {
                        _this.expandedRowRender(ids);
                    }), _this.fixedColumn()) : mygrid.parse(_converData, "json"), function() {
                        var main = _this.getElement();
                        if (!main.parentNode.style.height) {
                            if (!main.offsetHeight || main.parentNode.style.display && "none" != main.parentNode.style.display) return;
                            main.parentNode.style.height = main.offsetHeight + "px", setTimeout(function() {}, 0);
                        }
                    }(), changePageBtnStatus();
                } catch (ex) {
                    return void PlgDialog.msg("数据错误！");
                }
                if (opts.page && function(id, totalCount, curr) {
                    if (0 != opts.page) {
                        pageSize = null == pageSize ? 0 : pageSize, totalCount = null == totalCount ? 0 : totalCount, 
                        $("#" + id).empty(), laypage = layui.laypage;
                        var layout = [ "count", "prev", "page", "next", "limit", "skip", "refresh" ];
                        opts.pagebar && "simple" == opts.pagebar.type ? layout = [ "count", "prev", "page", "next", "refresh" ] : opts.pagebar && "min" == opts.pagebar.type && (layout = [ "count", "prev", "next" ]), 
                        laypage.render({
                            elem: id,
                            count: totalCount,
                            limit: pageSize,
                            curr: curr,
                            limits: [ 5, 10, 20, 30, 50, 100, 200, 500, 1e3, 2e3 ],
                            groups: 4,
                            theme: "plg",
                            prev: '<i class="layui-icon layui-icon-left"></i>',
                            next: '<i class="layui-icon layui-icon-right"></i>',
                            layout: layout,
                            jump: pageJump
                        });
                    }
                }(pageBarId, da.data[opts.totalCount], pageNum), opts.multiselect) {
                    var ch = $("#" + panelId + " .plg-grid-second-col");
                    if (ch && 0 < ch.length) {
                        var cstr = ch.attr("src");
                        ch.attr("src", cstr.replaceAll("chk1", "chk0"));
                    }
                }
                resetSize();
            } else PlgDialog.msg("数据为空"); else PlgDialog.alert(da.message ? da.message : "空指针异常");
        }
        this.fixdiv = null, this.grdbox = null, _this.t = this.t(_this.opts.isI18n), this.ch_ids = [], 
        _this.getPanelId = function() {
            return panelId;
        }, _this.expandedRowRender = function(expId) {
            if ("function" == typeof opts.expandedRowRender) return opts.expandedRowRender(expId);
        }, _this.getGridId = function() {
            return gridId;
        }, _this.getToolBarId = function() {
            return toolBarId;
        }, _this.getPageBarPanelId = function() {
            return pageBarPanelId;
        }, _this.getGridTitleId = function() {
            return gridTitleId;
        }, _this.getCombo = function(col_ind) {
            return mygrid.getCombo(col_ind);
        }, this.getSideBarForm = function() {
            return sideBarForm;
        }, this.attachPageBarEvent = function(callback) {
            $("#" + pageBarPanelId).on("click", ".pagebar-button", function() {
                var _this = $(this);
                if (!_this.hasClass("layui-btn-disabled")) {
                    var name = _this.attr("name"), ids = mygrid.getCheckedRows(1);
                    callback(name, ids);
                }
            });
        }, this.PageBarJump = function(callback) {
            "function" == typeof callback && (Jumpcallback = callback);
        }, this.showDialogResetBtn = null, this.showDialog = function(type, title, width, height, requestParams, isMultipleRow) {
            beforeDialogOpenEvent && beforeDialogOpenEvent(type, title, width, height, requestParams);
            var _this = this;
            if (null != gridForm) if (1 != type || _this.getSelectedRowId()) {
                var winoptions = {
                    title: title,
                    closeBtn: 1,
                    type: 1,
                    resize: !0,
                    tipsMore: !0,
                    btn: [ _this.t("保存"), _this.t("重置"), _this.t("取消") ],
                    btn1: function(index, layero) {
                        if (0 != gridForm.validate()) {
                            var dp, close = PlgDialog.loading2();
                            isMultipleRow ? (dp = new Array()).push(gridForm.getFormData()) : dp = gridForm.getFormData();
                            var checkoutList = [];
                            if (opts.formData && 1 < opts.formData.length && (opts.formData.map(function(val) {
                                "label" === val.type && val.list.map(function(value) {
                                    checkoutList.push(value.name);
                                });
                            }), checkoutList = checkoutList.filter(function(val) {
                                return val;
                            })), null != requestParams.contentType && -1 < requestParams.contentType.indexOf("application/json") ? requestParams.data = JSON.stringify(dp) : requestParams.data = dp, 
                            "function" == typeof requestParams.saveAfter) try {
                                if (requestParams.data = requestParams.saveAfter(gridForm, requestParams.data), 
                                !requestParams.data) throw "saveAfter 回调没有return data";
                                if (void 0 === requestParams.data.id) throw "data.id 没有定义";
                            } catch (e) {
                                throw close(), new Error(e);
                            }
                            requestParams.success = function(data) {
                                data.success ? (_this.reload(), PlgDialog.close(index)) : data.message ? PlgDialog.alert(data.message) : PlgDialog.alert("数据返回失败"), 
                                close();
                            }, Prolog.ajax(requestParams);
                        }
                    },
                    btn2: function(index, layero) {
                        return gridForm.clear(), Object.keys(gridForm.getFormData()).forEach(function(item) {
                            try {
                                gridForm.getDForm().clearNote(item), $(gridForm.getDForm().getInput(item)).parent().parent().removeClass("validate_error");
                            } catch (e) {}
                        }), "function" == typeof requestParams.resetAfter && requestParams.resetAfter(gridForm), 
                        !1;
                    },
                    btn3: function(index, layero) {
                        PlgDialog.close(index);
                    },
                    area: [ width + "px", height + "px" ],
                    content: '<div id="' + panelId + '-win-form-1"></div>',
                    success: function(layero, index) {
                        if (gridForm.renderTo(panelId + "-win-form-1"), 1 == type) {
                            !function(plgform, data) {
                                var items = plgform.getFormData();
                                for (var key in items) items[key] = data[key];
                                plgform.setFormData(items);
                            }(gridForm, _this.getSelectedRowData());
                            for (var k = 0; k < formDisableFields.length; k++) gridForm.disableItem(formDisableFields[k]);
                        } else for (k = 0; k < formDisableFields.length; k++) gridForm.enableItem(formDisableFields[k]);
                        afterDialogOpenEvent && afterDialogOpenEvent(gridForm);
                    }
                };
                1 == type && (winoptions.btn = [ _this.t("保存"), _this.t("取消") ], winoptions.btn2 = winoptions.btn3, 
                winoptions.btn3 = null), PlgDialog.open(winoptions);
            } else PlgDialog.msg("请选择行!"); else PlgDialog.msg(_this.t("未设置表单"));
        }, this.fixedColumn = function() {
            if (opts.fixedLast) {
                var ids = _this.getAllRowIds().split(","), lastW = 0, tableList = $('<div class="ul-container"><table><colgroup><col></col></colgroup><tbody></tbody></table></div>'), grdbox = _this.grdbox;
                ids.forEach(function(id) {
                    var _tr = $("<tr>");
                    if (-1 == id.indexOf("exp-")) {
                        var ctd = _this.getCellObject(id, mygrid.getColumnsNum() - 1);
                        _tr.append($(ctd.cell).clone()), _this.setCellTextStyle(id, mygrid.getColumnsNum() - 1, "visibility: hidden;"), 
                        0 === lastW && (lastW = ctd.cell.offsetWidth);
                    } else _tr.append($("<td>")), _tr.hide();
                    _tr.attr("id", "fixe-right-" + id), tableList.find("tbody").append(_tr);
                });
                var grid_panel = grdbox.parent(), ghd = grid_panel.children(".xhdr");
                _this.fixdiv || (_this.fixdiv = $(document.createElement("div")), _this.fixdiv.attr("id", gridId + "-fixed-panel"), 
                _this.fixdiv.addClass("grid-fexed-column2"), grid_panel.append(_this.fixdiv));
                var headerText = ghd.find("table tr:last-child td:last-child"), headerDiv = $('<div class="header">');
                return headerDiv.append(headerText.children(".hdrcell").clone()), _this.fixdiv.append(headerDiv), 
                _this.fixdiv.append(tableList), lastW <= 1 ? lastW = _this.fixdiv.width() : lastW += grdbox[0].offsetWidth - grdbox[0].clientWidth, 
                _this.grdbox.find(".obj.row20px>tbody>tr>th:last-child").width(lastW), ghd.find("tbody>tr>th:last-child").width(lastW), 
                tableList.find("col").width(lastW), _this.getExpandIds().forEach(function(ids) {
                    mygrid.setCellTextStyle(ids, 1, "padding-right:".concat(lastW, "px;padding-left:").concat(30, "px"));
                }), grdbox.resize(function(event) {
                    var _bottom = $(this)[0].offsetHeight - $(this)[0].clientHeight, _right = grdbox[0].offsetWidth - grdbox[0].clientWidth;
                    ghd.width("calc(100% - ".concat(_right, "px)")), $(this)[0].scrollHeight > _this.fixdiv[0].offsetHeight ? _this.fixdiv.css("bottom", _bottom) : _this.fixdiv.css("bottom", "");
                }), grdbox.resize(), grdbox.scroll(function(event) {
                    0 == gscroll && tableList.scrollTop(grdbox.scrollTop());
                }), grdbox.mouseover(function() {
                    gscroll = 0;
                }), tableList.scroll(function() {
                    1 == gscroll && grdbox.scrollTop(tableList.scrollTop());
                }), tableList.mouseover(function() {
                    gscroll = 1;
                }), _this;
            }
        }, this.expandedRowsChange = function(callback) {
            "function" == typeof callback && (this.expandedRowsChange = callback);
        }, this.checkExpandColumn = function(id, isExp) {
            setTimeout(function() {
                var _cell = _this.getCellObject("".concat(createEXPID(id)), 1).cell;
                return isExp ? (mygrid.setRowHidden("".concat(createEXPID(id)), !1), mygrid.cell && mygrid.cell.children[0].setAttribute("class", "plg-table-row-expand-icon plg-table-row-expanded"), 
                _cell.children[0].style.height = _cell.scrollHeight + "px", opts.fixedLast && _this.fixdiv && _this.fixdiv.find("tr#fixe-right-".concat(createEXPID(id))).height(_cell.scrollHeight).show()) : (mygrid.setRowHidden("".concat(createEXPID(id)), !0), 
                _cell.children[0].style.height = "", opts.fixedLast && _this.fixdiv && _this.fixdiv.find("tr#fixe-right-".concat(createEXPID(id))).hide().height(""), 
                mygrid.cell && mygrid.cell.children[0].setAttribute("class", "plg-table-row-expand-icon plg-table-row-collapsed")), 
                _this.grdbox.resize(), _this;
            }, 200);
        }, this.getElement = function() {
            return panel;
        }, this.renderTo = function(id) {
            return renderTo(id), this;
        }, this.getGrid = function(id) {
            return mygrid;
        }, this.loadData = function(data, callback) {
            return loadData(data, callback), this;
        }, this.getParams = function() {
            return opts.params;
        }, this.setParams = function(params) {
            opts.params = params, pageSize = params.pageSize ? params.pageSize : pageSize, pageNum = params.pageNum ? params.pageNum : pageNum;
        }, this.getGridData = null, this.reload = function(data) {
            _this.ch_ids = [], reload(data);
        }, this.getCheckedIds = function() {
            return _this.ch_ids.join(",");
        }, this.getSelectedRowId = function() {
            return mygrid.getSelectedRowId();
        }, this.getSelectedRowData = function(name) {
            var rid = mygrid.getSelectedRowId();
            return name ? mygrid.getUserData(rid, "data")[name] : mygrid.getUserData(rid, "data");
        }, this.getRowData = function(rowId, fields) {
            if (null == fields || 0 == fields.length) return mygrid.getUserData(rowId, "data");
            if (Array.isArray(fields)) {
                for (var data = {}, i = 0; i < fields.length; i++) data[fields[i]] = mygrid.getUserData(rowId, "data")[fields[i]];
                return data;
            }
            return mygrid.getUserData(rowId, "data")[fields];
        }, this.setRowSelectCheck = function(rowId) {
            if (opts.multiselect || rowId) {
                var row = this.getCellObject(rowId, 1), img = row.cell.children[0];
                -1 < img.src.indexOf("chk0") ? (img.src = img.src.replaceAll("chk0", "chk1"), row.setChecked(!0)) : (img.src = img.src.replaceAll("chk1", "chk0"), 
                row.setChecked(!1));
                var headerCh = $("#" + panelId + " .plg-grid-second-col");
                this.getAllRowIds().split(",").length == this.getCheckedRows(1).split(",").length ? headerCh.attr("src", headerCh.attr("src").replaceAll("chk0", "chk1")) : headerCh.attr("src", headerCh.attr("src").replaceAll("chk1", "chk0"));
            }
        }, this.getExpandIds = function() {
            return [];
        }, this.getSelectedCellIndex = function() {
            return mygrid.getSelectedCellIndex();
        }, this.getRowId = function(rowIndex) {
            return mygrid.getRowId(rowIndex);
        }, this.getRowIndex = function(rowId) {
            return mygrid.getRowIndex(rowId);
        }, this.getCellObject = function(rowId, colIndex) {
            return mygrid.cells(rowId, colIndex);
        }, this.getCellValue = function(rowId, colIndex) {
            return mygrid.cells(rowId, colIndex).getValue();
        }, this.getCellObject2 = function(rowIndex, colIndex) {
            return mygrid.cells2(rowIndex, colIndex);
        }, this.getCellValue2 = function(rowIndex, colIndex) {
            return mygrid.cells2(rowIndex, colIndex).getValue();
        }, this.setCellValue = function(rowId, colIndex, value) {
            mygrid.cells(rowId, colIndex).setValue(value);
            var cname = columnArray[colIndex], data = mygrid.getUserData(rowId, "data");
            null != data && "" != data || (data = {}), data[cname] = value, mygrid.setUserData(rowId, "data", data);
        }, this.addRow = function(rowId, row_data, index) {
            var rdarray = [];
            rdarray.push(mygrid.getRowsNum() + 1);
            var start = 1;
            opts.multiselect && (rdarray.push(0), start = 2);
            for (var i = start; i < columnArray.length; i++) {
                var t = row_data[columnArray[i]];
                rdarray.push(t || "");
            }
            null != index ? mygrid.addRow(rowId, rdarray.toString(), index) : mygrid.addRow(rowId, rdarray.toString()), 
            mygrid.setUserData(rowId, "data", row_data), resetSize();
        }, this.deleteRow = function(rid) {
            mygrid.deleteRow(rid), resetSize();
        }, this.getColumnsNum = function() {
            return mygrid.getColumnsNum();
        }, this.getColumns = function() {
            return columnArray;
        }, this.getColumn = function(index) {
            return columnArray[index];
        }, this.getHeaders = function() {
            return headerArray;
        }, this.getColumnHeader = function(index) {
            return headerArray[index];
        }, this.getGridForm = function() {
            return gridForm;
        }, this.getToolBarForm = function() {
            return toolBarForm;
        }, this.setColWidth = function(colIndex, width) {
            mygrid.setColWidth(colIndex, width.toString());
        }, this.setColumnColor = function(array) {
            mygrid.setColumnColor(array.toString());
        }, this.setColumnHidden = function(colIndex, isHidden) {
            mygrid.setColumnHidden(colIndex, isHidden);
        }, this.setRowHidden = function(rowId, isHidden) {
            mygrid.setRowHidden(rowId, isHidden);
        }, this.selectRowById = function(rowId) {
            mygrid.selectRowById(rowId);
        }, this.resetSize = resetSize, this.on = function(eventName, callback) {
            "beforeDialogOpen" == eventName ? beforeDialogOpenEvent = callback : "afterDialogOpen" == eventName ? afterDialogOpenEvent = callback : "onAfterSorting" == eventName ? mygrid.attachEvent(eventName, function(index, type, direction) {
                resetSize(), callback(index, type, direction);
            }) : "onResizeEnd" == eventName ? mygrid.attachEvent(eventName, function(obj) {
                resetSize(), callback(obj);
            }) : "onCheck" == eventName ? mygrid.attachEvent(eventName, function(rId, cInd, state) {
                1 == cInd && opts.multiselect && changePageBtnStatus(), callback(rId, cInd, state);
            }) : mygrid.attachEvent(eventName, callback);
        }, this.attachEvent = this.on, this.attachToolBarEvent = function(eventName, callback) {
            toolBarForm && toolBarForm.on(eventName, callback);
        }, this.attachSideBarEvent = function(eventName, callback) {
            sideBarForm && sideBarForm.on(eventName, callback);
        }, this.splitAt = function(colIndex) {
            mygrid.splitAt(colIndex);
            for (var i = 0; i < hidenArray.length; i++) hidenArray[i] && mygrid.setColumnHidden(i, !0);
        };
        var self = this;
        opts.renderer && "" != opts.renderer && renderTo(opts.renderer);
    };
    plgGridExpand.prototype.t = function(is) {
        return this.t = is ? function(text) {
            return i18next.t(text);
        } : function(text) {
            return text;
        };
    }, window.PlgGridExpand = plgGridExpand;
}(jQuery);
"use strict";

!function($, layui) {
    $.fn.initPlgInputTags = function(options) {
        var pg = new plgInputTags(options), id = $(this).attr("id");
        return pg.renderTo(id), pg;
    };
    var plgInputTags = function(params) {
        var classMain = {
            checkboxName: "",
            layFilter: "",
            data: null,
            dom: null,
            tagsId: "tags-" + Prolog.createRandomId(),
            meunPanelThis: null,
            setDefaultValue: function(data) {
                if (!(data && 0 < data.length)) return !1;
                data.map(function(val) {
                    val.hasOwnProperty("checked") || (val.checked = !1);
                }), this.data = data;
            },
            wrapTemplate: function() {
                var self = this, temTemplate = "";
                return temTemplate += '<div class="layui-form-item">\n        <label class="layui-form-label">原始复选框</label>\n        <div class="layui-input-block">', 
                self.data.forEach(function(val) {
                    temTemplate += '<input type="checkbox" \n          name="'.concat(self.checkboxName, "[").concat(val.alias, ']" \n          lay-skin="primary" lay-filter="').concat(self.layFilter, '" \n          title="').concat(val.text, '" ').concat(val.checked ? 'checked=""' : "", ' />\n          <div class="layui-unselect layui-form-checkbox ').concat(val.checked ? "layui-form-checked" : "", '" \n          lay-skin="primary"><span>').concat(val.text, '</span>\n          <i class="layui-icon layui-icon-ok"></i></div>\n          ');
                }), temTemplate += '</div>\n          </div>\n          <div class="layui-form-item">\n          <label class="layui-form-label">已经选中</label>\n          <div class="layui-input-block tags" id="'.concat(self.tagsId, '"></div>\n          </div>\n        ');
            }
        };
        if (!params.checkboxName || !params.layFilter) return !1;
        classMain.checkboxName = params.checkboxName, classMain.setDefaultValue(params.data), 
        this.tagsId = classMain.tagsId, this.layFilter = classMain.layFilter = params.layFilter || "plg-" + Prolog.createRandomId(), 
        this.wrapTamplate = $(classMain.wrapTemplate()), params.renderer && this.renderTo(params.renderer);
    };
    plgInputTags.prototype.renderTo = function(targetId) {
        var self = this, $targetId = $("#" + targetId);
        $targetId.find("#" + self.tagsId);
        $targetId.append(self.wrapTamplate);
        var form = layui.form;
        form.render();
        var tagList = [], inputTags = {
            init: function() {
                var temObj = {}, checkboxList = $targetId.find(".layui-form-checked");
                checkboxList.length && (temObj = {
                    value: checkboxList.siblings("input").attr("title"),
                    name: checkboxList.siblings("input").attr("name")
                }), "{}" !== JSON.stringify(temObj) && (tagList.push(temObj), tagList.forEach(function(v) {
                    inputTags.add(v);
                }));
            },
            add: function(temObj) {
                var temTempalte = '<span>\n          <em name="'.concat(temObj.name, '">').concat(temObj.value, '</em>\n          <button type="button" class="close">×</button>\n        </span>');
                $("#" + self.tagsId).append(temTempalte);
                var temInputHidden = '<input type="hidden" name="'.concat(temObj.name, '" \n          value="').concat(temObj.value, '"/>');
                $targetId.after(temInputHidden), -1 === tagList.indexOf(temObj) && tagList.push(temObj);
            },
            del: function(temObj) {
                tagList && 0 < tagList.length && tagList.forEach(function(val, ind) {
                    val.name === temObj.name && tagList.splice(ind, 1);
                }), $("#" + self.tagsId).empty();
                var temTempalte = "";
                tagList && 0 < tagList.length && tagList.forEach(function(val, ind) {
                    temTempalte += '<span><em name="'.concat(val.name, '">').concat(val.value, '</em><button type="button" class="close">×</button></span>');
                }), $("#" + self.tagsId).append(temTempalte), $("#" + self.targetId).find('input[name="' + temObj.name + '"]').remove();
            }
        };
        inputTags.init(), form.on("checkbox(" + self.layFilter + ")", function(data) {
            var isChecked = data.elem.checked, jqueryElem = $(data.elem), temObj = {
                value: jqueryElem.attr("title"),
                name: jqueryElem.attr("name")
            };
            isChecked && inputTags.add(temObj), isChecked || inputTags.del(temObj);
        }), $targetId.find("#" + self.tagsId).on("click", ".close", function(e) {
            var temJqueryObj = $(this).siblings("em"), temObj = {
                value: temJqueryObj.html(),
                name: temJqueryObj.attr("name")
            };
            inputTags.del(temObj);
            var checkedList = self.wrapTamplate.find(".layui-form-checkbox");
            (checkedList = Array.prototype.slice.call(checkedList)) && 0 < checkedList.length && checkedList.forEach(function(val, ind) {
                var temHtml = $($(val).find("span")[0]).html();
                temObj.value === temHtml && self.wrapTamplate.find(".layui-form-checkbox").eq(ind).trigger("click");
            });
        });
    }, window.PlgInputTags = plgInputTags;
}(jQuery, layui);
"use strict";

function _typeof(obj) {
    return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
        return typeof obj;
    } : function(obj) {
        return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    })(obj);
}

!function($) {
    var PlgMenu = function(options) {
        var _this = this;
        _this.options = options, _this.getActiveId = function() {
            return vipspa.indexid;
        }, this.fold = !1, this.selectedKeys = "", this.submenuElement = null;
        var config = {
            xScroll: !(this.openMenuId = []),
            folding: !(this.openKey = ""),
            defaultOpenMenuId: [],
            options: "",
            inlineIndent: 24,
            data: null,
            renderer: null,
            url: null,
            isI18n: window.isI18n || !1,
            ajaxInit: {
                url: null,
                type: "get",
                dataType: "json"
            },
            route: !1,
            menuClick: null,
            routerConfig: null
        };
        _this.options = $.extend(!0, config, _this.options), _this.options.data ? _this.promiseGetDate = new Promise(function(resolve) {
            resolve(parseData(_this.options.data));
        }) : _this.promiseGetDate = function(params) {
            var _this = this, object = Object.assign({}, params);
            return new Promise(function(resolve, error) {
                var close = PlgDialog.loading2(), treedata = null;
                object.success = function(response) {
                    response.success ? (params.success && params.success(response), treedata = parseData(response.data), 
                    _this.options.data = treedata) : layer.msg("数据加载失败!"), treedata ? resolve(treedata) : error();
                }, object.error = function(XMLHttpRequest, textStatus, errorThrown) {
                    params.error && params.error(arguments);
                }, object.complete = function() {
                    params.complete && params.complete(arguments), close();
                }, Prolog.ajax(object);
            });
        }.call(this, _this.options.ajaxInit), _this.document = function(mapData, opts) {
            var tpl = $("<div>", {
                class: "sidebar"
            });
            return $().localize && tpl.localize(), tpl;
        }.call(_this), _this.init(_this.document);
    };
    PlgMenu.prototype.init = function(document) {
        var _this = this;
        return function() {
            var _this = this, project_name = $(".plg-layout-sider"), plg_anticon = $('<i id="plg-logo-fold" class="plg_anticon layui-icon layui-icon-shrink-right"></i>');
            project_name && (project_name.append(plg_anticon), plg_anticon.click(function(event) {
                event.preventDefault(), _this.fold = !_this.fold, $("body").toggleClass("fold"), 
                $(".plg-menu-toolbar").toggle(), _this.fold ? $(this).removeClass("layui-icon-shrink-right").addClass("layui-icon-spread-left") : $(this).removeClass("layui-icon-spread-left").addClass("layui-icon-shrink-right"), 
                _this.promiseGetDate.then(function(data) {});
            }));
        }.call(this), this.promiseGetDate.then(function(treedata) {
            if (_this.reset(treedata), _this.options.defaultSelectedMenuId) if (_this.options.route) {
                var _data = treedata[_this.options.defaultSelectedMenuId], _hase = function() {
                    return location.hash.replace(/^#/, "");
                };
                if (_hase = _hase(), location.hash = _data.hash, _hase == _data.hash) return location.href = "";
                if (!_hase && _hase == _data.hash) return;
                setTimeout(function() {
                    location.hash = _hase;
                }, 200);
            } else _this.setActiveMenuItem(_this.options.defaultSelectedMenuId);
        }), _this.options.renderer && _this.renderTo(_this.options.renderer), _this;
    }, PlgMenu.prototype.updateMenu = function(newValue) {
        var isI18n = this.options.isI18n, inlineIndent = this.options.inlineIndent, _mapArr = Object.values(newValue);
        return $('<div class="plg-menu-scroll">').append(function dg(id, arry) {
            var _ul = $("<ul>", {
                class: "0" == id ? "plg-menu" : "plg-menu plg-menu-sub"
            });
            "0" !== id && _ul.hide();
            var childArry = function(id, arry) {
                var newArry = new Array();
                for (var i in arry) arry[i].parentMenuId == id && newArry.push(arry[i]);
                return newArry;
            }(id, arry);
            return 0 < childArry.length && childArry.forEach(function(item) {
                var _li = $('<li class="'.concat(item.leaf ? "plg-menu-item" : "plg-menu-submenu", " ").concat(item.isActive && item.leaf ? "plg-menu-item-selected" : "", " ").concat(item.isActive && !item.leaf ? "ant-menu-submenu-open" : "", '"></li>')), title_div = $('<div class="plg-menu-submenu-title"></div>'), icon = $('<span class="icon-box"><i class="'.concat(item.imagePath, '"></i></span>')), right = $('<i class="right-mover layui-icon layui-icon-down" style="right: 0.28rem;"></i>'), _a = $('<a class="itemText" href="'.concat(item.blank ? item.path : item.hash && item.leaf ? "#" + item.hash : "javascript:;", '"  ').concat(item.blank ? "target=_blank" : "", "  ").concat(isI18n && i18next.exists(item.name.toString()) ? 'data-i18n="'.concat(item.name, '"') : "", " menu-id=").concat(item.menuId, ">").concat(item.name, "</a>"));
                item.leaf && "0" == id ? _li.append(icon).append(_a).css("padding-left", inlineIndent * item.level / 100 + "rem") : item.leaf || "0" == id ? item.leaf || "0" != id ? item.leaf && "0" != id && _li.append(_a).css("padding-left", inlineIndent * item.level / 100 + "rem") : (title_div.append(icon).css("padding-left", inlineIndent * item.level / 100 + "rem"), 
                _a.append(right), title_div.append(_a), _li.append(title_div)) : (title_div.append(_a).append(right).css("padding-left", inlineIndent * item.level / 100 + "rem"), 
                _li.append(title_div)), item.leaf || _li.append(dg(item.menuId, arry)), _ul.append(_li);
            }), _ul;
        }("0", _mapArr));
    };
    var defWidth = null;
    function setWidth(ele) {
        var _this = this;
        (document.querySelector(".plg-menu-scroll").scrollWidth < defWidth || ele.is(".plg-menu-submenu-open")) && (_this.document.find("li").css({
            width: ""
        }), _this.document.find("ul").css({
            width: ""
        })), setTimeout(function() {
            var width = document.querySelector(".plg-menu-scroll").scrollWidth;
            defWidth || (defWidth = width), _this.document.find("li").css({
                width: width + "px"
            }), _this.document.find("ul").css({
                width: width + "px"
            });
        }, 300);
    }
    function parseData(da) {
        var routeSetting = {}, treedata = function(data) {
            data.forEach(function(item, index) {
                delete item.children, delete item.type, delete item.queryId, delete item.operateType, 
                delete item.lastModifyTime, delete item.helpCode, delete item.creatorName, delete item.creatorId, 
                delete item.createTime, delete item.modifierId, delete item.modifierName, delete item.sort;
            });
            var map = {};
            return data.forEach(function(item) {
                map[item.menuId] = item;
            }), {
                mapData: map
            };
        }(da);
        return da.forEach(function(item) {
            if (!item.blank && (item.PY_code = pinyin.makePy(item.name)[0], item.leaf && item.path)) {
                if (!item.hash) {
                    var index = item.path.indexOf("?");
                    item.hash = item.path, -1 < index && (item.hash = item.path.substr(0, index - 1)), 
                    item.hash = item.hash.substr(1).split("/"), item.hash = item.hash[item.hash.length - 2] + "/" + item.hash[item.hash.length - 1], 
                    -1 != item.hash.indexOf("=") && (item.hash = item.hash.match("([^=]+)$")[0]);
                }
                var obj = function resultName(mid) {
                    var arr = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : [];
                    var idarr = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : [];
                    var mapData = treedata.mapData;
                    var item = mapData[mid];
                    if (item && (arr.unshift(item.name), idarr.unshift(item.menuId), 0 != item.parentMenuId)) return resultName(item.parentMenuId, arr, idarr);
                    return {
                        arr: arr,
                        idarr: idarr
                    };
                }(item.menuId);
                item.path = function(item) {
                    var path = item.path, index = path.indexOf("?");
                    {
                        if (item.iframe) return path;
                        if (-1 < index) {
                            path.slice(index);
                            return path;
                        }
                        var hasHtml = path.indexOf(".html");
                        return -1 < hasHtml ? path : path + ".html";
                    }
                }(item), -1 < index && (item.hash = item.menuId), routeSetting[item.hash] = {
                    templateUrl: item.path,
                    iframe: item.iframe || !1,
                    controller: item.srcPath ? item.srcPath + ".js" : null,
                    name: item.name,
                    menuId: item.menuId,
                    parent_name: obj.arr,
                    stateArr: obj.idarr
                }, obj = null;
            }
        }), treedata.mapData;
    }
    PlgMenu.prototype.reset = function(newValue) {
        var sidebarLi = this.updateMenu(newValue);
        return this.document.empty().append(sidebarLi), function(element) {
            var _this = this;
            return element.find(".plg-menu-submenu-title").click(function(event) {
                event.preventDefault(), event.stopPropagation(), _this.fold && (_this.fold = !1, 
                $("body").toggleClass("fold"), $(".plg-menu-toolbar").toggle()), _this.submenuElement = $(this), 
                $(this).find(".itemText").attr("menu-id"), _this.toggleOpenSubMenu($(this)), _this.options.xScroll && setWidth.call(_this, $(this).parent());
            }), element.find(".plg-menu-item").click(function(event) {
                event.preventDefault(), event.stopPropagation();
                var mid = $(this).children(".itemText").attr("menu-id");
                _this.setActiveMenuItem($(this)), mid && _this.selectedKeys == mid || _this.options.xScroll && setWidth.call(_this, $(this).parent());
            }), element;
        }.call(this, sidebarLi), this;
    }, PlgMenu.prototype.setActiveMenuItem = function(key) {
        var $jq, isCB = !(1 < arguments.length && void 0 !== arguments[1]) || arguments[1], _this = this;
        this.promiseGetDate.then(function() {
            var mid = ($jq = "object" === _typeof(key) ? key : _this.document.find(".itemText[menu-id='".concat(key, "']")).parent()).children(".itemText").attr("menu-id");
            if (_this.selectedKeys != mid) {
                _this.selectedKeys = mid;
                var _data = _this.options.data[_this.selectedKeys];
                if (_data) {
                    if (_this.document.find(".plg-menu-item-selected").removeClass("plg-menu-item-selected"), 
                    $jq.addClass("plg-menu-item-selected"), _this.document.find(".plg-menu-submenu").removeClass("plg-menu-submenu-selected"), 
                    $jq.parents(".plg-menu-submenu").addClass("plg-menu-submenu-selected"), _data.blank) return window.open(_data.path);
                    isCB && _this.leafClick(_this.selectedKeys, _data, $jq);
                }
            }
        });
    }, PlgMenu.prototype.activeItemOpenSubMenu = function(mid) {
        var isCB = !(1 < arguments.length && void 0 !== arguments[1]) || arguments[1], _this = this;
        if (!_this.options.data[mid]) return this.selectedKeys = mid, _this.document.find(".plg-menu-item-selected").removeClass("plg-menu-item-selected");
        if (this.selectedKeys !== mid) {
            _this.options.data[mid].leaf && this.setActiveMenuItem(mid, isCB);
            !function getParentId(key) {
                var itemData = _this.options.data[key];
                if (itemData) {
                    var isOpen = _this.document.find(".itemText[menu-id='".concat(key, "']")).parent().parent().is(".plg-menu-submenu-open");
                    return !itemData.leaf && !isOpen && _this.toggleOpenSubMenu(itemData.menuId), "0" != itemData.parentMenuId ? getParentId(itemData.parentMenuId) : itemData.menuId;
                }
            }(_this.options.data[mid].parentMenuId);
        }
    }, PlgMenu.prototype.openChange = function(callback) {
        return "function" == typeof callback ? this.openChange = callback : null;
    }, PlgMenu.prototype.leafClick = function(callback) {
        return "function" == typeof callback ? this.leafClick = callback : null;
    }, PlgMenu.prototype.toggleOpenSubMenu = function(key) {
        var _this = this;
        this.promiseGetDate.then(function() {
            var elem;
            "object" === _typeof(key) ? (elem = key, _this.openKey = elem.find(".itemText").attr("menu-id")) : (_this.openKey = key, 
            elem = _this.document.find(".itemText[menu-id='".concat(_this.openKey, "']")).parent());
            var menu_sub_ul = elem.parent().children(".plg-menu-sub"), icon = elem.find(".right-mover");
            if (_this.options.folding && (_this.openMenuId = []), _this.openMenuId.push(_this.openKey), 
            elem.parent().is(".plg-menu-submenu-open")) _this.openMenuId.filter(function(item, index, arr) {
                return item == _this.openKey && arr.splice(index, 1);
            }); else if (_this.options.folding) {
                var sib = elem.parents(".plg-menu-submenu").siblings().filter(".plg-menu-submenu");
                sib.removeClass("plg-menu-submenu-open"), sib.children(".plg-menu-sub").slideUp(200), 
                sib.find(".right-mover").removeClass("layui-icon-up").addClass("layui-icon-down");
            }
            return elem.parent().toggleClass("plg-menu-submenu-open"), elem.parent().is(".plg-menu-submenu-open") ? (menu_sub_ul.slideDown(200), 
            icon.removeClass("layui-icon-down").addClass("layui-icon-up")) : (elem.parent().show(), 
            menu_sub_ul.slideUp(200), icon.removeClass("layui-icon-up").addClass("layui-icon-down")), 
            _this.openChange(_this.openKey, _this.openMenuId, elem), _this.submenuElement = null, 
            _this;
        });
    }, PlgMenu.prototype.renderTo = function(domId) {
        this.options.renderer = domId, $("#" + this.options.renderer).addClass("plg-menu-sidebar").empty().append(this.document);
        return this;
    }, window.PlgMenu = PlgMenu, $.fn.initPlgMenu = function(options) {
        return new PlgMenu(this, options);
    };
}(jQuery);
"use strict";

!function($) {
    var PlgMenuToolbar = function(options) {
        var _this = this;
        _this.options = options;
        var config = {
            isI18n: window.isI18n || !1,
            title: "常用功能",
            ajaxInit: {
                url: null,
                type: "get",
                dataType: "json"
            },
            click: null
        };
        _this.options = $.extend(!0, config, _this.options), _this.options.data ? _this.promiseGetDate = new Promise(function(resolve) {
            resolve(_this.options.data);
        }) : _this.promiseGetDate = function(object) {
            var _this = this;
            return new Promise(function(resolve, error) {
                var close = PlgDialog.loading2();
                object.success = function(response) {
                    response.success ? (_this.options.data = response.data, resolve(_this.options.data)) : (layer.msg("数据加载失败!"), 
                    error());
                }, object.error = function(XMLHttpRequest, textStatus, errorThrown) {}, object.complete = function() {
                    close();
                }, Prolog.ajax(object);
            });
        }.call(this, _this.options.ajaxInit), _this.document = $("<div>", {
            class: "tool-main"
        }), _this.init(_this.document);
    };
    PlgMenuToolbar.prototype.init = function() {
        this.reset(), this.options.renderer && this.renderTo(this.options.renderer);
    }, PlgMenuToolbar.prototype.renderTo = function(domId) {
        this.options.renderer = domId;
        var titleObj = $("<div>", {
            class: "plg-menu-toolbar-title",
            text: this.options.title
        });
        return this.document.append(titleObj), $("#" + this.options.renderer).addClass("plg-menu-toolbar").empty().append(this.document), 
        this;
    }, PlgMenuToolbar.prototype.reset = function(newData) {
        var _this = this;
        this.promiseGetDate.then(function(data) {
            newData && (newData, _this.options.data = newData);
            var sidebarLi = function(data) {
                if (!data) return;
                var wrapper, body = $('<div class="plg-menu-toolbar-body">\n        <div class="layui-carousel" >\n         <div carousel-item>\n         </div>\n        </div>\n\n    </div>'), carouselItem = body.find("div[carousel-item]");
                return data.forEach(function(item, index) {
                    if (!(12 <= index)) {
                        index / 6 % 1 == 0 && (wrapper = $("<div>", {
                            class: "wrapper"
                        }), carouselItem.append($("<div>").append(wrapper)));
                        var list = $('\n    <a class="list" href="javascript:;" menu-id="'.concat(item.menuId, '" >\n    <div class="p_icon">\n     ').concat(item.imagePath ? '<i class="'.concat(item.imagePath, '"></i>') : '<i style="font-size:0.18rem">'.concat(item.name[0], "</i>"), '\n     </div>\n      <span class="name">').concat(item.name, "</span>\n    </a>"));
                        wrapper.append(list);
                    }
                }), layui.carousel.render({
                    elem: carouselItem.parent(),
                    width: "100%",
                    height: "2.16rem",
                    arrow: "none",
                    autoplay: !1
                }), body;
            }(_this.options.data);
            _this.document.append(sidebarLi), function(element) {
                var _this = this;
                element.find(".wrapper .list").click(function(event) {
                    event.preventDefault(), event.stopPropagation();
                    var mid = $(this).attr("menu-id"), _data = _this.options.data.find(function(item) {
                        return item.menuId === mid;
                    });
                    "function" == typeof _this.options.click && _this.options.click(mid, _data, $(this));
                });
            }.call(_this, sidebarLi);
        });
    }, window.PlgMenuToolbar = PlgMenuToolbar, $.fn.initPlgMenuToolbar = function(options) {
        return new PlgMenuToolbar(this, options);
    };
}(jQuery);
"use strict";

function _typeof(obj) {
    return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
        return typeof obj;
    } : function(obj) {
        return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    })(obj);
}

!function($, layui) {
    layui.use([ "element" ], function() {
        function template() {
            var skinOBJ = {
                0: "",
                1: "skin_1",
                2: "skin_2"
            };
            skinOBJ[this.skin] || (this.skin = 0);
            var html = '<div class="layui-card PlgPanel '.concat(skinOBJ[this.skin], " ").concat(this.className ? this.className : "", '" id=').concat(this.getPanelId(), " ").concat(this.style ? 'style="'.concat(this.style, '"') : "", ">\n                   ").concat(this.header.isShow ? '<div class="layui-card-header">\n                        <div class="title io">'.concat(this.header.title, "</div>\n                        ").concat(this.header.moreBtn && 0 < this.header.moreBtn.length ? '<div class="more_group">\n                            '.concat(this.header.moreBtn.map(function(item) {
                return '<a class="'.concat(item.className ? "".concat(item.className) : "", '" ').concat(item.style ? 'style="'.concat(item.style, '"') : "", ' href="javascript:;"> ').concat(item.icon ? '<i class="'.concat(item.icon, '"></i>') : "").concat(item.name, "</a>");
            }).join(""), "\n                     </div>") : "", "\n                    </div>\n                   ") : "", '\n                    <div class="layui-card-body" id=').concat(this.getPanelBodyId(), ">\n\n                    </div>\n                    ").concat(this.floor ? '<div class="layui-card-floor">\n                    </div>' : "", "\n                </div>\n                ");
            return $(html);
        }
        function PanelForm() {
            if (this.defaultBody) {
                var data = this.defaultBody, html = null;
                if (data.layoutCol < 0 || data.layoutCol, data.cols) return html = '<form class="layui-form cl" style="padding:5px" lay-filter="">\n                        '.concat(data.cols.map(function(arr) {
                    return '<div class="layui-row layui-col-space10">\n                                '.concat(arr.map(function(item) {
                        return '<div class="layui-col-md'.concat(item.layoutCol || data.layoutCol, " ").concat(item.offset ? "layui-col-md-offset".concat(item.offset) : "", '">\n                                        <div class="layui-form-item">\n                                        <label class="layui-form-label">').concat(item.label, '：</label>\n                                        <div class="layui-input-block">\n                                                    ').concat(function(item, valueBj) {
                            switch (item.type || (item.type = "text"), item.type) {
                              case "text":
                                var div = $("<div>", {
                                    class: "text-info ".concat(valueBj ? "bj" : "")
                                });
                                return item.value || 0 === item.value ? div.text(item.value) : div.html("<span style='color:#c3c3c3'>暂无数据</span>"), 
                                div[0].outerHTML;

                              case "input":
                                return item.value || 0 === item.value || (item.value = ""), $("<input>", {
                                    type: "text",
                                    placeholder: "请输入信息",
                                    autocomplete: "off",
                                    class: "layui-input",
                                    value: item.value.toString()
                                })[0].outerHTML;
                            }
                        }(item, data.valueBj), "\n                                            </div>\n                                        </div>\n                                    </div>");
                    }).join(""), "\n\n                        </div>");
                }).join(""), "\n\n                    </form>"), $(html);
            }
        }
        function plgPanel(ele, options) {
            var opt, _this = this;
            if (_this.Rand = Prolog.createRandomId(), 1 === arguments.length) {
                if ("object" === _typeof(opt = arguments[0])) {
                    var config = {
                        renderer: "",
                        className: "",
                        style: "",
                        skin: 0,
                        title: "",
                        empyt: !0,
                        fromData: null,
                        header: {
                            isShow: !0,
                            title: "",
                            moreBtn: null
                        },
                        grid: null,
                        defaultBody: null,
                        page: !1,
                        floor: !0,
                        totalCount: "totalCount",
                        pageNum: "pageNum",
                        pageSize: "pageSize",
                        params: {
                            pageSize: 10,
                            pageNum: 1
                        },
                        pageType: "simple",
                        url: null,
                        type: "get",
                        contentType: "application/x-www-form-urlencoded",
                        success: null,
                        listFormData: [],
                        toolbar: [],
                        columns: null
                    };
                    (_this = Object.assign(_this, config, opt)).params = "[object Object]" === Object.prototype.toString.call(opt.params) ? Object.assign(config.params, opt.params) : config.params, 
                    _this.getElement = template.call(_this), _this.header.moreBtn && 0 < _this.header.moreBtn.length && _this.getElement.find(".more_group>a").each(function(index, element) {
                        element.onclick = _this.header.moreBtn[index].onClick;
                    }), null != _this.defaultBody && (_this.defaultBody.cols && 0 < _this.defaultBody.cols.length ? _this.appendPanelBody(PanelForm.call(_this)) : $(_this.defaultBody)[0] instanceof HTMLElement && _this.appendPanelBody(_this.defaultBody)), 
                    _this.renderBefore(), _this.renderTo(_this.renderer);
                }
            } else 2 === arguments.length && (ele = arguments[0], "object" === _typeof(opt = options) && (_this.opts = $.extend(!0, config, opt), 
            _this.getElement = template(_this.opts), _this.renderTo(ele)));
        }
        plgPanel.prototype.renderBefore = function(callback) {
            return "function" != typeof callback ? null : (this.renderBefore = callback, this.renderBefore(), 
            this);
        }, plgPanel.prototype.setPages = function() {
            var self = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : this, floor = self.getElement.find(".layui-card-floor");
            if (!self.page) return floor.empty();
            var pageSize = null == self.params.pageSize ? 0 : self.params.pageSize, totalCount = null == self.totalCount ? 0 : self.totalCount, curr = null == self.params.pageNum ? 0 : self.params.pageNum;
            floor.empty();
            var laypage = layui.laypage, layout = [ "count", "prev", "page", "next", "limit", "skip", "refresh" ];
            "simple" == self.pageType ? layout = [ "count", "prev", "page", "next", "refresh" ] : "min" == self.pageType && (layout = [ "count", "prev", "next" ]), 
            laypage.render({
                elem: floor,
                count: totalCount,
                limit: pageSize,
                curr: curr,
                limits: [ 5, 10, 20, 30, 50, 100, 200, 500 ],
                groups: 4,
                theme: "plg",
                prev: '<i class="layui-icon layui-icon-left"></i>',
                next: '<i class="layui-icon layui-icon-right"></i>',
                layout: layout,
                jump: function(obj, first) {
                    this.params.pageNum = obj.curr, this.params.pageSize = obj.limit, first || this.getListForm && this.listReload();
                }.bind(self)
            });
        }, plgPanel.prototype.renderTo = function(ele) {
            if (!ele) return this;
            if ("string" == typeof ele && (ele = -1 < ele.indexOf(".") ? ele : "#" + ele), this.renderer = ele, 
            this.empyt && $(ele).empty(), $(ele).append(this.getElement), this.grid) {
                var odiv = document.createElement("div");
                odiv.id = "panel-grid-" + this.Rand, this.appendPanelBody(odiv), this.grid = new PlgGrid({
                    fixedLast: !0,
                    multiselect: !0,
                    toolbar: this.toolbar,
                    columns: this.columns || [],
                    url: this.url,
                    type: this.type,
                    params: this.params,
                    page: this.page,
                    totalCount: this.totalCount
                }), this.grid.loadData(), this.grid.renderTo(odiv.id);
            } else this.toolbarReload(), this.listReload();
            return this;
        }, plgPanel.prototype.getGrid = function() {
            return this.grid;
        }, plgPanel.prototype.toolbarReload = function() {
            if (!(Array.isArray(this.toolbar) && 0 < this.toolbar.length)) return null;
            var odiv = document.createElement("div");
            return odiv.id = "toolbar-" + this.Rand, this.appendPanelBody(odiv), this.getToolbar = new PlgForm({
                renderer: odiv.id,
                items: this.toolbar
            }), this;
        }, plgPanel.prototype.listReload = function() {
            var param = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
            if (!(Array.isArray(this.listFormData) && 0 < this.listFormData.length)) return null;
            var odiv = document.createElement("div");
            return odiv.id = "list-form-" + this.Rand, this.appendPanelBody(odiv), this.getListForm = new PlgForm({
                renderer: odiv.id,
                items: this.listFormData
            }), this.url ? (function(self, param) {
                var _this = self, opt = {
                    url: _this.url,
                    type: _this.type,
                    data: _this.params,
                    contentType: _this.contentType,
                    success: function(data) {
                        data.success ? (_this.params.pageSize = data.data.pageSize, _this.totalCount = data.data.totalCount, 
                        _this.params.pageNum = data.data.pageNum, _this.done(_this, data.data), _this.setPages()) : alert(_this.url + "=>数据返回错误");
                    }
                };
                opt.data = Object.assign(opt.data, param), Prolog.ajax(opt);
            }(this, param), this) : void 0;
        }, plgPanel.prototype.done = function(callback) {
            return "function" == typeof callback ? this.done = callback : null;
        }, plgPanel.prototype.getPanelBodyId = function() {
            return "PlgPanelBody-" + this.Rand;
        }, plgPanel.prototype.getPanelId = function() {
            return "PlgPanel-" + this.Rand;
        }, plgPanel.prototype.appendPanelBody = function(ElementObjcet) {
            var isEmpty = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], ele = this.getElement.find(".layui-card-body");
            return isEmpty && ele.empty(), ele.append(ElementObjcet), this;
        }, window.PlgPanel = plgPanel;
    });
}(jQuery, layui);
"use strict";

!function($) {
    var plgSearch = function(options) {
        var defaultOptions = {
            renderer: null,
            title: "所有服务",
            menuData: null,
            leafClick: null,
            isI18n: window.isI18n || !1
        };
        options = Object.assign(defaultOptions, options);
        for (var key in options) this[key] = options[key];
        this.init(), this.renderer && this.renderTo(this.renderer);
    };
    function filterData(pid, Data) {
        return Object.values(Data).filter(function(item) {
            return item.parentMenuId == pid;
        });
    }
    plgSearch.prototype.init = function() {
        return this.vNode = [], this.vNode[0] = function() {
            return $('\n    <div class="product-all">\n    <span class="icon-box"><i class="icon iconfont p-icon-all"></i></span>\n    <span class="meun-name"> <a href="javascript:;">'.concat(this.title, '</a><i class="right-mover layui-icon layui-icon-right"></i>\n      </span>\n    </div>\n    '));
        }.call(this), this.vNode[1] = function() {
            return $('<div class="pr-open">\n    <div class="layui-layer-setwin"> <a class="layui-icon layui-icon-close" href="javascript:;"></a></div>\n    <div class="pr-search">\n    <span class="pr-icon-search-wrapper"><i class="layui-icon layui-icon-search"></i></span>\n\n    <input type="text" id="selectInput" class="pr-search-input" autocomplete="off" '.concat(this.isI18n && i18next.exists("请输入关键词") ? "data-i18n=[placeholder]请输入关键词" : "placeholder='请输入关键词'", '>\n    <div class="search-tip">\n        <p><span>以下是与“<strong></strong>”相关的产品：</span></p></div>\n    </div>\n\n    \x3c!-- 左边搜索出的列表---\x3e\n    <div class="pr-left">\n        <div id="keyUpList" class="keyUpList"></div>\n        <div id="menu-group" class="pr-meungroup-list">\n            \x3c!-- 全部菜单列表---\x3e\n        </div>\n    </div>\n\n    \x3c!-- 右边一级菜单---\x3e\n    <div class="pr-right">\n      <div class="scroll-nav">\n          <ul id="right-search-nav" class="right-sidebar">\n          \x3c!--展开的菜单--\x3e\n          </ul>\n      </div>\n    </div>\n\n    </div>'));
        }.call(this), function() {
            var _this = this, keyUpList = _this.vNode[1].find("#keyUpList");
            $(document).on("click", function(e) {
                _this.vNode[1].hasClass("pr-open-show") && _this.close();
            }), this.vNode[0].click(function(event) {
                event.stopPropagation(), event.preventDefault(), _this.vNode[1].toggleClass("pr-open-show");
            }), this.vNode[1].find("#selectInput").keyup(function(event) {
                event.stopPropagation(), event.preventDefault();
                var menuGroup = _this.vNode[1].find("#menu-group"), listItems = menuGroup.find(".list-item"), tip = $(this).next(".search-tip"), val = $(this).val();
                if (!(val = val.toUpperCase())) return tip.hide(), menuGroup.show(), void keyUpList.html("").hide();
                tip.show().find("strong").text(val), menuGroup.hide(), keyUpList.html("").show();
                var regCH = new RegExp("[\\u4E00-\\u9FFF]+", "g");
                regCH.test(val), listItems.find("a").each(function(i, item) {
                    var mid = $(item).attr("menu-id");
                    _this.isI18n && "en" == i18next.language ? str = $(item).text().toUpperCase().indexOf(val) : (-1 < $(item).text().indexOf(val) || -1 < $(item).attr("py-code").indexOf(val)) && _this.menuData[mid] && (keyUpList.append('\n              <div class="pr-meun-group"><div class="'.concat(_this.menuData[mid].leaf ? "list-item" : "list-item parent", '" >\n              ').concat(item.outerHTML, "</div></div>")), 
                    keyUpList.find("a").removeClass());
                });
            }), this.vNode[1].click(function(event) {
                if (event.stopPropagation(), event.preventDefault(), "layui-icon layui-icon-close" == event.target.className) return _this.close();
                var rightNav = $(event.target).parents("#right-search-nav");
                if (0 < rightNav.length) {
                    var sItem = $(event.target).parents(".s-item"), meunTop = function(meungroupList) {
                        var list = meungroupList.find(".list-item"), obj = {};
                        return list.each(function(index, item) {
                            var key = item.id;
                            obj[key] = parseInt(item.offsetTop);
                        }), obj;
                    }(_this.vNode[3]), thisHref = sItem.find("a").attr("menu-id"), list = _this.vNode[3].find(".list-item");
                    for (var key in sItem.addClass("active").siblings().removeClass("active"), list.each(function() {
                        $(this)[0].id == thisHref ? $(this).addClass("select") : $(this).removeClass("select");
                    }), meunTop) key == thisHref && $(".pr-left").animate({
                        scrollTop: meunTop[key]
                    });
                    return !1;
                }
                var menuGroup = $(event.target).parents("#menu-group");
                if ((0 < keyUpList.length || 0 < menuGroup.length) && "A" == event.target.tagName) {
                    var key = $(event.target).attr("menu-id"), listItem = $(event.target).parents(".list-item");
                    0 == _this.menuData[key].parentMenuId && (_this.vNode[1].find("#menu-group").show(), 
                    keyUpList.hide(), listItem = _this.vNode[3].find(".list-item a[menu-id=".concat(key, "]")).parent()), 
                    menuGroup.find(".list-item").removeClass("select"), listItem.addClass("select");
                    var pKey = listItem.children().attr("menu-id"), sItem = _this.vNode[2].find("a[menu-id=".concat(pKey, "]")).parents(".s-item");
                    return sItem.addClass("active").siblings().removeClass("active"), "function" == typeof _this.leafClick && ($(event.target).attr("menu-id"), 
                    _this.leafClick(key, _this.menuData[key], $(event.target)), _this.menuData[key].leaf && _this.close()), 
                    !1;
                }
            });
        }.call(this), this;
    }, plgSearch.prototype.loadData = function(data) {
        return this.vNode[2] = function(data, isI18n) {
            var sidebarLi = "";
            return Array.isArray(Object.values(data)) && Object.values(data).filter(function(item) {
                "0" == item.parentMenuId && (sidebarLi += '<li class="s-item '.concat(item.isActive ? "active" : "", '">\n                  <span class="icon-box"><i class="').concat(item.imagePath, '"></i></span>\n                  <span class="meun-name">\n                  <a href="').concat(item.blank ? item.path : item.hash ? "#" + item.hash : "javascript:;", '"  ').concat(item.blank ? "target=_blank" : "", "  ").concat(isI18n && i18next.exists(item.name.toString()) ? 'data-i18n="'.concat(item.name, '"') : "", " menu-id=").concat(item.menuId, ">").concat(item.name, "</a></span>\n                  </li>"));
            }), $(sidebarLi);
        }(data, this.isI18n), this.vNode[3] = function(mapData, isI18n) {
            if (mapData) {
                var index = 0, group = $('<div class="pr-meun-group"></div><div class="pr-meun-group"></div><div class="pr-meun-group"></div>'), treeData = filterData(0, mapData), recursive = function recursive(pid) {
                    var str = "";
                    return filterData(pid, mapData).forEach(function(ditem) {
                        str += '<div class="menu-text">\n                  <a py-code='.concat(ditem.PY_code, " href=").concat(ditem.hash && ditem.leaf ? "#" + ditem.hash : "javascript:;", "\n                   parentmenu-id=").concat(ditem.parentMenuId, "\n                   menu-id=").concat(ditem.menuId, "\n                   leaf=").concat(ditem.leaf, "\n                   ").concat(isI18n && i18next.exists(ditem.name.toString()) ? "data-i18n=".concat(ditem.name) : "", ">\n                   ").concat(ditem.name, "</a>\n                 </div>"), 
                        ditem.leaf || (str += recursive(ditem.menuId));
                    }), str;
                };
                for (var key in treeData) {
                    var ele = '<div class="list-item '.concat(treeData[key].isActive ? "select" : "", '" id=').concat(treeData[key].menuId, ">\n                    <a py-code=").concat(treeData[key].PY_code, " href=").concat(treeData[key].hash && treeData[key].leaf ? "#" + treeData[key].hash : "javascript:;", " menu-id=").concat(treeData[key].menuId, " ").concat(isI18n && i18next.exists(treeData[key].name.toString()) ? "data-i18n=".concat(treeData[key].name) : "", " parentmenu-id=").concat(treeData[key].parentMenuId, ' class="list-title" leaf=').concat(treeData[key].leaf, ">\n                      ").concat(treeData[key].name, "</a>");
                    ele += recursive(treeData[key].menuId), ele += "</div>", index % 3 == 0 ? group.eq(0).append(ele) : index % 3 == 1 ? group.eq(1).append(ele) : index % 3 == 2 && group.eq(2).append(ele), 
                    index++;
                }
                return $(group).find(".menu-text>a[leaf='false']").parent().remove(), $(group);
            }
        }(data, this.isI18n), this.vNode[1].find("#right-search-nav").append(this.vNode[2]), 
        this.vNode[1].find("#menu-group").append(this.vNode[3]), this.menuData = data, this;
    }, plgSearch.prototype.renderTo = function(domId) {
        return this.renderer = domId, $("#" + this.renderer).addClass("plg-search").empty().append(this.vNode[0]), 
        $("body").append(this.vNode[1]), this;
    }, plgSearch.prototype.close = function() {
        var className = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "pr-open-show";
        this.vNode[1].removeClass(className);
    }, window.PlgSearch = plgSearch, $.fn.initPlgSearch = function(options) {
        return new plgSearch(this, options);
    };
}(jQuery);
"use strict";

!function($, layui) {
    $.fn.PlgSelectPlusTags = function(options) {
        return new plgSelectPlusTags(options);
    };
    var plgSelectPlusTags = function(options) {
        this.render(options);
    };
    plgSelectPlusTags.prototype.render = function(options) {
        if ($("#" + options.renderer).after('<div class="layui-input-block plg-select-tags"></div>'), 
        options.el = "#" + options.renderer, delete options.renderer, options.isAll) {
            var temKey = options.valueName, temArr = [];
            options.data.forEach(function(val) {
                temArr.push(val[temKey]);
            }), options.values = temArr;
        }
        return options.hasOwnProperty("isAll") && delete options.isAll, layui.selectPlus.render(options);
    }, window.PlgSelectPlusTags = plgSelectPlusTags;
}(jQuery, layui);
"use strict";

function _typeof(obj) {
    return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
        return typeof obj;
    } : function(obj) {
        return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    })(obj);
}

!function() {
    var plgSidebar = function(ele, opts) {
        var self = this, _acviveId = null, _isHover = !0, ClassMain = {
            dom: null,
            documentPanel: null,
            meunPanelThis: null,
            template: function(meunPanelThis) {
                var opts = this.opes;
                return $('<div class="plg-sidebar">\n                <div class="main-nav">\n                    <div id="meunSoroll" class="layui-side-scroll">\n\n                            <div class="plg-logo" >\n                            <a class="logo-path '.concat("plg" == opts.logo && "plg-logo", '" ></a>\n                            <i id="plg-logo-fold" class="plg_anticon layui-icon layui-icon-shrink-right"></i>\n                            </div>\n                        \x3c!-- 左侧导航区域（可配合layui已有的垂直导航） --\x3e\n                        <div class="pr-open" data-type="hoot-click">\n                            <div class="layui-layer-setwin">\n                                <a class="layui-icon layui-icon-close" href="javascript:;"></a>\n                            </div>\n                            <div class="pr-search">\n                                <span class="pr-icon-search-wrapper"><i class="layui-icon layui-icon-search\n            "></i></span>\n\n                                <input type="text" id="selectInput" class="pr-search-input"\n                                ').concat(this.isI18n && i18next.exists("请输入关键词") ? "data-i18n=[placeholder]请输入关键词" : "placeholder='请输入关键词'", '\n                            >\n\n                                <div class="search-tip">\n                                    <p><span>以下是与“<strong></strong>”相关的产品：</span></p></div>\n\n                            </div>\n                            <div class="pr-left">\n                                <div id="keyUpList" class="keyUpList"></div>\n                                <div class="pr-meungroup-list">\n                                </div>\n                            </div>\n                            <div class="pr-right">\n                                <div class="scroll-nav">\n                                    <ul class="right-sidebar">\n\n                                    </ul>\n                                </div>\n                            </div>\n                        </div>\n                        <div class="product-all" data-type="hoot-click">\n                                    <span class="icon-box">\n                                            <i class="icon iconfont p-icon-all"></i>\n                                    </span>\n                            <span class="meun-name">\n                                        <a class="" href="javascript:;" ').concat(this.isI18n && i18next.exists("所有服务") ? 'data-i18n="所有服务"' : "", '>所有服务</a>\n                                        <i class="right-mover layui-icon layui-icon-right\n            "></i>\n                                    </span>\n                        </div>\n                        <div class="nav-last" data-type="hoot-click">\n                            <ul id="sidebar" class="sidebar">\n\n\n\n\n                            </ul>\n                            <div class="nav-hover-child" >\n                            \x3c!-- 二级菜单 --\x3e\n                            <div class="layui-side">\n                                    \x3c!--<div class="nav-title"></div>--\x3e\n                                    <ul class="body-nav" lay-filter="test"></ul>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            '));
            },
            mainNav: function(parentData) {
                if (parentData) {
                    var ele = "";
                    return parentData[0].filter(function(item) {
                        "0" === item.parentMenuId && (ele += '\n                <li class="s-item" id='.concat(item.id, " menu-id=").concat(item.menuId, '>\n                       <span class="icon-box">\n                         <i class="').concat(item.imagePath, '"></i>\n                     </span>\n                      <span class="meun-name"><a href="').concat(item.leaf ? item.path : "javascript:;", '"\n                      ').concat(self.isI18n && i18next.exists(item.name.toString()) ? "data-i18n=".concat(item.name) : "", '\n                      title="').concat(item.name, '" alt="').concat(item.name, '"\n                      >').concat(self.isI18n && i18next.exists(item.name.toString()) ? "" : item.name, "</a>").concat(item.leaf ? "" : '<i class="right-mover layui-icon layui-icon-right" style="right: 0.28rem;"></i>', "</span>\n                 </li>\n              "));
                    }), ele;
                }
            },
            resetOpenMenuList: function(ele, data) {
                if (data) {
                    var group = $('<div class="pr-meun-group"></div><div class="pr-meun-group"></div><div class="pr-meun-group"></div>');
                    $(this.documentPanel[0]).find(".right-sidebar").html("").append(this.mainNav(data)), 
                    data[0].forEach(function(item, inxex) {
                        var ele = '<div class="list-item" id='.concat(item.menuId, '>\n            <a href="').concat(item.leaf ? item.path : "javascript:;", '"\n            menu-id=').concat(item.menuId, "\n            parentmenuid=").concat(item.parentMenuId, '\n            class="list-title"\n            ').concat(self.isI18n && i18next.exists(item.name.toString()) ? "data-i18n=".concat(item.name) : "", '\n            title="').concat(item.name, '" alt="').concat(item.name, '"\n            >\n            ').concat(self.isI18n && i18next.exists(item.name.toString()) ? "" : item.name, "</a>");
                        data[item.menuId] && data[item.menuId].forEach(function(citem) {
                            ele += '<div class="menu-text">\n                                    <a href='.concat(citem.path || "javascript:;", "\n                                     menu-id=").concat(citem.menuId, "\n                                     parentmenuid=").concat(citem.parentMenuId, "\n                                     leaf=").concat(citem.leaf, "\n                                     ").concat(self.isI18n && i18next.exists(citem.name.toString()) ? "data-i18n=".concat(citem.name) : "", '\n                                      title="').concat(citem.name, '" alt="').concat(citem.name, '"\n                                     >\n                                     ').concat(self.isI18n && i18next.exists(citem.name.toString()) ? "" : citem.name, "\n                                    </a>\n\n                </div>"), 
                            data[citem.menuId] && data[citem.menuId].forEach(function(ditem) {
                                ele += '<div class="menu-text">\n                                         <a href='.concat(ditem.path || "javascript:;", "\n                                          menu-id=").concat(ditem.menuId, '\n                                          title="').concat(ditem.name, '" alt="').concat(ditem.name, '"\n                                          parentmenuid=').concat(ditem.parentMenuId, "\n                                          leaf=").concat(ditem.leaf, "\n                                          ").concat(self.isI18n && i18next.exists(ditem.name.toString()) ? "data-i18n=".concat(ditem.name) : "", "\n                                          >\n                                          ").concat(self.isI18n && i18next.exists(ditem.name.toString()) ? "" : ditem.name, "\n                                            </a>\n                                         </div>");
                            });
                        }), ele += "</div>", inxex % 3 == 0 ? group.eq(0).append(ele) : inxex % 3 == 1 ? group.eq(1).append(ele) : inxex % 3 == 2 && group.eq(2).append(ele);
                    }), group.find(".menu-text>a[leaf='false']").hide(), ele.append(group);
                }
            },
            setOpenAll: function(getData) {
                if (getData) {
                    var list = this.dom.meungroupList, parentDatas = getData.parentData, keyUpList = $(this.documentPanel[0]).find("#keyUpList");
                    this.resetOpenMenuList(list, parentDatas);
                    var regCH = new RegExp("[\\u4E00-\\u9FFF]+", "g");
                    $(this.documentPanel[0]).find("#selectInput").keyup(function(e) {
                        var val = $(this).val();
                        if (!(val = val.toUpperCase())) return $(this).next(".search-tip").hide(), list.show(), 
                        void keyUpList.html("").hide();
                        $(this).next(".search-tip").show().find("strong").text(val), list.hide();
                        var ele = "";
                        for (var key in getData.mapAll) {
                            var item = getData.mapAll[key];
                            0 <= (self.isI18n && "en" == i18next.language ? i18next.t(item.name).toUpperCase().indexOf(val) : regCH.test(val) ? item.name.indexOf(val) : item.PY_code.indexOf(val)) && item.leaf && (ele += '<div class="pr-meun-group">\n                            <div class="list-item" id='.concat(item.menuId, ' >\n                                <div class="menu-text">\n                                    <a title="').concat(item.name, '" alt="').concat(item.name, '" ').concat(self.isI18n ? "data-i18n=".concat(item.name) : "", " href=").concat(item.path || "javascript:;", " parentmenuid=").concat(item.parentMenuId, " menu-id=").concat(item.menuId, " >\n                                     ").concat(item.name, "\n                                    </a>\n                                 </div>\n                                 </div>\n                            </div>"));
                        }
                        list.hide(), keyUpList.html("").show().append(ele), keyUpList.localize && keyUpList.localize();
                    });
                }
            },
            meunTopObj: function(obj) {
                var list = this.dom.meungroupList.find(".list-item");
                return obj = {}, list.each(function(index, item) {
                    var key = item.id;
                    obj[key] = parseInt(item.offsetTop);
                }), obj;
            },
            removerShowList: function() {
                this.dom && this.dom.meunSoroll.removeClass("showList");
            },
            clickChild: function(callbakc) {
                var othis, _this = this, bodyNav = _this.dom.bodyNav, _getData = _this.meunPanelThis.getData;
                _this.dom.bodyNav.on("click", "a", function(e) {
                    e.stopPropagation(), e.preventDefault(), othis = $(this);
                    var mid = _acviveId = othis.attr("menu-id");
                    if (0 < othis.parent("li").length && !_getData.mapAll[mid].leaf) return othis.parent("li").toggleClass("itemeds"), 
                    _isHover = !1;
                    _this.dom.meungroupList.find("a[menu-id='" + mid + "']").trigger("click");
                }), _this.dom.prLeft.on("click", "a", function(e) {
                    e.stopPropagation(), e.preventDefault(), othis = $(this);
                    var mid = _acviveId = $(this).attr("menu-id"), bodyNav_this = bodyNav.find("a[menu-id='" + mid + "']"), callbakcData = (bodyNav_this.parent(), 
                    bodyNav_this.siblings(".nav-child"), {
                        getCurrent: _getData.mapAll[mid]
                    }), pid = othis.parents(".list-item").attr("id"), leaf = _getData.mapAll[mid].leaf;
                    othis.attr("href");
                    othis.parents(".pr-open").find(".right-sidebar .s-item[menu-id=" + pid + "] a").trigger("click"), 
                    _this.updateChildMeun(pid, mid), leaf && (_this.dom.meunSoroll.find(".nav-last").attr("data-show", ""), 
                    _this.removerShowList()), callbakc && callbakc(callbakcData, e);
                });
            },
            EventHanlder: function(menuObj) {
                var _this = this;
                $(document).on("click", function() {
                    _this.dom.meunSoroll.hasClass("showList") && _this.removerShowList();
                }), _this.dom.documentPanel.find("#plg-logo-fold").click(function(event) {
                    $(this).hasClass("layui-icon-shrink-right") ? ($(this).removeClass("layui-icon-shrink-right").addClass("layui-icon-spread-left"), 
                    $("body").addClass("plg-open-hover")) : ($(this).removeClass("layui-icon-spread-left").addClass("layui-icon-shrink-right"), 
                    $("body").removeClass("plg-open-hover"));
                }), _this.dom.meunSoroll.find(".nav-last").hover(function(event) {
                    return _isHover = !0, _this.removerShowList(), 0 < _this.dom.bodyNav.find("li").length && $(this).attr("data-show", "show-child"), 
                    !1;
                }, function(event) {
                    return _isHover && $(this).attr("data-show", ""), !(_isHover = !0);
                }), _this.dom.meunSoroll.on("click", "[data-type='hoot-click']", function(e) {
                    e.stopPropagation(), e.preventDefault();
                    var eve = e.target;
                    switch ($(this).attr("class")) {
                      case "product-all":
                        _this.dom.meunSoroll.toggleClass("showList");
                        break;

                      case "pr-open":
                        if (0 < $(eve).parents(".pr-left").length || "A" != eve.nodeName) return;
                        if ("layui-layer-setwin" == eve.parentNode.className) return void _this.removerShowList();
                        var meunTop = _this.meunTopObj(), sItem = $(eve).parents(".s-item"), thisHref = sItem.attr("menu-id"), list = $(".pr-meungroup-list").find(".list-item");
                        for (var key in sItem.addClass("active").siblings().removeClass("active"), list.each(function() {
                            $(this)[0].id == thisHref ? $(this).addClass("select") : $(this).removeClass("select");
                        }), meunTop) key == thisHref && _this.dom.prLeft.animate({
                            scrollTop: meunTop[key]
                        });
                        break;

                      case "nav-last":
                        var menuid = $(eve).parents(".s-item").attr("menu-id");
                        if (!menuid) return;
                        var leaf = Boolean(menuObj.mapAll[menuid].leaf);
                        if (_this.dom.meunSoroll.find(".nav-last").attr("data-show", ""), _this.removerShowList(), 
                        0 < $(eve).parents("#sidebar").length && _this.dom.meungroupList.find("a[menu-id='" + menuid + "']").trigger("click"), 
                        leaf) return !1;
                        setTimeout(function() {
                            _this.dom.meunSoroll.find(".nav-last").attr("data-show", "show-child");
                        }, 200);
                        break;

                      default:
                        return !1;
                    }
                });
            },
            updateChildMeun: function(pid, mid) {
                var _this = this;
                pid = pid;
                $("[menu-id=" + pid + "]").addClass("active").siblings().removeClass("active");
                var _getData = _this.meunPanelThis.getData;
                if (_this.dom.bodyNav.empty(), pid) {
                    if (_getData.mapAll[pid].leaf && 0 == _getData.mapAll[mid].parentMenuId) return;
                    var parentData = _getData.parentData;
                    parentData[pid] && parentData[pid].forEach(function(item) {
                        var oliClass = "item h-link";
                        mid && item.menuId == mid && (oliClass = "item h-link active-this itemeds");
                        var oli = $("<li>", {
                            class: oliClass
                        }), oa = $("<a>", {
                            href: item.path || "javascript:;",
                            "menu-id": item.menuId,
                            leaf: item.leaf,
                            level: item.level,
                            id: item.id,
                            title: item.name,
                            alt: item.name,
                            parentMenuId: item.parentMenuId
                        }).html("<span>".concat(item.name, "</span>")), _is = self.isI18n && i18next.exists(item.name.toString());
                        if (_is && oa.find("span").attr("data-i18n", item.name), oli.append(oa), !item.leaf && parentData[item.parentMenuId] && 0 < parentData[item.parentMenuId].length) {
                            var navchild = '<dl class="nav-child">';
                            parentData[item.menuId] && parentData[item.menuId].forEach(function(citem) {
                                navchild += "<dd class= ".concat(mid && citem.menuId == mid ? "active-this" : "", " >\n                        <a ").concat(_is ? "data-i18n=".concat(citem.name) : "", "\n                        href=").concat(citem.path || "javascript:;", " leaf=").concat(citem.leaf, '\n                        alt="').concat(citem.name, '"\n                        title="').concat(citem.name, '"\nmain-id=').concat(item.parentMenuId, " parentMenuId=").concat(citem.parentMenuId, " menu-id=").concat(citem.menuId, ">").concat(_is ? "" : citem.name, "</a></dd>");
                            }), navchild += "</dl>", oa.append('<i class="right-mover layui-icon layui-icon-right"></i>'), 
                            oli.append(navchild), mid && oli.find("dd").each(function(index, item) {
                                if ("active-this" == $(item).attr("class")) return oli.addClass("active-this").addClass("itemeds"), 
                                oli.find(".nav-child").show();
                            });
                        }
                        _this.dom.bodyNav.append(oli), _this.dom.bodyNav.localize && _this.dom.bodyNav.localize();
                    });
                }
            },
            initPanel: function(meunPanelThis, opes) {
                return this.meunPanelThis = meunPanelThis, this.opes = opes, this.documentPanel = this.template(this), 
                this.documentPanel && (this.dom = {
                    documentPanel: this.documentPanel,
                    meunSoroll: this.documentPanel.find("#meunSoroll"),
                    $sidebar: this.documentPanel.find("#sidebar"),
                    bodyNav: this.documentPanel.find(".body-nav"),
                    meungroupList: this.documentPanel.find(".pr-meungroup-list"),
                    prLeft: this.documentPanel.find(".pr-left"),
                    $tabli: $(".layui-tab-title li"),
                    $nav_hover_child: this.documentPanel.find(".nav-hover-child")
                }), this.documentPanel;
            }
        };
        this.isI18n = window.isI18n || !1, this.getActiveId = function() {
            return _acviveId;
        };
        this.getFun = ClassMain;
        var config = {
            isTrigger: !1,
            logo: null,
            url: null,
            type: "get",
            dataType: "json",
            params: null,
            defaults: null,
            menuClick: null,
            tabsConfing: null
        };
        1 == arguments.length ? (this.opts = ele, this.opts = $.extend(!0, config, this.opts), 
        this.init(this.opts)) : 2 == arguments.length && (this.ele = ele, this.opts = opts, 
        this.opts = $.extend(!0, config, this.opts), this.init(), this.renderTo(this.ele)), 
        this.opts.tabsConfing && (this.navTabs = new PlgTabs(this.opts.tabsConfing));
    };
    plgSidebar.prototype.setMapData = function() {
        var index, dataAll, _this = this, closeLoad = (index = layer.load(2, {
            shade: [ .6, "#fff" ]
        }), function() {
            layer.close(index);
        }), mapAll = null, parentData = null;
        mapAll = {};
        var obj = null;
        return new Promise(function(resolve, _error) {
            Prolog.ajax({
                type: _this.opts.type,
                url: _this.opts.url,
                dataType: _this.opts.dataType,
                data: _this.opts.params,
                success: function(res) {
                    res.success && ((dataAll = res.data).forEach(function(item, index) {
                        item.PY_code || (item.PY_code = pinyin.makePy(item.name)[0]);
                    }), parentData = function(dataAll) {
                        var map = {};
                        return dataAll.forEach(function(item) {
                            map[item.parentMenuId] || (map[item.parentMenuId] = []), map[item.parentMenuId].push(item);
                        }), map;
                    }(dataAll), dataAll.forEach(function(item) {
                        mapAll[item.menuId] = item;
                    }), obj = {
                        dataAll: dataAll,
                        mapAll: mapAll,
                        parentData: parentData
                    }), obj ? resolve(obj) : _error(obj);
                },
                error: function(err) {
                    layer.msg("数据加载失败!"), _error(obj);
                },
                complete: function() {
                    closeLoad();
                }
            });
        });
    }, plgSidebar.prototype.init = function(opts) {
        var _class = this.getFun;
        return "object" === _typeof(this.opts) && (this.opts = $.extend(!0, this.config, this.opts), 
        this.opts.url, this.getElement = _class.initPanel(this, this.opts), this.promiseGetDate = this.setMapData()), 
        this;
    }, plgSidebar.prototype.renderTo = function(domId) {
        var _this = this, _class = this.getFun, documentPanel = this.getFun.documentPanel;
        return $("#" + domId).append(documentPanel), _this.promiseGetDate.then(function(menuObj) {
            return menuObj ? (_class.meunPanelThis.getData = menuObj, _class.dom.$sidebar.append(_class.mainNav(menuObj.parentData)), 
            _class.setOpenAll(menuObj), _class.EventHanlder(menuObj), "function" == typeof _this.opts.menuClick ? _class.clickChild(_this.opts.menuClick.bind(_this)) : _class.clickChild(), 
            menuObj) : null;
        }).then(function(menudata) {
            if (menudata) {
                if (_this.opts.isTrigger) {
                    var menuid = $("#" + domId).find(".sidebar li:first-child").addClass("active").attr("menu-id");
                    _this.getFun.updateChildMeun(null, menuid);
                }
                if (_this.opts.defaults) {
                    var defaults = menudata.mapAll[_this.opts.defaults];
                    defaults && _this.getFun.dom.meungroupList.find("a[menu-id='" + defaults.menuId + "']").trigger("click");
                }
            }
        }), this;
    }, window.PlgSideAccordion = plgSidebar, $.fn.initPlgSideAccordion = function(opts) {
        return new plgSidebar(this, opts);
    };
}();
"use strict";

!function($) {
    var plgSidebar = function(options) {
        var _this = this;
        _this.options = options, _this.getActiveId = function() {
            return vipspa.indexid;
        };
        var object, config = {
            data: null,
            renderer: null,
            url: null,
            isI18n: window.isI18n || !1,
            ajaxInit: {
                url: null,
                type: "get",
                dataType: "json"
            },
            logo: "",
            route: !1,
            menuClick: null,
            routerConfig: null
        };
        _this.options = $.extend(!0, config, _this.options), _this.fold = !0, _this.options.data ? _this.promiseGetDate = new Promise(function(resolve) {
            resolve(parseData(_this.options.data));
        }) : _this.promiseGetDate = (object = _this.options.ajaxInit, new Promise(function(resolve, error) {
            var close = PlgDialog.loading2(), treedata = null;
            object.success = function(response) {
                response.success ? treedata = parseData(response.data) : layer.msg("数据加载失败!"), treedata ? resolve(treedata) : error();
            }, object.error = function(XMLHttpRequest, textStatus, errorThrown) {}, object.complete = function() {
                close();
            }, Prolog.ajax(object);
        })), _this.document = function(mapData, opts) {
            var opts = this.options, tpl = (this.mapData, $('<div class="plg-sidebar">\n            <div class="main-nav">\n                <div id="meunSoroll" class="layui-side-scroll">\n                        <div class="plg-logo" >\n                        <a class="logo-path '.concat("plg" == opts.logo && "plg-logo", '" ></a>\n                        <i id="plg-logo-fold"  class="plg_anticon layui-icon ').concat(this.fold ? "layui-icon-shrink-right" : "layui-icon-spread-left", '"></i>\n                        </div>\n                    \x3c!-- 左侧打开全部导航区域 --\x3e\n                    <div class="pr-open" data-type="hoot-click">\n                        <div class="layui-layer-setwin">\n                            <a class="layui-icon layui-icon-close" href="javascript:;"></a>\n                        </div>\n                        <div class="pr-search">\n                            <span class="pr-icon-search-wrapper"><i class="layui-icon layui-icon-search\n            "></i></span>\n\n                            <input type="text" id="selectInput" class="pr-search-input" ').concat(opts.isI18n && i18next.exists("请输入关键词") ? "data-i18n=[placeholder]请输入关键词" : "placeholder='请输入关键词'", '>\n                            <div class="search-tip">\n                                <p><span>以下是与“<strong></strong>”相关的产品：</span></p></div>\n                        </div>\n                        <div class="pr-left">\n                            <div id="keyUpList" class="keyUpList"></div>\n                            <div class="pr-meungroup-list">\n                                \x3c!-- 全部菜单列表---\x3e\n\n\n                            </div>\n                        </div>\n                        <div class="pr-right">\n                            <div class="scroll-nav">\n                                <ul class="right-sidebar">\n\n                                \x3c!--展开的菜单--\x3e\n\n\n                                </ul>\n                            </div>\n                        </div>\n                    </div>\n                    <div class="product-all" data-type="hoot-click">\n                                <span class="icon-box">\n                                        <i class="icon iconfont p-icon-all"></i>\n                                </span>\n                        <span class="meun-name">\n                                    <a  href="javascript:;" ').concat(opts.isI18n && i18next.exists("所有服务") ? 'data-i18n="所有服务"' : "", '>所有服务</a>\n                                    <i class="right-mover layui-icon layui-icon-right\n            "></i>\n                                </span>\n                    </div>\n                    <div class="nav-last" data-show="">\n                        <ul id="sidebar" class="sidebar">\n\n                           \x3c!--一级菜单--\x3e\n\n                        </ul>\n                     <div class="nav-hover-child" >\n                        \x3c!-- 二级菜单 --\x3e\n                        <div class="layui-side">\n\n                                      \x3c!-- 当前hover二级菜单列表---\x3e\n\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            </div>\n            ')));
            return $().localize && tpl.localize(), $(tpl);
        }.call(_this), _this.init(_this.document), _this.options.renderer && _this.renderTo(_this.options.renderer), 
        _this.promiseGetDate.then(function(data) {
            vipspa.routerMap = Object.assign(vipspa.routerMap, data.routeSetting), vipspa.__defineGetter__("mapData", function() {
                return data.treedata.mapData;
            }), vipspa.loadRoute();
        }), vipspa.__defineSetter__("mapData", function(newValue) {
            newValue && _this.reset(newValue);
        }), _this.options.routerConfig && vipspa.start(_this.options.routerConfig);
    };
    function filterData(pid, Data) {
        return Object.values(Data).filter(function(item) {
            return item.parentMenuId == pid;
        });
    }
    function mapUpdateChildrenNan(id, mapData, dom, isI18n) {
        var parent = mapData[mapData[id].parentMenuId];
        parent ? "0" !== parent.parentMenuId && (parent = mapData[parent.parentMenuId]) : parent = mapData[id];
        parent.children = function tree(pid) {
            var data = [];
            return Object.values(mapData).forEach(function(item) {
                if (pid == item.parentMenuId && (data.push(item), !item.leaf)) return item.children = tree(item.menuId);
            }), data;
        }(parent.menuId);
        var treeData = parent, sidebarLi = '<ul class="body-nav" parentmenu-id='.concat(parent.menuId, " name=").concat(parent.name, ">");
        for (var key in treeData = treeData.children) sidebarLi += '<li class="item h-link '.concat(treeData[key].isActive ? "active-this" : "", " ").concat(treeData[key].isActive && treeData[key].children ? "itemeds" : "", '">\n            <a href="').concat(treeData[key].blank ? treeData[key].path : treeData[key].hash ? "#" + treeData[key].hash : "javascript:;", '"  ').concat(treeData[key].blank ? "target=_blank" : "", " menu-id=").concat(treeData[key].menuId, ' leaf="').concat(treeData[key].leaf, '" level="').concat(treeData[key].level, '"><span ').concat(isI18n && i18next.exists(treeData[key].name.toString()) ? "data-i18n=".concat(treeData[key].name) : "", ">").concat(treeData[key].name, "</span>\n            ").concat(treeData[key].children && !treeData[key].leaf ? '<i class="right-mover layui-icon layui-icon-right"></i>' : "", "\n            </a>\n            ").concat(treeData[key].children && !treeData[key].leaf ? '<dl class="nav-child" parentmenu-id='.concat(treeData[key].menuId, ">\n                        ").concat(treeData[key].children.map(function(childItem, index, arr) {
            return "<dd ".concat(childItem.isActive ? 'class="active-this"' : "", ">\n                            <a href=").concat(childItem.blank ? childItem.path : childItem.hash ? "#" + childItem.hash : "javascript:;", "\n                            ").concat(childItem.blank ? "target=_blank" : "", " leaf=").concat(childItem.leaf, " menu-id=").concat(childItem.menuId, "  level=").concat(childItem.level, " ").concat(isI18n && i18next.exists(childItem.name.toString()) ? "data-i18n=".concat(childItem.name) : "", ">").concat(childItem.name, "</a></dd>");
        }).join(""), "\n                  </dl>") : "", "\n            </li>");
        return sidebarLi += "</ul>", dom ? (dom.bodyNav.html(sidebarLi), $().localize && dom.bodyNav.localize()) : ($(".nav-hover-child .layui-side").html(sidebarLi), 
        $().localize && $(".nav-hover-child .layui-side").localize()), sidebarLi;
    }
    var _isHover = !0;
    function EventHanlder(dom) {
        var _this = this, opts = this.options, mapData = function() {
            return vipspa.mapData;
        };
        $(document).on("click", function(e) {
            dom.meunSoroll.hasClass("showList") && removerShowList(dom.meunSoroll);
        }), dom.logoFold.click(function(event) {
            _this.fold ? ($(this).removeClass("layui-icon-shrink-right").addClass("layui-icon-spread-left"), 
            $("body").addClass("plg-open-hover")) : ($(this).removeClass("layui-icon-spread-left").addClass("layui-icon-shrink-right"), 
            $("body").removeClass("plg-open-hover")), _this.fold = !_this.fold;
        }), dom.navLast.hover(function(event) {
            _isHover = !0;
            var id = $(this).find("li.s-item.active a").attr("menu-id");
            if (!id || !vipspa.mapData[id].leaf) return removerShowList(dom.meunSoroll), $(this).attr("data-show", "show-child"), 
            !1;
            dom.navLast.attr("data-show", "");
        }, function() {
            return _isHover && $(this).attr("data-show", ""), !1;
        }), dom.prLeft.on("click", ".list-item a", function(event) {
            var id = $(this).attr("menu-id"), pid = $(this).attr("parentmenu-id");
            if (event.preventDefault(), !mapData()[id].leaf || !mapData()[id].hash) return $(".scroll-nav").find("a[menu-id='" + mapData()[id].menuId + "']").click(), 
            !1;
            if (location.hash = "#" + mapData()[id].hash, mapData()[id].leaf && "0" !== mapData()[id].parentMenuId) return mapUpdateChildrenNan(id, mapData(), dom, opts.isI18n), 
            void removerShowList(dom.meunSoroll);
            mapData()[id].parentMenuId, pid = function result(pid) {
                var obj = mapData()[pid];
                if (obj && "0" !== obj.parentMenuId) return result(obj.parentMenuId);
                mapUpdateChildrenNan(id, mapData(), dom, opts.isI18n);
                var slfe = dom.bodyNav.find("a[menu-id='".concat(id, "']"));
                return slfe.parent().is("dd") && (slfe.parents("li.item ").addClass("itemeds"), 
                slfe.parents("dl.nav-child").show()), slfe.parent().addClass("active-this").siblings().removeClass("active-this"), 
                pid;
            }(pid), removerShowList(dom.meunSoroll);
        }), dom.sidebar.on("click", "li", function(event) {
            var slfe = $(this), id = $(this).find("a").attr("menu-id");
            vipspa.indexid = id;
            var i = $(this).index();
            if ($(this).addClass("active").siblings().removeClass("active"), opts.index = i, 
            vipspa.mapData[id].leaf) return dom.navLast.attr("data-show", ""), location.hash = $(this).find("a").attr("href"), 
            void (opts.menuClick && opts.menuClick.call(_this, slfe));
            event.preventDefault(), dom.navLast.attr("data-show", ""), mapUpdateChildrenNan(id, mapData(), dom, opts.isI18n), 
            setTimeout(function() {
                dom.navLast.attr("data-show", "show-child");
            }, 200), opts.menuClick && opts.menuClick.call(_this, slfe);
        }), dom.bodyNav.on("click", "li a", function(event) {
            event.stopPropagation();
            var slfe = $(this), leaf = "true" == slfe.attr("leaf"), child = slfe.siblings("dl.nav-child");
            if (vipspa.indexid = slfe.attr("menu-id"), slfe.parent().addClass("active-this").siblings().removeClass("active-this").find("dd").removeClass("active-this").removeClass("itemeds"), 
            slfe.parent().is("dd") && slfe.parents("li.item").addClass("active-this").siblings().removeClass("active-this").removeClass("itemeds"), 
            opts.menuClick && opts.menuClick.call(_this, slfe), !leaf && 0 < child.length) return slfe.parent().addClass("active-this").siblings().removeClass("active-this").removeClass("itemeds"), 
            child.slideToggle("fast"), slfe.parent().toggleClass("itemeds").siblings().children(".nav-child").slideUp(), 
            _isHover = !1;
            "_blank" != $(this).attr("target") ? "javascript:;" !== $(this).attr("href") ? (dom.navLast.attr("data-show", ""), 
            location.hash = $(this).attr("href")) : event.preventDefault() : dom.navLast.attr("data-show", "");
        }), dom.meunSoroll.on("click", "[data-type='hoot-click']", function(event) {
            event.stopPropagation(), event.preventDefault();
            var eve = event.target;
            switch ($(this).attr("class")) {
              case "product-all":
                dom.meunSoroll.toggleClass("showList");
                break;

              case "pr-open":
                "layui-layer-setwin" == eve.parentNode.className && removerShowList(dom.meunSoroll);
                var meunTop = meunTopObj(dom.meungroupList), sItem = $(eve).parents(".s-item"), thisHref = sItem.find("a").attr("menu-id"), list = dom.meungroupList.find(".list-item");
                for (var key in sItem.addClass("active").siblings().removeClass("active"), list.each(function() {
                    $(this)[0].id == thisHref ? $(this).addClass("select") : $(this).removeClass("select");
                }), meunTop) key == thisHref && $(".pr-left").animate({
                    scrollTop: meunTop[key]
                });
                document.addEventListener("keyup", function() {});
                break;

              default:
                return !1;
            }
        });
    }
    function setOpenKeyup(dom) {
        var isI18n = this.options.isI18n, regCH = new RegExp("[\\u4E00-\\u9FFF]+", "g");
        dom.meunSoroll.find("#selectInput").keyup(function(e) {
            var keyUpList = dom.prLeft.find("#keyUpList"), tip = $(this).next(".search-tip"), val = $(this).val();
            if (!(val = val.toUpperCase())) return tip.hide(), dom.meungroupList.show(), void keyUpList.html("").hide();
            tip.show().find("strong").text(val), dom.meungroupList.hide(), keyUpList.html("").show(), 
            dom.meungroupList.find(".list-item").find("a").each(function(i, item) {
                0 <= (isI18n && "en" == i18next.language ? $(item).text().toUpperCase().indexOf(val) : regCH.test(val) ? $(item).text().indexOf(val) : $(item).attr("py-code").indexOf(val)) && Boolean($(item).attr("leaf")) && (keyUpList.append('<div class="pr-meun-group"><div class="list-item">'.concat(item.outerHTML, "</div></div>")), 
                keyUpList.find("a").removeClass());
            });
        });
    }
    function removerShowList(dom, className) {
        className || (className = "showList"), dom.removeClass(className);
    }
    function parseData(da) {
        var routeSetting = {}, treedata = function(data) {
            data.forEach(function(item, index) {
                delete item.children, delete item.type, delete item.queryId, delete item.operateType, 
                delete item.lastModifyTime, delete item.helpCode, delete item.creatorName, delete item.creatorId, 
                delete item.createTime, delete item.modifierId, delete item.modifierName, delete item.sort, 
                item.enable || delete data[index];
            });
            var map = {};
            return data.forEach(function(item) {
                map[item.menuId] = item;
            }), {
                mapData: map
            };
        }(da);
        return da.forEach(function(item) {
            if (!item.blank && (item.PY_code = pinyin.makePy(item.name)[0], item.leaf && item.path)) {
                if (!item.hash) {
                    var index = item.path.indexOf("?");
                    item.hash = item.path, -1 < index && (item.hash = item.path.substr(0, index - 1)), 
                    item.hash = item.hash.substr(1).split("/"), item.hash = item.hash[item.hash.length - 2] + "/" + item.hash[item.hash.length - 1], 
                    -1 != item.hash.indexOf("=") && (item.hash = item.hash.match("([^=]+)$")[0]);
                }
                var obj = function resultName(mid) {
                    var arr = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : [];
                    var idarr = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : [];
                    var mapData = treedata.mapData;
                    var item = mapData[mid];
                    if (item && (arr.unshift(item.name), idarr.unshift(item.menuId), 0 != item.parentMenuId)) return resultName(item.parentMenuId, arr, idarr);
                    return {
                        arr: arr,
                        idarr: idarr
                    };
                }(item.menuId);
                item.path = function(item) {
                    var path = item.path, index = path.indexOf("?");
                    {
                        if (item.iframe) return path;
                        if (-1 < index) return path;
                        var hasHtml = path.indexOf(".html");
                        return -1 < hasHtml ? path : path + ".html";
                    }
                }(item), -1 < index && (item.hash = item.menuId), routeSetting[item.hash] = {
                    templateUrl: item.path,
                    iframe: item.iframe || !1,
                    controller: item.srcPath ? item.srcPath + ".js" : null,
                    name: item.name,
                    menuId: item.menuId,
                    parent_name: obj.arr,
                    stateArr: obj.idarr
                }, obj = null;
            }
        }), {
            treedata: treedata,
            routeSetting: routeSetting
        };
    }
    plgSidebar.prototype.init = function(document) {
        return this.$dom = {
            sidebar: document.find("#sidebar"),
            logoFold: document.find("#plg-logo-fold"),
            meunSoroll: document.find("#meunSoroll"),
            navLast: document.find("#meunSoroll .nav-last"),
            bodyNav: document.find(".nav-hover-child .layui-side"),
            meungroupList: document.find(".pr-meungroup-list"),
            prLeft: document.find(".pr-left"),
            rightSidebar: document.find(".right-sidebar"),
            nav_hover_child: document.find(".nav-hover-child")
        }, EventHanlder.call(this, this.$dom), setOpenKeyup.call(this, this.$dom), this;
    }, plgSidebar.prototype.reset = function(newValue) {
        var sidebarLi = function(mapData, isI18n) {
            var sidebarLi = "";
            return Object.values(mapData).filter(function(item) {
                "0" == item.parentMenuId && (sidebarLi += '<li class="s-item '.concat(item.isActive ? "active" : "", '">\n                <span class="icon-box"><i class="').concat(item.imagePath, '"></i></span>\n                <span class="meun-name">\n                <a href="').concat(item.blank ? item.path : item.hash ? "#" + item.hash : "javascript:;", '"  ').concat(item.blank ? "target=_blank" : "", "  ").concat(isI18n && i18next.exists(item.name.toString()) ? 'data-i18n="'.concat(item.name, '"') : "", " menu-id=").concat(item.menuId, ">").concat(item.name, "</a>\n                ").concat(item.leaf ? "" : '<i class="right-mover layui-icon layui-icon-right" style="right: 0.28rem;"></i>', "</span>\n                </li>"));
            }), sidebarLi;
        }(newValue, this.options.isI18n);
        this.$dom.sidebar.empty().append(sidebarLi), this.$dom.rightSidebar.empty().append(sidebarLi);
        var group = function(mapData, isI18n) {
            if (mapData) {
                var index = 0, group = $('<div class="pr-meun-group"></div><div class="pr-meun-group"></div><div class="pr-meun-group"></div>'), treeData = filterData("0", mapData), recursive = function recursive(pid) {
                    var str = "";
                    return filterData(pid, mapData).forEach(function(ditem) {
                        str += '<div class="menu-text">\n                  <a py-code='.concat(ditem.PY_code, " href=").concat(ditem.hash && ditem.leaf ? "#" + ditem.hash : "javascript:;", "\n                   parentmenu-id=").concat(ditem.parentMenuId, "\n                   menu-id=").concat(ditem.menuId, "\n                   leaf=").concat(ditem.leaf, "\n                   ").concat(isI18n && i18next.exists(ditem.name.toString()) ? "data-i18n=".concat(ditem.name) : "", ">\n                   ").concat(ditem.name, "</a>\n                 </div>"), 
                        ditem.leaf || (str += recursive(ditem.menuId));
                    }), str;
                };
                for (var key in treeData) {
                    var ele = '<div class="list-item '.concat(treeData[key].isActive ? "select" : "", '" id=').concat(treeData[key].menuId, ">\n                    <a py-code=").concat(treeData[key].PY_code, " href=").concat(treeData[key].hash && treeData[key].leaf ? "#" + treeData[key].hash : "javascript:;", " menu-id=").concat(treeData[key].menuId, " ").concat(isI18n && i18next.exists(treeData[key].name.toString()) ? "data-i18n=".concat(treeData[key].name) : "", " parentmenu-id=").concat(treeData[key].parentMenuId, ' class="list-title"  leaf=').concat(treeData[key].leaf, ">\n                      ").concat(treeData[key].name, "</a>");
                    ele += recursive(treeData[key].menuId), ele += "</div>", index % 3 == 0 ? group.eq(0).append(ele) : index % 3 == 1 ? group.eq(1).append(ele) : index % 3 == 2 && group.eq(2).append(ele), 
                    index++;
                }
                return $(group).find(".menu-text>a[leaf='false']").hide(), $(group);
            }
        }(newValue, this.options.isI18n);
        return this.$dom.meungroupList.empty().append(group), this;
    }, plgSidebar.prototype.renderTo = function(domId) {
        return this.options.renderer = domId, $("#" + this.options.renderer).empty().append(this.document), 
        this;
    }, window.PlgSideAccordionRoute = plgSidebar, $.fn.initPlgSideAccordion = function(options) {
        return new plgSidebar(this, options);
    };
}(jQuery);
"use strict";

function _typeof(obj) {
    return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
        return typeof obj;
    } : function(obj) {
        return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    })(obj);
}

!function($, layui) {
    layui.use([ "element" ], function() {
        layui.element;
        this._onTab = null, this._onDelete = null;
        var plgTabs = function(options) {
            var _this = this;
            _this.layids = [], _this.preIndex = -1;
            var opt, Items, newObj, config = {
                className: "",
                targetLoading: !0,
                isI18n: window.isI18n || !1,
                time: 100,
                renderer: null,
                filter: "plgTabs-" + Prolog.createRandomId(),
                indexActive: 0,
                activeId: "",
                closeAll: !1,
                skin: "brief",
                fadeIn: !1,
                allowClose: !1,
                content: []
            };
            "object" === _typeof(opt = options) && (_this.opts = $.extend(!0, config, opt), 
            "undefined" != typeof i18next && _this.opts.isI18n && 0 < _this.opts.content.length && (_this.opts.content = (Items = _this.opts.content, 
            newObj = [], Items.map(function(item, index) {
                return newObj[index] = {}, newObj[index] = Object.assign(item, newObj[index]), "undefined" != typeof i18next && item.title && i18next.exists(item.title.toString()) && (newObj[index].title = i18next.t(item.title)), 
                newObj;
            }), newObj)), _this.getElement = function(opts) {
                var itemlist = function(content) {
                    if (content) {
                        var rp = "", ra = "";
                        return content.forEach(function(item, inxex) {
                            rp += "<li lay-id = ".concat(item.id, ' class="').concat(opts.indexActive === inxex ? "layui-this" : "", '" >').concat(item.title, "</li>"), 
                            ra += '<div class="layui-tab-item  '.concat(opts.indexActive === inxex ? "layui-show" : "", '" data-fade="">').concat(item.template, "</div>");
                        }), {
                            title: rp,
                            content: ra
                        };
                    }
                    return "";
                };
                itemlist = itemlist(opts.content);
                var closeBtn = '\n\n            <ul class="plg-tab-close-all" lay-filter="plg-tab-close-all">\n              <div class="plg-tab-close-item">\n                  <a href="javascript:;" class="layui-icon layui-icon-more"></a>\n                 <dl class="child">\n                  <dd><a href="javascript:;" '.concat(opts.isI18n && i18next.exists("关闭其它标签页") ? 'data-i18n="关闭其它标签页"' : "", ' >关闭其它标签页</a></dd>\n                  <dd><a href="javascript:;" ').concat(opts.isI18n && i18next.exists("关闭其它标签页") ? 'data-i18n="关闭当前标签页"' : "", ' >关闭当前标签页</a></dd>\n                  <dd><a href="javascript:;" ').concat(opts.isI18n && i18next.exists("关闭所有标签页") ? 'data-i18n="关闭所有标签页"' : "", ">关闭所有标签页</a></dd>\n                </dl>\n                </li>\n            </ul>"), tp = "\n            ".concat("plgLayoutTabs" === opts.skin ? '<span class="icon-box"><i class="icon iconfont p-icon-home"></i></span>' : "", '\n                <div class="').concat({
                    normal: "layui-tab",
                    brief: "layui-tab layui-tab-brief",
                    card: "layui-tab layui-tab-card",
                    plgtabs: "layui-tab layui-tab-brief plgtabs",
                    plgLayoutTabs: "layui-tab layui-tab-brief plgtabs plg-layout-tabs"
                }[opts.skin] + " " + opts.className, '" ').concat(opts.allowClose ? 'lay-allowClose="true"' : "", "\n                    ").concat(opts.filter ? 'lay-filter="' + opts.filter + '"' : "", ">\n                    ").concat(opts.closeAll ? closeBtn : "", '\n                    <ul class="layui-tab-title ').concat("plgLayoutTabs" === opts.skin ? "home" : "", '">\n                    </ul>\n                    <div class="layui-tab-content"></div>\n                </div>');
                return $(tp);
            }(_this.opts), _this.opts.closeAll && (_this.getElement.find(".plg-tab-close-all").hover(function() {
                $(this).find(".child").show();
            }, function() {
                $(this).find(".child").hide();
            }), _this.getElement.find(".plg-tab-close-all .child").on("click", "dd", function(e) {
                e.preventDefault();
                var oa = $(this).index();
                $(this).parents(".plg-tab-close-all").next().children("li").each(function(index, item) {
                    var $this = $(item);
                    0 !== $this.index() && ($this.hasClass("layui-this") ? 1 === oa && _this.deleteTabs($this.attr("lay-id")) : 0 === oa && _this.deleteTabs($this.attr("lay-id")), 
                    2 === oa && _this.deleteTabs($this.attr("lay-id")));
                }), $(this).parents(".child").hide();
            }))), _this.opts.renderer && _this.renderTo(this.opts.renderer);
        };
        plgTabs.prototype.renderTo = function(ele) {
            var _this = this;
            $("#" + ele).append(this.getElement), this.opts.content.forEach(function(item, index) {
                var yes = !1;
                _this.opts.indexActive === index && (yes = !0), _this.addTabs(item, yes);
            });
            var layid = this.getElement.find(".layui-tab-title > li").eq(_this.opts.indexActive).attr("lay-id");
            return _this.changeTabs(layid), this.element.render("nav"), this.element.render("tab", this.opts.filter), 
            this.element.on("tab(".concat(this.opts.filter, ")"), function(data) {
                (_this.activeId = this.getAttribute("lay-id"), _this.activeId) && (_this.layids.find(function(item) {
                    return item === _this.activeId;
                }) || _this.layids.push(_this.activeId));
                data.layId = _this.layids[data.index], "function" == typeof _this._onTab && _this._onTab.call(this, data), 
                _this.preIndex = data.index;
            }), this.element.on("tabDelete(".concat(this.opts.filter, ")"), function(data) {
                data.id = _this.layids.filter(function(item, index, arr) {
                    return item === _this.layids[data.index] && arr.splice(index, 1);
                }), "function" == typeof _this._onDelete && _this._onDelete.call(this, data);
            }), this;
        };
        var pindex = -1;
        plgTabs.prototype.addTabs = function(obj, boole) {
            var closeLoad = PlgDialog.loading2("#".concat(this.opts.renderer, " .layui-tab-content")), str = obj.title.replace(/<[a-zA-z](([\s\S])*?)<\/[a-zA-z]>/gm, ""), title = $("<span ".concat(this.opts.isI18n ? 'data-i18n="'.concat(str, ";[title]").concat(i18next.t(str), '"') : "title=".concat(str), ' class="name" style="vertical-align: top;" >').concat(str, "</span>"));
            title.localize && title.localize(), title = title[0].outerHTML, obj.title = obj.title.replace(str, title);
            var _this = this;
            boole || (boole = null);
            var isChange = boole;
            this.preIndex = this.getElement.find(".layui-tab-title li.layui-this").index();
            var oli = this.getElement.find(".layui-tab-title li"), curLi = Number(oli.length), define = {
                title: '<span class="name">新标题</span>',
                content: "",
                id: "lay-" + Prolog.createRandomId(),
                iframe: !1
            }, opts = $.extend(!0, define, obj);
            function reandTpl(data) {
                try {
                    opts.content = data, _this.element.tabAdd(_this.opts.filter, opts), isChange && _this.changeTabs(opts.id);
                } catch (e) {} finally {
                    _this.getElement.find(".layui-tab-content .layui-tab-item").attr("data-fade", ""), 
                    function(titleObj) {
                        var count = titleObj.width() - 15, count01 = titleObj.find("li").eq(0).outerWidth(), count02 = titleObj.prev() ? titleObj.prev().outerWidth() : 0, liw = titleObj.find("li").last().outerWidth(), liNum = Math.floor(count - count01 - count02) / liw;
                        return Math.floor(liNum);
                    }(_this.getElement.find(".layui-tab-title")) - 1 < curLi && oli.eq(1) && _this.deleteTabs(oli.eq(1).attr("lay-id")), 
                    closeLoad();
                }
            }
            opts.url && !opts.iframe ? Prolog.ajax({
                type: "get",
                url: opts.url,
                dataType: "html",
                success: reandTpl,
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    layer.msg("数据请求失败"), closeLoad();
                }
            }) : (opts.template && !opts.iframe || (opts.template = '<iframe class="plg-iframeClass" frameborder="no" src="'.concat(opts.url, '"></iframe>')), 
            reandTpl(opts.template), closeLoad()), _this.preIndex = pindex = _this.getElement.find(".layui-tab-title>.layui-this").index();
        }, plgTabs.prototype.changeTabs = function(layid, callback) {
            var id, eleObj;
            if (/^[0-9]+.?[0-9]*$/.test(layid) ? id = (eleObj = this.getElement.find(".layui-tab-title>li").eq(layid)).attr("lay-id") : (id = layid, 
            eleObj = this.getElement.find(".layui-tab-title>li[lay-id='" + id + "']")), pindex = this.getElement.find(".layui-tab-title>.layui-this").index(), 
            this.element.tabChange(this.opts.filter, id), this.preIndex = pindex, this.opts.fadeIn) {
                this.getElement.find(".layui-tab-content >.layui-tab-item").attr("data-fade", "");
                var itme = this.getElement.find(".layui-tab-content >.layui-tab-item.layui-show");
                if (itme.index() > this.preIndex) itme.attr("data-fade", "left"); else {
                    if (itme.index() == this.preIndex) return !1;
                    this.element.tabChange(this.opts.filter, id), itme.attr("data-fade", "right");
                }
                setTimeout(function() {
                    itme.attr("data-fade", "");
                }, this.opts.time);
            }
            return "function" == typeof callback && callback(eleObj), this;
        }, plgTabs.prototype.deleteTabs = function(layid) {
            return this.element.tabDelete(this.opts.filter, layid), this;
        }, plgTabs.prototype.element = layui.element, plgTabs.prototype.on = function(callback, eventName) {
            var name = eventName, fun = callback;
            return "string" == typeof callback && (name = callback, fun = eventName), eventName || (name = "tab"), 
            "tab" === name ? this._onTab = fun : "tabDelete" === name && (this._onDelete = fun), 
            this;
        }, window.PlgTabs = plgTabs, $.fn.initPlgTabs = function(options) {
            var id = $(this).attr("id");
            return new plgTabs(options).renderTo(id);
        };
    });
}(jQuery, layui);
"use strict";

!function($) {
    function PlgTransfer(config) {
        this.options = {
            renderer: ""
        }, config.leftPlane.columns.push({
            id: "op",
            name: "操作",
            type: "button",
            width: 180,
            align: "center",
            render: function(v, d) {
                return config.leftPlane.rowBtn + "^window.transferAddGroup";
            }
        });
        Prolog.createRandomId();
        config.rightPlane.columns.push({
            id: "op",
            name: "操作",
            type: "button",
            width: 180,
            align: "center",
            render: function(v, d) {
                return config.rightPlane.rowBtn + "^window.transferDelGroup";
            }
        }), window.transferAddGroup = function(v, d) {
            this.leftPlane.rowBtnClick && this.leftPlane.rowBtnClick(v, d);
        }.bind(this), window.transferDelGroup = function(v, d) {
            this.rightPlane.rowBtnClick && this.rightPlane.rowBtnClick(v, d);
        }.bind(this);
        return this.leftPlane = {
            title: "",
            toolbar: [],
            columns: null,
            url: "",
            type: "get",
            params: {},
            page: !0,
            totalCount: "totalCount"
        }, this.rightPlane = {
            title: "",
            toolbar: [],
            columns: null,
            url: "",
            type: "get",
            params: {},
            page: !0,
            totalCount: "totalCount"
        }, this.options = $.extend(!0, this.options, config), this.leftPlane = $.extend(!0, this.leftPlane, this.options.leftPlane), 
        this.rightPlane = $.extend(!0, this.rightPlane, this.options.rightPlane), this.element = function() {
            var ele = '\n        <div class="plg-flex" style="height: calc(100%); overflow: auto;">\n          <div id="inputLeft" class="plg-flex-item" style="flex: 1; height: 100%">\n            1\n          </div>\n          <div class="plg-flex-item" style="height: 100%; flex: 0 0 80px;width:80px;">\n            <div class="btnForm">\n              <a id="leftPanelBtn" href="javascript:void(0)" class="disable">\n                <i class="layui-icon layui-icon-right"></i>\n              </a>\n              <a id="rightPanelBtn" href="javascript:void(0)" class="disable">\n                <i class="layui-icon layui-icon-left"></i>\n              </a>\n            </div>\n          </div>\n          <div id="outerRight" class="plg-flex-item" style="flex: 1;height: 100%;">\n          2\n          </div>\n      </div>';
            ele = $(ele);
            var setPlgPanelConfig = function(plane) {
                return {
                    skin: 0,
                    className: "flex_panel",
                    grid: !0,
                    columns: this[plane].columns,
                    toolbar: this[plane].toolbar,
                    header: {
                        isShow: !!this[plane].title,
                        title: this[plane].title
                    },
                    url: this[plane].url,
                    type: this[plane].type,
                    params: this[plane].params,
                    page: this[plane].page,
                    totalCount: this[plane].totalCount
                };
            }.bind(this);
            return this.inputLeft = new PlgPanel(setPlgPanelConfig("leftPlane")), this.inputLeft.ids = "", 
            this.inputLeft.btn = ele.find("#leftPanelBtn"), this.outerRight = new PlgPanel(setPlgPanelConfig("rightPlane")), 
            this.outerRight.ids = "", this.outerRight.btn = ele.find("#rightPanelBtn"), ele;
        }.call(this), this.init(), this;
    }
    function checkIds(object) {
        object.ids = object.grid.getCheckedIds(), object.ids ? object.btn.removeClass("disable") : object.btn.addClass("disable");
    }
    function setEvent(object) {
        var _this = this;
        object.grid.on("onRowSelect", function(rId, ind) {
            return object.grid.setRowSelectCheck(rId), checkIds.call(_this, object), !1;
        }), object.grid.on("onCheck", function(rId, cInd, state) {
            checkIds.call(_this, object);
        }), object.grid.on("onHeaderClick", function(ind, obj) {
            1 === ind && checkIds.call(_this, object);
        });
    }
    PlgTransfer.prototype.init = function() {
        var _this = this;
        return this.options.renderer && (_this.element.find("#inputLeft").width(_this.element.find("#inputLeft").width()), 
        _this.element.find("#outerRight").width(_this.element.find("#outerRight").width()), 
        this.renderTo(this.options.renderer), this.inputLeft.renderTo(_this.element.find("#inputLeft")), 
        this.outerRight.renderTo(_this.element.find("#outerRight")), setEvent.call(_this, this.inputLeft), 
        setEvent.call(_this, this.outerRight), this.inputLeft.btn.click(function() {
            if ($(this).is(".disable")) return !1;
            _this.leftPlane.rowBtnClick && _this.leftPlane.rowBtnClick(_this.inputLeft.ids);
        }), this.outerRight.btn.click(function() {
            if ($(this).is(".disable")) return !1;
            _this.rightPlane.rowBtnClick && _this.rightPlane.rowBtnClick(_this.outerRight.ids);
        })), _this;
    }, PlgTransfer.prototype.getRightPlaneGrid = function() {
        return this.outerRight.grid;
    }, PlgTransfer.prototype.getLeftPlaneGrid = function() {
        return this.inputLeft.grid;
    }, PlgTransfer.prototype.renderTo = function(domId) {
        return "string" == typeof domId && (this.options.renderer = -1 < domId.indexOf(".") ? domId : "#" + domId), 
        this.element = $(this.options.renderer).addClass("plg-transfer").empty().append(this.element), 
        this;
    }, window.PlgTransfer = PlgTransfer;
}(jQuery);
"use strict";

function _typeof(obj) {
    return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
        return typeof obj;
    } : function(obj) {
        return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    })(obj);
}

!function($) {
    var tree = $.fn.zTree;
    var plgZtree = function(ele, options) {
        var opt, opts, close, obj, _this = this, config = {
            initAjax: null,
            skin: "",
            toolBar: !1,
            toolBar2: {
                isShow: !1,
                btn: null
            },
            renderer: null,
            setData: null,
            isExpand: !1,
            setting: {
                treeId: Prolog.createRandomId(),
                view: {
                    selectedMulti: !1
                },
                data: {
                    key: {
                        title: "name"
                    },
                    simpleData: {
                        enable: !0,
                        idKey: "menuId",
                        pIdKey: "parentMenuId",
                        rootPId: "0",
                        id: "id"
                    }
                },
                callback: {}
            }
        };
        1 === arguments.length ? "object" === _typeof(opt = arguments[0]) && (_this.opts = $.extend(!0, config, opt), 
        opt.setting && opt.setting.callback && "function" == typeof opt.setting.callback.onExpand && (_this.opts.setting.callback.onExpand = function(event, treeId, treeNode) {
            (function(event, treeId, treeNode) {
                if (!treeNode.tId) {
                    var obj = this.getZTreeObj(treeId), NOdes = obj.getNodes();
                    for (var key in NOdes) {
                        var td = NOdes[key];
                        td.tId != treeNode.tId ? obj.expandNode(td, !1, !1, !1) : obj.expandNode(td, !0);
                    }
                }
            }).bind(_this)(event, treeId, treeNode), opt.setting.callback.onExpand.call(_this, event, treeId, treeNode);
        }), !_this.opts.setDate && _this.opts.initAjax && (_this.opts.setData = (opts = _this.opts.initAjax, 
        close = Prolog.loading2(), obj = {}, opts.success = function(res) {
            res.success ? obj = res.data.map(function(item) {
                return item.isParent = !0, item;
            }) : layer.msg("数据加载失败!"), close();
        }, opts.error = function() {
            close();
        }, Prolog.syncAjax(opts), obj))) : 2 === arguments.length && (ele = arguments[0], 
        opt = options), _this.opts.renderer && _this.renderTo(this.opts.renderer), setTimeout(window.onresize = function() {
            var pObj = $("#" + _this.opts.renderer), toolbarBtnHeight = 0;
            _this.toolbarBtn2 && (toolbarBtnHeight = _this.toolbarBtn2.height());
            var parentHeight = parseInt(pObj.parent().height() - toolbarBtnHeight);
            pObj.find(".ztree").css({
                width: "100%",
                height: parentHeight,
                "overflow-y": "auto",
                "pading-bottom": "20px"
            });
        }, 0);
    };
    for (var key in tree) plgZtree.prototype[key] = tree[key];
    plgZtree.prototype.renderTo = function(ele) {
        $("#" + ele).empty();
        this.opts.skin && $("#" + ele).addClass(this.opts.skin);
        var objUl = $("<ul>", {
            class: "ztree",
            id: this.opts.setting.treeId
        });
        return this.treeObj = this.init(objUl, this.opts.setting, this.opts.setData), this.opts.isExpand && this.treeObj.expandNode(this.treeObj.getNodes()[0], !0, !1, !0, !0), 
        this.opts.toolBar && (this.toolbarBtn = $('\n\n                 <div class="toolbar layui-row layui-col-space10 cl">\n\n\n                 <div class="layui-col-md4">\n                 <a class="layui-btn layui-btn-primary" href="javascript:void(0)">\n                 <i class="layui-icon layui-icon-delete"></i>删除\n                 </a>\n             </div>\n             <div class="layui-col-md4">\n               \n             <a class="layui-btn layui-btn-primary" href="javascript:void(0)" >\n                 <i class="layui-icon layui-icon-edit"></i>编辑</a>\n          </div>\n                 <div class="layui-col-md4">\n            \n                     <a class="layui-btn  layui-btn-normal"  href="javascript:void(0)">\n                           <i class="layui-icon layui-icon-add-1"></i>增加\n                   </a>\n                 </div>\n       \n               </div>\n        \n               \n               \n             \n             '), 
        $("#" + ele).append(this.toolbarBtn)), this.opts.toolBar2.isShow && this.opts.toolBar2.btn && 0 < this.opts.toolBar2.btn.length && (this.toolbarBtn2 = function(_this) {
            var obj = _this.opts.toolBar2.btn, btn = $('\n        <div class="toolbar layui-row layui-col-space10 cl">\n         '.concat(obj.map(function(item) {
                return '<div class="hook layui-col-md'.concat(12 / obj.length, '">\n            <a class="layui-btn ').concat(item.skin ? item.skin : "", '" href="javascript:void(0)">\n            <i class="').concat(item.icon, '"></i>').concat(item.text, "</a>\n          </div>");
            }).join(""), "   \n        \n      </div>")), zTree = _this.treeObj;
            return obj.forEach(function(item, index) {
                btn.find(".hook").eq(index).find("a").click(function(event) {
                    var treeNode = zTree.getSelectedNodes();
                    item.EventCallback && item.EventCallback(event, zTree, treeNode);
                });
            }), btn;
        }(this), $("#" + ele).append(this.toolbarBtn2)), $("#" + ele).append(objUl), this;
    };
    Prolog.createRandomId(), Prolog.createRandomId();
    window.PlgZtree = plgZtree;
}(jQuery);
"use strict";

window.onload = function() {
    var userAgent, isIE, isIE11;
    userAgent = navigator.userAgent, isIE = -1 < userAgent.indexOf("compatible") && -1 < userAgent.indexOf("MSIE"), 
    userAgent.indexOf("Edge"), isIE11 = -1 < userAgent.indexOf("Trident") && -1 < userAgent.indexOf("rv:11.0"), 
    (isIE || isIE11) && (document.getElementsByTagName("body")[0].innerHTML = [ '<div class="ieReg">\n        <div class="banler">\n          <div class="ie_content">\n            <div class="header_title">尊敬的用户：您当前浏览器版本过低，本站功能可能无法正常浏览</div>\n\n            <div class="topbar">推荐使用以下几种浏览器达到最佳效果</div>\n            <ul class="bro_list">\n              <li><i class="chrome"></i>\n                <p>谷歌浏览器</p>\n              </li>\n              <li><i class="fires"></i>\n                <p>火狐浏览器</p>\n              </li>\n              <li><i class="Safari"></i>\n                <p>Safari苹果浏览器</p>\n              </li>\n              <li><i class="Edge"></i>\n                <p>Microsoft Edge</p>\n              </li>\n            </ul>\n\n            <div class="topbar">如360、QQ、极速浏览器等，请使用极速模式运行！</div>\n            <div class="n_2"></div>\n\n\n\n          </div>\n        </div>\n     \n      </div>' ].join(""));
};
"use strict";

function _typeof(obj) {
    return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
        return typeof obj;
    } : function(obj) {
        return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    })(obj);
}

layui.define("form", function(exports) {
    var $ = layui.$, form = layui.form, hint = layui.hint(), MOD_NAME = "selectPlus", SELECT = "layui-form-select", SELECTED = "layui-form-selected", selectPlus = {
        index: layui.selectPlus ? layui.selectPlus.index : 0,
        set: function(options) {
            return this.config = $.extend({}, this.config, options), this;
        },
        on: function(events, callback) {
            return layui.onevent.call(this, MOD_NAME, events, callback);
        }
    }, Class = function(options) {
        this.index = ++selectPlus.index, this.config = $.extend({}, this.config, selectPlus.config, options), 
        this.render();
    }, renderInputTags = function(el, data) {
        var temStr = "";
        data.forEach(function(val) {
            temStr += "<span>\n          <em>".concat(val, '</em>\n          <button type="button" class="close">×</button>\n        </span>');
        }), $(el).siblings(".plg-select-tags").html(temStr);
    };
    Class.prototype.config = {
        type: "checkbox",
        valueSeparator: "/",
        labelSeparator: "  ---  ",
        data: [],
        valueName: "title",
        label: [],
        values: [],
        url: "",
        method: "get",
        where: "",
        contentType: "",
        headers: "",
        response: "data",
        parseData: null,
        config: {
            checkedName: "SELECTPLUS_CHECKED",
            indexName: "SELECTPLUS_INDEX"
        },
        error: ""
    }, Class.prototype.render = function() {
        var options = this.config;
        "string" == typeof options.el ? options.el = $(options.el) : options.el, options.reElem = $('<div class="layui-unselect layui-form-select"><div class="layui-select-title"><input type="text" placeholder="请选择" value="" readonly="" class="layui-input layui-unselect" style="color: transparent;"><i class="layui-edge"></i></div><dl class="layui-anim layui-anim-upbit"><dd lay-value="" class="layui-select-tips layui-hide">请选择</dd></dl></div>'), 
        options.reElem.find(".layui-select-title").on("click", function(e) {
            !$(this).parent().hasClass(SELECTED) && $(document).find("." + SELECT).removeClass(SELECTED), 
            $(this).parent().toggleClass(SELECTED);
        }), $(document).on("click", function(e) {
            $(e.target).parents("." + SELECT).length <= 0 && options.reElem.hasClass(SELECTED) && options.reElem.removeClass(SELECTED);
        }), !Array.isArray(options.values) && (options.values = [ options.values ]), options.filter = options.el.parents(".layui-form").attr("lay-filter"), 
        options.el.append(options.reElem), options.url ? this.pullData() : this.renderData(), 
        options.el.on("click", ".layui-select-title", function() {
            var $title = $(this), $dd0 = $title.next().find("dd").eq(0);
            $dd0.hasClass("layui-hide") || $dd0.addClass("layui-hide"), $title.find("input").val(options.values.join(options.valueSeparator));
        });
    }, Class.prototype.pullData = function() {
        var that = this, options = that.config;
        $.ajax({
            type: options.method || "get",
            url: options.url,
            contentType: options.contentType,
            data: options.where || {},
            dataType: "json",
            headers: options.headers || {},
            success: function(res) {
                "function" == typeof options.parseData && (res = options.parseData(res) || res[options.response]), 
                Array.isArray(res) ? (options.data = that.formatData(res), options.error = "", that.renderData()) : options.error = "数据格式不对";
            },
            error: function(e, m) {
                options.error = "数据接口请求异常：" + m;
            }
        });
    }, Class.prototype.formatData = function(data) {
        var options = this.config, valueName = options.valueName, values = options.values, checkedName = options.config.checkedName, indexName = options.config.indexName;
        return layui.each(data, function(i, item) {
            "object" !== _typeof(item) && (data[i] = {
                title: item
            }), data[i][indexName] = i, data[i][checkedName] || (data[i][checkedName] = !1), 
            layui.each(values, function(index, value) {
                data[i][valueName] === value && (data[i][checkedName] = !0);
            });
        }), values.splice(0), data;
    }, Class.prototype.renderData = function(data) {
        var options = this.config, type = options.type, id = this.index, items = (data = data ? this.formatData(data) : this.formatData(options.data), 
        {
            checkbox: function(config, data, id) {
                var CLASSNAME = "layui-form-checkbox", CHECKED = "layui-form-checked", el = config.reElem.find("dl"), valueName = config.valueName, checkedName = config.config.checkedName, indexName = config.config.indexName, values = config.values, label = config.label, filter = config.filter, labelSeparator = config.labelSeparator, valueSeparator = config.valueSeparator, sum = 0;
                el.append($('<dd lay-value="全选"></dd>')), layui.each(data, function(i, item) {
                    el.append($('<dd lay-value="' + item[valueName] + '"></dd>'));
                });
                var allEle = el.find("dd").eq(1);
                allEle.nextAll().each(function(index) {
                    var $dd = $(this), item = data[index], layuiValue = item[valueName], title = layuiValue;
                    0 < label.length && (title = "", layui.each(label, function(i, n) {
                        title += item[n], i < label.length - 1 && (title += labelSeparator);
                    }));
                    var checkbox = $('<input type="checkbox" name="selectPluscheckbox' + id + '"  yw-index="' + item[indexName] + '" lay-skin="primary" title="' + title + '" layui-value="' + layuiValue + '">');
                    item[checkedName] && (checkbox.prop("checked", !0), values.push(layuiValue), sum++), 
                    $dd.html(checkbox);
                });
                var allcheckbox = $('<input type="checkbox"  selectplus-all  lay-skin="primary" title="全选" layui-value="全选">');
                sum === data.length && allcheckbox.prop("checked", !0), allEle.html(allcheckbox), 
                renderInputTags(config.el, values), allEle.parent().prev().find("input").val(values.join(valueSeparator)), 
                allEle.on("click", function(event) {
                    var $all = $(this), checked = "DD" === event.target.nodeName ? $all.find("." + CLASSNAME).toggleClass(CHECKED).hasClass(CHECKED) : $all.find("input").prop("checked");
                    $all.parents("." + SELECT).addClass(SELECTED), $all.find("input").prop("checked", checked), 
                    $all.nextAll().each(function() {
                        var dd = $(this);
                        checked ? dd.find("." + CLASSNAME).addClass(CHECKED) : dd.find("." + CLASSNAME).removeClass(CHECKED), 
                        dd.find("input").prop("checked", checked);
                    }), layui.event.call($all, MOD_NAME, "checkbox(selectPlus)", {
                        type: "checkbox",
                        ele: $all,
                        eleChecked: checked,
                        isAll: checked
                    });
                }), config.el.siblings(".plg-select-tags").on("click", ".close", function(e) {
                    var currentHtml = $(this).siblings("em").html();
                    Array.prototype.slice.call(allEle.nextAll()).forEach(function(val, ind) {
                        val.innerText === currentHtml && el.find("dd").eq(ind + 2).off().on("click", function(event) {
                            if ($(this).index() === ind + 2) {
                                var $dd = $(this), checked = "DD" === event.target.nodeName ? $dd.find("." + CLASSNAME).toggleClass(CHECKED).hasClass(CHECKED) : $dd.find("input").prop("checked");
                                $dd.parents("." + SELECT).addClass(SELECTED), $dd.find("input").prop("checked", checked);
                                var $all = $dd.parents("dl").find("dd").eq(1), $dds = $all.nextAll(), sum = 0;
                                $dds.each(function() {
                                    $(this).find("input").prop("checked") && sum++;
                                }), sum === $dds.length ? ($all.find("input").prop("checked", !0), $all.find("." + CLASSNAME).addClass(CHECKED)) : ($all.find("input").prop("checked", !1), 
                                $all.find("." + CLASSNAME).removeClass(CHECKED)), layui.event.call($all, MOD_NAME, "checkbox(selectPlus)", {
                                    type: "checkbox",
                                    ele: $dd,
                                    eleChecked: checked,
                                    isAll: sum === $dds.length
                                });
                            }
                        }).trigger("click");
                    });
                }), allEle.nextAll().on("click", function(e) {
                    var $dd = $(this), checked = "DD" === event.target.nodeName ? $dd.find("." + CLASSNAME).toggleClass(CHECKED).hasClass(CHECKED) : $dd.find("input").prop("checked");
                    $dd.parents("." + SELECT).addClass(SELECTED), $dd.find("input").prop("checked", checked);
                    var $all = $dd.parents("dl").find("dd").eq(1), $dds = $all.nextAll(), sum = 0;
                    $dds.each(function() {
                        $(this).find("input").prop("checked") && sum++;
                    }), sum === $dds.length ? ($all.find("input").prop("checked", !0), $all.find("." + CLASSNAME).addClass(CHECKED)) : ($all.find("input").prop("checked", !1), 
                    $all.find("." + CLASSNAME).removeClass(CHECKED)), layui.event.call($all, MOD_NAME, "checkbox(selectPlus)", {
                        type: "checkbox",
                        ele: $dd,
                        eleChecked: checked,
                        isAll: sum === $dds.length
                    });
                }), form.render("checkbox", filter);
            },
            radio: function(config, data, id) {
                var ICON = [ "&#xe643;", "&#xe63f;" ], el = (config.el, config.reElem.find("dl")), valueName = config.valueName, checkedName = config.config.checkedName, indexName = config.config.indexName, checkedData = data.filter(function(item) {
                    return !0 === item[checkedName];
                }), values = config.values, label = config.label, filter = config.filter, labelSeparator = config.labelSeparator, valueSeparator = config.valueSeparator;
                layui.each(data, function(i, item) {
                    el.append('<dd lay-value="' + item[valueName] + '"></dd>');
                }), form.render("select", options.filter), el.find("dd").eq(0).nextAll().each(function(index) {
                    var $dd = $(this), item = data[index], layuiValue = item[valueName], title = layuiValue;
                    0 < label.length && (title = "", layui.each(label, function(i, n) {
                        title += item[n], i < label.length - 1 && (title += labelSeparator);
                    }));
                    var dd = $('<input type="radio" name="selectPlusradio' + id + '"  yw-index="' + item[indexName] + '" lay-skin="primary" title="' + title + '" layui-value="' + layuiValue + '">');
                    0 < checkedData.length && checkedData[0][indexName] === item[indexName] && (dd.prop("checked", !0), 
                    values.push(layuiValue), $dd.parent().prev().find("input").val(values.join(valueSeparator))), 
                    $dd.html(dd);
                }), form.render("radio", filter), el.find("dd").on("click", function(event) {
                    var $dd = $(this);
                    $dd.find(".layui-form-radio").addClass("layui-form-radioed").find("i").addClass("layui-anim-scaleSpring").html(ICON[0]), 
                    $dd.find("input").prop("checked", !0), $dd.siblings().find(".layui-form-radio").removeClass("layui-form-radioed").find("i").removeClass("layui-anim-scaleSpring").html(ICON[1]), 
                    $dd.siblings().find("input").prop("checked", !1), layui.event.call($dd, MOD_NAME, "radio(selectPlus)", {
                        type: "radio",
                        ele: $dd,
                        eleChecked: !0,
                        isAll: !1
                    });
                });
            }
        });
        layui.onevent.call(this, MOD_NAME, type + "(" + MOD_NAME + ")", this.checked.bind(this)), 
        items[type] ? items[type](options, data, id) : hint.error("不支持的" + type + "表单渲染");
    }, Class.prototype.checked = function(res) {
        var options = this.config, data = options.data, checkedName = options.config.checkedName, type = res.type, isAll = res.isAll, ele = res.ele, eleChecked = res.eleChecked, filter = options.el.attr("lay-filter");
        if ("checkbox" === type) options.values = [], ele.parents("dl").find('[type="checkbox"]').each(function(i) {
            var $dd = $(this), ywIndex = $dd.attr("yw-index"), checked = $dd.prop("checked");
            ywIndex && (data[ywIndex][checkedName] = checked), checked && ywIndex && options.values.push($dd.attr("layui-value"));
        }), renderInputTags(options.el, options.values), ele.parent().prev().find("input").val(options.values.join(options.valueSeparator)), 
        layui.event.call(ele, MOD_NAME, MOD_NAME + "(" + filter + ")", {
            checked: eleChecked,
            isAll: isAll,
            values: options.values,
            checkedData: data.filter(function(item) {
                return !0 === item[checkedName];
            }),
            ele: ele
        }); else if ("radio" === type) {
            var index = ele.find("input").attr("yw-index"), value = ele.find("input").attr("layui-value");
            options.values = [ value ], ele.parent().prev().find("input").val(value), layui.each(data, function(i, item) {
                item[checkedName] = !1;
            }), data[index][checkedName] = !0, layui.event.call(ele, MOD_NAME, MOD_NAME + "(" + filter + ")", {
                value: value,
                checkedData: data[index],
                ele: ele
            });
        }
    }, Class.prototype.getChecked = function() {
        var options = this.config, data = options.data, checkedName = options.config.checkedName;
        return {
            values: options.values,
            data: data.filter(function(item) {
                return !0 === item[checkedName];
            })
        };
    }, selectPlus.render = function(options, tagsContainer) {
        var ins = new Class(options, tagsContainer);
        return function() {
            var that = this;
            return {
                getChecked: function() {
                    return that.getChecked.call(that);
                },
                config: that.config
            };
        }.call(ins);
    }, exports("selectPlus", selectPlus);
});