Repository: oitone/wemall Branch: v7 Commit: 685d0aab69a6 Files: 1835 Total size: 21.9 MB Directory structure: gitextract_l5oxnja2/ ├── .htaccess ├── .travis.yml ├── LICENSE.txt ├── README.md ├── addons/ │ ├── common/ │ │ └── config.php │ └── putong/ │ ├── config.php │ └── demo/ │ ├── Demo.php │ ├── config.php │ ├── controller/ │ │ ├── Admin.php │ │ └── Index.php │ ├── data/ │ │ ├── install.sql │ │ └── uninstall.sql │ ├── info.html │ ├── model/ │ │ └── AddonsPutongDemoConfig.php │ └── view/ │ ├── admin_add.html │ ├── admin_index.html │ ├── index_index.html │ └── public_left.html ├── application/ │ ├── .htaccess │ ├── admin/ │ │ ├── common.php │ │ ├── config.php │ │ ├── controller/ │ │ │ ├── AddonsController.php │ │ │ ├── BaseController.php │ │ │ ├── FileController.php │ │ │ ├── HelpController.php │ │ │ ├── IndexController.php │ │ │ ├── PublicController.php │ │ │ ├── WechatController.php │ │ │ ├── article/ │ │ │ │ ├── CategoryController.php │ │ │ │ └── IndexController.php │ │ │ ├── auth/ │ │ │ │ ├── AdminController.php │ │ │ │ └── GroupController.php │ │ │ ├── config/ │ │ │ │ ├── MailController.php │ │ │ │ ├── SiteController.php │ │ │ │ └── SmsController.php │ │ │ ├── tpl/ │ │ │ │ ├── MailController.php │ │ │ │ ├── ShopController.php │ │ │ │ └── SmsController.php │ │ │ ├── user/ │ │ │ │ ├── IndexController.php │ │ │ │ └── LevelController.php │ │ │ └── wx/ │ │ │ ├── ConfigController.php │ │ │ ├── KefuController.php │ │ │ ├── MenuController.php │ │ │ ├── PrintController.php │ │ │ ├── ReplyController.php │ │ │ └── TplmsgController.php │ │ ├── validate/ │ │ │ └── Admin.php │ │ └── view/ │ │ ├── addons_index.html │ │ ├── addons_shop.html │ │ ├── analysis_user.html │ │ ├── article/ │ │ │ ├── category_add.html │ │ │ ├── category_index.html │ │ │ ├── index_add.html │ │ │ └── index_index.html │ │ ├── auth/ │ │ │ ├── admin_add.html │ │ │ ├── admin_index.html │ │ │ ├── group_add.html │ │ │ └── group_index.html │ │ ├── config/ │ │ │ ├── mail_index.html │ │ │ ├── site_index.html │ │ │ └── sms_index.html │ │ ├── file_index.html │ │ ├── help_index.html │ │ ├── index_index.html │ │ ├── layout.html │ │ ├── layout_addons.html │ │ ├── public_footer.html │ │ ├── public_header.html │ │ ├── public_left.html │ │ ├── public_login.html │ │ ├── tpl/ │ │ │ ├── mail_add.html │ │ │ ├── mail_index.html │ │ │ ├── shop_index.html │ │ │ ├── sms_add.html │ │ │ └── sms_index.html │ │ ├── user/ │ │ │ ├── index_add.html │ │ │ ├── index_index.html │ │ │ ├── level_add.html │ │ │ └── level_index.html │ │ └── wx/ │ │ ├── config_index.html │ │ ├── kefu_index.html │ │ ├── menu_add.html │ │ ├── menu_index.html │ │ ├── print_index.html │ │ ├── reply_add.html │ │ ├── reply_index.html │ │ ├── tplmsg_add.html │ │ └── tplmsg_index.html │ ├── app/ │ │ └── controller/ │ │ ├── AddonsController.php │ │ └── IndexController.php │ ├── command.php │ ├── common/ │ │ ├── behavior/ │ │ │ └── Config.php │ │ └── model/ │ │ ├── Admin.php │ │ ├── Analysis.php │ │ ├── Article.php │ │ ├── ArticleCategory.php │ │ ├── AuthGroup.php │ │ ├── AuthGroupAccess.php │ │ ├── AuthRule.php │ │ ├── Config.php │ │ ├── File.php │ │ ├── Mail.php │ │ ├── MailTpl.php │ │ ├── Sms.php │ │ ├── SmsTpl.php │ │ ├── User.php │ │ ├── UserLevel.php │ │ ├── WxConfig.php │ │ ├── WxKefu.php │ │ ├── WxMenu.php │ │ ├── WxPrint.php │ │ ├── WxReply.php │ │ └── WxTplmsg.php │ ├── common.php │ ├── config.php │ ├── database.php │ ├── install/ │ │ ├── common.php │ │ ├── config.php │ │ ├── controller/ │ │ │ └── IndexController.php │ │ ├── data/ │ │ │ └── database.tpl │ │ └── view/ │ │ ├── index.html │ │ ├── index_header.html │ │ ├── index_index.html │ │ ├── index_setup1.html │ │ ├── index_setup2.html │ │ └── index_setup3.html │ ├── route.php │ └── tags.php ├── build.php ├── composer.json ├── data/ │ └── index.html ├── extend/ │ └── com/ │ └── Auth.php ├── index.php ├── public/ │ ├── .htaccess │ ├── index.php │ ├── install/ │ │ ├── css/ │ │ │ ├── base.css │ │ │ └── style.css │ │ └── js/ │ │ └── install.js │ ├── robots.txt │ ├── router.php │ └── static/ │ ├── article/ │ │ ├── page_mp_article_improve2756b8.css │ │ ├── page_mp_article_improve_combo2805ea.css │ │ └── page_mp_article_improve_pc2637ae.css │ ├── dist/ │ │ ├── css/ │ │ │ └── AdminLTE.css │ │ ├── fonts/ │ │ │ └── FontAwesome.otf │ │ └── js/ │ │ ├── app.js │ │ └── wemall.js │ ├── layui/ │ │ ├── css/ │ │ │ ├── layui.css │ │ │ └── modules/ │ │ │ ├── code.css │ │ │ ├── laydate/ │ │ │ │ └── laydate.css │ │ │ └── layer/ │ │ │ └── default/ │ │ │ └── layer.css │ │ ├── lay/ │ │ │ ├── dest/ │ │ │ │ └── layui.all.js │ │ │ ├── lib/ │ │ │ │ └── jquery.js │ │ │ └── modules/ │ │ │ ├── code.js │ │ │ ├── element.js │ │ │ ├── flow.js │ │ │ ├── form.js │ │ │ ├── laydate.js │ │ │ ├── layedit.js │ │ │ ├── layer.js │ │ │ ├── laypage.js │ │ │ ├── laytpl.js │ │ │ ├── tree.js │ │ │ ├── upload.js │ │ │ └── util.js │ │ └── layui.js │ ├── plugins/ │ │ ├── bootbox/ │ │ │ └── bootbox.js │ │ ├── bootstrap/ │ │ │ ├── css/ │ │ │ │ └── bootstrap.css │ │ │ └── js/ │ │ │ ├── bootstrap.js │ │ │ └── npm.js │ │ ├── bootstrap-datetimepicker/ │ │ │ ├── css/ │ │ │ │ └── bootstrap-datetimepicker.css │ │ │ └── js/ │ │ │ ├── bootstrap-datetimepicker.js │ │ │ └── locales/ │ │ │ ├── bootstrap-datetimepicker.ar.js │ │ │ ├── bootstrap-datetimepicker.bg.js │ │ │ ├── bootstrap-datetimepicker.ca.js │ │ │ ├── bootstrap-datetimepicker.cs.js │ │ │ ├── bootstrap-datetimepicker.da.js │ │ │ ├── bootstrap-datetimepicker.de.js │ │ │ ├── bootstrap-datetimepicker.ee.js │ │ │ ├── bootstrap-datetimepicker.el.js │ │ │ ├── bootstrap-datetimepicker.es.js │ │ │ ├── bootstrap-datetimepicker.fi.js │ │ │ ├── bootstrap-datetimepicker.fr.js │ │ │ ├── bootstrap-datetimepicker.he.js │ │ │ ├── bootstrap-datetimepicker.hr.js │ │ │ ├── bootstrap-datetimepicker.hu.js │ │ │ ├── bootstrap-datetimepicker.hy.js │ │ │ ├── bootstrap-datetimepicker.id.js │ │ │ ├── bootstrap-datetimepicker.is.js │ │ │ ├── bootstrap-datetimepicker.it.js │ │ │ ├── bootstrap-datetimepicker.ja.js │ │ │ ├── bootstrap-datetimepicker.ko.js │ │ │ ├── bootstrap-datetimepicker.lt.js │ │ │ ├── bootstrap-datetimepicker.lv.js │ │ │ ├── bootstrap-datetimepicker.ms.js │ │ │ ├── bootstrap-datetimepicker.nb.js │ │ │ ├── bootstrap-datetimepicker.nl.js │ │ │ ├── bootstrap-datetimepicker.no.js │ │ │ ├── bootstrap-datetimepicker.pl.js │ │ │ ├── bootstrap-datetimepicker.pt-BR.js │ │ │ ├── bootstrap-datetimepicker.pt.js │ │ │ ├── bootstrap-datetimepicker.ro.js │ │ │ ├── bootstrap-datetimepicker.rs-latin.js │ │ │ ├── bootstrap-datetimepicker.rs.js │ │ │ ├── bootstrap-datetimepicker.ru.js │ │ │ ├── bootstrap-datetimepicker.sk.js │ │ │ ├── bootstrap-datetimepicker.sl.js │ │ │ ├── bootstrap-datetimepicker.sv.js │ │ │ ├── bootstrap-datetimepicker.sw.js │ │ │ ├── bootstrap-datetimepicker.th.js │ │ │ ├── bootstrap-datetimepicker.tr.js │ │ │ ├── bootstrap-datetimepicker.ua.js │ │ │ ├── bootstrap-datetimepicker.uk.js │ │ │ ├── bootstrap-datetimepicker.zh-CN.js │ │ │ └── bootstrap-datetimepicker.zh-TW.js │ │ ├── bootstrap-slider/ │ │ │ ├── bootstrap-slider.js │ │ │ └── slider.css │ │ ├── bootstrap-switch/ │ │ │ ├── css/ │ │ │ │ └── bootstrap-switch.css │ │ │ └── js/ │ │ │ └── bootstrap-switch.js │ │ ├── bootstrap-wysihtml5/ │ │ │ ├── bootstrap3-wysihtml5.all.js │ │ │ └── bootstrap3-wysihtml5.css │ │ ├── chartjs/ │ │ │ └── Chart.js │ │ ├── ckeditor/ │ │ │ ├── CHANGES.md │ │ │ ├── LICENSE.md │ │ │ ├── README.md │ │ │ ├── adapters/ │ │ │ │ └── jquery.js │ │ │ ├── build-config.js │ │ │ ├── ckeditor.js │ │ │ ├── config.js │ │ │ ├── contents.css │ │ │ ├── lang/ │ │ │ │ ├── af.js │ │ │ │ ├── ar.js │ │ │ │ ├── bg.js │ │ │ │ ├── bn.js │ │ │ │ ├── bs.js │ │ │ │ ├── ca.js │ │ │ │ ├── cs.js │ │ │ │ ├── cy.js │ │ │ │ ├── da.js │ │ │ │ ├── de.js │ │ │ │ ├── el.js │ │ │ │ ├── en-au.js │ │ │ │ ├── en-ca.js │ │ │ │ ├── en-gb.js │ │ │ │ ├── en.js │ │ │ │ ├── eo.js │ │ │ │ ├── es.js │ │ │ │ ├── et.js │ │ │ │ ├── eu.js │ │ │ │ ├── fa.js │ │ │ │ ├── fi.js │ │ │ │ ├── fo.js │ │ │ │ ├── fr-ca.js │ │ │ │ ├── fr.js │ │ │ │ ├── gl.js │ │ │ │ ├── gu.js │ │ │ │ ├── he.js │ │ │ │ ├── hi.js │ │ │ │ ├── hr.js │ │ │ │ ├── hu.js │ │ │ │ ├── id.js │ │ │ │ ├── is.js │ │ │ │ ├── it.js │ │ │ │ ├── ja.js │ │ │ │ ├── ka.js │ │ │ │ ├── km.js │ │ │ │ ├── ko.js │ │ │ │ ├── ku.js │ │ │ │ ├── lt.js │ │ │ │ ├── lv.js │ │ │ │ ├── mk.js │ │ │ │ ├── mn.js │ │ │ │ ├── ms.js │ │ │ │ ├── nb.js │ │ │ │ ├── nl.js │ │ │ │ ├── no.js │ │ │ │ ├── pl.js │ │ │ │ ├── pt-br.js │ │ │ │ ├── pt.js │ │ │ │ ├── ro.js │ │ │ │ ├── ru.js │ │ │ │ ├── si.js │ │ │ │ ├── sk.js │ │ │ │ ├── sl.js │ │ │ │ ├── sq.js │ │ │ │ ├── sr-latn.js │ │ │ │ ├── sr.js │ │ │ │ ├── sv.js │ │ │ │ ├── th.js │ │ │ │ ├── tr.js │ │ │ │ ├── ug.js │ │ │ │ ├── uk.js │ │ │ │ ├── vi.js │ │ │ │ ├── zh-cn.js │ │ │ │ └── zh.js │ │ │ ├── plugins/ │ │ │ │ ├── a11yhelp/ │ │ │ │ │ └── dialogs/ │ │ │ │ │ ├── a11yhelp.js │ │ │ │ │ └── lang/ │ │ │ │ │ ├── _translationstatus.txt │ │ │ │ │ ├── ar.js │ │ │ │ │ ├── bg.js │ │ │ │ │ ├── ca.js │ │ │ │ │ ├── cs.js │ │ │ │ │ ├── cy.js │ │ │ │ │ ├── da.js │ │ │ │ │ ├── de.js │ │ │ │ │ ├── el.js │ │ │ │ │ ├── en.js │ │ │ │ │ ├── eo.js │ │ │ │ │ ├── es.js │ │ │ │ │ ├── et.js │ │ │ │ │ ├── fa.js │ │ │ │ │ ├── fi.js │ │ │ │ │ ├── fr-ca.js │ │ │ │ │ ├── fr.js │ │ │ │ │ ├── gl.js │ │ │ │ │ ├── gu.js │ │ │ │ │ ├── he.js │ │ │ │ │ ├── hi.js │ │ │ │ │ ├── hr.js │ │ │ │ │ ├── hu.js │ │ │ │ │ ├── id.js │ │ │ │ │ ├── it.js │ │ │ │ │ ├── ja.js │ │ │ │ │ ├── km.js │ │ │ │ │ ├── ko.js │ │ │ │ │ ├── ku.js │ │ │ │ │ ├── lt.js │ │ │ │ │ ├── lv.js │ │ │ │ │ ├── mk.js │ │ │ │ │ ├── mn.js │ │ │ │ │ ├── nb.js │ │ │ │ │ ├── nl.js │ │ │ │ │ ├── no.js │ │ │ │ │ ├── pl.js │ │ │ │ │ ├── pt-br.js │ │ │ │ │ ├── pt.js │ │ │ │ │ ├── ro.js │ │ │ │ │ ├── ru.js │ │ │ │ │ ├── si.js │ │ │ │ │ ├── sk.js │ │ │ │ │ ├── sl.js │ │ │ │ │ ├── sq.js │ │ │ │ │ ├── sr-latn.js │ │ │ │ │ ├── sr.js │ │ │ │ │ ├── sv.js │ │ │ │ │ ├── th.js │ │ │ │ │ ├── tr.js │ │ │ │ │ ├── ug.js │ │ │ │ │ ├── uk.js │ │ │ │ │ ├── vi.js │ │ │ │ │ ├── zh-cn.js │ │ │ │ │ └── zh.js │ │ │ │ ├── about/ │ │ │ │ │ └── dialogs/ │ │ │ │ │ └── about.js │ │ │ │ ├── clipboard/ │ │ │ │ │ └── dialogs/ │ │ │ │ │ └── paste.js │ │ │ │ ├── dialog/ │ │ │ │ │ └── dialogDefinition.js │ │ │ │ ├── image/ │ │ │ │ │ └── dialogs/ │ │ │ │ │ └── image.js │ │ │ │ ├── link/ │ │ │ │ │ └── dialogs/ │ │ │ │ │ ├── anchor.js │ │ │ │ │ └── link.js │ │ │ │ ├── pastefromword/ │ │ │ │ │ └── filter/ │ │ │ │ │ └── default.js │ │ │ │ ├── scayt/ │ │ │ │ │ ├── LICENSE.md │ │ │ │ │ ├── README.md │ │ │ │ │ └── dialogs/ │ │ │ │ │ ├── options.js │ │ │ │ │ └── toolbar.css │ │ │ │ ├── specialchar/ │ │ │ │ │ └── dialogs/ │ │ │ │ │ ├── lang/ │ │ │ │ │ │ ├── _translationstatus.txt │ │ │ │ │ │ ├── ar.js │ │ │ │ │ │ ├── bg.js │ │ │ │ │ │ ├── ca.js │ │ │ │ │ │ ├── cs.js │ │ │ │ │ │ ├── cy.js │ │ │ │ │ │ ├── de.js │ │ │ │ │ │ ├── el.js │ │ │ │ │ │ ├── en.js │ │ │ │ │ │ ├── eo.js │ │ │ │ │ │ ├── es.js │ │ │ │ │ │ ├── et.js │ │ │ │ │ │ ├── fa.js │ │ │ │ │ │ ├── fi.js │ │ │ │ │ │ ├── fr-ca.js │ │ │ │ │ │ ├── fr.js │ │ │ │ │ │ ├── gl.js │ │ │ │ │ │ ├── he.js │ │ │ │ │ │ ├── hr.js │ │ │ │ │ │ ├── hu.js │ │ │ │ │ │ ├── id.js │ │ │ │ │ │ ├── it.js │ │ │ │ │ │ ├── ja.js │ │ │ │ │ │ ├── km.js │ │ │ │ │ │ ├── ku.js │ │ │ │ │ │ ├── lv.js │ │ │ │ │ │ ├── nb.js │ │ │ │ │ │ ├── nl.js │ │ │ │ │ │ ├── no.js │ │ │ │ │ │ ├── pl.js │ │ │ │ │ │ ├── pt-br.js │ │ │ │ │ │ ├── pt.js │ │ │ │ │ │ ├── ru.js │ │ │ │ │ │ ├── si.js │ │ │ │ │ │ ├── sk.js │ │ │ │ │ │ ├── sl.js │ │ │ │ │ │ ├── sq.js │ │ │ │ │ │ ├── sv.js │ │ │ │ │ │ ├── th.js │ │ │ │ │ │ ├── tr.js │ │ │ │ │ │ ├── ug.js │ │ │ │ │ │ ├── uk.js │ │ │ │ │ │ ├── vi.js │ │ │ │ │ │ ├── zh-cn.js │ │ │ │ │ │ └── zh.js │ │ │ │ │ └── specialchar.js │ │ │ │ ├── table/ │ │ │ │ │ └── dialogs/ │ │ │ │ │ └── table.js │ │ │ │ ├── tabletools/ │ │ │ │ │ └── dialogs/ │ │ │ │ │ └── tableCell.js │ │ │ │ └── wsc/ │ │ │ │ ├── LICENSE.md │ │ │ │ ├── README.md │ │ │ │ └── dialogs/ │ │ │ │ ├── ciframe.html │ │ │ │ ├── tmp.html │ │ │ │ ├── tmpFrameset.html │ │ │ │ ├── wsc.css │ │ │ │ ├── wsc.js │ │ │ │ └── wsc_ie.js │ │ │ ├── skins/ │ │ │ │ └── moono/ │ │ │ │ ├── dialog.css │ │ │ │ ├── dialog_ie.css │ │ │ │ ├── dialog_ie7.css │ │ │ │ ├── dialog_ie8.css │ │ │ │ ├── dialog_iequirks.css │ │ │ │ ├── dialog_opera.css │ │ │ │ ├── editor.css │ │ │ │ ├── editor_gecko.css │ │ │ │ ├── editor_ie.css │ │ │ │ ├── editor_ie7.css │ │ │ │ ├── editor_ie8.css │ │ │ │ ├── editor_iequirks.css │ │ │ │ └── readme.md │ │ │ └── styles.js │ │ ├── colorpicker/ │ │ │ ├── bootstrap-colorpicker.css │ │ │ └── bootstrap-colorpicker.js │ │ ├── datatables/ │ │ │ ├── dataTables.bootstrap.css │ │ │ ├── dataTables.bootstrap.js │ │ │ ├── extensions/ │ │ │ │ ├── AutoFill/ │ │ │ │ │ ├── Readme.txt │ │ │ │ │ ├── css/ │ │ │ │ │ │ └── dataTables.autoFill.css │ │ │ │ │ ├── examples/ │ │ │ │ │ │ ├── columns.html │ │ │ │ │ │ ├── complete-callback.html │ │ │ │ │ │ ├── fill-both.html │ │ │ │ │ │ ├── fill-horizontal.html │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── scrolling.html │ │ │ │ │ │ ├── simple.html │ │ │ │ │ │ └── step-callback.html │ │ │ │ │ └── js/ │ │ │ │ │ └── dataTables.autoFill.js │ │ │ │ ├── ColReorder/ │ │ │ │ │ ├── License.txt │ │ │ │ │ ├── Readme.md │ │ │ │ │ ├── css/ │ │ │ │ │ │ └── dataTables.colReorder.css │ │ │ │ │ ├── examples/ │ │ │ │ │ │ ├── alt_insert.html │ │ │ │ │ │ ├── col_filter.html │ │ │ │ │ │ ├── colvis.html │ │ │ │ │ │ ├── fixedcolumns.html │ │ │ │ │ │ ├── fixedheader.html │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── jqueryui.html │ │ │ │ │ │ ├── new_init.html │ │ │ │ │ │ ├── predefined.html │ │ │ │ │ │ ├── realtime.html │ │ │ │ │ │ ├── reset.html │ │ │ │ │ │ ├── scrolling.html │ │ │ │ │ │ ├── server_side.html │ │ │ │ │ │ ├── simple.html │ │ │ │ │ │ └── state_save.html │ │ │ │ │ └── js/ │ │ │ │ │ └── dataTables.colReorder.js │ │ │ │ ├── ColVis/ │ │ │ │ │ ├── License.txt │ │ │ │ │ ├── Readme.md │ │ │ │ │ ├── css/ │ │ │ │ │ │ ├── dataTables.colVis.css │ │ │ │ │ │ └── dataTables.colvis.jqueryui.css │ │ │ │ │ ├── examples/ │ │ │ │ │ │ ├── button_order.html │ │ │ │ │ │ ├── exclude_columns.html │ │ │ │ │ │ ├── group_columns.html │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── jqueryui.html │ │ │ │ │ │ ├── mouseover.html │ │ │ │ │ │ ├── new_init.html │ │ │ │ │ │ ├── restore.html │ │ │ │ │ │ ├── simple.html │ │ │ │ │ │ ├── text.html │ │ │ │ │ │ ├── title_callback.html │ │ │ │ │ │ ├── two_tables.html │ │ │ │ │ │ └── two_tables_identical.html │ │ │ │ │ └── js/ │ │ │ │ │ └── dataTables.colVis.js │ │ │ │ ├── FixedColumns/ │ │ │ │ │ ├── License.txt │ │ │ │ │ ├── Readme.md │ │ │ │ │ ├── css/ │ │ │ │ │ │ └── dataTables.fixedColumns.css │ │ │ │ │ ├── examples/ │ │ │ │ │ │ ├── bootstrap.html │ │ │ │ │ │ ├── col_filter.html │ │ │ │ │ │ ├── colvis.html │ │ │ │ │ │ ├── css_size.html │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── index_column.html │ │ │ │ │ │ ├── left_right_columns.html │ │ │ │ │ │ ├── right_column.html │ │ │ │ │ │ ├── rowspan.html │ │ │ │ │ │ ├── server-side-processing.html │ │ │ │ │ │ ├── simple.html │ │ │ │ │ │ ├── size_fixed.html │ │ │ │ │ │ ├── size_fluid.html │ │ │ │ │ │ └── two_columns.html │ │ │ │ │ └── js/ │ │ │ │ │ └── dataTables.fixedColumns.js │ │ │ │ ├── FixedHeader/ │ │ │ │ │ ├── Readme.txt │ │ │ │ │ ├── css/ │ │ │ │ │ │ └── dataTables.fixedHeader.css │ │ │ │ │ ├── examples/ │ │ │ │ │ │ ├── header_footer.html │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── simple.html │ │ │ │ │ │ ├── top_left_right.html │ │ │ │ │ │ ├── two_tables.html │ │ │ │ │ │ └── zIndexes.html │ │ │ │ │ └── js/ │ │ │ │ │ └── dataTables.fixedHeader.js │ │ │ │ ├── KeyTable/ │ │ │ │ │ ├── Readme.txt │ │ │ │ │ ├── css/ │ │ │ │ │ │ └── dataTables.keyTable.css │ │ │ │ │ ├── examples/ │ │ │ │ │ │ ├── events.html │ │ │ │ │ │ ├── html.html │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── scrolling.html │ │ │ │ │ │ └── simple.html │ │ │ │ │ └── js/ │ │ │ │ │ └── dataTables.keyTable.js │ │ │ │ ├── Responsive/ │ │ │ │ │ ├── License.txt │ │ │ │ │ ├── Readme.md │ │ │ │ │ ├── css/ │ │ │ │ │ │ ├── dataTables.responsive.css │ │ │ │ │ │ └── dataTables.responsive.scss │ │ │ │ │ ├── examples/ │ │ │ │ │ │ ├── child-rows/ │ │ │ │ │ │ │ ├── column-control.html │ │ │ │ │ │ │ ├── custom-renderer.html │ │ │ │ │ │ │ ├── disable-child-rows.html │ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ │ ├── right-column.html │ │ │ │ │ │ │ └── whole-row-control.html │ │ │ │ │ │ ├── display-control/ │ │ │ │ │ │ │ ├── auto.html │ │ │ │ │ │ │ ├── classes.html │ │ │ │ │ │ │ ├── complexHeader.html │ │ │ │ │ │ │ ├── fixedHeader.html │ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ │ └── init-classes.html │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── initialisation/ │ │ │ │ │ │ │ ├── ajax.html │ │ │ │ │ │ │ ├── className.html │ │ │ │ │ │ │ ├── default.html │ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ │ ├── new.html │ │ │ │ │ │ │ └── option.html │ │ │ │ │ │ └── styling/ │ │ │ │ │ │ ├── bootstrap.html │ │ │ │ │ │ ├── compact.html │ │ │ │ │ │ ├── foundation.html │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── scrolling.html │ │ │ │ │ └── js/ │ │ │ │ │ └── dataTables.responsive.js │ │ │ │ ├── Scroller/ │ │ │ │ │ ├── Readme.txt │ │ │ │ │ ├── css/ │ │ │ │ │ │ └── dataTables.scroller.css │ │ │ │ │ ├── examples/ │ │ │ │ │ │ ├── api_scrolling.html │ │ │ │ │ │ ├── data/ │ │ │ │ │ │ │ └── 2500.txt │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── large_js_source.html │ │ │ │ │ │ ├── server-side_processing.html │ │ │ │ │ │ ├── simple.html │ │ │ │ │ │ └── state_saving.html │ │ │ │ │ └── js/ │ │ │ │ │ └── dataTables.scroller.js │ │ │ │ └── TableTools/ │ │ │ │ ├── Readme.md │ │ │ │ ├── css/ │ │ │ │ │ └── dataTables.tableTools.css │ │ │ │ ├── examples/ │ │ │ │ │ ├── ajax.html │ │ │ │ │ ├── alter_buttons.html │ │ │ │ │ ├── bootstrap.html │ │ │ │ │ ├── button_text.html │ │ │ │ │ ├── collection.html │ │ │ │ │ ├── defaults.html │ │ │ │ │ ├── index.html │ │ │ │ │ ├── jqueryui.html │ │ │ │ │ ├── multi_instance.html │ │ │ │ │ ├── multiple_tables.html │ │ │ │ │ ├── new_init.html │ │ │ │ │ ├── pdf_message.html │ │ │ │ │ ├── plug-in.html │ │ │ │ │ ├── select_column.html │ │ │ │ │ ├── select_multi.html │ │ │ │ │ ├── select_os.html │ │ │ │ │ ├── select_single.html │ │ │ │ │ ├── simple.html │ │ │ │ │ └── swf_path.html │ │ │ │ ├── images/ │ │ │ │ │ └── psd/ │ │ │ │ │ ├── collection.psd │ │ │ │ │ ├── copy document.psd │ │ │ │ │ ├── file_types.psd │ │ │ │ │ └── printer.psd │ │ │ │ ├── js/ │ │ │ │ │ └── dataTables.tableTools.js │ │ │ │ └── swf/ │ │ │ │ ├── copy_csv_xls.swf │ │ │ │ └── copy_csv_xls_pdf.swf │ │ │ ├── jquery.dataTables.css │ │ │ ├── jquery.dataTables.js │ │ │ └── jquery.dataTables_themeroller.css │ │ ├── datepicker/ │ │ │ ├── bootstrap-datepicker.js │ │ │ ├── datepicker3.css │ │ │ └── locales/ │ │ │ ├── bootstrap-datepicker.ar.js │ │ │ ├── bootstrap-datepicker.az.js │ │ │ ├── bootstrap-datepicker.bg.js │ │ │ ├── bootstrap-datepicker.ca.js │ │ │ ├── bootstrap-datepicker.cs.js │ │ │ ├── bootstrap-datepicker.cy.js │ │ │ ├── bootstrap-datepicker.da.js │ │ │ ├── bootstrap-datepicker.de.js │ │ │ ├── bootstrap-datepicker.el.js │ │ │ ├── bootstrap-datepicker.es.js │ │ │ ├── bootstrap-datepicker.et.js │ │ │ ├── bootstrap-datepicker.fa.js │ │ │ ├── bootstrap-datepicker.fi.js │ │ │ ├── bootstrap-datepicker.fr.js │ │ │ ├── bootstrap-datepicker.gl.js │ │ │ ├── bootstrap-datepicker.he.js │ │ │ ├── bootstrap-datepicker.hr.js │ │ │ ├── bootstrap-datepicker.hu.js │ │ │ ├── bootstrap-datepicker.id.js │ │ │ ├── bootstrap-datepicker.is.js │ │ │ ├── bootstrap-datepicker.it.js │ │ │ ├── bootstrap-datepicker.ja.js │ │ │ ├── bootstrap-datepicker.ka.js │ │ │ ├── bootstrap-datepicker.kk.js │ │ │ ├── bootstrap-datepicker.kr.js │ │ │ ├── bootstrap-datepicker.lt.js │ │ │ ├── bootstrap-datepicker.lv.js │ │ │ ├── bootstrap-datepicker.mk.js │ │ │ ├── bootstrap-datepicker.ms.js │ │ │ ├── bootstrap-datepicker.nb.js │ │ │ ├── bootstrap-datepicker.nl-BE.js │ │ │ ├── bootstrap-datepicker.nl.js │ │ │ ├── bootstrap-datepicker.no.js │ │ │ ├── bootstrap-datepicker.pl.js │ │ │ ├── bootstrap-datepicker.pt-BR.js │ │ │ ├── bootstrap-datepicker.pt.js │ │ │ ├── bootstrap-datepicker.ro.js │ │ │ ├── bootstrap-datepicker.rs-latin.js │ │ │ ├── bootstrap-datepicker.rs.js │ │ │ ├── bootstrap-datepicker.ru.js │ │ │ ├── bootstrap-datepicker.sk.js │ │ │ ├── bootstrap-datepicker.sl.js │ │ │ ├── bootstrap-datepicker.sq.js │ │ │ ├── bootstrap-datepicker.sv.js │ │ │ ├── bootstrap-datepicker.sw.js │ │ │ ├── bootstrap-datepicker.th.js │ │ │ ├── bootstrap-datepicker.tr.js │ │ │ ├── bootstrap-datepicker.ua.js │ │ │ ├── bootstrap-datepicker.vi.js │ │ │ ├── bootstrap-datepicker.zh-CN.js │ │ │ └── bootstrap-datepicker.zh-TW.js │ │ ├── daterangepicker/ │ │ │ ├── daterangepicker-bs3.css │ │ │ ├── daterangepicker.js │ │ │ └── moment.js │ │ ├── fastclick/ │ │ │ └── fastclick.js │ │ ├── flot/ │ │ │ ├── excanvas.js │ │ │ ├── jquery.colorhelpers.js │ │ │ ├── jquery.flot.canvas.js │ │ │ ├── jquery.flot.categories.js │ │ │ ├── jquery.flot.crosshair.js │ │ │ ├── jquery.flot.errorbars.js │ │ │ ├── jquery.flot.fillbetween.js │ │ │ ├── jquery.flot.image.js │ │ │ ├── jquery.flot.js │ │ │ ├── jquery.flot.navigate.js │ │ │ ├── jquery.flot.pie.js │ │ │ ├── jquery.flot.resize.js │ │ │ ├── jquery.flot.selection.js │ │ │ ├── jquery.flot.stack.js │ │ │ ├── jquery.flot.symbol.js │ │ │ ├── jquery.flot.threshold.js │ │ │ └── jquery.flot.time.js │ │ ├── form/ │ │ │ └── jquery.form.js │ │ ├── fullcalendar/ │ │ │ ├── fullcalendar.css │ │ │ ├── fullcalendar.js │ │ │ └── fullcalendar.print.css │ │ ├── iCheck/ │ │ │ ├── all.css │ │ │ ├── flat/ │ │ │ │ ├── _all.css │ │ │ │ ├── aero.css │ │ │ │ ├── blue.css │ │ │ │ ├── flat.css │ │ │ │ ├── green.css │ │ │ │ ├── grey.css │ │ │ │ ├── orange.css │ │ │ │ ├── pink.css │ │ │ │ ├── purple.css │ │ │ │ ├── red.css │ │ │ │ └── yellow.css │ │ │ ├── futurico/ │ │ │ │ └── futurico.css │ │ │ ├── icheck.js │ │ │ ├── line/ │ │ │ │ ├── _all.css │ │ │ │ ├── aero.css │ │ │ │ ├── blue.css │ │ │ │ ├── green.css │ │ │ │ ├── grey.css │ │ │ │ ├── line.css │ │ │ │ ├── orange.css │ │ │ │ ├── pink.css │ │ │ │ ├── purple.css │ │ │ │ ├── red.css │ │ │ │ └── yellow.css │ │ │ ├── minimal/ │ │ │ │ ├── _all.css │ │ │ │ ├── aero.css │ │ │ │ ├── blue.css │ │ │ │ ├── green.css │ │ │ │ ├── grey.css │ │ │ │ ├── minimal.css │ │ │ │ ├── orange.css │ │ │ │ ├── pink.css │ │ │ │ ├── purple.css │ │ │ │ ├── red.css │ │ │ │ └── yellow.css │ │ │ ├── polaris/ │ │ │ │ └── polaris.css │ │ │ └── square/ │ │ │ ├── _all.css │ │ │ ├── aero.css │ │ │ ├── blue.css │ │ │ ├── green.css │ │ │ ├── grey.css │ │ │ ├── orange.css │ │ │ ├── pink.css │ │ │ ├── purple.css │ │ │ ├── red.css │ │ │ ├── square.css │ │ │ └── yellow.css │ │ ├── input-mask/ │ │ │ ├── jquery.inputmask.date.extensions.js │ │ │ ├── jquery.inputmask.extensions.js │ │ │ ├── jquery.inputmask.js │ │ │ ├── jquery.inputmask.numeric.extensions.js │ │ │ ├── jquery.inputmask.phone.extensions.js │ │ │ ├── jquery.inputmask.regex.extensions.js │ │ │ └── phone-codes/ │ │ │ ├── phone-be.json │ │ │ ├── phone-codes.json │ │ │ └── readme.txt │ │ ├── ionslider/ │ │ │ ├── ion.rangeSlider.css │ │ │ ├── ion.rangeSlider.skinFlat.css │ │ │ └── ion.rangeSlider.skinNice.css │ │ ├── jQueryUI/ │ │ │ └── jquery-ui.js │ │ ├── jvectormap/ │ │ │ ├── jquery-jvectormap-1.2.2.css │ │ │ ├── jquery-jvectormap-usa-en.js │ │ │ └── jquery-jvectormap-world-mill-en.js │ │ ├── knob/ │ │ │ └── jquery.knob.js │ │ ├── layer/ │ │ │ ├── extend/ │ │ │ │ └── layer.ext.js │ │ │ ├── layer.js │ │ │ └── skin/ │ │ │ ├── layer.css │ │ │ └── layer.ext.css │ │ ├── morris/ │ │ │ ├── morris.css │ │ │ └── morris.js │ │ ├── nprogress/ │ │ │ ├── nprogress.css │ │ │ └── nprogress.js │ │ ├── pace/ │ │ │ ├── pace.css │ │ │ └── pace.js │ │ ├── pjax/ │ │ │ └── jquery.pjax.js │ │ ├── select2/ │ │ │ ├── i18n/ │ │ │ │ ├── ar.js │ │ │ │ ├── az.js │ │ │ │ ├── bg.js │ │ │ │ ├── ca.js │ │ │ │ ├── cs.js │ │ │ │ ├── da.js │ │ │ │ ├── de.js │ │ │ │ ├── en.js │ │ │ │ ├── es.js │ │ │ │ ├── et.js │ │ │ │ ├── eu.js │ │ │ │ ├── fa.js │ │ │ │ ├── fi.js │ │ │ │ ├── fr.js │ │ │ │ ├── gl.js │ │ │ │ ├── he.js │ │ │ │ ├── hi.js │ │ │ │ ├── hr.js │ │ │ │ ├── hu.js │ │ │ │ ├── id.js │ │ │ │ ├── is.js │ │ │ │ ├── it.js │ │ │ │ ├── ja.js │ │ │ │ ├── ko.js │ │ │ │ ├── lt.js │ │ │ │ ├── lv.js │ │ │ │ ├── mk.js │ │ │ │ ├── ms.js │ │ │ │ ├── nb.js │ │ │ │ ├── nl.js │ │ │ │ ├── pl.js │ │ │ │ ├── pt-BR.js │ │ │ │ ├── pt.js │ │ │ │ ├── ro.js │ │ │ │ ├── ru.js │ │ │ │ ├── sk.js │ │ │ │ ├── sr-Cyrl.js │ │ │ │ ├── sr.js │ │ │ │ ├── sv.js │ │ │ │ ├── th.js │ │ │ │ ├── tr.js │ │ │ │ ├── uk.js │ │ │ │ ├── vi.js │ │ │ │ ├── zh-CN.js │ │ │ │ └── zh-TW.js │ │ │ ├── select2.css │ │ │ ├── select2.full.js │ │ │ └── select2.js │ │ ├── slimScroll/ │ │ │ └── jquery.slimscroll.js │ │ ├── sparkline/ │ │ │ └── jquery.sparkline.js │ │ ├── timepicker/ │ │ │ ├── bootstrap-timepicker.css │ │ │ └── bootstrap-timepicker.js │ │ ├── toastr/ │ │ │ └── toastr.css │ │ └── wangeditor/ │ │ ├── css/ │ │ │ ├── wangEditor.css │ │ │ ├── wangEditor.less │ │ │ └── wangEditor2.css │ │ └── js/ │ │ ├── lib/ │ │ │ └── jquery-2.2.1.js │ │ └── wangEditor.js │ └── ueditor/ │ ├── dialogs/ │ │ ├── anchor/ │ │ │ └── anchor.html │ │ ├── attachment/ │ │ │ ├── attachment.css │ │ │ ├── attachment.html │ │ │ └── attachment.js │ │ ├── background/ │ │ │ ├── background.css │ │ │ ├── background.html │ │ │ └── background.js │ │ ├── charts/ │ │ │ ├── chart.config.js │ │ │ ├── charts.css │ │ │ ├── charts.html │ │ │ └── charts.js │ │ ├── emotion/ │ │ │ ├── emotion.css │ │ │ ├── emotion.html │ │ │ └── emotion.js │ │ ├── gmap/ │ │ │ └── gmap.html │ │ ├── help/ │ │ │ ├── help.css │ │ │ ├── help.html │ │ │ └── help.js │ │ ├── image/ │ │ │ ├── image.css │ │ │ ├── image.html │ │ │ └── image.js │ │ ├── insertframe/ │ │ │ └── insertframe.html │ │ ├── internal.js │ │ ├── link/ │ │ │ └── link.html │ │ ├── map/ │ │ │ ├── map.html │ │ │ └── show.html │ │ ├── music/ │ │ │ ├── music.css │ │ │ ├── music.html │ │ │ └── music.js │ │ ├── preview/ │ │ │ └── preview.html │ │ ├── scrawl/ │ │ │ ├── scrawl.css │ │ │ ├── scrawl.html │ │ │ └── scrawl.js │ │ ├── searchreplace/ │ │ │ ├── searchreplace.html │ │ │ └── searchreplace.js │ │ ├── snapscreen/ │ │ │ └── snapscreen.html │ │ ├── spechars/ │ │ │ ├── spechars.html │ │ │ └── spechars.js │ │ ├── table/ │ │ │ ├── edittable.css │ │ │ ├── edittable.html │ │ │ ├── edittable.js │ │ │ ├── edittd.html │ │ │ └── edittip.html │ │ ├── template/ │ │ │ ├── config.js │ │ │ ├── template.css │ │ │ ├── template.html │ │ │ └── template.js │ │ ├── video/ │ │ │ ├── video.css │ │ │ ├── video.html │ │ │ └── video.js │ │ ├── webapp/ │ │ │ └── webapp.html │ │ └── wordimage/ │ │ ├── fClipboard_ueditor.swf │ │ ├── imageUploader.swf │ │ ├── tangram.js │ │ ├── wordimage.html │ │ └── wordimage.js │ ├── index.html │ ├── lang/ │ │ ├── en/ │ │ │ └── en.js │ │ └── zh-cn/ │ │ └── zh-cn.js │ ├── php/ │ │ ├── Uploader.class.php │ │ ├── action_crawler.php │ │ ├── action_list.php │ │ ├── action_upload.php │ │ ├── config.json │ │ └── controller.php │ ├── themes/ │ │ ├── default/ │ │ │ ├── css/ │ │ │ │ └── ueditor.css │ │ │ └── dialogbase.css │ │ └── iframe.css │ ├── third-party/ │ │ ├── SyntaxHighlighter/ │ │ │ ├── shCore.js │ │ │ └── shCoreDefault.css │ │ ├── codemirror/ │ │ │ ├── codemirror.css │ │ │ └── codemirror.js │ │ ├── highcharts/ │ │ │ ├── adapters/ │ │ │ │ ├── mootools-adapter.js │ │ │ │ ├── mootools-adapter.src.js │ │ │ │ ├── prototype-adapter.js │ │ │ │ ├── prototype-adapter.src.js │ │ │ │ ├── standalone-framework.js │ │ │ │ └── standalone-framework.src.js │ │ │ ├── highcharts-more.js │ │ │ ├── highcharts-more.src.js │ │ │ ├── highcharts.js │ │ │ ├── highcharts.src.js │ │ │ ├── modules/ │ │ │ │ ├── annotations.js │ │ │ │ ├── annotations.src.js │ │ │ │ ├── canvas-tools.js │ │ │ │ ├── canvas-tools.src.js │ │ │ │ ├── data.js │ │ │ │ ├── data.src.js │ │ │ │ ├── drilldown.js │ │ │ │ ├── drilldown.src.js │ │ │ │ ├── exporting.js │ │ │ │ ├── exporting.src.js │ │ │ │ ├── funnel.js │ │ │ │ ├── funnel.src.js │ │ │ │ ├── heatmap.js │ │ │ │ ├── heatmap.src.js │ │ │ │ ├── map.js │ │ │ │ ├── map.src.js │ │ │ │ ├── no-data-to-display.js │ │ │ │ └── no-data-to-display.src.js │ │ │ └── themes/ │ │ │ ├── dark-blue.js │ │ │ ├── dark-green.js │ │ │ ├── gray.js │ │ │ ├── grid.js │ │ │ └── skies.js │ │ ├── jquery-1.10.2.js │ │ ├── video-js/ │ │ │ ├── video-js.css │ │ │ ├── video-js.swf │ │ │ ├── video.dev.js │ │ │ └── video.js │ │ ├── webuploader/ │ │ │ ├── Uploader.swf │ │ │ ├── webuploader.css │ │ │ ├── webuploader.custom.js │ │ │ ├── webuploader.flashonly.js │ │ │ ├── webuploader.html5only.js │ │ │ ├── webuploader.js │ │ │ └── webuploader.withoutimage.js │ │ └── zeroclipboard/ │ │ ├── ZeroClipboard.js │ │ └── ZeroClipboard.swf │ ├── ueditor.all.js │ ├── ueditor.config.js │ └── ueditor.parse.js ├── think ├── thinkphp/ │ ├── .gitignore │ ├── .htaccess │ ├── .travis.yml │ ├── CONTRIBUTING.md │ ├── LICENSE.txt │ ├── README.md │ ├── base.php │ ├── codecov.yml │ ├── composer.json │ ├── console.php │ ├── convention.php │ ├── helper.php │ ├── lang/ │ │ └── zh-cn.php │ ├── library/ │ │ ├── think/ │ │ │ ├── App.php │ │ │ ├── Build.php │ │ │ ├── Cache.php │ │ │ ├── Collection.php │ │ │ ├── Config.php │ │ │ ├── Console.php │ │ │ ├── Controller.php │ │ │ ├── Cookie.php │ │ │ ├── Db.php │ │ │ ├── Debug.php │ │ │ ├── Env.php │ │ │ ├── Error.php │ │ │ ├── Exception.php │ │ │ ├── File.php │ │ │ ├── Hook.php │ │ │ ├── Lang.php │ │ │ ├── Loader.php │ │ │ ├── Log.php │ │ │ ├── Model.php │ │ │ ├── Paginator.php │ │ │ ├── Process.php │ │ │ ├── Request.php │ │ │ ├── Response.php │ │ │ ├── Route.php │ │ │ ├── Session.php │ │ │ ├── Template.php │ │ │ ├── Url.php │ │ │ ├── Validate.php │ │ │ ├── View.php │ │ │ ├── cache/ │ │ │ │ ├── Driver.php │ │ │ │ └── driver/ │ │ │ │ ├── File.php │ │ │ │ ├── Lite.php │ │ │ │ ├── Memcache.php │ │ │ │ ├── Memcached.php │ │ │ │ ├── Redis.php │ │ │ │ ├── Sqlite.php │ │ │ │ ├── Wincache.php │ │ │ │ └── Xcache.php │ │ │ ├── config/ │ │ │ │ └── driver/ │ │ │ │ ├── Ini.php │ │ │ │ ├── Json.php │ │ │ │ └── Xml.php │ │ │ ├── console/ │ │ │ │ ├── Command.php │ │ │ │ ├── Input.php │ │ │ │ ├── LICENSE │ │ │ │ ├── Output.php │ │ │ │ ├── bin/ │ │ │ │ │ └── README.md │ │ │ │ ├── command/ │ │ │ │ │ ├── Build.php │ │ │ │ │ ├── Clear.php │ │ │ │ │ ├── Help.php │ │ │ │ │ ├── Lists.php │ │ │ │ │ ├── Make.php │ │ │ │ │ ├── make/ │ │ │ │ │ │ ├── Controller.php │ │ │ │ │ │ ├── Model.php │ │ │ │ │ │ └── stubs/ │ │ │ │ │ │ ├── controller.plain.stub │ │ │ │ │ │ ├── controller.stub │ │ │ │ │ │ └── model.stub │ │ │ │ │ └── optimize/ │ │ │ │ │ ├── Autoload.php │ │ │ │ │ ├── Config.php │ │ │ │ │ ├── Route.php │ │ │ │ │ └── Schema.php │ │ │ │ ├── input/ │ │ │ │ │ ├── Argument.php │ │ │ │ │ ├── Definition.php │ │ │ │ │ └── Option.php │ │ │ │ └── output/ │ │ │ │ ├── Ask.php │ │ │ │ ├── Descriptor.php │ │ │ │ ├── Formatter.php │ │ │ │ ├── Question.php │ │ │ │ ├── descriptor/ │ │ │ │ │ └── Console.php │ │ │ │ ├── driver/ │ │ │ │ │ ├── Buffer.php │ │ │ │ │ ├── Console.php │ │ │ │ │ └── Nothing.php │ │ │ │ ├── formatter/ │ │ │ │ │ ├── Stack.php │ │ │ │ │ └── Style.php │ │ │ │ └── question/ │ │ │ │ ├── Choice.php │ │ │ │ └── Confirmation.php │ │ │ ├── controller/ │ │ │ │ ├── Rest.php │ │ │ │ └── Yar.php │ │ │ ├── db/ │ │ │ │ ├── Builder.php │ │ │ │ ├── Connection.php │ │ │ │ ├── Query.php │ │ │ │ ├── builder/ │ │ │ │ │ ├── Mysql.php │ │ │ │ │ ├── Pgsql.php │ │ │ │ │ ├── Sqlite.php │ │ │ │ │ └── Sqlsrv.php │ │ │ │ ├── connector/ │ │ │ │ │ ├── Mysql.php │ │ │ │ │ ├── Pgsql.php │ │ │ │ │ ├── Sqlite.php │ │ │ │ │ ├── Sqlsrv.php │ │ │ │ │ └── pgsql.sql │ │ │ │ └── exception/ │ │ │ │ ├── BindParamException.php │ │ │ │ ├── DataNotFoundException.php │ │ │ │ └── ModelNotFoundException.php │ │ │ ├── debug/ │ │ │ │ ├── Console.php │ │ │ │ └── Html.php │ │ │ ├── exception/ │ │ │ │ ├── ClassNotFoundException.php │ │ │ │ ├── DbException.php │ │ │ │ ├── ErrorException.php │ │ │ │ ├── Handle.php │ │ │ │ ├── HttpException.php │ │ │ │ ├── HttpResponseException.php │ │ │ │ ├── PDOException.php │ │ │ │ ├── RouteNotFoundException.php │ │ │ │ ├── TemplateNotFoundException.php │ │ │ │ ├── ThrowableError.php │ │ │ │ └── ValidateException.php │ │ │ ├── log/ │ │ │ │ └── driver/ │ │ │ │ ├── File.php │ │ │ │ ├── Socket.php │ │ │ │ └── Test.php │ │ │ ├── model/ │ │ │ │ ├── Collection.php │ │ │ │ ├── Merge.php │ │ │ │ ├── Pivot.php │ │ │ │ ├── Relation.php │ │ │ │ └── relation/ │ │ │ │ ├── BelongsTo.php │ │ │ │ ├── BelongsToMany.php │ │ │ │ ├── HasMany.php │ │ │ │ ├── HasManyThrough.php │ │ │ │ ├── HasOne.php │ │ │ │ ├── MorphMany.php │ │ │ │ ├── MorphOne.php │ │ │ │ ├── MorphTo.php │ │ │ │ └── OneToOne.php │ │ │ ├── paginator/ │ │ │ │ └── driver/ │ │ │ │ └── Bootstrap.php │ │ │ ├── process/ │ │ │ │ ├── Builder.php │ │ │ │ ├── Utils.php │ │ │ │ ├── exception/ │ │ │ │ │ ├── Failed.php │ │ │ │ │ └── Timeout.php │ │ │ │ └── pipes/ │ │ │ │ ├── Pipes.php │ │ │ │ ├── Unix.php │ │ │ │ └── Windows.php │ │ │ ├── response/ │ │ │ │ ├── Json.php │ │ │ │ ├── Jsonp.php │ │ │ │ ├── Redirect.php │ │ │ │ ├── View.php │ │ │ │ └── Xml.php │ │ │ ├── session/ │ │ │ │ └── driver/ │ │ │ │ ├── Memcache.php │ │ │ │ ├── Memcached.php │ │ │ │ └── Redis.php │ │ │ ├── template/ │ │ │ │ ├── TagLib.php │ │ │ │ ├── driver/ │ │ │ │ │ └── File.php │ │ │ │ └── taglib/ │ │ │ │ └── Cx.php │ │ │ └── view/ │ │ │ └── driver/ │ │ │ ├── Php.php │ │ │ └── Think.php │ │ └── traits/ │ │ ├── controller/ │ │ │ └── Jump.php │ │ ├── model/ │ │ │ └── SoftDelete.php │ │ └── think/ │ │ └── Instance.php │ ├── phpunit.xml │ ├── start.php │ └── tpl/ │ ├── default_index.tpl │ ├── dispatch_jump.tpl │ ├── page_trace.tpl │ └── think_exception.tpl ├── tpl/ │ ├── addons/ │ │ └── index.html │ └── theme/ │ └── default/ │ └── index.html ├── vendor/ │ ├── autoload.php │ ├── composer/ │ │ ├── ClassLoader.php │ │ ├── LICENSE │ │ ├── autoload_classmap.php │ │ ├── autoload_files.php │ │ ├── autoload_namespaces.php │ │ ├── autoload_psr4.php │ │ ├── autoload_real.php │ │ ├── autoload_static.php │ │ └── installed.json │ ├── dodgepudding/ │ │ └── wechat-php-sdk/ │ │ ├── .gitignore │ │ ├── JSSDK.class.php │ │ ├── README.md │ │ ├── Thinkphp/ │ │ │ ├── EasyWechat.class.php │ │ │ └── TPWechat.class.php │ │ ├── WxPrint.class.php │ │ ├── composer.json │ │ ├── demo.php │ │ ├── errCode.php │ │ ├── old_version/ │ │ │ ├── Thinkphp/ │ │ │ │ ├── Snoopy.class.php │ │ │ │ ├── Wechatauth.class.php │ │ │ │ ├── Wechatext.class.php │ │ │ │ └── Wechatpay.class.php │ │ │ ├── snoopy.class.php │ │ │ ├── test/ │ │ │ │ ├── test2.php │ │ │ │ ├── test3.php │ │ │ │ └── weshare.html │ │ │ ├── wechat.js │ │ │ ├── wechatauth.class.php │ │ │ ├── wechatext.class.php │ │ │ └── wechatpay.class.php │ │ ├── qyerrCode.php │ │ ├── qywechat.class.php │ │ ├── test/ │ │ │ ├── auth.php │ │ │ ├── jsapi/ │ │ │ │ ├── jsapi-demo-6.1.js │ │ │ │ ├── jsapi_demo.php │ │ │ │ └── style.css │ │ │ ├── qydemo.php │ │ │ └── test1.php │ │ ├── wechat.class.php │ │ └── wiki/ │ │ ├── %B5%C4%EA%B5%D8%E2%FE%D6+%DA%D6%E5%FE%A6+զ%F4.md │ │ ├── %B5%F9%BA%FE%EB%EAե%AB%F5+%ED%B5%F6%BB%F5+V2%B5%C4%D1%D5%C5%FA%FE%A6+զ%F4.md │ │ ├── %D5%E5%E0%D5%C1%EEJS.md │ │ ├── %DA%D8%D7ի%B5%FB%A6%B5%EB%AEզ%F2%FE%A6+զ%F4.md │ │ ├── %F5%A9%A6%D5+%C7%D5%C5%E6%B5%ED%E5%B5%D7%C2%DE+%F8%DE%ED%EE%DA%C7%E9%DA%E0%EC.md │ │ ├── %F5+%FC%F5%A9%DC%D5%C5%C0API%FE%A6+զ%F4.md │ │ ├── API%B5%C4%D1%D5%C5%FA%DA%F6%D6޻%BB%FE%E1%FC.md │ │ ├── Home.md │ │ ├── README.md │ │ └── ի%B5%FB%A6API%FE%A6+զ%F4.md │ ├── phpmailer/ │ │ └── phpmailer/ │ │ ├── LICENSE │ │ ├── PHPMailerAutoload.php │ │ ├── VERSION │ │ ├── class.phpmailer.php │ │ ├── class.phpmaileroauth.php │ │ ├── class.phpmaileroauthgoogle.php │ │ ├── class.pop3.php │ │ ├── class.smtp.php │ │ ├── composer.json │ │ ├── examples/ │ │ │ ├── DKIM.phps │ │ │ ├── code_generator.phps │ │ │ ├── contactform.phps │ │ │ ├── contents.html │ │ │ ├── contentsutf8.html │ │ │ ├── exceptions.phps │ │ │ ├── gmail.phps │ │ │ ├── gmail_xoauth.phps │ │ │ ├── index.html │ │ │ ├── mail.phps │ │ │ ├── mailing_list.phps │ │ │ ├── pop_before_smtp.phps │ │ │ ├── scripts/ │ │ │ │ ├── XRegExp.js │ │ │ │ ├── shAutoloader.js │ │ │ │ ├── shBrushPhp.js │ │ │ │ ├── shCore.js │ │ │ │ └── shLegacy.js │ │ │ ├── send_file_upload.phps │ │ │ ├── send_multiple_file_upload.phps │ │ │ ├── sendmail.phps │ │ │ ├── signed-mail.phps │ │ │ ├── smtp.phps │ │ │ ├── smtp_check.phps │ │ │ ├── smtp_no_auth.phps │ │ │ ├── ssl_options.phps │ │ │ └── styles/ │ │ │ ├── shCore.css │ │ │ ├── shCoreDefault.css │ │ │ ├── shCoreDjango.css │ │ │ ├── shCoreEclipse.css │ │ │ ├── shCoreEmacs.css │ │ │ ├── shCoreFadeToGrey.css │ │ │ ├── shCoreMDUltra.css │ │ │ ├── shCoreMidnight.css │ │ │ ├── shCoreRDark.css │ │ │ ├── shThemeAppleScript.css │ │ │ ├── shThemeDefault.css │ │ │ ├── shThemeDjango.css │ │ │ ├── shThemeEclipse.css │ │ │ ├── shThemeEmacs.css │ │ │ ├── shThemeFadeToGrey.css │ │ │ ├── shThemeMDUltra.css │ │ │ ├── shThemeMidnight.css │ │ │ ├── shThemeRDark.css │ │ │ └── shThemeVisualStudio.css │ │ ├── extras/ │ │ │ ├── EasyPeasyICS.php │ │ │ ├── README.md │ │ │ ├── htmlfilter.php │ │ │ └── ntlm_sasl_client.php │ │ ├── get_oauth_token.php │ │ └── language/ │ │ ├── phpmailer.lang-am.php │ │ ├── phpmailer.lang-ar.php │ │ ├── phpmailer.lang-az.php │ │ ├── phpmailer.lang-be.php │ │ ├── phpmailer.lang-bg.php │ │ ├── phpmailer.lang-ca.php │ │ ├── phpmailer.lang-ch.php │ │ ├── phpmailer.lang-cs.php │ │ ├── phpmailer.lang-da.php │ │ ├── phpmailer.lang-de.php │ │ ├── phpmailer.lang-el.php │ │ ├── phpmailer.lang-eo.php │ │ ├── phpmailer.lang-es.php │ │ ├── phpmailer.lang-et.php │ │ ├── phpmailer.lang-fa.php │ │ ├── phpmailer.lang-fi.php │ │ ├── phpmailer.lang-fo.php │ │ ├── phpmailer.lang-fr.php │ │ ├── phpmailer.lang-gl.php │ │ ├── phpmailer.lang-he.php │ │ ├── phpmailer.lang-hr.php │ │ ├── phpmailer.lang-hu.php │ │ ├── phpmailer.lang-id.php │ │ ├── phpmailer.lang-it.php │ │ ├── phpmailer.lang-ja.php │ │ ├── phpmailer.lang-ka.php │ │ ├── phpmailer.lang-ko.php │ │ ├── phpmailer.lang-lt.php │ │ ├── phpmailer.lang-lv.php │ │ ├── phpmailer.lang-ms.php │ │ ├── phpmailer.lang-nb.php │ │ ├── phpmailer.lang-nl.php │ │ ├── phpmailer.lang-pl.php │ │ ├── phpmailer.lang-pt.php │ │ ├── phpmailer.lang-pt_br.php │ │ ├── phpmailer.lang-ro.php │ │ ├── phpmailer.lang-ru.php │ │ ├── phpmailer.lang-sk.php │ │ ├── phpmailer.lang-sl.php │ │ ├── phpmailer.lang-sr.php │ │ ├── phpmailer.lang-sv.php │ │ ├── phpmailer.lang-tr.php │ │ ├── phpmailer.lang-uk.php │ │ ├── phpmailer.lang-vi.php │ │ ├── phpmailer.lang-zh.php │ │ └── phpmailer.lang-zh_cn.php │ └── phpoffice/ │ └── phpexcel/ │ ├── .gitattributes │ ├── .gitignore │ ├── .travis.yml │ ├── Classes/ │ │ ├── PHPExcel/ │ │ │ ├── Autoloader.php │ │ │ ├── CachedObjectStorage/ │ │ │ │ ├── APC.php │ │ │ │ ├── CacheBase.php │ │ │ │ ├── DiscISAM.php │ │ │ │ ├── ICache.php │ │ │ │ ├── Igbinary.php │ │ │ │ ├── Memcache.php │ │ │ │ ├── Memory.php │ │ │ │ ├── MemoryGZip.php │ │ │ │ ├── MemorySerialized.php │ │ │ │ ├── PHPTemp.php │ │ │ │ ├── SQLite.php │ │ │ │ ├── SQLite3.php │ │ │ │ └── Wincache.php │ │ │ ├── CachedObjectStorageFactory.php │ │ │ ├── CalcEngine/ │ │ │ │ ├── CyclicReferenceStack.php │ │ │ │ └── Logger.php │ │ │ ├── Calculation/ │ │ │ │ ├── Database.php │ │ │ │ ├── DateTime.php │ │ │ │ ├── Engineering.php │ │ │ │ ├── Exception.php │ │ │ │ ├── ExceptionHandler.php │ │ │ │ ├── Financial.php │ │ │ │ ├── FormulaParser.php │ │ │ │ ├── FormulaToken.php │ │ │ │ ├── Function.php │ │ │ │ ├── Functions.php │ │ │ │ ├── Logical.php │ │ │ │ ├── LookupRef.php │ │ │ │ ├── MathTrig.php │ │ │ │ ├── Statistical.php │ │ │ │ ├── TextData.php │ │ │ │ ├── Token/ │ │ │ │ │ └── Stack.php │ │ │ │ └── functionlist.txt │ │ │ ├── Calculation.php │ │ │ ├── Cell/ │ │ │ │ ├── AdvancedValueBinder.php │ │ │ │ ├── DataType.php │ │ │ │ ├── DataValidation.php │ │ │ │ ├── DefaultValueBinder.php │ │ │ │ ├── Hyperlink.php │ │ │ │ └── IValueBinder.php │ │ │ ├── Cell.php │ │ │ ├── Chart/ │ │ │ │ ├── Axis.php │ │ │ │ ├── DataSeries.php │ │ │ │ ├── DataSeriesValues.php │ │ │ │ ├── Exception.php │ │ │ │ ├── GridLines.php │ │ │ │ ├── Layout.php │ │ │ │ ├── Legend.php │ │ │ │ ├── PlotArea.php │ │ │ │ ├── Properties.php │ │ │ │ ├── Renderer/ │ │ │ │ │ ├── PHP Charting Libraries.txt │ │ │ │ │ └── jpgraph.php │ │ │ │ └── Title.php │ │ │ ├── Chart.php │ │ │ ├── Comment.php │ │ │ ├── DocumentProperties.php │ │ │ ├── DocumentSecurity.php │ │ │ ├── Exception.php │ │ │ ├── HashTable.php │ │ │ ├── Helper/ │ │ │ │ └── HTML.php │ │ │ ├── IComparable.php │ │ │ ├── IOFactory.php │ │ │ ├── NamedRange.php │ │ │ ├── Reader/ │ │ │ │ ├── Abstract.php │ │ │ │ ├── CSV.php │ │ │ │ ├── DefaultReadFilter.php │ │ │ │ ├── Excel2003XML.php │ │ │ │ ├── Excel2007/ │ │ │ │ │ ├── Chart.php │ │ │ │ │ └── Theme.php │ │ │ │ ├── Excel2007.php │ │ │ │ ├── Excel5/ │ │ │ │ │ ├── Escher.php │ │ │ │ │ ├── MD5.php │ │ │ │ │ └── RC4.php │ │ │ │ ├── Excel5.php │ │ │ │ ├── Exception.php │ │ │ │ ├── Gnumeric.php │ │ │ │ ├── HTML.php │ │ │ │ ├── IReadFilter.php │ │ │ │ ├── IReader.php │ │ │ │ ├── OOCalc.php │ │ │ │ └── SYLK.php │ │ │ ├── ReferenceHelper.php │ │ │ ├── RichText/ │ │ │ │ ├── ITextElement.php │ │ │ │ ├── Run.php │ │ │ │ └── TextElement.php │ │ │ ├── RichText.php │ │ │ ├── Settings.php │ │ │ ├── Shared/ │ │ │ │ ├── CodePage.php │ │ │ │ ├── Date.php │ │ │ │ ├── Drawing.php │ │ │ │ ├── Escher/ │ │ │ │ │ ├── DgContainer/ │ │ │ │ │ │ ├── SpgrContainer/ │ │ │ │ │ │ │ └── SpContainer.php │ │ │ │ │ │ └── SpgrContainer.php │ │ │ │ │ ├── DgContainer.php │ │ │ │ │ ├── DggContainer/ │ │ │ │ │ │ ├── BstoreContainer/ │ │ │ │ │ │ │ ├── BSE/ │ │ │ │ │ │ │ │ └── Blip.php │ │ │ │ │ │ │ └── BSE.php │ │ │ │ │ │ └── BstoreContainer.php │ │ │ │ │ └── DggContainer.php │ │ │ │ ├── Escher.php │ │ │ │ ├── Excel5.php │ │ │ │ ├── File.php │ │ │ │ ├── Font.php │ │ │ │ ├── JAMA/ │ │ │ │ │ ├── CHANGELOG.TXT │ │ │ │ │ ├── CholeskyDecomposition.php │ │ │ │ │ ├── EigenvalueDecomposition.php │ │ │ │ │ ├── LUDecomposition.php │ │ │ │ │ ├── Matrix.php │ │ │ │ │ ├── QRDecomposition.php │ │ │ │ │ ├── SingularValueDecomposition.php │ │ │ │ │ └── utils/ │ │ │ │ │ ├── Error.php │ │ │ │ │ └── Maths.php │ │ │ │ ├── OLE/ │ │ │ │ │ ├── ChainedBlockStream.php │ │ │ │ │ ├── PPS/ │ │ │ │ │ │ ├── File.php │ │ │ │ │ │ └── Root.php │ │ │ │ │ └── PPS.php │ │ │ │ ├── OLE.php │ │ │ │ ├── OLERead.php │ │ │ │ ├── PCLZip/ │ │ │ │ │ ├── gnu-lgpl.txt │ │ │ │ │ ├── pclzip.lib.php │ │ │ │ │ └── readme.txt │ │ │ │ ├── PasswordHasher.php │ │ │ │ ├── String.php │ │ │ │ ├── TimeZone.php │ │ │ │ ├── XMLWriter.php │ │ │ │ ├── ZipArchive.php │ │ │ │ ├── ZipStreamWrapper.php │ │ │ │ └── trend/ │ │ │ │ ├── bestFitClass.php │ │ │ │ ├── exponentialBestFitClass.php │ │ │ │ ├── linearBestFitClass.php │ │ │ │ ├── logarithmicBestFitClass.php │ │ │ │ ├── polynomialBestFitClass.php │ │ │ │ ├── powerBestFitClass.php │ │ │ │ └── trendClass.php │ │ │ ├── Style/ │ │ │ │ ├── Alignment.php │ │ │ │ ├── Border.php │ │ │ │ ├── Borders.php │ │ │ │ ├── Color.php │ │ │ │ ├── Conditional.php │ │ │ │ ├── Fill.php │ │ │ │ ├── Font.php │ │ │ │ ├── NumberFormat.php │ │ │ │ ├── Protection.php │ │ │ │ └── Supervisor.php │ │ │ ├── Style.php │ │ │ ├── Worksheet/ │ │ │ │ ├── AutoFilter/ │ │ │ │ │ ├── Column/ │ │ │ │ │ │ └── Rule.php │ │ │ │ │ └── Column.php │ │ │ │ ├── AutoFilter.php │ │ │ │ ├── BaseDrawing.php │ │ │ │ ├── CellIterator.php │ │ │ │ ├── Column.php │ │ │ │ ├── ColumnCellIterator.php │ │ │ │ ├── ColumnDimension.php │ │ │ │ ├── ColumnIterator.php │ │ │ │ ├── Drawing/ │ │ │ │ │ └── Shadow.php │ │ │ │ ├── Drawing.php │ │ │ │ ├── HeaderFooter.php │ │ │ │ ├── HeaderFooterDrawing.php │ │ │ │ ├── MemoryDrawing.php │ │ │ │ ├── PageMargins.php │ │ │ │ ├── PageSetup.php │ │ │ │ ├── Protection.php │ │ │ │ ├── Row.php │ │ │ │ ├── RowCellIterator.php │ │ │ │ ├── RowDimension.php │ │ │ │ ├── RowIterator.php │ │ │ │ └── SheetView.php │ │ │ ├── Worksheet.php │ │ │ ├── WorksheetIterator.php │ │ │ ├── Writer/ │ │ │ │ ├── Abstract.php │ │ │ │ ├── CSV.php │ │ │ │ ├── Excel2007/ │ │ │ │ │ ├── Chart.php │ │ │ │ │ ├── Comments.php │ │ │ │ │ ├── ContentTypes.php │ │ │ │ │ ├── DocProps.php │ │ │ │ │ ├── Drawing.php │ │ │ │ │ ├── Rels.php │ │ │ │ │ ├── RelsRibbon.php │ │ │ │ │ ├── RelsVBA.php │ │ │ │ │ ├── StringTable.php │ │ │ │ │ ├── Style.php │ │ │ │ │ ├── Theme.php │ │ │ │ │ ├── Workbook.php │ │ │ │ │ ├── Worksheet.php │ │ │ │ │ └── WriterPart.php │ │ │ │ ├── Excel2007.php │ │ │ │ ├── Excel5/ │ │ │ │ │ ├── BIFFwriter.php │ │ │ │ │ ├── Escher.php │ │ │ │ │ ├── Font.php │ │ │ │ │ ├── Parser.php │ │ │ │ │ ├── Workbook.php │ │ │ │ │ ├── Worksheet.php │ │ │ │ │ └── Xf.php │ │ │ │ ├── Excel5.php │ │ │ │ ├── Exception.php │ │ │ │ ├── HTML.php │ │ │ │ ├── IWriter.php │ │ │ │ ├── OpenDocument/ │ │ │ │ │ ├── Cell/ │ │ │ │ │ │ └── Comment.php │ │ │ │ │ ├── Content.php │ │ │ │ │ ├── Meta.php │ │ │ │ │ ├── MetaInf.php │ │ │ │ │ ├── Mimetype.php │ │ │ │ │ ├── Settings.php │ │ │ │ │ ├── Styles.php │ │ │ │ │ ├── Thumbnails.php │ │ │ │ │ └── WriterPart.php │ │ │ │ ├── OpenDocument.php │ │ │ │ ├── PDF/ │ │ │ │ │ ├── Core.php │ │ │ │ │ ├── DomPDF.php │ │ │ │ │ ├── mPDF.php │ │ │ │ │ └── tcPDF.php │ │ │ │ └── PDF.php │ │ │ └── locale/ │ │ │ ├── bg/ │ │ │ │ └── config │ │ │ ├── cs/ │ │ │ │ ├── config │ │ │ │ └── functions │ │ │ ├── da/ │ │ │ │ ├── config │ │ │ │ └── functions │ │ │ ├── de/ │ │ │ │ ├── config │ │ │ │ └── functions │ │ │ ├── en/ │ │ │ │ └── uk/ │ │ │ │ └── config │ │ │ ├── es/ │ │ │ │ ├── config │ │ │ │ └── functions │ │ │ ├── fi/ │ │ │ │ ├── config │ │ │ │ └── functions │ │ │ ├── fr/ │ │ │ │ ├── config │ │ │ │ └── functions │ │ │ ├── hu/ │ │ │ │ ├── config │ │ │ │ └── functions │ │ │ ├── it/ │ │ │ │ ├── config │ │ │ │ └── functions │ │ │ ├── nl/ │ │ │ │ ├── config │ │ │ │ └── functions │ │ │ ├── no/ │ │ │ │ ├── config │ │ │ │ └── functions │ │ │ ├── pl/ │ │ │ │ ├── config │ │ │ │ └── functions │ │ │ ├── pt/ │ │ │ │ ├── br/ │ │ │ │ │ ├── config │ │ │ │ │ └── functions │ │ │ │ ├── config │ │ │ │ └── functions │ │ │ ├── ru/ │ │ │ │ ├── config │ │ │ │ └── functions │ │ │ ├── sv/ │ │ │ │ ├── config │ │ │ │ └── functions │ │ │ └── tr/ │ │ │ ├── config │ │ │ └── functions │ │ └── PHPExcel.php │ ├── Examples/ │ │ ├── .gitignore │ │ ├── 01pharSimple.php │ │ ├── 01simple-download-ods.php │ │ ├── 01simple-download-pdf.php │ │ ├── 01simple-download-xls.php │ │ ├── 01simple-download-xlsx.php │ │ ├── 01simple.php │ │ ├── 01simplePCLZip.php │ │ ├── 02types-xls.php │ │ ├── 02types.php │ │ ├── 03formulas.php │ │ ├── 04printing.php │ │ ├── 05featuredemo.inc.php │ │ ├── 05featuredemo.php │ │ ├── 06largescale-with-cellcaching-sqlite.php │ │ ├── 06largescale-with-cellcaching-sqlite3.php │ │ ├── 06largescale-with-cellcaching.php │ │ ├── 06largescale-xls.php │ │ ├── 06largescale.php │ │ ├── 07reader.php │ │ ├── 07readerPCLZip.php │ │ ├── 08conditionalformatting.php │ │ ├── 08conditionalformatting2.php │ │ ├── 09pagebreaks.php │ │ ├── 10autofilter-selection-1.php │ │ ├── 10autofilter-selection-2.php │ │ ├── 10autofilter-selection-display.php │ │ ├── 10autofilter.php │ │ ├── 11documentsecurity-xls.php │ │ ├── 11documentsecurity.php │ │ ├── 12cellProtection.php │ │ ├── 13calculation.php │ │ ├── 14excel5.php │ │ ├── 15datavalidation-xls.php │ │ ├── 15datavalidation.php │ │ ├── 16csv.php │ │ ├── 17html.php │ │ ├── 18extendedcalculation.php │ │ ├── 19namedrange.php │ │ ├── 20readexcel5.php │ │ ├── 21pdf.php │ │ ├── 22heavilyformatted.php │ │ ├── 23sharedstyles.php │ │ ├── 24readfilter.php │ │ ├── 25inmemoryimage.php │ │ ├── 26utf8.php │ │ ├── 27imagesexcel5.php │ │ ├── 28iterator.php │ │ ├── 29advancedvaluebinder.php │ │ ├── 30template.php │ │ ├── 31docproperties_write-xls.php │ │ ├── 31docproperties_write.php │ │ ├── 32chartreadwrite.php │ │ ├── 33chartcreate-area.php │ │ ├── 33chartcreate-bar-stacked.php │ │ ├── 33chartcreate-bar.php │ │ ├── 33chartcreate-column-2.php │ │ ├── 33chartcreate-column.php │ │ ├── 33chartcreate-composite.php │ │ ├── 33chartcreate-line.php │ │ ├── 33chartcreate-multiple-charts.php │ │ ├── 33chartcreate-pie.php │ │ ├── 33chartcreate-radar.php │ │ ├── 33chartcreate-scatter.php │ │ ├── 33chartcreate-stock.php │ │ ├── 34chartupdate.php │ │ ├── 35chartrender.php │ │ ├── 36chartreadwriteHTML.php │ │ ├── 36chartreadwritePDF.php │ │ ├── 37page_layout_view.php │ │ ├── 38cloneWorksheet.php │ │ ├── 39dropdown.php │ │ ├── 40duplicateStyle.php │ │ ├── 41password.php │ │ ├── 42richText.php │ │ ├── Excel2003XMLReader.php │ │ ├── Excel2003XMLTest.xml │ │ ├── GnumericReader.php │ │ ├── GnumericTest.gnumeric │ │ ├── OOCalcReader.php │ │ ├── OOCalcReaderPCLZip.php │ │ ├── OOCalcTest.ods │ │ ├── Quadratic.php │ │ ├── Quadratic2.php │ │ ├── SylkReader.php │ │ ├── SylkTest.slk │ │ ├── XMLReader.php │ │ ├── XMLTest.xml │ │ ├── data/ │ │ │ └── continents/ │ │ │ ├── Africa.txt │ │ │ ├── Asia.txt │ │ │ ├── Europe.txt │ │ │ ├── North America.txt │ │ │ ├── Oceania.txt │ │ │ └── South America.txt │ │ └── runall.php │ ├── changelog.txt │ ├── composer.json │ ├── install.txt │ ├── license.md │ └── unitTests/ │ ├── Classes/ │ │ └── PHPExcel/ │ │ ├── AutoloaderTest.php │ │ ├── Calculation/ │ │ │ ├── DateTimeTest.php │ │ │ ├── EngineeringTest.php │ │ │ ├── FinancialTest.php │ │ │ ├── FunctionsTest.php │ │ │ ├── LogicalTest.php │ │ │ ├── LookupRefTest.php │ │ │ ├── MathTrigTest.php │ │ │ └── TextDataTest.php │ │ ├── CalculationTest.php │ │ ├── Cell/ │ │ │ ├── AdvancedValueBinderTest.php │ │ │ ├── DataTypeTest.php │ │ │ ├── DefaultValueBinderTest.php │ │ │ └── HyperlinkTest.php │ │ ├── CellTest.php │ │ ├── Chart/ │ │ │ ├── DataSeriesValuesTest.php │ │ │ ├── LayoutTest.php │ │ │ └── LegendTest.php │ │ ├── Reader/ │ │ │ └── XEEValidatorTest.php │ │ ├── ReferenceHelperTest.php │ │ ├── Shared/ │ │ │ ├── CodePageTest.php │ │ │ ├── DateTest.php │ │ │ ├── FileTest.php │ │ │ ├── FontTest.php │ │ │ ├── PasswordHasherTest.php │ │ │ ├── StringTest.php │ │ │ └── TimeZoneTest.php │ │ ├── Style/ │ │ │ ├── ColorTest.php │ │ │ └── NumberFormatTest.php │ │ └── Worksheet/ │ │ ├── AutoFilter/ │ │ │ ├── Column/ │ │ │ │ └── RuleTest.php │ │ │ └── ColumnTest.php │ │ ├── AutoFilterTest.php │ │ ├── CellCollectionTest.php │ │ ├── ColumnCellIteratorTest.php │ │ ├── ColumnIteratorTest.php │ │ ├── RowCellIteratorTest.php │ │ ├── RowIteratorTest.php │ │ ├── WorksheetColumnTest.php │ │ └── WorksheetRowTest.php │ ├── bootstrap.php │ ├── custom/ │ │ ├── Complex.php │ │ └── complexAssert.php │ ├── phpunit-cc.xml │ ├── phpunit.xml │ ├── rawTestData/ │ │ ├── Calculation/ │ │ │ ├── DateTime/ │ │ │ │ ├── DATE.data │ │ │ │ ├── DATEDIF.data │ │ │ │ ├── DATEVALUE.data │ │ │ │ ├── DAY.data │ │ │ │ ├── DAYS360.data │ │ │ │ ├── EDATE.data │ │ │ │ ├── EOMONTH.data │ │ │ │ ├── HOUR.data │ │ │ │ ├── MINUTE.data │ │ │ │ ├── MONTH.data │ │ │ │ ├── NETWORKDAYS.data │ │ │ │ ├── SECOND.data │ │ │ │ ├── TIME.data │ │ │ │ ├── TIMEVALUE.data │ │ │ │ ├── WEEKDAY.data │ │ │ │ ├── WEEKNUM.data │ │ │ │ ├── WORKDAY.data │ │ │ │ ├── YEAR.data │ │ │ │ └── YEARFRAC.data │ │ │ ├── Engineering/ │ │ │ │ ├── BESSELI.data │ │ │ │ ├── BESSELJ.data │ │ │ │ ├── BESSELK.data │ │ │ │ ├── BESSELY.data │ │ │ │ ├── BIN2DEC.data │ │ │ │ ├── BIN2HEX.data │ │ │ │ ├── BIN2OCT.data │ │ │ │ ├── COMPLEX.data │ │ │ │ ├── CONVERTUOM.data │ │ │ │ ├── DEC2BIN.data │ │ │ │ ├── DEC2HEX.data │ │ │ │ ├── DEC2OCT.data │ │ │ │ ├── DELTA.data │ │ │ │ ├── ERF.data │ │ │ │ ├── ERFC.data │ │ │ │ ├── GESTEP.data │ │ │ │ ├── HEX2BIN.data │ │ │ │ ├── HEX2DEC.data │ │ │ │ ├── HEX2OCT.data │ │ │ │ ├── IMABS.data │ │ │ │ ├── IMAGINARY.data │ │ │ │ ├── IMARGUMENT.data │ │ │ │ ├── IMCONJUGATE.data │ │ │ │ ├── IMCOS.data │ │ │ │ ├── IMDIV.data │ │ │ │ ├── IMEXP.data │ │ │ │ ├── IMLN.data │ │ │ │ ├── IMLOG10.data │ │ │ │ ├── IMLOG2.data │ │ │ │ ├── IMPOWER.data │ │ │ │ ├── IMPRODUCT.data │ │ │ │ ├── IMREAL.data │ │ │ │ ├── IMSIN.data │ │ │ │ ├── IMSQRT.data │ │ │ │ ├── IMSUB.data │ │ │ │ ├── IMSUM.data │ │ │ │ ├── OCT2BIN.data │ │ │ │ ├── OCT2DEC.data │ │ │ │ └── OCT2HEX.data │ │ │ ├── Financial/ │ │ │ │ ├── ACCRINT.data │ │ │ │ ├── ACCRINTM.data │ │ │ │ ├── AMORDEGRC.data │ │ │ │ ├── AMORLINC.data │ │ │ │ ├── COUPDAYBS.data │ │ │ │ ├── COUPDAYS.data │ │ │ │ ├── COUPDAYSNC.data │ │ │ │ ├── COUPNCD.data │ │ │ │ ├── COUPNUM.data │ │ │ │ ├── COUPPCD.data │ │ │ │ ├── CUMIPMT.data │ │ │ │ ├── CUMPRINC.data │ │ │ │ ├── DB.data │ │ │ │ ├── DDB.data │ │ │ │ ├── DISC.data │ │ │ │ ├── DOLLARDE.data │ │ │ │ ├── DOLLARFR.data │ │ │ │ ├── EFFECT.data │ │ │ │ ├── FV.data │ │ │ │ ├── FVSCHEDULE.data │ │ │ │ ├── INTRATE.data │ │ │ │ ├── IPMT.data │ │ │ │ ├── IRR.data │ │ │ │ ├── ISPMT.data │ │ │ │ ├── MIRR.data │ │ │ │ ├── NOMINAL.data │ │ │ │ ├── NPER.data │ │ │ │ ├── NPV.data │ │ │ │ ├── PRICE.data │ │ │ │ ├── RATE.data │ │ │ │ └── XIRR.data │ │ │ ├── Functions/ │ │ │ │ ├── ERROR_TYPE.data │ │ │ │ ├── IS_BLANK.data │ │ │ │ ├── IS_ERR.data │ │ │ │ ├── IS_ERROR.data │ │ │ │ ├── IS_EVEN.data │ │ │ │ ├── IS_LOGICAL.data │ │ │ │ ├── IS_NA.data │ │ │ │ ├── IS_NONTEXT.data │ │ │ │ ├── IS_NUMBER.data │ │ │ │ ├── IS_ODD.data │ │ │ │ ├── IS_TEXT.data │ │ │ │ ├── N.data │ │ │ │ └── TYPE.data │ │ │ ├── Logical/ │ │ │ │ ├── AND.data │ │ │ │ ├── IF.data │ │ │ │ ├── IFERROR.data │ │ │ │ ├── NOT.data │ │ │ │ └── OR.data │ │ │ ├── LookupRef/ │ │ │ │ ├── HLOOKUP.data │ │ │ │ └── VLOOKUP.data │ │ │ ├── MathTrig/ │ │ │ │ ├── ATAN2.data │ │ │ │ ├── CEILING.data │ │ │ │ ├── COMBIN.data │ │ │ │ ├── EVEN.data │ │ │ │ ├── FACT.data │ │ │ │ ├── FACTDOUBLE.data │ │ │ │ ├── FLOOR.data │ │ │ │ ├── GCD.data │ │ │ │ ├── INT.data │ │ │ │ ├── LCM.data │ │ │ │ ├── LOG.data │ │ │ │ ├── MDETERM.data │ │ │ │ ├── MINVERSE.data │ │ │ │ ├── MMULT.data │ │ │ │ ├── MOD.data │ │ │ │ ├── MROUND.data │ │ │ │ ├── MULTINOMIAL.data │ │ │ │ ├── ODD.data │ │ │ │ ├── POWER.data │ │ │ │ ├── PRODUCT.data │ │ │ │ ├── QUOTIENT.data │ │ │ │ ├── ROMAN.data │ │ │ │ ├── ROUNDDOWN.data │ │ │ │ ├── ROUNDUP.data │ │ │ │ ├── SERIESSUM.data │ │ │ │ ├── SIGN.data │ │ │ │ ├── SQRTPI.data │ │ │ │ ├── SUMSQ.data │ │ │ │ └── TRUNC.data │ │ │ └── TextData/ │ │ │ ├── CHAR.data │ │ │ ├── CLEAN.data │ │ │ ├── CODE.data │ │ │ ├── CONCATENATE.data │ │ │ ├── DOLLAR.data │ │ │ ├── FIND.data │ │ │ ├── FIXED.data │ │ │ ├── LEFT.data │ │ │ ├── LEN.data │ │ │ ├── LOWER.data │ │ │ ├── MID.data │ │ │ ├── PROPER.data │ │ │ ├── REPLACE.data │ │ │ ├── RIGHT.data │ │ │ ├── SEARCH.data │ │ │ ├── SUBSTITUTE.data │ │ │ ├── T.data │ │ │ ├── TEXT.data │ │ │ ├── TRIM.data │ │ │ ├── UPPER.data │ │ │ └── VALUE.data │ │ ├── CalculationBinaryComparisonOperation.data │ │ ├── Cell/ │ │ │ └── DefaultValueBinder.data │ │ ├── CellAbsoluteCoordinate.data │ │ ├── CellAbsoluteReference.data │ │ ├── CellBuildRange.data │ │ ├── CellCoordinates.data │ │ ├── CellExtractAllCellReferencesInRange.data │ │ ├── CellGetRangeBoundaries.data │ │ ├── CellRangeBoundaries.data │ │ ├── CellRangeDimension.data │ │ ├── CellSplitRange.data │ │ ├── ColumnIndex.data │ │ ├── ColumnString.data │ │ ├── Reader/ │ │ │ ├── XEETestInvalidUTF-16.xml │ │ │ ├── XEETestInvalidUTF-16BE.xml │ │ │ ├── XEETestInvalidUTF-16LE.xml │ │ │ ├── XEETestInvalidUTF-8.xml │ │ │ ├── XEETestValidUTF-16.xml │ │ │ ├── XEETestValidUTF-16BE.xml │ │ │ ├── XEETestValidUTF-16LE.xml │ │ │ └── XEETestValidUTF-8.xml │ │ ├── Shared/ │ │ │ ├── CentimeterSizeToPixels.data │ │ │ ├── CodePage.data │ │ │ ├── DateTimeExcelToPHP1900.data │ │ │ ├── DateTimeExcelToPHP1900Timezone.data │ │ │ ├── DateTimeExcelToPHP1904.data │ │ │ ├── DateTimeFormatCodes.data │ │ │ ├── DateTimeFormattedPHPToExcel1900.data │ │ │ ├── DateTimePHPToExcel1900.data │ │ │ ├── DateTimePHPToExcel1904.data │ │ │ ├── FontSizeToPixels.data │ │ │ ├── InchSizeToPixels.data │ │ │ └── PasswordHashes.data │ │ └── Style/ │ │ ├── ColorChangeBrightness.data │ │ ├── ColorGetBlue.data │ │ ├── ColorGetGreen.data │ │ ├── ColorGetRed.data │ │ └── NumberFormat.data │ └── testDataFileIterator.php └── wemall7.sql ================================================ FILE CONTENTS ================================================ ================================================ FILE: .htaccess ================================================ Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] ================================================ FILE: .travis.yml ================================================ sudo: false language: php branches: only: - stable cache: directories: - $HOME/.composer/cache before_install: - composer self-update install: - composer install --no-dev --no-interaction --ignore-platform-reqs - zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Core.zip . - composer require --update-no-dev --no-interaction "topthink/think-image:^1.0" - composer require --update-no-dev --no-interaction "topthink/think-migration:^1.0" - composer require --update-no-dev --no-interaction "topthink/think-captcha:^1.0" - composer require --update-no-dev --no-interaction "topthink/think-mongo:^1.0" - composer require --update-no-dev --no-interaction "topthink/think-worker:^1.0" - composer require --update-no-dev --no-interaction "topthink/think-helper:^1.0" - composer require --update-no-dev --no-interaction "topthink/think-queue:^1.0" - composer require --update-no-dev --no-interaction "topthink/think-angular:^1.0" - composer require --dev --update-no-dev --no-interaction "topthink/think-testing:^1.0" - zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Full.zip . script: - php think unit deploy: provider: releases api_key: secure: TSF6bnl2JYN72UQOORAJYL+CqIryP2gHVKt6grfveQ7d9rleAEoxlq6PWxbvTI4jZ5nrPpUcBUpWIJHNgVcs+bzLFtyh5THaLqm39uCgBbrW7M8rI26L8sBh/6nsdtGgdeQrO/cLu31QoTzbwuz1WfAVoCdCkOSZeXyT/CclH99qV6RYyQYqaD2wpRjrhA5O4fSsEkiPVuk0GaOogFlrQHx+C+lHnf6pa1KxEoN1A0UxxVfGX6K4y5g4WQDO5zT4bLeubkWOXK0G51XSvACDOZVIyLdjApaOFTwamPcD3S1tfvuxRWWvsCD5ljFvb2kSmx5BIBNwN80MzuBmrGIC27XLGOxyMerwKxB6DskNUO9PflKHDPI61DRq0FTy1fv70SFMSiAtUv9aJRT41NQh9iJJ0vC8dl+xcxrWIjU1GG6+l/ZcRqVx9V1VuGQsLKndGhja7SQ+X1slHl76fRq223sMOql7MFCd0vvvxVQ2V39CcFKao/LB1aPH3VhODDEyxwx6aXoTznvC/QPepgWsHOWQzKj9ftsgDbsNiyFlXL4cu8DWUty6rQy8zT2b4O8b1xjcwSUCsy+auEjBamzQkMJFNlZAIUrukL/NbUhQU37TAbwsFyz7X0E/u/VMle/nBCNAzgkMwAUjiHM6FqrKKBRWFbPrSIixjfjkCnrMEPw= file: - ThinkPHP_Core.zip - ThinkPHP_Full.zip skip_cleanup: true on: tags: true ================================================ FILE: LICENSE.txt ================================================ ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 版权所有Copyright © 2006-2016 by ThinkPHP (http://thinkphp.cn) All rights reserved。 ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 Apache Licence是著名的非盈利开源组织Apache采用的协议。 该协议和BSD类似,鼓励代码共享和尊重原作者的著作权, 允许代码修改,再作为开源或商业软件发布。需要满足 的条件: 1. 需要给代码的用户一份Apache Licence ; 2. 如果你修改了代码,需要在被修改的文件中说明; 3. 在延伸的代码中(修改和有源代码衍生的代码中)需要 带有原来代码中的协议,商标,专利声明和其他原来作者规 定需要包含的说明; 4. 如果再发布的产品中包含一个Notice文件,则在Notice文 件中需要带有本协议内容。你可以在Notice中增加自己的 许可,但不可以表现为对Apache Licence构成更改。 具体的协议参考:http://www.apache.org/licenses/LICENSE-2.0 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: README.md ================================================ WeMall商城 7.0 (不含商城) =============== ​ wemall7.0 开源系统,基于thinkphp5开发,支持composer,优化核心,减少依赖,基于全新的架构思想和命名空间。 ### thinkphp5.0特性 - 基于命名空间和众多PHP新特性 - 核心功能组件化 - 强化路由功能 - 更灵活的控制器 - 重构的模型和数据库类 - 配置文件可分离 - 重写的自动验证和完成 - 简化扩展机制 - API支持完善 - 改进的Log类 - 命令行访问支持 - REST支持 - 引导文件支持 - 方便的自动生成定义 - 真正惰性加载 - 分布式环境支持 - 更多的社交类库 > ThinkPHP5的运行环境要求PHP5.4以上。 ### wemall7.0特性 - 基于TP5,性能优越 - 前后分离,简单方便 - 插件扩展,功能丰富 - 钩子机制,高度扩展 - 自动升级,维护简单 - 使用pjax,体验提升 - rest架构,耦合度低 > ##### 功能列表 > > 1. 首页=》系统首页 > > 2. 设置=》站点设置,短信配置,邮件配置 > > 3. 微信=》微信配置,微信菜单,自定义回复,模版消息,多客服设置,微信打印机 > > 4. 内容=》文章分类,文章列表 > > 5. 模版=》模版设置,邮件模版,短信模版 > > 6. 用户=》管理员用户组,管理员列表,用户列表,会员列表 > > 7. 插件=》插件管理,插件商店 > > 8. 帮助=》使用帮助 > > ... ## 插件钩子机制 ### 安装 > composer require qingyuexi/think-addons ### 配置 #### 公共配置 ``` 'addons'=>[ // 可以定义多个钩子 'testhook'=>'putong\demo\demo' // 键为钩子名称,用于在业务中自定义钩子处理,值为实现该钩子的插件, // 多个插件可以用数组也可以用逗号分割 ] ``` 或者在application\extra目录中新建`addons.php`,内容为: ``` 'putong\demo\demo' // 键为钩子名称,用于在业务中自定义钩子处理,值为实现该钩子的插件, // 多个插件可以用数组也可以用逗号分割 ] ``` ### 创建插件 > 创建的插件可以在view视图中使用,也可以在php业务中使用 安装完成后访问系统时会在项目根目录生成名为`addons`的目录,在该目录中创建需要的插件。 下面写一个例子: #### 创建putong分类插件 > 在addons目录中创建putong目录 #### 创建插件分类配置文件 > 在putong目录中创建config.php类文件,插件配置文件可以省略。 ``` 'putong', 'title' => 'putong', 'description' => 'putong类插件', 'status' => 1, 'author' => '清月曦' ]; ``` #### 在putong分类下创建demo插件 > 在addons目录下的putong目录下创建demo目录 #### 创建钩子实现类 > 在test目录中创建Demo.php类文件。注意:类文件首字母需大写 ``` 'test', // 插件标识 'title' => '插件测试', // 插件名称 'description' => 'thinkph5插件测试', // 插件简介 'status' => 0, // 状态 'author' => 'byron sampson', 'version' => '0.1' ]; /** * 插件安装方法 * @return bool */ public function install() { return true; } /** * 插件卸载方法 * @return bool */ public function uninstall() { return true; } /** * 实现的testhook钩子方法 * @return mixed */ public function testhook($param) { // 调用钩子时候的参数信息 print_r($param); // 当前插件的配置信息,配置信息存在当前目录的config.php文件中,见下方 print_r($this->getConfig()); // 可以返回模板,模板文件默认读取的为插件目录中的文件。模板名不能为空! return $this->fetch('info'); } } ``` #### 创建插件配置文件 > 在test目录中创建config.php类文件,插件配置文件可以省略。 ``` 'demo', 'title' => 'demo', 'description' => 'demo插件', 'status' => 1, 'url' => true, 'author' => '清月曦', 'version' => '0.1' ]; ``` #### 创建钩子模板文件 > 在demo目录中创建info.html模板文件,钩子在使用fetch方法时对应的模板文件。 ```

hello tpl

如果插件中需要有链接或提交数据的业务,可以在插件中创建controller业务文件, 要访问插件中的controller时使用addon_url生成url链接。 如下: link demo 格式为: demo为插件名,admin为controller中的类名,index为controller中的方法 ``` #### 创建插件的controller文件 > 在test目录中创建controller目录,在controller目录中创建Action.php文件 controller类的用法与tp5中的controller一致 ``` 如果需要使用view模板则需要继承`\think\addons\Controller`类 模板文件所在位置为插件目录的view中,规则与模块中的view规则一致 ``` fetch(); } } ``` ### 使用钩子 > 创建好插件后就可以在正常业务中使用该插件中的钩子了 使用钩子的时候第二个参数可以省略 #### 模板中使用钩子 ```
{:hook('testhook', ['id'=>1])}
``` #### php业务中使用 > 只要是thinkphp5正常流程中的任意位置均可以使用 ``` hook('testhook', ['id'=>1]) ``` ### 插件目录结构 #### 最终生成的目录结构为 ``` tp5 - addons -- putong --- demo ---- controller ----- Admin.php ---- view ---- action ----- link.html --- config.php --- info.html --- Demo.php - application - thinkphp - extend - vendor - public ``` ## 版权信息 wemall7开源版遵循Apache2开源协议发布,并提供免费使用。本项目包含的第三方源码和二进制文件之版权信息另行标注。版权所有Copyright © 2016-2017 by wemallshop.com ([http://www.wemallshop.com](http://www.wemallshop.com)) All rights reserved。 ================================================ FILE: addons/common/config.php ================================================ 'common', 'title' => '公共插件', 'description' => '公共插件列表', 'author' => '清月曦' ]; ================================================ FILE: addons/putong/config.php ================================================ 'putong', 'title' => '普通版', 'description' => '普通版插件列表', 'status' => 1, 'url' => true, 'author' => '清月曦', 'version' => '0.1' ]; ================================================ FILE: addons/putong/demo/Demo.php ================================================ // +---------------------------------------------------------------------- namespace addons\putong\demo; use think\Addons; /** * 插件测试 * @author byron sampson */ class Demo extends Addons { public $info = [ 'name' => 'test', 'title' => '插件测试', 'description' => 'thinkph5插件测试', 'status' => 0, 'author' => 'byron sampson', 'version' => '0.1' ]; /** * 插件安装方法 * @return bool */ public function install() { return true; } /** * 插件卸载方法 * @return bool */ public function uninstall() { return true; } /** * 实现的testHook钩子方法 * @return mixed */ public function temphook($param) { echo '

开始处理钩子啦

'; echo '

打印传给钩子的参数:

'; dump($param); echo '

打印插件配置:

'; dump($this->getConfig()); // 这里可以通过钩子来调用钩子模板 return $this->fetch('info'); } } ================================================ FILE: addons/putong/demo/config.php ================================================ // +---------------------------------------------------------------------- return [ 'name' => 'demo', 'title' => 'demo', 'description' => 'demo插件', 'status' => 1, 'url' => true, 'author' => '清月曦', 'version' => '0.1' ]; ================================================ FILE: addons/putong/demo/controller/Admin.php ================================================ redirect('admin/public/login'); } if ($this->request->isPjax()){ $this->view->engine->layout(false); }else{ $this->view->engine->layout('./application/admin/view/layout_addons.html'); } } //活动列表 public function index() { $configList = AddonsPutongDemoConfig::with('file')->order('id desc')->paginate(); // dump($configList->toArray()); cookie("prevUrl", request()->url()); $this->assign('configList', $configList); return view('admin_index'); } //新增修改活动 public function add() { if (request()->isPost()){ $data = input('post.'); $data['status'] = input('?post.status') ? $data['status'] : 0; if(input('post.id')){ $result = AddonsPutongDemoConfig::update($data); }else{ $result = AddonsPutongDemoConfig::create($data); } if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $id = input('param.id'); if($id){ $config = AddonsPutongDemoConfig::with('file')->find($id); $this->assign('config', $config); } return view('admin_add'); } } //更新状态 public function update() { $data = input('param.'); $result = AddonsPutongDemoConfig::where('id','in',$data['id'])->update(['status' => $data['status']]); if($result){ $this->success("修改成功", cookie("prevUrl")); }else{ $this->error('修改失败', cookie("prevUrl")); } } } ================================================ FILE: addons/putong/demo/controller/Index.php ================================================ view->replace([ '__CSS__' => request()->root(true).'/addons/putong/demo/view/public/css', '__IMG__' => request()->root(true).'/addons/putong/demo/view/public/image', ]); } public function index() { return view('index_index'); } } ================================================ FILE: addons/putong/demo/data/install.sql ================================================ -- -- 表的结构 `addons_putong_demo_config` -- CREATE TABLE `addons_putong_demo_config` ( `id` int(10) unsigned NOT NULL, `name` text NOT NULL COMMENT '活动名称', `file_id` int(11) NOT NULL COMMENT '活动图片', `sub` text NOT NULL COMMENT '活动描述', `detail` text NOT NULL COMMENT '活动详情', `timerange` text NOT NULL COMMENT '活动时间', `remark` text NOT NULL COMMENT '备注', `status` int(1) NOT NULL DEFAULT '1' COMMENT '1:开启0:关闭', `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; -- -- 转存表中的数据 `addons_putong_demo_config` -- INSERT INTO `addons_putong_demo_config` (`id`, `name`, `file_id`, `sub`, `detail`, `timerange`, `remark`, `status`, `created_at`, `updated_at`) VALUES (1, '活动名称', 1, '这里是活动描述', '', '2017-05-01 12:00:00 --- 2017-05-25 11:59:59', '', 1, '2017-05-01 10:25:26', '2017-05-01 12:12:04'), (2, '活动2', 1, '活动描述', '

111

', '2017-05-01 12:00:00 --- 2017-05-11 11:59:59', '', 1, '2017-05-01 10:37:35', '2017-05-01 12:11:06'); ================================================ FILE: addons/putong/demo/data/uninstall.sql ================================================ /* * @Author: qingyuexi * @Date: 2016-10-04 14:24:05 * @Last Modified by: qingyuexi * @Last Modified time: 2016-02-18 15:11:31 */ DROP TABLE IF EXISTS `addons_putong_demo_config`; ================================================ FILE: addons/putong/demo/info.html ================================================

我是钩子模板

我是在钩子中生成的url

{:addon_url('putong://demo/admin/index', [], true, true)}

钩子处理结束啦

================================================ FILE: addons/putong/demo/model/AddonsPutongDemoConfig.php ================================================ hasOne('app\common\model\File','id','file_id'); } } ================================================ FILE: addons/putong/demo/view/admin_add.html ================================================

新增/修改活动

{empty name="config.file_id"} {else /} {/empty}
================================================ FILE: addons/putong/demo/view/admin_index.html ================================================

活动列表

{volist name="configList" id="config" empty="暂时没有数据"} {/volist}
活动编号 活动名称 活动图片 活动时间 活动状态 操作
{$config.id} {$config.name} {empty name="config.file_id"} {else /} {/empty} {$config.timerange} {eq name="config.status" value="1"} 已开启 {else/} 已关闭 {/eq} 编辑 {eq name="config.status" value="0"} 开启 {/eq} {eq name="config.status" value="1"} 关闭 {/eq}
================================================ FILE: addons/putong/demo/view/index_index.html ================================================ Examples 这里是插件前台 ================================================ FILE: addons/putong/demo/view/public_left.html ================================================
  • Demo
  • ================================================ FILE: application/.htaccess ================================================ deny from all ================================================ FILE: application/admin/common.php ================================================ // +---------------------------------------------------------------------- // 应用公共文件 ================================================ FILE: application/admin/config.php ================================================ // +---------------------------------------------------------------------- // 应用公共文件 return [ 'template' => [ // 模板引擎类型 支持 php think 支持扩展 'type' => 'Think', // 模板路径 'view_path' => '', // 模板后缀 'view_suffix' => 'html', // 模板文件名分隔符 'view_depr' => '_', // 模板引擎普通标签开始标记 'tpl_begin' => '{', // 模板引擎普通标签结束标记 'tpl_end' => '}', // 标签库标签开始标记 'taglib_begin' => '{', // 标签库标签结束标记 'taglib_end' => '}', 'tpl_cache' => false, ], ]; ================================================ FILE: application/admin/controller/AddonsController.php ================================================ appUrl = request()->root(true); } //插件列表 public function index() { $item = getDir(ADDON_PATH); $info = array(); if($item){ foreach ($item as $key => $value) { if (is_file(ADDON_PATH . '/' . $value . '/' . 'config.php')) { $item_config = require ADDON_PATH . '/' . $value . '/' . 'config.php'; $info[$value] = $item_config; $info[$value]['sub'] = array(); } $addons = getDir(ADDON_PATH.$value); foreach ($addons as $k => $v) { if ($v && is_file(ADDON_PATH . '/' . $value . '/' . $v . '/' . 'config.php')) { $config = require ADDON_PATH . '/' . $value . '/' . $v . '/' . 'config.php'; $config['addons_admin_url'] = addon_url($value . '://'.$v.'/admin/index',[]); $config['addons_img_url'] = $this->appUrl .'/addons/' . $value . '/' . $v . '/' . $v .'.png'; if (is_file(ADDON_PATH . '/' . $value . '/' . $v . '/' . 'install.lock')) { $config['lock'] = 1; }else{ $config['lock'] = 0; } array_push($info[$value]['sub'], $config); } } } } cookie("prevUrl", request()->url()); $this->assign('item', $info); return view(); } //应用商店 public function shop() { $domain = request()->domain(); $this->assign('domain', $domain); return view(); } //下载解压插件 public function getFileDownload() { $data = input('param.'); $path = $data['path']; $uuid = $data['uuid']; $type = $data['type']; $sort = $data['sort']; if($sort == 'install'){ $filePath = self::$addonUrl . $path . '?order_uuid=' . $uuid . '&type=' . $type; }else{ $filePath = self::$addonUrl . $path . '?uuid=' .$uuid . '&type=' . $type; } $zipPath = "./addons.zip"; http_down($filePath, $zipPath); $re = unzip($zipPath,'./'); if($re){ return json(['data' => false, 'msg' => '恭喜您,下载完成!', 'code' => 1]); }else{ return json(['data' => false, 'msg' => '下载安装失败', 'code' => 0]); } } //自动安装插件 public function compare() { $item = getDir(ADDON_PATH); if($item){ foreach ($item as $key => $value) { $addons = getDir(ADDON_PATH.$value); foreach ($addons as $k => $v) { $addons_path = ADDON_PATH . $value . '/' . $v; //安装sql if (!file_exists($addons_path . '/install.lock')) { $install_sql = $addons_path . '/data/install.sql'; try { if (file_exists($install_sql)) { execute_sql_file($install_sql); file_put_contents($addons_path . '/install.lock',''); // unlink('./update.sql'); } } catch (\Exception $e) { // 这是进行异常捕获 return json(['data' => false, 'msg' => $e->getMessage(), 'code' => 0]); } } //升级sql $update_sql = $addons_path . '/update.sql'; try { if (file_exists($update_sql)) { execute_sql_file($update_sql); unlink('./update.sql'); } } catch (\Exception $e) { // 这是进行异常捕获 return json(['data' => false, 'msg' => $e->getMessage(), 'code' => 0]); } } } } return json(['data' => false, 'msg' => '恭喜您,安装完成!', 'code' => 1]); } } ================================================ FILE: application/admin/controller/BaseController.php ================================================ redirect('public/login'); } $activeRouter = request()->module() . '/' . request()->controller() . '/' . request()->action(); // dump(strtolower($activeRouter)); if(!in_array(strtolower($activeRouter), array("admin/help/index","admin/addons/getfiledownload","admin/addons/compare"))){ $auth = new \com\Auth(); if(!$auth->check($activeRouter, session('user_auth')['uid'])){ return $this->error('你没有权限',cookie("prevUrl")); } } if ($this->request->isPjax()){ $this->view->engine->layout(false); }else{ $this->view->engine->layout(true); } } } ================================================ FILE: application/admin/controller/FileController.php ================================================ order('id', 'desc')->paginate(12); $page = $filelist->render(); cookie("imgUrl", $this->request->url()); $this->assign('filelist', $filelist); $this->assign('page', $page); // 临时关闭当前模板的布局功能 $this->view->engine->layout(false); return view(); } //上传图片 public function upload(){ // 获取表单上传文件 $files = $this->request->file('image'); $data = array(); foreach($files as $file){ // 移动到框架应用根目录/public/uploads/ 目录下 $info = $file->validate(['ext'=>'jpg,png,gif,jpeg'])->move(ROOT_PATH . 'public' . DS . 'uploads'); if ($info) { $item = array(); $item['name'] = $info->getInfo('name'); $item['type'] = $info->getInfo('type'); $item['savename'] = $info->getFilename(); $item['savepath'] = date("Ymd") .'/'; array_push($data,$item); } else { // 上传失败获取错误信息 $this->error($file->getError()); } } model('File')->saveAll($data); $this->success('文件上传成功',cookie("imgUrl")); } } ================================================ FILE: application/admin/controller/HelpController.php ================================================ count(); $this->assign("todayUser", $todayUser); //本周用户 $weekUser = User::whereTime('created_at', 'week')->count(); $this->assign("weekUser", $weekUser); //本月用户 $monthUser = User::whereTime('created_at', 'month')->count(); $this->assign("monthUser", $monthUser); //总用户 $totalUser = User::count(); $this->assign("totalUser", $totalUser); $line_data = $this->getDateAnalysis(); $newUserLine = array(); foreach ($line_data as $key => $value) { $newUserLine[$key] = $value["registers"]; } $this->assign("newUserLine", json_encode($newUserLine)); $newsList = getHttpResponseGET('http://www.wemallshop.com/cms/index/news'); $this->assign("newsList", json_decode($newsList,true)); $this->assign("url", 'http://www.wemallshop.com/'); cookie("prevUrl", request()->url()); return view(); } public function getDateAnalysis(){ $analysis = Analysis::whereTime('created_at', 'between', Time::dayToNow(18, true)) ->order('id desc') ->select() ->toArray(); $date = array(); for ($i = 18; $i >= 0; $i--) { array_push($date, date("Y-m-d", strtotime("-$i day"))); } $this->assign("date", json_encode($date)); $line_data = array(); foreach ($date as $key => $value) { $line_data[$key] = array( "id" => "0", "orders" => "0", "trades" => "0", "registers" => "0", "users" => "0", "date" => "0", ); foreach ($analysis as $k => $v) { if ($v["date"] == $value) { $line_data[$key] = $v; } } } return $line_data; } } ================================================ FILE: application/admin/controller/PublicController.php ================================================ isPost()){ $data = input('post.'); if (!captcha_check($data['verify'])) { return json(['status' => 0, 'msg' => '验证码不正确!']); } $uid = (new Admin)->login($data['username'], $data['password']); if($uid > 0){ /*记录session和cookie*/ $group_id = Admin::where('id', $uid)->value('group_id'); $auth = [ 'uid'=>$uid, 'group_id'=>$group_id, 'username'=>$data['username'], 'last_login_time'=>date("Y-m-d H:i:s"), ]; session('user_auth',$auth); session('user_auth_sign', data_auth_sign($auth)); return json(['status' => 1, 'msg' => '登录成功!']); }else{ switch ($uid) { case '-1': $info = ['status' => 0, 'msg' => '用户不存在或被禁用']; break; case '-2': $info = ['status' => 0, 'msg' => '密码错误']; break; default: $info = ['status' => 0, 'msg' => '未知错误']; break; } return json($info); } }else{ // 检测登录状态 if(session('user_auth') && session('user_auth_sign')){ $this->redirect('index/index'); } return view(); } } /** * 退出登录状态 * @author 清月曦 (1604583867@qq.com) * @date 2017-05-01 11:29:19 * @return [type] [out] */ public function loginout(){ session(null); $this->redirect('index/index'); } } ================================================ FILE: application/admin/controller/WechatController.php ================================================ root(true); } public function init() { vendor("dodgepudding.wechat-php-sdk.wechat#class"); $config = model('WxConfig')->find()->toArray(); $options = array( 'token' => $config ["token"], //填写你设定的key 'encodingaeskey' => $config ["encodingaeskey"], //填写加密用的EncodingAESKey 'appid' => $config ["appid"], //填写高级调用功能的app id 'appsecret' => $config ["appsecret"] //填写高级调用功能的密钥 ); self::$weObj = new \Wechat ($options); } public function index() { $this->init(); if (request()->isGet()) { ob_clean(); self::$weObj->valid(); } else { if (!self::$weObj->valid(true)) { die('no access!!!'); } } $type = self::$weObj->getRev()->getRevType(); self::$revData = self::$weObj->getRevData(); self::$revFrom = self::$weObj->getRevFrom(); $this->check($type); } public function check($type) { switch ($type) { case \Wechat::MSGTYPE_TEXT: $this->checkKeywords(); break; case \Wechat::MSGTYPE_EVENT: $this->checkEvents(self::$revData['Event']); break; case \Wechat::MSGTYPE_IMAGE: self::$weObj->text('本系统暂不支持图片信息!')->reply(); break; default: self::$weObj->text('本系统暂时无法识别您的指令!')->reply(); } } public function checkEvents($event) { $openId = self::$revData['FromUserName']; switch ($event) { case 'subscribe': $this->checkUser($openId); $this->checkKeyWords('subscribe'); break; case 'unsubscribe': $this->updateUser($openId); break; case 'CLICK': $this->checkKeyWords(self::$revData['EventKey']); break; } } public function checkKeyWords($key = '') { $key = $key ? $key : self::$weObj->getRev()->getRevContent(); if ($key == 'qqkf') { $reply = model('WxReply')->where('key',$key)->find(); $qq = $reply["remark"]; $str = "" . htmlspecialchars_decode('点击联系QQ客服') . ""; self::$weObj->text($str)->reply(); exit(); } $reply = model('WxReply')->where('key',$key)->find(); if ($reply) { if ($reply["type"] == "news") { $newsArr = array( array( 'Title' => $reply["title"], 'Description' => $reply["description"], 'PicUrl' => self::$appUrl . '/public/uploads/' . $reply["savepath"] . $reply["savename"], 'Url' => $reply["url"] ) ); self::$weObj->news($newsArr)->reply(); exit(); } else { self::$weObj->text($reply["title"])->reply(); exit(); } } else { // self::$weObj->text("请核对关键词!")->reply(); $this->toKeyUnknow($key); } } public function toKeyUnknow($key) { // self::$weObj->text("未找到此关键词匹配!")->reply(); //或取所有客服 $kfList=self::$weObj->getCustomServiceKFlist(); $wx_kefu = model('WxKefu')->find(); $kf_account = ''; if($wx_kefu['status']){ foreach ($kfList['kf_list'] as $k => $value) { if($value['kf_wx'] == $wx_kefu['kefu']){ $kf_account = $value['kf_account']; } } }else{ //随即客服 $num=rand(0,count($kfList['kf_list'])-1); $kf_account = $kfList['kf_list'][$num]['kf_account']; } //获取用户openid; $openid = self::$revData['FromUserName']; self::$weObj->createKFSession($openid,$kf_account,$key); } public function checkUser($openId) { $oauth_wx = model('OauthWx')->where('openid',"$openId")->find(); if ($oauth_wx) { model('OauthWx')->update(['id' => $oauth_wx['id'], 'subscribe' => 1]); }else{ $userInfo = self::$weObj->getUserInfo($openId); $avater_id = action('api/PublicController/getavater',['headimgurl' => $userInfo['headimgurl']]); $user = model('User')->create([ 'avater_id' => $avater_id, 'username' => $userInfo['nickname'], ]); $oauth_wx = model('OauthWx')->create([ 'user_id' => $user->id, 'openid' => $openId, 'nickname' => $userInfo['nickname'], 'sex' => $userInfo['sex'], 'city' => $userInfo['city'], 'country' => $userInfo['country'], 'province' => $userInfo['province'], 'language' => $userInfo['language'], 'headimgurl' => $userInfo['headimgurl'], 'subscribe_time' => date("Y-m-d h:i:s"), 'subscribe' => 1, ]); model("Analysis")->add(0, 0, 1, 0); //统计 } } public function updateUser($openId) { $oauth_wx = model('OauthWx')->where('openid',"$openId")->find(); if ($oauth_wx) { model('OauthWx')->update(['id' => $oauth_wx['id'], 'subscribe' => 0]); } } public function getQRCode() { $this->init(); $ticket = self::$weObj->getQRCode("1", 1); $qrcode = self::$weObj->getQRUrl($ticket["ticket"]); if ($qrcode) { model('Config')->update(['id' => 1, 'qrcode' => $qrcode]); $this->success("生成二维码成功", "admin/config/shop"); } else { $this->error("生成二维码失败", "admin/config/shop"); } } public function getMenu() { $this->init(); self::$weObj->getMenu(); } public function createWxMenu() { $this->init(); $menulist = model('WxMenu')->all()->toArray(); $menutree = list_to_tree($menulist, 'id', 'pid', 'sub', 'rank', 'desc'); $newmenu["button"] = array(); foreach ($menutree as $k => $v) { if ($v["type"] == "view") { if ($v['sub']) { $sub_button = array(); foreach ($v["sub"] as $kk => $sub) { if ($sub["type"] == "view") { array_push($sub_button, array('type' => 'view', 'name' => $sub["name"], 'url' => $sub["url"])); }else{ array_push($sub_button, array('type' => 'click', 'name' => $sub["name"], 'key' => $sub["key"])); } } array_push($newmenu["button"], array('name' => $v["name"], 'sub_button' => $sub_button)); }else{ array_push($newmenu["button"], array('type' => 'view', 'name' => $v["name"], 'url' => $v["url"])); } }else{ if ($v['sub']) { $sub_button = array(); foreach ($v["sub"] as $kk => $sub) { if ($sub["type"] == "view") { array_push($sub_button, array('type' => 'view', 'name' => $sub["name"], 'url' => $sub["url"])); } else { array_push($sub_button, array('type' => 'click', 'name' => $sub["name"], 'key' => $sub["key"])); } } array_push($newmenu["button"], array('name' => $v["name"], 'sub_button' => $sub_button)); } else { array_push($newmenu["button"], array('type' => 'click', 'name' => $v["name"], 'key' => $v["key"])); } } } $result = self::$weObj->createMenu($newmenu); if ($result) { $this->success("重新创建菜单成功!", "admin/wx/menu"); } else { $this->error("重新创建菜单失败!", "admin/wx/menu"); } } public function addTplMessageId($id) { $this->init(); $tempMsg = model('WxTplmsg')->where('template_id_short',$id)->find(); if ($tempMsg["template_id"]) { $template_id = $tempMsg["template_id"]; } else { $template_id = self::$weObj->addTemplateMessage($id); if ($template_id) { model('WxTplmsg')->update(['id' => $tempMsg['id'], 'template_id' => $template_id]); } } $tempMsg = model('WxTplmsg')->where('template_id_short',$id)->find(); return $tempMsg; } //新订单通知 public function sendTplMsgOrder($order_id) { $this->init(); $tempMsg = $this->addTplMessageId("OPENTM201785396"); $order = model('Order')->with('user.wx,contact,delivery,detail')->find($order_id)->toArray(); $msg = array(); $msg["touser"] = $order['user']['wx']['openid']; $msg["template_id"] = $tempMsg['template_id']; $msg["url"] = ""; $msg["topcolor"] = ""; $msg["data"] = array( "first" => array( "value" => $tempMsg['title'], "color" => "#ff0000" ), "keyword1" => array( "value" => $order["orderid"], "color" => "#000000" ), "keyword2" => array( "value" => $order["payment"] . "," . $order["pay_status"], "color" => "#000000" ), "keyword3" => array( "value" => $order["totalprice"], "color" => "#000000" ), "keyword4" => array( "value" => $order["created_at"], "color" => "#000000" ), "keyword5" => array( "value" => "姓名:" . $order["contact"]["name"] . ",电话:" . $order["contact"]["phone"] . ",地址: " . $order["contact"]["province"] . $order["contact"]["city"] . $order["contact"]["address"], "color" => "#000000" ), "remark" => array( "value" => $tempMsg['remark'].$order["remark"], "color" => "#ff0000" ), ); if($tempMsg['status']){ self::$weObj->sendTemplateMessage($msg); } // $this->sendTplMessageOrderAdmin($order_id); } //员工通知 public function sendTplMessageOrderAdmin($order_id) { $this->init(); $order = model('Order')->with('user.wx,contact,delivery,detail.product')->find($order_id)->toArray(); $tempMsg = $this->addTplMessageId("OPENTM201785396"); $shop = model("Config")->find(); $employee = explode(',', $shop["employee"]); foreach ($employee as $key => $value) { if(!$value){ continue; } $openid = model('OauthWx')->where('user_id',$value)->value('openid'); $data = '{ "touser":"' . $openid . '", "template_id":"' . $tempMsg['template_id'] . '", "url":"' . "http://" . I("server.HTTP_HOST") . U("App/Admin/order",array("id"=>$order_id)).'", "topcolor":"#FF0000", "data":{ "first": { "value":"客户新订单提醒", "color":"#FF0000" }, "keyword1":{ "value":"' . $order["orderid"] . '", "color":"#0000ff" }, "keyword2":{ "value":"' . $order["payment"] . '", "color":"#0000ff" }, "keyword3":{ "value":"' . $order["totalprice"] . '", "color":"#0000ff" }, "keyword4":{ "value":"' . $order["create_time"] . '", "color":"#0000ff" }, "keyword5":{ "value":"' . $order["contact"]["name"] . '-' . $order["contact"]["phone"] . '-' . $order["contact"]["province"] . $order["contact"]["city"] . $order["contact"]["address"] . '", "color":"#0000ff" }, "remark":{ "value":"配送时间:' .$order["delivery_time"]."备注:". $order["remark"] . '", "color":"#0000ff" } } }'; $data = json_decode($data, true); self::$weObj->sendTemplateMessage($data); } } //订单支付成功通知 public function sendTplMsgPay($order_id) { $this->init(); $tempMsg = $this->addTplMessageId("OPENTM207791277"); $order = model('Order')->with('user.wx')->find($order_id)->toArray(); $msg = array(); $msg["touser"] = $order["user"]['wx']["openid"]; $msg["template_id"] = $tempMsg['template_id']; $msg["url"] = ""; $msg["topcolor"] = ""; $msg["data"] = array( "first" => array( "value" => $tempMsg['title'], "color" => "#ff0000" ), "keyword1" => array( "value" => $order["orderid"], "color" => "#000000" ), "keyword2" => array( "value" => $order["totalprice"].'元', "color" => "#000000" ), "remark" => array( "value" => $tempMsg["remark"], "color" => "#ff0000" ), ); if($tempMsg['status']){ self::$weObj->sendTemplateMessage($msg); } } //订单发货提醒 public function sendTplMsgOrderPublish($order_id) { $this->init(); $tempMsg = $this->addTplMessageId("OPENTM207763419"); $order = model('Order')->with('user.wx,detail.product')->find($order_id)->toArray(); $detail = ''; foreach ($order['detail'] as $key => $value) { if($value['sku_name']){ $detail .= '【'.$value['name'].'('.$value['sku_name'].')'.$value['price'].'元x'.$value['num'].'份】'; }else{ $detail .= '【'.$value['name'].$value['price'].'元x'.$value['num'].'份】'; } } $msg = array(); $msg["touser"] = $order['user']['wx']["openid"]; $msg["template_id"] = $tempMsg['template_id']; $msg["url"] = ""; $msg["topcolor"] = ""; $msg["data"] = array( "first" => array( "value" => $tempMsg['title'], "color" => "#ff0000" ), "keyword1" => array( "value" => '合计'.$order["totalprice"].'元', "color" => "#000000" ), "keyword2" => array( "value" => $detail, "color" => "#000000" ), "remark" => array( "value" => $tempMsg["remark"].'|'.$order["remark"], "color" => "#ff0000" ), ); if($tempMsg['status']){ self::$weObj->sendTemplateMessage($msg); } } } ================================================ FILE: application/admin/controller/article/CategoryController.php ================================================ toArray(); cookie("prevUrl", request()->url()); $tree = list_to_tree($categorylist, 'id', 'pid', 'sub'); $this->assign('categorylist', $tree); return view(); } //新增修改文章分类 public function add(){ if (request()->isPost()){ $data = input('post.'); $data['status'] = input('?post.status') ? $data['status'] : 0; if(input('post.id')){ $result = ArticleCategory::update($data); }else{ $result = ArticleCategory::create($data); } if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $id = input('param.id'); if($id){ $category = ArticleCategory::find($id); $this->assign('category', $category); } $parentcategory = ArticleCategory::all(['pid'=>0]); $this->assign("parentcategory", $parentcategory); return view(); } } //改变文章类型状态 public function update(){ $data = input('param.'); $result = ArticleCategory::where('id','in',$data['id'])->update(['status' => $data['status']]); Article::where('category_id',$data['id'])->update(['status' => $data['status']]); if($result){ $this->success("修改成功", cookie("prevUrl")); }else{ $this->error('修改失败', cookie("prevUrl")); } } //删除文章分类 public function del(){ $ids = input('param.id'); $result = ArticleCategory::destroy($ids); if($result){ $this->success("删除成功", cookie("prevUrl")); }else{ $this->error('删除失败', cookie("prevUrl")); } } } ================================================ FILE: application/admin/controller/article/IndexController.php ================================================ order('id desc')->paginate(); cookie("prevUrl", request()->url()); $this->assign('articlelist', $articlelist); return view(); } //新增修改文章 public function add(){ if (request()->isPost()){ $data = input('post.'); $data['status'] = input('?post.status') ? $data['status'] : 0; if(input('post.id')){ $result = Article::update($data); }else{ $result = Article::create($data); } if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $id = input('param.id'); if($id){ $article = Article::find($id); $this->assign('article', $article); } $category = ArticleCategory::all()->toArray(); $tree = list_to_tree($category, 'id', 'pid', 'sub'); $this->assign("category", $tree); return view(); } } //改变文章状态 public function update(){ $data = input('param.'); $result = Article::where('id','in',$data['id'])->update(['status' => $data['status']]); if($result){ $this->success("修改成功", cookie("prevUrl")); }else{ $this->error('修改失败', cookie("prevUrl")); } } //删除文章 public function del(){ $ids = input('param.id'); $result = Article::destroy($ids); if($result){ $this->success("删除成功", cookie("prevUrl")); }else{ $this->error('删除失败', cookie("prevUrl")); } } } ================================================ FILE: application/admin/controller/auth/AdminController.php ================================================ url()); $this->assign('adminlist', $adminlist); return view(); } //新增修改用管理员 public function add(){ if (request()->isPost()){ $data = input('post.'); if($data['password']){ $data['password'] = md5($data['password']); }else{ unset($data['password']); } if($data['id']){ $oid = Admin::where('username', $data['username'])->value('id'); if ($oid && $oid != $data['id']){ $this->error('用户名已存在', cookie("prevUrl")); } if($data['id'] == 1){ if($data['id'] == session('user_auth.uid')){ $result = Admin::update($data); }else{ $this->error('非超管不能编辑', cookie("prevUrl")); } }else{ $result = Admin::update($data); AuthGroupAccess::where('uid',$data['id'])->update(['group_id' => $data['group_id']]); } }else{ $Admin = new Admin; $result = $Admin->validate(true)->save($data); if(false === $result){ // 验证失败 输出错误信息 $this->error($Admin->getError(), cookie("prevUrl")); } $uid = $Admin->getLastInsID(); AuthGroupAccess::create([ 'uid' => $uid, 'group_id' => $data['group_id'], ]); } if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $id = input('param.id'); if($id){ $admin = Admin::find($id); $this->assign('admin', $admin); } $group = model("AuthGroup")->all(); $this->assign("group", $group); return view(); } } //删除用户组 public function del(){ $ids = input('param.id'); if($ids == 1){ $this->error('默认管理员不允许删除', cookie("prevUrl")); } $result = Admin::destroy($ids); if($result){ AuthGroupAccess::where('uid','in',$ids)->delete(); $this->success("删除成功", cookie("prevUrl")); }else{ $this->error('删除失败', cookie("prevUrl")); } } //改变管理员状态 public function update(){ $data = input('param.'); if($data['id'] == 1){ $this->error('默认管理员不允许操作', cookie("prevUrl")); } $result = Admin::where('id', $data['id'])->update(['status' => $data['status']]); if($result){ $this->success("修改成功", cookie("prevUrl")); }else{ $this->error('修改失败', cookie("prevUrl")); } } } ================================================ FILE: application/admin/controller/auth/GroupController.php ================================================ url()); $this->assign('grouplist', $grouplist); return view(); } //新增修改用户组 public function add(){ if (request()->isPost()){ $data = input('post.'); $data['rules'] = implode(',',$data['rules']); if(input('post.id')){ if(input('post.id') == 1){ $this->error('默认用户组不允许修改', cookie("prevUrl")); }else{ $result = AuthGroup::update($data); } }else{ $result = AuthGroup::create($data); } if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $id = input('param.id'); if($id){ $group = AuthGroup::find($id); $this->assign('group', $group); } $rule = AuthRule::all(); $this->assign("rule", $rule); return view(); } } //删除用户组 public function del(){ $ids = input('param.id'); if($ids == 1){ $this->error('默认用户组不允许删除', cookie("prevUrl")); } $result = AuthGroup::destroy($ids); if($result){ $this->success("删除成功", cookie("prevUrl")); }else{ $this->error('删除失败', cookie("prevUrl")); } } //改变用户组状态 public function update(){ $data = input('param.'); if($data['id'] == 1){ $this->error('默认用户组不允许操作', cookie("prevUrl")); } $result = AuthGroup::where('id', $data['id'])->update(['status' => $data['status']]); if($result){ $this->success("修改成功", cookie("prevUrl")); }else{ $this->error('修改失败', cookie("prevUrl")); } } } ================================================ FILE: application/admin/controller/config/MailController.php ================================================ isPost()){ $data = input('post.'); $result = model('Mail')->update($data); if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $mail = model('Mail')->find(); cookie("prevUrl", request()->url()); $this->assign('mail', $mail); return view(); } } } ================================================ FILE: application/admin/controller/config/SiteController.php ================================================ isPost()){ $data = input('post.'); $result = Config::update($data); if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $config = Config::with('logo')->find(); cookie("prevUrl", request()->url()); $this->assign('config', $config); return view(); } } } ================================================ FILE: application/admin/controller/config/SmsController.php ================================================ isPost()){ $data = input('post.'); $result = model('Sms')->update($data); if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $sms = model('Sms')->find(); cookie("prevUrl", request()->url()); $this->assign('sms', $sms); return view(); } } } ================================================ FILE: application/admin/controller/tpl/MailController.php ================================================ paginate(); // halt($maillist->toArray()); cookie("prevUrl", $this->request->url()); $this->assign('maillist', $maillist); return view(); } //新增修改邮件模版 public function add(){ if (request()->isPost()){ $data = input('post.'); if($data['id']){ $result = model('MailTpl')->update($data); }else{ $result = model('MailTpl')->create($data); } if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $id = input('param.id'); if($id){ $mail = model('MailTpl')->find($id); $this->assign('mail', $mail); } return view(); } } //改变邮件模版状态 public function update(){ $data = input('param.'); $result = model('MailTpl')->where('id','in',$data['id'])->update(['status' => $data['status']]); if($result){ $this->success("修改成功", cookie("prevUrl")); }else{ $this->error('修改失败', cookie("prevUrl")); } } //发送测试邮件 public function send() { $id = input('param.id'); $mail_tpl = model('MailTpl')->find($id); $toemail = $mail_tpl['mail']; $name = $mail_tpl['mail'];//收件人昵称 $subject='邮件测试'; $code = mt_rand(100000, 999999);//验证码 // $mail_tpl = model('MailTpl')->where('type', 'register')->find()->toArray(); $content = str_replace("\$code",$code,$mail_tpl['content']); $result = send_mail($toemail,$name,$subject,$content); if($result){ $this->success("发送成功", cookie("prevUrl")); }else{ $this->success("发送失败", cookie("prevUrl")); } } } ================================================ FILE: application/admin/controller/tpl/ShopController.php ================================================ where('id',1)->setField('theme', $theme); $this->success("设置成功", cookie("prevUrl")); }else{ $config = model('Config')->find(); cookie("prevUrl", $this->request->url()); $themedir = getDir("./tpl/theme"); $this->assign("rootUrl", request()->root(true)); $this->assign("theme", $themedir); $this->assign("settheme", $config["theme"]); return view(); } } } ================================================ FILE: application/admin/controller/tpl/SmsController.php ================================================ paginate(); // halt($maillist->toArray()); cookie("prevUrl", $this->request->url()); $this->assign('smslist', $smslist); return view(); } //新增修改短信模版 public function add(){ if (request()->isPost()){ $data = input('post.'); if($data['id']){ $result = model('SmsTpl')->update($data); }else{ $result = model('SmsTpl')->create($data); } if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $id = input('param.id'); if($id){ $sms = model('SmsTpl')->find($id); $this->assign('sms', $sms); } return view(); } } //开启关闭短信模版 public function update(){ $data = input('param.'); $result = model('SmsTpl')->where('id','in',$data['id'])->update(['status' => $data['status']]); if($result){ $this->success("修改成功", cookie("prevUrl")); }else{ $this->error('修改失败', cookie("prevUrl")); } } //发送测试短信 public function send() { $id = input('param.id'); $tpl = model('SmsTpl')->find($id); $config_sms = model('Sms')->find()->toArray(); // 配置信息 $config = [ 'app_key' => $config_sms['app_key'], 'app_secret' => $config_sms['app_secret'], // 'sandbox' => true, // 是否为沙箱环境,默认false ]; $client = new Client(new App($config)); $req = new AlibabaAliqinFcSmsNumSend; $req->setRecNum($tpl['phone']) ->setSmsParam([ 'code' => mt_rand(100000, 999999) ]) ->setSmsFreeSignName($config_sms['sign']) ->setSmsTemplateCode($tpl['template_code']); $resp = $client->execute($req); $result = isset($resp->result->success) ? $resp->result->success : false; if($result){ $this->success("发送成功", cookie("prevUrl")); }else{ $msg = isset($resp->sub_msg) ? $resp->sub_msg : '发送失败,请检查短信配置'; $this->error($msg, cookie("prevUrl")); } } } ================================================ FILE: application/admin/controller/user/IndexController.php ================================================ paginate(); }else{ $userlist = User::where($map)->order('id desc')->paginate(); } cookie("prevUrl", $this->request->url()); $this->assign('userlist', $userlist); return view(); } //新增修改用户 public function add(){ if (request()->isPost()){ $data = input('post.'); if($data['password']){ $data['password'] = md5($data['password']); }else{ unset($data['password']); } if($data['id']){ $result = User::update($data); }else{ $result = User::create($data); } if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $id = input('param.id'); if($id){ $user = User::find($id); $this->assign('user', $user); } return view(); } } //删除用户 public function del(){ $ids = input('param.id'); if($ids == 1){ $this->error('默认用户组允许删除', cookie("prevUrl")); } $result = User::destroy($ids); if($result){ $this->success("删除成功", cookie("prevUrl")); }else{ $this->error('删除失败', cookie("prevUrl")); } } //改变用户状态 public function update(){ $data = input('param.'); if($data['id'] == 1){ $this->error('测试用户不允许操作', cookie("prevUrl")); } $result = User::where('id', $data['id'])->update(['status' => $data['status']]); if($result){ $this->success("修改成功", cookie("prevUrl")); }else{ $this->error('修改失败', cookie("prevUrl")); } } //导出用户 public function export(){ $userlist = User::all()->toArray(); $data = array( '0' => array( '1' => '编号', '2' => '用户名', '3' => '手机号', '9' => '余额', '10' => '积分', '11' => '状态', '12' => '购买量', '13' => '会员等级', '14' => '注册时间', ), ); foreach ($userlist as &$v) { switch ($v['status']) { case '0': $v['status'] = '禁用'; break; case '1': $v['status'] = '启用'; break; default: $v['status'] = '未知状态'; break; } array_push($data, array( '1' => $v['id'], '2' => $v['username'], '3' => $v['phone'], '9' => $v['money'], '10' => $v['score'], '11' => $v['status'], '12' => $v['buy_num'], '13' => $v['level'], '14' => $v['created_at'], )); } export_to($data,'用户列表');//导出excle } } ================================================ FILE: application/admin/controller/user/LevelController.php ================================================ request->url()); $this->assign('levellist', $levellist); return view(); } //新增修改等级 public function add(){ if (request()->isPost()){ $data = input('post.'); if(input('post.id')){ $result = UserLevel::update($data); }else{ $result = UserLevel::create($data); } if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $id = input('param.id'); if($id){ $level = UserLevel::find($id); $this->assign('level', $level); } return view(); } } } ================================================ FILE: application/admin/controller/wx/ConfigController.php ================================================ isPost()){ $data = input('post.'); $result = model('WxConfig')->update($data); if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $config = model('WxConfig')->find(); cookie("prevUrl", request()->url()); $this->assign("url", 'http://' . $_SERVER["HTTP_HOST"] . "/admin/wechat/index"); $this->assign('config', $config); return view(); } } } ================================================ FILE: application/admin/controller/wx/KefuController.php ================================================ isPost()){ $data = input('post.'); $result = model('WxKefu')->update($data); if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $kefu = model('WxKefu')->find(); cookie("prevUrl", request()->url()); $this->assign('kefu', $kefu); return view(); } } } ================================================ FILE: application/admin/controller/wx/MenuController.php ================================================ all()->toArray(); cookie("prevUrl", request()->url()); $tree = list_to_tree($menulist, 'id', 'pid', 'sub', 'rank', 'desc'); $this->assign('menulist', $tree); return view(); } //新增修改微信菜单 public function add(){ if (request()->isPost()){ $data = input('post.'); if(input('post.id')){ $result = model('WxMenu')->update($data); }else{ $result = model('WxMenu')->create($data); } if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $id = input('param.id'); if($id){ $menu = model('WxMenu')->find($id); $this->assign('menu', $menu); } $parentmenu = model('WxMenu')->all(['pid'=>0]); $this->assign("parentmenu", $parentmenu); return view(); } } //删除微信菜单 public function del(){ $ids = input('param.id'); $result = model('WxMenu')->destroy($ids); if($result){ $this->success("删除成功", cookie("prevUrl")); }else{ $this->error('删除失败', cookie("prevUrl")); } } } ================================================ FILE: application/admin/controller/wx/PrintController.php ================================================ isPost()){ $data = input('post.'); $result = model('WxPrint')->update($data); if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $print = model('WxPrint')->find(); cookie("prevUrl", request()->url()); $this->assign('print', $print); return view(); } } } ================================================ FILE: application/admin/controller/wx/ReplyController.php ================================================ with('file')->select()->toArray(); cookie("prevUrl", request()->url()); $this->assign('replylist', $replylist); return view(); } //新增修改自定义回复 public function add(){ if (request()->isPost()){ $data = input('post.'); if(input('post.id')){ $result = model('WxReply')->update($data); }else{ $result = model('WxReply')->create($data); } if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $id = input('param.id'); if($id){ $reply = model('WxReply')->with('file')->find($id); $this->assign('reply', $reply); } return view(); } } //删除自定义回复 public function del(){ $ids = input('param.id'); $result = model('WxReply')->destroy($ids); if($result){ $this->success("删除成功", cookie("prevUrl")); }else{ $this->error('删除失败', cookie("prevUrl")); } } } ================================================ FILE: application/admin/controller/wx/TplmsgController.php ================================================ all(); // halt($tplmsglist->toArray()); cookie("prevUrl", request()->url()); $this->assign('tplmsglist', $tplmsglist); return view(); } //新增编辑模版消息 public function add(){ if (request()->isPost()){ $data = input('post.'); $data['status'] = input('?post.status') ? $data['status'] : 0; if($data['id']){ $result = model('WxTplmsg')->update($data); }else{ $result = model('WxTplmsg')->create($data); } if($result){ $this->success("保存成功", cookie("prevUrl")); }else{ $this->error('保存失败', cookie("prevUrl")); } }else{ $id = input('param.id'); if($id){ $tplmsg = model('WxTplmsg')->find($id); $this->assign('tplmsg', $tplmsg); } return view(); } } //改变模版消息状态 public function update(){ $data = input('param.'); $result = model('WxTplmsg')->where('id','in',$data['id'])->update(['status' => $data['status']]); if($result){ $this->success("修改成功", cookie("prevUrl")); }else{ $this->error('修改失败', cookie("prevUrl")); } } } ================================================ FILE: application/admin/validate/Admin.php ================================================ 'unique:admin', ]; protected $message = [ 'username.unique' => '用户名已存在', ]; } ================================================ FILE: application/admin/view/addons_index.html ================================================

    插件列表

    {volist name="item" id="item"}

    {$item.title}

    {volist name="item.sub" id="addon"} {/volist}
    {/volist}
    ================================================ FILE: application/admin/view/addons_shop.html ================================================ ================================================ FILE: application/admin/view/analysis_user.html ================================================

    {$todayNewUser|default =0}

    今日新用户

    更多详情

    {$yesterdayNewUser|default = 0}

    昨日新用户

    更多详情

    {$newUserBuyRate|default = '1'}%

    今日新用户购买率

     

    {$buyRate|default = '1'}%

    购买率

     

    新用户走势图

    用户消费走势图

    ================================================ FILE: application/admin/view/article/category_add.html ================================================

    编辑分类

    ================================================ FILE: application/admin/view/article/category_index.html ================================================

    文章分类

    {volist name="categorylist" id="category"} {volist name="category.sub" id="category1"} {/volist} {/volist}
    编号 名称 状态 备注 操作
    {$category.id} {$category.name} {eq name="category.status" value="1"} 开启 {else/} 关闭 {/eq} {$category.remark} 编辑 {eq name="category.status" value="0"} 开启 {else} 关闭 {/eq}
    {$category1.id} |─{$category1.name} {eq name="category1.status" value="1"} 开启 {else/} 关闭 {/eq} {$category1.remark} 编辑 {eq name="category1.status" value="0"} 开启 {else} 关闭 {/eq}
    ================================================ FILE: application/admin/view/article/index_add.html ================================================

    编辑文章

    ================================================ FILE: application/admin/view/article/index_index.html ================================================

    文章列表

    {volist name="articlelist" id="article"} {/volist}
    编号 标题 分类 作者 状态 备注 时间 操作
    {$article.id} 《{$article.title}》 {$article.category.name} {$article.author} {eq name="article.status" value="1"} 开启 {else/} 关闭 {/eq} {$article.remark} {$article.created_at} 编辑 {eq name="article.status" value="0"} 开启 {else} 关闭 {/eq}
    ================================================ FILE: application/admin/view/auth/admin_add.html ================================================

    新增/修改管理员

    {neq name="admin.id|default=0" value="1"}
    {/neq}
    ================================================ FILE: application/admin/view/auth/admin_index.html ================================================

    管理员管理

    {volist name="adminlist" id="user"} {/volist}
    编号 用户名 用户组 手机号 邮箱 状态 备注 最后登录时间 操作
    {$user.id} {$user.username} {$user.group.title} {$user.mobile} {$user.email} {eq name="user.status" value="1"} 启用 {else/} 禁用 {/eq} {$user.remark} {$user.last_login_time} 修改 {gt name="user.id" value="1"} {eq name="user.status" value="0"} 开启 {else} 关闭 {/eq} 删除 {/gt}
    ================================================ FILE: application/admin/view/auth/group_add.html ================================================

    新增用户组

    {volist name="rule" id="auth"} {/volist}
    编号 权限标题 权限
    {$auth.id} {$auth.title} {$auth.name}
    ================================================ FILE: application/admin/view/auth/group_index.html ================================================

    用户组管理

    {volist name="grouplist" id="group"} {/volist}
    编号 用户组 状态 时间 操作
    {$group.id} {$group.title} {eq name="group.status" value="1"} 启用 {else/} 禁用 {/eq} {$group.created_at} 修改 {gt name="group.id" value="1"} {eq name="group.status" value="0"} 开启 {else} 关闭 {/eq} 删除 {/gt}
    ================================================ FILE: application/admin/view/config/mail_index.html ================================================

    邮件配置

    ================================================ FILE: application/admin/view/config/site_index.html ================================================

    站点设置

    站点名称将显示在浏览器的标题栏
    {empty name="config.logo_id"} {else /} {/empty}
    ================================================ FILE: application/admin/view/config/sms_index.html ================================================

    目前仅支持阿里大于 网站: http://www.alidayu.com/

    应用管理-应用列表-创建应用

    配置管理-验证码-配置短信签名-添加签名

    配置管理-验证码-配置短信模版-添加模版

    短信验证设置

    ================================================ FILE: application/admin/view/file_index.html ================================================
    本地上传
    {volist name="filelist" id="file"}
    {/volist}
    ================================================ FILE: application/admin/view/help_index.html ================================================

    使用帮助

    第一步:对接公众号URL和Token

    打开后台系统中系统设置项下面的微信设置,找到微信token项以及它下面的那串url地址(注:token类似于密码,token可以自己修改)。

    图1 后台token对应位置

    打开微信官方公众后台(https://mp.weixin.qq.com),登陆自己的公众号,进入到开发者模式模块,启用开发者模式,填写URL和Token两项(就是图1中的相关值)

    图2 配置微信后台

    第二步:对接appid和AppSecret及微信支付参数

    在微信公众后台可看到该公众号的appid和AppSecret,把这两项复制到后台系统中的对应位置。 微信支付参数设置同上述,将相关信息复制进对应位置。

    图3 系统后台对应位置

    图4 微信appid和AppSecret

    第三步:设置自定义菜单

    建议设置项:

    商城首页:http://__ROOT__/app/index/index

    第四步:设置首次关注回复图片或文字

    图5 系统后台对应微信设置

    若需设置首次关注的图片,开启对应功能并上传对应图片。如果没开启,系统会去查询是否设置首次关注对应的描述,如果仍未设置,则不会有系统首次关注的回复。

    第五步:可设置qq客服

    图5 系统后台对应设置

    ================================================ FILE: application/admin/view/index_index.html ================================================

    {$todayUser|default =0}

    今日新用户

    更多详情

    {$weekUser|default = 0}

    本周新用户

    更多详情

    {$monthUser|default = 0}

    本月新用户

    更多详情

    {$totalUser|default = 0}

    总用户

    更多详情

    新用户走势图

    系统信息

    THINKPHP版本:{$Think.THINK_VERSION}
    服务器IP:{$Think.server.SERVER_ADDR}
    服务器系统:
    PHP版本:
    当前时间:
    官网网址:http://www.wemallshop.com

    通知列表

    {volist name="newsList.data" id="news"} {/volist}
    ================================================ FILE: application/admin/view/layout.html ================================================ {include file="./application/admin/view/public_header.html" /}
    {__CONTENT__}
    {include file="./application/admin/view/public_footer.html" /} ================================================ FILE: application/admin/view/layout_addons.html ================================================ {include file="./application/admin/view/public_header.html" /}
    {__CONTENT__}
    {include file="./application/admin/view/public_footer.html" /} ================================================ FILE: application/admin/view/public_footer.html ================================================ ================================================ FILE: application/admin/view/public_header.html ================================================ wemall商城后台管理 ================================================ FILE: application/admin/view/public_left.html ================================================
  • 首页
  • 设置
  • 微信
  • 内容
  • 模版
  • 用户
  • 插件
  • 帮助
  • ================================================ FILE: application/admin/view/public_login.html ================================================ WeMall微商城
    captcha
    ================================================ FILE: application/admin/view/tpl/mail_add.html ================================================

    支持的变量:

    验证码:$code

    模版内容举例:您好,欢迎您注册wemallshop微信商城,您的验证码是:$code

    邮件模版

    ================================================ FILE: application/admin/view/tpl/mail_index.html ================================================

    邮件模版管理

    {volist name="maillist" id="mail"} {/volist}
    编号 邮件类型 模版内容 测试邮箱 状态 操作
    {$mail.id} {$mail.name} {$mail.content} {$mail.mail} {eq name="mail.status" value="1"} 开启 {else/} 关闭 {/eq} 编辑 {eq name="mail.status" value="0"} 开启 {else} 关闭 {/eq} 发一封测试
    ================================================ FILE: application/admin/view/tpl/shop_index.html ================================================
    {volist name="theme" id="theme"} {/volist}
    ================================================ FILE: application/admin/view/tpl/sms_add.html ================================================

    支持的变量:

    验证码:${code}

    模版内容举例:您的本次验证码${code},10分钟内输入有效,感谢使用平台

    短信模版

    ================================================ FILE: application/admin/view/tpl/sms_index.html ================================================

    短信模版管理

    {volist name="smslist" id="sms"} {/volist}
    编号 模版类型 模版ID 模版内容 测试号码 状态 操作
    {$sms.id} {$sms.name} {$sms.template_code} {$sms.content} {$sms.phone} {eq name="sms.status" value="1"} 开启 {else/} 关闭 {/eq} 编辑 {eq name="sms.status" value="0"} 开启 {else} 关闭 {/eq} 发一条测试
    ================================================ FILE: application/admin/view/user/index_add.html ================================================

    新增/修改用户

    {neq name="user.id|default=0" value="1"}
    {/neq}
    ================================================ FILE: application/admin/view/user/index_index.html ================================================

    用户管理

    {volist name="userlist" id="user"} {/volist}
    编号 用户名 账户 积分 等级 状态 备注 注册时间 操作
    {$user.id} {empty name="user.avater"} {else /} {/empty} {$user.username} {$user.money} {$user.score} {$user.level} {eq name="user.status" value="1"} 启用 {else/} 禁用 {/eq} {$user.remark} {$user.created_at} 修改 {gt name="user.id" value="1"} {eq name="user.status" value="0"} 开启 {else} 关闭 {/eq} {/gt}
    ================================================ FILE: application/admin/view/user/level_add.html ================================================

    新增等级

    ================================================ FILE: application/admin/view/user/level_index.html ================================================

    会员等级

    {volist name="levellist" id="level"} {/volist}
    编号 名称 积分(大于等于) 时间 操作
    {$level.id} {$level.name} >= {$level.score} {$level.created_at} 编辑
    ================================================ FILE: application/admin/view/wx/config_index.html ================================================

    微信设置

    ================================================ FILE: application/admin/view/wx/kefu_index.html ================================================

    微信转接客服,转接到配置客服,不设置将随机转接。详细可见官方说明文档http://dkf.qq.com/faq-1_1.html。

    微信多客服设置

    ================================================ FILE: application/admin/view/wx/menu_add.html ================================================

    新增微信菜单

    ================================================ FILE: application/admin/view/wx/menu_index.html ================================================

    关键词:qqkf 设置qq客服,备注设置qq号

    微信菜单管理

    {volist name="menulist" id="menu"} {volist name="menu.sub" id="menu1"} {/volist} {/volist}
    ID PID(上级) 菜单名称 类型 URL 关键词 排序 备注 操作
    {$menu.id} {$menu.pid} {$menu.name} {eq name="menu.type|default=''" value="view"}链接{/eq} {eq name="menu.type|default=''" value="click"}模拟关键字{/eq} {eq name="menu.type|default=''" value="view"} {$menu.url} {/eq} {eq name="menu.type|default=''" value="click"} {$menu.key} {/eq} {$menu.rank} {$menu.remark} 修改 删除
    {$menu1.id} {$menu1.pid} |─{$menu1.name} {eq name="menu1.type|default=''" value="view"}链接{/eq} {eq name="menu1.type|default=''" value="click"}模拟关键字{/eq} {eq name="menu1.type|default=''" value="view"} {$menu1.url} {/eq} {eq name="menu1.type|default=''" value="click"} {$menu1.key} {/eq} {$menu1.rank} {$menu1.remark} 修改 删除
    ================================================ FILE: application/admin/view/wx/print_index.html ================================================

    目前仅支持易联云微信打印机:

    微信打印机设置

    ================================================ FILE: application/admin/view/wx/reply_add.html ================================================

    新增微信自定义回复

    {empty name="reply.file_id"} {else /} {/empty}
    ================================================ FILE: application/admin/view/wx/reply_index.html ================================================

    关键词:subscribe 设置关注自动回复

    微信自定义回复

    {volist name="replylist" id="replylist"} {/volist}
    ID 类型 标题 描述 图片 链接 关键词 备注 操作
    {$replylist.id} {eq name="replylist.type|default=''" value="news"}图文{/eq} {eq name="replylist.type|default=''" value="text"}文本{/eq} {$replylist.title|substr=0,12} {$replylist.description|substr=0,12}
    {empty name="replylist.file_id"} {else /} {/empty}
    {$replylist.url} {$replylist.key} {$replylist.remark} 修改删除
    ================================================ FILE: application/admin/view/wx/tplmsg_add.html ================================================

    模版消息配置

    ================================================ FILE: application/admin/view/wx/tplmsg_index.html ================================================

    微信模板消息请设置所在行业为IT科技/互联网|电子商务,消费品/消费品

    无法自动添加的用户请在微信后台手动添加设置

    微信模版消息列表

    {volist name="tplmsglist" id="tplmsg"} {/volist}
    ID 模版类型 模版编号 模版标题 备注 状态 操作
    {$tplmsg.id} {$tplmsg.name} {$tplmsg.template_id_short} {$tplmsg.title} {$tplmsg.remark} {eq name="tplmsg.status" value="1"} 开启 {else/} 关闭 {/eq} 编辑 {eq name="tplmsg.status" value="0"} 开启 {else} 关闭 {/eq}
    ================================================ FILE: application/app/controller/AddonsController.php ================================================ v = $this->request->param('v', ''); $this->addon = $this->request->param('addon', ''); } public function index() { $view = new View(); if (is_dir('./tpl/addons/'.$this->v.'/'.$this->addon.'/dist/')) { return $view->fetch('./tpl/addons/'.$this->v.'/'.$this->addon.'/dist/index.html'); }else{ return $view->fetch('./tpl/addons/'.$this->v.'/'.$this->addon.'/index.html'); } } } ================================================ FILE: application/app/controller/IndexController.php ================================================ where('id',1)->value('theme'); $view = new View(); if (is_dir('./tpl/theme/'.$theme.'/dist/')) { return $view->fetch('./tpl/theme/'.$theme.'/dist/index.html'); }else{ return $view->fetch('./tpl/theme/'.$theme.'/index.html'); } } public function themeStatic() { $referer = request()->header('referer'); if(strpos($referer, '/addons/')){ $referers = explode('/',$referer); if(strpos($referer, '/tpl/addons/')){ if (is_dir('./tpl/addons/'.$referers[5].'/'.$referers[6].'/dist/')) { $source = request()->root(true).'/tpl/addons/'.$referers[5].'/'.$referers[6].'/dist/'.request()->pathinfo(); }else{ $source = request()->root(true).'/tpl/addons/'.$referers[5].'/'.$referers[6].'/'.request()->pathinfo(); } }else{ if (is_dir('./tpl/addons/'.$referers[4].'/'.$referers[5].'/dist/')) { $source = request()->root(true).'/tpl/addons/'.$referers[4].'/'.$referers[5].'/dist/'.request()->pathinfo(); }else{ $source = request()->root(true).'/tpl/addons/'.$referers[4].'/'.$referers[5].'/'.request()->pathinfo(); } } $this->redirect($source); }else{ $theme = model('Config')->where('id',1)->value('theme'); if (is_dir('./tpl/theme/'.$theme.'/dist/')) { $this->redirect(request()->root(true).'/tpl/theme/'.$theme.'/dist/'. request()->pathinfo()); }else{ $this->redirect(request()->root(true).'/tpl/theme/'.$theme.'/'. request()->pathinfo()); } } } public function source(){ $file = request()->url(true); if (file_exists($file)) { $this->redirect($file); }else{ return json('资源不存在', 404); } } } ================================================ FILE: application/command.php ================================================ // +---------------------------------------------------------------------- return []; ================================================ FILE: application/common/behavior/Config.php ================================================ baseFile(); $base_dir = preg_replace(['/\/index.php$/', '/admin.php$/'], ['', ''], $base_file); defined('PUBLIC_PATH') or define('PUBLIC_PATH', ''); // 视图输出字符串内容替换 $view_replace_str = [ // 静态资源目录 '__PUBLIC__' => $base_dir.PUBLIC_PATH, '__STATIC__' => $base_dir.PUBLIC_PATH. '/static', // 文件上传目录 '__UPLOADS__' => $base_dir.PUBLIC_PATH. '/uploads' ]; config('view_replace_str', $view_replace_str); } } ================================================ FILE: application/common/model/Admin.php ================================================ hasOne('AuthGroup','id','group_id'); } /** * 用户登录认证 * @param string $username 用户名 * @param string $password 用户密码 * @param integer $type 用户名类型 (1-用户名,2-邮箱,3-手机,4-UID) * @return integer 登录成功-用户ID,登录失败-错误编号 */ public function login($username, $password, $type = 1){ $map = array(); switch ($type) { case 1: $map['username'] = $username; break; case 2: $map['email'] = $username; break; case 3: $map['mobile'] = $username; break; case 4: $map['id'] = $username; break; default: return 0; //参数错误 } /* 获取用户数据 */ $user = $this->get($map); if($user){ /* 验证用户密码 */ if(md5($password) === $user->password){ $this->updateLogin($user->id); //更新用户登录信息 return $user->id; //登录成功,返回用户ID } else { return -2; //密码错误 } } else { return -1; //用户不存在或被禁用 } } /** * 更新用户登录信息 * @param integer $uid 用户ID */ protected function updateLogin($uid){ $data = array( 'id' => $uid, 'last_login_time' => date("Y-m-d H:i:s"), 'last_login_ip' => request()->ip(), ); $this->update($data); } } ================================================ FILE: application/common/model/Analysis.php ================================================ whereTime('created_at', 'today')->find(); if ($data) { $this->where('id',$data["id"])->setInc("orders", $orders); $this->where('id',$data["id"])->setInc("trades", $trades); $this->where('id',$data["id"])->setInc("registers", $registers); $this->where('id',$data["id"])->setInc("users", $users); }else{ parent::create([ 'date' => date("Y-m-d"), 'orders' => $orders, 'trades' => $trades, 'registers' => $registers, 'users' => $users ]); } } } ================================================ FILE: application/common/model/Article.php ================================================ hasOne('ArticleCategory','id','category_id'); } } ================================================ FILE: application/common/model/ArticleCategory.php ================================================ hasOne('File','id','logo_id'); } } ================================================ FILE: application/common/model/File.php ================================================ 'float', ]; public function contact() { return $this->hasOne('UserContact','id','contact_id'); } public function avater() { return $this->hasOne('File','id','avater_id'); } public function wx() { return $this->hasOne('OauthWx','user_id','id'); } public function applet() { return $this->hasOne('OauthApplet','user_id','id'); } protected $append = ['level']; protected function getLevelAttr($value, $data) { $score = $data['score']; $level = ''; $levellist = model('app\common\model\UserLevel')->all()->toArray(); foreach ($levellist as &$v) { if($score >= $v['score']){ $level = $v['name']; } } return $level ? $level : '未知等级'; } /** * 用户登录认证 * @param string $username 用户名 * @param string $password 用户密码 * @param integer $type 用户名类型 (1-用户名,2-邮箱,3-手机,4-UID) * @return integer 登录成功-用户ID,登录失败-错误编号 */ public function login($username, $password, $type = 1){ $map = array(); switch ($type) { case 1: $map['username'] = $username; break; case 2: $map['email'] = $username; break; case 3: $map['phone'] = $username; break; case 4: $map['id'] = $username; break; default: return 0; //参数错误 } /* 获取用户数据 */ $user = $this->get($map); if($user){ /* 验证用户密码 */ if(md5($password) === $user->password){ $this->updateLogin($user->id); //更新用户登录信息 return $user->id; //登录成功,返回用户ID } else { return -2; //密码错误 } } else { return -1; //用户不存在或被禁用 } } /** * 更新用户登录信息 * @param integer $uid 用户ID */ protected function updateLogin($uid){ $data = array( 'id' => $uid, 'last_login_time' => date("Y-m-d H:i:s"), 'last_login_ip' => request()->ip(), ); $this->update($data); } } ================================================ FILE: application/common/model/UserLevel.php ================================================ find(); $jssdk = new \JSSDK($wxConfig["appid"], $wxConfig["appsecret"],$url); $result = $jssdk->getSignPackage(); return $result; } /** * getWeObj * @param integer $type 用户名类型 (1-公众号,2-小程序) * @return integer 登录成功-用户ID,登录失败-错误编号 */ public function getWeObj($type = 1) { vendor("dodgepudding.wechat-php-sdk.wechat#class"); $config = $this->find(); switch ($type) { case 1: $options = array( 'token' => $config ["token"], //填写你设定的key 'encodingaeskey' => $config ["encodingaeskey"], //填写加密用的EncodingAESKey 'appid' => $config ["appid"], //填写高级调用功能的app id 'appsecret' => $config ["appsecret"] //填写高级调用功能的密钥 ); break; case 2: $options = array( 'appid' => $config ["x_appid"], //填写高级调用功能的app id 'appsecret' => $config ["x_appsecret"] //填写高级调用功能的密钥 ); break; default: return 0; //参数错误 } $weObj = new \Wechat ($options); return $weObj; } } ================================================ FILE: application/common/model/WxKefu.php ================================================ hasOne('File','id','file_id'); } } ================================================ FILE: application/common/model/WxTplmsg.php ================================================ */ // 应用公共文件 function data_auth_sign($data) { //数据类型检测 if(!is_array($data)){ $data = (array)$data; } ksort($data); //排序 $code = http_build_query($data); //url编码并生成query字符串 $sign = sha1($code); //生成签名 return $sign; } /** * 下载远程文件 * @param string $url 网址 * @param string $filename 保存文件名 * @param integer $timeout 过期时间 * return boolean|string */ function http_down($url, $filename, $timeout = 60) { $path = dirname($filename); if (!is_dir($path) && !mkdir($path, 0755, true)) { return false; } $fp = fopen($filename, 'w'); $ch = curl_init($url); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_exec($ch); curl_close($ch); fclose($fp); return $filename; } // 防超时的file_get_contents改造函数 function wp_file_get_contents($url) { $context = stream_context_create(array( 'http' => array( 'timeout' => 30 ) )); // 超时时间,单位为秒 return file_get_contents($url, 0, $context); } /** *解压文件 */ function unzip($filePath, $toPath,$filesize=0){ // $length = filesize($filePath); // if ($filesize == $length) { $zip = new ZipArchive; $res = $zip->open($filePath); if ($res === TRUE) { //解压缩到指定文件夹 $zip->extractTo($toPath); $zip->close(); //删除压缩包 unlink($filePath); if ( is_dir( $toPath . '__MACOSX' ) ) { delDirAndFile($toPath . '__MACOSX'); } return true; }else{ return false; } // }else{ // return false; // } } // 导出excle function export_to($data,$name=false,$type = 0){ if(!$name){$name=date("Y-m-d-H-i-s",time());} $PHPExcel = new PHPExcel(); //实例化PHPExcel类,类似于在桌面上新建一个Excel表格 $PHPExcel->getActiveSheet()->fromArray($data); $PHPExcel->getActiveSheet()->setTitle('Sheet1'); //给当前活动sheet设置名称 $PHPExcel->setActiveSheetIndex(0); $fileName = './public/'.date('Y-m-d_', time()).time().'.xlsx'; $saveName = $name.date('Y-m-d', time()).'.xlsx'; $PHPWriter = PHPExcel_IOFactory::createWriter($PHPExcel,'Excel5');//按照指定格式生成Excel文件,‘Excel2007’表示生成2007版本的xlsx,‘Excel5’表示生成2003版本Excel文件 if ($type == 0) { header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');//告诉浏览器输出07Excel文件 header('Content-Type:application/vnd.ms-excel');//告诉浏览器将要输出Excel03版本文件 header('Content-Disposition: attachment;filename="'.$saveName.'"');//告诉浏览器输出浏览器名称 // header('Content-Disposition: attachment;filename="01simple.xlsx"');//告诉浏览器输出浏览器名称 header('Cache-Control: max-age=0');//禁止缓存 $PHPWriter->save("php://output"); }else{ $PHPWriter->save($fileName); //表示在$path路径下面生成demo.xlsx文件 } } function list_to_tree($list, $pk = 'id', $pid = 'pid', $child = '_child', $keys = 'id', $sort = 'asc', $root = 0) { // 创建Tree $tree = array(); if (is_array($list)) { // 创建基于主键的数组引用 $refer = array(); foreach ($list as $key => $data) { $list[$key][$child] = []; $refer [$data[$pk]] = &$list[$key]; } foreach ($list as $key => $data) { // 判断是否存在parent $parentId = $data[$pid]; if ($root == $parentId) { $tree [] = &$list[$key]; $tree = my_sort($tree,$keys,$sort,SORT_NUMERIC); } else { if (isset ($refer [$parentId])) { $parent = &$refer[$parentId]; $parent[$child] [] = &$list[$key]; $parent[$child] = my_sort($parent[$child],$keys,$sort,SORT_NUMERIC); } } } } return $tree; } /** * 数组按字段排序 * @param $arrays 要排序的数组 * @return SORT_ASC - 默认,按升序排列。(A-Z) * @return SORT_DESC - 按降序排列。(Z-A) * @return SORT_REGULAR - 默认。将每一项按常规顺序排列。 * @return SORT_NUMERIC - 将每一项按数字顺序排列。 * @return SORT_STRING - 将每一项按字母顺序排列 * @author 清月曦 <1604583867@qq.com> */ function my_sort($arrays,$sort_key,$sort_order='asc',$sort_type=SORT_NUMERIC ){ if($sort_order == 'asc') $sort_order=SORT_ASC; if($sort_order == 'desc') $sort_order=SORT_DESC; if(is_array($arrays)){ foreach ($arrays as $array){ if(is_array($array)){ $key_arrays[] = $array[$sort_key]; }else{ return false; } } }else{ return false; } array_multisort($key_arrays,$sort_order,$sort_type,$arrays); return $arrays; } /** * 及时显示提示信息 * @param string $msg 提示信息 */ function show_msg($msg, $class = ''){ echo ""; flush(); ob_flush(); } /** * 执行SQL文件 */ function execute_sql_file($sql_path) { // 读取SQL文件 $sql = wp_file_get_contents($sql_path); $sql = str_replace("\r", "\n", $sql); $sql = explode(";\n", $sql); // 替换表前缀 $orginal = 'wemall_'; $prefix = config('DB_PREFIX'); $sql = str_replace("{$orginal}", "{$prefix}", $sql); // 开始安装 foreach ($sql as $value) { $value = trim($value); if (empty ($value)) continue; $res = \think\Db::execute($value); } } /** * 远程获取数据,GET模式 * 注意: * 1.使用Crul需要修改服务器中php.ini文件的设置,找到php_curl.dll去掉前面的";"就行了 * @param $url 指定URL完整路径地址 * return 远程输出的数据 */ function getHttpResponseGET($url) { $curl = curl_init($url); curl_setopt($curl, CURLOPT_HEADER, 0 ); // 过滤HTTP头 curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 显示输出结果 $responseText = curl_exec($curl); //var_dump( curl_error($curl) );//如果执行curl过程中出现异常,可打开此开关,以便查看异常内容 curl_close($curl); return $responseText; } /** * 系统邮件发送函数 * @param string $tomail 接收邮件者邮箱 * @param string $name 接收邮件者名称 * @param string $subject 邮件主题 * @param string $body 邮件内容 * @param string $attachment 附件列表 * @return boolean * @author static7 使用方法: $toemail='1604583867@qq.com'; $name = '清月曦';//收件人昵称 $subject='注册验证码'; $mail_tpl = model('MailTpl')->where('type', 'register')->find()->toArray(); $content = str_replace("\$code","123456",$mail_tpl['content']); $result = send_mail($toemail,$name,$subject,$content); dump($result); */ function send_mail($tomail, $name, $subject = '', $body = '', $attachment = null) { $config_mail = model('Mail')->find()->toArray(); $shop = model('Config')->find(); $mail = new \PHPMailer(); //实例化PHPMailer对象 $mail->CharSet = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码 $mail->IsSMTP(); // 设定使用SMTP服务 $mail->SMTPDebug = 0; // SMTP调试功能 0=关闭 1 = 错误和消息 2 = 消息 $mail->SMTPAuth = true; // 启用 SMTP 验证功能 if($config_mail['secure']){ $mail->SMTPSecure = 'ssl'; // 使用安全协议Enable TLS encryption, `ssl` also accepted }else{ $mail->SMTPSecure = 'tls'; // 使用安全协议Enable TLS encryption, `ssl` also accepted } $mail->Host = $config_mail['host']; // SMTP 服务器 $mail->Port = $config_mail['port']; // SMTP服务器的端口号 $mail->Username = $config_mail['user']; // SMTP服务器用户名 $mail->Password = $config_mail['pass']; // SMTP服务器密码 $mail->SetFrom($config_mail['user'], $shop['title']); $replyEmail = $config_mail['replyTo']; //留空则为发件人EMAIL $replyName = '发送回复'; //回复名称(留空则为发件人名称) $mail->AddReplyTo($replyEmail, $replyName); $mail->Subject = $subject; $mail->MsgHTML($body); $mail->AddAddress($tomail, $name); if (is_array($attachment)) { // 添加附件 foreach ($attachment as $file) { is_file($file) && $mail->AddAttachment($file); } } return $mail->Send() ? true : $mail->ErrorInfo; } /** * @param $id * * 易联云微信打印机 */ function wxPrint($id) { $result = model('Order')->with('user,contact,delivery,detail.product.file')->find($id); $config = model('Config')->find(); $msg = ''; $msgtitle = $config['name'] . '欢迎您订购 订单编号:' . $result["orderid"] . ' 条目 单价(元) 数量 -------------------------------------------- '; $detail = ''; for ($j = 0; $j < count($result["detail"]); $j++) { $row = $result["detail"][$j]; $title = $row['name']; $price = $row['price']; $num = $row['num']; $detail .= $title . ' ' . $price . ' ' . $num . ' '; } $msgcontent = $detail; $msgfooter = ' 备注:' . $result["remark"] . ' -------------------------------------------- 合计:' . $result["totalprice"] . '元 付款状态:' . $result['pay_status'] . ' 联系用户:' . $result["contact"]["name"] . ' 送货地址:' . $result["contact"]["province"] . $result["contact"]["city"] . $result["contact"]["district"] . $result["contact"]["address"] . ' 联系电话:' . $result["contact"]["phone"] . ' 订购时间:' . $result["created_at"] . ' ';//自由输出 $msg .= $msgtitle . $msgcontent . $msgfooter; $wxPrint = model("WxPrint")->find(); $partner = $wxPrint["partner"];//用户id $machine_code = $wxPrint["machine_code"];//机器码 $apiKey = $wxPrint["apikey"];//apiKey $msign = $wxPrint["mkey"];//秘钥 vendor("dodgepudding.wechat-php-sdk.WxPrint#class"); $print = new \WxPrint(); //打印 $print->action_print($partner,$machine_code,$msg,$apiKey,$msign); } /** * 产生一个随机数,传入长度 * @param [type] 用户 QQ互联一键登录 产生密码随机 * .@param string $length 随机数密码长度 默认为10个字符; **/ function rand_code($length = 6) { $chars = "123456789"; $str = ""; $size = strlen($chars); for ($i = 0; $i < $length; $i++) { $str .= $chars[mt_rand(0, $size - 1)]; } return $str; } /** * 最简单的XML转数组 * @param string $xmlstring XML字符串 * @return array XML数组 */ function simplest_xml_to_array($xmlstring) { return json_decode(json_encode((array)simplexml_load_string($xmlstring)), true); } ================================================ FILE: application/config.php ================================================ // +---------------------------------------------------------------------- return [ // +---------------------------------------------------------------------- // | 应用设置 // +---------------------------------------------------------------------- // 应用命名空间 'app_namespace' => 'app', // 应用调试模式 'app_debug' => true, // 应用Trace 'app_trace' => false, // 应用模式状态 'app_status' => '', // 是否支持多模块 'app_multi_module' => true, // 入口自动绑定模块 'auto_bind_module' => false, // 注册的根命名空间 'root_namespace' => [], // 扩展函数文件 'extra_file_list' => [THINK_PATH . 'helper' . EXT], // 默认输出类型 'default_return_type' => 'html', // 默认AJAX 数据返回格式,可选json xml ... 'default_ajax_return' => 'json', // 默认JSONP格式返回的处理方法 'default_jsonp_handler' => 'jsonpReturn', // 默认JSONP处理方法 'var_jsonp_handler' => 'callback', // 默认时区 'default_timezone' => 'PRC', // 是否开启多语言 'lang_switch_on' => false, // 默认全局过滤方法 用逗号分隔多个 'default_filter' => '', // 默认语言 'default_lang' => 'zh-cn', // 应用类库后缀 'class_suffix' => false, // 控制器类后缀 'controller_suffix' => true, // +---------------------------------------------------------------------- // | 模块设置 // +---------------------------------------------------------------------- // 默认模块名 'default_module' => 'admin', // 禁止访问模块 'deny_module_list' => ['common'], // 默认控制器名 'default_controller' => 'Index', // 默认操作名 'default_action' => 'index', // 默认验证器 'default_validate' => '', // 默认的空控制器名 'empty_controller' => 'Error', // 操作方法后缀 'action_suffix' => '', // 自动搜索控制器 'controller_auto_search' => true, // +---------------------------------------------------------------------- // | URL设置 // +---------------------------------------------------------------------- // PATHINFO变量名 用于兼容模式 'var_pathinfo' => 's', // 兼容PATH_INFO获取 'pathinfo_fetch' => ['ORIG_PATH_INFO', 'REDIRECT_PATH_INFO', 'REDIRECT_URL'], // pathinfo分隔符 'pathinfo_depr' => '/', // URL伪静态后缀 'url_html_suffix' => 'html', // URL普通方式参数 用于自动生成 'url_common_param' => false, // URL参数方式 0 按名称成对解析 1 按顺序解析 'url_param_type' => 0, // 是否开启路由 'url_route_on' => true, // 路由使用完整匹配 'route_complete_match' => false, // 路由配置文件(支持配置多个) 'route_config_file' => ['route'], // 是否强制使用路由 'url_route_must' => false, // 域名部署 'url_domain_deploy' => false, // 域名根,如thinkphp.cn 'url_domain_root' => '', // 是否自动转换URL中的控制器和操作名 'url_convert' => true, // 默认的访问控制器层 'url_controller_layer' => 'controller', // 表单请求类型伪装变量 'var_method' => '_method', // 表单ajax伪装变量 'var_ajax' => '_ajax', // 表单pjax伪装变量 'var_pjax' => '_pjax', // 是否开启请求缓存 true自动缓存 支持设置请求缓存规则 'request_cache' => false, // 请求缓存有效期 'request_cache_expire' => null, // +---------------------------------------------------------------------- // | 模板设置 // +---------------------------------------------------------------------- 'template' => [ // 模板引擎类型 支持 php think 支持扩展 'type' => 'Think', // 模板路径 'view_path' => '', // 模板后缀 'view_suffix' => 'html', // 模板文件名分隔符 'view_depr' => '_', // 模板引擎普通标签开始标记 'tpl_begin' => '{', // 模板引擎普通标签结束标记 'tpl_end' => '}', // 标签库标签开始标记 'taglib_begin' => '{', // 标签库标签结束标记 'taglib_end' => '}', 'tpl_cache' => false, ], // 视图输出字符串内容替换 'view_replace_str' => [], // 默认跳转页面对应的模板文件 'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl', 'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl', // +---------------------------------------------------------------------- // | 异常及错误设置 // +---------------------------------------------------------------------- // 异常页面的模板文件 'exception_tmpl' => THINK_PATH . 'tpl' . DS . 'think_exception.tpl', // 错误显示信息,非调试模式有效 'error_message' => '页面错误!请稍后再试~', // 显示错误信息 'show_error_msg' => false, // 异常处理handle类 留空使用 \think\exception\Handle 'exception_handle' => '', // +---------------------------------------------------------------------- // | 日志设置 // +---------------------------------------------------------------------- 'log' => [ // 日志记录方式,内置 file socket 支持扩展 'type' => 'File', // 日志保存目录 'path' => LOG_PATH, // 日志记录级别 'level' => [], ], // +---------------------------------------------------------------------- // | Trace设置 开启 app_trace 后 有效 // +---------------------------------------------------------------------- 'trace' => [ // 内置Html Console 支持扩展 'type' => 'Html', ], // +---------------------------------------------------------------------- // | 缓存设置 // +---------------------------------------------------------------------- 'cache' => [ // 驱动方式 'type' => 'File', // 缓存保存目录 'path' => CACHE_PATH, // 缓存前缀 'prefix' => '', // 缓存有效期 0表示永久缓存 'expire' => 0, ], // +---------------------------------------------------------------------- // | 会话设置 // +---------------------------------------------------------------------- 'session' => [ 'id' => '', // SESSION_ID的提交变量,解决flash上传跨域 'var_session_id' => '', // SESSION 前缀 'prefix' => 'think', // 驱动方式 支持redis memcache memcached 'type' => '', // 是否自动开启 SESSION 'auto_start' => true, ], // +---------------------------------------------------------------------- // | Cookie设置 // +---------------------------------------------------------------------- 'cookie' => [ // cookie 名称前缀 'prefix' => '', // cookie 保存时间 'expire' => 0, // cookie 保存路径 'path' => '/', // cookie 有效域名 'domain' => '', // cookie 启用安全传输 'secure' => false, // httponly设置 'httponly' => '', // 是否使用 setcookie 'setcookie' => true, ], //分页配置 'paginate' => [ 'type' => 'bootstrap', 'var_page' => 'page', 'list_rows' => 15, ], //验证码 'captcha' => [ // 验证码字符集合 'codeSet' => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY', // 使用中文验证码 'useZh' =>false, // 字体大小 'fontSize' => 35, // 是否画混淆曲线 'useCurve' => true, // 验证码图片高度 'imageH' => '', // 验证码图片宽度 'imageW' => '', // 验证码长度(位数) 'length' => 4, // 验证成功后是否重置 'reset' => true ], ]; ================================================ FILE: application/database.php ================================================ // +---------------------------------------------------------------------- return [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'kaiyuan', // 用户名 'username' => 'root', // 密码 'password' => 'root', // 端口 'hostport' => '3306', // 连接dsn 'dsn' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => '', // 数据库调试模式 'debug' => true, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 'deploy' => 0, // 数据库读写是否分离 主从式有效 'rw_separate' => false, // 读写分离后 主服务器数量 'master_num' => 1, // 指定从服务器序号 'slave_no' => '', // 是否严格检查字段是否存在 'fields_strict' => true, // 数据集返回类型 'resultset_type' => 'array', // 自动写入时间戳字段 'auto_timestamp' => false, // 时间字段取出后的默认时间格式 'datetime_format' => 'Y-m-d H:i:s', // 是否需要进行SQL性能分析 'sql_explain' => false, ]; ================================================ FILE: application/install/common.php ================================================ array('操作系统', '不限制', '类Unix', PHP_OS, 'success'), 'php' => array('PHP版本', '5.4', '5.4+', PHP_VERSION, 'success'), 'upload' => array('附件上传', '不限制', '2M+', '未知', 'success'), 'gd' => array('GD库', '2.0', '2.0+', '未知', 'success'), ); //PHP环境检测 if ($items['php'][3] < $items['php'][1]) { $items['php'][4] = 'error'; } //附件上传检测 if (@ini_get('file_uploads')) $items['upload'][3] = ini_get('upload_max_filesize'); //GD库检测 $tmp = function_exists('gd_info') ? gd_info() : array(); if (empty($tmp['GD Version'])) { $items['gd'][3] = '未安装'; $items['gd'][4] = 'error'; } else { $items['gd'][3] = $tmp['GD Version']; } unset($tmp); return $items; } /** * 目录,文件读写检测 * @return array 检测数据 */ function check_dirfile() { $items = array( array('dir', '可写', 'success', 'addons'), array('dir', '可写', 'success', 'application'), array('dir', '可写', 'success', 'data'), array('dir', '可写', 'success', 'public'), array('dir', '可写', 'success', 'tpl'), array('dir', '可写', 'success', 'thinkphp'), ); foreach ($items as &$val) { if ('dir' == $val[0]) { if (!is_writable($val[3])) { if (is_dir($items[3])) { $val[1] = '可读'; $val[2] = 'error'; session('error', true); } else { $val[1] = '不存在'; $val[2] = 'error'; session('error', true); } } } else { if (file_exists($val[3])) { if (!is_writable($val[3])) { $val[1] = '不可写'; $val[2] = 'error'; session('error', true); } } else { if (!is_writable(dirname($val[3]))) { $val[1] = '不存在'; $val[2] = 'error'; session('error', true); } } } } return $items; } /** * 函数检测 * @return array 检测数据 */ function check_func() { $items = array( array('pdo','支持','success','类'), array('pdo_mysql','支持','success','模块'), array('fileinfo','支持','success','模块'), array('file_get_contents', '支持', 'success','函数'), array('mb_strlen', '支持', 'success','函数'), array('pathinfo', '支持', 'success','函数'), array('curl','支持','success','模块'), ); foreach ($items as &$val) { if(('类'==$val[3] && !class_exists($val[0])) || ('模块'==$val[3] && !extension_loaded($val[0])) || ('函数'==$val[3] && !function_exists($val[0])) ){ $val[1] = '不支持'; $val[2] = 'error'; } } return $items; } /** * 及时显示提示信息 * @param string $msg 提示信息 */ function install_show_msg($msg, $class = true) { if ($class) { echo ""; } else { echo ""; exit; } } /** * 过滤数据 * @param array $data 过滤数据 */ function filter_string($data) { if ($data === NULL) { return false; } if (is_array($data)) { foreach ($data as $k => $v) { $data[$k] = filter_string($v); } return $data; } else { return htmlspecialchars($data, ENT_QUOTES, 'UTF-8'); } } /** * 保存模块配置 * @param string $file 调用文件 * @return array */ function install_save_config($file, $config) { if (empty($config) || !is_array($config)) { return array(); } $file = install_get_config_file($file); //读取配置内容 $conf = file_get_contents($file); //替换配置项 foreach ($config as $key => $value) { if (is_string($value) && !in_array($value, array('true', 'false'))) { if (!is_numeric($value)) { $value = "'" . $value . "'"; //如果是字符串,加上单引号 } } $conf = preg_replace("/'" . $key . "'\s*=\>\s*(.*?),/iU", "'" . $key . "'=>" . $value . ",", $conf); } //写入应用配置文件 if (!IS_WRITE) { return false; } else { if (file_put_contents($file, $conf)) { return true; } else { return false; } return ''; } } /** * 解析配置文件路径 * @param string $file 文件路径或简写路径 * @return dir */ function install_get_config_file($file) { $name = $file; if (!is_file($file)) { $str = explode('/', $file); $strCount = count($str); switch ($strCount) { case 1: $app = APP_NAME; $name = $str[0]; break; case 2: $app = $str[0]; $name = $str[1]; break; } $app = strtolower($app); if (empty($app) && empty($file)) { throw new \Exception("Config '{$file}' not found'", 500); } $file = APP_PATH . "{$app}/conf/{$name}.php"; if (!file_exists($file)) { throw new \Exception("Config '{$file}' not found", 500); } } return $file; } /** * 写入配置文件 * @param $config * @return array 配置信息 */ function write_config($config){ if(is_array($config)){ //读取配置内容 $conf = file_get_contents(APP_PATH . 'install/data/database.tpl'); // 替换配置项 foreach ($config as $name => $value) { $conf = str_replace("[{$name}]", $value, $conf); } //写入应用配置文件 if(file_put_contents(APP_PATH . 'database.php', $conf)){ install_show_msg('配置文件写入成功'); } else { install_show_msg('配置文件写入失败!', 'error'); } return ''; } } /* 参数: $sql_path:sql文件路径; $old_prefix:原表前缀; $new_prefix:新表前缀; $separator:分隔符 参数可为";\n"或";\r\n"或";\r" */ function get_mysql_data($sql_path, $old_prefix = "", $new_prefix = "", $separator = ";\n") { $commenter = array('#', '--'); //判断文件是否存在 if (!file_exists($sql_path)) return false; $content = file_get_contents($sql_path); //读取sql文件 $content = str_replace(array($old_prefix, "\r"), array($new_prefix, "\n"), $content);//替换前缀 //通过sql语法的语句分割符进行分割 $segment = explode($separator, trim($content)); //去掉注释和多余的空行 $data = array(); foreach ($segment as $statement) { $sentence = explode("\n", $statement); $newStatement = array(); foreach ($sentence as $subSentence) { if ('' != trim($subSentence)) { //判断是会否是注释 $isComment = false; foreach ($commenter as $comer) { if (preg_match("/^(" . $comer . ")/is", trim($subSentence))) { $isComment = true; break; } } //如果不是注释,则认为是sql语句 if (!$isComment) $newStatement[] = $subSentence; } } $data[] = $newStatement; } //组合sql语句 foreach ($data as $statement) { $newStmt = ''; foreach ($statement as $sentence) { $newStmt = $newStmt . trim($sentence) . "\n"; } if (!empty($newStmt)) { $result[] = $newStmt; } } return $result; } ================================================ FILE: application/install/config.php ================================================ // +---------------------------------------------------------------------- // 应用公共文件 return [ 'template' => [ // 模板引擎类型 支持 php think 支持扩展 'type' => 'Think', // 模板路径 'view_path' => '', // 模板后缀 'view_suffix' => 'html', // 模板文件名分隔符 'view_depr' => '_', // 模板引擎普通标签开始标记 'tpl_begin' => '{', // 模板引擎普通标签结束标记 'tpl_end' => '}', // 标签库标签开始标记 'taglib_begin' => '{', // 标签库标签结束标记 'taglib_end' => '}', ], ]; ================================================ FILE: application/install/controller/IndexController.php ================================================ baseFile(), 'public')){ $this->view->replace([ '__PUBLIC__' => request()->root(true), ]); }else{ $this->view->replace([ '__PUBLIC__' => request()->root(true).'/public', ]); } } /** * 主页 */ public function index() { return view(); } /** * 安装环境检测 */ public function setup1() { $this->assign('check_env', check_env()); $this->assign('check_func', check_func()); $this->assign('check_dirfile', check_dirfile()); return view(); } /** * 安装程序 */ public function setup2() { return view(); } /** * 开始安装 */ public function setup3() { echo $this->fetch(); //检测信息 $data = input('post.'); if (!$data['db']['hostname']) { install_show_msg('请填写数据库地址!', false); } if (!$data['db']['hostport']) { install_show_msg('请填写数据库端口!', false); } if (!$data['db']['database']) { install_show_msg('请填写数据库名称!', false); } if (!$data['db']['username']) { install_show_msg('请填写数据库用户名!', false); } if (!$data['username']) { install_show_msg('请填写用户名/邮箱!', false); } if (!$data['password']) { install_show_msg('请填写密码!', false); } if (!$data['password2']) { install_show_msg('请填写重复密码!', false); } if ($data['password'] != $data['password2']) { install_show_msg('重复密码不匹配!', false); } // 缓存数据库配置 session('db_config', $data['db']); // 防止不存在的数据库导致连接数据库失败 $db_name = $data['db']['database']; unset($data['db']['database']); // 创建数据库连接 $db_instance = Db::connect($data['db']); // 检测数据库连接 try{ $db_instance->execute('select version()'); }catch(\Exception $e){ install_show_msg('数据库连接失败,请检查连接信息是否正确!', false); } $result = $db_instance->execute('SELECT * FROM information_schema.schemata WHERE schema_name="'.$db_name.'"'); if ($result) { install_show_msg('该数据库已存在,请更换名称!', false); } // 创建数据库 $sql2 = "CREATE DATABASE IF NOT EXISTS `{$db_name}` DEFAULT CHARACTER SET utf8"; $db_instance->execute($sql2) || install_show_msg($db_instance->getError(), false); //修改数据库配置文件 write_config(session('db_config')); $db_instance2 = Db::connect(session('db_config')); // 开始安装 $file = './wemall7.sql'; $sqlData = get_mysql_data($file, '', ''); foreach ($sqlData as $sql) { $db_instance2->execute($sql); } //创建超级管理员 $db_instance2->name('admin')->where('id',1)->update(['username' => $data['username'],'password'=>md5($data['password'])]); install_show_msg('超级管理员创建完成...'); //创建文件锁 file_put_contents('./data/install.lock', ''); //安装完毕 show_msg('安装程序执行完毕!重新安装需要删除./data/install.lock'); $adminUrl = url('../admin/index/index'); echo ""; } } ================================================ FILE: application/install/data/database.tpl ================================================ // +---------------------------------------------------------------------- return [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '[hostname]', // 数据库名 'database' => '[database]', // 用户名 'username' => '[username]', // 密码 'password' => '[password]', // 端口 'hostport' => '[hostport]', // 连接dsn 'dsn' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => '', // 数据库调试模式 'debug' => true, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 'deploy' => 0, // 数据库读写是否分离 主从式有效 'rw_separate' => false, // 读写分离后 主服务器数量 'master_num' => 1, // 指定从服务器序号 'slave_no' => '', // 是否严格检查字段是否存在 'fields_strict' => true, // 数据集返回类型 'resultset_type' => 'array', // 自动写入时间戳字段 'auto_timestamp' => false, // 时间字段取出后的默认时间格式 'datetime_format' => 'Y-m-d H:i:s', // 是否需要进行SQL性能分析 'sql_explain' => false, ]; ================================================ FILE: application/install/view/index.html ================================================ ================================================ FILE: application/install/view/index_header.html ================================================ WeMall安装向导 ================================================ FILE: application/install/view/index_index.html ================================================ {include file="index/header" /}

    WeMall使用协议

    版权完全遵循MIT开源协议,以下为基于 WeMall 的补充协议。

    为了保证您和他人的利益请遵循以下几条使用规则:

    1、您可以在完全遵循本协议的情况下,将 WeMall 用于商业用途,而不必支付使用费用,但我们也不承诺会对非赞助用户提供任何形式的技术支持;

    2、使用 WeMall 您可以不用在明显页面保留程序版权信息,但程序最终版权仍归原作者所有,为了程序能持续发展建议您在网站底部注明:powered by WeMall,另外我们可能不会对未保留版权信息的用户提供任何无偿的技术支持;

    3、非授权用户后台版权与程序内版权信息不可以去除,这是我们唯一可以保护自己权益的地方;

    4、您可以免费使用 WeMall ,修改源代码或界面风格以适应您的实际要求,但是禁止对软件进行改名发布,禁止以任何形式对 WeMall 形成竞争;

    5、您可以对 WeMall 进行二次开发,但禁止重新分发任何在 WeMall 的整体或任何部分基础上发展的派生版本、修改版本或第三方版本,可以自己分配使用版权请参考第四条;

    6、如果您在您的程序如引用WeMall的功能或者设计,请在明显的地方如官网等地方加入本设计或功能采用 WeMall ;

    7、自您开始使用 WeMall 时本协议已自动生效;

    8、如果您未能遵守本协议的条款3、条款4、条款5、条款6,您的免费使用授权将被终止,并将依法承担相应法律责任。

    ================================================ FILE: application/install/view/index_setup1.html ================================================ {include file="index/header" /}

    WeMall安装环境测试

    功能支持检测 {volist name="check_env" id="vo"}
    {$vo.3}     ×"; } else { echo ""; } ?>
    {/volist} 函数支持检测 {volist name="check_func" id="vo"}
    {$vo.1}     ×"; } else { echo ""; } ?>
    {/volist}
    以上模块功能如果不可用可能会影响到系统的部分功能将无法使用
    目录权限检测 {volist name="check_dirfile" id="vo"}
    {$vo.3}     ×"; } else { echo ""; } ?>
    {/volist}
    ================================================ FILE: application/install/view/index_setup2.html ================================================ {include file="index/header" /}

    WeMall安装配置

    MySQL
    超级管理员
    上一步
    ================================================ FILE: application/install/view/index_setup3.html ================================================ {include file="index/header" /}

    WeMall安装进行中

    ================================================ FILE: application/route.php ================================================ // +---------------------------------------------------------------------- use think\Route; Route::any('addons/:v/:addon/index', 'app/addons/index',['ext'=>'html']); Route::any('static', "app/index/themeStatic"); Route::any('tpl/theme', "app/index/source"); ================================================ FILE: application/tags.php ================================================ // +---------------------------------------------------------------------- // 应用行为扩展定义文件 return [ // 应用初始化 'app_init' => [], // 应用开始 'app_begin' => [ 'app\\common\\behavior\\Config', // 注册配置行为 ], // 模块初始化 'module_init' => [], // 操作开始执行 'action_begin' => [], // 视图内容过滤 'view_filter' => [], // 日志写入 'log_write' => [], // 应用结束 'app_end' => [], ]; ================================================ FILE: build.php ================================================ // +---------------------------------------------------------------------- return [ // 生成应用公共文件 '__file__' => ['common.php', 'config.php', 'database.php'], // 定义demo模块的自动生成 (按照实际定义的文件名生成) 'demo' => [ '__file__' => ['common.php'], '__dir__' => ['behavior', 'controller', 'model', 'view'], 'controller' => ['Index', 'Test', 'UserType'], 'model' => ['User', 'UserType'], 'view' => ['index/index'], ], // 其他更多的模块定义 ]; ================================================ FILE: composer.json ================================================ { "name": "topthink/think", "description": "the new thinkphp framework", "type": "project", "keywords": [ "framework", "thinkphp", "ORM" ], "homepage": "http://thinkphp.cn/", "license": "Apache-2.0", "authors": [ { "name": "liu21st", "email": "liu21st@gmail.com" } ], "require": { "php": ">=5.4.0", "topthink/framework": "^5.0", "topthink/think-captcha": "^1.0", "qingyuexi/think-addons": "^1.0", "phpoffice/phpexcel": "^1.8", "phpmailer/phpmailer": "^5.2", "flc/alidayu": "^2.0" }, "extra": { "think-path": "thinkphp" }, "config": { "preferred-install": "dist" } } ================================================ FILE: data/index.html ================================================ ================================================ FILE: extend/com/Auth.php ================================================   // +---------------------------------------------------------------------- namespace com; /** * 权限认证类 * 功能特性: * 1,是对规则进行认证,不是对节点进行认证。用户可以把节点当作规则名称实现对节点进行认证。 * $auth=new Auth(); $auth->check('规则名称','用户id') * 2,可以同时对多条规则进行认证,并设置多条规则的关系(or或者and) * $auth=new Auth(); $auth->check('规则1,规则2','用户id','and') * 第三个参数为and时表示,用户需要同时具有规则1和规则2的权限。 当第三个参数为or时,表示用户值需要具备其中一个条件即可。默认为or * 3,一个用户可以属于多个用户组(think_auth_group_access表 定义了用户所属用户组)。我们需要设置每个用户组拥有哪些规则(think_auth_group 定义了用户组权限) * * 4,支持规则表达式。 * 在think_auth_rule 表中定义一条规则时,如果type为1, condition字段就可以定义规则表达式。 如定义{score}>5 and {score}<100 表示用户的分数在5-100之间时这条规则才会通过。 */ //数据库 /* -- ---------------------------- -- think_auth_rule,规则表, -- id:主键,name:规则唯一标识, title:规则中文名称 status 状态:为1正常,为0禁用,condition:规则表达式,为空表示存在就验证,不为空表示按照条件验证 -- ---------------------------- DROP TABLE IF EXISTS `think_auth_rule`; CREATE TABLE `think_auth_rule` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `name` char(80) NOT NULL DEFAULT '', `title` char(20) NOT NULL DEFAULT '', `type` tinyint(1) NOT NULL DEFAULT '1', `status` tinyint(1) NOT NULL DEFAULT '1', `condition` char(100) NOT NULL DEFAULT '', # 规则附件条件,满足附加条件的规则,才认为是有效的规则 PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- ---------------------------- -- think_auth_group 用户组表, -- id:主键, title:用户组中文名称, rules:用户组拥有的规则id, 多个规则","隔开,status 状态:为1正常,为0禁用 -- ---------------------------- DROP TABLE IF EXISTS `think_auth_group`; CREATE TABLE `think_auth_group` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `title` char(100) NOT NULL DEFAULT '', `status` tinyint(1) NOT NULL DEFAULT '1', `rules` char(80) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- ---------------------------- -- think_auth_group_access 用户组明细表 -- uid:用户id,group_id:用户组id -- ---------------------------- DROP TABLE IF EXISTS `think_auth_group_access`; CREATE TABLE `think_auth_group_access` ( `uid` mediumint(8) unsigned NOT NULL, `group_id` mediumint(8) unsigned NOT NULL, UNIQUE KEY `uid_group_id` (`uid`,`group_id`), KEY `uid` (`uid`), KEY `group_id` (`group_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; */ class Auth{ //默认配置 protected $_config = array( 'auth_on' => true, // 认证开关 'auth_type' => 1, // 认证方式,1为实时认证;2为登录认证。 'auth_group' => 'auth_group', // 用户组数据表名 'auth_group_access' => 'auth_group_access', // 用户-用户组关系表 'auth_rule' => 'auth_rule', // 权限规则表 'auth_user' => 'admin' // 用户信息表 ); public function __construct() { if (config('auth_config')) { //可设置配置项 auth_config, 此配置项为数组。 $this->_config = array_merge($this->_config, config('auth_config')); } } /** * 检查权限 * @param name string|array 需要验证的规则列表,支持逗号分隔的权限规则或索引数组 * @param uid int 认证用户的id * @param string mode 执行check的模式 * @param relation string 如果为 'or' 表示满足任一条规则即通过验证;如果为 'and'则表示需满足所有规则才能通过验证 * @return boolean 通过验证返回true;失败返回false */ public function check($name, $uid, $type=1, $mode='url', $relation='or') { if (!$this->_config['auth_on']) return true; $authList = $this->getAuthList($uid,$type); //获取用户需要验证的所有有效规则列表 if (is_string($name)) { $name = strtolower($name); if (strpos($name, ',') !== false) { $name = explode(',', $name); } else { $name = array($name); } } $list = array(); //保存验证通过的规则名 if ($mode=='url') { $REQUEST = unserialize( strtolower(serialize($_REQUEST)) ); } foreach ( $authList as $auth ) { $query = preg_replace('/^.+\?/U','',$auth); if ($mode=='url' && $query!=$auth ) { parse_str($query,$param); //解析规则中的param $intersect = array_intersect_assoc($REQUEST,$param); $auth = preg_replace('/\?.*$/U','',$auth); if ( in_array($auth,$name) && $intersect==$param ) { //如果节点相符且url参数满足 $list[] = $auth ; } }else if (in_array($auth , $name)){ $list[] = $auth ; } } if ($relation == 'or' and !empty($list)) { return true; } $diff = array_diff($name, $list); if ($relation == 'and' and empty($diff)) { return true; } return false; } /** * 根据用户id获取用户组,返回值为数组 * @param uid int 用户id * @return array 用户所属的用户组 array( * array('uid'=>'用户id','group_id'=>'用户组id','title'=>'用户组名称','rules'=>'用户组拥有的规则id,多个,号隔开'), * ...) */ public function getGroups($uid) { static $groups = array(); if (isset($groups[$uid])) return $groups[$uid]; $user_groups = \think\Db::name('auth_group_access') ->alias('a') ->join("auth_group g", "g.id=a.group_id") ->where("a.uid='$uid' and g.status='1'") ->field('uid,group_id,title,rules')->select(); $groups[$uid] = $user_groups ? $user_groups : array(); return $groups[$uid]; } /** * 获得权限列表 * @param integer $uid 用户id * @param integer $type */ protected function getAuthList($uid,$type) { static $_authList = array(); //保存用户验证通过的权限列表 $t = implode(',',(array)$type); if (isset($_authList[$uid.$t])) { return $_authList[$uid.$t]; } if( $this->_config['auth_type']==2 && \think\Session::get('_auth_list_'.$uid.$t)){ return \think\Session::get('_auth_list_'.$uid.$t); } //读取用户所属用户组 $groups = $this->getGroups($uid); $ids = array();//保存用户所属用户组设置的所有权限规则id foreach ($groups as $g) { $ids = array_merge($ids, explode(',', trim($g['rules'], ','))); } $ids = array_unique($ids); if (empty($ids)) { $_authList[$uid.$t] = array(); return array(); } $map=array( 'id'=>array('in',$ids), 'type'=>$type, 'status'=>1, ); //读取用户组所有权限规则 $rules = \think\Db::name('auth_rule')->where($map)->field('condition,name')->select(); //循环规则,判断结果。 $authList = array(); // foreach ($rules as $rule) { if (!empty($rule['condition'])) { //根据condition进行验证 $user = $this->getUserInfo($uid);//获取用户信息,一维数组 $command = preg_replace('/\{(\w*?)\}/', '$user[\'\\1\']', $rule['condition']); //dump($command);//debug @(eval('$condition=(' . $command . ');')); if ($condition) { $authList[] = strtolower($rule['name']); } } else { //只要存在就记录 $authList[] = strtolower($rule['name']); } } $_authList[$uid.$t] = $authList; if($this->_config['auth_type']==2){ //规则列表结果保存到session \think\Session::set('_auth_list_'.$uid.$t, $authList); } return array_unique($authList); } /** * 获得用户资料,根据自己的情况读取数据库 */ protected function getUserInfo($uid) { static $userinfo=array(); if(!isset($userinfo[$uid])){ $userinfo[$uid]=\think\Db::name('admin')->where('id',$uid)->find(); } return $userinfo[$uid]; } } ================================================ FILE: index.php ================================================ 5.4.0 !'); // 绑定模块 define('BIND_MODULE', 'install'); } // 加载框架引导文件 require __DIR__ . '/thinkphp/start.php'; ================================================ FILE: public/.htaccess ================================================ Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] ================================================ FILE: public/index.php ================================================ // +---------------------------------------------------------------------- // [ 应用入口文件 ] // 定义应用目录 define('APP_PATH', __DIR__ . '/../application/'); // 加载框架引导文件 require __DIR__ . '/../thinkphp/start.php'; ================================================ FILE: public/install/css/base.css ================================================ @charset "utf-8"; /* reset */ html, body, h1, h2, h3, h4, h5, h6, div, dl, dt, dd, ul, ol, li, p, blockquote, pre, hr, figure, table, caption, th, td, form, fieldset, legend, input, button, textarea, menu { margin: 0; padding: 0; font-family: "Microsoft YaHei" } header, footer, section, article, aside, nav, hgroup, address, figure, figcaption, menu, details { display: block; } table { border-collapse: collapse; border-spacing: 0; } caption, th { text-align: left; font-weight: normal; } html, body, fieldset, img, iframe, abbr { border: 0; } i, cite, em, var, address, dfn { font-style: normal; } [hidefocus], summary { outline: 0; } li { list-style: none; } h1, h2, h3, h4, h5, h6, small { font-size: 100%; } sup, sub { font-size: 83%; } pre, code, kbd, samp { font-family: inherit; } q:before, q:after { content: none; } textarea { overflow: auto; resize: none; } label, summary { cursor: default; } a, button { cursor: pointer; } h1, h2, h3, h4, h5, h6, em, strong, b { font-weight: bold; } del, ins, u, s, a, a:hover { text-decoration: none; } body, textarea, input, button, select, keygen, legend { color: #333; outline: 0; } body { background: #fff; } a, a:hover { color: #333; } /* function */ .f-cb:after, .f-cbli li:after { display: block; clear: both; visibility: hidden; height: 0; overflow: hidden; content: "."; } .f-cb, .f-cbli li { zoom: 1; } .f-ib { display: inline-block; *display: inline; *zoom: 1; } .f-dn { display: none; } .f-db { display: block; } .f-fl { float: left; } .f-fr { float: right; } .f-pr { position: relative; } .f-prz { position: relative; zoom: 1; } .f-oh { overflow: hidden; } .f-ff0 { font-family: arial, \5b8b\4f53; } .f-ff1 { font-family: "Microsoft YaHei", \5fae\8f6f\96c5\9ed1, arial, \5b8b\4f53; } .f-fs1 { font-size: 12px; } .f-fs2 { font-size: 14px; } .f-fwn { font-weight: normal; } .f-fwb { font-weight: bold; } .f-tal { text-align: left; } .f-tac { text-align: center; } .f-tar { text-align: right; } .f-taj { text-align: justify; text-justify: inter-ideograph; } .f-vam, .f-vama * { vertical-align: middle; } .f-wsn { word-wrap: normal; white-space: nowrap; } .f-pre { overflow: hidden; text-align: left; white-space: pre-wrap; word-wrap: break-word; word-break: break-all; } .f-wwb { white-space: normal; word-wrap: break-word; word-break: break-all; } .f-ti { overflow: hidden; text-indent: -30000px; } .f-ti2 { text-indent: 2em; } .f-lhn { line-height: normal; } .f-tdu, .f-tdu:hover { text-decoration: underline; } .f-tdn, .f-tdn:hover { text-decoration: none; } .f-toe { overflow: hidden; word-wrap: normal; white-space: nowrap; text-overflow: ellipsis; } .f-csp { cursor: pointer; } .f-csd { cursor: default; } .f-csh { cursor: help; } .f-csm { cursor: move; } .f-usn { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none; } /* animation */ /* 淡入 */ .a-fadein { -webkit-animation-name: fadein; -moz-animation-name: fadein; -ms-animation-name: fadein; animation-name: fadein; } /* define */ /* 淡入 */ @-webkit-keyframes fadein { 0% { opacity: 0; } 100% { opacity: 1; } } @-moz-keyframes fadein { 0% { opacity: 0; } 100% { opacity: 1; } } @-ms-keyframes fadein { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes fadein { 0% { opacity: 0; } 100% { opacity: 1; } } ================================================ FILE: public/install/css/style.css ================================================ body { color: #333333; font-size: 14px; font-family: '微软雅黑'; background-color: #f2f2f2; } a { border-bottom: 1px dashed #06C; color: #06C } a:hover { color: #F60 } .g-install { width: 640px; margin-right: auto; margin-left: auto; margin-top: 30px; background-color: #FFF; border: 1px solid #eee; } .m-head { color: #fff; background-color: #dd4b39; text-align: center; padding: 20px 0; } .m-head h1 { font-size: 26px; font-weight: bold; } .m-body { padding: 20px; line-height: 25px; } .m-body p { padding-top: 10px; } .m-foot { border-top: 1px solid #eee; padding: 30px 0; text-align: center } .m-foot a, .m-foot button { padding: 8px 15px; margin: 0 5px; background-color: #f5f5f5; color: #666; border: 0; } .m-foot .submit { background-color: #dd4b39; color: #fff; } .m-form { line-height: 29px; color: #555; } .m-form legend { font-size: 14px; font-weight: bold; margin-top: 20px; } .m-form .formitm { padding: 20px 0 0; line-height: 25px; } .m-form .lab { float: left; width: 140px; margin-right: -140px; text-align: left; } .m-form .ipt { margin-left: 150px; } .u-element { border: 1px solid #ddd; color: #444; background: #fff; padding: 5px 5px; max-width: 100%; vertical-align: middle; width: 260px; } .m-log { } .m-log .error { color: #F00 } ================================================ FILE: public/install/js/install.js ================================================ function no() { alert('感谢您对WeMall的支持!'); window.close(); } function showmsg(msg, tyle) { var html = '

    ' + msg + '

    '; $('.m-log').append(html); } function insok(adminUrl) { var html = '\ 进入后台\ '; $('.m-foot').html(html); } ================================================ FILE: public/robots.txt ================================================ User-agent: * Disallow: ================================================ FILE: public/router.php ================================================ // +---------------------------------------------------------------------- // $Id$ if (is_file($_SERVER["DOCUMENT_ROOT"] . $_SERVER["REQUEST_URI"])) { return false; } else { require __DIR__ . "/index.php"; } ================================================ FILE: public/static/article/page_mp_article_improve2756b8.css ================================================ html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.6}body{-webkit-touch-callout:none;font-family:"Helvetica Neue",Helvetica,"Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;background-color:#f3f3f3;line-height:inherit}h1,h2,h3,h4,h5,h6{font-weight:400;font-size:16px}*{margin:0;padding:0;font-style:normal}a{color:#607fa6;text-decoration:none}.rich_media_inner{font-size:16px;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.rich_media_area_primary{position:relative;padding:20px 15px 15px;background-color:#fff}.rich_media_area_primary:before{content:" ";position:absolute;left:0;top:0;width:100%;height:1px;border-top:1px solid #e5e5e5;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(0.5);transform:scaleY(0.5);top:auto;bottom:-2px}.rich_media_area_extra{padding:0 15px 0}.rich_media_title{margin-bottom:10px;line-height:1.4;font-weight:400;font-size:24px}.rich_media_meta_list{margin-bottom:18px;line-height:20px;font-size:0}.rich_media_meta{display:inline-block;vertical-align:middle;margin-right:8px;margin-bottom:10px;font-size:16px}.meta_original_tag{line-height:100px;overflow:hidden;background:transparent url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/icon_original_tag.2x25ab3f.png) no-repeat 0 0;width:49px;height:20px;vertical-align:middle;display:inline-block;-webkit-background-size:100% auto;background-size:100% auto}.meta_enterprise_tag img{width:30px;height:30px!important;display:block;position:relative;margin-top:-3px;border:0}.rich_media_meta_text{color:#8c8c8c}.rich_media_meta_nickname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:9em}span.rich_media_meta_nickname{display:none}.rich_media_thumb{width:100%;margin-bottom:6px}.rich_media_content{overflow:hidden;color:#3e3e3e}.rich_media_content *{max-width:100%!important;box-sizing:border-box!important;-webkit-box-sizing:border-box!important;word-wrap:break-word!important}.rich_media_content p{clear:both;min-height:1em;white-space:pre-wrap}.rich_media_content em{font-style:italic}.rich_media_content fieldset{min-width:0}.rich_media_content .list-paddingleft-2{padding-left:30px}.rich_media_content blockquote{margin:0;padding-left:10px;border-left:3px solid #dbdbdb}img{height:auto!important}@media(min-device-width:375px) and (max-device-width:667px) and (-webkit-min-device-pixel-ratio:2){.mm_appmsg .rich_media_inner,.mm_appmsg .rich_media_meta,.mm_appmsg .discuss_list,.mm_appmsg .rich_media_extra,.mm_appmsg .title_tips .tips{font-size:17px}}@media(min-device-width:414px) and (max-device-width:736px) and (-webkit-min-device-pixel-ratio:3){.mm_appmsg .rich_media_title{font-size:25px}}.original_tool_area{display:block;padding:.75em 1em 0;-webkit-tap-highlight-color:rgba(0,0,0,0);color:#3e3e3e;border:1px solid #eaeaea;margin:20px 0}.original_tool_area .radius_avatar{display:inline-block;background-color:#fff;padding:3px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;overflow:hidden;vertical-align:middle}.original_tool_area .radius_avatar img{width:100%;height:100%;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;background-color:#eee}.original_tool_area .tips_global{position:relative;padding-bottom:.5em;font-size:15px}.original_tool_area .tips_global:after{content:" ";position:absolute;left:0;bottom:0;width:100%;height:1px;border-bottom:1px solid #dbdbdb;-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(0.5);transform:scaleY(0.5)}.original_tool_area .radius_avatar{width:27px;height:27px;padding:0;margin-right:.5em}.original_tool_area .radius_avatar img{height:100%!important}.original_tool_area .cell{padding:.8em 0;display:block;position:relative}.original_tool_area .cell_hd,.original_tool_area .cell_bd,.original_tool_area .cell_ft{display:table-cell;vertical-align:middle;word-wrap:break-word;word-break:break-all;white-space:nowrap}.original_tool_area .cell_primary{width:2000px;white-space:normal}.original_tool_area .icon_access:before{content:" ";display:inline-block;height:8px;width:8px;border-width:1px 1px 0 0;border-color:#cbcad0;border-style:solid;transform:matrix(0.71,0.71,-0.71,0.71,0,0);-ms-transform:matrix(0.71,0.71,-0.71,0.71,0,0);-webkit-transform:matrix(0.71,0.71,-0.71,0.71,0,0);position:relative;top:-2px;top:-1px} ================================================ FILE: public/static/article/page_mp_article_improve_combo2805ea.css ================================================ .selectTdClass{background-color:#edf5fa!important}table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd!important}table{margin-bottom:10px;border-collapse:collapse;display:table;width:100%!important}td,th{word-wrap:break-word;word-break:break-all;padding:5px 10px;border:1px solid #DDD}caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center}th{border-top:2px solid #BBB;background:#f7f7f7}.ue-table-interlace-color-single{background-color:#fcfcfc}.ue-table-interlace-color-double{background-color:#f7faff}td p{margin:0;padding:0}.res_iframe{display:block;width:100%;background-color:transparent;border:0}.vote_area{display:block;position:relative;margin:14px 0;white-space:normal!important}.vote_iframe{display:block;width:100%;height:100%;background-color:transparent;border:0}form{display:none!important}@media screen and (min-width:0\0) and (min-resolution:72dpi){.rich_media_content table{table-layout:fixed!important}.rich_media_content td,.rich_media_content th{width:auto!important}}.tc{text-align:center}.tl{text-align:left}.tr{text-align:right}.tips_global{color:#8c8c8c}.rich_split_tips{margin:20px 0;min-height:24px}.rich_media_tool_tips{margin-bottom:8px}.rich_media_tool{overflow:hidden;padding-top:15px;line-height:32px}.rich_media_tool .meta_primary{float:left;margin-right:10px}.rich_media_tool .meta_extra{float:right;margin-left:10px}.rich_media_tool .meta_praise{margin-right:0;margin-left:8px}.media_tool_meta i{vertical-align:0;position:relative;top:1px;margin-right:3px}.meta_praise{-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0;min-width:3.5em}.meta_praise .praise_num{display:inline-block;vertical-align:top}.icon_praise_gray{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAA+CAYAAAA1dwvuAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACd0lEQVRYhe2XMWhUMRjHfycdpDg4iJN26CQih4NUlFIc3iTasaAO+iZBnorIId2CDg6PLqWDXSy0p28TJ6ejILgoKiLFSeRcnASLnDf2HPKll8b3ah5NQPB+cHzJl0v+73J5Sf6NwWCAD6kqxoEV4BywCTwA2j59V9QlxrxUNJeBOSkfBtaAHvDcp/O+GkJHJd4H7kr5nm/nOkJHJH4FHkv5WAyhUxLfAgelvBlUKFXFBNCU6oYl+j6oEHohADwFtoDTUn8dTChVxX7gjlSfSJyS+CaYEDCPXs4d4IXkzDR+8BWqfI9SVUyil/ENST20ml8BF4Afu4z9HT3V80B/TAY9CxTABNAHxp1Oj4B1q34dWAamGa5Al0PALfSs3TS/aE1EcERWgQXgozPIN+Ai6O2ljFQVM8BLZJqN0KTEhgj9kvrViqf1wYz5BcoXQ38Pg9uckfiuSigU0xLXowmlqpgCjgNd4FM0IeCKxGcmEUtoRqLZScILpaqYA06iN9/tTTfGLzKvxLKdDCqUquIEcB59xK9GE2J4xLeBn3ZD1abaq/sQqSpmgWvo82rBbTdCPeAA4N69/noXS1XhphaBz27SPPVtapz/FXSBFsNDcgcN3wvkiBEjRoSndAtqLXXKvuvtYfMs+SP3T3tYm6ge1iaqh7UJ62HRTqNZko/mYV3CeVjA9rAuUTxsGd4edrcX1vWwddn2sHmWaA/bWuq4HnYLff3aC7U8bAiaMPyPJp3GhnxCUOlhQxPdwxrieViLbp4lUT2sIbqHNcTzsBYbeZZE9bCGeB7WIrqHNbTzLNnhYWMIlXpYI9Rz8gM8/GsFi3mW/Ace9jf8QZwIX5o4uQAAAABJRU5ErkJggg==) no-repeat 0 0;width:13px;height:13px;vertical-align:middle;display:inline-block;-webkit-background-size:100% auto;background-size:100% auto}.icon_praise_gray.praised{background-position:0 -18px}.praised .icon_praise_gray{background-position:0 -18px}.rich_tips{margin-top:25px;margin-bottom:0;min-height:24px;text-align:center}.rich_tips .tips{display:inline-block;vertical-align:middle}.rich_tips .tips,.rich_tips .rich_icon{vertical-align:middle}.rich_tips .rich_icon{margin-top:-3px 5px 0 0}.rich_tips.with_line{border-top:1px dotted #e1e1e1}.rich_tips.with_line .tips{position:relative;top:-12px;padding-left:16px;padding-right:16px;background-color:#f3f3f3}.rich_tips.with_line{line-height:16px}.rich_tips.with_line .tips{top:-11px;padding-left:.35em;padding-right:.35em}.title_tips .tips{color:#868686;font-size:16px}.loading_tips{margin:36px 0 20px}.title_bottom_tips{margin-top:-10px}.icon_arrow_gray{width:7px}.icon_loading_white{width:16px}.icon_loading_white.icon_before{margin-right:1em}.icon_loading_white.icon_after{margin-left:1em}.btn{display:block;padding-left:14px;padding-right:14px;font-size:18px;text-align:center;text-decoration:none;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;color:#fff;line-height:42px;-webkit-tap-highlight-color:rgba(255,255,255,0)}.btn.btn_inline{display:inline-block}.btn_primary{background-color:#04be02}.btn_primary:not(.btn_disabled):visited{color:#fff}.btn_primary:not(.btn_disabled):active{color:rgba(255,255,255,0.4);background-color:#039702}.btn_disabled{color:rgba(255,255,255,0.6)}.emotion_tool{position:relative;overflow:hidden}.pic_emotion_switch_wrp{margin-left:15px;margin-bottom:6px;display:inline-block;font-size:0}.pic_emotion_switch_wrp img{width:35px;display:block}.pic_emotion_switch_wrp .pic_active{display:none}.pic_emotion_switch_wrp:active .pic_default{display:none}.pic_emotion_switch_wrp:active .pic_active{display:block}.emotion_switch{margin-left:15px;margin-bottom:6px;background:transparent url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/icon_emotion_tool.2x278965.png) no-repeat 0 0;width:35px;height:35px;vertical-align:middle;display:inline-block;-webkit-background-size:35px auto;background-size:35px auto}.emotion_switch:active{background-position:0 -40px}.emotion_panel_arrow_wrp{position:absolute;margin-top:-6px;margin-left:26px}.emotion_panel_arrow_wrp .emotion_panel_arrow{position:absolute;display:inline-block;width:0;height:0;border-width:6px;border-style:dashed;border-color:transparent;border-top-width:0;border-bottom-color:#e5e5e7;border-bottom-style:solid}.emotion_panel_arrow_wrp .arrow_in{border-bottom-color:#f6f6f8;top:1px}.emotion_panel{background-color:#f6f6f8;position:relative}.emotion_panel:before{content:" ";position:absolute;left:0;top:0;width:100%;height:1px;border-top:1px solid #e3e3e5;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(0.5);transform:scaleY(0.5)}.emotion_panel:after{content:" ";position:absolute;left:0;bottom:0;width:100%;height:1px;border-bottom:1px solid #e3e3e5;-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(0.5);transform:scaleY(0.5)}.emotion_list_wrp{overflow:hidden;position:relative;font-size:0;white-space:nowrap}.emotion_list{padding:10px 15px 0;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:normal;display:inline-block;vertical-align:top}.emotion_item{display:inline-block;width:36px;height:36px;margin-bottom:5px;text-align:center;line-height:36px}.emotion_navs{text-align:center;padding-bottom:5px}.emotion_nav{display:inline-block;width:8px;height:8px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;overflow:hidden;background-color:#bbb;margin:0 5px}.emotion_nav.current{background-color:#8c8c8c}.icon_emotion{width:22px;height:22px;vertical-align:middle;display:inline-block;background:transparent url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/icon_emotion.2x278965.png) no-repeat 0 0;-webkit-background-size:2520px auto;background-size:2520px auto}.icon_emotion.del{background:transparent url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/icon_emotion_tool.2x278965.png) no-repeat 0 0;width:28px;height:28px;vertical-align:middle;display:inline-block;background-position:2px -62px;-webkit-background-size:28px auto;background-size:28px auto}.icon_emotion.del:active{background-position:2px -92px}.icon_emotion_single{width:22px;height:22px;vertical-align:middle;display:inline-block;-webkit-background-size:22px auto;background-size:22px auto}.icon_emotion_single.icon1{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_01278965.png)}.icon_emotion_single.icon2{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_02278965.png)}.icon_emotion_single.icon3{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_03278965.png)}.icon_emotion_single.icon4{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_04278965.png)}.icon_emotion_single.icon5{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_05278965.png)}.icon_emotion_single.icon6{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_06278965.png)}.icon_emotion_single.icon7{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_07278965.png)}.icon_emotion_single.icon8{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_08278965.png)}.icon_emotion_single.icon9{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_09278965.png)}.icon_emotion_single.icon10{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_10278965.png)}.icon_emotion_single.icon11{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_11278965.png)}.icon_emotion_single.icon12{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_12278965.png)}.icon_emotion_single.icon13{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_13278965.png)}.icon_emotion_single.icon14{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_14278965.png)}.icon_emotion_single.icon15{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_15278965.png)}.icon_emotion_single.icon16{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_16278965.png)}.icon_emotion_single.icon17{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_17278965.png)}.icon_emotion_single.icon18{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_18278965.png)}.icon_emotion_single.icon19{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_19278965.png)}.icon_emotion_single.icon20{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_20278965.png)}.icon_emotion_single.icon21{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_21278965.png)}.icon_emotion_single.icon22{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_22278965.png)}.icon_emotion_single.icon23{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_23278965.png)}.icon_emotion_single.icon24{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_24278965.png)}.icon_emotion_single.icon25{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_25278965.png)}.icon_emotion_single.icon26{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_26278965.png)}.icon_emotion_single.icon27{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_27278965.png)}.icon_emotion_single.icon28{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_28278965.png)}.icon_emotion_single.icon29{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_29278965.png)}.icon_emotion_single.icon30{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_30278965.png)}.icon_emotion_single.icon31{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_31278965.png)}.icon_emotion_single.icon32{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_32278965.png)}.icon_emotion_single.icon33{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_33278965.png)}.icon_emotion_single.icon34{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_34278965.png)}.icon_emotion_single.icon35{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_35278965.png)}.icon_emotion_single.icon36{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_36278965.png)}.icon_emotion_single.icon37{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_37278965.png)}.icon_emotion_single.icon38{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_38278965.png)}.icon_emotion_single.icon39{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_39278965.png)}.icon_emotion_single.icon40{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_40278965.png)}.icon_emotion_single.icon41{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_41278965.png)}.icon_emotion_single.icon42{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_42278965.png)}.icon_emotion_single.icon43{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_43278965.png)}.icon_emotion_single.icon44{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_44278965.png)}.icon_emotion_single.icon45{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_45278965.png)}.icon_emotion_single.icon46{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_46278965.png)}.icon_emotion_single.icon47{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_47278965.png)}.icon_emotion_single.icon48{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_48278965.png)}.icon_emotion_single.icon49{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_49278965.png)}.icon_emotion_single.icon50{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_50278965.png)}.icon_emotion_single.icon51{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_51278965.png)}.icon_emotion_single.icon52{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_52278965.png)}.icon_emotion_single.icon53{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_53278965.png)}.icon_emotion_single.icon54{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_54278965.png)}.icon_emotion_single.icon55{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_55278965.png)}.icon_emotion_single.icon56{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_56278965.png)}.icon_emotion_single.icon57{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_57278965.png)}.icon_emotion_single.icon58{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_58278965.png)}.icon_emotion_single.icon59{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_59278965.png)}.icon_emotion_single.icon60{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_60278965.png)}.icon_emotion_single.icon61{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_61278965.png)}.icon_emotion_single.icon62{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_62278965.png)}.icon_emotion_single.icon63{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_63278965.png)}.icon_emotion_single.icon64{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_64278965.png)}.icon_emotion_single.icon65{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_65278965.png)}.icon_emotion_single.icon66{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_66278965.png)}.icon_emotion_single.icon67{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_67278965.png)}.icon_emotion_single.icon68{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_68278965.png)}.icon_emotion_single.icon69{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_69278965.png)}.icon_emotion_single.icon70{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_70278965.png)}.icon_emotion_single.icon71{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_71278965.png)}.icon_emotion_single.icon72{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_72278965.png)}.icon_emotion_single.icon73{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_73278965.png)}.icon_emotion_single.icon74{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_74278965.png)}.icon_emotion_single.icon75{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_75278965.png)}.icon_emotion_single.icon76{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_76278965.png)}.icon_emotion_single.icon77{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_77278965.png)}.icon_emotion_single.icon78{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_78278965.png)}.icon_emotion_single.icon79{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_79278965.png)}.icon_emotion_single.icon80{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_80278965.png)}.icon_emotion_single.icon81{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_81278965.png)}.icon_emotion_single.icon82{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_82278965.png)}.icon_emotion_single.icon83{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_83278965.png)}.icon_emotion_single.icon84{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_84278965.png)}.icon_emotion_single.icon85{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_85278965.png)}.icon_emotion_single.icon86{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_86278965.png)}.icon_emotion_single.icon87{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_87278965.png)}.icon_emotion_single.icon88{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_88278965.png)}.icon_emotion_single.icon89{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_89278965.png)}.icon_emotion_single.icon90{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_90278965.png)}.icon_emotion_single.icon91{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_91278965.png)}.icon_emotion_single.icon92{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_92278965.png)}.icon_emotion_single.icon93{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_93278965.png)}.icon_emotion_single.icon94{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_94278965.png)}.icon_emotion_single.icon95{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_95278965.png)}.icon_emotion_single.icon96{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_96278965.png)}.icon_emotion_single.icon97{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_97278965.png)}.icon_emotion_single.icon98{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_98278965.png)}.icon_emotion_single.icon99{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_99278965.png)}.icon_emotion_single.icon100{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_100278965.png)}.icon_emotion_single.icon101{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_101278965.png)}.icon_emotion_single.icon102{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_102278965.png)}.icon_emotion_single.icon103{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_103278965.png)}.icon_emotion_single.icon104{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_104278965.png)}.icon_emotion_single.icon105{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/default-skin/Expression@2x_105278965.png)}.wx_poptips{position:fixed;z-index:3;width:120px;min-height:120px;top:180px;left:50%;margin-left:-60px;background:rgba(40,40,40,0.5)!important;filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#80282828',endcolorstr = '#80282828');text-align:center;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;color:#fff}.wx_poptips .icon_toast{width:53px;margin:15px 0 0}.wx_poptips .toast_content{margin:0 0 15px}.discuss_container .rich_media_title{font-size:18px}.discuss_container .discuss_message{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.discuss_container.disabled .btn_discuss{color:#60f05f}.discuss_container.access .discuss_container_inner{padding:15px 15px 0}.discuss_container.editing .discuss_container_inner{padding-bottom:25px}.discuss_container.editing .frm_textarea_box_wrp{margin:0 -15px}.discuss_container.editing .frm_textarea{height:78px;-webkit-overflow-scrolling:touch}.discuss_container.editing .frm_append.counter{display:block}.discuss_container.editing .discuss_btn_wrp{display:block}.discuss_container.editing .discuss_icon_tips{margin-top:0;margin-bottom:-14px}.discuss_container.editing .discuss_title_line{margin-bottom:-20px}.discuss_container.warning .counter{color:#e15f63}.frm_textarea{width:100%;background-color:transparent;border:0;display:block;font-size:14px;-webkit-box-sizing:border-box;box-sizing:border-box;height:37px;padding:10px 15px;resize:none;outline:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.frm_textarea_box_wrp{position:relative}.frm_textarea_box_wrp:before{content:" ";position:absolute;left:0;top:0;width:100%;height:1px;border-top:1px solid #e7e6e4;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(0.5);transform:scaleY(0.5);top:-1px}.frm_textarea_box_wrp:after{content:" ";position:absolute;left:0;top:0;width:100%;height:1px;border-top:1px solid #e7e6e4;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(0.5);transform:scaleY(0.5);top:auto;bottom:-2px}.frm_textarea_box{display:block;background-color:#fff}.frm_append.counter{display:none;position:absolute;right:8px;bottom:8px;color:#a3a3a3;font-weight:400;font-style:normal;font-size:12px}.frm_append .current_num.warn{color:#f43631}.discuss_btn_wrp{display:none;margin-top:20px;margin-bottom:20px;text-align:right}.btn_discuss{padding-left:1.5em;padding-right:1.5em}.discuss_list{margin-top:-5px;padding-bottom:20px;font-size:16px}.discuss_item{position:relative;padding-left:45px;margin-top:26px;*zoom:1}.discuss_item:after{content:"\200B";display:block;height:0;clear:both}.discuss_item .user_info{min-height:20px;overflow:hidden}.discuss_item .nickname{display:block;font-weight:400;font-style:normal;color:#727272;width:9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.discuss_item .avatar{position:absolute;top:0;left:0;top:3px;width:35px;height:35px;background-color:#ccc;vertical-align:top;margin-top:0;border-radius:2px;-moz-border-radius:2px;-webkit-border-radius:2px}.discuss_item .discuss_message{color:#3e3e3e;line-height:1.5}.discuss_item .discuss_extra_info{color:#8c8c8c;font-size:12px}.discuss_item .discuss_extra_info a{margin-left:.5em}.discuss_item .discuss_status{color:#ff7a21;white-space:nowrap}.discuss_item .discuss_status i{font-style:normal;margin-right:2px}.discuss_item .discuss_opr{float:right}.discuss_item .discuss_opr .meta_praise{display:inline-block;text-align:right;padding-top:5px;margin-top:-5px}.discuss_item .discuss_del{margin-left:.5em}.discuss_icon_tips{margin-bottom:20px}.discuss_icon_tips img{vertical-align:middle;margin-left:3px;margin-top:-4px}.discuss_icon_tips .icon_edit{width:12px}.discuss_icon_tips .icon_access{width:13px}.reply_result{position:relative;margin-top:.5em;padding-top:.5em;padding-left:.4em}.reply_result:before{content:" ";position:absolute;left:0;top:0;width:100%;height:1px;border-top:1px solid #dadada;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(0.5);transform:scaleY(0.5)}.reply_result .nickname{position:relative;overflow:visible}.reply_result .nickname:before{content:" ";position:absolute;left:-0.4em;top:50%;margin-top:-7px;width:3px;height:14px;background-color:#02bb00}.rich_tips.discuss_title_line{margin-top:50px}.reward_area{padding:38px 5% 20px;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0 auto}.reward_area_inner{margin:0 auto;position:relative;left:3px}.reward_access{display:inline-block;padding:0 1.6em;line-height:2;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;background-color:#dc5d4a;color:#fff;font-size:16px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.reward_access:active{background-color:#be5041;color:#e69990}.reward_tips{margin-bottom:5px}.reward_user_tips{margin-top:1.4em}.reward_user_list{padding-top:.5em;overflow:hidden}.reward_user_avatar{display:inline-block;vertical-align:top;width:28px;height:28px;margin:0 6px 6px 0}.reward_user_avatar img{width:100%;height:100%!important}.reward_user_avatar.readmore{-webkit-tap-highlight-color:rgba(0,0,0,0)}.rich_media_extra{position:relative}.rich_media_extra .extra_link{display:block}.rich_media_extra img{vertical-align:middle;margin-top:-3px}.rich_media_extra .appmsg_banner{width:100%}.rich_media_extra .ad_msg_mask{position:absolute;left:0;top:0;width:100%;height:100%;text-align:center;line-height:200px;background-color:#000;filter:alpha(opacity = 20);-moz-opacity:.2;-khtml-opacity:.2;opacity:.2}.mpda_bottom_container .rich_media_extra{padding-bottom:15px}.btn_default.btn_line,.btn_primary.btn_line{background-color:#fff;color:#04be02;border:1px solid #04be02;font-size:15px}.rich_media_extra .extra_link{position:relative}.promotion_tag{position:absolute;display:block;height:21px;line-height:21px;width:79px;background:transparent url(/mmbizwap/zh_CN/htmledition/images/ad/promotion_tag_bg24a2fe.png) no-repeat 0 0;-webkit-background-size:79px 21px;background-size:79px 21px;font-size:14px;font-style:normal;color:#fff;padding-left:7px;left:0;bottom:0}.brand_logo{position:absolute;display:block;width:24%;right:1.54%;top:0}.brand_logo img{width:100%;vertical-align:top;max-height:35px}.top_banner{background-color:#fff}.top_banner .rich_media_extra{padding:15px 15px 20px 15px}.top_banner .rich_media_extra .extra_link{position:relative;padding-bottom:10px}.top_banner .rich_media_extra .extra_link:before{content:" ";position:absolute;left:0;top:0;width:100%;height:1px;border-top:1px solid #d6d6d6;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(0.5);transform:scaleY(0.5);top:auto;bottom:-2px}.top_banner .rich_media_extra .extra_link:active,.top_banner .rich_media_extra .extra_link:focus{outline:0;border:0}.top_banner .rich_media_extra .appmsg_banner{width:100%;vertical-align:top;outline:0}.top_banner .rich_media_extra .appmsg_banner:active,.top_banner .rich_media_extra .appmsg_banner:focus{outline:0;border:0}.top_banner .rich_media_extra .promotion_tag{height:19px;line-height:19px;width:69px;background:transparent url(/mmbizwap/zh_CN/htmledition/images/ad/promotion_tag_bg_small24a2fe.png) no-repeat 0 0;font-size:12px;-webkit-background-size:69px 19px;background-size:69px 19px;bottom:10px;padding-left:6px}.top_banner .rich_media_extra .brand_logo{width:20%;right:2.22%}.top_banner .rich_media_extra .brand_logo img{max-height:35px}.top_banner .rich_media_extra .ad_msg_mask{position:absolute;left:0;top:0;width:100%;height:100%;text-align:center;line-height:200px;background-color:#000;filter:alpha(opacity = 20);-moz-opacity:.2;-khtml-opacity:.2;opacity:.2}.top_banner .rich_media_extra .ad_msg_mask img{position:absolute;width:16px;top:50%;margin-top:-8px;left:50%;margin-left:-8px}.top_banner .preview_group.obvious_app{min-height:54px;position:relative}.top_banner .preview_group.obvious_app .pic_app{width:66.6%}.top_banner .preview_group.obvious_app .pic_app img{height:100%;min-height:54px}.top_banner .preview_group.obvious_app .info_app{width:33%;left:68%}.top_banner .preview_group.obvious_app .info_app .name_app{line-height:18px;font-size:13px}.top_banner .preview_group.obvious_app .info_app .profile_app{font-size:10px}.top_banner .preview_group.obvious_app .info_app .dm_app{bottom:5px}.top_banner .preview_group.obvious_app .info_app .dm_app .ad_btn{font-size:12px;padding-left:17px;line-height:16px}.top_banner .preview_group.obvious_app .info_app .dm_app .ad_btn.btn_download,.top_banner .preview_group.obvious_app .info_app .dm_app .ad_btn.btn_install,.top_banner .preview_group.obvious_app .info_app .dm_app .ad_btn.btn_installed,.top_banner .preview_group.obvious_app .info_app .dm_app .ad_btn.btn_open{-webkit-background-size:14px 14px;background-size:14px 14px;background-position:0 center;-webkit-background-position:0 center}.top_banner .preview_group.obvious_app .info_app .dm_app .extra_info{display:none}.wrp_preview_group{padding-top:100px}.preview_group{position:relative;min-height:83px;background-color:#fff;border:1px solid #e7e7eb;-webkit-text-size-adjust:none;text-size-adjust:none}.preview_group.fixed_pos{position:fixed;bottom:0;left:0;right:0}.preview_group .preview_group_inner{padding:14px}.preview_group .preview_group_inner .preview_group_info{padding-left:68px;color:#8d8d8d;font-size:14px}.preview_group .preview_group_inner .preview_group_info .preview_group_title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;color:#000;font-weight:400;font-style:normal;padding-right:73px;max-width:142px;display:block}.preview_group .preview_group_inner .preview_group_info .preview_group_desc{padding-right:65px;display:inline-block;line-height:20px}.preview_group .preview_group_inner .preview_group_info .preview_group_avatar{position:absolute;width:55px;height:55px;left:13px;top:50%;margin-top:-27px;z-index:1}.preview_group .preview_group_inner .preview_group_info .preview_group_avatar.br_radius{border-radius:100%;-moz-border-radius:100%;-webkit-border-radius:100%}.preview_group .preview_group_inner .preview_group_opr{position:absolute;line-height:83px;top:0;right:13px}.preview_group .preview_group_inner .preview_group_opr .btn{padding:0;min-width:60px;min-height:30px;height:auto;line-height:30px;text-align:center}.preview_group.preview_card .card_inner .preview_card_avatar{position:absolute;width:57px;height:57px;left:13px;top:50%;margin-top:-28px}.preview_group.preview_card .card_inner .preview_group_info{padding-left:70px}.preview_group.preview_card .card_inner .preview_group_info .preview_group_title2{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;padding-right:0;display:block}.preview_group.preview_card .card_inner .preview_group_info .preview_group_desc{padding-right:0}.preview_group.preview_card .card_inner .preview_group_info.append_btn .preview_group_desc,.preview_group.preview_card .card_inner .preview_group_info.append_btn .preview_group_title{padding-right:68px;width:auto}.preview_group.obvious_app{width:100%}.preview_group.obvious_app .preview_group_inner{padding:0}.preview_group.obvious_app .pic_app{width:58.3%;height:100%;display:inline-block;margin-right:2%;vertical-align:top}.preview_group.obvious_app .pic_app img{width:100%;vertical-align:top;margin-top:0}.preview_group.obvious_app .info_app{display:inline-block;width:38%;color:#8a8a8a;font-size:12px;box-sizing:border-box;-webkit-box-sizing:border-box;position:absolute;left:62%;top:0;height:100%}.preview_group.obvious_app .info_app .name_app{color:#000;font-size:15px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;margin-top:3px}.preview_group.obvious_app .info_app .profile_app{line-height:10px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.preview_group.obvious_app .info_app .profile_app span{padding:0 5px}.preview_group.obvious_app .info_app .profile_app span:first-child{padding-left:0}.preview_group.obvious_app .info_app .profile_app em{font-size:9px;line-height:16px;font-weight:400;font-style:normal;color:#dfdfdf}.preview_group.obvious_app .info_app .dm_app{line-height:20px;vertical-align:middle;position:absolute;left:0;bottom:5px}.preview_group.obvious_app .info_app .dm_app .ad_btn{display:block;color:#04be02;font-size:15px;padding-left:22px}.preview_group.obvious_app .info_app .dm_app .ad_btn.btn_download{background:transparent url(http://res.wx.qq.com/mmbizwap/zh_CN/htmledition/images/ad/icon58_download@3x.png) no-repeat 0 0;-webkit-background-size:19px 19px;background-size:16px 16px;-webkit-background-position:0 center;background-position:0 center}.preview_group.obvious_app .info_app .dm_app .ad_btn.btn_install{background:transparent url(http://res.wx.qq.com/mmbizwap/zh_CN/htmledition/images/ad/icon58_install@3x.png) no-repeat 0 0;-webkit-background-size:19px 19px;background-size:16px 16px;-webkit-background-position:0 center;background-position:0 center}.preview_group.obvious_app .info_app .dm_app .ad_btn.btn_installed{background:transparent url(http://res.wx.qq.com/mmbizwap/zh_CN/htmledition/images/ad/icon58_installed@3x.png) no-repeat 0 0;-webkit-background-size:19px 19px;background-size:16px 16px;color:#8a8a8a;-webkit-background-position:0 center;background-position:0 center}.preview_group.obvious_app .info_app .dm_app .ad_btn.btn_open{background:transparent url(http://res.wx.qq.com/mmbizwap/zh_CN/htmledition/images/ad/icon58_open@3x.png) no-repeat 0 0;-webkit-background-size:19px 19px;background-size:16px 16px;-webkit-background-position:0 center;background-position:0 center}.preview_group.obvious_app .info_app .dm_app p{line-height:15px}.preview_group.obvious_app .info_app .dm_app .extra_info{font-size:9px}.preview_group.obvious_app .info_app .grade_app{height:11px;line-height:11px;font-size:12px;color:#888}.preview_group.obvious_app .info_app .grade_app .stars{display:inline-block;width:55px;height:11px;background:transparent url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/star_sprite25624b.png) no-repeat 0 0;-webkit-background-size:55px 110px;background-size:55px 110px}.preview_group.obvious_app .info_app .grade_app .stars.star_half{backgroud-position:0}.preview_group.obvious_app .info_app .grade_app .stars.star_one{background-position:0 -11px}.preview_group.obvious_app .info_app .grade_app .stars.star_one_half{background-position:0 -22px}.preview_group.obvious_app .info_app .grade_app .stars.star_two{background-position:0 -33px}.preview_group.obvious_app .info_app .grade_app .stars.star_two_half{background-position:0 -44px}.preview_group.obvious_app .info_app .grade_app .stars.star_three{background-position:0 -55px}.preview_group.obvious_app .info_app .grade_app .stars.star_three_half{background-position:0 -66px}.preview_group.obvious_app .info_app .grade_app .stars.star_four{background-position:0 -77px}.preview_group.obvious_app .info_app .grade_app .stars.star_four_half{background-position:0 -88px}.preview_group.obvious_app .info_app .grade_app .stars.star_five{background-position:0 -99px}.db{display:block}.qqmusic_area{display:inline-block;width:100%;vertical-align:top;margin:17px 1px 16px 0;font-weight:400;text-decoration:none;font-size:0;line-height:0;text-align:left;-ms-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}.qqmusic_area .unsupport_tips{display:none;padding:20px 20px 8px;line-height:1.6;font-size:16px}.qqmusic_area .pic_qqmusic_default{position:absolute;top:50%;left:50%;margin-top:-18.5px;margin-left:-18.5px;width:37px;height:37px;display:none}.qqmusic_area.unsupport .unsupport_tips{display:block}.qqmusic_area.unsupport .pic_qqmusic_default{display:inline-block}.qqmusic_area.unsupport .icon_qqmusic_switch{display:none}.qqmusic_wrp{border:1px solid #ebebeb;line-height:1.6}.qqmusic_bd{position:relative;background-color:#fcfcfc;overflow:hidden}.qqmusic_ft{text-align:right;background-color:#f5f5f5;border-top:1px solid #ebebeb;line-height:2.5;overflow:hidden;font-size:11px;padding:0 .5em}.play_area{float:left;width:60px;height:60px;margin-right:12px;position:relative}.qqmusic_thumb{display:block;width:60px;height:60px!important}.access_area{display:block;color:#8c8c8c;min-height:60px;overflow:hidden;margin-right:10px;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.qqmusic_songname,.qqmusic_singername{display:block;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.qqmusic_songname{padding:7px 0 3px;margin-bottom:-4px;font-size:16px;color:#3e3e3e}.qqmusic_singername{font-size:14px;margin-right:20px}.qqmusic_source{position:absolute;right:6px;bottom:6px}.qqmusic_source img{width:13px;height:13px;vertical-align:top;border:0}.qqmusic_love{position:relative;float:right;margin:10px 0 0 10px;height:54px;color:#607fa6;width:53px;text-align:center;font-size:13px;background:transparent url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/qqmusic/icon_qqmusic_play_sprite.2x26f1f1.png) no-repeat 0 0}.qqmusic_love:before{content:" ";position:absolute;left:0;top:0;width:1px;height:100%;border-left:1px solid #e7e6e4;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(0.5);transform:scaleX(0.5)}.qqmusic_love .icon_love{margin-top:16px}.qqmusic_love .love_num{display:block}.icon_qqmusic_switch{position:absolute;top:50%;left:50%;margin-top:-18.5px;margin-left:-18.5px;line-height:200px;overflow:hidden;cursor:pointer;width:37px;height:37px;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0;background:transparent url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/qqmusic/icon_qqmusic_play_sprite.2x26f1f1.png) no-repeat 0 0;-webkit-background-size:37px auto;background-size:37px auto}.qqmusic_playing .icon_qqmusic_switch{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/qqmusic/icon_qqmusic_play_sprite.2x26f1f1.png);background-position:0 -42px}.icon_love{width:12px;height:12px;vertical-align:middle;display:inline-block;margin-top:-0.2em;background:transparent url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/qqmusic/icon_love_mini_sprite.2x25ded2.png) no-repeat 0 0;-webkit-background-size:12px auto;background-size:12px auto}.loved .icon_love{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/qqmusic/icon_love_mini_sprite.2x25ded2.png);background-position:0 -17px}.audio_area{display:inline-block;width:100%;vertical-align:top;margin:17px 1px 16px 0;font-size:0;position:relative;font-weight:400;text-decoration:none;-ms-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}.audio_area .audio_title{font-weight:400;font-size:17px;margin-top:-2px;margin-bottom:-3px;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.audio_area .audio_length{float:right;font-size:14px;margin-top:3px;margin-left:1em}.audio_area .audio_source{font-size:14px}.audio_area .progress_bar{position:absolute;left:0;bottom:0;background-color:#0cbb08;height:2px}.audio_area .unsupport_tips{display:none;padding:20px 20px 8px;line-height:1.6;font-size:16px}.audio_area .pic_audio_default{display:none;width:18px}.audio_area.unsupport .unsupport_tips{display:block}.audio_area.unsupport .pic_audio_default{display:inline-block}.audio_area.unsupport .icon_audio_playing{display:none}.audio_area.unsupport .icon_audio_default{display:none}.audio_wrp{border:1px solid #ebebeb;background-color:#fcfcfc;overflow:hidden;*zoom:1;padding:12px 20px 12px 12px}.audio_info_area{overflow:hidden;*zoom:1}.audio_play_area{float:left;margin:9px 22px 10px 5px;font-size:0;width:18px;height:25px}.playing .audio_play_area .icon_audio_playing{display:inline-block}.playing .audio_play_area .icon_audio_default{display:none}.audio_play_area .icon_audio_default{background:transparent url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/audio/icon_audio_unread26f1f1.png) no-repeat 0 0;width:18px;height:25px;vertical-align:middle;display:inline-block;-webkit-background-size:18px auto;background-size:18px auto}.audio_play_area .icon_audio_playing{background:transparent url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/audio/icon_audio_reading_126f1f1.png) no-repeat 0 0;width:18px;height:25px;vertical-align:middle;display:inline-block;-webkit-background-size:18px auto;background-size:18px auto;-webkit-animation:audio_playing 1s infinite;display:none}@-webkit-keyframes audio_playing{30%{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/audio/icon_audio_reading_126f1f1.png)}31%{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/audio/icon_audio_reading_226f1f1.png)}61%{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/audio/icon_audio_reading_226f1f1.png)}62%{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/audio/icon_audio_reading_326f1f1.png)}100%{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/audio/icon_audio_reading_326f1f1.png)}}.iframe_full_video{position:fixed!important;left:0;right:0;top:0;bottom:0;z-index:1000;background-color:#000;margin-top:0!important}.video_iframe{display:block}.video_ad_iframe{border:0;position:absolute;left:0;top:0;z-index:100;width:100%;height:100%;background-color:#fff}@media(min-device-width:375px) and (max-device-width:667px) and (-webkit-min-device-pixel-ratio:2){.mm_appmsg .rich_media_inner,.mm_appmsg .rich_media_meta,.mm_appmsg .discuss_list,.mm_appmsg .rich_media_extra,.mm_appmsg .title_tips .tips{font-size:17px}}@media(min-device-width:414px) and (max-device-width:736px) and (-webkit-min-device-pixel-ratio:3){.mm_appmsg .rich_media_title{font-size:25px}}@media screen and (max-width:1023px){.qr_code_pc_outer{display:none!important}}@media screen and (min-width:1024px){.rich_media{width:740px;margin-left:auto;margin-right:auto}.rich_media_inner{padding:20px}.rich_media_meta{max-width:none}a.rich_media_meta_nickname{display:inline-block!important}span.rich_media_meta_nickname{display:none!important}.rich_media_content{min-height:350px}.rich_media_title{padding-bottom:10px;margin-bottom:14px;border-bottom:1px solid #e7e7eb}body{background-color:#fff}.discuss_container.access{width:740px;margin-left:auto;margin-right:auto;background-color:#fff}.discuss_container.editing .frm_textarea_box{margin:0}.frm_textarea_box{position:relative}.frm_textarea_box:before{content:" ";position:absolute;left:0;top:0;width:1px;height:100%;border-left:1px solid #e7e6e4;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(0.5);transform:scaleX(0.5)}.frm_textarea_box:after{content:" ";position:absolute;left:0;top:0;width:1px;height:100%;border-left:1px solid #e7e6e4;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(0.5);transform:scaleX(0.5);left:auto;right:-2px}.rich_media_meta.nickname{max-width:none}.rich_tips.with_line .tips{background-color:#fff}}@media screen and (min-width:1025px){body{font-family:"Helvetica Neue",Helvetica,"Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif}.rich_media{position:relative}.rich_media_inner{background-color:#fff;padding-bottom:100px}.rich_media_inner{position:relative}.qr_code_pc_outer{display:block!important;position:fixed;left:0;right:0;top:20px;color:#717375;text-align:center}.qr_code_pc_inner{position:relative;width:740px;margin-left:auto;margin-right:auto}.qr_code_pc{position:absolute;right:-145px;top:0;padding:16px;border:1px solid #d9dadc;background-color:#fff}.qr_code_pc p{font-size:14px;line-height:20px}.qr_code_pc_img{width:102px;height:102px}} ================================================ FILE: public/static/article/page_mp_article_improve_pc2637ae.css ================================================ .rich_media{width:740px;margin-left:auto;margin-right:auto}.rich_media_inner{padding:20px;background-color:#fff}.rich_media_meta{max-width:none}a.rich_media_meta_nickname{display:inline-block!important}span.rich_media_meta_nickname{display:none!important}.rich_media_content{position:relative;min-height:350px}.rich_media_title{padding-bottom:10px;margin-bottom:5px;border-bottom:1px solid #e7e7eb}.discuss_container{width:740px;margin-left:auto;margin-right:auto}.discuss_container.editing .frm_textarea_box{margin:0}.frm_textarea_box{position:relative}.frm_textarea_box:before{content:" ";position:absolute;left:0;top:0;width:1px;height:100%;border-left:1px solid #e7e6e4;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(0.5);transform:scaleX(0.5)}.frm_textarea_box:after{content:" ";position:absolute;left:0;top:0;width:1px;height:100%;border-left:1px solid #e7e6e4;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(0.5);transform:scaleX(0.5);left:auto;right:-2px}.rich_media_meta.nickname{max-width:none}.rich_tips.with_line .tips{background-color:#fff}body{background-color:#fff;font-family:"Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif}.rich_media{position:relative}.rich_media_inner{padding-bottom:100px}.meta_original_tag{background:transparent url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/icon_original_tag25ab3f.png) no-repeat 0 0;width:49px;height:20px;vertical-align:middle;display:inline-block}.rich_media_inner{position:relative}.qr_code_pc_outer{display:block!important;position:fixed;left:0;right:0;top:20px;color:#717375;text-align:center}.qr_code_pc_inner{position:relative;width:740px;margin-left:auto;margin-right:auto}.qr_code_pc{position:absolute;right:-145px;top:0;padding:16px;border:1px solid #d9dadc;background-color:#fff}.qr_code_pc p{font-size:14px;line-height:20px}.qr_code_pc_img{width:102px;height:102px}.qqmusic_wrp .icon_qqmusic_switch{background:transparent url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/qqmusic/icon_qqmusic_play_sprite264e76.png) no-repeat 0 0}.qqmusic_playing .qqmusic_wrp .icon_qqmusic_switch{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/qqmusic/icon_qqmusic_play_sprite264e76.png);background-position:0 -46px}.qqmusic_wrp .icon_love{width:12px;height:12px;vertical-align:middle;display:inline-block;margin-top:-0.2em;background:transparent url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/qqmusic/icon_love_mini_sprite25ded2.png) no-repeat 0 0}.loved .qqmusic_wrp .icon_love{background-image:url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/qqmusic/icon_love_mini_sprite25ded2.png);background-position:0 -22px} ================================================ FILE: public/static/dist/css/AdminLTE.css ================================================ /*! * AdminLTE v2.3.1 * Author: Almsaeed Studio * Website: Almsaeed Studio * License: Open source - MIT * Please visit http://opensource.org/licenses/MIT for more information !*/ html, body { min-height: 100% } .layout-boxed html, .layout-boxed body { height: 100% } body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-weight: 400; overflow-x: hidden; overflow-y: auto } .wrapper { min-height: 100%; position: relative; overflow: hidden } .wrapper:before, .wrapper:after { content: " "; display: table } .wrapper:after { clear: both } .layout-boxed .wrapper { max-width: 1250px; margin: 0 auto; min-height: 100%; box-shadow: 0 0 8px rgba(0, 0, 0, 0.5); position: relative } .layout-boxed { background: url('../img/boxed-bg.jpg') repeat fixed } .content-wrapper, .right-side, .main-footer { -webkit-transition: -webkit-transform .3s ease-in-out, margin .3s ease-in-out; -moz-transition: -moz-transform .3s ease-in-out, margin .3s ease-in-out; -o-transition: -o-transform .3s ease-in-out, margin .3s ease-in-out; transition: transform .3s ease-in-out, margin .3s ease-in-out; /*margin-left: 230px;*/ margin-left: 200px; z-index: 820 } .layout-top-nav .content-wrapper, .layout-top-nav .right-side, .layout-top-nav .main-footer { margin-left: 0 } @media (max-width: 767px) { .content-wrapper, .right-side, .main-footer { margin-left: 0 } } @media (min-width: 768px) { .sidebar-collapse .content-wrapper, .sidebar-collapse .right-side, .sidebar-collapse .main-footer { margin-left: 0 } } @media (max-width: 767px) { .sidebar-open .content-wrapper, .sidebar-open .right-side, .sidebar-open .main-footer { -webkit-transform: translate(230px, 0); -ms-transform: translate(230px, 0); -o-transform: translate(230px, 0); transform: translate(230px, 0) } } .content-wrapper, .right-side { min-height: 100%; background-color: #ecf0f5; z-index: 800 } .main-footer { background: #fff; padding: 15px; color: #444; border-top: 1px solid #d2d6de } .fixed .main-header, .fixed .main-sidebar, .fixed .left-side { position: fixed } .fixed .main-header { top: 0; right: 0; left: 0 } .fixed .content-wrapper, .fixed .right-side { padding-top: 50px } @media (max-width: 767px) { .fixed .content-wrapper, .fixed .right-side { padding-top: 100px } } .fixed.layout-boxed .wrapper { max-width: 100% } body.hold-transition .content-wrapper, body.hold-transition .right-side, body.hold-transition .main-footer, body.hold-transition .main-sidebar, body.hold-transition .left-side, body.hold-transition .main-header > .navbar, body.hold-transition .main-header .logo { -webkit-transition: none; -o-transition: none; transition: none } .content { min-height: 720px; padding: 15px; margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px } h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-family: 'Source Sans Pro', sans-serif } a { color: #3c8dbc } a:hover, a:active, a:focus { outline: none; text-decoration: none; color: #72afd2 } .page-header { margin: 10px 0 20px 0; font-size: 22px } .page-header > small { color: #666; display: block; margin-top: 5px } .main-header { /*position: fixed;*/ /*max-height: 100px;*/ /*z-index: 1030;*/ /*width: 100%;*/ /*box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);*/ } .main-header > .navbar { -webkit-transition: margin-left .3s ease-in-out; -o-transition: margin-left .3s ease-in-out; transition: margin-left .3s ease-in-out; margin-bottom: 0; margin-left: 210px; border: none; min-height: 50px; border-radius: 0 } .layout-top-nav .main-header > .navbar { margin-left: 0 } .main-header #navbar-search-input.form-control { background: rgba(255, 255, 255, 0.2); border-color: transparent } .main-header #navbar-search-input.form-control:focus, .main-header #navbar-search-input.form-control:active { border-color: rgba(0, 0, 0, 0.1); background: rgba(255, 255, 255, 0.9) } .main-header #navbar-search-input.form-control::-moz-placeholder { color: #ccc; opacity: 1 } .main-header #navbar-search-input.form-control:-ms-input-placeholder { color: #ccc } .main-header #navbar-search-input.form-control::-webkit-input-placeholder { color: #ccc } .main-header .navbar-custom-menu, .main-header .navbar-right { float: right } @media (max-width: 991px) { .main-header .navbar-custom-menu a, .main-header .navbar-right a { color: inherit; background: transparent } } @media (max-width: 767px) { .main-header .navbar-right { float: none } .navbar-collapse .main-header .navbar-right { margin: 7.5px -15px } .main-header .navbar-right > li { color: inherit; border: 0 } } .main-header .sidebar-toggle { float: left; background-color: transparent; background-image: none; padding: 15px 15px; font-family: fontAwesome } /*.main-header .sidebar-toggle:before {*/ /*content: "\f0c9"*/ /*}*/ .main-header .sidebar-toggle:hover { color: #fff } .main-header .sidebar-toggle:focus, .main-header .sidebar-toggle:active { background: transparent } .main-header .sidebar-toggle .icon-bar { display: none } .main-header .navbar .nav > li.user > a > .fa, .main-header .navbar .nav > li.user > a > .glyphicon, .main-header .navbar .nav > li.user > a > .ion { margin-right: 5px } .main-header .navbar .nav > li > a > .label { position: absolute; top: 9px; right: 7px; text-align: center; font-size: 9px; padding: 2px 3px; line-height: .9 } .main-header .logo { -webkit-transition: width .3s ease-in-out; -o-transition: width .3s ease-in-out; transition: width .3s ease-in-out; display: block; float: left; height: 50px; font-size: 20px; line-height: 50px; text-align: center; width: 230px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; padding: 0 15px; font-weight: 300; overflow: hidden } .main-sidebar .team-logo { margin: 15px auto 0; width: 32px; height: 32px; border-radius: 16px; background-size: cover; background-position: 50% 50%; background-color: #fff; } .main-header .logo .logo-lg { display: block } .main-header .logo .logo-mini { display: none } .main-header .navbar-brand { color: #fff } .content-header { position: relative; padding: 15px 15px 0 15px } .content-header > h1 { margin: 0; font-size: 24px } .content-header > h1 > small { font-size: 15px; display: inline-block; padding-left: 4px; font-weight: 300 } .content-header > .breadcrumb { float: right; background: transparent; margin-top: 0; margin-bottom: 0; font-size: 12px; padding: 7px 5px; position: absolute; top: 15px; right: 10px; border-radius: 2px } .content-header > .breadcrumb > li > a { color: #444; text-decoration: none; display: inline-block } .content-header > .breadcrumb > li > a > .fa, .content-header > .breadcrumb > li > a > .glyphicon, .content-header > .breadcrumb > li > a > .ion { margin-right: 5px } .content-header > .breadcrumb > li + li:before { content: '>\00a0' } @media (max-width: 991px) { .content-header > .breadcrumb { position: relative; margin-top: 5px; top: 0; right: 0; float: none; background: #d2d6de; padding-left: 10px } .content-header > .breadcrumb li:before { color: #97a0b3 } } .navbar-toggle { color: #fff; border: 0; margin: 0; padding: 15px 15px } @media (max-width: 991px) { .navbar-custom-menu .navbar-nav > li { float: left } .navbar-custom-menu .navbar-nav { margin: 0; float: left } .navbar-custom-menu .navbar-nav > li > a { padding-top: 15px; padding-bottom: 15px; line-height: 20px } } @media (max-width: 767px) { .main-header { position: relative } .main-header .logo, .main-header .navbar { width: 100%; float: none } .main-header .navbar { margin: 0 } .main-header .navbar-custom-menu { float: right } } @media (max-width: 991px) { .navbar-collapse.pull-left { float: none !important } .navbar-collapse.pull-left + .navbar-custom-menu { display: block; position: absolute; top: 0; right: 40px } } .main-sidebar, .left-side { /*position: absolute;*/ top: 0; left: 0; /*padding-top: 50px;*/ min-height: 100%; /*width: 230px;*/ position: fixed; width: 90px; z-index: 810; -webkit-transition: -webkit-transform .3s ease-in-out, width .3s ease-in-out; -moz-transition: -moz-transform .3s ease-in-out, width .3s ease-in-out; -o-transition: -o-transform .3s ease-in-out, width .3s ease-in-out; transition: transform .3s ease-in-out, width .3s ease-in-out } @media (max-width: 767px) { .main-sidebar, .left-side { padding-top: 100px } } @media (max-width: 767px) { .main-sidebar, .left-side { -webkit-transform: translate(-230px, 0); -ms-transform: translate(-230px, 0); -o-transform: translate(-230px, 0); transform: translate(-230px, 0) } } @media (min-width: 768px) { .sidebar-collapse .main-sidebar, .sidebar-collapse .left-side { -webkit-transform: translate(-230px, 0); -ms-transform: translate(-230px, 0); -o-transform: translate(-230px, 0); transform: translate(-230px, 0) } } @media (max-width: 767px) { .sidebar-open .main-sidebar, .sidebar-open .left-side { -webkit-transform: translate(0, 0); -ms-transform: translate(0, 0); -o-transform: translate(0, 0); transform: translate(0, 0) } } .sidebar { padding-bottom: 10px } .sidebar-form input:focus { border-color: transparent } .user-panel { position: relative; width: 100%; padding: 10px; overflow: hidden } .user-panel:before, .user-panel:after { content: " "; display: table } .user-panel:after { clear: both } .user-panel > .image > img { width: 100%; max-width: 45px; height: auto } .user-panel > .info { padding: 5px 5px 5px 15px; line-height: 1; position: absolute; left: 55px } .user-panel > .info > p { font-weight: 600; margin-bottom: 9px } .user-panel > .info > a { text-decoration: none; padding-right: 5px; margin-top: 3px; font-size: 11px } .user-panel > .info > a > .fa, .user-panel > .info > a > .ion, .user-panel > .info > a > .glyphicon { margin-right: 3px } .sidebar-menu { list-style: none; margin: 0; padding: 0 } .sidebar-menu > li { position: relative; margin: 0; padding: 0 } .sidebar-menu > li > a { padding: 12px 5px 12px 15px; display: block } .sidebar-menu > li > a > .fa, .sidebar-menu > li > a > .glyphicon, .sidebar-menu > li > a > .ion { width: 20px } .sidebar-menu > li .label, .sidebar-menu > li .badge { margin-top: 3px; margin-right: 5px } .sidebar-menu li.header { padding: 10px 25px 10px 15px; font-size: 12px } .sidebar-menu li > a > .fa-angle-left { width: auto; height: auto; padding: 0; margin-right: 10px; margin-top: 3px } .sidebar-menu li.active > a > .fa-angle-right { margin-top: 0px; right: 16px; -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); -o-transform: rotate(90deg); transform: rotate(90deg); } /*.sidebar-menu li.active > .treeview-menu {*/ /*display: block;*/ /*}*/ .sidebar-menu .treeview-menu { display: none; list-style: none; padding: 0; margin: 0; padding-left: 0px } .sidebar-menu .treeview-menu .treeview-menu { padding-left: 20px } .sidebar-menu .treeview-menu > li { margin: 0; line-height: 36px; margin-bottom: 14px; border-radius: 3px; } .sidebar-menu .treeview-menu > li > a { /*padding: 5px 5px 5px 5px;*/ display: block; font-size: 14px } .sidebar-menu .treeview-menu > li > a > .fa, .sidebar-menu .treeview-menu > li > a > .glyphicon, .sidebar-menu .treeview-menu > li > a > .ion { width: 20px } .sidebar-menu .treeview-menu > li > a > .fa-angle-left, .sidebar-menu .treeview-menu > li > a > .fa-angle-down { width: auto } @media (min-width: 768px) { .sidebar-mini.sidebar-collapse .content-wrapper, .sidebar-mini.sidebar-collapse .right-side, .sidebar-mini.sidebar-collapse .main-footer { margin-left: 50px !important; z-index: 840 } .sidebar-mini.sidebar-collapse .main-sidebar { -webkit-transform: translate(0, 0); -ms-transform: translate(0, 0); -o-transform: translate(0, 0); transform: translate(0, 0); width: 50px !important; z-index: 850; } .sidebar-mini.sidebar-collapse .sidebar-menu > li { position: relative } .sidebar-mini.sidebar-collapse .sidebar-menu > li > a { margin-right: 0 } .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span { border-top-right-radius: 4px } .sidebar-mini.sidebar-collapse .sidebar-menu > li:not(.treeview) > a > span { border-bottom-right-radius: 4px } .sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { padding-top: 5px; padding-bottom: 5px; border-bottom-right-radius: 4px } .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span:not(.pull-right), .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu { display: block !important; position: absolute; width: 180px; left: 50px } .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span { top: 0; margin-left: -3px; padding: 12px 5px 12px 20px; background-color: inherit } .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu { top: 44px; margin-left: 0 } .sidebar-mini.sidebar-collapse .main-sidebar .user-panel > .info, .sidebar-mini.sidebar-collapse .sidebar-form, .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span, .sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu, .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > .pull-right, .sidebar-mini.sidebar-collapse .sidebar-menu li.header { display: none !important; -webkit-transform: translateZ(0) } .sidebar-mini.sidebar-collapse .main-header .logo { width: 50px } .sidebar-mini.sidebar-collapse .main-header .logo > .logo-mini { display: block; margin-left: -15px; margin-right: -15px; font-size: 12px } .sidebar-mini.sidebar-collapse .main-header .logo > .logo-lg { display: none } .sidebar-mini.sidebar-collapse .main-header .navbar { margin-left: 50px } } .sidebar-menu, .main-sidebar .user-panel, .sidebar-menu > li.header { white-space: nowrap; overflow: hidden } .sidebar-menu:hover { overflow: visible } .sidebar-form, .sidebar-menu > li.header { overflow: hidden; text-overflow: clip } .sidebar-menu li > a { position: relative } .sidebar-menu li > a > .pull-right { position: absolute; top: 50%; right: 10px; margin-top: -7px } .control-sidebar-bg { position: fixed; z-index: 1000; bottom: 0 } .control-sidebar-bg, .control-sidebar { top: 0; right: -230px; width: 230px; -webkit-transition: right .3s ease-in-out; -o-transition: right .3s ease-in-out; transition: right .3s ease-in-out } .control-sidebar { position: absolute; padding-top: 50px; z-index: 1010 } @media (max-width: 768px) { .control-sidebar { padding-top: 100px } } .control-sidebar > .tab-content { padding: 10px 15px } .control-sidebar.control-sidebar-open, .control-sidebar.control-sidebar-open + .control-sidebar-bg { right: 0 } .control-sidebar-open .control-sidebar-bg, .control-sidebar-open .control-sidebar { right: 0 } @media (min-width: 768px) { .control-sidebar-open .content-wrapper, .control-sidebar-open .right-side, .control-sidebar-open .main-footer { margin-right: 230px } } .nav-tabs.control-sidebar-tabs > li:first-of-type > a, .nav-tabs.control-sidebar-tabs > li:first-of-type > a:hover, .nav-tabs.control-sidebar-tabs > li:first-of-type > a:focus { border-left-width: 0 } .nav-tabs.control-sidebar-tabs > li > a { border-radius: 0 } .nav-tabs.control-sidebar-tabs > li > a, .nav-tabs.control-sidebar-tabs > li > a:hover { border-top: none; border-right: none; border-left: 1px solid transparent; border-bottom: 1px solid transparent } .nav-tabs.control-sidebar-tabs > li > a .icon { font-size: 16px } .nav-tabs.control-sidebar-tabs > li.active > a, .nav-tabs.control-sidebar-tabs > li.active > a:hover, .nav-tabs.control-sidebar-tabs > li.active > a:focus, .nav-tabs.control-sidebar-tabs > li.active > a:active { border-top: none; border-right: none; border-bottom: none } @media (max-width: 768px) { .nav-tabs.control-sidebar-tabs { display: table } .nav-tabs.control-sidebar-tabs > li { display: table-cell } } .control-sidebar-heading { font-weight: 400; font-size: 16px; padding: 10px 0; margin-bottom: 10px } .control-sidebar-subheading { display: block; font-weight: 400; font-size: 14px } .control-sidebar-menu { list-style: none; padding: 0; margin: 0 -15px } .control-sidebar-menu > li > a { display: block; padding: 10px 15px } .control-sidebar-menu > li > a:before, .control-sidebar-menu > li > a:after { content: " "; display: table } .control-sidebar-menu > li > a:after { clear: both } .control-sidebar-menu > li > a > .control-sidebar-subheading { margin-top: 0 } .control-sidebar-menu .menu-icon { float: left; width: 35px; height: 35px; border-radius: 50%; text-align: center; line-height: 35px } .control-sidebar-menu .menu-info { margin-left: 45px; margin-top: 3px } .control-sidebar-menu .menu-info > .control-sidebar-subheading { margin: 0 } .control-sidebar-menu .menu-info > p { margin: 0; font-size: 11px } .control-sidebar-menu .progress { margin: 0 } .control-sidebar-dark { color: #b8c7ce } .control-sidebar-dark, .control-sidebar-dark + .control-sidebar-bg { background: #222d32 } .control-sidebar-dark .nav-tabs.control-sidebar-tabs { border-bottom: #1c2529 } .control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a { background: #181f23; color: #b8c7ce } .control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a, .control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:hover, .control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:focus { border-left-color: #141a1d; border-bottom-color: #141a1d } .control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:hover, .control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:focus, .control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:active { background: #1c2529 } .control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:hover { color: #fff } .control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a, .control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a:hover, .control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a:focus, .control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a:active { background: #222d32; color: #fff } .control-sidebar-dark .control-sidebar-heading, .control-sidebar-dark .control-sidebar-subheading { color: #fff } .control-sidebar-dark .control-sidebar-menu > li > a:hover { background: #1e282c } .control-sidebar-dark .control-sidebar-menu > li > a .menu-info > p { color: #b8c7ce } .control-sidebar-light { color: #5e5e5e } .control-sidebar-light, .control-sidebar-light + .control-sidebar-bg { background: #ffffff; border-left: 1px solid #eeeeee; } .control-sidebar-light .nav-tabs.control-sidebar-tabs { border-bottom: #d2d6de } .control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a { background: #e8ecf4; color: #444 } .control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a, .control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:hover, .control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:focus { border-left-color: #d2d6de; border-bottom-color: #d2d6de } .control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:hover, .control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:focus, .control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:active { background: #eff1f7 } .control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a, .control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a:hover, .control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a:focus, .control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a:active { background: #f9fafc; color: #111 } .control-sidebar-light .control-sidebar-heading, .control-sidebar-light .control-sidebar-subheading { color: #111 } .control-sidebar-light .control-sidebar-menu { margin-left: -14px } .control-sidebar-light .control-sidebar-menu > li > a:hover { background: #f4f4f5 } .control-sidebar-light .control-sidebar-menu > li > a .menu-info > p { color: #5e5e5e } .dropdown-menu { box-shadow: none; border-color: #eee } .dropdown-menu > li > a { color: #777 } .dropdown-menu > li > a > .glyphicon, .dropdown-menu > li > a > .fa, .dropdown-menu > li > a > .ion { margin-right: 10px } .dropdown-menu > li > a:hover { background-color: #e1e3e9; color: #333 } .dropdown-menu > .divider { background-color: #eee } .navbar-nav > .notifications-menu > .dropdown-menu, .navbar-nav > .messages-menu > .dropdown-menu, .navbar-nav > .tasks-menu > .dropdown-menu { width: 280px; padding: 0 0 0 0; margin: 0; top: 100% } .navbar-nav > .notifications-menu > .dropdown-menu > li, .navbar-nav > .messages-menu > .dropdown-menu > li, .navbar-nav > .tasks-menu > .dropdown-menu > li { position: relative } .navbar-nav > .notifications-menu > .dropdown-menu > li.header, .navbar-nav > .messages-menu > .dropdown-menu > li.header, .navbar-nav > .tasks-menu > .dropdown-menu > li.header { border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 0; border-bottom-left-radius: 0; background-color: #ffffff; padding: 7px 10px; border-bottom: 1px solid #f4f4f4; color: #444444; font-size: 14px } .navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a, .navbar-nav > .messages-menu > .dropdown-menu > li.footer > a, .navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a { border-top-left-radius: 0; border-top-right-radius: 0; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; font-size: 12px; background-color: #fff; padding: 7px 10px; border-bottom: 1px solid #eeeeee; color: #444 !important; text-align: center } @media (max-width: 991px) { .navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a, .navbar-nav > .messages-menu > .dropdown-menu > li.footer > a, .navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a { background: #fff !important; color: #444 !important } } .navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a:hover, .navbar-nav > .messages-menu > .dropdown-menu > li.footer > a:hover, .navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a:hover { text-decoration: none; font-weight: normal } .navbar-nav > .notifications-menu > .dropdown-menu > li .menu, .navbar-nav > .messages-menu > .dropdown-menu > li .menu, .navbar-nav > .tasks-menu > .dropdown-menu > li .menu { max-height: 200px; margin: 0; padding: 0; list-style: none; overflow-x: hidden } .navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a, .navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a, .navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a { display: block; white-space: nowrap; border-bottom: 1px solid #f4f4f4 } .navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a:hover, .navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:hover, .navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a:hover { background: #f4f4f4; text-decoration: none } .navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a { color: #444444; overflow: hidden; text-overflow: ellipsis; padding: 10px } .navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon, .navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa, .navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion { width: 20px } .navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a { margin: 0; padding: 10px 10px } .navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > div > img { margin: auto 10px auto auto; width: 40px; height: 40px } .navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 { padding: 0; margin: 0 0 0 45px; color: #444444; font-size: 15px; position: relative } .navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 > small { color: #999999; font-size: 10px; position: absolute; top: 0; right: 0 } .navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > p { margin: 0 0 0 45px; font-size: 12px; color: #888888 } .navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:before, .navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after { content: " "; display: table } .navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after { clear: both } .navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a { padding: 10px } .navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > h3 { font-size: 14px; padding: 0; margin: 0 0 10px 0; color: #666666 } .navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > .progress { padding: 0; margin: 0 } .navbar-nav > .user-menu > .dropdown-menu { border-top-right-radius: 0; border-top-left-radius: 0; padding: 1px 0 0 0; border-top-width: 0; /*width: 280px*/ } .navbar-nav > .user-menu > .dropdown-menu, .navbar-nav > .user-menu > .dropdown-menu > .user-body { border-bottom-right-radius: 4px; border-bottom-left-radius: 4px } .navbar-nav > .user-menu > .dropdown-menu > li.user-header { height: 175px; padding: 10px; text-align: center } .navbar-nav > .user-menu > .dropdown-menu > li.user-header > img { z-index: 5; height: 90px; width: 90px; border: 3px solid; border-color: transparent; border-color: rgba(255, 255, 255, 0.2) } .navbar-nav > .user-menu > .dropdown-menu > li.user-header > p { z-index: 5; color: #fff; color: rgba(255, 255, 255, 0.8); font-size: 17px; margin-top: 10px } .navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small { display: block; font-size: 12px } .navbar-nav > .user-menu > .dropdown-menu > .user-body { padding: 15px; border-bottom: 1px solid #f4f4f4; border-top: 1px solid #dddddd } .navbar-nav > .user-menu > .dropdown-menu > .user-body:before, .navbar-nav > .user-menu > .dropdown-menu > .user-body:after { content: " "; display: table } .navbar-nav > .user-menu > .dropdown-menu > .user-body:after { clear: both } .navbar-nav > .user-menu > .dropdown-menu > .user-body a { color: #444 !important } @media (max-width: 991px) { .navbar-nav > .user-menu > .dropdown-menu > .user-body a { background: #fff !important; color: #444 !important } } .navbar-nav > .user-menu > .dropdown-menu > .user-footer { background-color: #ffffff; padding: 10px } .navbar-nav > .user-menu > .dropdown-menu > .user-footer:before, .navbar-nav > .user-menu > .dropdown-menu > .user-footer:after { content: " "; display: table } .navbar-nav > .user-menu > .dropdown-menu > .user-footer:after { clear: both } .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default { color: #666666; background-color: #ffffff; } @media (max-width: 991px) { .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover { background-color: #f9f9f9 } } .navbar-nav > .user-menu .user-image { float: left; width: 25px; height: 25px; border-radius: 50%; margin-right: 10px; margin-top: -2px } @media (max-width: 767px) { .navbar-nav > .user-menu .user-image { float: none; margin-right: 0; margin-top: -8px; line-height: 10px } } .open:not(.dropup) > .animated-dropdown-menu { backface-visibility: visible !important; -webkit-animation: flipInX .7s both; -o-animation: flipInX .7s both; animation: flipInX .7s both } @keyframes flipInX { 0% { transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transition-timing-function: ease-in; opacity: 0 } 40% { transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transition-timing-function: ease-in } 60% { transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1 } 80% { transform: perspective(400px) rotate3d(1, 0, 0, -5deg) } 100% { transform: perspective(400px) } } @-webkit-keyframes flipInX { 0% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); -webkit-transition-timing-function: ease-in; opacity: 0 } 40% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); -webkit-transition-timing-function: ease-in } 60% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1 } 80% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg) } 100% { -webkit-transform: perspective(400px) } } .navbar-custom-menu > .navbar-nav > li { position: relative } .navbar-custom-menu > .navbar-nav > li > .dropdown-menu { position: absolute; right: 0; left: auto } @media (max-width: 991px) { .navbar-custom-menu > .navbar-nav { float: right } .navbar-custom-menu > .navbar-nav > li { position: static } .navbar-custom-menu > .navbar-nav > li > .dropdown-menu { position: absolute; right: 5%; left: auto; border: 1px solid #ddd; background: #fff } } .form-control { border-radius: 0; box-shadow: none; border-color: #d2d6de } .form-control:focus { border-color: #3c8dbc; box-shadow: none } .form-control::-moz-placeholder, .form-control:-ms-input-placeholder, .form-control::-webkit-input-placeholder { color: #bbb; opacity: 1 } .form-control:not(select) { -webkit-appearance: none; -moz-appearance: none; appearance: none } .form-group.has-success label { color: #00a65a } .form-group.has-success .form-control { border-color: #00a65a; box-shadow: none } .form-group.has-warning label { color: #f39c12 } .form-group.has-warning .form-control { border-color: #f39c12; box-shadow: none } .form-group.has-error label { color: #dd4b39 } .form-group.has-error .form-control { border-color: #dd4b39; box-shadow: none } .input-group .input-group-addon { border-radius: 0; border-color: #d2d6de; background-color: #fff } .btn-group-vertical .btn.btn-flat:first-of-type, .btn-group-vertical .btn.btn-flat:last-of-type { border-radius: 0 } .icheck > label { padding-left: 0 } .form-control-feedback.fa { line-height: 34px } .input-lg + .form-control-feedback.fa, .input-group-lg + .form-control-feedback.fa, .form-group-lg .form-control + .form-control-feedback.fa { line-height: 46px } .input-sm + .form-control-feedback.fa, .input-group-sm + .form-control-feedback.fa, .form-group-sm .form-control + .form-control-feedback.fa { line-height: 30px } .progress, .progress > .progress-bar { -webkit-box-shadow: none; box-shadow: none } .progress, .progress > .progress-bar, .progress .progress-bar, .progress > .progress-bar .progress-bar { border-radius: 1px } .progress.sm, .progress-sm { height: 10px } .progress.sm, .progress-sm, .progress.sm .progress-bar, .progress-sm .progress-bar { border-radius: 1px } .progress.xs, .progress-xs { height: 7px } .progress.xs, .progress-xs, .progress.xs .progress-bar, .progress-xs .progress-bar { border-radius: 1px } .progress.xxs, .progress-xxs { height: 3px } .progress.xxs, .progress-xxs, .progress.xxs .progress-bar, .progress-xxs .progress-bar { border-radius: 1px } .progress.vertical { position: relative; width: 30px; height: 200px; display: inline-block; margin-right: 10px } .progress.vertical > .progress-bar { width: 100%; position: absolute; bottom: 0 } .progress.vertical.sm, .progress.vertical.progress-sm { width: 20px } .progress.vertical.xs, .progress.vertical.progress-xs { width: 10px } .progress.vertical.xxs, .progress.vertical.progress-xxs { width: 3px } .progress-group .progress-text { font-weight: 600 } .progress-group .progress-number { float: right } .table tr > td .progress { margin: 0 } .progress-bar-light-blue, .progress-bar-primary { background-color: #3c8dbc } .progress-striped .progress-bar-light-blue, .progress-striped .progress-bar-primary { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent) } .progress-bar-green, .progress-bar-success { background-color: #00a65a } .progress-striped .progress-bar-green, .progress-striped .progress-bar-success { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent) } .progress-bar-aqua, .progress-bar-info { background-color: #00c0ef } .progress-striped .progress-bar-aqua, .progress-striped .progress-bar-info { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent) } .progress-bar-yellow, .progress-bar-warning { background-color: #f39c12 } .progress-striped .progress-bar-yellow, .progress-striped .progress-bar-warning { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent) } .progress-bar-red, .progress-bar-danger { background-color: #dd4b39 } .progress-striped .progress-bar-red, .progress-striped .progress-bar-danger { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent) } .small-box { border-radius: 2px; position: relative; display: block; margin-bottom: 20px; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1) } .small-box > .inner { padding: 10px } .small-box > .small-box-footer { position: relative; text-align: center; padding: 3px 0; color: #fff; color: rgba(255, 255, 255, 0.8); display: block; z-index: 10; background: rgba(0, 0, 0, 0.1); text-decoration: none } .small-box > .small-box-footer:hover { color: #fff; background: rgba(0, 0, 0, 0.15) } .small-box h3 { font-size: 38px; font-weight: bold; margin: 0 0 10px 0; white-space: nowrap; padding: 0 } .small-box p { font-size: 15px } .small-box p > small { display: block; color: #f9f9f9; font-size: 13px; margin-top: 5px } .small-box h3, .small-box p { z-index: 5px } .small-box .icon { -webkit-transition: all .3s linear; -o-transition: all .3s linear; transition: all .3s linear; position: absolute; top: -10px; right: 10px; z-index: 0; font-size: 90px; color: rgba(0, 0, 0, 0.15) } .small-box:hover { text-decoration: none; color: #f9f9f9 } .small-box:hover .icon { font-size: 95px } @media (max-width: 767px) { .small-box { text-align: center } .small-box .icon { display: none } .small-box p { font-size: 12px } } .box { position: relative; border-radius: 3px; background: #ffffff; border-top: 3px solid #d2d6de; margin-bottom: 20px; width: 100%; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1) } .box.box-primary { border-top-color: #3c8dbc } .box.box-info { border-top-color: #00c0ef } .box.box-danger { border-top-color: #dd4b39 } .box.box-warning { border-top-color: #f39c12 } .box.box-success { border-top-color: #00a65a } .box.box-default { border-top-color: #d2d6de } .box.collapsed-box .box-body, .box.collapsed-box .box-footer { display: none } .box .nav-stacked > li { border-bottom: 1px solid #f4f4f4; margin: 0 } .box .nav-stacked > li:last-of-type { border-bottom: none } .box.height-control .box-body { max-height: 300px; overflow: auto } .box .border-right { border-right: 1px solid #f4f4f4 } .box .border-left { border-left: 1px solid #f4f4f4 } .box.box-solid { border-top: 0 } .box.box-solid > .box-header .btn.btn-default { background: transparent } .box.box-solid > .box-header .btn:hover, .box.box-solid > .box-header a:hover { background: rgba(0, 0, 0, 0.1) } .box.box-solid.box-default { border: 1px solid #d2d6de } .box.box-solid.box-default > .box-header { color: #444; background: #d2d6de; background-color: #d2d6de } .box.box-solid.box-default > .box-header a, .box.box-solid.box-default > .box-header .btn { color: #444 } .box.box-solid.box-primary { border: 1px solid #3c8dbc } .box.box-solid.box-primary > .box-header { color: #fff; background: #3c8dbc; background-color: #3c8dbc } .box.box-solid.box-primary > .box-header a, .box.box-solid.box-primary > .box-header .btn { color: #fff } .box.box-solid.box-info { border: 1px solid #00c0ef } .box.box-solid.box-info > .box-header { color: #fff; background: #00c0ef; background-color: #00c0ef } .box.box-solid.box-info > .box-header a, .box.box-solid.box-info > .box-header .btn { color: #fff } .box.box-solid.box-danger { border: 1px solid #dd4b39 } .box.box-solid.box-danger > .box-header { color: #fff; background: #dd4b39; background-color: #dd4b39 } .box.box-solid.box-danger > .box-header a, .box.box-solid.box-danger > .box-header .btn { color: #fff } .box.box-solid.box-warning { border: 1px solid #f39c12 } .box.box-solid.box-warning > .box-header { color: #fff; background: #f39c12; background-color: #f39c12 } .box.box-solid.box-warning > .box-header a, .box.box-solid.box-warning > .box-header .btn { color: #fff } .box.box-solid.box-success { border: 1px solid #00a65a } .box.box-solid.box-success > .box-header { color: #fff; background: #00a65a; background-color: #00a65a } .box.box-solid.box-success > .box-header a, .box.box-solid.box-success > .box-header .btn { color: #fff } .box.box-solid > .box-header > .box-tools .btn { border: 0; box-shadow: none } .box.box-solid[class*='bg'] > .box-header { color: #fff } .box .box-group > .box { margin-bottom: 5px } .box .knob-label { text-align: center; color: #333; font-weight: 100; font-size: 12px; margin-bottom: 0.3em } .box > .overlay, .overlay-wrapper > .overlay, .box > .loading-img, .overlay-wrapper > .loading-img { position: absolute; top: 0; left: 0; width: 100%; height: 100% } .box .overlay, .overlay-wrapper .overlay { z-index: 50; background: rgba(255, 255, 255, 0.7); border-radius: 3px } .box .overlay > .fa, .overlay-wrapper .overlay > .fa { position: absolute; top: 50%; left: 50%; margin-left: -15px; margin-top: -15px; color: #000; font-size: 30px } .box .overlay.dark, .overlay-wrapper .overlay.dark { background: rgba(0, 0, 0, 0.5) } .box-header:before, .box-body:before, .box-footer:before, .box-header:after, .box-body:after, .box-footer:after { content: " "; display: table } .box-header:after, .box-body:after, .box-footer:after { clear: both } .box-header { color: #444; display: block; padding: 10px; position: relative } .box-header.with-border { border-bottom: 1px solid #f4f4f4 } .collapsed-box .box-header.with-border { border-bottom: none } .box-header > .fa, .box-header > .glyphicon, .box-header > .ion, .box-header .box-title { display: inline-block; font-size: 18px; margin: 0; line-height: 1 } .box-header > .fa, .box-header > .glyphicon, .box-header > .ion { margin-right: 5px } .box-header > .box-tools { position: absolute; right: 10px; top: 5px } .box-header > .box-tools [data-toggle="tooltip"] { position: relative } .box-header > .box-tools.pull-right .dropdown-menu { right: 0; left: auto } .btn-box-tool { padding: 5px; font-size: 12px; background: transparent; color: #97a0b3 } .open .btn-box-tool, .btn-box-tool:hover { color: #606c84 } .btn-box-tool.btn:active { box-shadow: none } .box-body { border-top-left-radius: 0; border-top-right-radius: 0; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 10px } .no-header .box-body { border-top-right-radius: 3px; border-top-left-radius: 3px } .box-body > .table { margin-bottom: 0 } .box-body .fc { margin-top: 5px } .box-body .full-width-chart { margin: -19px } .box-body.no-padding .full-width-chart { margin: -9px } .box-body .box-pane { border-top-left-radius: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 3px } .box-body .box-pane-right { border-top-left-radius: 0; border-top-right-radius: 0; border-bottom-right-radius: 3px; border-bottom-left-radius: 0 } .box-footer { border-top-left-radius: 0; border-top-right-radius: 0; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; border-top: 1px solid #f4f4f4; padding: 10px; background-color: #fff } .chart-legend { margin: 10px 0 } @media (max-width: 991px) { .chart-legend > li { float: left; margin-right: 10px } } .box-comments { background: #f7f7f7 } .box-comments .box-comment { padding: 8px 0; border-bottom: 1px solid #eee } .box-comments .box-comment:before, .box-comments .box-comment:after { content: " "; display: table } .box-comments .box-comment:after { clear: both } .box-comments .box-comment:last-of-type { border-bottom: 0 } .box-comments .box-comment:first-of-type { padding-top: 0 } .box-comments .box-comment img { float: left } .box-comments .comment-text { margin-left: 40px; color: #555 } .box-comments .username { color: #444; display: block; font-weight: 600 } .box-comments .text-muted { font-weight: 400; font-size: 12px } .todo-list { margin: 0; padding: 0; list-style: none; overflow: auto } .todo-list > li { border-radius: 2px; padding: 10px; background: #f4f4f4; margin-bottom: 2px; border-left: 2px solid #e6e7e8; color: #444 } .todo-list > li:last-of-type { margin-bottom: 0 } .todo-list > li > input[type='checkbox'] { margin: 0 10px 0 5px } .todo-list > li .text { display: inline-block; margin-left: 5px; font-weight: 600 } .todo-list > li .label { margin-left: 10px; font-size: 9px } .todo-list > li .tools { display: none; float: right; color: #dd4b39 } .todo-list > li .tools > .fa, .todo-list > li .tools > .glyphicon, .todo-list > li .tools > .ion { margin-right: 5px; cursor: pointer } .todo-list > li:hover .tools { display: inline-block } .todo-list > li.done { color: #999 } .todo-list > li.done .text { text-decoration: line-through; font-weight: 500 } .todo-list > li.done .label { background: #d2d6de !important } .todo-list .danger { border-left-color: #dd4b39 } .todo-list .warning { border-left-color: #f39c12 } .todo-list .info { border-left-color: #00c0ef } .todo-list .success { border-left-color: #00a65a } .todo-list .primary { border-left-color: #3c8dbc } .todo-list .handle { display: inline-block; cursor: move; margin: 0 5px } .chat { padding: 5px 20px 5px 10px } .chat .item { margin-bottom: 10px } .chat .item:before, .chat .item:after { content: " "; display: table } .chat .item:after { clear: both } .chat .item > img { width: 40px; height: 40px; border: 2px solid transparent; border-radius: 50% } .chat .item > .online { border: 2px solid #00a65a } .chat .item > .offline { border: 2px solid #dd4b39 } .chat .item > .message { margin-left: 55px; margin-top: -40px } .chat .item > .message > .name { display: block; font-weight: 600 } .chat .item > .attachment { border-radius: 3px; background: #f4f4f4; margin-left: 65px; margin-right: 15px; padding: 10px } .chat .item > .attachment > h4 { margin: 0 0 5px 0; font-weight: 600; font-size: 14px } .chat .item > .attachment > p, .chat .item > .attachment > .filename { font-weight: 600; font-size: 13px; font-style: italic; margin: 0 } .chat .item > .attachment:before, .chat .item > .attachment:after { content: " "; display: table } .chat .item > .attachment:after { clear: both } .box-input { max-width: 200px } .modal .panel-body { color: #444 } .info-box { display: block; min-height: 90px; background: #fff; width: 100%; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); border-radius: 2px; margin-bottom: 15px } .info-box small { font-size: 14px } .info-box .progress { background: rgba(0, 0, 0, 0.2); margin: 5px -10px 5px -10px; height: 2px } .info-box .progress, .info-box .progress .progress-bar { border-radius: 0 } .info-box .progress .progress-bar { background: #fff } .info-box-icon { border-top-left-radius: 2px; border-top-right-radius: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 2px; display: block; float: left; height: 90px; width: 90px; text-align: center; font-size: 45px; line-height: 90px; background: rgba(0, 0, 0, 0.2) } .info-box-icon > img { max-width: 100% } .info-box-content { padding: 5px 10px; margin-left: 90px } .info-box-number { display: block; font-weight: bold; font-size: 18px } .progress-description, .info-box-text { display: block; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis } .info-box-text { text-transform: uppercase } .info-box-more { display: block } .progress-description { margin: 0 } .timeline { position: relative; margin: 0 0 30px 0; padding: 0; list-style: none } .timeline:before { content: ''; position: absolute; top: 0; bottom: 0; width: 4px; background: #ddd; left: 31px; margin: 0; border-radius: 2px } .timeline > li { position: relative; margin-right: 10px; margin-bottom: 15px } .timeline > li:before, .timeline > li:after { content: " "; display: table } .timeline > li:after { clear: both } .timeline > li > .timeline-item { -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); border-radius: 3px; margin-top: 0; background: #fff; color: #444; margin-left: 60px; margin-right: 15px; padding: 0; position: relative } .timeline > li > .timeline-item > .time { color: #999; float: right; padding: 10px; font-size: 12px } .timeline > li > .timeline-item > .timeline-header { margin: 0; color: #555; border-bottom: 1px solid #f4f4f4; padding: 10px; font-size: 16px; line-height: 1.1 } .timeline > li > .timeline-item > .timeline-header > a { font-weight: 600 } .timeline > li > .timeline-item > .timeline-body, .timeline > li > .timeline-item > .timeline-footer { padding: 10px } .timeline > li > .fa, .timeline > li > .glyphicon, .timeline > li > .ion { width: 30px; height: 30px; font-size: 15px; line-height: 30px; position: absolute; color: #666; background: #d2d6de; border-radius: 50%; text-align: center; left: 18px; top: 0 } .timeline > .time-label > span { font-weight: 600; padding: 5px; display: inline-block; background-color: #fff; border-radius: 4px } .timeline-inverse > li > .timeline-item { background: #f0f0f0; border: 1px solid #ddd; -webkit-box-shadow: none; box-shadow: none } .timeline-inverse > li > .timeline-item > .timeline-header { border-bottom-color: #ddd } .btn { border-radius: 3px; -webkit-box-shadow: none; box-shadow: none; border: 1px solid transparent } .btn.uppercase { text-transform: uppercase } .btn.btn-flat { border-radius: 0; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; border-width: 1px } .btn:active { -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125) } .btn:focus { outline: none } .btn.btn-file { position: relative; overflow: hidden } .btn.btn-file > input[type='file'] { position: absolute; top: 0; right: 0; min-width: 100%; min-height: 100%; font-size: 100px; text-align: right; opacity: 0; filter: alpha(opacity=0); outline: none; background: white; cursor: inherit; display: block } .btn-default { background-color: #f4f4f4; color: #444; border-color: #ddd } .btn-default:hover, .btn-default:active, .btn-default.hover { background-color: #e7e7e7 } .btn-primary { background-color: #3c8dbc; border-color: #367fa9 } .btn-primary:hover, .btn-primary:active, .btn-primary.hover { background-color: #367fa9 } .btn-success { background-color: #00a65a; border-color: #008d4c } .btn-success:hover, .btn-success:active, .btn-success.hover { background-color: #008d4c } .btn-info { background-color: #00c0ef; border-color: #00acd6 } .btn-info:hover, .btn-info:active, .btn-info.hover { background-color: #00acd6 } .btn-danger { background-color: #dd4b39; border-color: #d73925 } .btn-danger:hover, .btn-danger:active, .btn-danger.hover { background-color: #d73925 } .btn-warning { background-color: #f39c12; border-color: #e08e0b } .btn-warning:hover, .btn-warning:active, .btn-warning.hover { background-color: #e08e0b } .btn-outline { border: 1px solid #fff; background: transparent; color: #fff } .btn-outline:hover, .btn-outline:focus, .btn-outline:active { color: rgba(255, 255, 255, 0.7); border-color: rgba(255, 255, 255, 0.7) } .btn-link { -webkit-box-shadow: none; box-shadow: none } .btn[class*='bg-']:hover { -webkit-box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.2); box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.2) } .btn-app { border-radius: 3px; position: relative; padding: 15px 5px; margin: 0 0 10px 10px; min-width: 80px; height: 60px; text-align: center; color: #666; border: 1px solid #ddd; background-color: #f4f4f4; font-size: 12px } .btn-app > .fa, .btn-app > .glyphicon, .btn-app > .ion { font-size: 20px; display: block } .btn-app:hover { background: #f4f4f4; color: #444; border-color: #aaa } .btn-app:active, .btn-app:focus { -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125) } .btn-app > .badge { position: absolute; top: -3px; right: -10px; font-size: 10px; font-weight: 400 } .callout { border-radius: 3px; margin: 0 0 20px 0; padding: 15px 30px 15px 15px; border-left: 5px solid #eee } .callout a { color: #fff; text-decoration: underline } .callout a:hover { color: #eee } .callout h4 { margin-top: 0; font-weight: 600 } .callout p:last-child { margin-bottom: 0 } .callout code, .callout .highlight { background-color: #fff } .callout.callout-danger { border-color: #c23321 } .callout.callout-warning { border-color: #c87f0a } .callout.callout-info { border-color: #0097bc } .callout.callout-success { border-color: #00733e } .alert { border-radius: 3px } .alert h4 { font-weight: 600 } .alert .icon { margin-right: 10px } .alert .close { color: #000; opacity: .2; filter: alpha(opacity=20) } .alert .close:hover { opacity: .5; filter: alpha(opacity=50) } .alert a { color: #fff; text-decoration: underline } .alert-success { border-color: #008d4c } .alert-danger, .alert-error { border-color: #d73925 } .alert-warning { border-color: #e08e0b } .alert-info { border-color: #00acd6 } .nav > li > a:hover, .nav > li > a:active, .nav > li > a:focus { color: #444; background: #f7f7f7 } .nav-pills > li > a { border-radius: 0; border-top: 3px solid transparent; color: #444 } .nav-pills > li > a > .fa, .nav-pills > li > a > .glyphicon, .nav-pills > li > a > .ion { margin-right: 5px } .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { border-top-color: #3c8dbc } .nav-pills > li.active > a { font-weight: 600 } .nav-stacked > li > a { border-radius: 0; border-top: 0; border-left: 3px solid transparent; color: #444 } .nav-stacked > li.active > a, .nav-stacked > li.active > a:hover { background: transparent; color: #444; border-top: 0; border-left-color: #3c8dbc } .nav-stacked > li.header { border-bottom: 1px solid #ddd; color: #777; margin-bottom: 10px; padding: 5px 10px; text-transform: uppercase } .nav-tabs-custom { margin-bottom: 20px; background: #fff; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); border-radius: 3px } .nav-tabs-custom > .nav-tabs { margin: 0; border-bottom-color: #f4f4f4; border-top-right-radius: 3px; border-top-left-radius: 3px } .nav-tabs-custom > .nav-tabs > li { border-top: 3px solid transparent; margin-bottom: -2px; margin-right: 5px } .nav-tabs-custom > .nav-tabs > li > a { color: #444; border-radius: 0 } .nav-tabs-custom > .nav-tabs > li > a.text-muted { color: #999 } .nav-tabs-custom > .nav-tabs > li > a, .nav-tabs-custom > .nav-tabs > li > a:hover { background: transparent; margin: 0 } .nav-tabs-custom > .nav-tabs > li > a:hover { color: #999 } .nav-tabs-custom > .nav-tabs > li:not(.active) > a:hover, .nav-tabs-custom > .nav-tabs > li:not(.active) > a:focus, .nav-tabs-custom > .nav-tabs > li:not(.active) > a:active { border-color: transparent } .nav-tabs-custom > .nav-tabs > li.active { border-top-color: #b0b4b7 } .nav-tabs-custom > .nav-tabs > li.active > a, .nav-tabs-custom > .nav-tabs > li.active:hover > a { background-color: #fff; color: #444 } .nav-tabs-custom > .nav-tabs > li.active > a { border-top-color: transparent; border-left-color: #f4f4f4; border-right-color: #f4f4f4 } .nav-tabs-custom > .nav-tabs > li:first-of-type { margin-left: 0 } .nav-tabs-custom > .nav-tabs > li:first-of-type.active > a { border-left-color: transparent } .nav-tabs-custom > .nav-tabs.pull-right { float: none !important } .nav-tabs-custom > .nav-tabs.pull-right > li { float: right } .nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type { margin-right: 0 } .nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type > a { border-left-width: 1px } .nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type.active > a { border-left-color: #f4f4f4; border-right-color: transparent } .nav-tabs-custom > .nav-tabs > li.header { line-height: 35px; padding: 0 10px; font-size: 20px; color: #444 } .nav-tabs-custom > .nav-tabs > li.header > .fa, .nav-tabs-custom > .nav-tabs > li.header > .glyphicon, .nav-tabs-custom > .nav-tabs > li.header > .ion { margin-right: 5px } .nav-tabs-custom > .tab-content { background: #fff; padding: 10px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px } .nav-tabs-custom .dropdown.open > a:active, .nav-tabs-custom .dropdown.open > a:focus { background: transparent; color: #999 } .nav-tabs-custom.tab-primary > .nav-tabs > li.active { border-top-color: #3c8dbc } .nav-tabs-custom.tab-info > .nav-tabs > li.active { border-top-color: #00c0ef } .nav-tabs-custom.tab-danger > .nav-tabs > li.active { border-top-color: #dd4b39 } .nav-tabs-custom.tab-warning > .nav-tabs > li.active { border-top-color: #f39c12 } .nav-tabs-custom.tab-success > .nav-tabs > li.active { border-top-color: #00a65a } .nav-tabs-custom.tab-default > .nav-tabs > li.active { border-top-color: #d2d6de } .pagination > li > a { background: #fafafa; color: #666 } .pagination.pagination-flat > li > a { border-radius: 0 !important } .products-list { list-style: none; margin: 0; padding: 0 } .products-list > .item { border-radius: 3px; -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); padding: 10px 0; background: #fff } .products-list > .item:before, .products-list > .item:after { content: " "; display: table } .products-list > .item:after { clear: both } .products-list .product-img { float: left } .products-list .product-img img { width: 50px; height: 50px } .products-list .product-info { margin-left: 60px } .products-list .product-title { font-weight: 600 } .products-list .product-description { display: block; color: #999; overflow: hidden; white-space: nowrap; text-overflow: ellipsis } .product-list-in-box > .item { -webkit-box-shadow: none; box-shadow: none; border-radius: 0; border-bottom: 1px solid #f4f4f4 } .product-list-in-box > .item:last-of-type { border-bottom-width: 0 } .table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td { border-top: 1px solid #f4f4f4 } .table > thead > tr > th { border-bottom: 2px solid #f4f4f4 } .table tr td .progress { margin-top: 5px } .table-bordered { border: 1px solid #f4f4f4 } .table-bordered > thead > tr > th, .table-bordered > tbody > tr > th, .table-bordered > tfoot > tr > th, .table-bordered > thead > tr > td, .table-bordered > tbody > tr > td, .table-bordered > tfoot > tr > td { border: 1px solid #f4f4f4 } .table-bordered > thead > tr > th, .table-bordered > thead > tr > td { border-bottom-width: 2px } .table.no-border, .table.no-border td, .table.no-border th { border: 0 } table.text-center, table.text-center td, table.text-center th { text-align: center } .table.align th { text-align: left } .table.align td { text-align: right } .label-default { background-color: #d2d6de; color: #444 } .direct-chat .box-body { border-bottom-right-radius: 0; border-bottom-left-radius: 0; position: relative; overflow-x: hidden; padding: 0 } .direct-chat.chat-pane-open .direct-chat-contacts { -webkit-transform: translate(0, 0); -ms-transform: translate(0, 0); -o-transform: translate(0, 0); transform: translate(0, 0) } .direct-chat-messages { -webkit-transform: translate(0, 0); -ms-transform: translate(0, 0); -o-transform: translate(0, 0); transform: translate(0, 0); padding: 10px; height: 250px; overflow: auto } .direct-chat-msg, .direct-chat-text { display: block } .direct-chat-msg { margin-bottom: 10px } .direct-chat-msg:before, .direct-chat-msg:after { content: " "; display: table } .direct-chat-msg:after { clear: both } .direct-chat-messages, .direct-chat-contacts { -webkit-transition: -webkit-transform .5s ease-in-out; -moz-transition: -moz-transform .5s ease-in-out; -o-transition: -o-transform .5s ease-in-out; transition: transform .5s ease-in-out } .direct-chat-text { border-radius: 5px; position: relative; padding: 5px 10px; background: #d2d6de; border: 1px solid #d2d6de; margin: 5px 0 0 50px; color: #444 } .direct-chat-text:after, .direct-chat-text:before { position: absolute; right: 100%; top: 15px; border: solid transparent; border-right-color: #d2d6de; content: ' '; height: 0; width: 0; pointer-events: none } .direct-chat-text:after { border-width: 5px; margin-top: -5px } .direct-chat-text:before { border-width: 6px; margin-top: -6px } .right .direct-chat-text { margin-right: 50px; margin-left: 0 } .right .direct-chat-text:after, .right .direct-chat-text:before { right: auto; left: 100%; border-right-color: transparent; border-left-color: #d2d6de } .direct-chat-img { border-radius: 50%; float: left; width: 40px; height: 40px } .right .direct-chat-img { float: right } .direct-chat-info { display: block; margin-bottom: 2px; font-size: 12px } .direct-chat-name { font-weight: 600 } .direct-chat-timestamp { color: #999 } .direct-chat-contacts-open .direct-chat-contacts { -webkit-transform: translate(0, 0); -ms-transform: translate(0, 0); -o-transform: translate(0, 0); transform: translate(0, 0) } .direct-chat-contacts { -webkit-transform: translate(101%, 0); -ms-transform: translate(101%, 0); -o-transform: translate(101%, 0); transform: translate(101%, 0); position: absolute; top: 0; bottom: 0; height: 250px; width: 100%; background: #222d32; color: #fff; overflow: auto } .contacts-list > li { border-bottom: 1px solid rgba(0, 0, 0, 0.2); padding: 10px; margin: 0 } .contacts-list > li:before, .contacts-list > li:after { content: " "; display: table } .contacts-list > li:after { clear: both } .contacts-list > li:last-of-type { border-bottom: none } .contacts-list-img { border-radius: 50%; width: 40px; float: left } .contacts-list-info { margin-left: 45px; color: #fff } .contacts-list-name, .contacts-list-status { display: block } .contacts-list-name { font-weight: 600 } .contacts-list-status { font-size: 12px } .contacts-list-date { color: #aaa; font-weight: normal } .contacts-list-msg { color: #999 } .direct-chat-danger .right > .direct-chat-text { background: #dd4b39; border-color: #dd4b39; color: #fff } .direct-chat-danger .right > .direct-chat-text:after, .direct-chat-danger .right > .direct-chat-text:before { border-left-color: #dd4b39 } .direct-chat-primary .right > .direct-chat-text { background: #3c8dbc; border-color: #3c8dbc; color: #fff } .direct-chat-primary .right > .direct-chat-text:after, .direct-chat-primary .right > .direct-chat-text:before { border-left-color: #3c8dbc } .direct-chat-warning .right > .direct-chat-text { background: #f39c12; border-color: #f39c12; color: #fff } .direct-chat-warning .right > .direct-chat-text:after, .direct-chat-warning .right > .direct-chat-text:before { border-left-color: #f39c12 } .direct-chat-info .right > .direct-chat-text { background: #00c0ef; border-color: #00c0ef; color: #fff } .direct-chat-info .right > .direct-chat-text:after, .direct-chat-info .right > .direct-chat-text:before { border-left-color: #00c0ef } .direct-chat-success .right > .direct-chat-text { background: #00a65a; border-color: #00a65a; color: #fff } .direct-chat-success .right > .direct-chat-text:after, .direct-chat-success .right > .direct-chat-text:before { border-left-color: #00a65a } .users-list > li { width: 25%; float: left; padding: 10px; text-align: center } .users-list > li img { border-radius: 50%; max-width: 100%; height: auto } .users-list > li > a:hover, .users-list > li > a:hover .users-list-name { color: #999 } .users-list-name, .users-list-date { display: block } .users-list-name { font-weight: 600; color: #444; overflow: hidden; white-space: nowrap; text-overflow: ellipsis } .users-list-date { color: #999; font-size: 12px } .carousel-control.left, .carousel-control.right { background-image: none } .carousel-control > .fa { font-size: 40px; position: absolute; top: 50%; z-index: 5; display: inline-block; margin-top: -20px } .modal { background: rgba(0, 0, 0, 0.3) } .modal-content { border-radius: 0; -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125); box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125); border: 0 } @media (min-width: 768px) { .modal-content { -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125); box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125) } } .modal-header { border-bottom-color: #f4f4f4 } .modal-footer { border-top-color: #f4f4f4 } .modal-primary .modal-header, .modal-primary .modal-footer { border-color: #307095 } .modal-warning .modal-header, .modal-warning .modal-footer { border-color: #c87f0a } .modal-info .modal-header, .modal-info .modal-footer { border-color: #0097bc } .modal-success .modal-header, .modal-success .modal-footer { border-color: #00733e } .modal-danger .modal-header, .modal-danger .modal-footer { border-color: #c23321 } .box-widget { border: none; position: relative } .widget-user .widget-user-header { padding: 20px; height: 120px; border-top-right-radius: 3px; border-top-left-radius: 3px } .widget-user .widget-user-username { margin-top: 0; margin-bottom: 5px; font-size: 25px; font-weight: 300; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2) } .widget-user .widget-user-desc { margin-top: 0 } .widget-user .widget-user-image { position: absolute; top: 65px; left: 50%; margin-left: -45px } .widget-user .widget-user-image > img { width: 90px; height: auto; border: 3px solid #fff } .widget-user .box-footer { padding-top: 30px } .widget-user-2 .widget-user-header { padding: 20px; border-top-right-radius: 3px; border-top-left-radius: 3px } .widget-user-2 .widget-user-username { margin-top: 5px; margin-bottom: 5px; font-size: 25px; font-weight: 300 } .widget-user-2 .widget-user-desc { margin-top: 0 } .widget-user-2 .widget-user-username, .widget-user-2 .widget-user-desc { margin-left: 75px } .widget-user-2 .widget-user-image > img { width: 65px; height: auto; float: left } .mailbox-messages > .table { margin: 0 } .mailbox-controls { padding: 5px } .mailbox-controls.with-border { border-bottom: 1px solid #f4f4f4 } .mailbox-read-info { border-bottom: 1px solid #f4f4f4; padding: 10px } .mailbox-read-info h3 { font-size: 20px; margin: 0 } .mailbox-read-info h5 { margin: 0; padding: 5px 0 0 0 } .mailbox-read-time { color: #999; font-size: 13px } .mailbox-read-message { padding: 10px } .mailbox-attachments li { float: left; width: 200px; border: 1px solid #eee; margin-bottom: 10px; margin-right: 10px } .mailbox-attachment-name { font-weight: bold; color: #666 } .mailbox-attachment-icon, .mailbox-attachment-info, .mailbox-attachment-size { display: block } .mailbox-attachment-info { padding: 10px; background: #f4f4f4 } .mailbox-attachment-size { color: #999; font-size: 12px } .mailbox-attachment-icon { text-align: center; font-size: 65px; color: #666; padding: 20px 10px } .mailbox-attachment-icon.has-img { padding: 0 } .mailbox-attachment-icon.has-img > img { max-width: 100%; height: auto } .lockscreen { background: #d2d6de } .lockscreen-logo { font-size: 35px; text-align: center; margin-bottom: 25px; font-weight: 300 } .lockscreen-logo a { color: #444 } .lockscreen-wrapper { max-width: 400px; margin: 0 auto; margin-top: 10% } .lockscreen .lockscreen-name { text-align: center; font-weight: 600 } .lockscreen-item { border-radius: 4px; padding: 0; background: #fff; position: relative; margin: 10px auto 30px auto; width: 290px } .lockscreen-image { border-radius: 50%; position: absolute; left: -10px; top: -25px; background: #fff; padding: 5px; z-index: 10 } .lockscreen-image > img { border-radius: 50%; width: 70px; height: 70px } .lockscreen-credentials { margin-left: 70px } .lockscreen-credentials .form-control { border: 0 } .lockscreen-credentials .btn { background-color: #fff; border: 0; padding: 0 10px } .lockscreen-footer { margin-top: 10px } .login-logo, .register-logo { font-size: 35px; text-align: center; margin-bottom: 25px; font-weight: 300 } .login-logo a, .register-logo a { color: #444 } .login-page, .register-page { background: #d2d6de } .login-box, .register-box { width: 360px; margin: 7% auto } @media (max-width: 768px) { .login-box, .register-box { width: 90%; margin-top: 20px } } .login-box-body, .register-box-body { background-color: rgba(255, 255, 255, 0.75); border-radius: 3px; box-shadow: 0 0 50px rgba(0, 0, 0, 0.2); padding: 20px; border-top: 0; color: #666 } .login-box-body .form-control-feedback, .register-box-body .form-control-feedback { color: #777 } .login-box-msg, .register-box-msg { margin: 0; text-align: center; padding: 0 20px 20px 20px } .social-auth-links { margin: 10px 0 } .error-page { width: 600px; margin: 20px auto 0 auto } @media (max-width: 991px) { .error-page { width: 100% } } .error-page > .headline { float: left; font-size: 100px; font-weight: 300 } @media (max-width: 991px) { .error-page > .headline { float: none; text-align: center } } .error-page > .error-content { margin-left: 190px; display: block } @media (max-width: 991px) { .error-page > .error-content { margin-left: 0 } } .error-page > .error-content > h3 { font-weight: 300; font-size: 25px } @media (max-width: 991px) { .error-page > .error-content > h3 { text-align: center } } .invoice { position: relative; background: #fff; border: 1px solid #f4f4f4; padding: 20px; margin: 10px 25px } .invoice-title { margin-top: 0 } .profile-user-img { margin: 0 auto; width: 100px; padding: 3px; border: 3px solid #d2d6de } .profile-username { font-size: 21px; margin-top: 5px } .post { border-bottom: 1px solid #d2d6de; margin-bottom: 15px; padding-bottom: 15px; color: #666 } .post:last-of-type { border-bottom: 0; margin-bottom: 0; padding-bottom: 0 } .post .user-block { margin-bottom: 15px } .btn-social { position: relative; padding-left: 44px; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis } .btn-social > :first-child { position: absolute; left: 0; top: 0; bottom: 0; width: 32px; line-height: 34px; font-size: 1.6em; text-align: center; border-right: 1px solid rgba(0, 0, 0, 0.2) } .btn-social.btn-lg { padding-left: 61px } .btn-social.btn-lg > :first-child { line-height: 45px; width: 45px; font-size: 1.8em } .btn-social.btn-sm { padding-left: 38px } .btn-social.btn-sm > :first-child { line-height: 28px; width: 28px; font-size: 1.4em } .btn-social.btn-xs { padding-left: 30px } .btn-social.btn-xs > :first-child { line-height: 20px; width: 20px; font-size: 1.2em } .btn-social-icon { position: relative; padding-left: 44px; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; height: 34px; width: 34px; padding: 0 } .btn-social-icon > :first-child { position: absolute; left: 0; top: 0; bottom: 0; width: 32px; line-height: 34px; font-size: 1.6em; text-align: center; border-right: 1px solid rgba(0, 0, 0, 0.2) } .btn-social-icon.btn-lg { padding-left: 61px } .btn-social-icon.btn-lg > :first-child { line-height: 45px; width: 45px; font-size: 1.8em } .btn-social-icon.btn-sm { padding-left: 38px } .btn-social-icon.btn-sm > :first-child { line-height: 28px; width: 28px; font-size: 1.4em } .btn-social-icon.btn-xs { padding-left: 30px } .btn-social-icon.btn-xs > :first-child { line-height: 20px; width: 20px; font-size: 1.2em } .btn-social-icon > :first-child { border: none; text-align: center; width: 100% } .btn-social-icon.btn-lg { height: 45px; width: 45px; padding-left: 0; padding-right: 0 } .btn-social-icon.btn-sm { height: 30px; width: 30px; padding-left: 0; padding-right: 0 } .btn-social-icon.btn-xs { height: 22px; width: 22px; padding-left: 0; padding-right: 0 } .btn-adn { color: #fff; background-color: #d87a68; border-color: rgba(0, 0, 0, 0.2) } .btn-adn:hover, .btn-adn:focus, .btn-adn.focus, .btn-adn:active, .btn-adn.active, .open > .dropdown-toggle.btn-adn { color: #fff; background-color: #ce563f; border-color: rgba(0, 0, 0, 0.2) } .btn-adn:active, .btn-adn.active, .open > .dropdown-toggle.btn-adn { background-image: none } .btn-adn .badge { color: #d87a68; background-color: #fff } .btn-bitbucket { color: #fff; background-color: #205081; border-color: rgba(0, 0, 0, 0.2) } .btn-bitbucket:hover, .btn-bitbucket:focus, .btn-bitbucket.focus, .btn-bitbucket:active, .btn-bitbucket.active, .open > .dropdown-toggle.btn-bitbucket { color: #fff; background-color: #163758; border-color: rgba(0, 0, 0, 0.2) } .btn-bitbucket:active, .btn-bitbucket.active, .open > .dropdown-toggle.btn-bitbucket { background-image: none } .btn-bitbucket .badge { color: #205081; background-color: #fff } .btn-dropbox { color: #fff; background-color: #1087dd; border-color: rgba(0, 0, 0, 0.2) } .btn-dropbox:hover, .btn-dropbox:focus, .btn-dropbox.focus, .btn-dropbox:active, .btn-dropbox.active, .open > .dropdown-toggle.btn-dropbox { color: #fff; background-color: #0d6aad; border-color: rgba(0, 0, 0, 0.2) } .btn-dropbox:active, .btn-dropbox.active, .open > .dropdown-toggle.btn-dropbox { background-image: none } .btn-dropbox .badge { color: #1087dd; background-color: #fff } .btn-facebook { color: #fff; background-color: #3b5998; border-color: rgba(0, 0, 0, 0.2) } .btn-facebook:hover, .btn-facebook:focus, .btn-facebook.focus, .btn-facebook:active, .btn-facebook.active, .open > .dropdown-toggle.btn-facebook { color: #fff; background-color: #2d4373; border-color: rgba(0, 0, 0, 0.2) } .btn-facebook:active, .btn-facebook.active, .open > .dropdown-toggle.btn-facebook { background-image: none } .btn-facebook .badge { color: #3b5998; background-color: #fff } .btn-flickr { color: #fff; background-color: #ff0084; border-color: rgba(0, 0, 0, 0.2) } .btn-flickr:hover, .btn-flickr:focus, .btn-flickr.focus, .btn-flickr:active, .btn-flickr.active, .open > .dropdown-toggle.btn-flickr { color: #fff; background-color: #cc006a; border-color: rgba(0, 0, 0, 0.2) } .btn-flickr:active, .btn-flickr.active, .open > .dropdown-toggle.btn-flickr { background-image: none } .btn-flickr .badge { color: #ff0084; background-color: #fff } .btn-foursquare { color: #fff; background-color: #f94877; border-color: rgba(0, 0, 0, 0.2) } .btn-foursquare:hover, .btn-foursquare:focus, .btn-foursquare.focus, .btn-foursquare:active, .btn-foursquare.active, .open > .dropdown-toggle.btn-foursquare { color: #fff; background-color: #f71752; border-color: rgba(0, 0, 0, 0.2) } .btn-foursquare:active, .btn-foursquare.active, .open > .dropdown-toggle.btn-foursquare { background-image: none } .btn-foursquare .badge { color: #f94877; background-color: #fff } .btn-github { color: #fff; background-color: #444; border-color: rgba(0, 0, 0, 0.2) } .btn-github:hover, .btn-github:focus, .btn-github.focus, .btn-github:active, .btn-github.active, .open > .dropdown-toggle.btn-github { color: #fff; background-color: #2b2b2b; border-color: rgba(0, 0, 0, 0.2) } .btn-github:active, .btn-github.active, .open > .dropdown-toggle.btn-github { background-image: none } .btn-github .badge { color: #444; background-color: #fff } .btn-google { color: #fff; background-color: #dd4b39; border-color: rgba(0, 0, 0, 0.2) } .btn-google:hover, .btn-google:focus, .btn-google.focus, .btn-google:active, .btn-google.active, .open > .dropdown-toggle.btn-google { color: #fff; background-color: #c23321; border-color: rgba(0, 0, 0, 0.2) } .btn-google:active, .btn-google.active, .open > .dropdown-toggle.btn-google { background-image: none } .btn-google .badge { color: #dd4b39; background-color: #fff } .btn-instagram { color: #fff; background-color: #3f729b; border-color: rgba(0, 0, 0, 0.2) } .btn-instagram:hover, .btn-instagram:focus, .btn-instagram.focus, .btn-instagram:active, .btn-instagram.active, .open > .dropdown-toggle.btn-instagram { color: #fff; background-color: #305777; border-color: rgba(0, 0, 0, 0.2) } .btn-instagram:active, .btn-instagram.active, .open > .dropdown-toggle.btn-instagram { background-image: none } .btn-instagram .badge { color: #3f729b; background-color: #fff } .btn-linkedin { color: #fff; background-color: #007bb6; border-color: rgba(0, 0, 0, 0.2) } .btn-linkedin:hover, .btn-linkedin:focus, .btn-linkedin.focus, .btn-linkedin:active, .btn-linkedin.active, .open > .dropdown-toggle.btn-linkedin { color: #fff; background-color: #005983; border-color: rgba(0, 0, 0, 0.2) } .btn-linkedin:active, .btn-linkedin.active, .open > .dropdown-toggle.btn-linkedin { background-image: none } .btn-linkedin .badge { color: #007bb6; background-color: #fff } .btn-microsoft { color: #fff; background-color: #2672ec; border-color: rgba(0, 0, 0, 0.2) } .btn-microsoft:hover, .btn-microsoft:focus, .btn-microsoft.focus, .btn-microsoft:active, .btn-microsoft.active, .open > .dropdown-toggle.btn-microsoft { color: #fff; background-color: #125acd; border-color: rgba(0, 0, 0, 0.2) } .btn-microsoft:active, .btn-microsoft.active, .open > .dropdown-toggle.btn-microsoft { background-image: none } .btn-microsoft .badge { color: #2672ec; background-color: #fff } .btn-openid { color: #fff; background-color: #f7931e; border-color: rgba(0, 0, 0, 0.2) } .btn-openid:hover, .btn-openid:focus, .btn-openid.focus, .btn-openid:active, .btn-openid.active, .open > .dropdown-toggle.btn-openid { color: #fff; background-color: #da7908; border-color: rgba(0, 0, 0, 0.2) } .btn-openid:active, .btn-openid.active, .open > .dropdown-toggle.btn-openid { background-image: none } .btn-openid .badge { color: #f7931e; background-color: #fff } .btn-pinterest { color: #fff; background-color: #cb2027; border-color: rgba(0, 0, 0, 0.2) } .btn-pinterest:hover, .btn-pinterest:focus, .btn-pinterest.focus, .btn-pinterest:active, .btn-pinterest.active, .open > .dropdown-toggle.btn-pinterest { color: #fff; background-color: #9f191f; border-color: rgba(0, 0, 0, 0.2) } .btn-pinterest:active, .btn-pinterest.active, .open > .dropdown-toggle.btn-pinterest { background-image: none } .btn-pinterest .badge { color: #cb2027; background-color: #fff } .btn-reddit { color: #000; background-color: #eff7ff; border-color: rgba(0, 0, 0, 0.2) } .btn-reddit:hover, .btn-reddit:focus, .btn-reddit.focus, .btn-reddit:active, .btn-reddit.active, .open > .dropdown-toggle.btn-reddit { color: #000; background-color: #bcddff; border-color: rgba(0, 0, 0, 0.2) } .btn-reddit:active, .btn-reddit.active, .open > .dropdown-toggle.btn-reddit { background-image: none } .btn-reddit .badge { color: #eff7ff; background-color: #000 } .btn-soundcloud { color: #fff; background-color: #f50; border-color: rgba(0, 0, 0, 0.2) } .btn-soundcloud:hover, .btn-soundcloud:focus, .btn-soundcloud.focus, .btn-soundcloud:active, .btn-soundcloud.active, .open > .dropdown-toggle.btn-soundcloud { color: #fff; background-color: #c40; border-color: rgba(0, 0, 0, 0.2) } .btn-soundcloud:active, .btn-soundcloud.active, .open > .dropdown-toggle.btn-soundcloud { background-image: none } .btn-soundcloud .badge { color: #f50; background-color: #fff } .btn-tumblr { color: #fff; background-color: #2c4762; border-color: rgba(0, 0, 0, 0.2) } .btn-tumblr:hover, .btn-tumblr:focus, .btn-tumblr.focus, .btn-tumblr:active, .btn-tumblr.active, .open > .dropdown-toggle.btn-tumblr { color: #fff; background-color: #1c2d3f; border-color: rgba(0, 0, 0, 0.2) } .btn-tumblr:active, .btn-tumblr.active, .open > .dropdown-toggle.btn-tumblr { background-image: none } .btn-tumblr .badge { color: #2c4762; background-color: #fff } .btn-twitter { color: #fff; background-color: #55acee; border-color: rgba(0, 0, 0, 0.2) } .btn-twitter:hover, .btn-twitter:focus, .btn-twitter.focus, .btn-twitter:active, .btn-twitter.active, .open > .dropdown-toggle.btn-twitter { color: #fff; background-color: #2795e9; border-color: rgba(0, 0, 0, 0.2) } .btn-twitter:active, .btn-twitter.active, .open > .dropdown-toggle.btn-twitter { background-image: none } .btn-twitter .badge { color: #55acee; background-color: #fff } .btn-vimeo { color: #fff; background-color: #1ab7ea; border-color: rgba(0, 0, 0, 0.2) } .btn-vimeo:hover, .btn-vimeo:focus, .btn-vimeo.focus, .btn-vimeo:active, .btn-vimeo.active, .open > .dropdown-toggle.btn-vimeo { color: #fff; background-color: #1295bf; border-color: rgba(0, 0, 0, 0.2) } .btn-vimeo:active, .btn-vimeo.active, .open > .dropdown-toggle.btn-vimeo { background-image: none } .btn-vimeo .badge { color: #1ab7ea; background-color: #fff } .btn-vk { color: #fff; background-color: #587ea3; border-color: rgba(0, 0, 0, 0.2) } .btn-vk:hover, .btn-vk:focus, .btn-vk.focus, .btn-vk:active, .btn-vk.active, .open > .dropdown-toggle.btn-vk { color: #fff; background-color: #466482; border-color: rgba(0, 0, 0, 0.2) } .btn-vk:active, .btn-vk.active, .open > .dropdown-toggle.btn-vk { background-image: none } .btn-vk .badge { color: #587ea3; background-color: #fff } .btn-yahoo { color: #fff; background-color: #720e9e; border-color: rgba(0, 0, 0, 0.2) } .btn-yahoo:hover, .btn-yahoo:focus, .btn-yahoo.focus, .btn-yahoo:active, .btn-yahoo.active, .open > .dropdown-toggle.btn-yahoo { color: #fff; background-color: #500a6f; border-color: rgba(0, 0, 0, 0.2) } .btn-yahoo:active, .btn-yahoo.active, .open > .dropdown-toggle.btn-yahoo { background-image: none } .btn-yahoo .badge { color: #720e9e; background-color: #fff } .fc-button { background: #f4f4f4; background-image: none; color: #444; border-color: #ddd; border-bottom-color: #ddd } .fc-button:hover, .fc-button:active, .fc-button.hover { background-color: #e9e9e9 } .fc-header-title h2 { font-size: 15px; line-height: 1.6em; color: #666; margin-left: 10px } .fc-header-right { padding-right: 10px } .fc-header-left { padding-left: 10px } .fc-widget-header { background: #fafafa } .fc-grid { width: 100%; border: 0 } .fc-widget-header:first-of-type, .fc-widget-content:first-of-type { border-left: 0; border-right: 0 } .fc-widget-header:last-of-type, .fc-widget-content:last-of-type { border-right: 0 } .fc-toolbar { padding: 10px; margin: 0 } .fc-day-number { font-size: 20px; font-weight: 300; padding-right: 10px } .fc-color-picker { list-style: none; margin: 0; padding: 0 } .fc-color-picker > li { float: left; font-size: 30px; margin-right: 5px; line-height: 30px } .fc-color-picker > li .fa { -webkit-transition: -webkit-transform linear .3s; -moz-transition: -moz-transform linear .3s; -o-transition: -o-transform linear .3s; transition: transform linear .3s } .fc-color-picker > li .fa:hover { -webkit-transform: rotate(30deg); -ms-transform: rotate(30deg); -o-transform: rotate(30deg); transform: rotate(30deg) } #add-new-event { -webkit-transition: all linear .3s; -o-transition: all linear .3s; transition: all linear .3s } .external-event { padding: 5px 10px; font-weight: bold; margin-bottom: 4px; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); border-radius: 3px; cursor: move } .external-event:hover { box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.2) } .select2-container--default.select2-container--focus, .select2-selection.select2-container--focus, .select2-container--default:focus, .select2-selection:focus, .select2-container--default:active, .select2-selection:active { outline: none } .select2-container--default .select2-selection--single, .select2-selection .select2-selection--single { border: 1px solid #d2d6de; border-radius: 0; padding: 6px 12px; height: 34px } .select2-container--default.select2-container--open { border-color: #3c8dbc } .select2-dropdown { border: 1px solid #d2d6de; border-radius: 0 } .select2-container--default .select2-results__option--highlighted[aria-selected] { background-color: #3c8dbc; color: white } .select2-results__option { padding: 6px 12px; user-select: none; -webkit-user-select: none } .select2-container .select2-selection--single .select2-selection__rendered { padding-left: 0; padding-right: 0; height: auto; margin-top: -4px } .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered { padding-right: 6px; padding-left: 20px } .select2-container--default .select2-selection--single .select2-selection__arrow { height: 28px; right: 3px } .select2-container--default .select2-selection--single .select2-selection__arrow b { margin-top: 0 } .select2-dropdown .select2-search__field, .select2-search--inline .select2-search__field { border: 1px solid #d2d6de } .select2-dropdown .select2-search__field:focus, .select2-search--inline .select2-search__field:focus { outline: none; border: 1px solid #3c8dbc } .select2-container--default .select2-results__option[aria-disabled=true] { color: #999 } .select2-container--default .select2-results__option[aria-selected=true] { background-color: #ddd } .select2-container--default .select2-results__option[aria-selected=true], .select2-container--default .select2-results__option[aria-selected=true]:hover { color: #444 } .select2-container--default .select2-selection--multiple { border: 1px solid #d2d6de; border-radius: 0 } .select2-container--default .select2-selection--multiple:focus { border-color: #3c8dbc } .select2-container--default.select2-container--focus .select2-selection--multiple { border-color: #d2d6de } .select2-container--default .select2-selection--multiple .select2-selection__choice { background-color: #3c8dbc; border-color: #367fa9; padding: 1px 10px; color: #fff } .select2-container--default .select2-selection--multiple .select2-selection__choice__remove { margin-right: 5px; color: rgba(255, 255, 255, 0.7) } .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { color: #fff } .select2-container .select2-selection--single .select2-selection__rendered { padding-right: 10px } .pad { padding: 10px } .margin { margin: 10px } .margin-bottom { margin-bottom: 20px } .margin-bottom-none { margin-bottom: 0 } .margin-r-5 { margin-right: 5px } .inline { display: inline } .description-block { display: block; margin: 10px 0; text-align: center } .description-block.margin-bottom { margin-bottom: 25px } .description-block > .description-header { margin: 0; padding: 0; font-weight: 600; font-size: 16px } .description-block > .description-text { text-transform: uppercase } .bg-red, .bg-yellow, .bg-aqua, .bg-blue, .bg-light-blue, .bg-green, .bg-navy, .bg-teal, .bg-olive, .bg-lime, .bg-orange, .bg-fuchsia, .bg-purple, .bg-maroon, .bg-black, .bg-red-active, .bg-yellow-active, .bg-aqua-active, .bg-blue-active, .bg-light-blue-active, .bg-green-active, .bg-navy-active, .bg-teal-active, .bg-olive-active, .bg-lime-active, .bg-orange-active, .bg-fuchsia-active, .bg-purple-active, .bg-maroon-active, .bg-black-active, .callout.callout-danger, .callout.callout-warning, .callout.callout-info, .callout.callout-success, .alert-success, .alert-danger, .alert-error, .alert-warning, .alert-info, .label-danger, .label-info, .label-warning, .label-primary, .label-success, .modal-primary .modal-body, .modal-primary .modal-header, .modal-primary .modal-footer, .modal-warning .modal-body, .modal-warning .modal-header, .modal-warning .modal-footer, .modal-info .modal-body, .modal-info .modal-header, .modal-info .modal-footer, .modal-success .modal-body, .modal-success .modal-header, .modal-success .modal-footer, .modal-danger .modal-body, .modal-danger .modal-header, .modal-danger .modal-footer { color: #fff !important } .bg-gray { color: #000; background-color: #d2d6de !important } .bg-gray-light { background-color: #f7f7f7 } .bg-black { background-color: #111 !important } .bg-red, .callout.callout-danger, .alert-danger, .alert-error, .label-danger, .modal-danger .modal-body { background-color: #dd4b39 !important } .bg-yellow, .callout.callout-warning, .alert-warning, .label-warning, .modal-warning .modal-body { background-color: #f39c12 !important } .bg-aqua, .callout.callout-info, .alert-info, .label-info, .modal-info .modal-body { background-color: #00c0ef !important } .bg-blue { background-color: #0073b7 !important } .bg-light-blue, .label-primary, .modal-primary .modal-body { background-color: #3c8dbc !important } .bg-green, .callout.callout-success, .alert-success, .label-success, .modal-success .modal-body { background-color: #00a65a !important } .bg-navy { background-color: #001f3f !important } .bg-teal { background-color: #39cccc !important } .bg-olive { background-color: #3d9970 !important } .bg-lime { background-color: #01ff70 !important } .bg-orange { background-color: #ff851b !important } .bg-fuchsia { background-color: #f012be !important } .bg-purple { background-color: #605ca8 !important } .bg-maroon { background-color: #d81b60 !important } .bg-gray-active { color: #000; background-color: #b5bbc8 !important } .bg-black-active { background-color: #000 !important } .bg-red-active, .modal-danger .modal-header, .modal-danger .modal-footer { background-color: #d33724 !important } .bg-yellow-active, .modal-warning .modal-header, .modal-warning .modal-footer { background-color: #db8b0b !important } .bg-aqua-active, .modal-info .modal-header, .modal-info .modal-footer { background-color: #00a7d0 !important } .bg-blue-active { background-color: #005384 !important } .bg-light-blue-active, .modal-primary .modal-header, .modal-primary .modal-footer { background-color: #357ca5 !important } .bg-green-active, .modal-success .modal-header, .modal-success .modal-footer { background-color: #008d4c !important } .bg-navy-active { background-color: #001a35 !important } .bg-teal-active { background-color: #30bbbb !important } .bg-olive-active { background-color: #368763 !important } .bg-lime-active { background-color: #00e765 !important } .bg-orange-active { background-color: #ff7701 !important } .bg-fuchsia-active { background-color: #db0ead !important } .bg-purple-active { background-color: #555299 !important } .bg-maroon-active { background-color: #ca195a !important } [class^="bg-"].disabled { opacity: .65; filter: alpha(opacity=65) } .text-red { color: #dd4b39 !important } .text-yellow { color: #f39c12 !important } .text-aqua { color: #00c0ef !important } .text-blue { color: #0073b7 !important } .text-black { color: #111 !important } .text-light-blue { color: #3c8dbc !important } .text-green { color: #00a65a !important } .text-gray { color: #d2d6de !important } .text-navy { color: #001f3f !important } .text-teal { color: #39cccc !important } .text-olive { color: #3d9970 !important } .text-lime { color: #01ff70 !important } .text-orange { color: #ff851b !important } .text-fuchsia { color: #f012be !important } .text-purple { color: #605ca8 !important } .text-maroon { color: #d81b60 !important } .link-muted { color: #7a869d } .link-muted:hover, .link-muted:focus { color: #606c84 } .link-black { color: #666 } .link-black:hover, .link-black:focus { color: #999 } .hide { display: none !important } .no-border { border: 0 !important } .no-padding { padding: 0 !important } .no-margin { margin: 0 !important } .no-shadow { box-shadow: none !important } .list-unstyled, .chart-legend, .contacts-list, .users-list, .mailbox-attachments { list-style: none; margin: 0; padding: 0 } .list-group-unbordered > .list-group-item { border-left: 0; border-right: 0; border-radius: 0; padding-left: 0; padding-right: 0 } .flat { border-radius: 0 !important } .text-bold, .text-bold.table td, .text-bold.table th { font-weight: 700 } .text-sm { font-size: 12px } .jqstooltip { padding: 5px !important; width: auto !important; height: auto !important } .bg-teal-gradient { background: #39cccc !important; background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #39cccc), color-stop(1, #7adddd)) !important; background: -ms-linear-gradient(bottom, #39cccc, #7adddd) !important; background: -moz-linear-gradient(center bottom, #39cccc 0, #7adddd 100%) !important; background: -o-linear-gradient(#7adddd, #39cccc) !important; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0) !important; color: #fff } .bg-light-blue-gradient { background: #3c8dbc !important; background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #3c8dbc), color-stop(1, #67a8ce)) !important; background: -ms-linear-gradient(bottom, #3c8dbc, #67a8ce) !important; background: -moz-linear-gradient(center bottom, #3c8dbc 0, #67a8ce 100%) !important; background: -o-linear-gradient(#67a8ce, #3c8dbc) !important; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#67a8ce', endColorstr='#3c8dbc', GradientType=0) !important; color: #fff } .bg-blue-gradient { background: #0073b7 !important; background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #0073b7), color-stop(1, #0089db)) !important; background: -ms-linear-gradient(bottom, #0073b7, #0089db) !important; background: -moz-linear-gradient(center bottom, #0073b7 0, #0089db 100%) !important; background: -o-linear-gradient(#0089db, #0073b7) !important; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0089db', endColorstr='#0073b7', GradientType=0) !important; color: #fff } .bg-aqua-gradient { background: #00c0ef !important; background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00c0ef), color-stop(1, #14d1ff)) !important; background: -ms-linear-gradient(bottom, #00c0ef, #14d1ff) !important; background: -moz-linear-gradient(center bottom, #00c0ef 0, #14d1ff 100%) !important; background: -o-linear-gradient(#14d1ff, #00c0ef) !important; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#14d1ff', endColorstr='#00c0ef', GradientType=0) !important; color: #fff } .bg-yellow-gradient { background: #f39c12 !important; background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f39c12), color-stop(1, #f7bc60)) !important; background: -ms-linear-gradient(bottom, #f39c12, #f7bc60) !important; background: -moz-linear-gradient(center bottom, #f39c12 0, #f7bc60 100%) !important; background: -o-linear-gradient(#f7bc60, #f39c12) !important; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7bc60', endColorstr='#f39c12', GradientType=0) !important; color: #fff } .bg-purple-gradient { background: #605ca8 !important; background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #605ca8), color-stop(1, #9491c4)) !important; background: -ms-linear-gradient(bottom, #605ca8, #9491c4) !important; background: -moz-linear-gradient(center bottom, #605ca8 0, #9491c4 100%) !important; background: -o-linear-gradient(#9491c4, #605ca8) !important; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#9491c4', endColorstr='#605ca8', GradientType=0) !important; color: #fff } .bg-green-gradient { background: #00a65a !important; background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00a65a), color-stop(1, #00ca6d)) !important; background: -ms-linear-gradient(bottom, #00a65a, #00ca6d) !important; background: -moz-linear-gradient(center bottom, #00a65a 0, #00ca6d 100%) !important; background: -o-linear-gradient(#00ca6d, #00a65a) !important; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ca6d', endColorstr='#00a65a', GradientType=0) !important; color: #fff } .bg-red-gradient { background: #dd4b39 !important; background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #dd4b39), color-stop(1, #e47365)) !important; background: -ms-linear-gradient(bottom, #dd4b39, #e47365) !important; background: -moz-linear-gradient(center bottom, #dd4b39 0, #e47365 100%) !important; background: -o-linear-gradient(#e47365, #dd4b39) !important; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e47365', endColorstr='#dd4b39', GradientType=0) !important; color: #fff } .bg-black-gradient { background: #111 !important; background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #111), color-stop(1, #2b2b2b)) !important; background: -ms-linear-gradient(bottom, #111, #2b2b2b) !important; background: -moz-linear-gradient(center bottom, #111 0, #2b2b2b 100%) !important; background: -o-linear-gradient(#2b2b2b, #111) !important; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2b2b2b', endColorstr='#111111', GradientType=0) !important; color: #fff } .bg-maroon-gradient { background: #d81b60 !important; background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #d81b60), color-stop(1, #e73f7c)) !important; background: -ms-linear-gradient(bottom, #d81b60, #e73f7c) !important; background: -moz-linear-gradient(center bottom, #d81b60 0, #e73f7c 100%) !important; background: -o-linear-gradient(#e73f7c, #d81b60) !important; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e73f7c', endColorstr='#d81b60', GradientType=0) !important; color: #fff } .description-block .description-icon { font-size: 16px } .no-pad-top { padding-top: 0 } .position-static { position: static !important } .list-header { font-size: 15px; padding: 10px 4px; font-weight: bold; color: #666 } .list-seperator { height: 1px; background: #f4f4f4; margin: 15px 0 9px 0 } .list-link > a { padding: 4px; color: #777 } .list-link > a:hover { color: #222 } .font-light { font-weight: 300 } .user-block:before, .user-block:after { content: " "; display: table } .user-block:after { clear: both } .user-block img { width: 40px; height: 40px; float: left } .user-block .username, .user-block .description, .user-block .comment { display: block; margin-left: 50px } .user-block .username { font-size: 16px; font-weight: 600 } .user-block .description { color: #999; font-size: 13px } .user-block.user-block-sm .username, .user-block.user-block-sm .description, .user-block.user-block-sm .comment { margin-left: 40px } .user-block.user-block-sm .username { font-size: 14px } .img-sm, .img-md, .img-lg, .box-comments .box-comment img, .user-block.user-block-sm img { float: left } .img-sm, .box-comments .box-comment img, .user-block.user-block-sm img { width: 30px !important; height: 30px !important } .img-sm + .img-push { margin-left: 40px } .img-md { width: 60px; height: 60px } .img-md + .img-push { margin-left: 70px } .img-lg { width: 100px; height: 100px } .img-lg + .img-push { margin-left: 110px } .img-bordered { border: 3px solid #d2d6de; padding: 3px } .img-bordered-sm { border: 2px solid #d2d6de; padding: 2px } .attachment-block { border: 1px solid #f4f4f4; padding: 5px; margin-bottom: 10px; background: #f7f7f7 } .attachment-block .attachment-img { max-width: 100px; max-height: 100px; height: auto; float: left } .attachment-block .attachment-pushed { margin-left: 110px } .attachment-block .attachment-heading { margin: 0 } .attachment-block .attachment-text { color: #555 } .connectedSortable { min-height: 100px } .ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px } .sort-highlight { background: #f4f4f4; border: 1px dashed #ddd; margin-bottom: 10px } .full-opacity-hover { opacity: .65; filter: alpha(opacity=65) } .full-opacity-hover:hover { opacity: 1; filter: alpha(opacity=100) } .chart { position: relative; overflow: hidden; width: 100% } .chart svg, .chart canvas { width: 100% !important } @media print { .no-print, .main-sidebar, .left-side, .main-header, .content-header { display: none !important } .content-wrapper, .right-side, .main-footer { margin-left: 0 !important; min-height: 0 !important; -webkit-transform: translate(0, 0) !important; -ms-transform: translate(0, 0) !important; -o-transform: translate(0, 0) !important; transform: translate(0, 0) !important } .fixed .content-wrapper, .fixed .right-side { padding-top: 0 !important } .invoice { width: 100%; border: 0; margin: 0; padding: 0 } .invoice-col { float: left; width: 33.3333333% } .table-responsive { overflow: auto } .table-responsive > .table tr th, .table-responsive > .table tr td { white-space: normal !important } } /*new add*/ .common_footer { color: #eee; position: fixed; bottom: 0px; text-align: center; width: 100%; /*background: #444;*/ background: rgba(0, 0, 0, 0.3); padding: 10px; } #loading, #loading .lbk, #loading .lcont { width: 146px; height: 146px; } #loading { position: absolute; left: 50%; top: 60px; z-index: 99; display: none; } #loading .lbk { background-color: #000; opacity: .5; border-radius: 10px; margin: -73px 0 0 -73px; z-index: 0; } #loading .lbk, #loading .lcont { position: relative; } #loading, #loading .lbk, #loading .lcont { width: 146px; height: 146px; } #loading .lcont { margin: -146px 0 0 -73px; text-align: center; color: #f5f5f5; font-size: 14px; line-height: 35px; z-index: 1; } #loading img { width: 35px; height: 35px; margin: 30px auto; display: block; } img, fieldset { border: none; } #dialog-content .cover { width: 120px; height: 120px; position: absolute; background-size: cover; background: url('../img/choosed.png') no-repeat center center; display: none; margin-top: -120px; } .table-action a { margin-right: 12px; } .edit_pic_mask { text-align: center; position: relative; margin-top: -40px; height: 40px; font-size: 22px; padding-top: 6px; background-color: rgba(229, 229, 229, 0.3); } .edit_pic_mask i { margin-right: 12px; cursor: pointer; } .fileupload-new { margin-right: 12px; } .fileupload-new img { width: 200px; height: 150px; } /*skins*/ .skin-blue .main-header .navbar { background-color: #3c8dbc } .skin-blue .main-header .navbar .nav > li > a { color: #fff } .skin-blue .main-header .navbar .nav > li > a:hover, .skin-blue .main-header .navbar .nav > li > a:active, .skin-blue .main-header .navbar .nav > li > a:focus, .skin-blue .main-header .navbar .nav .open > a, .skin-blue .main-header .navbar .nav .open > a:hover, .skin-blue .main-header .navbar .nav .open > a:focus, .skin-blue .main-header .navbar .nav > .active > a { background: rgba(0, 0, 0, 0.1); color: #f6f6f6 } .skin-blue .main-header .navbar .sidebar-toggle { color: #fff } .skin-blue .main-header .navbar .sidebar-toggle:hover { color: #f6f6f6; background: rgba(0, 0, 0, 0.1) } .skin-blue .main-header .navbar .sidebar-toggle { color: #fff } .skin-blue .main-header .navbar .sidebar-toggle:hover { background-color: #367fa9 } @media (max-width: 767px) { .skin-blue .main-header .navbar .dropdown-menu li.divider { background-color: rgba(255, 255, 255, 0.1) } .skin-blue .main-header .navbar .dropdown-menu li a { color: #fff } .skin-blue .main-header .navbar .dropdown-menu li a:hover { background: #367fa9 } } .skin-blue .main-header .logo { background-color: #367fa9; color: #fff; border-bottom: 0 solid transparent } .skin-blue .main-header .logo:hover { background-color: #357ca5 } .skin-blue .main-header li.user-header { background-color: #3c8dbc } .skin-blue .content-header { background: transparent } .skin-blue .wrapper, .skin-blue .main-sidebar, .skin-blue .left-side { background-color: #222d32 } .skin-blue .user-panel > .info, .skin-blue .user-panel > .info > a { color: #fff } .skin-blue .sidebar-menu > li.header { color: #4b646f; background: #1a2226 } .skin-blue .sidebar-menu > li > a { border-left: 3px solid transparent } .skin-blue .sidebar-menu > li:hover > a, .skin-blue .sidebar-menu > li.active > a { color: #fff; background: #1e282c; border-left-color: #3c8dbc } .skin-blue .sidebar-menu > li > .treeview-menu { margin: 0 1px; background: #2c3b41 } .skin-blue .sidebar a { color: #b8c7ce } .skin-blue .sidebar a:hover { text-decoration: none } .skin-blue .treeview-menu > li > a { color: #8aa4af } .skin-blue .treeview-menu > li.active > a, .skin-blue .treeview-menu > li > a:hover { color: #fff } .skin-blue .sidebar-form { border-radius: 3px; border: 1px solid #374850; margin: 10px 10px } .skin-blue .sidebar-form input[type="text"], .skin-blue .sidebar-form .btn { box-shadow: none; background-color: #374850; border: 1px solid transparent; height: 35px; -webkit-transition: all .3s ease-in-out; -o-transition: all .3s ease-in-out; transition: all .3s ease-in-out } .skin-blue .sidebar-form input[type="text"] { color: #666; border-top-left-radius: 2px; border-top-right-radius: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 2px } .skin-blue .sidebar-form input[type="text"]:focus, .skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { background-color: #fff; color: #666 } .skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { border-left-color: #fff } .skin-blue .sidebar-form .btn { color: #999; border-top-left-radius: 0; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 0 } .skin-blue.layout-top-nav .main-header > .logo { background-color: #3c8dbc; color: #fff; border-bottom: 0 solid transparent } .skin-blue.layout-top-nav .main-header > .logo:hover { background-color: #3b8ab8 } .skin-blue-light .main-header .navbar { background-color: #3c8dbc } .skin-blue-light .main-header .navbar .nav > li > a { color: #fff } .skin-blue-light .main-header .navbar .nav > li > a:hover, .skin-blue-light .main-header .navbar .nav > li > a:active, .skin-blue-light .main-header .navbar .nav > li > a:focus, .skin-blue-light .main-header .navbar .nav .open > a, .skin-blue-light .main-header .navbar .nav .open > a:hover, .skin-blue-light .main-header .navbar .nav .open > a:focus, .skin-blue-light .main-header .navbar .nav > .active > a { background: rgba(0, 0, 0, 0.1); color: #f6f6f6 } .skin-blue-light .main-header .navbar .sidebar-toggle { color: #fff } .skin-blue-light .main-header .navbar .sidebar-toggle:hover { color: #f6f6f6; background: rgba(0, 0, 0, 0.1) } .skin-blue-light .main-header .navbar .sidebar-toggle { color: #fff } .skin-blue-light .main-header .navbar .sidebar-toggle:hover { background-color: #367fa9 } @media (max-width: 767px) { .skin-blue-light .main-header .navbar .dropdown-menu li.divider { background-color: rgba(255, 255, 255, 0.1) } .skin-blue-light .main-header .navbar .dropdown-menu li a { color: #fff } .skin-blue-light .main-header .navbar .dropdown-menu li a:hover { background: #367fa9 } } .skin-blue-light .main-header .logo { background-color: #3c8dbc; color: #fff; border-bottom: 0 solid transparent } .skin-blue-light .main-header .logo:hover { background-color: #3b8ab8 } .skin-blue-light .main-header li.user-header { background-color: #3c8dbc } .skin-blue-light .content-header { background: transparent } .skin-blue-light .wrapper, .skin-blue-light .main-sidebar, .skin-blue-light .left-side { background-color: #f9fafc } .skin-blue-light .content-wrapper, .skin-blue-light .main-footer { border-left: 1px solid #d2d6de } .skin-blue-light .user-panel > .info, .skin-blue-light .user-panel > .info > a { color: #444 } .skin-blue-light .sidebar-menu > li { -webkit-transition: border-left-color .3s ease; -o-transition: border-left-color .3s ease; transition: border-left-color .3s ease } .skin-blue-light .sidebar-menu > li.header { color: #848484; background: #f9fafc } .skin-blue-light .sidebar-menu > li > a { border-left: 3px solid transparent; font-weight: 600 } .skin-blue-light .sidebar-menu > li:hover > a, .skin-blue-light .sidebar-menu > li.active > a { color: #000; background: #f4f4f5 } .skin-blue-light .sidebar-menu > li.active { border-left-color: #3c8dbc } .skin-blue-light .sidebar-menu > li.active > a { font-weight: 600 } .skin-blue-light .sidebar-menu > li > .treeview-menu { background: #f4f4f5 } .skin-blue-light .sidebar a { color: #444 } .skin-blue-light .sidebar a:hover { text-decoration: none } .skin-blue-light .treeview-menu > li > a { color: #777 } .skin-blue-light .treeview-menu > li.active > a, .skin-blue-light .treeview-menu > li > a:hover { color: #000 } .skin-blue-light .treeview-menu > li.active > a { font-weight: 600 } .skin-blue-light .sidebar-form { border-radius: 3px; border: 1px solid #d2d6de; margin: 10px 10px } .skin-blue-light .sidebar-form input[type="text"], .skin-blue-light .sidebar-form .btn { box-shadow: none; background-color: #fff; border: 1px solid transparent; height: 35px; -webkit-transition: all .3s ease-in-out; -o-transition: all .3s ease-in-out; transition: all .3s ease-in-out } .skin-blue-light .sidebar-form input[type="text"] { color: #666; border-top-left-radius: 2px; border-top-right-radius: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 2px } .skin-blue-light .sidebar-form input[type="text"]:focus, .skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { background-color: #fff; color: #666 } .skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { border-left-color: #fff } .skin-blue-light .sidebar-form .btn { color: #999; border-top-left-radius: 0; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 0 } @media (min-width: 768px) { .skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { border-left: 1px solid #d2d6de } } .skin-blue-light .main-footer { border-top-color: #d2d6de } .skin-blue.layout-top-nav .main-header > .logo { background-color: #3c8dbc; color: #fff; border-bottom: 0 solid transparent } .skin-blue.layout-top-nav .main-header > .logo:hover { background-color: #3b8ab8 } .skin-black .main-header { -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05) } .skin-black .main-header .navbar-toggle { color: #333 } .skin-black .main-header .navbar-brand { color: #333; border-right: 1px solid #eee } .skin-black .main-header > .navbar { background-color: #fff } .skin-black .main-header > .navbar .nav > li > a { color: #333 } .skin-black .main-header > .navbar .nav > li > a:hover, .skin-black .main-header > .navbar .nav > li > a:active, .skin-black .main-header > .navbar .nav > li > a:focus, .skin-black .main-header > .navbar .nav .open > a, .skin-black .main-header > .navbar .nav .open > a:hover, .skin-black .main-header > .navbar .nav .open > a:focus, .skin-black .main-header > .navbar .nav > .active > a { background: #fff; color: #999 } .skin-black .main-header > .navbar .sidebar-toggle { color: #333 } .skin-black .main-header > .navbar .sidebar-toggle:hover { color: #999; background: #fff } .skin-black .main-header > .navbar > .sidebar-toggle { color: #333; border-right: 1px solid #eee } .skin-black .main-header > .navbar .navbar-nav > li > a { border-right: 1px solid #eee } .skin-black .main-header > .navbar .navbar-custom-menu .navbar-nav > li > a, .skin-black .main-header > .navbar .navbar-right > li > a { border-left: 1px solid #eee; border-right-width: 0 } .skin-black .main-header > .logo { background-color: #fff; color: #333; border-bottom: 0 solid transparent; border-right: 1px solid #eee } .skin-black .main-header > .logo:hover { background-color: #fcfcfc } @media (max-width: 767px) { .skin-black .main-header > .logo { background-color: #222; color: #fff; border-bottom: 0 solid transparent; border-right: none } .skin-black .main-header > .logo:hover { background-color: #1f1f1f } } .skin-black .main-header li.user-header { background-color: #222 } .skin-black .content-header { background: transparent; box-shadow: none } .skin-black .wrapper, .skin-black .main-sidebar, .skin-black .left-side { background-color: #222d32 } .skin-black .user-panel > .info, .skin-black .user-panel > .info > a { color: #fff } .skin-black .sidebar-menu > li.header { color: #4b646f; background: #1a2226 } .skin-black .sidebar-menu > li > a { border-left: 3px solid transparent } .skin-black .sidebar-menu > li:hover > a, .skin-black .sidebar-menu > li.active > a { color: #fff; background: #1e282c; border-left-color: #fff } .skin-black .sidebar-menu > li > .treeview-menu { margin: 0 1px; background: #2c3b41 } .skin-black .sidebar a { color: #b8c7ce } .skin-black .sidebar a:hover { text-decoration: none } .skin-black .treeview-menu > li > a { color: #8aa4af } .skin-black .treeview-menu > li.active > a, .skin-black .treeview-menu > li > a:hover { color: #fff } .skin-black .sidebar-form { border-radius: 3px; border: 1px solid #374850; margin: 10px 10px } .skin-black .sidebar-form input[type="text"], .skin-black .sidebar-form .btn { box-shadow: none; background-color: #374850; border: 1px solid transparent; height: 35px; -webkit-transition: all .3s ease-in-out; -o-transition: all .3s ease-in-out; transition: all .3s ease-in-out } .skin-black .sidebar-form input[type="text"] { color: #666; border-top-left-radius: 2px; border-top-right-radius: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 2px } .skin-black .sidebar-form input[type="text"]:focus, .skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { background-color: #fff; color: #666 } .skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { border-left-color: #fff } .skin-black .sidebar-form .btn { color: #999; border-top-left-radius: 0; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 0 } .skin-black-light .main-header { -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05) } .skin-black-light .main-header .navbar-toggle { color: #333 } .skin-black-light .main-header .navbar-brand { color: #333; border-right: 1px solid #eee } .skin-black-light .main-header > .navbar { background-color: #fff } .skin-black-light .main-header > .navbar .nav > li > a { color: #333 } .skin-black-light .main-header > .navbar .nav > li > a:hover, .skin-black-light .main-header > .navbar .nav > li > a:active, .skin-black-light .main-header > .navbar .nav > li > a:focus, .skin-black-light .main-header > .navbar .nav .open > a, .skin-black-light .main-header > .navbar .nav .open > a:hover, .skin-black-light .main-header > .navbar .nav .open > a:focus, .skin-black-light .main-header > .navbar .nav > .active > a { background: #fff; color: #999 } .skin-black-light .main-header > .navbar .sidebar-toggle { color: #333 } .skin-black-light .main-header > .navbar .sidebar-toggle:hover { color: #999; background: #fff } .skin-black-light .main-header > .navbar > .sidebar-toggle { color: #333; border-right: 1px solid #eee } .skin-black-light .main-header > .navbar .navbar-nav > li > a { border-right: 1px solid #eee } .skin-black-light .main-header > .navbar .navbar-custom-menu .navbar-nav > li > a, .skin-black-light .main-header > .navbar .navbar-right > li > a { border-left: 1px solid #eee; border-right-width: 0 } .skin-black-light .main-header > .logo { background-color: #fff; color: #333; border-bottom: 0 solid transparent; border-right: 1px solid #eee } .skin-black-light .main-header > .logo:hover { background-color: #fcfcfc } @media (max-width: 767px) { .skin-black-light .main-header > .logo { background-color: #222; color: #fff; border-bottom: 0 solid transparent; border-right: none } .skin-black-light .main-header > .logo:hover { background-color: #1f1f1f } } .skin-black-light .main-header li.user-header { background-color: #222 } .skin-black-light .content-header { background: transparent; box-shadow: none } .skin-black-light .wrapper, .skin-black-light .main-sidebar, .skin-black-light .left-side { background-color: #f9fafc } .skin-black-light .content-wrapper, .skin-black-light .main-footer { border-left: 1px solid #d2d6de } .skin-black-light .user-panel > .info, .skin-black-light .user-panel > .info > a { color: #444 } .skin-black-light .sidebar-menu > li { -webkit-transition: border-left-color .3s ease; -o-transition: border-left-color .3s ease; transition: border-left-color .3s ease } .skin-black-light .sidebar-menu > li.header { color: #848484; background: #f9fafc } .skin-black-light .sidebar-menu > li > a { border-left: 3px solid transparent; font-weight: 600 } .skin-black-light .sidebar-menu > li:hover > a, .skin-black-light .sidebar-menu > li.active > a { color: #000; background: #f4f4f5 } .skin-black-light .sidebar-menu > li.active { border-left-color: #fff } .skin-black-light .sidebar-menu > li.active > a { font-weight: 600 } .skin-black-light .sidebar-menu > li > .treeview-menu { background: #f4f4f5 } .skin-black-light .sidebar a { color: #444 } .skin-black-light .sidebar a:hover { text-decoration: none } .skin-black-light .treeview-menu > li > a { color: #777 } .skin-black-light .treeview-menu > li.active > a, .skin-black-light .treeview-menu > li > a:hover { color: #000 } .skin-black-light .treeview-menu > li.active > a { font-weight: 600 } .skin-black-light .sidebar-form { border-radius: 3px; border: 1px solid #d2d6de; margin: 10px 10px } .skin-black-light .sidebar-form input[type="text"], .skin-black-light .sidebar-form .btn { box-shadow: none; background-color: #fff; border: 1px solid transparent; height: 35px; -webkit-transition: all .3s ease-in-out; -o-transition: all .3s ease-in-out; transition: all .3s ease-in-out } .skin-black-light .sidebar-form input[type="text"] { color: #666; border-top-left-radius: 2px; border-top-right-radius: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 2px } .skin-black-light .sidebar-form input[type="text"]:focus, .skin-black-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { background-color: #fff; color: #666 } .skin-black-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { border-left-color: #fff } .skin-black-light .sidebar-form .btn { color: #999; border-top-left-radius: 0; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 0 } @media (min-width: 768px) { .skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { border-left: 1px solid #d2d6de } } .skin-green .main-header .navbar { background-color: #00a65a } .skin-green .main-header .navbar .nav > li > a { color: #fff } .skin-green .main-header .navbar .nav > li > a:hover, .skin-green .main-header .navbar .nav > li > a:active, .skin-green .main-header .navbar .nav > li > a:focus, .skin-green .main-header .navbar .nav .open > a, .skin-green .main-header .navbar .nav .open > a:hover, .skin-green .main-header .navbar .nav .open > a:focus, .skin-green .main-header .navbar .nav > .active > a { background: rgba(0, 0, 0, 0.1); color: #f6f6f6 } .skin-green .main-header .navbar .sidebar-toggle { color: #fff } .skin-green .main-header .navbar .sidebar-toggle:hover { color: #f6f6f6; background: rgba(0, 0, 0, 0.1) } .skin-green .main-header .navbar .sidebar-toggle { color: #fff } .skin-green .main-header .navbar .sidebar-toggle:hover { background-color: #008d4c } @media (max-width: 767px) { .skin-green .main-header .navbar .dropdown-menu li.divider { background-color: rgba(255, 255, 255, 0.1) } .skin-green .main-header .navbar .dropdown-menu li a { color: #fff } .skin-green .main-header .navbar .dropdown-menu li a:hover { background: #008d4c } } .skin-green .main-header .logo { background-color: #008d4c; color: #fff; border-bottom: 0 solid transparent } .skin-green .main-header .logo:hover { background-color: #008749 } .skin-green .main-header li.user-header { background-color: #00a65a } .skin-green .content-header { background: transparent } .skin-green .wrapper, .skin-green .main-sidebar, .skin-green .left-side { background-color: #222d32 } .skin-green .user-panel > .info, .skin-green .user-panel > .info > a { color: #fff } .skin-green .sidebar-menu > li.header { color: #4b646f; background: #1a2226 } .skin-green .sidebar-menu > li > a { border-left: 3px solid transparent } .skin-green .sidebar-menu > li:hover > a, .skin-green .sidebar-menu > li.active > a { color: #fff; background: #1e282c; border-left-color: #00a65a } .skin-green .sidebar-menu > li > .treeview-menu { margin: 0 1px; background: #2c3b41 } .skin-green .sidebar a { color: #b8c7ce } .skin-green .sidebar a:hover { text-decoration: none } .skin-green .treeview-menu > li > a { color: #8aa4af } .skin-green .treeview-menu > li.active > a, .skin-green .treeview-menu > li > a:hover { color: #fff } .skin-green .sidebar-form { border-radius: 3px; border: 1px solid #374850; margin: 10px 10px } .skin-green .sidebar-form input[type="text"], .skin-green .sidebar-form .btn { box-shadow: none; background-color: #374850; border: 1px solid transparent; height: 35px; -webkit-transition: all .3s ease-in-out; -o-transition: all .3s ease-in-out; transition: all .3s ease-in-out } .skin-green .sidebar-form input[type="text"] { color: #666; border-top-left-radius: 2px; border-top-right-radius: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 2px } .skin-green .sidebar-form input[type="text"]:focus, .skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { background-color: #fff; color: #666 } .skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { border-left-color: #fff } .skin-green .sidebar-form .btn { color: #999; border-top-left-radius: 0; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 0 } .skin-green-light .main-header .navbar { background-color: #00a65a } .skin-green-light .main-header .navbar .nav > li > a { color: #fff } .skin-green-light .main-header .navbar .nav > li > a:hover, .skin-green-light .main-header .navbar .nav > li > a:active, .skin-green-light .main-header .navbar .nav > li > a:focus, .skin-green-light .main-header .navbar .nav .open > a, .skin-green-light .main-header .navbar .nav .open > a:hover, .skin-green-light .main-header .navbar .nav .open > a:focus, .skin-green-light .main-header .navbar .nav > .active > a { background: rgba(0, 0, 0, 0.1); color: #f6f6f6 } .skin-green-light .main-header .navbar .sidebar-toggle { color: #fff } .skin-green-light .main-header .navbar .sidebar-toggle:hover { color: #f6f6f6; background: rgba(0, 0, 0, 0.1) } .skin-green-light .main-header .navbar .sidebar-toggle { color: #fff } .skin-green-light .main-header .navbar .sidebar-toggle:hover { background-color: #008d4c } @media (max-width: 767px) { .skin-green-light .main-header .navbar .dropdown-menu li.divider { background-color: rgba(255, 255, 255, 0.1) } .skin-green-light .main-header .navbar .dropdown-menu li a { color: #fff } .skin-green-light .main-header .navbar .dropdown-menu li a:hover { background: #008d4c } } .skin-green-light .main-header .logo { background-color: #00a65a; color: #fff; border-bottom: 0 solid transparent } .skin-green-light .main-header .logo:hover { background-color: #00a157 } .skin-green-light .main-header li.user-header { background-color: #00a65a } .skin-green-light .content-header { background: transparent } .skin-green-light .wrapper, .skin-green-light .main-sidebar, .skin-green-light .left-side { background-color: #f9fafc } .skin-green-light .content-wrapper, .skin-green-light .main-footer { border-left: 1px solid #d2d6de } .skin-green-light .user-panel > .info, .skin-green-light .user-panel > .info > a { color: #444 } .skin-green-light .sidebar-menu > li { -webkit-transition: border-left-color .3s ease; -o-transition: border-left-color .3s ease; transition: border-left-color .3s ease } .skin-green-light .sidebar-menu > li.header { color: #848484; background: #f9fafc } .skin-green-light .sidebar-menu > li > a { border-left: 3px solid transparent; font-weight: 600 } .skin-green-light .sidebar-menu > li:hover > a, .skin-green-light .sidebar-menu > li.active > a { color: #000; background: #f4f4f5 } .skin-green-light .sidebar-menu > li.active { border-left-color: #00a65a } .skin-green-light .sidebar-menu > li.active > a { font-weight: 600 } .skin-green-light .sidebar-menu > li > .treeview-menu { background: #f4f4f5 } .skin-green-light .sidebar a { color: #444 } .skin-green-light .sidebar a:hover { text-decoration: none } .skin-green-light .treeview-menu > li > a { color: #777 } .skin-green-light .treeview-menu > li.active > a, .skin-green-light .treeview-menu > li > a:hover { color: #000 } .skin-green-light .treeview-menu > li.active > a { font-weight: 600 } .skin-green-light .sidebar-form { border-radius: 3px; border: 1px solid #d2d6de; margin: 10px 10px } .skin-green-light .sidebar-form input[type="text"], .skin-green-light .sidebar-form .btn { box-shadow: none; background-color: #fff; border: 1px solid transparent; height: 35px; -webkit-transition: all .3s ease-in-out; -o-transition: all .3s ease-in-out; transition: all .3s ease-in-out } .skin-green-light .sidebar-form input[type="text"] { color: #666; border-top-left-radius: 2px; border-top-right-radius: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 2px } .skin-green-light .sidebar-form input[type="text"]:focus, .skin-green-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { background-color: #fff; color: #666 } .skin-green-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { border-left-color: #fff } .skin-green-light .sidebar-form .btn { color: #999; border-top-left-radius: 0; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 0 } @media (min-width: 768px) { .skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { border-left: 1px solid #d2d6de } } .skin-red .main-header .navbar { background-color: #dd4b39 } .skin-red .main-header .navbar .nav > li > a { color: #fff } .skin-red .main-header .navbar .nav > li > a:hover, .skin-red .main-header .navbar .nav > li > a:active, .skin-red .main-header .navbar .nav > li > a:focus, .skin-red .main-header .navbar .nav .open > a, .skin-red .main-header .navbar .nav .open > a:hover, .skin-red .main-header .navbar .nav .open > a:focus, .skin-red .main-header .navbar .nav > .active > a { background: rgba(0, 0, 0, 0.1); color: #f6f6f6 } .skin-red .main-header .navbar .sidebar-toggle { color: #fff } .skin-red .main-header .navbar .sidebar-toggle:hover { color: #f6f6f6; background: rgba(0, 0, 0, 0.1) } .skin-red .main-header .navbar .sidebar-toggle { color: #fff } .skin-red .main-header .navbar .sidebar-toggle:hover { background-color: #d73925 } @media (max-width: 767px) { .skin-red .main-header .navbar .dropdown-menu li.divider { background-color: rgba(255, 255, 255, 0.1) } .skin-red .main-header .navbar .dropdown-menu li a { color: #fff } .skin-red .main-header .navbar .dropdown-menu li a:hover { background: #d73925 } } .skin-red .main-header .logo { background-color: #d73925; color: #fff; border-bottom: 0 solid transparent } .skin-red .main-header .logo:hover { background-color: #d33724 } .skin-red .main-header li.user-header { background-color: #dd4b39 } .skin-red .content-header { background: transparent } .skin-red .wrapper, .skin-red .main-sidebar, .skin-red .left-side { background-color: #222d32 } .skin-red .user-panel > .info, .skin-red .user-panel > .info > a { color: #fff } .skin-red .sidebar-menu > li.header { color: #4b646f; background: #1a2226 } .skin-red .sidebar-menu > li > a { border-left: 3px solid transparent } .skin-red .sidebar-menu > li:hover > a, .skin-red .sidebar-menu > li.active > a { color: #fff; background: #1e282c; border-left-color: #dd4b39 } .skin-red .sidebar-menu > li > .treeview-menu { margin: 0 1px; background: #2c3b41 } .skin-red .sidebar a { color: #b8c7ce } .skin-red .sidebar a:hover { text-decoration: none } .skin-red .treeview-menu > li > a { color: #8aa4af } .skin-red .treeview-menu > li.active > a, .skin-red .treeview-menu > li > a:hover { color: #fff } .skin-red .sidebar-form { border-radius: 3px; border: 1px solid #374850; margin: 10px 10px } .skin-red .sidebar-form input[type="text"], .skin-red .sidebar-form .btn { box-shadow: none; background-color: #374850; border: 1px solid transparent; height: 35px; -webkit-transition: all .3s ease-in-out; -o-transition: all .3s ease-in-out; transition: all .3s ease-in-out } .skin-red .sidebar-form input[type="text"] { color: #666; border-top-left-radius: 2px; border-top-right-radius: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 2px } .skin-red .sidebar-form input[type="text"]:focus, .skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { background-color: #fff; color: #666 } .skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { border-left-color: #fff } .skin-red .sidebar-form .btn { color: #999; border-top-left-radius: 0; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 0 } .skin-red-light .main-header .navbar { /*background-color: #dd4b39;*/ /*box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);*/ } .skin-red-light .main-header .navbar .nav > li > a { color: #000 } .skin-red-light .main-header .navbar .nav > li > a:hover, .skin-red-light .main-header .navbar .nav > li > a:active, .skin-red-light .main-header .navbar .nav > li > a:focus, .skin-red-light .main-header .navbar .nav .open > a, .skin-red-light .main-header .navbar .nav .open > a:hover, .skin-red-light .main-header .navbar .nav .open > a:focus, .skin-red-light .main-header .navbar .nav > .active > a { background-color: #f8f8f8; /*color: #f6f6f6*/ } .skin-red-light .main-header .navbar .sidebar-toggle { color: #000 } /*.skin-red-light .main-header .navbar .sidebar-toggle:hover {*/ /*color: #f6f6f6;*/ /*background: rgba(0, 0, 0, 0.1)*/ /*}*/ /*.skin-red-light .main-header .navbar .sidebar-toggle {*/ /*color: #777*/ /*}*/ /*.skin-red-light .main-header .navbar .sidebar-toggle:hover {*/ /*background-color: #d73925*/ /*}*/ @media (max-width: 767px) { .skin-red-light .main-header .navbar .dropdown-menu li.divider { background-color: rgba(255, 255, 255, 0.1) } .skin-red-light .main-header .navbar .dropdown-menu li a { color: #fff } .skin-red-light .main-header .navbar .dropdown-menu li a:hover { background: #d73925 } } .skin-red-light .main-header .logo { background-color: #dd4b39; color: #fff; /*border-bottom: 0 solid transparent*/ } .skin-red-light .main-header .logo:hover { background-color: #dc4735 } .skin-red-light .main-header li.user-header { background-color: #dd4b39 } .skin-red-light .content-header { background: transparent } .skin-red-light .wrapper, .skin-red-light .main-sidebar, .skin-red-light .left-side { /*background-color: #ffffff;*/ /*box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);*/ } .skin-red-light .content-wrapper, .skin-red-light .main-footer { border-left: 1px solid #eeeeee; } .skin-red-light .user-panel > .info, .skin-red-light .user-panel > .info > a { color: #444 } .skin-red-light .sidebar-menu > li { -webkit-transition: border-left-color .3s ease; -o-transition: border-left-color .3s ease; transition: border-left-color .3s ease; /*border-top: 1px solid #FCFCFC;*/ } .skin-red-light .sidebar-menu > li.header { color: #848484; background: #f9fafc } .skin-red-light .sidebar-menu > li > a { border-left: 3px solid transparent; font-weight: 600 } .skin-red-light .sidebar-menu > li:hover > a, .skin-red-light .sidebar-menu > li.active > a { color: #000; background: #ffffff } .skin-red-light .sidebar-menu > li.active > a, .skin-red-light .sidebar-menu > li.active > a { color: #000; background: #ffffff } .skin-red-light .sidebar-menu > li.active { border-left-color: #dd4b39 } .skin-red-light .sidebar-menu > li.active > a { font-weight: 600 } .skin-red-light .sidebar-menu > li > .treeview-menu { background: #ffffff; border-top: 1px solid #eeeeee; padding: 10px; } .skin-red-light .sidebar-menu > li > .treeview-menu.menu-open { display: block; text-align: center; } .skin-red-light .sidebar-menu > li > .treeview-menu.menu-open > li.active { background-color: #f8f8f8; } /*.skin-red-light .sidebar-menu > li > .treeview-menu.menu-open > li.active > a {*/ /*color: #777;*/ /*}*/ /*.skin-red-light .sidebar-menu > li > .treeview-menu:before {*/ /*content: "";*/ /*display: block;*/ /*position: absolute;*/ /*z-index: 1;*/ /*left: 23px;*/ /*top: 44px;*/ /*bottom: 0px;*/ /*border-left: 1px solid #e2e2e2;*/ /*}*/ .skin-red-light .sidebar a { color: #CACACA; } .skin-red-light .sidebar a:hover { text-decoration: none } .skin-red-light .treeview-menu > li > a { color: #777 } /*.skin-red-light .treeview-menu > li > a:before {*/ /*content: "";*/ /*display: inline-block;*/ /*position: absolute;*/ /*width: 5px;*/ /*height: 5px;*/ /*left: 21px;*/ /*top: 12px;*/ /*background-color: #fff;*/ /*border: 1px solid #e2e2e2;*/ /*z-index: 2;*/ /*}*/ .skin-red-light .treeview-menu > li.active > a, .skin-red-light .treeview-menu > li > a:hover { color: #000 } .skin-red-light .treeview-menu > li.active > a { font-weight: 600; /*background-color: #f5f5f5;*/ color: #777; } .skin-red-light .sidebar-form { border-radius: 3px; border: 1px solid #d2d6de; margin: 10px 10px } .skin-red-light .sidebar-form input[type="text"], .skin-red-light .sidebar-form .btn { box-shadow: none; background-color: #fff; border: 1px solid transparent; height: 35px; -webkit-transition: all .3s ease-in-out; -o-transition: all .3s ease-in-out; transition: all .3s ease-in-out } .skin-red-light .sidebar-form input[type="text"] { color: #666; border-top-left-radius: 2px; border-top-right-radius: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 2px } .skin-red-light .sidebar-form input[type="text"]:focus, .skin-red-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { background-color: #fff; color: #666 } .skin-red-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { border-left-color: #fff } .skin-red-light .sidebar-form .btn { color: #999; border-top-left-radius: 0; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 0 } @media (min-width: 768px) { .skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { border-left: 1px solid #d2d6de } } .skin-yellow .main-header .navbar { background-color: #f39c12 } .skin-yellow .main-header .navbar .nav > li > a { color: #fff } .skin-yellow .main-header .navbar .nav > li > a:hover, .skin-yellow .main-header .navbar .nav > li > a:active, .skin-yellow .main-header .navbar .nav > li > a:focus, .skin-yellow .main-header .navbar .nav .open > a, .skin-yellow .main-header .navbar .nav .open > a:hover, .skin-yellow .main-header .navbar .nav .open > a:focus, .skin-yellow .main-header .navbar .nav > .active > a { background: rgba(0, 0, 0, 0.1); color: #f6f6f6 } .skin-yellow .main-header .navbar .sidebar-toggle { color: #fff } .skin-yellow .main-header .navbar .sidebar-toggle:hover { color: #f6f6f6; background: rgba(0, 0, 0, 0.1) } .skin-yellow .main-header .navbar .sidebar-toggle { color: #fff } .skin-yellow .main-header .navbar .sidebar-toggle:hover { background-color: #e08e0b } @media (max-width: 767px) { .skin-yellow .main-header .navbar .dropdown-menu li.divider { background-color: rgba(255, 255, 255, 0.1) } .skin-yellow .main-header .navbar .dropdown-menu li a { color: #fff } .skin-yellow .main-header .navbar .dropdown-menu li a:hover { background: #e08e0b } } .skin-yellow .main-header .logo { background-color: #e08e0b; color: #fff; border-bottom: 0 solid transparent } .skin-yellow .main-header .logo:hover { background-color: #db8b0b } .skin-yellow .main-header li.user-header { background-color: #f39c12 } .skin-yellow .content-header { background: transparent } .skin-yellow .wrapper, .skin-yellow .main-sidebar, .skin-yellow .left-side { background-color: #222d32 } .skin-yellow .user-panel > .info, .skin-yellow .user-panel > .info > a { color: #fff } .skin-yellow .sidebar-menu > li.header { color: #4b646f; background: #1a2226 } .skin-yellow .sidebar-menu > li > a { border-left: 3px solid transparent } .skin-yellow .sidebar-menu > li:hover > a, .skin-yellow .sidebar-menu > li.active > a { color: #fff; background: #1e282c; border-left-color: #f39c12 } .skin-yellow .sidebar-menu > li > .treeview-menu { margin: 0 1px; background: #2c3b41 } .skin-yellow .sidebar a { color: #b8c7ce } .skin-yellow .sidebar a:hover { text-decoration: none } .skin-yellow .treeview-menu > li > a { color: #8aa4af } .skin-yellow .treeview-menu > li.active > a, .skin-yellow .treeview-menu > li > a:hover { color: #fff } .skin-yellow .sidebar-form { border-radius: 3px; border: 1px solid #374850; margin: 10px 10px } .skin-yellow .sidebar-form input[type="text"], .skin-yellow .sidebar-form .btn { box-shadow: none; background-color: #374850; border: 1px solid transparent; height: 35px; -webkit-transition: all .3s ease-in-out; -o-transition: all .3s ease-in-out; transition: all .3s ease-in-out } .skin-yellow .sidebar-form input[type="text"] { color: #666; border-top-left-radius: 2px; border-top-right-radius: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 2px } .skin-yellow .sidebar-form input[type="text"]:focus, .skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { background-color: #fff; color: #666 } .skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { border-left-color: #fff } .skin-yellow .sidebar-form .btn { color: #999; border-top-left-radius: 0; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 0 } .skin-yellow-light .main-header .navbar { background-color: #f39c12 } .skin-yellow-light .main-header .navbar .nav > li > a { color: #fff } .skin-yellow-light .main-header .navbar .nav > li > a:hover, .skin-yellow-light .main-header .navbar .nav > li > a:active, .skin-yellow-light .main-header .navbar .nav > li > a:focus, .skin-yellow-light .main-header .navbar .nav .open > a, .skin-yellow-light .main-header .navbar .nav .open > a:hover, .skin-yellow-light .main-header .navbar .nav .open > a:focus, .skin-yellow-light .main-header .navbar .nav > .active > a { background: rgba(0, 0, 0, 0.1); color: #f6f6f6 } .skin-yellow-light .main-header .navbar .sidebar-toggle { color: #fff } .skin-yellow-light .main-header .navbar .sidebar-toggle:hover { color: #f6f6f6; background: rgba(0, 0, 0, 0.1) } .skin-yellow-light .main-header .navbar .sidebar-toggle { color: #fff } .skin-yellow-light .main-header .navbar .sidebar-toggle:hover { background-color: #e08e0b } @media (max-width: 767px) { .skin-yellow-light .main-header .navbar .dropdown-menu li.divider { background-color: rgba(255, 255, 255, 0.1) } .skin-yellow-light .main-header .navbar .dropdown-menu li a { color: #fff } .skin-yellow-light .main-header .navbar .dropdown-menu li a:hover { background: #e08e0b } } .skin-yellow-light .main-header .logo { background-color: #f39c12; color: #fff; border-bottom: 0 solid transparent } .skin-yellow-light .main-header .logo:hover { background-color: #f39a0d } .skin-yellow-light .main-header li.user-header { background-color: #f39c12 } .skin-yellow-light .content-header { background: transparent } .skin-yellow-light .wrapper, .skin-yellow-light .main-sidebar, .skin-yellow-light .left-side { background-color: #f9fafc } .skin-yellow-light .content-wrapper, .skin-yellow-light .main-footer { border-left: 1px solid #d2d6de } .skin-yellow-light .user-panel > .info, .skin-yellow-light .user-panel > .info > a { color: #444 } .skin-yellow-light .sidebar-menu > li { -webkit-transition: border-left-color .3s ease; -o-transition: border-left-color .3s ease; transition: border-left-color .3s ease } .skin-yellow-light .sidebar-menu > li.header { color: #848484; background: #f9fafc } .skin-yellow-light .sidebar-menu > li > a { border-left: 3px solid transparent; font-weight: 600 } .skin-yellow-light .sidebar-menu > li:hover > a, .skin-yellow-light .sidebar-menu > li.active > a { color: #000; background: #f4f4f5 } .skin-yellow-light .sidebar-menu > li.active { border-left-color: #f39c12 } .skin-yellow-light .sidebar-menu > li.active > a { font-weight: 600 } .skin-yellow-light .sidebar-menu > li > .treeview-menu { background: #f4f4f5 } .skin-yellow-light .sidebar a { color: #444 } .skin-yellow-light .sidebar a:hover { text-decoration: none } .skin-yellow-light .treeview-menu > li > a { color: #777 } .skin-yellow-light .treeview-menu > li.active > a, .skin-yellow-light .treeview-menu > li > a:hover { color: #000 } .skin-yellow-light .treeview-menu > li.active > a { font-weight: 600 } .skin-yellow-light .sidebar-form { border-radius: 3px; border: 1px solid #d2d6de; margin: 10px 10px } .skin-yellow-light .sidebar-form input[type="text"], .skin-yellow-light .sidebar-form .btn { box-shadow: none; background-color: #fff; border: 1px solid transparent; height: 35px; -webkit-transition: all .3s ease-in-out; -o-transition: all .3s ease-in-out; transition: all .3s ease-in-out } .skin-yellow-light .sidebar-form input[type="text"] { color: #666; border-top-left-radius: 2px; border-top-right-radius: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 2px } .skin-yellow-light .sidebar-form input[type="text"]:focus, .skin-yellow-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { background-color: #fff; color: #666 } .skin-yellow-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { border-left-color: #fff } .skin-yellow-light .sidebar-form .btn { color: #999; border-top-left-radius: 0; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 0 } @media (min-width: 768px) { .skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { border-left: 1px solid #d2d6de } } .skin-purple .main-header .navbar { background-color: #605ca8 } .skin-purple .main-header .navbar .nav > li > a { color: #fff } .skin-purple .main-header .navbar .nav > li > a:hover, .skin-purple .main-header .navbar .nav > li > a:active, .skin-purple .main-header .navbar .nav > li > a:focus, .skin-purple .main-header .navbar .nav .open > a, .skin-purple .main-header .navbar .nav .open > a:hover, .skin-purple .main-header .navbar .nav .open > a:focus, .skin-purple .main-header .navbar .nav > .active > a { background: rgba(0, 0, 0, 0.1); color: #f6f6f6 } .skin-purple .main-header .navbar .sidebar-toggle { color: #fff } .skin-purple .main-header .navbar .sidebar-toggle:hover { color: #f6f6f6; background: rgba(0, 0, 0, 0.1) } .skin-purple .main-header .navbar .sidebar-toggle { color: #fff } .skin-purple .main-header .navbar .sidebar-toggle:hover { background-color: #555299 } @media (max-width: 767px) { .skin-purple .main-header .navbar .dropdown-menu li.divider { background-color: rgba(255, 255, 255, 0.1) } .skin-purple .main-header .navbar .dropdown-menu li a { color: #fff } .skin-purple .main-header .navbar .dropdown-menu li a:hover { background: #555299 } } .skin-purple .main-header .logo { background-color: #555299; color: #fff; border-bottom: 0 solid transparent } .skin-purple .main-header .logo:hover { background-color: #545096 } .skin-purple .main-header li.user-header { background-color: #605ca8 } .skin-purple .content-header { background: transparent } .skin-purple .wrapper, .skin-purple .main-sidebar, .skin-purple .left-side { background-color: #222d32 } .skin-purple .user-panel > .info, .skin-purple .user-panel > .info > a { color: #fff } .skin-purple .sidebar-menu > li.header { color: #4b646f; background: #1a2226 } .skin-purple .sidebar-menu > li > a { border-left: 3px solid transparent } .skin-purple .sidebar-menu > li:hover > a, .skin-purple .sidebar-menu > li.active > a { color: #fff; background: #1e282c; border-left-color: #605ca8 } .skin-purple .sidebar-menu > li > .treeview-menu { margin: 0 1px; background: #2c3b41 } .skin-purple .sidebar a { color: #b8c7ce } .skin-purple .sidebar a:hover { text-decoration: none } .skin-purple .treeview-menu > li > a { color: #8aa4af } .skin-purple .treeview-menu > li.active > a, .skin-purple .treeview-menu > li > a:hover { color: #fff } .skin-purple .sidebar-form { border-radius: 3px; border: 1px solid #374850; margin: 10px 10px } .skin-purple .sidebar-form input[type="text"], .skin-purple .sidebar-form .btn { box-shadow: none; background-color: #374850; border: 1px solid transparent; height: 35px; -webkit-transition: all .3s ease-in-out; -o-transition: all .3s ease-in-out; transition: all .3s ease-in-out } .skin-purple .sidebar-form input[type="text"] { color: #666; border-top-left-radius: 2px; border-top-right-radius: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 2px } .skin-purple .sidebar-form input[type="text"]:focus, .skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { background-color: #fff; color: #666 } .skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { border-left-color: #fff } .skin-purple .sidebar-form .btn { color: #999; border-top-left-radius: 0; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 0 } .skin-purple-light .main-header .navbar { background-color: #605ca8 } .skin-purple-light .main-header .navbar .nav > li > a { color: #fff } .skin-purple-light .main-header .navbar .nav > li > a:hover, .skin-purple-light .main-header .navbar .nav > li > a:active, .skin-purple-light .main-header .navbar .nav > li > a:focus, .skin-purple-light .main-header .navbar .nav .open > a, .skin-purple-light .main-header .navbar .nav .open > a:hover, .skin-purple-light .main-header .navbar .nav .open > a:focus, .skin-purple-light .main-header .navbar .nav > .active > a { background: rgba(0, 0, 0, 0.1); color: #f6f6f6 } .skin-purple-light .main-header .navbar .sidebar-toggle { color: #fff } .skin-purple-light .main-header .navbar .sidebar-toggle:hover { color: #f6f6f6; background: rgba(0, 0, 0, 0.1) } .skin-purple-light .main-header .navbar .sidebar-toggle { color: #fff } .skin-purple-light .main-header .navbar .sidebar-toggle:hover { background-color: #555299 } @media (max-width: 767px) { .skin-purple-light .main-header .navbar .dropdown-menu li.divider { background-color: rgba(255, 255, 255, 0.1) } .skin-purple-light .main-header .navbar .dropdown-menu li a { color: #fff } .skin-purple-light .main-header .navbar .dropdown-menu li a:hover { background: #555299 } } .skin-purple-light .main-header .logo { background-color: #605ca8; color: #fff; border-bottom: 0 solid transparent } .skin-purple-light .main-header .logo:hover { background-color: #5d59a6 } .skin-purple-light .main-header li.user-header { background-color: #605ca8 } .skin-purple-light .content-header { background: transparent } .skin-purple-light .wrapper, .skin-purple-light .main-sidebar, .skin-purple-light .left-side { background-color: #f9fafc } .skin-purple-light .content-wrapper, .skin-purple-light .main-footer { border-left: 1px solid #d2d6de } .skin-purple-light .user-panel > .info, .skin-purple-light .user-panel > .info > a { color: #444 } .skin-purple-light .sidebar-menu > li { -webkit-transition: border-left-color .3s ease; -o-transition: border-left-color .3s ease; transition: border-left-color .3s ease } .skin-purple-light .sidebar-menu > li.header { color: #848484; background: #f9fafc } .skin-purple-light .sidebar-menu > li > a { border-left: 3px solid transparent; font-weight: 600 } .skin-purple-light .sidebar-menu > li:hover > a, .skin-purple-light .sidebar-menu > li.active > a { color: #000; background: #f4f4f5 } .skin-purple-light .sidebar-menu > li.active { border-left-color: #605ca8 } .skin-purple-light .sidebar-menu > li.active > a { font-weight: 600 } .skin-purple-light .sidebar-menu > li > .treeview-menu { background: #f4f4f5 } .skin-purple-light .sidebar a { color: #444 } .skin-purple-light .sidebar a:hover { text-decoration: none } .skin-purple-light .treeview-menu > li > a { color: #777 } .skin-purple-light .treeview-menu > li.active > a, .skin-purple-light .treeview-menu > li > a:hover { color: #000 } .skin-purple-light .treeview-menu > li.active > a { font-weight: 600 } .skin-purple-light .sidebar-form { border-radius: 3px; border: 1px solid #d2d6de; margin: 10px 10px } .skin-purple-light .sidebar-form input[type="text"], .skin-purple-light .sidebar-form .btn { box-shadow: none; background-color: #fff; border: 1px solid transparent; height: 35px; -webkit-transition: all .3s ease-in-out; -o-transition: all .3s ease-in-out; transition: all .3s ease-in-out } .skin-purple-light .sidebar-form input[type="text"] { color: #666; border-top-left-radius: 2px; border-top-right-radius: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 2px } .skin-purple-light .sidebar-form input[type="text"]:focus, .skin-purple-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { background-color: #fff; color: #666 } .skin-purple-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { border-left-color: #fff } .skin-purple-light .sidebar-form .btn { color: #999; border-top-left-radius: 0; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 0 } @media (min-width: 768px) { .skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { border-left: 1px solid #d2d6de } } ================================================ FILE: public/static/dist/js/app.js ================================================ /*! AdminLTE app.js * ================ * Main JS application file for AdminLTE v2. This file * should be included in all pages. It controls some layout * options and implements exclusive AdminLTE plugins. * * @Author Almsaeed Studio * @Support * @Email * @version 2.3.3 * @license MIT */ //Make sure jQuery has been loaded before app.js if (typeof jQuery === "undefined") { throw new Error("AdminLTE requires jQuery"); } /* AdminLTE * * @type Object * @description $.AdminLTE is the main object for the template's app. * It's used for implementing functions and options related * to the template. Keeping everything wrapped in an object * prevents conflict with other plugins and is a better * way to organize our code. */ $.AdminLTE = {}; /* -------------------- * - AdminLTE Options - * -------------------- * Modify these options to suit your implementation */ $.AdminLTE.options = { //Add slimscroll to navbar menus //This requires you to load the slimscroll plugin //in every page before app.js navbarMenuSlimscroll: true, navbarMenuSlimscrollWidth: "3px", //The width of the scroll bar navbarMenuHeight: "200px", //The height of the inner menu //General animation speed for JS animated elements such as box collapse/expand and //sidebar treeview slide up/down. This options accepts an integer as milliseconds, //'fast', 'normal', or 'slow' animationSpeed: 500, //Sidebar push menu toggle button selector sidebarToggleSelector: "[data-toggle='offcanvas']", //Activate sidebar push menu sidebarPushMenu: true, //Activate sidebar slimscroll if the fixed layout is set (requires SlimScroll Plugin) sidebarSlimScroll: true, //Enable sidebar expand on hover effect for sidebar mini //This option is forced to true if both the fixed layout and sidebar mini //are used together sidebarExpandOnHover: false, //BoxRefresh Plugin enableBoxRefresh: true, //Bootstrap.js tooltip enableBSToppltip: true, BSTooltipSelector: "[data-toggle='tooltip']", //Enable Fast Click. Fastclick.js creates a more //native touch experience with touch devices. If you //choose to enable the plugin, make sure you load the script //before AdminLTE's app.js enableFastclick: true, //Control Sidebar Options enableControlSidebar: true, controlSidebarOptions: { //Which button should trigger the open/close event toggleBtnSelector: "[data-toggle='control-sidebar']", //The sidebar selector selector: ".control-sidebar", //Enable slide over content slide: true }, //Box Widget Plugin. Enable this plugin //to allow boxes to be collapsed and/or removed enableBoxWidget: true, //Box Widget plugin options boxWidgetOptions: { boxWidgetIcons: { //Collapse icon collapse: 'fa-minus', //Open icon open: 'fa-plus', //Remove icon remove: 'fa-times' }, boxWidgetSelectors: { //Remove button selector remove: '[data-widget="remove"]', //Collapse button selector collapse: '[data-widget="collapse"]' } }, //Direct Chat plugin options directChat: { //Enable direct chat by default enable: true, //The button to open and close the chat contacts pane contactToggleSelector: '[data-widget="chat-pane-toggle"]' }, //Define the set of colors to use globally around the website colors: { lightBlue: "#3c8dbc", red: "#f56954", green: "#00a65a", aqua: "#00c0ef", yellow: "#f39c12", blue: "#0073b7", navy: "#001F3F", teal: "#39CCCC", olive: "#3D9970", lime: "#01FF70", orange: "#FF851B", fuchsia: "#F012BE", purple: "#8E24AA", maroon: "#D81B60", black: "#222222", gray: "#d2d6de" }, //The standard screen sizes that bootstrap uses. //If you change these in the variables.less file, change //them here too. screenSizes: { xs: 480, sm: 768, md: 992, lg: 1200 } }; /* ------------------ * - Implementation - * ------------------ * The next block of code implements AdminLTE's * functions and plugins as specified by the * options above. */ $(function () { "use strict"; //Fix for IE page transitions $("body").removeClass("hold-transition"); //Extend options if external options exist if (typeof AdminLTEOptions !== "undefined") { $.extend(true, $.AdminLTE.options, AdminLTEOptions); } //Easy access to options var o = $.AdminLTE.options; //Set up the object _init(); //Activate the layout maker $.AdminLTE.layout.activate(); // ----- sidebar-menu start //Enable sidebar tree view controls $.AdminLTE.tree('#sidebar-menu'); $(document).on('click', '#sidebar-menu-sub ul.treeview-menu.menu-open li', function (e) { $(this).parent().find("li").removeClass('active'); $(this).addClass('active'); // set menu title var title = $(this).find('a').html(); $('#sidebar-menu-title').html(title); }); var pathname = window.location.pathname + window.location.search; $.AdminLTE.treeInit(pathname); // ----- sidebar-menu end //Enable control sidebar if (o.enableControlSidebar) { $.AdminLTE.controlSidebar.activate(); } //Add slimscroll to navbar dropdown if (o.navbarMenuSlimscroll && typeof $.fn.slimscroll != 'undefined') { $(".navbar .menu").slimscroll({ height: o.navbarMenuHeight, alwaysVisible: false, size: o.navbarMenuSlimscrollWidth }).css("width", "100%"); } //Activate sidebar push menu if (o.sidebarPushMenu) { $.AdminLTE.pushMenu.activate(o.sidebarToggleSelector); } //Activate Bootstrap tooltip if (o.enableBSToppltip) { $('body').tooltip({ selector: o.BSTooltipSelector }); } //Activate box widget if (o.enableBoxWidget) { $.AdminLTE.boxWidget.activate(); } //Activate fast click if (o.enableFastclick && typeof FastClick != 'undefined') { FastClick.attach(document.body); } //Activate direct chat widget if (o.directChat.enable) { $(document).on('click', o.directChat.contactToggleSelector, function () { var box = $(this).parents('.direct-chat').first(); box.toggleClass('direct-chat-contacts-open'); }); } /* * INITIALIZE BUTTON TOGGLE * ------------------------ */ $('.btn-group[data-toggle="btn-toggle"]').each(function () { var group = $(this); $(this).find(".btn").on('click', function (e) { group.find(".btn.active").removeClass("active"); $(this).addClass("active"); e.preventDefault(); }); }); }); /* ---------------------------------- * - Initialize the AdminLTE Object - * ---------------------------------- * All AdminLTE functions are implemented below. */ function _init() { 'use strict'; /* Layout * ====== * Fixes the layout height in case min-height fails. * * @type Object * @usage $.AdminLTE.layout.activate() * $.AdminLTE.layout.fix() * $.AdminLTE.layout.fixSidebar() */ $.AdminLTE.layout = { activate: function () { var _this = this; _this.fix(); _this.fixSidebar(); $(window, ".wrapper").resize(function () { _this.fix(); _this.fixSidebar(); }); }, fix: function () { //Get window height and the wrapper height var neg = $('.main-header').outerHeight() + $('.main-footer').outerHeight(); var window_height = $(window).height(); var sidebar_height = $(".sidebar").height(); //Set the min-height of the content and sidebar based on the //the height of the document. if ($("body").hasClass("fixed")) { $(".content-wrapper, .right-side").css('min-height', window_height - $('.main-footer').outerHeight()); } else { var postSetWidth; if (window_height >= sidebar_height) { $(".content-wrapper, .right-side").css('min-height', window_height - neg); postSetWidth = window_height - neg; } else { $(".content-wrapper, .right-side").css('min-height', sidebar_height); postSetWidth = sidebar_height; } //Fix for the control sidebar height var controlSidebar = $($.AdminLTE.options.controlSidebarOptions.selector); if (typeof controlSidebar !== "undefined") { if (controlSidebar.height() > postSetWidth) $(".content-wrapper, .right-side").css('min-height', controlSidebar.height()); } } }, fixSidebar: function () { //Make sure the body tag has the .fixed class if (!$("body").hasClass("fixed")) { if (typeof $.fn.slimScroll != 'undefined') { $(".sidebar").slimScroll({destroy: true}).height("auto"); } return; } else if (typeof $.fn.slimScroll == 'undefined' && window.console) { window.console.error("Error: the fixed layout requires the slimscroll plugin!"); } //Enable slimscroll for fixed layout if ($.AdminLTE.options.sidebarSlimScroll) { if (typeof $.fn.slimScroll != 'undefined') { //Destroy if it exists $(".sidebar").slimScroll({destroy: true}).height("auto"); //Add slimscroll $(".sidebar").slimscroll({ height: ($(window).height() - $(".main-header").height()) + "px", color: "rgba(0,0,0,0.2)", size: "3px" }); } } } }; /* PushMenu() * ========== * Adds the push menu functionality to the sidebar. * * @type Function * @usage: $.AdminLTE.pushMenu("[data-toggle='offcanvas']") */ $.AdminLTE.pushMenu = { activate: function (toggleBtn) { //Get the screen sizes var screenSizes = $.AdminLTE.options.screenSizes; //Enable sidebar toggle $(document).on('click', toggleBtn, function (e) { e.preventDefault(); //Enable sidebar push menu if ($(window).width() > (screenSizes.sm - 1)) { if ($("body").hasClass('sidebar-collapse')) { $("body").removeClass('sidebar-collapse').trigger('expanded.pushMenu'); } else { $("body").addClass('sidebar-collapse').trigger('collapsed.pushMenu'); } } //Handle sidebar push menu for small screens else { if ($("body").hasClass('sidebar-open')) { $("body").removeClass('sidebar-open').removeClass('sidebar-collapse').trigger('collapsed.pushMenu'); } else { $("body").addClass('sidebar-open').trigger('expanded.pushMenu'); } } }); $(".content-wrapper").click(function () { //Enable hide menu when clicking on the content-wrapper on small screens if ($(window).width() <= (screenSizes.sm - 1) && $("body").hasClass("sidebar-open")) { $("body").removeClass('sidebar-open'); } }); //Enable expand on hover for sidebar mini if ($.AdminLTE.options.sidebarExpandOnHover || ($('body').hasClass('fixed') && $('body').hasClass('sidebar-mini'))) { this.expandOnHover(); } }, expandOnHover: function () { var _this = this; var screenWidth = $.AdminLTE.options.screenSizes.sm - 1; //Expand sidebar on hover $('.main-sidebar').hover(function () { if ($('body').hasClass('sidebar-mini') && $("body").hasClass('sidebar-collapse') && $(window).width() > screenWidth) { _this.expand(); } }, function () { if ($('body').hasClass('sidebar-mini') && $('body').hasClass('sidebar-expanded-on-hover') && $(window).width() > screenWidth) { _this.collapse(); } }); }, expand: function () { $("body").removeClass('sidebar-collapse').addClass('sidebar-expanded-on-hover'); }, collapse: function () { if ($('body').hasClass('sidebar-expanded-on-hover')) { $('body').removeClass('sidebar-expanded-on-hover').addClass('sidebar-collapse'); } } }; /* Tree() * ====== * Converts the sidebar into a multilevel * tree view menu. * * @type Function * @Usage: $.AdminLTE.tree('.sidebar') */ $.AdminLTE.tree = function (menu) { var _this = this; var animationSpeed = $.AdminLTE.options.animationSpeed; $(document).on('click', menu + ' li a', function (e) { //Get the clicked link and the next element var $this = $(this); var checkElement = $this.next(); //remove parent li active $this.parent("li").parent().find("li").removeClass("active"); $this.parent("li").addClass("active"); var parent = $this.parent("li").clone(); var parent_li = parent.addClass("active"); parent_li.find("ul").addClass("menu-open"); parent_li.find("i").remove(); $('#sidebar-menu-sub').html(parent_li); // click first children parent_li.find("ul li").first().find("a").click(); _this.layout.fix(); //if this isn't a link, prevent the page from being redirected if (checkElement.is('.treeview-menu')) { e.preventDefault(); } }); }; /** * 刷新浏览器导航菜单同步 * first render page init tree */ $.AdminLTE.treeInit = function (pathname) { var $this = $('#sidebar-menu').find('a[href^="' + pathname + '"]').parent().parent(); if ($this.length) { //remove parent li active $this.parent("li").parent().find("li").removeClass("active"); $this.parent("li").first().addClass("active"); var parent = $this.parent("li").first().clone(); var parent_li = parent.addClass("active"); parent_li.find("ul").addClass("menu-open"); parent_li.find("i").remove(); $('#sidebar-menu-sub').html(parent_li); parent_li.find('a[href^="' + pathname + '"]').parent().first().click() } else { var paths = pathname.split('/'); var _pathname = ''; if(pathname.indexOf("addons/execute") > 0){ _pathname = '/admin/addons/index.html'; }else{ for (var i = 0; i < paths.length - 1; i++) { if (!paths[i]) { continue; } _pathname += '/' + paths[i]; } } $.AdminLTE.treeInit(_pathname); } } /* ControlSidebar * ============== * Adds functionality to the right sidebar * * @type Object * @usage $.AdminLTE.controlSidebar.activate(options) */ $.AdminLTE.controlSidebar = { //instantiate the object activate: function () { //Get the object var _this = this; //Update options var o = $.AdminLTE.options.controlSidebarOptions; //Get the sidebar var sidebar = $(o.selector); //The toggle button var btn = $(o.toggleBtnSelector); //Listen to the click event btn.on('click', function (e) { e.preventDefault(); //If the sidebar is not open if (!sidebar.hasClass('control-sidebar-open') && !$('body').hasClass('control-sidebar-open')) { //Open the sidebar _this.open(sidebar, o.slide); } else { _this.close(sidebar, o.slide); } }); //If the body has a boxed layout, fix the sidebar bg position var bg = $(".control-sidebar-bg"); _this._fix(bg); //If the body has a fixed layout, make the control sidebar fixed if ($('body').hasClass('fixed')) { _this._fixForFixed(sidebar); } else { //If the content height is less than the sidebar's height, force max height if ($('.content-wrapper, .right-side').height() < sidebar.height()) { _this._fixForContent(sidebar); } } }, //Open the control sidebar open: function (sidebar, slide) { //Slide over content if (slide) { sidebar.addClass('control-sidebar-open'); } else { //Push the content by adding the open class to the body instead //of the sidebar itself $('body').addClass('control-sidebar-open'); } }, //Close the control sidebar close: function (sidebar, slide) { if (slide) { sidebar.removeClass('control-sidebar-open'); } else { $('body').removeClass('control-sidebar-open'); } }, _fix: function (sidebar) { var _this = this; if ($("body").hasClass('layout-boxed')) { sidebar.css('position', 'absolute'); sidebar.height($(".wrapper").height()); $(window).resize(function () { _this._fix(sidebar); }); } else { sidebar.css({ 'position': 'fixed', 'height': 'auto' }); } }, _fixForFixed: function (sidebar) { sidebar.css({ 'position': 'fixed', 'max-height': '100%', 'overflow': 'auto', 'padding-bottom': '50px' }); }, _fixForContent: function (sidebar) { $(".content-wrapper, .right-side").css('min-height', sidebar.height()); } }; /* BoxWidget * ========= * BoxWidget is a plugin to handle collapsing and * removing boxes from the screen. * * @type Object * @usage $.AdminLTE.boxWidget.activate() * Set all your options in the main $.AdminLTE.options object */ $.AdminLTE.boxWidget = { selectors: $.AdminLTE.options.boxWidgetOptions.boxWidgetSelectors, icons: $.AdminLTE.options.boxWidgetOptions.boxWidgetIcons, animationSpeed: $.AdminLTE.options.animationSpeed, activate: function (_box) { var _this = this; if (!_box) { _box = document; // activate all boxes per default } //Listen for collapse event triggers $(_box).on('click', _this.selectors.collapse, function (e) { e.preventDefault(); _this.collapse($(this)); }); //Listen for remove event triggers $(_box).on('click', _this.selectors.remove, function (e) { e.preventDefault(); _this.remove($(this)); }); }, collapse: function (element) { var _this = this; //Find the box parent var box = element.parents(".box").first(); //Find the body and the footer var box_content = box.find("> .box-body, > .box-footer, > form >.box-body, > form > .box-footer"); if (!box.hasClass("collapsed-box")) { //Convert minus into plus element.children(":first") .removeClass(_this.icons.collapse) .addClass(_this.icons.open); //Hide the content box_content.slideUp(_this.animationSpeed, function () { box.addClass("collapsed-box"); }); } else { //Convert plus into minus element.children(":first") .removeClass(_this.icons.open) .addClass(_this.icons.collapse); //Show the content box_content.slideDown(_this.animationSpeed, function () { box.removeClass("collapsed-box"); }); } }, remove: function (element) { //Find the box parent var box = element.parents(".box").first(); box.slideUp(this.animationSpeed); } }; } /* ------------------ * - Custom Plugins - * ------------------ * All custom plugins are defined below. */ /* * BOX REFRESH BUTTON * ------------------ * This is a custom plugin to use with the component BOX. It allows you to add * a refresh button to the box. It converts the box's state to a loading state. * * @type plugin * @usage $("#box-widget").boxRefresh( options ); */ (function ($) { "use strict"; $.fn.boxRefresh = function (options) { // Render options var settings = $.extend({ //Refresh button selector trigger: ".refresh-btn", //File source to be loaded (e.g: ajax/src.php) source: "", //Callbacks onLoadStart: function (box) { return box; }, //Right after the button has been clicked onLoadDone: function (box) { return box; } //When the source has been loaded }, options); //The overlay var overlay = $('
    '); return this.each(function () { //if a source is specified if (settings.source === "") { if (window.console) { window.console.log("Please specify a source first - boxRefresh()"); } return; } //the box var box = $(this); //the button var rBtn = box.find(settings.trigger).first(); //On trigger click rBtn.on('click', function (e) { e.preventDefault(); //Add loading overlay start(box); //Perform ajax call box.find(".box-body").load(settings.source, function () { done(box); }); }); }); function start(box) { //Add overlay and loading img box.append(overlay); settings.onLoadStart.call(box); } function done(box) { //Remove overlay and loading img box.find(overlay).remove(); settings.onLoadDone.call(box); } }; })(jQuery); /* * EXPLICIT BOX CONTROLS * ----------------------- * This is a custom plugin to use with the component BOX. It allows you to activate * a box inserted in the DOM after the app.js was loaded, toggle and remove box. * * @type plugin * @usage $("#box-widget").activateBox(); * @usage $("#box-widget").toggleBox(); * @usage $("#box-widget").removeBox(); */ (function ($) { 'use strict'; $.fn.activateBox = function () { $.AdminLTE.boxWidget.activate(this); }; $.fn.toggleBox = function () { var button = $($.AdminLTE.boxWidget.selectors.collapse, this); $.AdminLTE.boxWidget.collapse(button); }; $.fn.removeBox = function () { var button = $($.AdminLTE.boxWidget.selectors.remove, this); $.AdminLTE.boxWidget.remove(button); }; })(jQuery); /* * TODO LIST CUSTOM PLUGIN * ----------------------- * This plugin depends on iCheck plugin for checkbox and radio inputs * * @type plugin * @usage $("#todo-widget").todolist( options ); */ (function ($) { 'use strict'; $.fn.todolist = function (options) { // Render options var settings = $.extend({ //When the user checks the input onCheck: function (ele) { return ele; }, //When the user unchecks the input onUncheck: function (ele) { return ele; } }, options); return this.each(function () { if (typeof $.fn.iCheck != 'undefined') { $('input', this).on('ifChecked', function () { var ele = $(this).parents("li").first(); ele.toggleClass("done"); settings.onCheck.call(ele); }); $('input', this).on('ifUnchecked', function () { var ele = $(this).parents("li").first(); ele.toggleClass("done"); settings.onUncheck.call(ele); }); } else { $('input', this).on('change', function () { var ele = $(this).parents("li").first(); ele.toggleClass("done"); if ($('input', ele).is(":checked")) { settings.onCheck.call(ele); } else { settings.onUncheck.call(ele); } }); } }); }; }(jQuery)); ================================================ FILE: public/static/dist/js/wemall.js ================================================ /** * Created by heqing on 15/9/25. */ (function ($) { NProgress.configure({ template: '
    ' }); if ($.support.pjax) { $.pjax.defaults.timeout = 6000; $(document).pjax('a[target!=_blank][target!=_self]', '#pjax-container'); $(document).on('pjax:send', function () { NProgress.start(); }); $(document).on('pjax:complete', function () { NProgress.done(); }); $(document).on('pjax:timeout', function (event) { // Prevent default timeout redirection behavior event.preventDefault() }); $(document).on('pjax:beforeReplace', function (contents, options) { //处理服务器返回的json通知 if (options['0'].data != undefined) { options['0'].data = ''; } }); $(document).on('submit', 'form', function (event) { //隐藏返回值 $.pjax.submit(event, '#pjax-container', {push: false}); }); $(document).on('pjax:success', function (event, data, status, xhr) { //正则匹配JSON if (data.match("^\{(.+:.+,*){1,}\}$")) { var data = JSON.parse(data); if(data.code == 0 || status != 'success') { toastr.error(data.msg) }else{ toastr.success(data.msg); } if (data.url) { $.pjax({ url: data.url, container: '#pjax-container' }) } } }); } })(jQuery); function imageUploader(obj, more) { $.ajax({ type: "get", url: URL + "admin/file/index", data: {}, beforeSend: function (xhr) { xhr.setRequestHeader('x-pjax', 'true'); }, success: function (data) { bootbox.dialog({ message: data, title: "图片上传管理器", className: "modal-darkorange", buttons: { "确定": { className: "btn-success", callback: function () { $(obj).parent().parent().find('input').val(selectedImage.id); $(obj).parent().parent().find('img').attr('src', selectedImage.url); selectedImage = {}; if (more) { var moreObj = $('#albumsClone').children().first().clone(); moreObj.find('input').val(''); moreObj.find('img').attr('src', PUBLIC +'/static/dist/img/noimage.gif'); $('#albumsClone').append(moreObj); } } }, "取消": { className: "btn-default", callback: function () { } } } }); }, error: function (xhr) { toastr.error("通讯失败!请重试!"); } }); return false; } function removeImage(obj, more) { var parentObj = $(obj).parent().parent(); parentObj.find('input').val(''); parentObj.find('img').attr('src', PUBLIC +'/static/dist/img/noimage.gif'); var length = $('#albumsClone').find('.fileupload-new.img-thumbnail').length; if (more && length > 1) { parentObj.remove(); } } function tabPage(obj) { var pagUrl = $(obj).attr('href'); $.pjax({ url: pagUrl, container: '.bootbox .bootbox-body', push: false, }); event.preventDefault(); } var selectedImage = { id: 0, url: '', }; function selectImage(obj, id) { $('#dialog-content .cover').hide(); $(obj).next().show(); selectedImage.id = id; selectedImage.url = $(obj).attr('src'); } function cancelSelectImage(obj, id) { $(obj).hide(); selectedImage = {}; } function ajaxForm() { $('#myForm').ajaxSubmit(function (data) { toastr.info(data.msg); console.log(data); $.pjax({ url: data.url, container: '.bootbox .bootbox-body', push: false, }); }); } function checkAll() { //Enable check and uncheck all functionality $("table .check").prop("checked", function (index, oldValue) { return !oldValue; }); } function batchUrl(url, is_pajx) { var id = ""; $("table .check").each(function () { if ($(this).prop("checked")) { id += $(this).val() + ","; } }); id = id.substr(0, id.length - 1); if (id) { is_pajx = (typeof(is_pajx) == "undefined") ? true : false; if (is_pajx) { $.pjax({ url: url + '?id=' + id, container: '#pjax-container', push: false, }); } else { window.location.href = url + '?id=' + id; } } else { toastr.error("请先选择目标"); } } ================================================ FILE: public/static/layui/css/layui.css ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ .layui-btn, .layui-inline, img { vertical-align: middle } .layui-btn, .layui-unselect { -webkit-user-select: none; -ms-user-select: none; -moz-user-select: none } .layui-laypage a, a { text-decoration: none } .layui-btn, .layui-tree li i, .layui-unselect { -moz-user-select: none } .layui-form-select dl, .layui-nav-child { min-width: 100%; box-shadow: 0 2px 4px rgba(0, 0, 0, .12) } blockquote, body, button, dd, div, dl, dt, form, h1, h2, h3, h4, h5, h6, input, li, ol, p, pre, td, textarea, th, ul { margin: 0; padding: 0; -webkit-tap-highlight-color: rgba(0, 0, 0, 0) } a:active, a:hover { outline: 0 } img { display: inline-block; border: none } li { list-style: none } table { border-collapse: collapse; border-spacing: 0 } h1, h2, h3 { font-size: 14px; font-weight: 400 } h4, h5, h6 { font-size: 100%; font-weight: 400 } button, input, optgroup, option, select, textarea { font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; outline: 0 } pre { white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word } ::-webkit-scrollbar { width: 10px; height: 10px } ::-webkit-scrollbar-button:vertical { display: none } ::-webkit-scrollbar-corner, ::-webkit-scrollbar-track { background-color: #e2e2e2 } ::-webkit-scrollbar-thumb { border-radius: 0; background-color: rgba(0, 0, 0, .3) } ::-webkit-scrollbar-thumb:vertical:hover { background-color: rgba(0, 0, 0, .35) } ::-webkit-scrollbar-thumb:vertical:active { background-color: rgba(0, 0, 0, .38) } @font-face { font-family: layui-icon; src: url(../font/iconfont.eot); src: url(../font/iconfont.eot?#iefix) format('embedded-opentype'), url(../font/iconfont.woff) format('woff'), url(../font/iconfont.ttf) format('truetype'), url(../font/iconfont.svg#iconfont) format('svg') } .layui-icon { font-family: layui-icon!important; font-size: 16px; font-style: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale } body { line-height: 24px; font: 14px Helvetica Neue, Helvetica, PingFang SC, \5FAE\8F6F\96C5\9ED1, Tahoma, Arial, sans-serif } .layui-flow-more a cite, .layui-laypage em, .layui-tree li a cite, a cite { font-style: normal } hr { height: 1px; margin: 10px 0; border: 0; background-color: #e2e2e2; clear: both } a { color: #333 } a:hover { color: #777 } a cite { *cursor: pointer } .layui-box, .layui-box * { -webkit-box-sizing: content-box!important; -moz-box-sizing: content-box!important; box-sizing: content-box!important } .layui-border-box, .layui-border-box * { -webkit-box-sizing: border-box!important; -moz-box-sizing: border-box!important; box-sizing: border-box!important } .layui-clear { clear: both; *zoom: 1 } .layui-clear:after { content: '\20'; clear: both; *zoom: 1; display: block; height: 0 } .layui-inline { position: relative; display: inline-block; *display: inline; *zoom: 1 } .layui-edge { position: absolute; width: 0; height: 0; border-style: dashed; border-color: transparent; overflow: hidden } .layui-elip { text-overflow: ellipsis; overflow: hidden; white-space: nowrap } .layui-disabled, .layui-disabled:hover { color: #d2d2d2!important; cursor: not-allowed!important } .layui-circle { border-radius: 100% } .layui-show { display: block!important } .layui-hide { display: none!important } .layui-main { position: relative; width: 1140px; margin: 0 auto } .layui-header { position: relative; z-index: 1000; height: 65px } .layui-header a:hover { transition: all .5s; -webkit-transition: all .5s } .layui-side { position: fixed; top: 0; bottom: 0; z-index: 999; width: 200px; overflow-x: hidden } .layui-side-scroll { width: 220px; height: 100%; overflow-x: hidden } .layui-body { position: absolute; left: 200px; right: 0; top: 0; bottom: 0; z-index: 998; width: auto; overflow: hidden; overflow-y: auto; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box } .layui-layout-admin .layui-header { border-bottom: 5px solid #1AA094 } .layui-layout-admin .layui-side { top: 70px; width: 200px; overflow-x: hidden } .layui-layout-admin .layui-body { top: 70px; bottom: 44px } .layui-layout-admin .layui-main { width: auto; margin: 0 15px } .layui-layout-admin .layui-footer { position: fixed; left: 200px; right: 0; bottom: 0; height: 44px; background-color: #eee } .layui-btn, .layui-input, .layui-select, .layui-textarea, .layui-upload-button { outline: 0; -webkit-transition: border-color .3s cubic-bezier(.65, .05, .35, .5); transition: border-color .3s cubic-bezier(.65, .05, .35, .5); -webkit-box-sizing: border-box!important; -moz-box-sizing: border-box!important; box-sizing: border-box!important } .layui-elem-quote { margin-bottom: 10px; padding: 15px; line-height: 22px; border-left: 5px solid #009688; border-radius: 0 2px 2px 0; background-color: #f2f2f2 } .layui-quote-nm { border-color: #e2e2e2; border-style: solid; border-width: 1px 1px 1px 5px; background: 0 0 } .layui-elem-field { margin-bottom: 10px; padding: 0; border: 1px solid #e2e2e2 } .layui-elem-field legend { margin-left: 20px; padding: 0 10px; font-size: 20px; font-weight: 300 } .layui-field-title { margin: 10px 0 20px; border: none; border-top: 1px solid #e2e2e2 } .layui-field-box { padding: 10px 15px } .layui-field-title .layui-field-box { padding: 10px 0 } .layui-bg-black { background-color: #393D49; color: #c2c2c2 } .layui-bg-black a { color: #c2c2c2 } .layui-bg-black a:hover { color: #fff } .layui-bg-gray { background-color: #eee; color: #333 } .layui-bg-green { background-color: #009688; color: #D7EEE8 } .layui-bg-blue { background-color: #1E9FFF; color: #D7EEE8 } .layui-word-aux { font-size: 12px; color: #999; padding: 0 5px } .layui-btn { display: inline-block; height: 38px; line-height: 38px; padding: 0 18px; background-color: #009688; color: #fff; white-space: nowrap; text-align: center; border: none; border-radius: 2px; cursor: pointer; opacity: .9; filter: alpha(opacity=90) } .layui-btn:hover { opacity: .8; filter: alpha(opacity=80); color: #fff } .layui-btn:active { opacity: 1; filter: alpha(opacity=100) } .layui-btn+.layui-btn { margin-left: 10px } .layui-btn-radius { border-radius: 100px } .layui-btn .layui-icon { font-size: 18px; vertical-align: bottom } .layui-btn-primary { border: 1px solid #C9C9C9; background-color: #fff; color: #555 } .layui-btn-primary:hover { border-color: #009688; color: #333 } .layui-btn-normal { background-color: #1E9FFF } .layui-btn-warm { background-color: #F7B824 } .layui-btn-danger { background-color: #FF5722 } .layui-btn-disabled, .layui-btn-disabled:active, .layui-btn-disabled:hover { border: 1px solid #e6e6e6; background-color: #FBFBFB; color: #C9C9C9; cursor: not-allowed; opacity: 1 } .layui-btn-big { height: 44px; line-height: 44px; padding: 0 25px; font-size: 16px } .layui-btn-small { height: 30px; line-height: 30px; padding: 0 10px; font-size: 12px } .layui-btn-small i { font-size: 16px!important } .layui-btn-mini { height: 22px; line-height: 22px; padding: 0 5px; font-size: 12px } .layui-btn-mini i { font-size: 14px!important } .layui-input, .layui-select, .layui-textarea { height: 38px; line-height: 38px; line-height: 36px\9; border: 1px solid #e6e6e6; background-color: #fff; border-radius: 2px } .layui-form-label, .layui-form-mid, .layui-textarea { line-height: 20px; position: relative } .layui-input, .layui-textarea { display: block; width: 100%; padding-left: 10px } .layui-input:hover, .layui-textarea:hover { border-color: #D2D2D2!important } .layui-input:focus, .layui-textarea:focus { border-color: #C9C9C9!important } .layui-textarea { min-height: 100px; height: auto; padding: 6px 10px; resize: vertical } .layui-select { padding: 0 10px } .layui-form input[type=checkbox], .layui-form input[type=radio], .layui-form select { display: none } .layui-form-item { margin-bottom: 15px; clear: both; *zoom: 1 } .layui-form-item:after { content: '\20'; clear: both; *zoom: 1; display: block; height: 0 } .layui-form-label { float: left; display: block; padding: 9px 15px; width: 80px; font-weight: 400; text-align: right } .layui-form-item .layui-inline { margin-bottom: 5px; margin-right: 10px } .layui-input-block, .layui-input-inline { position: relative } .layui-input-block { margin-left: 110px; min-height: 36px } .layui-input-inline { display: inline-block; vertical-align: middle } .layui-form-item .layui-input-inline { float: left; width: 190px; margin-right: 10px } .layui-form-text .layui-input-inline { width: auto } .layui-form-mid { float: left; display: block; padding: 8px 0; margin-right: 10px } .layui-form-danger+.layui-form-select .layui-input, .layui-form-danger:focus { border: 1px solid #FF5722!important } .layui-form-select { position: relative } .layui-form-select .layui-input { padding-right: 30px; cursor: pointer } .layui-form-select .layui-edge { position: absolute; right: 10px; top: 50%; margin-top: -3px; cursor: pointer; border-width: 6px; border-top-color: #c2c2c2; border-top-style: solid; transition: all .3s; -webkit-transition: all .3s } .layui-form-checkbox, .layui-form-switch { -webkit-transition: .1s linear; cursor: pointer } .layui-form-select dl { display: none; position: absolute; left: 0; top: 42px; padding: 5px 0; z-index: 999; border: 1px solid #d2d2d2; max-height: 300px; overflow-y: auto; background-color: #fff; border-radius: 2px; box-sizing: border-box } .layui-form-select dl dd, .layui-form-select dl dt { padding: 0 10px; line-height: 36px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis } .layui-form-select dl dt { font-size: 12px; color: #999 } .layui-form-select dl dd { cursor: pointer } .layui-form-select dl dd:hover { background-color: #f2f2f2 } .layui-form-select .layui-select-group dd { padding-left: 20px } .layui-form-select dl dd.layui-this { background-color: #5FB878; color: #fff } .layui-form-checkbox, .layui-form-select dl dd.layui-disabled { background-color: #fff } .layui-form-selected dl { display: block } .layui-form-checkbox, .layui-form-checkbox *, .layui-form-radio, .layui-form-radio *, .layui-form-switch { display: inline-block; vertical-align: middle } .layui-form-selected .layui-edge { margin-top: -9px; -webkit-transform: rotate(180deg); transform: rotate(180deg); margin-top: -3px\9 } :root .layui-form-selected .layui-edge { margin-top: -9px\0/IE9 } .layui-select-disabled .layui-disabled { border-color: #eee!important } .layui-select-disabled .layui-edge { border-top-color: #d2d2d2 } .layui-form-checkbox { position: relative; height: 30px; line-height: 28px; margin: 4px 10px 0 0; padding-right: 30px; border: 1px solid #d2d2d2; font-size: 0; border-radius: 2px; transition: .1s linear; box-sizing: border-box!important } .layui-form-checkbox:hover { border: 1px solid #c2c2c2 } .layui-form-checkbox span { padding: 0 10px; font-size: 14px; background-color: #d2d2d2; color: #fff; overflow: hidden; white-space: nowrap; text-overflow: ellipsis } .layui-form-checkbox:hover span { background-color: #c2c2c2 } .layui-form-checkbox i { position: absolute; right: 0; width: 37px; color: #fff; font-size: 20px } .layui-form-checkbox:hover i { color: #c2c2c2 } .layui-form-checked, .layui-form-checked:hover { border: 1px solid #5FB878 } .layui-form-checked span, .layui-form-checked:hover span { background-color: #5FB878 } .layui-form-checked i, .layui-form-checked:hover i { color: #5FB878 } .layui-form-switch { position: relative; height: 24px; line-height: 22px; width: 50px; padding: 0 5px; margin-top: 8px; border: 1px solid #d2d2d2; border-radius: 20px; background-color: #fff; transition: .1s linear } .layui-form-switch i { position: absolute; left: 5px; top: 3px; width: 16px; height: 16px; border-radius: 20px; background-color: #d2d2d2; -webkit-transition: .1s linear; transition: .1s linear } .layui-form-onswitch { border-color: #5FB878; background-color: #5FB878 } .layui-form-onswitch:before { content: 'ON'; color: #fff } .layui-form-onswitch i { left: 30px; background-color: #fff } .layui-checkbox-disbaled { border-color: #e2e2e2!important } .layui-checkbox-disbaled span { background-color: #e2e2e2!important } .layui-checkbox-disbaled:hover i { color: #fff!important } .layui-form-radio { line-height: 28px; margin: 6px 10px 0 0; padding-right: 10px; cursor: pointer; font-size: 0 } .layui-form-radio i { margin-right: 8px; font-size: 22px; color: #c2c2c2 } .layui-form-radio span { font-size: 14px } .layui-form-radio i:hover, .layui-form-radioed i { color: #5FB878 } .layui-radio-disbaled i { color: #e2e2e2!important } .layui-form-pane .layui-form-label { width: 80px; padding: 8px 15px; line-height: 20px; border: 1px solid #e6e6e6; border-radius: 2px 0 0 2px; text-align: center; background-color: #FBFBFB; overflow: hidden; white-space: nowrap; text-overflow: ellipsis } .layui-form-pane .layui-input-inline { margin-left: -1px } .layui-form-pane .layui-input-block { margin-left: 112px; left: -1px } .layui-form-pane .layui-input { border-radius: 0 2px 2px 0 } .layui-form-pane .layui-form-text .layui-form-label { float: none; width: 100%; border-right: 1px solid #e6e6e6; border-radius: 2px; box-sizing: border-box!important; text-align: left } .layui-laypage button, .layui-laypage input, .layui-nav { -webkit-box-sizing: border-box!important; -moz-box-sizing: border-box!important } .layui-form-pane .layui-form-text .layui-input-inline { display: block; margin: 0; top: -1px; clear: both } .layui-form-pane .layui-form-text .layui-input-block { margin: 0; left: 0; top: -1px } .layui-form-pane .layui-form-text .layui-textarea { min-height: 100px; border-radius: 0 0 2px 2px } .layui-form-pane .layui-input:hover, .layui-form-pane .layui-textarea:hover { border-color: #e6e6e6!important } .layui-form-pane .layui-input:focus, .layui-form-pane .layui-textarea:focus { border-color: #e6e6e6!important } .layui-form-pane .layui-form-checkbox { margin: 0 0 10px 10px } .layui-form-pane .layui-form-radio, .layui-form-pane .layui-form-switch { margin-left: 10px } .layui-layedit { border: 1px solid #d2d2d2; border-radius: 2px } .layui-layedit-tool { padding: 3px 5px; border-bottom: 1px solid #e2e2e2; font-size: 0 } .layedit-tool-fixed { position: fixed; top: 0; border-top: 1px solid #e2e2e2 } .layui-layedit-tool .layedit-tool-mid, .layui-layedit-tool .layui-icon { display: inline-block; vertical-align: middle; text-align: center; font-size: 14px } .layui-layedit-tool .layui-icon { position: relative; width: 32px; height: 30px; line-height: 30px; margin: 3px 5px; color: #777; cursor: pointer; border-radius: 2px } .layui-layedit-tool .layui-icon:hover { color: #393D49 } .layui-layedit-tool .layui-icon:active { color: #000 } .layui-layedit-tool .layedit-tool-active { background-color: #e2e2e2; color: #000 } .layui-layedit-tool .layui-disabled, .layui-layedit-tool .layui-disabled:hover { color: #d2d2d2; cursor: not-allowed } .layui-layedit-tool .layedit-tool-mid { width: 1px; height: 18px; margin: 0 10px; background-color: #d2d2d2 } .layedit-tool-html { width: 50px!important; font-size: 30px!important } .layedit-tool-b, .layedit-tool-code, .layedit-tool-help { font-size: 16px!important } .layedit-tool-d, .layedit-tool-face, .layedit-tool-image, .layedit-tool-unlink { font-size: 18px!important } .layedit-tool-image input { position: absolute; font-size: 0; left: 0; top: 0; width: 100%; height: 100%; opacity: .01; filter: Alpha(opacity=1); cursor: pointer } .layui-layedit-iframe iframe { display: block; width: 100% } #LAY_layedit_code { overflow: hidden } .layui-table { width: 100%; margin: 10px 0; background-color: #fff } .layui-table tr { transition: all .3s; -webkit-transition: all .3s } .layui-table thead tr { background-color: #f2f2f2 } .layui-table th { text-align: left } .layui-table td, .layui-table th { padding: 9px 15px; min-height: 20px; line-height: 20px; border: 1px solid #e2e2e2; font-size: 14px } .layui-table tr:hover, .layui-table[lay-even] tr:nth-child(even) { background-color: #f8f8f8 } .layui-table[lay-skin=line], .layui-table[lay-skin=row] { border: 1px solid #e2e2e2 } .layui-table[lay-skin=line] td, .layui-table[lay-skin=line] th { border: none; border-bottom: 1px solid #e2e2e2 } .layui-table[lay-skin=row] td, .layui-table[lay-skin=row] th { border: none; border-right: 1px solid #e2e2e2 } .layui-table[lay-skin=nob] td, .layui-table[lay-skin=nob] th { border: none } .layui-upload-button { position: relative; display: inline-block; vertical-align: middle; min-width: 60px; height: 38px; line-height: 38px; border: 1px solid #DFDFDF; border-radius: 2px; overflow: hidden; background-color: #fff; color: #666 } .layui-upload-button:hover { border: 1px solid #aaa; color: #333 } .layui-upload-button:active { border: 1px solid #4CAF50; color: #000 } .layui-upload-button input, .layui-upload-file { opacity: .01; filter: Alpha(opacity=1); cursor: pointer } .layui-upload-button input { position: absolute; left: 0; top: 0; z-index: 10; font-size: 100px; width: 100%; height: 100% } .layui-upload-icon { display: block; margin: 0 15px; text-align: center } .layui-upload-icon i { margin-right: 5px; vertical-align: top; font-size: 20px; color: #5FB878 } .layui-upload-iframe { position: absolute; width: 0; height: 0; border: 0; visibility: hidden } .layui-upload-enter { border: 1px solid #009E94; background-color: #009E94; color: #fff; -webkit-transform: scale(1.1); transform: scale(1.1) } .layui-upload-enter .layui-upload-icon, .layui-upload-enter .layui-upload-icon i { color: #fff } .layui-flow-more { margin: 10px 0; text-align: center; color: #999; font-size: 14px } .layui-flow-more a { height: 32px; line-height: 32px } .layui-flow-more a * { display: inline-block; vertical-align: top } .layui-flow-more a cite { padding: 0 20px; border-radius: 3px; background-color: #eee; color: #333 } .layui-flow-more a cite:hover { opacity: .8 } .layui-flow-more a i { font-size: 30px; color: #737383 } .layui-laypage { display: inline-block; *display: inline; *zoom: 1; vertical-align: middle; margin: 10px 0; font-size: 0 } .layui-laypage>:first-child, .layui-laypage>:first-child em { border-radius: 2px 0 0 2px } .layui-laypage>:last-child, .layui-laypage>:last-child em { border-radius: 0 2px 2px 0 } .layui-laypage a, .layui-laypage span { display: inline-block; *display: inline; *zoom: 1; vertical-align: middle; padding: 0 15px; border: 1px solid #e2e2e2; height: 28px; line-height: 28px; margin: 0 -1px 5px 0; background-color: #fff; color: #333; font-size: 12px } .layui-laypage span { color: #999; font-weight: 700 } .layui-laypage .layui-laypage-curr { position: relative } .layui-laypage .layui-laypage-curr em { position: relative; color: #fff; font-weight: 400 } .layui-laypage .layui-laypage-curr .layui-laypage-em { position: absolute; left: -1px; top: -1px; padding: 1px; width: 100%; height: 100%; background-color: #009688 } .layui-laypage-em { border-radius: 2px } .layui-laypage-next em, .layui-laypage-prev em { font-family: Sim sun; font-size: 16px } .layui-laypage .layui-laypage-total { height: 30px; line-height: 30px; margin-left: 1px; border: none; font-weight: 400 } .layui-laypage button, .layui-laypage input { height: 30px; line-height: 30px; border: 1px solid #e2e2e2; border-radius: 2px; vertical-align: top; background-color: #fff; box-sizing: border-box!important } .layui-laypage input { width: 50px; margin: 0 5px; text-align: center } .layui-laypage button { margin-left: 5px; padding: 0 15px; cursor: pointer } .layui-code { position: relative; margin: 10px 0; padding: 15px; line-height: 20px; border: 1px solid #ddd; border-left-width: 6px; background-color: #F2F2F2; color: #333; font-family: Courier New; font-size: 12px } .layui-tree { line-height: 26px } .layui-tree li { text-overflow: ellipsis; overflow: hidden; white-space: nowrap } .layui-tree li .layui-tree-spread, .layui-tree li a { display: inline-block; vertical-align: top; height: 26px; *display: inline; *zoom: 1; cursor: pointer } .layui-tree li a { font-size: 0 } .layui-tree li a i { font-size: 16px } .layui-tree li a cite { padding: 0 6px; font-size: 14px } .layui-tree li i { padding-left: 6px; color: #333 } .layui-tree li .layui-tree-check { font-size: 13px } .layui-tree li .layui-tree-check:hover { color: #009E94 } .layui-tree li ul { display: none; margin-left: 20px } .layui-tree li .layui-tree-enter { line-height: 24px; border: 1px dotted #000 } .layui-tree-drag { display: none; position: absolute; left: -666px; top: -666px; background-color: #f2f2f2; padding: 5px 10px; border: 1px dotted #000; white-space: nowrap } .layui-nav .layui-nav-item, .layui-tab-title li { display: inline-block; *zoom: 1; vertical-align: middle } .layui-tree-drag i { padding-right: 5px } .layui-nav { position: relative; padding: 0 20px; background-color: #393D49; color: #c2c2c2; border-radius: 2px; font-size: 0; box-sizing: border-box!important } .layui-nav * { font-size: 14px } .layui-nav .layui-nav-item { position: relative; *display: inline; line-height: 60px } .layui-nav .layui-nav-item a { display: block; padding: 0 20px; color: #c2c2c2; transition: all .3s; -webkit-transition: all .3s } .layui-nav .layui-this:after, .layui-nav-bar, .layui-nav-tree .layui-nav-itemed:after { position: absolute; left: 0; top: 0; width: 0; height: 5px; background-color: #5FB878; transition: all .2s; -webkit-transition: all .2s } .layui-nav-bar { z-index: 1000 } .layui-nav .layui-nav-item a:hover, .layui-nav .layui-this a { color: #fff } .layui-nav .layui-this:after { content: ''; top: auto; bottom: 0; width: 100% } .layui-nav .layui-nav-more { content: ''; width: 0; height: 0; border-style: solid dashed dashed; border-color: #c2c2c2 transparent transparent; overflow: hidden; cursor: pointer; transition: all .2s; -webkit-transition: all .2s; position: absolute; top: 28px; right: 3px; border-width: 6px } .layui-nav .layui-nav-mored, .layui-nav-itemed .layui-nav-more { top: 22px; border-style: dashed dashed solid; border-color: transparent transparent #c2c2c2 } .layui-nav-child { display: none; position: absolute; left: 0; top: 65px; line-height: 36px; padding: 5px 0; border: 1px solid #d2d2d2; background-color: #fff; z-index: 100; border-radius: 2px; white-space: nowrap } .layui-nav .layui-nav-child a { color: #333 } .layui-nav .layui-nav-child a:hover { background-color: #f2f2f2; color: #333 } .layui-nav-child dd { position: relative } .layui-nav-child dd.layui-this { background-color: #5FB878; color: #fff } .layui-nav-child dd.layui-this a { color: #fff } .layui-nav-child dd.layui-this:after { display: none } .layui-nav-tree { width: 200px; padding: 0 } .layui-nav-tree .layui-nav-item { display: block; width: 100%; line-height: 45px } .layui-nav-tree .layui-nav-item a { height: 45px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap } .layui-nav-tree .layui-nav-item a:hover { background-color: #4E5465 } .layui-nav-tree .layui-nav-child dd.layui-this, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this>a, .layui-nav-tree .layui-this>a:hover { background-color: #009688; color: #fff } .layui-nav-tree .layui-this:after { display: none } .layui-nav-itemed>a, .layui-nav-tree .layui-nav-title a, .layui-nav-tree .layui-nav-title a:hover { background-color: #2B2E37!important; color: #fff!important } .layui-nav-tree .layui-nav-bar { width: 5px; height: 0; background-color: #009688 } .layui-nav-tree .layui-nav-child { position: relative; z-index: 0; top: 0; border: none; box-shadow: none } .layui-nav-tree .layui-nav-child a { height: 40px; line-height: 40px; color: #c2c2c2 } .layui-nav-tree .layui-nav-child, .layui-nav-tree .layui-nav-child a:hover { background: 0 0; color: #fff } .layui-nav-tree .layui-nav-more { top: 20px; right: 10px } .layui-nav-itemed .layui-nav-more { top: 14px } .layui-nav-itemed .layui-nav-child { display: block; padding: 0 } .layui-nav-side { position: fixed; top: 0; bottom: 0; left: 0; overflow-x: hidden; z-index: 999 } .layui-breadcrumb { visibility: hidden; font-size: 0 } .layui-breadcrumb a { padding-right: 8px; line-height: 22px; font-size: 14px; color: #333!important } .layui-breadcrumb a:hover { color: #01AAED!important } .layui-breadcrumb a cite, .layui-breadcrumb a span { color: #666; cursor: text; font-style: normal } .layui-breadcrumb a span { padding-left: 8px; font-family: Sim sun } .layui-tab { margin: 10px 0; overflow: hidden; text-align: left!important } .layui-fixbar li, .layui-tab-bar, .layui-tab-title li, .layui-util-face ul li { cursor: pointer; text-align: center } .layui-tab-title { position: relative; left: 0; height: 40px; white-space: nowrap; font-size: 0; border-bottom: 1px solid #e2e2e2; transition: all .2s; -webkit-transition: all .2s } .layui-tab-title li { *display: inline; font-size: 14px; transition: all .3s; -webkit-transition: all .3s; position: relative; line-height: 40px; min-width: 65px; padding: 0 10px } .layui-tab-title .layui-this { color: #000 } .layui-tab-title .layui-this:after { position: absolute; left: 0; top: 0; content: ''; width: 100%; height: 41px; border: 1px solid #e2e2e2; border-bottom-color: #fff; border-radius: 2px 2px 0 0; -webkit-box-sizing: border-box!important; -moz-box-sizing: border-box!important; box-sizing: border-box!important; pointer-events: none } .layui-tab-bar { position: absolute; right: 0; top: 0; width: 30px; height: 39px; line-height: 39px; border: 1px solid #e2e2e2; border-radius: 2px; background-color: #fff } .layui-tab-bar .layui-icon { position: relative; display: inline-block; top: 3px; transition: all .3s; -webkit-transition: all .3s } .layui-tab-item, .layui-util-face .layui-layer-TipsG { display: none } .layui-tab-more { padding-right: 30px; height: auto; white-space: normal } .layui-tab-more li.layui-this:after { border-bottom-color: #e2e2e2; border-radius: 2px } .layui-tab-more .layui-tab-bar .layui-icon { top: -2px; top: 3px\9; -webkit-transform: rotate(180deg); transform: rotate(180deg) } :root .layui-tab-more .layui-tab-bar .layui-icon { top: -2px\0/IE9 } .layui-tab-content { padding: 10px } .layui-tab-title li .layui-tab-close { position: relative; margin-left: 8px; top: 1px; color: #c2c2c2 } .layui-tab-title li .layui-tab-close:hover { border-radius: 10px; background-color: #FF5722; color: #fff } .layui-tab-brief>.layui-tab-title .layui-this { color: #009688 } .layui-tab-brief>.layui-tab-more li.layui-this:after, .layui-tab-brief>.layui-tab-title .layui-this:after { border: none; border-radius: 0; border-bottom: 3px solid #5FB878 } .layui-tab-card { border: 1px solid #e2e2e2; border-radius: 2px; box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .1) } .layui-tab-card>.layui-tab-title { background-color: #f2f2f2 } .layui-tab-card>.layui-tab-title li { margin-right: -1px; margin-left: -1px } .layui-tab-card>.layui-tab-title .layui-this { background-color: #fff } .layui-tab-card>.layui-tab-title .layui-this:after { border-top: none; border-width: 1px; border-bottom-color: #fff } .layui-tab-card>.layui-tab-title .layui-tab-bar { height: 40px; line-height: 40px; border-radius: 0; border-top: none; border-right: none } .layui-tab-card>.layui-tab-more .layui-this { background: 0 0; color: #5FB878 } .layui-tab-card>.layui-tab-more .layui-this:after { border: none } .layui-fixbar { position: fixed; right: 15px; bottom: 15px; z-index: 9999 } .layui-fixbar li { width: 50px; height: 50px; line-height: 50px; margin-bottom: 1px; font-size: 30px; background-color: #9F9F9F; color: #fff; border-radius: 2px; opacity: .95 } .layui-fixbar li:hover { opacity: .85 } .layui-fixbar li:active { opacity: 1 } .layui-fixbar .layui-fixbar-top { display: none; font-size: 40px } body .layui-util-face { border: none; background: 0 0 } body .layui-util-face .layui-layer-content { padding: 0; background-color: #fff; color: #666; box-shadow: none } .layui-util-face ul { position: relative; width: 372px; padding: 10px; border: 1px solid #D9D9D9; background-color: #fff; box-shadow: 0 0 20px rgba(0, 0, 0, .2) } .layui-util-face ul li { float: left; border: 1px solid #e8e8e8; height: 22px; width: 26px; overflow: hidden; margin: -1px 0 0 -1px; padding: 4px 2px } .layui-util-face ul li:hover { position: relative; z-index: 2; border: 1px solid #eb7350; background: #fff9ec } .layui-anim { -webkit-animation-duration: .3s; animation-duration: .3s; -webkit-animation-fill-mode: both; animation-fill-mode: both } .layui-anim-loop { -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite } @-webkit-keyframes layui-rotate { from { -webkit-transform: rotate(0) } to { -webkit-transform: rotate(360deg) } } @keyframes layui-rotate { from { transform: rotate(0) } to { transform: rotate(360deg) } } .layui-anim-rotate { -webkit-animation-name: layui-rotate; animation-name: layui-rotate; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: linear; animation-timing-function: linear } @-webkit-keyframes layui-up { from { -webkit-transform: translate3d(0, 100%, 0); opacity: .3 } to { -webkit-transform: translate3d(0, 0, 0); opacity: 1 } } @keyframes layui-up { from { transform: translate3d(0, 100%, 0); opacity: .3 } to { transform: translate3d(0, 0, 0); opacity: 1 } } .layui-anim-up { -webkit-animation-name: layui-up; animation-name: layui-up } @-webkit-keyframes layui-upbit { from { -webkit-transform: translate3d(0, 30px, 0); opacity: .3 } to { -webkit-transform: translate3d(0, 0, 0); opacity: 1 } } @keyframes layui-upbit { from { transform: translate3d(0, 30px, 0); opacity: .3 } to { transform: translate3d(0, 0, 0); opacity: 1 } } .layui-anim-upbit { -webkit-animation-name: layui-upbit; animation-name: layui-upbit } @-webkit-keyframes layui-scale { 0% { opacity: .3; -webkit-transform: scale(.5) } 100% { opacity: 1; -webkit-transform: scale(1) } } @keyframes layui-scale { 0% { opacity: .3; -ms-transform: scale(.5); transform: scale(.5) } 100% { opacity: 1; -ms-transform: scale(1); transform: scale(1) } } .layui-anim-scale { -webkit-animation-name: layui-scale; animation-name: layui-scale } @-webkit-keyframes layui-scale-spring { 0% { opacity: .5; -webkit-transform: scale(.5) } 80% { opacity: .8; -webkit-transform: scale(1.1) } 100% { opacity: 1; -webkit-transform: scale(1) } } @keyframes layui-scale-spring { 0% { opacity: .5; -ms-transform: scale(.5); transform: scale(.5) } 80% { opacity: .8; -ms-transform: scale(1.1); transform: scale(1.1) } 100% { opacity: 1; -ms-transform: scale(1); transform: scale(1) } } .layui-anim-scaleSpring { -webkit-animation-name: layui-scale-spring; animation-name: layui-scale-spring } @media screen and (max-width:450px) { .layui-form-item .layui-form-label { text-overflow: ellipsis; overflow: hidden; white-space: nowrap } .layui-form-item .layui-inline { display: block; margin-right: 0; margin-bottom: 20px; clear: both } .layui-form-item .layui-inline:after { content: '\20'; clear: both; display: block; height: 0 } .layui-form-item .layui-input-inline { display: block; float: none; left: -1px; width: auto; margin: 0 0 10px 112px } .layui-form-item .layui-input-inline+.layui-form-mid { margin-left: 110px; top: -5px; padding: 0 } .layui-form-item .layui-form-checkbox { margin-right: 5px; margin-bottom: 5px } } ================================================ FILE: public/static/layui/css/modules/code.css ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #ddd;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:30px;line-height:30px;border-bottom:1px solid #ddd}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #ddd;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none} ================================================ FILE: public/static/layui/css/modules/laydate/laydate.css ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ #layuicss-laydatecss{display:none;position:absolute;width:1989px}.laydate_body .laydate_box,.laydate_body .laydate_box *{margin:0;padding:0;box-sizing:content-box}.laydate-icon,.laydate-icon-dahong,.laydate-icon-danlan,.laydate-icon-default,.laydate-icon-molv{height:22px;line-height:22px;padding-right:20px;border:1px solid #C6C6C6;background-repeat:no-repeat;background-position:right center;background-color:#fff;outline:0}.laydate-icon-default{background-image:url(../skins/default/icon.png)}.laydate-icon-danlan{border:1px solid #B1D2EC;background-image:url(../skins/danlan/icon.png)}.laydate-icon-dahong{background-image:url(../skins/dahong/icon.png)}.laydate-icon-molv{background-image:url(../skins/molv/icon.png)}.laydate_body .laydate_box{width:240px;font:12px '\5B8B\4F53';z-index:99999999;*overflow:hidden;_margin:0;_position:absolute!important}.laydate_body .laydate_box li{list-style:none}.laydate_body .laydate_box .laydate_void{cursor:text!important}.laydate_body .laydate_box cite,.laydate_body .laydate_box label{position:absolute;width:0;height:0;border-width:5px;border-style:dashed;border-color:transparent;overflow:hidden;cursor:pointer}.laydate_body .laydate_box .laydate_time,.laydate_body .laydate_box .laydate_yms{display:none}.laydate_body .laydate_box .laydate_show{display:block}.laydate_body .laydate_box input{outline:0;font-size:14px;background-color:#fff;color:#333}.laydate_body .laydate_top{position:relative;height:26px;padding:5px;*width:100%;z-index:99}.laydate_body .laydate_ym{position:relative;float:left;height:24px;cursor:pointer}.laydate_body .laydate_ym input{float:left;height:24px;line-height:24px;text-align:center;border:none;cursor:pointer}.laydate_body .laydate_ym .laydate_yms{position:absolute;left:-1px;top:24px;height:181px}.laydate_body .laydate_y{width:121px;margin-right:6px}.laydate_body .laydate_y input{width:64px;margin-right:15px}.laydate_body .laydate_y .laydate_yms{width:121px;text-align:center}.laydate_body .laydate_y .laydate_yms a{position:relative;display:block;height:20px}.laydate_body .laydate_y .laydate_yms ul{height:139px;padding:0;*overflow:hidden}.laydate_body .laydate_y .laydate_yms ul li{float:left;width:60px;height:20px;line-height:20px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.laydate_body .laydate_m{width:99px}.laydate_body .laydate_m .laydate_yms{width:99px;padding:0}.laydate_body .laydate_m input{width:42px;margin-right:15px}.laydate_body .laydate_m .laydate_yms span{display:block;float:left;width:42px;margin:5px 0 0 5px;line-height:24px;text-align:center;_display:inline}.laydate_body .laydate_choose{display:block;float:left;position:relative;width:20px;height:24px}.laydate_body .laydate_choose cite,.laydate_body .laydate_tab cite{left:50%;top:50%}.laydate_body .laydate_chtop cite{margin:-7px 0 0 -5px;border-bottom-style:solid}.laydate_body .laydate_chdown cite,.laydate_body .laydate_ym label{top:50%;margin:-2px 0 0 -5px;border-top-style:solid}.laydate_body .laydate_chprev cite{margin:-5px 0 0 -7px}.laydate_body .laydate_chnext cite{margin:-5px 0 0 -2px}.laydate_body .laydate_ym label{right:28px}.laydate_body .laydate_table{width:230px;margin:0 5px;border-collapse:collapse;border-spacing:0}.laydate_body .laydate_table td{width:31px;text-align:center;cursor:pointer;font-size:12px}.laydate_body .laydate_table thead th{font-weight:400;font-size:12px;text-align:center}.laydate_body .laydate_bottom{position:relative;height:22px;line-height:20px;padding:5px;font-size:12px}.laydate_body .laydate_bottom #laydate_hms{position:relative;z-index:1;float:left}.laydate_body .laydate_time{position:absolute;left:5px;bottom:26px;width:129px;height:125px;*overflow:hidden}.laydate_body .laydate_time .laydate_hmsno{padding:5px 0 0 5px}.laydate_body .laydate_time .laydate_hmsno span{display:block;float:left;width:24px;height:19px;line-height:19px;text-align:center;cursor:pointer;*margin-bottom:-5px}.laydate_body .laydate_time1{width:228px;height:154px}.laydate_body .laydate_time1 .laydate_hmsno{padding:6px 0 0 8px}.laydate_body .laydate_time1 .laydate_hmsno span{width:21px;height:20px;line-height:20px}.laydate_body .laydate_msg{left:49px;bottom:67px;width:141px;height:auto;overflow:hidden}.laydate_body .laydate_msg p{padding:5px 10px}.laydate_body .laydate_bottom li{float:left;height:20px;line-height:20px;border-right:none;font-weight:900}.laydate_body .laydate_bottom .laydate_sj{width:33px;text-align:center;font-weight:400}.laydate_body .laydate_bottom input{float:left;width:21px;height:20px;line-height:20px;border:none;text-align:center;cursor:pointer;font-size:12px;font-weight:400}.laydate_body .laydate_bottom .laydte_hsmtex{height:20px;line-height:20px;text-align:center}.laydate_body .laydate_bottom .laydte_hsmtex span{position:absolute;width:20px;top:0;right:0;cursor:pointer}.laydate_body .laydate_bottom .laydte_hsmtex span:hover{font-size:14px}.laydate_body .laydate_bottom .laydate_btn{position:absolute;right:5px;top:5px}.laydate_body .laydate_bottom .laydate_btn a{float:left;height:20px;padding:0 6px;_padding:0 5px}.laydate_body .laydate_table td,.laydate_body .laydate_table thead{height:21px!important;line-height:21px!important}.laydate-icon{border:1px solid #C6C6C6;background-image:url(icon.png)}.laydate_body .laydate_bottom #laydate_hms,.laydate_body .laydate_bottom .laydate_btn a,.laydate_body .laydate_box,.laydate_body .laydate_table,.laydate_body .laydate_table td,.laydate_body .laydate_time,.laydate_body .laydate_ym,.laydate_body .laydate_ym .laydate_yms{border:1px solid #ccc}.laydate_body .laydate_bottom .laydte_hsmtex,.laydate_body .laydate_choose,.laydate_body .laydate_table thead,.laydate_body .laydate_y .laydate_yms a{background-color:#F6F6F6}.laydate_body .laydate_box,.laydate_body .laydate_time,.laydate_body .laydate_ym .laydate_yms{box-shadow:2px 2px 5px rgba(0,0,0,.1)}.laydate_body .laydate_box{border-top:none;border-bottom:none;background-color:#fff;color:#333}.laydate_body .laydate_box .laydate_void{color:#ccc!important}.laydate_body .laydate_box .laydate_void:hover{background-color:#fff!important}.laydate_body .laydate_box a,.laydate_body .laydate_box a:hover{text-decoration:none;blr:expression(this.onFocus=this.blur());cursor:pointer;color:#333}.laydate_body .laydate_box a:hover{text-decoration:none;color:#666}.laydate_body .laydate_click{background-color:#eee!important}.laydate_body .laydate_bottom #laydate_hms,.laydate_body .laydate_choose:hover,.laydate_body .laydate_table td,.laydate_body .laydate_time,.laydate_body .laydate_y .laydate_yms a:hover{background-color:#fff}.laydate_body .laydate_top{border-top:1px solid #C6C6C6}.laydate_body .laydate_ym .laydate_yms{border:1px solid #C6C6C6;background-color:#fff}.laydate_body .laydate_y .laydate_yms a{border-bottom:1px solid #C6C6C6}.laydate_body .laydate_y .laydate_yms .laydate_chdown{border-top:1px solid #C6C6C6;border-bottom:none}.laydate_body .laydate_choose{border-left:1px solid #C6C6C6}.laydate_body .laydate_chprev{border-left:none;border-right:1px solid #C6C6C6}.laydate_body .laydate_chtop cite{border-bottom-color:#666}.laydate_body .laydate_chdown cite,.laydate_body .laydate_ym label{border-top-color:#666}.laydate_body .laydate_chprev cite{border-right-style:solid;border-right-color:#666}.laydate_body .laydate_chnext cite{border-left-style:solid;border-left-color:#666}.laydate_body .laydate_table td{border:none}.laydate_body .laydate_table .laydate_nothis{color:#999}.laydate_body .laydate_table thead th{border-bottom:1px solid #ccc}.laydate_body .laydate_bottom,.laydate_body .laydate_bottom .laydte_hsmtex{border-bottom:1px solid #C6C6C6}.laydate_body .laydate_bottom .laydate_sj{border-right:1px solid #C6C6C6;background-color:#F6F6F6}.laydate_body .laydate_bottom input{background-color:#fff}.laydate_body .laydate_bottom .laydate_btn{border-right:1px solid #C6C6C6}.laydate_body .laydate_bottom .laydate_v{position:absolute;left:10px;top:6px;font-family:Courier;z-index:0;color:#999}.laydate_body .laydate_bottom .laydate_btn a{border-right:none;background-color:#F6F6F6}.laydate_body .laydate_bottom .laydate_btn a:hover{color:#000;background-color:#fff}.laydate_body .laydate_m .laydate_yms span:hover,.laydate_body .laydate_table td:hover,.laydate_body .laydate_time .laydate_hmsno span:hover,.laydate_body .laydate_y .laydate_yms ul li:hover{background-color:#F3F3F3} ================================================ FILE: public/static/layui/css/modules/layer/default/layer.css ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ .layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .layui-layer-title span,.layui-layer-title{text-overflow:ellipsis;white-space:nowrap}*html{background-image:url(about:blank);background-attachment:fixed}html #layuicss-skinlayercss{display:none;position:absolute;width:1989px}.layui-layer,.layui-layer-shade{position:fixed;_position:absolute;pointer-events:auto}.layui-layer-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px")}.layui-layer{-webkit-overflow-scrolling:touch;top:150px;left:0;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;box-shadow:1px 1px 50px rgba(0,0,0,.3)}.layui-layer-close{position:absolute}.layui-layer-content{position:relative}.layui-layer-border{border:1px solid #B2B2B2;border:1px solid rgba(0,0,0,.1);box-shadow:1px 1px 5px rgba(0,0,0,.2)}.layui-layer-load{background:url(loading-1.gif) center center no-repeat #eee}.layui-layer-ico{background:url(icon.png) no-repeat}.layui-layer-btn a,.layui-layer-dialog .layui-layer-ico,.layui-layer-setwin a{display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-move{display:none;position:fixed;*position:absolute;left:0;top:0;width:100%;height:100%;cursor:move;opacity:0;filter:alpha(opacity=0);background-color:#fff;z-index:2147483647}.layui-layer-resize{position:absolute;width:15px;height:15px;right:0;bottom:0;cursor:se-resize}.layui-layer{border-radius:2px;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-01{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layer-anim-02{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-03{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);-ms-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}.layer-anim-04{-webkit-animation-name:rollIn;animation-name:rollIn}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layer-anim-05{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layer-anim-06{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes bounceOut{100%{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes bounceOut{100%{opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-close{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.2s;animation-duration:.2s}.layui-layer-title{padding:0 80px 0 20px;height:42px;line-height:42px;border-bottom:1px solid #eee;font-size:14px;color:#333;overflow:hidden;background-color:#F8F8F8;border-radius:2px 2px 0 0}.layui-layer-setwin{position:absolute;right:15px;*right:0;top:15px;font-size:0;line-height:initial}.layui-layer-setwin a{position:relative;width:16px;height:16px;margin-left:10px;font-size:12px;_overflow:hidden}.layui-layer-setwin .layui-layer-min cite{position:absolute;width:14px;height:2px;left:0;top:50%;margin-top:-1px;background-color:#2E2D3C;cursor:pointer;_overflow:hidden}.layui-layer-setwin .layui-layer-min:hover cite{background-color:#2D93CA}.layui-layer-setwin .layui-layer-max{background-position:-32px -40px}.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px}.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px}.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px}.layui-layer-setwin .layui-layer-close1{background-position:0 -40px;cursor:pointer}.layui-layer-setwin .layui-layer-close1:hover{opacity:.7}.layui-layer-setwin .layui-layer-close2{position:absolute;right:-28px;top:-28px;width:30px;height:30px;margin-left:0;background-position:-149px -31px;*right:-18px;_display:none}.layui-layer-setwin .layui-layer-close2:hover{background-position:-180px -31px}.layui-layer-btn{text-align:right;padding:0 10px 12px;pointer-events:auto;user-select:none;-webkit-user-select:none}.layui-layer-btn a{height:28px;line-height:28px;margin:0 6px;padding:0 15px;border:1px solid #dedede;background-color:#f1f1f1;color:#333;border-radius:2px;font-weight:400;cursor:pointer;text-decoration:none}.layui-layer-btn a:hover{opacity:.9;text-decoration:none}.layui-layer-btn a:active{opacity:.8}.layui-layer-btn .layui-layer-btn0{border-color:#4898d5;background-color:#2e8ded;color:#fff}.layui-layer-btn-l{text-align:left}.layui-layer-btn-c{text-align:center}.layui-layer-dialog{min-width:260px}.layui-layer-dialog .layui-layer-content{position:relative;padding:20px;line-height:24px;word-break:break-all;overflow:hidden;font-size:14px;overflow-x:hidden;overflow-y:auto}.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute;top:16px;left:15px;_left:-40px;width:30px;height:30px}.layui-layer-ico1{background-position:-30px 0}.layui-layer-ico2{background-position:-60px 0}.layui-layer-ico3{background-position:-90px 0}.layui-layer-ico4{background-position:-120px 0}.layui-layer-ico5{background-position:-150px 0}.layui-layer-ico6{background-position:-180px 0}.layui-layer-rim{border:6px solid #8D8D8D;border:6px solid rgba(0,0,0,.3);border-radius:5px;box-shadow:none}.layui-layer-msg{min-width:180px;border:1px solid #D3D4D3;box-shadow:none}.layui-layer-hui{min-width:100px;background-color:#000;filter:alpha(opacity=60);background-color:rgba(0,0,0,.6);color:#fff;border:none}.layui-layer-hui .layui-layer-content{padding:12px 25px;text-align:center}.layui-layer-dialog .layui-layer-padding{padding:20px 20px 20px 55px;text-align:left}.layui-layer-page .layui-layer-content{position:relative;overflow:auto}.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}.layui-layer-nobg{background:0 0}.layui-layer-iframe iframe{display:block;width:100%}.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}.layui-layer-loading .layui-layer-content{width:60px;height:24px;background:url(loading-0.gif) no-repeat}.layui-layer-loading .layui-layer-loading1{width:37px;height:37px;background:url(loading-1.gif) no-repeat}.layui-layer-ico16,.layui-layer-loading .layui-layer-loading2{width:32px;height:32px;background:url(loading-2.gif) no-repeat}.layui-layer-tips{background:0 0;box-shadow:none;border:none}.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:5px 10px;font-size:12px;_float:left;border-radius:2px;box-shadow:1px 1px 3px rgba(0,0,0,.2);background-color:#000;color:#fff}.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;*overflow:hidden}.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:#000}.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}.layui-layer-tips i.layui-layer-TipsB{top:-8px}.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:1px;border-bottom-style:solid;border-bottom-color:#000}.layui-layer-tips i.layui-layer-TipsR{left:-8px}.layui-layer-tips i.layui-layer-TipsL{right:-8px}.layui-layer-lan[type=dialog]{min-width:280px}.layui-layer-lan .layui-layer-title{background:#4476A7;color:#fff;border:none}.layui-layer-lan .layui-layer-btn{padding:10px;text-align:right;border-top:1px solid #E9E7E7}.layui-layer-lan .layui-layer-btn a{background:#BBB5B5;border:none}.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#C9C5C5}.layui-layer-molv .layui-layer-title{background:#009f95;color:#fff;border:none}.layui-layer-molv .layui-layer-btn a{background:#009f95}.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92B8B1}.layui-layer-iconext{background:url(icon-ext.png) no-repeat}.layui-layer-prompt .layui-layer-input{display:block;width:220px;height:30px;margin:0 auto;line-height:30px;padding:0 5px;border:1px solid #ccc;box-shadow:1px 1px 5px rgba(0,0,0,.1) inset;color:#333}.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px}.layui-layer-prompt .layui-layer-content{padding:20px}.layui-layer-prompt .layui-layer-btn{padding-top:0}.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}.layui-layer-tab .layui-layer-title{padding-left:0;border-bottom:1px solid #ccc;background-color:#eee;overflow:visible}.layui-layer-tab .layui-layer-title span{position:relative;float:left;min-width:80px;max-width:260px;padding:0 20px;text-align:center;cursor:default;overflow:hidden}.layui-layer-tab .layui-layer-title span.layui-layer-tabnow{height:43px;border-left:1px solid #ccc;border-right:1px solid #ccc;background-color:#fff;z-index:10}.layui-layer-tab .layui-layer-title span:first-child{border-left:none}.layui-layer-tabmain{line-height:24px;clear:both}.layui-layer-tabmain .layui-layer-tabli{display:none}.layui-layer-tabmain .layui-layer-tabli.xubox_tab_layer{display:block}.xubox_tabclose{position:absolute;right:10px;top:5px;cursor:pointer}.layui-layer-photos{-webkit-animation-duration:1s;animation-duration:1s}.layui-layer-photos .layui-layer-content{overflow:hidden;text-align:center}.layui-layer-photos .layui-layer-phimg img{position:relative;width:100%;display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-imgbar,.layui-layer-imguide{display:none}.layui-layer-imgnext,.layui-layer-imgprev{position:absolute;top:50%;width:27px;_width:44px;height:44px;margin-top:-22px;outline:0;blr:expression(this.onFocus=this.blur())}.layui-layer-imgprev{left:10px;background-position:-5px -5px;_background-position:-70px -5px}.layui-layer-imgprev:hover{background-position:-33px -5px;_background-position:-120px -5px}.layui-layer-imgnext{right:10px;_right:8px;background-position:-5px -50px;_background-position:-70px -50px}.layui-layer-imgnext:hover{background-position:-33px -50px;_background-position:-120px -50px}.layui-layer-imgbar{position:absolute;left:0;bottom:0;width:100%;height:32px;line-height:32px;background-color:rgba(0,0,0,.8);background-color:#000\9;filter:Alpha(opacity=80);color:#fff;overflow:hidden;font-size:0}.layui-layer-imgtit *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:12px}.layui-layer-imgtit a{max-width:65%;overflow:hidden;color:#fff}.layui-layer-imgtit a:hover{color:#fff;text-decoration:underline}.layui-layer-imgtit em{padding-left:10px;font-style:normal}@media screen and (max-width:1100px){.layui-layer-iframe{overflow-y:auto;-webkit-overflow-scrolling:touch}} ================================================ FILE: public/static/layui/lay/dest/layui.all.js ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ ;!function(e){"use strict";var t=function(){this.v="1.0.7"};t.fn=t.prototype;var n=document,o=t.fn.cache={},i=function(){var e=n.scripts,t=e[e.length-1].src;return t.substring(0,t.lastIndexOf("/")+1)}(),r=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},u="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),l={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",tree:"modules/tree",slide:"modules/slide",table:"modules/table",element:"modules/element",util:"modules/util",flow:"modules/flow",code:"modules/code",single:"modules/single",mobile:"modules/mobile",jquery:"lib/jquery","layui.mod":"dest/layui.mod"};o.modules={},o.status={},o.timeout=10,o.event={},t.fn.define=function(e,t){var n=this,i="function"==typeof e,r=function(){return"function"==typeof t&&t(function(e,t){layui[e]=t,o.status[e]=!0}),this};return i&&(t=e,e=[]),layui["layui.all"]?r.call(n):(n.use(e,r),n)},t.fn.use=function(e,t,a){function s(e,t){var n="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||n.test((e.currentTarget||e.srcElement).readyState))&&(o.modules[m]=t,y.removeChild(v),function i(){return++p>1e3*o.timeout/4?r(m+" is not a valid module"):void(o.status[m]?c():setTimeout(i,4))}())}function c(){a.push(layui[m]),e.length>1?f.use(e.slice(1),t,a):"function"==typeof t&&t.apply(layui,a)}var f=this,d=o.dir=o.dir?o.dir:i,y=n.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(f.each(e,function(t,n){"jquery"===n&&e.splice(t,1)}),layui.jquery=jQuery);var m=e[0],p=0;if(a=a||[],o.host=o.host||(d.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&l[m])return"function"==typeof t&&t.apply(layui,a),f;var v=n.createElement("script"),h=(l[m]?d+"lay/":o.base||"")+(f.modules[m]||m)+".js";return v.async=!0,v.charset="utf-8",v.src=h+function(){var e=o.version===!0?o.v||(new Date).getTime():o.version||"";return e?"?v="+e:""}(),o.modules[m]?!function g(){return++p>1e3*o.timeout/4?r(m+" is not a valid module"):void("string"==typeof o.modules[m]&&o.status[m]?c():setTimeout(g,4))}():(y.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||u?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)})),o.modules[m]=h,f},t.fn.getStyle=function(t,n){var o=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return o[o.getPropertyValue?"getPropertyValue":"getAttribute"](n)},t.fn.link=function(e,t,i){var u=this,l=n.createElement("link"),a=n.getElementsByTagName("head")[0];"string"==typeof t&&(i=t);var s=(i||e).replace(/\.|\//g,""),c=l.id="layuicss-"+s,f=0;l.rel="stylesheet",l.href=e+(o.debug?"?v="+(new Date).getTime():""),l.media="all",n.getElementById(c)||a.appendChild(l),"function"==typeof t&&!function d(){return++f>1e3*o.timeout/100?r(e+" timeout"):void(1989===parseInt(u.getStyle(n.getElementById(c),"width"))?function(){t()}():setTimeout(d,100))}()},t.fn.addcss=function(e,t,n){layui.link(o.dir+"css/"+e,t,n)},t.fn.img=function(e,t,n){var o=new Image;return o.src=e,o.complete?t(o):(o.onload=function(){o.onload=null,t(o)},void(o.onerror=function(e){o.onerror=null,n(e)}))},t.fn.config=function(e){e=e||{};for(var t in e)o[t]=e[t];return this},t.fn.modules=function(){var e={};for(var t in l)e[t]=l[t];return e}(),t.fn.extend=function(e){var t=this;e=e||{};for(var n in e)t[n]||t.modules[n]?r("模块名 "+n+" 已被占用"):t.modules[n]=e[n];return t},t.fn.router=function(e){for(var t,n=(e||location.hash).replace(/^#/,"").split("/")||[],o={dir:[]},i=0;i/g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var n="Laytpl Error:";return"object"==typeof console&&console.error(n+e+"\n"+(r||"")),n+e}},c=n.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=c("^"+r.open+"#",""),l=c(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(c(r.open+"#"),r.open+"# ").replace(c(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(/(?="|')/g,"\\").replace(n.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(n.query(1),function(e){var n='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(c(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),n='"+_escape_('),n+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,n.escape)}catch(u){return delete o.cache,n.error(u,p)}},t.pt.render=function(e,r){var c,t=this;return e?(c=t.cache?t.cache(e,n.escape):t.parse(t.tpl,e),r?void r(c):c):n.error("no data")};var o=function(e){return"string"!=typeof e?n.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var n in e)r[n]=e[n]},o.v="1.2.0",e("laytpl",o)});layui.define(function(a){"use strict";function t(a){new p(a)}var e=document,r="getElementById",n="getElementsByTagName",s=0,p=function(a){var t=this,e=t.config=a||{};e.item=s++,t.render(!0)};p.on=function(a,t,e){return a.attachEvent?a.attachEvent("on"+t,function(){e.call(a,window.even)}):a.addEventListener(t,e,!1),p},p.prototype.type=function(){var a=this.config;if("object"==typeof a.cont)return void 0===a.cont.length?2:3},p.prototype.view=function(){var a=this,t=a.config,e=[],r={};if(t.pages=0|t.pages,t.curr=0|t.curr||1,t.groups="groups"in t?0|t.groups:5,t.first="first"in t?t.first:"首页",t.last="last"in t?t.last:"末页",t.prev="prev"in t?t.prev:"上一页",t.next="next"in t?t.next:"下一页",t.pages<=1)return"";for(t.groups>t.pages&&(t.groups=t.pages),r.index=Math.ceil((t.curr+(t.groups>1&&t.groups!==t.pages?1:0))/(0===t.groups?1:t.groups)),t.curr>1&&t.prev&&e.push(''+t.prev+""),r.index>1&&t.first&&0!==t.groups&&e.push(''+t.first+""),r.poor=Math.floor((t.groups-1)/2),r.start=r.index>1?t.curr-r.poor:1,r.end=r.index>1?function(){var a=t.curr+(t.groups-r.poor-1);return a>t.pages?t.pages:a}():t.groups,r.end-r.start"+r.start+""):e.push(''+r.start+"");return t.pages>t.groups&&r.end'+t.last+""),r.flow=!t.prev&&0===t.groups,(t.curr!==t.pages&&t.next||r.flow)&&e.push(function(){return r.flow&&t.curr===t.pages?''+t.next+"":''+t.next+""}()),'
    '+e.join("")+function(){return t.skip?'到第 ':""}()+"
    "},p.prototype.jump=function(a){if(a){for(var t=this,e=t.config,r=a.children,s=a[n]("button")[0],i=a[n]("input")[0],u=0,o=r.length;un.maxs[0]?s=["y",1]:e>=n.mins[0]&&e<=n.maxs[0]&&(e==n.mins[0]&&(tn.maxs[1]?s=["m",1]:t==n.maxs[1]&&a>n.maxs[2]&&(s=["d",1]))),s},n.timeVoid=function(e,t){if(n.ymd[1]+1==n.mins[1]&&n.ymd[2]==n.mins[2]){if(0===t&&en.maxs[3])return 1;if(1===t&&e>n.maxs[4])return 1;if(2===t&&e>n.maxs[5])return 1}if(e>(t?59:23))return 1},n.check=function(){var e=n.options.format.replace(/YYYY|MM|DD|hh|mm|ss/g,"\\d+\\").replace(/\\$/g,""),t=new RegExp(e),a=n.elem[d.elemv],s=a.match(/\d+/g)||[],i=n.checkVoid(s[0],s[1],s[2]);if(""!==a.replace(/\s/g,"")){if(!t.test(a))return n.elem[d.elemv]="",n.msg("日期不符合格式,请重新选择。"),1;if(i[0])return n.elem[d.elemv]="",n.msg("日期不在有效期内,请重新选择。"),1;i.value=n.elem[d.elemv].match(t).join(),s=i.value.match(/\d+/g),s[1]<1?(s[1]=1,i.auto=1):s[1]>12?(s[1]=12,i.auto=1):s[1].length<2&&(i.auto=1),s[2]<1?(s[2]=1,i.auto=1):s[2]>n.months[(0|s[1])-1]?(s[2]=31,i.auto=1):s[2].length<2&&(i.auto=1),s.length>3&&(n.timeVoid(s[3],0)&&(i.auto=1),n.timeVoid(s[4],1)&&(i.auto=1),n.timeVoid(s[5],2)&&(i.auto=1)),i.auto?n.creation([s[0],0|s[1],0|s[2]],1):i.value!==n.elem[d.elemv]&&(n.elem[d.elemv]=i.value)}},n.months=[31,null,31,30,31,30,31,31,30,31,30,31],n.viewDate=function(e,t,a){var s=(n.query,{}),i=new Date;e<(0|n.mins[0])&&(e=0|n.mins[0]),e>(0|n.maxs[0])&&(e=0|n.maxs[0]),i.setFullYear(e,t,a),s.ymd=[i.getFullYear(),i.getMonth(),i.getDate()],n.months[1]=n.isleap(s.ymd[0])?29:28,i.setFullYear(s.ymd[0],s.ymd[1],1),s.FDay=i.getDay(),s.PDay=n.months[0===t?11:t-1]-s.FDay+1,s.NDay=1,n.each(d.tds,function(e,t){var a,i=s.ymd[0],o=s.ymd[1]+1;t.className="",e=s.FDay&&e'+e+"年":'
  • '+(e-7+t)+"年
  • "}),t("#laydate_ys").innerHTML=a,n.each(t("#laydate_ys li"),function(e,t){"y"===n.checkVoid(t.getAttribute("y"))[0]?n.addClass(t,d[1]):n.on(t,"click",function(e){n.stopmp(e).reshow(),n.viewDate(0|this.getAttribute("y"),n.ymd[1],n.ymd[2])})})},n.initDate=function(){var e=(n.query,new Date),t=n.elem[d.elemv].match(/\d+/g)||[];t.length<3&&(t=n.options.start.match(/\d+/g)||[],t.length<3&&(t=[e.getFullYear(),e.getMonth()+1,e.getDate()])),n.inymd=t,n.viewDate(t[0],t[1]-1,t[2])},n.iswrite=function(){var e=n.query,t={time:e("#laydate_hms")};n.shde(t.time,!n.options.istime),n.shde(d.oclear,!("isclear"in n.options?n.options.isclear:1)),n.shde(d.otoday,!("istoday"in n.options?n.options.istoday:1)),n.shde(d.ok,!("issure"in n.options?n.options.issure:1))},n.orien=function(e,t){var a,s=n.elem.getBoundingClientRect();e.style.left=s.left+(t?0:n.scroll(1))+"px",a=s.bottom+e.offsetHeight/1.5<=n.winarea()?s.bottom-1:s.top>e.offsetHeight/1.5?s.top-e.offsetHeight+1:n.winarea()-e.offsetHeight,e.style.top=Math.max(a+(t?0:n.scroll()),1)+"px"},n.follow=function(e){n.options.fixed?(e.style.position="fixed",n.orien(e,1)):(e.style.position="absolute",n.orien(e))},n.viewtb=function(){var e,t=[],a=["日","一","二","三","四","五","六"],o={},d=s[i]("table"),r=s[i]("thead");return r.appendChild(s[i]("tr")),o.creath=function(e){var t=s[i]("th");t.innerHTML=a[e],r[l]("tr")[0].appendChild(t),t=null},n.each(new Array(6),function(a){t.push([]),e=d.insertRow(0),n.each(new Array(7),function(n){t[a][n]=0,0===a&&o.creath(n),e.insertCell(n)})}),d.insertBefore(r,d.children[0]),d.id=d.className="laydate_table",e=t=null,d.outerHTML.toLowerCase()}(),n.view=function(e,t){var o,l=n.query,r={};t=t||e,n.elem=e,n.options=t,n.options.format||(n.options.format=a.format),n.options.start=n.options.start||"",n.mm=r.mm=[n.options.min||a.min,n.options.max||a.max],n.mins=r.mm[0].match(/\d+/g),n.maxs=r.mm[1].match(/\d+/g),n.box?n.shde(n.box):(o=s[i]("div"),o.id=d[0],o.className=d[0],o.style.cssText="position: absolute;",o.setAttribute("name","laydate-v"+laydate.v),o.innerHTML=r.html='
      '+function(){var e="";return n.each(new Array(12),function(t){e+=''+n.digit(t+1)+"月"}),e}()+"
      "+n.viewtb+'",s.body.appendChild(o),n.box=l("#"+d[0]),n.events(),o=null),n.follow(n.box),t.zIndex?n.box.style.zIndex=t.zIndex:n.removeCssAttr(n.box,"z-index"),n.stopMosup("click",n.box),n.initDate(),n.iswrite(),n.check()},n.reshow=function(){return n.each(n.query("#"+d[0]+" .laydate_show"),function(e,t){n.removeClass(t,"laydate_show")}),this},n.close=function(){n.reshow(),n.shde(n.query("#"+d[0]),1),n.elem=null},n.parse=function(e,t,s){return e=e.concat(t),s=s||(n.options?n.options.format:a.format),s.replace(/YYYY|MM|DD|hh|mm|ss/g,function(t,a){return e.index=0|++e.index,n.digit(e[e.index])})},n.creation=function(e,t){var a=(n.query,n.hmsin),s=n.parse(e,[a[0].value,a[1].value,a[2].value]);n.elem[d.elemv]=s,t||(n.close(),"function"==typeof n.options.choose&&n.options.choose(s))},n.events=function(){var e=n.query,a={box:"#"+d[0]};n.addClass(s.body,"laydate_body"),d.tds=e("#laydate_table td"),d.mms=e("#laydate_ms span"),d.year=e("#laydate_y"),d.month=e("#laydate_m"),n.each(e(a.box+" .laydate_ym"),function(e,t){n.on(t,"click",function(t){n.stopmp(t).reshow(),n.addClass(this[l]("div")[0],"laydate_show"),e||(a.YY=parseInt(d.year.value),n.viewYears(a.YY))})}),n.on(e(a.box),"click",function(){n.reshow()}),a.tabYear=function(e){0===e?n.ymd[0]--:1===e?n.ymd[0]++:2===e?a.YY-=14:a.YY+=14,e<2?(n.viewDate(n.ymd[0],n.ymd[1],n.ymd[2]),n.reshow()):n.viewYears(a.YY)},n.each(e("#laydate_YY .laydate_tab"),function(e,t){n.on(t,"click",function(t){n.stopmp(t),a.tabYear(e)})}),a.tabMonth=function(e){e?(n.ymd[1]++,12===n.ymd[1]&&(n.ymd[0]++,n.ymd[1]=0)):(n.ymd[1]--,n.ymd[1]===-1&&(n.ymd[0]--,n.ymd[1]=11)),n.viewDate(n.ymd[0],n.ymd[1],n.ymd[2])},n.each(e("#laydate_MM .laydate_tab"),function(e,t){n.on(t,"click",function(t){n.stopmp(t).reshow(),a.tabMonth(e)})}),n.each(e("#laydate_ms span"),function(e,t){n.on(t,"click",function(e){n.stopmp(e).reshow(),n.hasClass(this,d[1])||n.viewDate(n.ymd[0],0|this.getAttribute("m"),n.ymd[2])})}),n.each(e("#laydate_table td"),function(e,t){n.on(t,"click",function(e){n.hasClass(this,d[1])||(n.stopmp(e),n.creation([0|this.getAttribute("y"),0|this.getAttribute("m"),0|this.getAttribute("d")]))})}),d.oclear=e("#laydate_clear"),n.on(d.oclear,"click",function(){n.elem[d.elemv]="",n.close()}),d.otoday=e("#laydate_today"),n.on(d.otoday,"click",function(){var e=new Date;n.creation([e.getFullYear(),e.getMonth()+1,e.getDate()])}),d.ok=e("#laydate_ok"),n.on(d.ok,"click",function(){n.valid&&n.creation([n.ymd[0],n.ymd[1]+1,n.ymd[2]])}),a.times=e("#laydate_time"),n.hmsin=a.hmsin=e("#laydate_hms input"),a.hmss=["小时","分钟","秒数"],a.hmsarr=[],n.msg=function(t,s){var i='
      '+(s||"提示")+"×
      ";"string"==typeof t?(i+="

      "+t+"

      ",n.shde(e("#"+d[0])),n.removeClass(a.times,"laydate_time1").addClass(a.times,"laydate_msg")):(a.hmsarr[t]?i=a.hmsarr[t]:(i+='
      ',n.each(new Array(0===t?24:60),function(e){i+=""+e+""}),i+="
      ",a.hmsarr[t]=i),n.removeClass(a.times,"laydate_msg"),n[0===t?"removeClass":"addClass"](a.times,"laydate_time1")),n.addClass(a.times,"laydate_show"),a.times.innerHTML=i},a.hmson=function(t,a){var s=e("#laydate_hmsno span"),i=n.valid?null:1;n.each(s,function(e,s){i?n.addClass(s,d[1]):n.timeVoid(e,a)?n.addClass(s,d[1]):n.on(s,"click",function(e){n.hasClass(this,d[1])||(t.value=n.digit(0|this.innerHTML))})}),n.addClass(s[0|t.value],"laydate_click")},n.each(a.hmsin,function(e,t){n.on(t,"click",function(t){n.stopmp(t).reshow(),n.msg(e,a.hmss[e]),a.hmson(this,e)})}),n.on(s,"mouseup",function(){var t=e("#"+d[0]);t&&"none"!==t.style.display&&(n.check()||n.close())}).on(s,"keydown",function(e){e=e||t.event;var a=e.keyCode;13===a&&n.elem&&n.creation([n.ymd[0],n.ymd[1]+1,n.ymd[2]])})},laydate.reset=function(){n.box&&n.elem&&n.follow(n.box)},laydate.now=function(e,t){var a=new Date(0|e?function(e){return e<864e5?+new Date+864e5*e:e}(parseInt(e)):+new Date);return n.parse([a.getFullYear(),a.getMonth()+1,a.getDate()],[a.getHours(),a.getMinutes(),a.getSeconds()],t)},layui.addcss("modules/laydate/laydate.css",function(){},"laydatecss"),e("laydate",laydate)});!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"function"!==n&&!pe.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Ce.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]=!0}),t}function a(){re.addEventListener?(re.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(re.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(re.addEventListener||"load"===e.event.type||"complete"===re.readyState)&&(a(),pe.ready())}function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(_e,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:qe.test(n)?pe.parseJSON(n):n)}catch(i){}pe.data(e,t,n)}else n=void 0}return n}function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.cache:e,l=s?e[a]:e[a]&&a;if(l&&u[l]&&(r||u[l].data)||void 0!==n||"string"!=typeof t)return l||(l=s?e[a]=ne.pop()||pe.guid++:a),u[l]||(u[l]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(r?u[l]=pe.extend(u[l],t):u[l].data=pe.extend(u[l].data,t)),o=u[l],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(i=o[t],null==i&&(i=o[pe.camelCase(t)])):i=o,i}}function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in r?t=[t]:(t=pe.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!l(r):!pe.isEmptyObject(r))return}(n||(delete a[s].data,l(a[s])))&&(o?pe.cleanData([e],!0):fe.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return pe.css(e,t,"")},u=s(),l=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==l&&+u)&&Me.exec(pe.css(e,t));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+u||1;do o=o||".5",c/=o,pe.style(e,t,c+l);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||pe.nodeName(r,t)?o.push(r):pe.merge(o,h(r,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval",!t||pe._data(t[r],"globalEval"))}function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x"!==f[1]||Ve.test(a)?0:u:u.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(v,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=y.lastChild}else v.push(t.createTextNode(a));for(u&&y.removeChild(u),fe.appendChecked||pe.grep(h(v,"input"),m),x=0;a=v[x++];)if(r&&pe.inArray(a,r)>-1)i&&i.push(a);else if(s=pe.contains(a.ownerDocument,a),u=h(y.appendChild(a),"script"),s&&g(u),n)for(o=0;a=u[o++];)Ie.test(a.type||"")&&n.push(a);return u=null,y}function v(){return!0}function x(){return!1}function b(){try{return re.activeElement}catch(e){}}function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)w(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),i===!1)i=x;else if(!i)return e;return 1===o&&(a=i,i=function(e){return pe().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,i,r,n)})}function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;r1&&"string"==typeof p&&!fe.checkClone&&rt.test(p))return e.each(function(i){var o=e.eq(i);g&&(t[0]=p.call(this,i,o.html())),S(o,t,n,r)});if(f&&(l=y(t,e[0].ownerDocument,!1,e,r),i=l.firstChild,1===l.childNodes.length&&(l=i),i||r)){for(s=pe.map(h(l,"script"),C),a=s.length;c")).appendTo(t.documentElement),t=(ut[0].contentWindow||ut[0].contentDocument).document,t.write(),t.close(),n=D(e,t),ut.detach()),lt[e]=n),n}function L(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=Ct.length;n--;)if(e=Ct[n]+t,e in Et)return e}function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a=0&&n=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==pe.type(e)||e.nodeType||pe.isWindow(e))return!1;try{if(e.constructor&&!ce.call(e,"constructor")&&!ce.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(!fe.ownFirst)for(t in e)return ce.call(e,t);for(t in e);return void 0===t||ce.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?ue[le.call(e)]||"object":typeof e},globalEval:function(t){t&&pe.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ge,"ms-").replace(me,ye)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var r,i=0;if(n(e))for(r=e.length;iT.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[P]=!0,e}function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||V)-(~e.sourceIndex||V);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function f(){}function d(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,n,r){for(var i=0,o=n.length;i-1&&(r[l]=!(a[l]=f))}}else x=m(x===a?x.splice(h,x.length):x),o?o(null,a,x,u):Q.apply(a,x)})}function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.relative[" "],s=o?1:0,u=p(function(e){return e===t},a,!0),l=p(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==A)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];s1&&h(c),s>1&&d(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,s0,o=e.length>0,a=function(r,a,s,u,l){var c,f,d,p=0,h="0",g=r&&[],y=[],v=A,x=r||o&&T.find.TAG("*",l),b=W+=null==v?1:Math.random()||.1,w=x.length;for(l&&(A=a===H||a||l);h!==w&&null!=(c=x[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===H||(L(c),s=!_);d=e[f++];)if(d(c,a||H,s)){u.push(c);break}l&&(W=b)}i&&((c=!d&&c)&&p--,r&&g.push(c))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,y,a,s);if(r){if(p>0)for(;h--;)g[h]||y[h]||(y[h]=G.call(u));y=m(y)}Q.apply(u,y),l&&!r&&y.length>0&&p+n.length>1&&t.uniqueSort(u)}return l&&(W=b,A=v),g};return i?r(a):a}var b,w,T,C,E,N,k,S,A,D,j,L,H,q,_,F,M,O,R,P="sizzle"+1*new Date,B=e.document,W=0,I=0,$=n(),z=n(),X=n(),U=function(e,t){return e===t&&(j=!0),0},V=1<<31,Y={}.hasOwnProperty,J=[],G=J.pop,K=J.push,Q=J.push,Z=J.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),ce=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),de=new RegExp("^"+re+"$"),pe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,xe=/'|\\/g,be=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),we=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Te=function(){L()};try{Q.apply(J=Z.call(B.childNodes),B.childNodes),J[B.childNodes.length].nodeType}catch(Ce){Q={apply:J.length?function(e,t){K.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},E=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},L=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:B;return r!==H&&9===r.nodeType&&r.documentElement?(H=r,q=H.documentElement,_=!E(H),(n=H.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Te,!1):n.attachEvent&&n.attachEvent("onunload",Te)),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(H.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=me.test(H.getElementsByClassName),w.getById=i(function(e){return q.appendChild(e).id=P,!H.getElementsByName||!H.getElementsByName(P).length}),w.getById?(T.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&_){var n=t.getElementById(e);return n?[n]:[]}},T.filter.ID=function(e){var t=e.replace(be,we);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(be,we);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),T.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},T.find.CLASS=w.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&_)return t.getElementsByClassName(e)},M=[],F=[],(w.qsa=me.test(H.querySelectorAll))&&(i(function(e){q.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&F.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||F.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+P+"-]").length||F.push("~="),e.querySelectorAll(":checked").length||F.push(":checked"),e.querySelectorAll("a#"+P+"+*").length||F.push(".#.+[+~]")}),i(function(e){var t=H.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&F.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||F.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),F.push(",.*:")})),(w.matchesSelector=me.test(O=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&i(function(e){w.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),M.push("!=",oe)}),F=F.length&&new RegExp(F.join("|")),M=M.length&&new RegExp(M.join("|")),t=me.test(q.compareDocumentPosition),R=t||me.test(q.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return j=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===H||e.ownerDocument===B&&R(B,e)?-1:t===H||t.ownerDocument===B&&R(B,t)?1:D?ee(D,e)-ee(D,t):0:4&n?-1:1)}:function(e,t){if(e===t)return j=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===H?-1:t===H?1:i?-1:o?1:D?ee(D,e)-ee(D,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===B?-1:u[r]===B?1:0},H):H},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==H&&L(e),n=n.replace(ce,"='$1']"),w.matchesSelector&&_&&!X[n+" "]&&(!M||!M.test(n))&&(!F||!F.test(n)))try{var r=O.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,H,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==H&&L(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==H&&L(e);var n=T.attrHandle[t.toLowerCase()],r=n&&Y.call(T.attrHandle,t.toLowerCase())?n(e,t,!_):void 0;return void 0!==r?r:w.attributes||!_?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!w.detectDuplicates,D=!w.sortStable&&e.slice(0),e.sort(U),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return D=null,e},C=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},T=t.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(be,we),e[3]=(e[3]||e[4]||e[5]||"").replace(be,we),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(be,we).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s,x=!1;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===y:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(d=m,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}), l=c[e]||[],p=l[0]===W&&l[1],x=p&&l[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){c[e]=[W,p,x];break}}else if(v&&(d=t,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),l=c[e]||[],p=l[0]===W&&l[1],x=p),x===!1)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==y:1!==d.nodeType)||!++x||(v&&(f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),c[e]=[W,x]),d!==t)););return x-=i,x===r||x%r===0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=T.pseudos[e]||T.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[P]?o(n):o.length>1?(i=[e,e,"",n],T.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=ee(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(se,"$1"));return i[P]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(be,we),function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(be,we).toLowerCase(),function(t){var n;do if(n=_?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===q},focus:function(e){return e===H.activeElement&&(!H.hasFocus||H.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&_&&T.relative[o[1].type]){if(t=(T.find.ID(a.matches[0].replace(be,we),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pe.needsContext.test(e)?0:o.length;i--&&(a=o[i],!T.relative[s=a.type]);)if((u=T.find[s])&&(r=u(a.matches[0].replace(be,we),ve.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Q.apply(n,r),n;break}}return(l||k(e,f))(r,t,!_,n,!t||ve.test(e)&&c(t.parentNode)||t),n},w.sortStable=P.split("").sort(U).join("")===P,w.detectDuplicates=!!j,L(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(H.createElement("div"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);pe.find=ve,pe.expr=ve.selectors,pe.expr[":"]=pe.expr.pseudos,pe.uniqueSort=pe.unique=ve.uniqueSort,pe.text=ve.getText,pe.isXMLDoc=ve.isXML,pe.contains=ve.contains;var xe=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&pe(e).is(n))break;r.push(e)}return r},be=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},we=pe.expr.match.needsContext,Te=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Ce=/^.[^:#\[\.,]*$/;pe.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?pe.find.matchesSelector(r,e)?[r]:[]:pe.find.matches(e,pe.grep(t,function(e){return 1===e.nodeType}))},pe.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(pe(e).filter(function(){for(t=0;t1?pe.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&we.test(e)?pe(e):e||[],!1).length}});var Ee,Ne=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ke=pe.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||Ee,"string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:Ne.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof pe?t[0]:t,pe.merge(this,pe.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:re,!0)),Te.test(r[1])&&pe.isPlainObject(t))for(r in t)pe.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}if(i=re.getElementById(r[2]),i&&i.parentNode){if(i.id!==r[2])return Ee.find(e);this.length=1,this[0]=i}return this.context=re,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):pe.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(pe):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),pe.makeArray(e,this))};ke.prototype=pe.fn,Ee=pe(re);var Se=/^(?:parents|prev(?:Until|All))/,Ae={children:!0,contents:!0,next:!0,prev:!0};pe.fn.extend({has:function(e){var t,n=pe(e,this),r=n.length;return this.filter(function(){for(t=0;t-1:1===n.nodeType&&pe.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?pe.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?pe.inArray(this[0],pe(e)):pe.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(pe.uniqueSort(pe.merge(this.get(),pe(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),pe.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return xe(e,"parentNode")},parentsUntil:function(e,t,n){return xe(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return xe(e,"nextSibling")},prevAll:function(e){return xe(e,"previousSibling")},nextUntil:function(e,t,n){return xe(e,"nextSibling",n)},prevUntil:function(e,t,n){return xe(e,"previousSibling",n)},siblings:function(e){return be((e.parentNode||{}).firstChild,e)},children:function(e){return be(e.firstChild)},contents:function(e){return pe.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:pe.merge([],e.childNodes)}},function(e,t){pe.fn[e]=function(n,r){var i=pe.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=pe.filter(r,i)),this.length>1&&(Ae[e]||(i=pe.uniqueSort(i)),Se.test(e)&&(i=i.reverse())),this.pushStack(i)}});var De=/\S+/g;pe.Callbacks=function(e){e="string"==typeof e?o(e):pe.extend({},e);var t,n,r,i,a=[],s=[],u=-1,l=function(){for(i=e.once,r=t=!0;s.length;u=-1)for(n=s.shift();++u-1;)a.splice(n,1),n<=u&&u--}),this},has:function(e){return e?pe.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return i=s=[],a=n="",this},disabled:function(){return!a},lock:function(){return i=!0,n||c.disable(),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},pe.extend({Deferred:function(e){var t=[["resolve","done",pe.Callbacks("once memory"),"resolved"],["reject","fail",pe.Callbacks("once memory"),"rejected"],["notify","progress",pe.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return pe.Deferred(function(n){pe.each(t,function(t,o){var a=pe.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&pe.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?pe.extend(e,r):r}},i={};return r.pipe=r.then,pe.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=ie.call(arguments),a=o.length,s=1!==a||e&&pe.isFunction(e.promise)?a:0,u=1===s?e:pe.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?ie.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);i0||(je.resolveWith(re,[pe]),pe.fn.triggerHandler&&(pe(re).triggerHandler("ready"),pe(re).off("ready"))))}}),pe.ready.promise=function(t){if(!je)if(je=pe.Deferred(),"complete"===re.readyState||"loading"!==re.readyState&&!re.documentElement.doScroll)e.setTimeout(pe.ready);else if(re.addEventListener)re.addEventListener("DOMContentLoaded",s),e.addEventListener("load",s);else{re.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&re.documentElement}catch(r){}n&&n.doScroll&&!function i(){if(!pe.isReady){try{n.doScroll("left")}catch(t){return e.setTimeout(i,50)}a(),pe.ready()}}()}return je.promise(t)},pe.ready.promise();var Le;for(Le in pe(fe))break;fe.ownFirst="0"===Le,fe.inlineBlockNeedsLayout=!1,pe(function(){var e,t,n,r;n=re.getElementsByTagName("body")[0],n&&n.style&&(t=re.createElement("div"),r=re.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",fe.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=re.createElement("div");fe.deleteExpando=!0;try{delete e.test}catch(t){fe.deleteExpando=!1}e=null}();var He=function(e){var t=pe.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||t!==!0&&e.getAttribute("classid")===t)},qe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,_e=/([A-Z])/g;pe.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?pe.cache[e[pe.expando]]:e[pe.expando],!!e&&!l(e)},data:function(e,t,n){return c(e,t,n)},removeData:function(e,t){return f(e,t)},_data:function(e,t,n){return c(e,t,n,!0)},_removeData:function(e,t){return f(e,t,!0)}}),pe.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=pe.data(o),1===o.nodeType&&!pe._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=pe.camelCase(r.slice(5)),u(o,r,i[r])));pe._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){pe.data(this,e)}):arguments.length>1?this.each(function(){pe.data(this,e,t)}):o?u(o,e,pe.data(o,e)):void 0},removeData:function(e){return this.each(function(){pe.removeData(this,e)})}}),pe.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=pe._data(e,t),n&&(!r||pe.isArray(n)?r=pe._data(e,t,pe.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=pe.queue(e,t),r=n.length,i=n.shift(),o=pe._queueHooks(e,t),a=function(){pe.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return pe._data(e,n)||pe._data(e,n,{empty:pe.Callbacks("once memory").add(function(){pe._removeData(e,t+"queue"),pe._removeData(e,n)})})}}),pe.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length
      a",fe.leadingWhitespace=3===e.firstChild.nodeType,fe.tbody=!e.getElementsByTagName("tbody").length,fe.htmlSerialize=!!e.getElementsByTagName("link").length,fe.html5Clone="<:nav>"!==re.createElement("nav").cloneNode(!0).outerHTML,n.type="checkbox",n.checked=!0,t.appendChild(n),fe.appendChecked=n.checked,e.innerHTML="",fe.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue,t.appendChild(e),n=re.createElement("input"),n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),fe.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,fe.noCloneEvent=!!e.addEventListener,e[pe.expando]=1,fe.attributes=!e.getAttribute(pe.expando)}();var Xe={option:[1,""],legend:[1,"
      ","
      "],area:[1,"",""],param:[1,"",""],thead:[1,"","
      "],tr:[2,"","
      "],col:[2,"","
      "],td:[3,"","
      "],_default:fe.htmlSerialize?[0,"",""]:[1,"X
      ","
      "]};Xe.optgroup=Xe.option,Xe.tbody=Xe.tfoot=Xe.colgroup=Xe.caption=Xe.thead,Xe.th=Xe.td;var Ue=/<|&#?\w+;/,Ve=/-1&&(h=p.split("."),p=h.shift(),h.sort()),a=p.indexOf(":")<0&&"on"+p,t=t[pe.expando]?t:new pe.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:pe.makeArray(n,[t]),l=pe.event.special[p]||{},i||!l.trigger||l.trigger.apply(r,n)!==!1)){if(!i&&!l.noBubble&&!pe.isWindow(r)){for(u=l.delegateType||p,Ke.test(u+p)||(s=s.parentNode);s;s=s.parentNode)d.push(s),c=s;c===(r.ownerDocument||re)&&d.push(c.defaultView||c.parentWindow||e)}for(f=0;(s=d[f++])&&!t.isPropagationStopped();)t.type=f>1?u:l.bindType||p,o=(pe._data(s,"events")||{})[t.type]&&pe._data(s,"handle"),o&&o.apply(s,n),o=a&&s[a],o&&o.apply&&He(s)&&(t.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=p,!i&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(d.pop(),n)===!1)&&He(r)&&a&&r[p]&&!pe.isWindow(r)){c=r[a],c&&(r[a]=null),pe.event.triggered=p;try{r[p]()}catch(g){}pe.event.triggered=void 0,c&&(r[a]=c)}return t.result}},dispatch:function(e){e=pe.event.fix(e);var t,n,r,i,o,a=[],s=ie.call(arguments),u=(pe._data(this,"events")||{})[e.type]||[],l=pe.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(a=pe.event.handlers.call(this,e,u),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,r=((pe.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(r=[],n=0;n-1:pe.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s]","i"),tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,nt=/\s*$/g,at=p(re),st=at.appendChild(re.createElement("div"));pe.extend({htmlPrefilter:function(e){return e.replace(tt,"<$1>")},clone:function(e,t,n){var r,i,o,a,s,u=pe.contains(e.ownerDocument,e);if(fe.html5Clone||pe.isXMLDoc(e)||!et.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(st.innerHTML=e.outerHTML,st.removeChild(o=st.firstChild)),!(fe.noCloneEvent&&fe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||pe.isXMLDoc(e)))for(r=h(o),s=h(e),a=0;null!=(i=s[a]);++a)r[a]&&k(i,r[a]);if(t)if(n)for(s=s||h(e),r=r||h(o),a=0;null!=(i=s[a]);a++)N(i,r[a]);else N(e,o);return r=h(o,"script"),r.length>0&&g(r,!u&&h(e,"script")),r=s=i=null,o},cleanData:function(e,t){for(var n,r,i,o,a=0,s=pe.expando,u=pe.cache,l=fe.attributes,c=pe.event.special;null!=(n=e[a]);a++)if((t||He(n))&&(i=n[s],o=i&&u[i])){if(o.events)for(r in o.events)c[r]?pe.event.remove(n,r):pe.removeEvent(n,r,o.handle);u[i]&&(delete u[i],l||"undefined"==typeof n.removeAttribute?n[s]=void 0:n.removeAttribute(s),ne.push(i))}}}),pe.fn.extend({domManip:S,detach:function(e){return A(this,e,!0)},remove:function(e){return A(this,e)},text:function(e){return Pe(this,function(e){return void 0===e?pe.text(this):this.empty().append((this[0]&&this[0].ownerDocument||re).createTextNode(e))},null,e,arguments.length)},append:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.appendChild(e)}})},prepend:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&pe.cleanData(h(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&pe.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return pe.clone(this,e,t)})},html:function(e){return Pe(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Ze,""):void 0;if("string"==typeof e&&!nt.test(e)&&(fe.htmlSerialize||!et.test(e))&&(fe.leadingWhitespace||!$e.test(e))&&!Xe[(We.exec(e)||["",""])[1].toLowerCase()]){e=pe.htmlPrefilter(e);try{for(;nt",t=l.getElementsByTagName("td"),t[0].style.cssText="margin:0;border:0;padding:0;display:none",o=0===t[0].offsetHeight,o&&(t[0].style.display="",t[1].style.display="none",o=0===t[0].offsetHeight)),f.removeChild(u)}var n,r,i,o,a,s,u=re.createElement("div"),l=re.createElement("div");l.style&&(l.style.cssText="float:left;opacity:.5",fe.opacity="0.5"===l.style.opacity,fe.cssFloat=!!l.style.cssFloat,l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",fe.clearCloneStyle="content-box"===l.style.backgroundClip,u=re.createElement("div"),u.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",l.innerHTML="",u.appendChild(l),fe.boxSizing=""===l.style.boxSizing||""===l.style.MozBoxSizing||""===l.style.WebkitBoxSizing,pe.extend(fe,{reliableHiddenOffsets:function(){return null==n&&t(),o},boxSizingReliable:function(){return null==n&&t(),i},pixelMarginRight:function(){return null==n&&t(),r},pixelPosition:function(){return null==n&&t(),n},reliableMarginRight:function(){return null==n&&t(),a},reliableMarginLeft:function(){return null==n&&t(),s}}))}();var ht,gt,mt=/^(top|right|bottom|left)$/;e.getComputedStyle?(ht=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n.getPropertyValue(t)||n[t]:void 0,""!==a&&void 0!==a||pe.contains(e.ownerDocument,e)||(a=pe.style(e,t)),n&&!fe.pixelMarginRight()&&ft.test(a)&&ct.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o),void 0===a?a:a+""}):pt.currentStyle&&(ht=function(e){return e.currentStyle},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),ft.test(a)&&!mt.test(t)&&(r=s.left,i=e.runtimeStyle,o=i&&i.left,o&&(i.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"});var yt=/alpha\([^)]*\)/i,vt=/opacity\s*=\s*([^)]*)/i,xt=/^(none|table(?!-c[ea]).+)/,bt=new RegExp("^("+Fe+")(.*)$","i"),wt={position:"absolute",visibility:"hidden",display:"block"},Tt={letterSpacing:"0",fontWeight:"400"},Ct=["Webkit","O","Moz","ms"],Et=re.createElement("div").style;pe.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=gt(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":fe.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=pe.camelCase(t),u=e.style;if(t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];if(o=typeof n,"string"===o&&(i=Me.exec(n))&&i[1]&&(n=d(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(pe.cssNumber[s]?"":"px")),fe.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{u[t]=n}catch(l){}}},css:function(e,t,n,r){var i,o,a,s=pe.camelCase(t);return t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=gt(e,t,r)),"normal"===o&&t in Tt&&(o=Tt[t]),""===n||n?(i=parseFloat(o),n===!0||isFinite(i)?i||0:o):o}}),pe.each(["height","width"],function(e,t){pe.cssHooks[t]={get:function(e,n,r){if(n)return xt.test(pe.css(e,"display"))&&0===e.offsetWidth?dt(e,wt,function(){return M(e,t,r)}):M(e,t,r)},set:function(e,n,r){var i=r&&ht(e);return _(e,n,r?F(e,t,r,fe.boxSizing&&"border-box"===pe.css(e,"boxSizing",!1,i),i):0)}}}),fe.opacity||(pe.cssHooks.opacity={get:function(e,t){return vt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=pe.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===pe.trim(o.replace(yt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=yt.test(o)?o.replace(yt,i):o+" "+i)}}),pe.cssHooks.marginRight=L(fe.reliableMarginRight,function(e,t){if(t)return dt(e,{display:"inline-block"},gt,[e,"marginRight"])}),pe.cssHooks.marginLeft=L(fe.reliableMarginLeft,function(e,t){if(t)return(parseFloat(gt(e,"marginLeft"))||(pe.contains(e.ownerDocument,e)?e.getBoundingClientRect().left-dt(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}):0))+"px"}),pe.each({margin:"",padding:"",border:"Width"},function(e,t){pe.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+Oe[r]+t]=o[r]||o[r-2]||o[0];return i}},ct.test(e)||(pe.cssHooks[e+t].set=_)}),pe.fn.extend({css:function(e,t){return Pe(this,function(e,t,n){var r,i,o={},a=0;if(pe.isArray(t)){for(r=ht(e),i=t.length;a1)},show:function(){return q(this,!0)},hide:function(){return q(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Re(this)?pe(this).show():pe(this).hide()})}}),pe.Tween=O,O.prototype={constructor:O,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||pe.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(pe.cssNumber[n]?"":"px")},cur:function(){var e=O.propHooks[this.prop];return e&&e.get?e.get(this):O.propHooks._default.get(this)},run:function(e){var t,n=O.propHooks[this.prop];return this.options.duration?this.pos=t=pe.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):O.propHooks._default.set(this),this}},O.prototype.init.prototype=O.prototype,O.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=pe.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){pe.fx.step[e.prop]?pe.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[pe.cssProps[e.prop]]&&!pe.cssHooks[e.prop]?e.elem[e.prop]=e.now:pe.style(e.elem,e.prop,e.now+e.unit)}}},O.propHooks.scrollTop=O.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},pe.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},pe.fx=O.prototype.init,pe.fx.step={};var Nt,kt,St=/^(?:toggle|show|hide)$/,At=/queueHooks$/;pe.Animation=pe.extend($,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return d(n.elem,e,Me.exec(t),n),n}]},tweener:function(e,t){pe.isFunction(e)?(t=e,e=["*"]):e=e.match(De);for(var n,r=0,i=e.length;r
      a",e=n.getElementsByTagName("a")[0],t.setAttribute("type","checkbox"),n.appendChild(t),e=n.getElementsByTagName("a")[0],e.style.cssText="top:1px",fe.getSetAttribute="t"!==n.className,fe.style=/top/.test(e.getAttribute("style")),fe.hrefNormalized="/a"===e.getAttribute("href"),fe.checkOn=!!t.value,fe.optSelected=i.selected,fe.enctype=!!re.createElement("form").enctype,r.disabled=!0,fe.optDisabled=!i.disabled,t=re.createElement("input"),t.setAttribute("value",""),fe.input=""===t.getAttribute("value"),t.value="t",t.setAttribute("type","radio"),fe.radioValue="t"===t.value}();var Dt=/\r/g,jt=/[\x20\t\r\n\f]+/g;pe.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=pe.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,pe(this).val()):e,null==i?i="":"number"==typeof i?i+="":pe.isArray(i)&&(i=pe.map(i,function(e){return null==e?"":e+""})),t=pe.valHooks[this.type]||pe.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=pe.valHooks[i.type]||pe.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Dt,""):null==n?"":n)}}}),pe.extend({valHooks:{option:{get:function(e){var t=pe.find.attr(e,"value");return null!=t?t:pe.trim(pe.text(e)).replace(jt," ")}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u-1)try{r.selected=n=!0}catch(s){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),pe.each(["radio","checkbox"],function(){pe.valHooks[this]={set:function(e,t){if(pe.isArray(t))return e.checked=pe.inArray(pe(e).val(),t)>-1}},fe.checkOn||(pe.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Lt,Ht,qt=pe.expr.attrHandle,_t=/^(?:checked|selected)$/i,Ft=fe.getSetAttribute,Mt=fe.input;pe.fn.extend({attr:function(e,t){return Pe(this,pe.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){pe.removeAttr(this,e)})}}),pe.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?pe.prop(e,t,n):(1===o&&pe.isXMLDoc(e)||(t=t.toLowerCase(),i=pe.attrHooks[t]||(pe.expr.match.bool.test(t)?Ht:Lt)),void 0!==n?null===n?void pe.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=pe.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!fe.radioValue&&"radio"===t&&pe.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(De);if(o&&1===e.nodeType)for(;n=o[i++];)r=pe.propFix[n]||n,pe.expr.match.bool.test(n)?Mt&&Ft||!_t.test(n)?e[r]=!1:e[pe.camelCase("default-"+n)]=e[r]=!1:pe.attr(e,n,""),e.removeAttribute(Ft?n:r)}}),Ht={set:function(e,t,n){return t===!1?pe.removeAttr(e,n):Mt&&Ft||!_t.test(n)?e.setAttribute(!Ft&&pe.propFix[n]||n,n):e[pe.camelCase("default-"+n)]=e[n]=!0,n}},pe.each(pe.expr.match.bool.source.match(/\w+/g),function(e,t){var n=qt[t]||pe.find.attr;Mt&&Ft||!_t.test(t)?qt[t]=function(e,t,r){var i,o;return r||(o=qt[t],qt[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,qt[t]=o),i}:qt[t]=function(e,t,n){if(!n)return e[pe.camelCase("default-"+t)]?t.toLowerCase():null}}),Mt&&Ft||(pe.attrHooks.value={set:function(e,t,n){return pe.nodeName(e,"input")?void(e.defaultValue=t):Lt&&Lt.set(e,t,n)}}),Ft||(Lt={set:function(e,t,n){var r=e.getAttributeNode(n);if(r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n))return t}},qt.id=qt.name=qt.coords=function(e,t,n){var r;if(!n)return(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},pe.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:Lt.set},pe.attrHooks.contenteditable={set:function(e,t,n){Lt.set(e,""!==t&&t,n)}},pe.each(["width","height"],function(e,t){pe.attrHooks[t]={set:function(e,n){if(""===n)return e.setAttribute(t,"auto"),n}}})),fe.style||(pe.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Ot=/^(?:input|select|textarea|button|object)$/i,Rt=/^(?:a|area)$/i;pe.fn.extend({prop:function(e,t){return Pe(this,pe.prop,e,t,arguments.length>1)},removeProp:function(e){return e=pe.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),pe.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&pe.isXMLDoc(e)||(t=pe.propFix[t]||t,i=pe.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=pe.find.attr(e,"tabindex");return t?parseInt(t,10):Ot.test(e.nodeName)||Rt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),fe.hrefNormalized||pe.each(["href","src"],function(e,t){pe.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),fe.optSelected||(pe.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),pe.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){pe.propFix[this.toLowerCase()]=this}),fe.enctype||(pe.propFix.enctype="encoding");var Pt=/[\t\r\n\f]/g;pe.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).addClass(e.call(this,t,z(this)))});if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).removeClass(e.call(this,t,z(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):pe.isFunction(e)?this.each(function(n){pe(this).toggleClass(e.call(this,n,z(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=pe(this),o=e.match(De)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||(t=z(this),t&&pe._data(this,"__className__",t),pe.attr(this,"class",t||e===!1?"":pe._data(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+z(n)+" ").replace(Pt," ").indexOf(t)>-1)return!0;return!1}}),pe.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){pe.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),pe.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}});var Bt=e.location,Wt=pe.now(),It=/\?/,$t=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;pe.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=pe.trim(t+"");return i&&!pe.trim(i.replace($t,function(e,t,i,o){return n&&t&&(r=0),0===r?e:(n=i||t,r+=!o-!i,"")}))?Function("return "+i)():pe.error("Invalid JSON: "+t)},pe.parseXML=function(t){var n,r;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(r=new e.DOMParser,n=r.parseFromString(t,"text/xml")):(n=new e.ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(i){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||pe.error("Invalid XML: "+t),n};var zt=/#.*$/,Xt=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Vt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Yt=/^(?:GET|HEAD)$/,Jt=/^\/\//,Gt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Kt={},Qt={},Zt="*/".concat("*"),en=Bt.href,tn=Gt.exec(en.toLowerCase())||[];pe.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:en,type:"GET",isLocal:Vt.test(tn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":pe.parseJSON,"text xml":pe.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?V(V(e,pe.ajaxSettings),t):V(pe.ajaxSettings,e)},ajaxPrefilter:X(Kt),ajaxTransport:X(Qt),ajax:function(t,n){function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c=void 0,s=i||"",T.readyState=t>0?4:0,o=t>=200&&t<300||304===t,r&&(x=Y(d,T,r)),x=J(d,x,T,o),o?(d.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(pe.lastModified[a]=w),w=T.getResponseHeader("etag"),w&&(pe.etag[a]=w)),204===t||"HEAD"===d.type?C="nocontent":304===t?C="notmodified":(C=x.state,f=x.data,v=x.error,o=!v)):(v=C,!t&&C||(C="error",t<0&&(t=0))),T.status=t,T.statusText=(n||C)+"",o?g.resolveWith(p,[f,C,T]):g.rejectWith(p,[T,C,v]),T.statusCode(y),y=void 0,l&&h.trigger(o?"ajaxSuccess":"ajaxError",[T,d,o?f:v]),m.fireWith(p,[T,C]),l&&(h.trigger("ajaxComplete",[T,d]),--pe.active||pe.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,d=pe.ajaxSetup({},n),p=d.context||d,h=d.context&&(p.nodeType||p.jquery)?pe(p):pe.event,g=pe.Deferred(),m=pe.Callbacks("once memory"),y=d.statusCode||{},v={},x={},b=0,w="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!f)for(f={};t=Ut.exec(s);)f[t[1].toLowerCase()]=t[2];t=f[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=x[n]=x[n]||e,v[e]=t),this},overrideMimeType:function(e){return b||(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)y[t]=[y[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||w;return c&&c.abort(t),r(0,t),this}};if(g.promise(T).complete=m.add,T.success=T.done,T.error=T.fail,d.url=((t||d.url||en)+"").replace(zt,"").replace(Jt,tn[1]+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=pe.trim(d.dataType||"*").toLowerCase().match(De)||[""],null==d.crossDomain&&(i=Gt.exec(d.url.toLowerCase()),d.crossDomain=!(!i||i[1]===tn[1]&&i[2]===tn[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(tn[3]||("http:"===tn[1]?"80":"443")))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=pe.param(d.data,d.traditional)),U(Kt,d,n,T),2===b)return T;l=pe.event&&d.global,l&&0===pe.active++&&pe.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Yt.test(d.type),a=d.url,d.hasContent||(d.data&&(a=d.url+=(It.test(a)?"&":"?")+d.data,delete d.data),d.cache===!1&&(d.url=Xt.test(a)?a.replace(Xt,"$1_="+Wt++):a+(It.test(a)?"&":"?")+"_="+Wt++)),d.ifModified&&(pe.lastModified[a]&&T.setRequestHeader("If-Modified-Since",pe.lastModified[a]),pe.etag[a]&&T.setRequestHeader("If-None-Match",pe.etag[a])),(d.data&&d.hasContent&&d.contentType!==!1||n.contentType)&&T.setRequestHeader("Content-Type",d.contentType),T.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Zt+"; q=0.01":""):d.accepts["*"]);for(o in d.headers)T.setRequestHeader(o,d.headers[o]);if(d.beforeSend&&(d.beforeSend.call(p,T,d)===!1||2===b))return T.abort();w="abort";for(o in{success:1,error:1,complete:1})T[o](d[o]);if(c=U(Qt,d,n,T)){if(T.readyState=1,l&&h.trigger("ajaxSend",[T,d]),2===b)return T;d.async&&d.timeout>0&&(u=e.setTimeout(function(){T.abort("timeout")},d.timeout));try{b=1,c.send(v,r)}catch(C){if(!(b<2))throw C;r(-1,C)}}else r(-1,"No Transport");return T},getJSON:function(e,t,n){return pe.get(e,t,n,"json")},getScript:function(e,t){return pe.get(e,void 0,t,"script")}}),pe.each(["get","post"],function(e,t){pe[t]=function(e,n,r,i){return pe.isFunction(n)&&(i=i||r,r=n,n=void 0),pe.ajax(pe.extend({url:e,type:t,dataType:i,data:n,success:r},pe.isPlainObject(e)&&e))}}),pe._evalUrl=function(e){return pe.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},pe.fn.extend({wrapAll:function(e){if(pe.isFunction(e))return this.each(function(t){pe(this).wrapAll(e.call(this,t))});if(this[0]){var t=pe(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return pe.isFunction(e)?this.each(function(t){pe(this).wrapInner(e.call(this,t))}):this.each(function(){var t=pe(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=pe.isFunction(e);return this.each(function(n){pe(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){pe.nodeName(this,"body")||pe(this).replaceWith(this.childNodes)}).end()}}),pe.expr.filters.hidden=function(e){return fe.reliableHiddenOffsets()?e.offsetWidth<=0&&e.offsetHeight<=0&&!e.getClientRects().length:K(e)},pe.expr.filters.visible=function(e){return!pe.expr.filters.hidden(e)};var nn=/%20/g,rn=/\[\]$/,on=/\r?\n/g,an=/^(?:submit|button|image|reset|file)$/i,sn=/^(?:input|select|textarea|keygen)/i;pe.param=function(e,t){var n,r=[],i=function(e,t){t=pe.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=pe.ajaxSettings&&pe.ajaxSettings.traditional),pe.isArray(e)||e.jquery&&!pe.isPlainObject(e))pe.each(e,function(){i(this.name,this.value)});else for(n in e)Q(n,e[n],t,i);return r.join("&").replace(nn,"+")},pe.fn.extend({serialize:function(){return pe.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=pe.prop(this,"elements");return e?pe.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!pe(this).is(":disabled")&&sn.test(this.nodeName)&&!an.test(e)&&(this.checked||!Be.test(e))}).map(function(e,t){var n=pe(this).val();return null==n?null:pe.isArray(n)?pe.map(n,function(e){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),pe.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return this.isLocal?ee():re.documentMode>8?Z():/^(get|post|head|put|delete|options)$/i.test(this.type)&&Z()||ee()}:Z;var un=0,ln={},cn=pe.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var e in ln)ln[e](void 0,!0)}),fe.cors=!!cn&&"withCredentials"in cn,cn=fe.ajax=!!cn,cn&&pe.ajaxTransport(function(t){if(!t.crossDomain||fe.cors){var n;return{send:function(r,i){var o,a=t.xhr(),s=++un;if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(o in t.xhrFields)a[o]=t.xhrFields[o];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(o in r)void 0!==r[o]&&a.setRequestHeader(o,r[o]+"");a.send(t.hasContent&&t.data||null),n=function(e,r){var o,u,l;if(n&&(r||4===a.readyState))if(delete ln[s],n=void 0,a.onreadystatechange=pe.noop,r)4!==a.readyState&&a.abort();else{l={},o=a.status,"string"==typeof a.responseText&&(l.text=a.responseText);try{u=a.statusText}catch(c){u=""}o||!t.isLocal||t.crossDomain?1223===o&&(o=204):o=l.text?200:404}l&&i(o,u,l,a.getAllResponseHeaders())},t.async?4===a.readyState?e.setTimeout(n):a.onreadystatechange=ln[s]=n:n()},abort:function(){n&&n(void 0,!0)}}}}),pe.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return pe.globalEval(e),e}}}),pe.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),pe.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=re.head||pe("head")[0]||re.documentElement;return{send:function(r,i){t=re.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var fn=[],dn=/(=)\?(?=&|$)|\?\?/;pe.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=fn.pop()||pe.expando+"_"+Wt++;return this[e]=!0,e}}),pe.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=t.jsonp!==!1&&(dn.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&dn.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=pe.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(dn,"$1"+i):t.jsonp!==!1&&(t.url+=(It.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||pe.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?pe(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,fn.push(i)),a&&pe.isFunction(o)&&o(a[0]),a=o=void 0}),"script"}),pe.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||re;var r=Te.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=y([e],t,i),i&&i.length&&pe(i).remove(),pe.merge([],r.childNodes))};var pn=pe.fn.load;return pe.fn.load=function(e,t,n){if("string"!=typeof e&&pn)return pn.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=pe.trim(e.slice(s,e.length)),e=e.slice(0,s)),pe.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&pe.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?pe("
      ").append(pe.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},pe.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){pe.fn[t]=function(e){return this.on(t,e)}}),pe.expr.filters.animated=function(e){return pe.grep(pe.timers,function(t){return e===t.elem}).length},pe.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=pe.css(e,"position"),f=pe(e),d={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=pe.css(e,"top"),u=pe.css(e,"left"),l=("absolute"===c||"fixed"===c)&&pe.inArray("auto",[o,u])>-1,l?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),pe.isFunction(t)&&(t=t.call(e,n,pe.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):f.css(d)}},pe.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){pe.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(o)return t=o.documentElement,pe.contains(t,i)?("undefined"!=typeof i.getBoundingClientRect&&(r=i.getBoundingClientRect()),n=te(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===pe.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),pe.nodeName(e[0],"html")||(n=e.offset()),n.top+=pe.css(e[0],"borderTopWidth",!0),n.left+=pe.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-pe.css(r,"marginTop",!0),left:t.left-n.left-pe.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){ for(var e=this.offsetParent;e&&!pe.nodeName(e,"html")&&"static"===pe.css(e,"position");)e=e.offsetParent;return e||pt})}}),pe.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);pe.fn[e]=function(r){return Pe(this,function(e,r,i){var o=te(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?pe(o).scrollLeft():i,n?i:pe(o).scrollTop()):e[r]=i)},e,r,arguments.length,null)}}),pe.each(["top","left"],function(e,t){pe.cssHooks[t]=L(fe.pixelPosition,function(e,n){if(n)return n=gt(e,t),ft.test(n)?pe(e).position()[t]+"px":n})}),pe.each({Height:"height",Width:"width"},function(e,t){pe.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){pe.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return Pe(this,function(t,n,r){var i;return pe.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?pe.css(t,n,a):pe.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),pe.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),pe.fn.size=function(){return this.length},pe.fn.andSelf=pe.fn.addBack,layui.define(function(e){e("jquery",pe)}),pe});!function(e,t){"use strict";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.scripts,t=e[e.length-1],i=t.src;if(!t.getAttribute("merge"))return i.substring(0,i.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"]},r={v:"3.0.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):r.link("skin/"+e.extend),this):this},link:function(t,n,a){if(r.path){var o=i("head")[0],l=document.createElement("link");"string"==typeof n&&(a=n);var s=(a||t).replace(/\.|\//g,""),f="layuicss-"+s,c=0;l.rel="stylesheet",l.href=r.path+t,l.id=f,i("#"+f)[0]||o.appendChild(l),"function"==typeof n&&!function d(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(i("#"+f).css("width"))?n():setTimeout(d,100))}()}},ready:function(e){var t="skinlayercss",i="1110";return a?layui.addcss("modules/layer/default/layer.css?v="+r.v+i,e,t):r.link("skin/default/layer.css?v="+r.v+i,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var l="function"==typeof t;return l&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},l?{}:t))},msg:function(e,n,a){var l="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",d=s.anim.length-1;return l&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},l&&!o.config.skin?{skin:c+" layui-layer-hui",anim:d}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},l=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},50)};l.pt=l.prototype;var s=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];s.anim=["layer-anim","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],l.pt.config={type:0,shade:.3,fixed:!0,move:s[1],title:"信息",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},l.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,l=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),d=r.title?'
      '+(f?r.title[0]:r.title)+"
      ":"";return r.zIndex=l,t([r.shade?'
      ':"",'
      '+(e&&2!=r.type?"":d)+'
      '+(0==r.type&&r.icon!==-1?'':"")+(1==r.type&&e?"":r.content||"")+'
      '+function(){var e=c?'':"";return r.closeBtn&&(e+=''),e}()+""+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t'+r.btn[t]+"";return'
      '+e+"
      "}():"")+(r.resize?'':"")+"
      "],d,i('
      ')),n},l.pt.creat=function(){var e=this,t=e.config,a=e.index,l=t.content,f="object"==typeof l,c=i("body");if(!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var l=t.content=f?t.content:[t.content||"http://layer.layui.com","auto"];t.content='';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}e.vessel(f,function(n,r,d){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){l.parents("."+s[0])[0]||(l.data("display",l.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+s[0]+a).find("."+s[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=d),e.layero=i("#"+s[0]+a),t.scrollbar||s.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",l[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),s.anim[t.anim]&&e.layero.addClass(s.anim[t.anim]).data("anim",!0)}},l.pt.auto=function(e){function t(e){e=l.find(e),e.height(f[1]-c-d-2*(0|parseFloat(e.css("padding"))))}var a=this,o=a.config,l=i("#"+s[0]+e);""===o.area[0]&&o.maxWidth>0&&(r.ie&&r.ie<8&&o.btn&&l.width(l.innerWidth()),l.outerWidth()>o.maxWidth&&l.width(o.maxWidth));var f=[l.innerWidth(),l.innerHeight()],c=l.find(s[1]).outerHeight()||0,d=l.find("."+s[6]).outerHeight()||0;switch(o.type){case 2:t("iframe");break;default:""===o.area[1]?o.fixed&&f[1]>=n.height()&&(f[1]=n.height(),t("."+s[5])):t("."+s[5])}return a},l.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(s[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},l.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var l={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),l.autoLeft=function(){l.left+o[0]-n.width()>0?(l.tipLeft=l.left+l.width-o[0],f.css({right:12,left:"auto"})):l.tipLeft=l.left},l.where=[function(){l.autoLeft(),l.tipTop=l.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){l.tipLeft=l.left+l.width+10,l.tipTop=l.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){l.autoLeft(),l.tipTop=l.top+l.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){l.tipLeft=l.left-o[0]-10,l.tipTop=l.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],l.where[c-1](),1===c?l.top-(n.scrollTop()+o[1]+16)<0&&l.where[2]():2===c?n.width()-(l.left+l.width+o[0]+16)>0||l.where[3]():3===c?l.top-n.scrollTop()+l.height+o[1]+16-n.height()>0&&l.where[0]():4===c&&o[0]+16-l.left>0&&l.where[1](),a.find("."+s[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:l.tipLeft-(t.fixed?n.scrollLeft():0),top:l.tipTop-(t.fixed?n.scrollTop():0)})},l.pt.move=function(){var e=this,t=e.config,a=i(document),l=e.layero,s=l.find(t.move),f=l.find(".layui-layer-resize"),c={};return t.move&&s.css("cursor","move"),s.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(l.css("left")),e.clientY-parseFloat(l.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[l.outerWidth(),l.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],s="fixed"===l.css("position");if(i.preventDefault(),c.stX=s?0:n.scrollLeft(),c.stY=s?0:n.scrollTop(),!t.moveOut){var f=n.width()-l.outerWidth()+c.stX,d=n.height()-l.outerHeight()+c.stY;af&&(a=f),od&&(o=d)}l.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd()),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},l.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+s[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+s[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+s[0])[0]||1==n.attr("layer")&&i("."+s[0]).length<1&&n.removeAttr("layer").show(),n=null})},l.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+s[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},l.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){s.html.attr("layer-full")==e&&(s.html[0].style.removeProperty?s.html[0].style.removeProperty("overflow"):s.html[0].style.removeAttribute("overflow"),s.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+s[4]).attr("times"),i("#"+s[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+s[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+s[0]+e),a=n.find(s[1]).outerHeight()||0,o=n.find("."+s[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+s[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+s[0]+e),r=a.find(".layui-layer-content"),l=a.attr("type"),f=a.find(s[1]).outerHeight()||0,c=a.find("."+s[6]).outerHeight()||0;a.attr("minLeft");l!==o.type[3]&&l!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+s[6]).outerHeight(),l===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+s[0]+e),l=a.find(s[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:l,left:f,top:n.height()-l,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(s[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+s[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(s[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+s[0]+e);o.record(a),s.html.attr("layer-full")||s.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+s[0]+(t||r.index)).find(s[1]);n.html(e)},r.close=function(e){var t=i("#"+s[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var l="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+s[5]+")").remove();for(var a=t.find("."+l),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(l)}else{if(n===o.type[2])try{var f=i("#"+s[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+s[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("anim")&&t.addClass(a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),setTimeout(function(){f()},r.ie&&r.ie<10||!t.data("anim")?0:200)}},r.closeAll=function(e){i.each(i("."+s[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var l,s=2==e.formType?'":function(){return''}();return r.open(i.extend({type:1,btn:["确定","取消"],content:s,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(e){l=e.find(".layui-layer-input"),l.focus()},resize:!1,yes:function(i){var n=l.val();""===n?l.focus():n.length>(e.maxlength||500)?r.tips("最多输入"+(e.maxlength||500)+"个字数",l,{tips:1}):t&&t(n,i,l)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{};return r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,n="";if(e>0)for(n=''+t[0].title+"";i"+t[i].title+"";return n}(),content:'
        '+function(){var e=t.length,i=1,n="";if(e>0)for(n='
      • '+(t[0].content||"no content")+"
      • ";i'+(t[i].content||"no content")+"";return n}()+"
      ",success:function(t){var n=t.find(".layui-layer-title").children(),a=t.find(".layui-layer-tabmain").children();n.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var n=i(this),o=n.index();n.addClass("layui-layer-tabnow").siblings().removeClass("layui-layer-tabnow"),a.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)})}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var l={};if(t=t||{},t.photos){var s=t.photos.constructor===Object,f=s?t.photos:{},d=f.data||[],u=f.start||0;if(l.imgIndex=(0|u)+1,t.img=t.img||"img",s){if(0===d.length)return r.msg("没有图片")}else{var y=i(t.photos),p=function(){d=[],y.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),d.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(p(),0===d.length)return;if(n||y.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:d,tab:t.tab},full:t.full}),!0),p()}),!n)return}l.imgprev=function(e){l.imgIndex--,l.imgIndex<1&&(l.imgIndex=d.length),l.tabimg(e)},l.imgnext=function(e,t){l.imgIndex++,l.imgIndex>d.length&&(l.imgIndex=1,t)||l.tabimg(e)},l.keyup=function(e){if(!l.end){var t=e.keyCode;e.preventDefault(),37===t?l.imgprev(!0):39===t?l.imgnext(!0):27===t&&r.close(l.index)}},l.tabimg=function(e){d.length<=1||(f.start=l.imgIndex-1,r.close(l.index),r.photos(t,!0,e))},l.event=function(){l.bigimg.hover(function(){l.imgsee.show()},function(){l.imgsee.hide()}),l.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),l.imgprev()}),l.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),l.imgnext()}),i(document).on("keyup",l.keyup)},l.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(d[u].src,function(n){r.close(l.loadi),l.index=r.open(i.extend({type:1,area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]'+(d[u].alt||
      '+(d.length>1?'':"")+'
      '+(d[u].alt||"")+""+l.imgIndex+"/"+d.length+"
      ",success:function(e,i){l.bigimg=e.find(".layui-layer-phimg"),l.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),l.event(e),t.tab&&t.tab(d[u],e)},end:function(){l.end=!0,i(document).off("keyup",l.keyup)}},t))},function(){r.close(l.loadi),r.msg("当前图片地址异常
      是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){d.length>1&&l.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),s.html=i("html"),r.open=function(e){var t=new l(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.jquery),e.layer=r,t("layer",r)})):"function"==typeof define?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window);layui.define("jquery",function(i){"use strict";var t=layui.jquery,a=(layui.hint(),layui.device()),e="element",l="layui-this",n="layui-show",s=function(){this.config={}};s.prototype.set=function(i){var a=this;return t.extend(!0,a.config,i),a},s.prototype.on=function(i,t){return layui.onevent(e,i,t)},s.prototype.tabAdd=function(i,a){var e=t(".layui-tab[lay-filter="+i+"]"),l=e.children(".layui-tab-title"),n=e.children(".layui-tab-content");return l.append("
    • "+(a.title||"unnaming")+"
    • "),n.append('
      '+(a.content||"")+"
      "),y.tabAuto(),this},s.prototype.tabDelete=function(i,a){var e=t(".layui-tab[lay-filter="+i+"]"),l=e.children(".layui-tab-title").find(">li").eq(a);return y.tabDelete(null,l),this},s.prototype.tabChange=function(i,a){var e=t(".layui-tab[lay-filter="+i+"]"),l=e.children(".layui-tab-title").find(">li").eq(a);return y.tabClick(null,a,l),this};var o=".layui-nav",c="layui-nav-item",r="layui-nav-bar",u="layui-nav-tree",d="layui-nav-child",h="layui-nav-more",f="layui-anim layui-anim-upbit",y={tabClick:function(i,a,s){var o=s||t(this),a=a||o.index(),c=o.parents(".layui-tab"),r=c.children(".layui-tab-content").children(".layui-tab-item"),u=c.attr("lay-filter");o.addClass(l).siblings().removeClass(l),r.eq(a).addClass(n).siblings().removeClass(n),layui.event.call(this,e,"tab("+u+")",{elem:c,index:a})},tabDelete:function(i,a){var e=a||t(this).parent(),n=e.index(),s=e.parents(".layui-tab"),o=s.children(".layui-tab-content").children(".layui-tab-item");e.hasClass(l)&&(e.next()[0]?y.tabClick.call(e.next()[0],null,n+1):e.prev()[0]&&y.tabClick.call(e.prev()[0],null,n-1)),e.remove(),o.eq(n).remove()},tabAuto:function(){var i="layui-tab-more",e="layui-tab-bar",l="layui-tab-close",n=this;t(".layui-tab").each(function(){var s=t(this),o=s.children(".layui-tab-title"),c=(s.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),r=t('');if(n===window&&8!=a.ie&&y.hideTabMore(!0),s.attr("lay-allowClose")&&o.find("li").each(function(){var i=t(this);if(!i.find("."+l)[0]){var a=t('');a.on("click",y.tabDelete),i.append(a)}}),o.prop("scrollWidth")>o.outerWidth()+1){if(o.find("."+e)[0])return;o.append(r),r.on("click",function(t){o[this.title?"removeClass":"addClass"](i),this.title=this.title?"":"收缩"})}else o.find("."+e).remove()})},hideTabMore:function(i){var a=t(".layui-tab-title");i!==!0&&"tabmore"===t(i.target).attr("lay-stope")||(a.removeClass("layui-tab-more"),a.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var i=t(this),a=i.parents(o),n=a.attr("lay-filter");i.find("."+d)[0]||(a.find("."+l).removeClass(l),i.addClass(l),layui.event.call(this,e,"nav("+n+")",i))},clickChild:function(){var i=t(this),a=i.parents(o),n=a.attr("lay-filter");a.find("."+l).removeClass(l),i.addClass(l),layui.event.call(this,e,"nav("+n+")",i)},showChild:function(){var i=t(this),a=i.parents(o),e=i.parent(),l=i.siblings("."+d);a.hasClass(u)&&(l.removeClass(f),e["none"===l.css("display")?"addClass":"removeClass"](c+"ed"))}};s.prototype.init=function(i){var e={tab:function(){y.tabAuto.call({})},nav:function(){var i,e,l,s=200,p=function(o,c){var r=t(this),y=r.find("."+d);c.hasClass(u)?o.css({top:r.position().top,height:r.children("a").height(),opacity:1}):(y.addClass(f),o.css({left:r.position().left+parseFloat(r.css("marginLeft")),top:r.position().top+r.height()-5}),i=setTimeout(function(){o.css({width:r.width(),opacity:1})},a.ie&&a.ie<10?0:s),clearTimeout(l),"block"===y.css("display")&&clearTimeout(e),e=setTimeout(function(){y.addClass(n),r.find("."+h).addClass(h+"d")},300))};t(o).each(function(){var a=t(this),o=t(''),f=a.find("."+c);a.find("."+r)[0]||(a.append(o),f.on("mouseenter",function(){p.call(this,o,a)}).on("mouseleave",function(){a.hasClass(u)||(clearTimeout(e),e=setTimeout(function(){a.find("."+d).removeClass(n),a.find("."+h).removeClass(h+"d")},300))}),a.on("mouseleave",function(){clearTimeout(i),l=setTimeout(function(){a.hasClass(u)?o.css({height:0,top:o.position().top+o.height()/2,opacity:0}):o.css({width:0,left:o.position().left+o.width()/2,opacity:0})},s)})),f.each(function(){var i=t(this),a=i.find("."+d);if(a[0]&&!i.find("."+h)[0]){var e=i.children("a");e.append('')}i.off("click",y.clickThis).on("click",y.clickThis),i.children("a").off("click",y.showChild).on("click",y.showChild),a.children("dd").off("click",y.clickChild).on("click",y.clickChild)})})},breadcrumb:function(){var i=".layui-breadcrumb";t(i).each(function(){var i=t(this),a=i.attr("lay-separator")||">",e=i.find("a");e.find(".layui-box")[0]||(e.each(function(i){i!==e.length-1&&t(this).append(''+a+"")}),i.css("visibility","visible"))})}};return layui.each(e,function(i,t){t()})};var p=new s,b=t(document);p.init();var v=".layui-tab-title li";b.on("click",v,y.tabClick),b.on("click",y.hideTabMore),t(window).on("resize",y.tabAuto),i(e,function(i){return p.set(i)})});layui.define("layer",function(e){"use strict";var a=layui.jquery,t=layui.layer,i=(layui.device(),"layui-upload-enter"),n="layui-upload-iframe",r={icon:2,shift:6},o={file:"文件",video:"视频",audio:"音频"},s=function(e){this.options=e};s.prototype.init=function(){var e=this,t=e.options,r=a("body"),s=a(t.elem||".layui-upload-file"),u=a('');return a("#"+n)[0]||r.append(u),s.each(function(r,s){s=a(s);var u='
      ',l=s.attr("lay-type")||t.type;t.unwrap||(u='
      '+u+''+(s.attr("lay-title")||t.title||"上传"+(o[l]||"图片"))+"
      "),u=a(u),t.unwrap||u.on("dragover",function(e){e.preventDefault(),a(this).addClass(i)}).on("dragleave",function(){a(this).removeClass(i)}).on("drop",function(){a(this).removeClass(i)}),s.parent("form").attr("target")===n&&(t.unwrap?s.unwrap():(s.parent().next().remove(),s.unwrap().unwrap())),s.wrap(u),s.off("change").on("change",function(){e.action(this,l)})})},s.prototype.action=function(e,i){var o=this,s=o.options,u=e.value,l=a(e),p=l.attr("lay-ext")||s.ext||"";if(u){switch(i){case"file":if(p&&!RegExp("\\w\\.("+p+")$","i").test(escape(u)))return t.msg("不支持该文件格式",r),e.value="";break;case"video":if(!RegExp("\\w\\.("+(p||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(u)))return t.msg("不支持该视频格式",r),e.value="";break;case"audio":if(!RegExp("\\w\\.("+(p||"mp3|wav|mid")+")$","i").test(escape(u)))return t.msg("不支持该音频格式",r),e.value="";break;default:if(!RegExp("\\w\\.("+(p||"jpg|png|gif|bmp|jpeg")+")$","i").test(escape(u)))return t.msg("不支持该图片格式",r),e.value=""}s.before&&s.before(e),l.parent().submit();var c=a("#"+n),f=setInterval(function(){var a;try{a=c.contents().find("body").text()}catch(i){t.msg("上传接口存在跨域",r),clearInterval(f)}if(a){clearInterval(f),c.contents().find("body").html("");try{a=JSON.parse(a)}catch(i){return a={},t.msg("请对上传接口返回JSON字符",r)}"function"==typeof s.success&&s.success(a,e)}},30);e.value=""}},e("upload",function(e){var a=new s(e=e||{});a.init()})});layui.define("layer",function(e){"use strict";var i=layui.jquery,a=layui.layer,t=layui.hint(),n=layui.device(),l="form",s=".layui-form",c="layui-this",r="layui-disabled",u=function(){this.config={verify:{required:[/[\S]+/,"必填项不能为空"],phone:[/^1\d{10}$/,"请输入正确的手机号"],email:[/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,"邮箱格式不正确"],url:[/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/,"链接格式不正确"],number:[/^\d+$/,"只能填写数字"],date:[/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,"日期格式不正确"],identity:[/(^\d{15}$)|(^\d{17}(x|X|\d)$)/,"请输入正确的身份证号"]}}};u.prototype.set=function(e){var a=this;return i.extend(!0,a.config,e),a},u.prototype.verify=function(e){var a=this;return i.extend(!0,a.config.verify,e),a},u.prototype.on=function(e,i){return layui.onevent(l,e,i)},u.prototype.render=function(e){var a=this,n={select:function(){var e="请选择",a="layui-form-select",t="layui-select-title",n=i(s).find("select"),u=function(e,n){i(e.target).parent().hasClass(t)&&!n||i("."+a).removeClass(a+"ed")},o=function(e,n){var s=i(this),o=e.find("."+t);n||(o.on("click",function(i){e.hasClass(a+"ed")?e.removeClass(a+"ed"):(u(i,!0),e.addClass(a+"ed"))}),e.find("dl>dd").on("click",function(){var e=i(this),a=e.attr("lay-value"),t=s.attr("lay-filter");return!e.hasClass(r)&&(s.val(a).removeClass("layui-form-danger"),o.find("input").val(e.text()),e.addClass(c).siblings().removeClass(c),void layui.event(l,"select("+t+")",{elem:s[0],value:a}))}),e.find("dl>dt").on("click",function(e){return!1}),i(document).off("click",u).on("click",u))};n.each(function(n,l){var s=i(this),u=s.next("."+a),d=this.disabled,f=l.value,y=i(l.options[l.selectedIndex]),v=i(['
      ','
      ','
      ','
      '+function(e){var i=[];return layui.each(e,function(e,a){(0!==e||a.value)&&("optgroup"===a.tagName.toLowerCase()?i.push("
      "+a.label+"
      "):i.push('
      '+a.innerHTML+"
      "))}),i.join("")}(s.find("*"))+"
      ","
      "].join(""));u[0]&&u.remove(),s.after(v),o.call(this,v,d)})},checkbox:function(){var e={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],_switch:["layui-form-switch","layui-form-onswitch","switch"]},a=i(s).find("input[type=checkbox]"),t=function(e,a){var t=i(this);e.on("click",function(){var i=t.attr("lay-filter");t[0].disabled||(t[0].checked?(t[0].checked=!1,e.removeClass(a[1])):(t[0].checked=!0,e.addClass(a[1])),layui.event(l,a[2]+"("+i+")",{elem:t[0],value:t[0].value}))})};a.each(function(a,n){var l=i(this),s=l.attr("lay-skin"),c=this.disabled;"switch"===s&&(s="_"+s);var u=e[s]||e.checkbox,o=l.next("."+u[0]),d=i(['
      ',{_switch:""}[s]||""+(n.title||"勾选")+'',"
      "].join(""));o[0]&&o.remove(),l.after(d),t.call(this,d,u)})},radio:function(){var e="layui-form-radio",a=["",""],t=i(s).find("input[type=radio]"),n=function(t){var n=i(this),c="layui-anim-scaleSpring";t.on("click",function(){var r=n[0].name,u=n.parents(s),o=n.attr("lay-filter"),d=u.find("input[name="+r.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(d,function(){var t=i(this).next("."+e);this.checked=!1,t.removeClass(e+"ed"),t.find(".layui-icon").removeClass(c).html(a[1])}),n[0].checked=!0,t.addClass(e+"ed"),t.find(".layui-icon").addClass(c).html(a[0]),layui.event(l,"radio("+o+")",{elem:n[0],value:n[0].value}))})};t.each(function(t,l){var s=i(this),c=s.next("."+e),u=this.disabled,o=i(['
      ',''+a[l.checked?0:1]+"",""+(l.title||"未命名")+"","
      "].join(""));c[0]&&c.remove(),s.after(o),n.call(this,o)})}};return e?n[e]?n[e]():t.error("不支持的"+e+"表单渲染"):layui.each(n,function(e,i){i()}),a};var o=function(){var e=i(this),t=d.config.verify,c=null,r="layui-form-danger",u={},o=e.parents(s),f=o.find("*[lay-verify]"),y=e.parents("form")[0],v=o.find("input,select,textarea"),h=e.attr("lay-filter");return layui.each(f,function(e,l){var s=i(this),u=s.attr("lay-verify"),o="",d=s.val(),f="function"==typeof t[u];if(s.removeClass(r),t[u]&&(f?o=t[u](d,l):!t[u][0].test(d)))return a.msg(o||t[u][1],{icon:5,shift:6}),n.android||n.ios||l.focus(),s.addClass(r),c=!0}),!c&&(layui.each(v,function(e,i){i.name&&(/^checkbox|radio$/.test(i.type)&&!i.checked||(u[i.name]=i.value))}),layui.event.call(this,l,"submit("+h+")",{elem:this,form:y,field:u}))},d=new u,f=i(document);d.render(),f.on("reset",s,function(){setTimeout(function(){d.render()},50)}),f.on("submit",s,o).on("click","*[lay-submit]",o),e(l,function(e){return d.set(e)})});layui.define("jquery",function(e){"use strict";var o=layui.jquery,a=layui.hint(),r="layui-tree-enter",i=function(e){this.options=e},t={arrow:["",""],checkbox:["",""],radio:["",""],branch:["",""],leaf:""};i.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},i.prototype.tree=function(e,a){var r=this,i=r.options,n=a||i.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o('
        '),s=o(["
      • ",function(){return l?''+(n.spread?t.arrow[1]:t.arrow[0])+"":""}(),function(){return i.check?''+("checkbox"===i.check?t.checkbox[0]:"radio"===i.check?t.radio[0]:"")+"":""}(),function(){return'"+(''+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"")+(""+(n.name||"未命名")+"")}(),"
      • "].join(""));l&&(s.append(c),r.tree(c,n.children)),e.append(s),"function"==typeof i.click&&r.click(s,n),r.spread(s,n),i.drag&&r.drag(s,n)})},i.prototype.click=function(e,o){var a=this,r=a.options;e.children("a").on("click",function(e){layui.stope(e),r.click(o)})},i.prototype.spread=function(e,o){var a=this,r=(a.options,e.children(".layui-tree-spread")),i=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),i.removeClass("layui-show"),r.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),i.addClass("layui-show"),r.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};i[0]&&(r.on("click",l),n.on("dblclick",l))},i.prototype.on=function(e){var a=this,i=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),i.drag&&o(document).on("mousemove",function(e){var r=a.move;if(r.from){var i=(r.to,o('
        '));e.preventDefault(),o("."+t)[0]||o("body").append(i);var n=o("."+t)[0]?o("."+t):i;n.addClass("layui-show").html(r.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(r),e.to&&e.to.elem.children("a").removeClass(r),a.move={},o("."+t).remove())})},i.prototype.move={},i.prototype.drag=function(e,a){var i=this,t=(i.options,e.children("a")),n=function(){var t=o(this),n=i.move;n.from&&(n.to={item:a,elem:e},t.addClass(r))};t.on("mousedown",function(){var o=i.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=i.move;a.from&&(delete a.to,e.removeClass(r))})},e("tree",function(e){var r=new i(e=e||{}),t=o(e.elem);return t[0]?void r.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})});layui.define("jquery",function(l){"use strict";var o=layui.jquery,i={fixbar:function(l){l=l||{},l.bgcolor=l.bgcolor?"background-color:"+l.bgcolor:"";var i,a,c="layui-fixbar-top",t=[l.bar1===!0?"":l.bar1,l.bar2===!0?"":l.bar2,""],r=o(['
          ',l.bar1?'
        • '+t[0]+"
        • ":"",l.bar2?'
        • '+t[1]+"
        • ":"",'
        • '+t[2]+"
        • ","
        "].join("")),e=r.find("."+c),s=function(){var i=o(document).scrollTop();i>=(l.showHeight||200)?a||(e.show(),a=1):a&&(e.hide(),a=0)};o(".layui-fixbar")[0]||("object"==typeof l.css&&r.css(l.css),o("body").append(r),s(),r.find("li").on("click",function(){var i=o(this),a=i.attr("lay-type");"top"===a&&o("html,body").animate({scrollTop:0},200),l.click&&l.click.call(this,a)}),o(document).on("scroll",function(){i&&clearTimeout(i),i=setTimeout(function(){s()},100)}))}};l("util",i)});layui.define("jquery",function(e){"use strict";var l=layui.jquery,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var u=l(e.elem);if(u[0]){var f=l(e.scrollElem||document),m=e.mb||50,s=!("isAuto"in e)||e.isAuto,y=e.end||"没有更多了",v=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");u.find(".layui-flow-more")[0]||u.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(y):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(f.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=v?e.height():l(window).height(),n=v?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=m&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var f=e.attr("lay-src");layui.img(f,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",f).removeAttr("lay-src"),l[0]&&u(l),i++})}},u=function(e,o){var u=a?(o||n).height():l(window).height(),f=n.scrollTop(),m=f+u;if(t.lazyimg.elem=l(r),e)c(e,u);else for(var s=0;sm)break}};if(u(),!o){var f;n.on("scroll",function(){var e=l(this);f&&clearTimeout(f),f=setTimeout(function(){u(null,e)},50)}),o=!0}return u},e("flow",new o)});layui.define(["layer","form"],function(t){"use strict";var e=layui.jquery,i=layui.layer,a=layui.form(),l=(layui.hint(),layui.device()),n="layedit",o="layui-show",r="layui-disabled",s=function(){var t=this;t.index=0,t.config={tool:["strong","italic","underline","del","|","left","center","right","|","link","unlink","face","image"],hideTool:[],height:280}};s.prototype.set=function(t){var i=this;return e.extend(!0,i.config,t),i},s.prototype.on=function(t,e){return layui.onevent(n,t,e)},s.prototype.build=function(t,i){i=i||{};var a=this,n=a.config,r="layui-layedit",s=e("#"+t),u="LAY_layedit_"+ ++a.index,d=s.next("."+r),y=e.extend({},n,i),f=function(){var t=[],e={};return layui.each(y.hideTool,function(t,i){e[i]=!0}),layui.each(y.tool,function(i,a){C[a]&&!e[a]&&t.push(C[a])}),t.join("")}(),m=e(['
        ','
        '+f+"
        ",'
        ','',"
        ","
        "].join(""));return l.ie&&l.ie<8?s.removeClass("layui-hide").addClass(o):(d[0]&&d.remove(),c.call(a,m,s[0],y),s.addClass("layui-hide").after(m),a.index)},s.prototype.getContent=function(t){var e=u(t);if(e[0])return d(e[0].document.body.innerHTML)},s.prototype.getText=function(t){var i=u(t);if(i[0])return e(i[0].document.body).text()},s.prototype.sync=function(t){var i=u(t);if(i[0]){var a=e("#"+i[1].attr("textarea"));a.val(d(i[0].document.body.innerHTML))}},s.prototype.getSelection=function(t){var e=u(t);if(e[0]){var i=m(e[0].document);return document.selection?i.text:i.toString()}};var c=function(t,i,a){var l=this,n=t.find("iframe");n.css({height:a.height}).on("load",function(){var o=n.contents(),r=n.prop("contentWindow"),s=o.find("head"),c=e([""].join("")),u=o.find("body");s.append(c),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,s=e(r.body);s.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("请暂时用shift+enter"),!1}r.execCommand("formatBlock",!1,"

        ")}}),e(n).parents("form").on("submit",function(){var t=s.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),s.on("paste",function(e){r.execCommand("formatBlock",!1,"

        "),setTimeout(function(){f.call(t,s),n.value=s.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),s={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o({url:r.url,method:r.type,elem:e(n).find("input")[0],unwrap:!0,success:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"上传失败")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"帮助",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["http://www.layui.com/about/layedit/help.html","no"]})}},c=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"

        "),setTimeout(function(){o.focus()},10)):s[a]&&s[a].call(this,u),h.call(t,c,i)}},d=/image/;c.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,c),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"超链接",skin:"layui-layer-msg",content:['

          ','
        • ','','
          ','',"
          ","
        • ",'
        • ','','
          ','",'","
          ","
        • ",'
        • ','','',"
        • ","
        "].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[微笑]","[嘻嘻]","[哈哈]","[可爱]","[可怜]","[挖鼻]","[吃惊]","[害羞]","[挤眼]","[闭嘴]","[鄙视]","[爱你]","[泪]","[偷笑]","[亲亲]","[生病]","[太开心]","[白眼]","[右哼哼]","[左哼哼]","[嘘]","[衰]","[委屈]","[吐]","[哈欠]","[抱抱]","[怒]","[疑问]","[馋嘴]","[拜拜]","[思考]","[汗]","[困]","[睡]","[钱]","[失望]","[酷]","[色]","[哼]","[鼓掌]","[晕]","[悲伤]","[抓狂]","[黑线]","[阴险]","[怒骂]","[互粉]","[心]","[伤心]","[猪头]","[熊猫]","[兔子]","[ok]","[耶]","[good]","[NO]","[赞]","[来]","[弱]","[草泥马]","[神马]","[囧]","[浮云]","[给力]","[围观]","[威武]","[奥特曼]","[礼物]","[钟]","[话筒]","[蜡烛]","[蛋糕]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('
      • '+e+'
      • ')}),'
          '+t.join("")+"
        "}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"插入代码",skin:"layui-layer-msg",content:['
          ','
        • ','','
          ','","
          ","
        • ",'
        • ','','
          ','',"
          ","
        • ",'
        • ','','',"
        • ","
        "].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'',strong:'',italic:'',underline:'',del:'',"|":'',left:'',center:'',right:'',link:'',unlink:'',face:'',image:'',code:'',help:''},w=new s;t(n,w)});layui.define("jquery",function(e){"use strict";var a=layui.jquery,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
        1. '+o.replace(/[\r\t\n]+/g,"
        2. ")+"
        "),c.find(">.layui-code-h3")[0]||c.prepend('

        '+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

        ");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); ================================================ FILE: public/static/layui/lay/lib/jquery.js ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ ;!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"function"!==n&&!pe.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Ce.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]=!0}),t}function a(){re.addEventListener?(re.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(re.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(re.addEventListener||"load"===e.event.type||"complete"===re.readyState)&&(a(),pe.ready())}function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(_e,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:qe.test(n)?pe.parseJSON(n):n)}catch(i){}pe.data(e,t,n)}else n=void 0}return n}function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.cache:e,l=s?e[a]:e[a]&&a;if(l&&u[l]&&(r||u[l].data)||void 0!==n||"string"!=typeof t)return l||(l=s?e[a]=ne.pop()||pe.guid++:a),u[l]||(u[l]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(r?u[l]=pe.extend(u[l],t):u[l].data=pe.extend(u[l].data,t)),o=u[l],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(i=o[t],null==i&&(i=o[pe.camelCase(t)])):i=o,i}}function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in r?t=[t]:(t=pe.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!l(r):!pe.isEmptyObject(r))return}(n||(delete a[s].data,l(a[s])))&&(o?pe.cleanData([e],!0):fe.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return pe.css(e,t,"")},u=s(),l=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==l&&+u)&&Me.exec(pe.css(e,t));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+u||1;do o=o||".5",c/=o,pe.style(e,t,c+l);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||pe.nodeName(r,t)?o.push(r):pe.merge(o,h(r,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval",!t||pe._data(t[r],"globalEval"))}function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x"!==f[1]||Ve.test(a)?0:u:u.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(v,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=y.lastChild}else v.push(t.createTextNode(a));for(u&&y.removeChild(u),fe.appendChecked||pe.grep(h(v,"input"),m),x=0;a=v[x++];)if(r&&pe.inArray(a,r)>-1)i&&i.push(a);else if(s=pe.contains(a.ownerDocument,a),u=h(y.appendChild(a),"script"),s&&g(u),n)for(o=0;a=u[o++];)Ie.test(a.type||"")&&n.push(a);return u=null,y}function v(){return!0}function x(){return!1}function b(){try{return re.activeElement}catch(e){}}function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)w(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),i===!1)i=x;else if(!i)return e;return 1===o&&(a=i,i=function(e){return pe().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,i,r,n)})}function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;r1&&"string"==typeof p&&!fe.checkClone&&rt.test(p))return e.each(function(i){var o=e.eq(i);g&&(t[0]=p.call(this,i,o.html())),S(o,t,n,r)});if(f&&(l=y(t,e[0].ownerDocument,!1,e,r),i=l.firstChild,1===l.childNodes.length&&(l=i),i||r)){for(s=pe.map(h(l,"script"),C),a=s.length;c")).appendTo(t.documentElement),t=(ut[0].contentWindow||ut[0].contentDocument).document,t.write(),t.close(),n=D(e,t),ut.detach()),lt[e]=n),n}function L(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=Ct.length;n--;)if(e=Ct[n]+t,e in Et)return e}function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a=0&&n=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==pe.type(e)||e.nodeType||pe.isWindow(e))return!1;try{if(e.constructor&&!ce.call(e,"constructor")&&!ce.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(!fe.ownFirst)for(t in e)return ce.call(e,t);for(t in e);return void 0===t||ce.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?ue[le.call(e)]||"object":typeof e},globalEval:function(t){t&&pe.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ge,"ms-").replace(me,ye)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var r,i=0;if(n(e))for(r=e.length;iT.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[P]=!0,e}function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||V)-(~e.sourceIndex||V);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function f(){}function d(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,n,r){for(var i=0,o=n.length;i-1&&(r[l]=!(a[l]=f))}}else x=m(x===a?x.splice(h,x.length):x),o?o(null,a,x,u):Q.apply(a,x)})}function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.relative[" "],s=o?1:0,u=p(function(e){return e===t},a,!0),l=p(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==A)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];s1&&h(c),s>1&&d(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,s0,o=e.length>0,a=function(r,a,s,u,l){var c,f,d,p=0,h="0",g=r&&[],y=[],v=A,x=r||o&&T.find.TAG("*",l),b=W+=null==v?1:Math.random()||.1,w=x.length;for(l&&(A=a===H||a||l);h!==w&&null!=(c=x[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===H||(L(c),s=!_);d=e[f++];)if(d(c,a||H,s)){u.push(c);break}l&&(W=b)}i&&((c=!d&&c)&&p--,r&&g.push(c))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,y,a,s);if(r){if(p>0)for(;h--;)g[h]||y[h]||(y[h]=G.call(u));y=m(y)}Q.apply(u,y),l&&!r&&y.length>0&&p+n.length>1&&t.uniqueSort(u)}return l&&(W=b,A=v),g};return i?r(a):a}var b,w,T,C,E,N,k,S,A,D,j,L,H,q,_,F,M,O,R,P="sizzle"+1*new Date,B=e.document,W=0,I=0,$=n(),z=n(),X=n(),U=function(e,t){return e===t&&(j=!0),0},V=1<<31,Y={}.hasOwnProperty,J=[],G=J.pop,K=J.push,Q=J.push,Z=J.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),ce=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),de=new RegExp("^"+re+"$"),pe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,xe=/'|\\/g,be=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),we=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Te=function(){L()};try{Q.apply(J=Z.call(B.childNodes),B.childNodes),J[B.childNodes.length].nodeType}catch(Ce){Q={apply:J.length?function(e,t){K.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},E=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},L=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:B;return r!==H&&9===r.nodeType&&r.documentElement?(H=r,q=H.documentElement,_=!E(H),(n=H.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Te,!1):n.attachEvent&&n.attachEvent("onunload",Te)),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(H.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=me.test(H.getElementsByClassName),w.getById=i(function(e){return q.appendChild(e).id=P,!H.getElementsByName||!H.getElementsByName(P).length}),w.getById?(T.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&_){var n=t.getElementById(e);return n?[n]:[]}},T.filter.ID=function(e){var t=e.replace(be,we);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(be,we);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),T.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},T.find.CLASS=w.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&_)return t.getElementsByClassName(e)},M=[],F=[],(w.qsa=me.test(H.querySelectorAll))&&(i(function(e){q.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&F.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||F.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+P+"-]").length||F.push("~="),e.querySelectorAll(":checked").length||F.push(":checked"),e.querySelectorAll("a#"+P+"+*").length||F.push(".#.+[+~]")}),i(function(e){var t=H.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&F.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||F.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),F.push(",.*:")})),(w.matchesSelector=me.test(O=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&i(function(e){w.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),M.push("!=",oe)}),F=F.length&&new RegExp(F.join("|")),M=M.length&&new RegExp(M.join("|")),t=me.test(q.compareDocumentPosition),R=t||me.test(q.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return j=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===H||e.ownerDocument===B&&R(B,e)?-1:t===H||t.ownerDocument===B&&R(B,t)?1:D?ee(D,e)-ee(D,t):0:4&n?-1:1)}:function(e,t){if(e===t)return j=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===H?-1:t===H?1:i?-1:o?1:D?ee(D,e)-ee(D,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===B?-1:u[r]===B?1:0},H):H},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==H&&L(e),n=n.replace(ce,"='$1']"),w.matchesSelector&&_&&!X[n+" "]&&(!M||!M.test(n))&&(!F||!F.test(n)))try{var r=O.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,H,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==H&&L(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==H&&L(e);var n=T.attrHandle[t.toLowerCase()],r=n&&Y.call(T.attrHandle,t.toLowerCase())?n(e,t,!_):void 0;return void 0!==r?r:w.attributes||!_?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!w.detectDuplicates,D=!w.sortStable&&e.slice(0),e.sort(U),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return D=null,e},C=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},T=t.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(be,we),e[3]=(e[3]||e[4]||e[5]||"").replace(be,we),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(be,we).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s,x=!1;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===y:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(d=m,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}), l=c[e]||[],p=l[0]===W&&l[1],x=p&&l[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){c[e]=[W,p,x];break}}else if(v&&(d=t,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),l=c[e]||[],p=l[0]===W&&l[1],x=p),x===!1)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==y:1!==d.nodeType)||!++x||(v&&(f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),c[e]=[W,x]),d!==t)););return x-=i,x===r||x%r===0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=T.pseudos[e]||T.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[P]?o(n):o.length>1?(i=[e,e,"",n],T.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=ee(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(se,"$1"));return i[P]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(be,we),function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(be,we).toLowerCase(),function(t){var n;do if(n=_?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===q},focus:function(e){return e===H.activeElement&&(!H.hasFocus||H.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&_&&T.relative[o[1].type]){if(t=(T.find.ID(a.matches[0].replace(be,we),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pe.needsContext.test(e)?0:o.length;i--&&(a=o[i],!T.relative[s=a.type]);)if((u=T.find[s])&&(r=u(a.matches[0].replace(be,we),ve.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Q.apply(n,r),n;break}}return(l||k(e,f))(r,t,!_,n,!t||ve.test(e)&&c(t.parentNode)||t),n},w.sortStable=P.split("").sort(U).join("")===P,w.detectDuplicates=!!j,L(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(H.createElement("div"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);pe.find=ve,pe.expr=ve.selectors,pe.expr[":"]=pe.expr.pseudos,pe.uniqueSort=pe.unique=ve.uniqueSort,pe.text=ve.getText,pe.isXMLDoc=ve.isXML,pe.contains=ve.contains;var xe=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&pe(e).is(n))break;r.push(e)}return r},be=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},we=pe.expr.match.needsContext,Te=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Ce=/^.[^:#\[\.,]*$/;pe.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?pe.find.matchesSelector(r,e)?[r]:[]:pe.find.matches(e,pe.grep(t,function(e){return 1===e.nodeType}))},pe.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(pe(e).filter(function(){for(t=0;t1?pe.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&we.test(e)?pe(e):e||[],!1).length}});var Ee,Ne=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ke=pe.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||Ee,"string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:Ne.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof pe?t[0]:t,pe.merge(this,pe.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:re,!0)),Te.test(r[1])&&pe.isPlainObject(t))for(r in t)pe.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}if(i=re.getElementById(r[2]),i&&i.parentNode){if(i.id!==r[2])return Ee.find(e);this.length=1,this[0]=i}return this.context=re,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):pe.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(pe):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),pe.makeArray(e,this))};ke.prototype=pe.fn,Ee=pe(re);var Se=/^(?:parents|prev(?:Until|All))/,Ae={children:!0,contents:!0,next:!0,prev:!0};pe.fn.extend({has:function(e){var t,n=pe(e,this),r=n.length;return this.filter(function(){for(t=0;t-1:1===n.nodeType&&pe.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?pe.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?pe.inArray(this[0],pe(e)):pe.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(pe.uniqueSort(pe.merge(this.get(),pe(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),pe.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return xe(e,"parentNode")},parentsUntil:function(e,t,n){return xe(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return xe(e,"nextSibling")},prevAll:function(e){return xe(e,"previousSibling")},nextUntil:function(e,t,n){return xe(e,"nextSibling",n)},prevUntil:function(e,t,n){return xe(e,"previousSibling",n)},siblings:function(e){return be((e.parentNode||{}).firstChild,e)},children:function(e){return be(e.firstChild)},contents:function(e){return pe.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:pe.merge([],e.childNodes)}},function(e,t){pe.fn[e]=function(n,r){var i=pe.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=pe.filter(r,i)),this.length>1&&(Ae[e]||(i=pe.uniqueSort(i)),Se.test(e)&&(i=i.reverse())),this.pushStack(i)}});var De=/\S+/g;pe.Callbacks=function(e){e="string"==typeof e?o(e):pe.extend({},e);var t,n,r,i,a=[],s=[],u=-1,l=function(){for(i=e.once,r=t=!0;s.length;u=-1)for(n=s.shift();++u-1;)a.splice(n,1),n<=u&&u--}),this},has:function(e){return e?pe.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return i=s=[],a=n="",this},disabled:function(){return!a},lock:function(){return i=!0,n||c.disable(),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},pe.extend({Deferred:function(e){var t=[["resolve","done",pe.Callbacks("once memory"),"resolved"],["reject","fail",pe.Callbacks("once memory"),"rejected"],["notify","progress",pe.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return pe.Deferred(function(n){pe.each(t,function(t,o){var a=pe.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&pe.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?pe.extend(e,r):r}},i={};return r.pipe=r.then,pe.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=ie.call(arguments),a=o.length,s=1!==a||e&&pe.isFunction(e.promise)?a:0,u=1===s?e:pe.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?ie.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);i0||(je.resolveWith(re,[pe]),pe.fn.triggerHandler&&(pe(re).triggerHandler("ready"),pe(re).off("ready"))))}}),pe.ready.promise=function(t){if(!je)if(je=pe.Deferred(),"complete"===re.readyState||"loading"!==re.readyState&&!re.documentElement.doScroll)e.setTimeout(pe.ready);else if(re.addEventListener)re.addEventListener("DOMContentLoaded",s),e.addEventListener("load",s);else{re.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&re.documentElement}catch(r){}n&&n.doScroll&&!function i(){if(!pe.isReady){try{n.doScroll("left")}catch(t){return e.setTimeout(i,50)}a(),pe.ready()}}()}return je.promise(t)},pe.ready.promise();var Le;for(Le in pe(fe))break;fe.ownFirst="0"===Le,fe.inlineBlockNeedsLayout=!1,pe(function(){var e,t,n,r;n=re.getElementsByTagName("body")[0],n&&n.style&&(t=re.createElement("div"),r=re.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",fe.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=re.createElement("div");fe.deleteExpando=!0;try{delete e.test}catch(t){fe.deleteExpando=!1}e=null}();var He=function(e){var t=pe.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||t!==!0&&e.getAttribute("classid")===t)},qe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,_e=/([A-Z])/g;pe.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?pe.cache[e[pe.expando]]:e[pe.expando],!!e&&!l(e)},data:function(e,t,n){return c(e,t,n)},removeData:function(e,t){return f(e,t)},_data:function(e,t,n){return c(e,t,n,!0)},_removeData:function(e,t){return f(e,t,!0)}}),pe.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=pe.data(o),1===o.nodeType&&!pe._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=pe.camelCase(r.slice(5)),u(o,r,i[r])));pe._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){pe.data(this,e)}):arguments.length>1?this.each(function(){pe.data(this,e,t)}):o?u(o,e,pe.data(o,e)):void 0},removeData:function(e){return this.each(function(){pe.removeData(this,e)})}}),pe.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=pe._data(e,t),n&&(!r||pe.isArray(n)?r=pe._data(e,t,pe.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=pe.queue(e,t),r=n.length,i=n.shift(),o=pe._queueHooks(e,t),a=function(){pe.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return pe._data(e,n)||pe._data(e,n,{empty:pe.Callbacks("once memory").add(function(){pe._removeData(e,t+"queue"),pe._removeData(e,n)})})}}),pe.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length
        a",fe.leadingWhitespace=3===e.firstChild.nodeType,fe.tbody=!e.getElementsByTagName("tbody").length,fe.htmlSerialize=!!e.getElementsByTagName("link").length,fe.html5Clone="<:nav>"!==re.createElement("nav").cloneNode(!0).outerHTML,n.type="checkbox",n.checked=!0,t.appendChild(n),fe.appendChecked=n.checked,e.innerHTML="",fe.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue,t.appendChild(e),n=re.createElement("input"),n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),fe.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,fe.noCloneEvent=!!e.addEventListener,e[pe.expando]=1,fe.attributes=!e.getAttribute(pe.expando)}();var Xe={option:[1,""],legend:[1,"
        ","
        "],area:[1,"",""],param:[1,"",""],thead:[1,"","
        "],tr:[2,"","
        "],col:[2,"","
        "],td:[3,"","
        "],_default:fe.htmlSerialize?[0,"",""]:[1,"X
        ","
        "]};Xe.optgroup=Xe.option,Xe.tbody=Xe.tfoot=Xe.colgroup=Xe.caption=Xe.thead,Xe.th=Xe.td;var Ue=/<|&#?\w+;/,Ve=/-1&&(h=p.split("."),p=h.shift(),h.sort()),a=p.indexOf(":")<0&&"on"+p,t=t[pe.expando]?t:new pe.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:pe.makeArray(n,[t]),l=pe.event.special[p]||{},i||!l.trigger||l.trigger.apply(r,n)!==!1)){if(!i&&!l.noBubble&&!pe.isWindow(r)){for(u=l.delegateType||p,Ke.test(u+p)||(s=s.parentNode);s;s=s.parentNode)d.push(s),c=s;c===(r.ownerDocument||re)&&d.push(c.defaultView||c.parentWindow||e)}for(f=0;(s=d[f++])&&!t.isPropagationStopped();)t.type=f>1?u:l.bindType||p,o=(pe._data(s,"events")||{})[t.type]&&pe._data(s,"handle"),o&&o.apply(s,n),o=a&&s[a],o&&o.apply&&He(s)&&(t.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=p,!i&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(d.pop(),n)===!1)&&He(r)&&a&&r[p]&&!pe.isWindow(r)){c=r[a],c&&(r[a]=null),pe.event.triggered=p;try{r[p]()}catch(g){}pe.event.triggered=void 0,c&&(r[a]=c)}return t.result}},dispatch:function(e){e=pe.event.fix(e);var t,n,r,i,o,a=[],s=ie.call(arguments),u=(pe._data(this,"events")||{})[e.type]||[],l=pe.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(a=pe.event.handlers.call(this,e,u),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,r=((pe.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(r=[],n=0;n-1:pe.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s]","i"),tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,nt=/\s*$/g,at=p(re),st=at.appendChild(re.createElement("div"));pe.extend({htmlPrefilter:function(e){return e.replace(tt,"<$1>")},clone:function(e,t,n){var r,i,o,a,s,u=pe.contains(e.ownerDocument,e);if(fe.html5Clone||pe.isXMLDoc(e)||!et.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(st.innerHTML=e.outerHTML,st.removeChild(o=st.firstChild)),!(fe.noCloneEvent&&fe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||pe.isXMLDoc(e)))for(r=h(o),s=h(e),a=0;null!=(i=s[a]);++a)r[a]&&k(i,r[a]);if(t)if(n)for(s=s||h(e),r=r||h(o),a=0;null!=(i=s[a]);a++)N(i,r[a]);else N(e,o);return r=h(o,"script"),r.length>0&&g(r,!u&&h(e,"script")),r=s=i=null,o},cleanData:function(e,t){for(var n,r,i,o,a=0,s=pe.expando,u=pe.cache,l=fe.attributes,c=pe.event.special;null!=(n=e[a]);a++)if((t||He(n))&&(i=n[s],o=i&&u[i])){if(o.events)for(r in o.events)c[r]?pe.event.remove(n,r):pe.removeEvent(n,r,o.handle);u[i]&&(delete u[i],l||"undefined"==typeof n.removeAttribute?n[s]=void 0:n.removeAttribute(s),ne.push(i))}}}),pe.fn.extend({domManip:S,detach:function(e){return A(this,e,!0)},remove:function(e){return A(this,e)},text:function(e){return Pe(this,function(e){return void 0===e?pe.text(this):this.empty().append((this[0]&&this[0].ownerDocument||re).createTextNode(e))},null,e,arguments.length)},append:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.appendChild(e)}})},prepend:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&pe.cleanData(h(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&pe.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return pe.clone(this,e,t)})},html:function(e){return Pe(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Ze,""):void 0;if("string"==typeof e&&!nt.test(e)&&(fe.htmlSerialize||!et.test(e))&&(fe.leadingWhitespace||!$e.test(e))&&!Xe[(We.exec(e)||["",""])[1].toLowerCase()]){e=pe.htmlPrefilter(e);try{for(;nt",t=l.getElementsByTagName("td"),t[0].style.cssText="margin:0;border:0;padding:0;display:none",o=0===t[0].offsetHeight,o&&(t[0].style.display="",t[1].style.display="none",o=0===t[0].offsetHeight)),f.removeChild(u)}var n,r,i,o,a,s,u=re.createElement("div"),l=re.createElement("div");l.style&&(l.style.cssText="float:left;opacity:.5",fe.opacity="0.5"===l.style.opacity,fe.cssFloat=!!l.style.cssFloat,l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",fe.clearCloneStyle="content-box"===l.style.backgroundClip,u=re.createElement("div"),u.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",l.innerHTML="",u.appendChild(l),fe.boxSizing=""===l.style.boxSizing||""===l.style.MozBoxSizing||""===l.style.WebkitBoxSizing,pe.extend(fe,{reliableHiddenOffsets:function(){return null==n&&t(),o},boxSizingReliable:function(){return null==n&&t(),i},pixelMarginRight:function(){return null==n&&t(),r},pixelPosition:function(){return null==n&&t(),n},reliableMarginRight:function(){return null==n&&t(),a},reliableMarginLeft:function(){return null==n&&t(),s}}))}();var ht,gt,mt=/^(top|right|bottom|left)$/;e.getComputedStyle?(ht=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n.getPropertyValue(t)||n[t]:void 0,""!==a&&void 0!==a||pe.contains(e.ownerDocument,e)||(a=pe.style(e,t)),n&&!fe.pixelMarginRight()&&ft.test(a)&&ct.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o),void 0===a?a:a+""}):pt.currentStyle&&(ht=function(e){return e.currentStyle},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),ft.test(a)&&!mt.test(t)&&(r=s.left,i=e.runtimeStyle,o=i&&i.left,o&&(i.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"});var yt=/alpha\([^)]*\)/i,vt=/opacity\s*=\s*([^)]*)/i,xt=/^(none|table(?!-c[ea]).+)/,bt=new RegExp("^("+Fe+")(.*)$","i"),wt={position:"absolute",visibility:"hidden",display:"block"},Tt={letterSpacing:"0",fontWeight:"400"},Ct=["Webkit","O","Moz","ms"],Et=re.createElement("div").style;pe.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=gt(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":fe.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=pe.camelCase(t),u=e.style;if(t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];if(o=typeof n,"string"===o&&(i=Me.exec(n))&&i[1]&&(n=d(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(pe.cssNumber[s]?"":"px")),fe.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{u[t]=n}catch(l){}}},css:function(e,t,n,r){var i,o,a,s=pe.camelCase(t);return t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=gt(e,t,r)),"normal"===o&&t in Tt&&(o=Tt[t]),""===n||n?(i=parseFloat(o),n===!0||isFinite(i)?i||0:o):o}}),pe.each(["height","width"],function(e,t){pe.cssHooks[t]={get:function(e,n,r){if(n)return xt.test(pe.css(e,"display"))&&0===e.offsetWidth?dt(e,wt,function(){return M(e,t,r)}):M(e,t,r)},set:function(e,n,r){var i=r&&ht(e);return _(e,n,r?F(e,t,r,fe.boxSizing&&"border-box"===pe.css(e,"boxSizing",!1,i),i):0)}}}),fe.opacity||(pe.cssHooks.opacity={get:function(e,t){return vt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=pe.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===pe.trim(o.replace(yt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=yt.test(o)?o.replace(yt,i):o+" "+i)}}),pe.cssHooks.marginRight=L(fe.reliableMarginRight,function(e,t){if(t)return dt(e,{display:"inline-block"},gt,[e,"marginRight"])}),pe.cssHooks.marginLeft=L(fe.reliableMarginLeft,function(e,t){if(t)return(parseFloat(gt(e,"marginLeft"))||(pe.contains(e.ownerDocument,e)?e.getBoundingClientRect().left-dt(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}):0))+"px"}),pe.each({margin:"",padding:"",border:"Width"},function(e,t){pe.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+Oe[r]+t]=o[r]||o[r-2]||o[0];return i}},ct.test(e)||(pe.cssHooks[e+t].set=_)}),pe.fn.extend({css:function(e,t){return Pe(this,function(e,t,n){var r,i,o={},a=0;if(pe.isArray(t)){for(r=ht(e),i=t.length;a1)},show:function(){return q(this,!0)},hide:function(){return q(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Re(this)?pe(this).show():pe(this).hide()})}}),pe.Tween=O,O.prototype={constructor:O,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||pe.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(pe.cssNumber[n]?"":"px")},cur:function(){var e=O.propHooks[this.prop];return e&&e.get?e.get(this):O.propHooks._default.get(this)},run:function(e){var t,n=O.propHooks[this.prop];return this.options.duration?this.pos=t=pe.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):O.propHooks._default.set(this),this}},O.prototype.init.prototype=O.prototype,O.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=pe.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){pe.fx.step[e.prop]?pe.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[pe.cssProps[e.prop]]&&!pe.cssHooks[e.prop]?e.elem[e.prop]=e.now:pe.style(e.elem,e.prop,e.now+e.unit)}}},O.propHooks.scrollTop=O.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},pe.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},pe.fx=O.prototype.init,pe.fx.step={};var Nt,kt,St=/^(?:toggle|show|hide)$/,At=/queueHooks$/;pe.Animation=pe.extend($,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return d(n.elem,e,Me.exec(t),n),n}]},tweener:function(e,t){pe.isFunction(e)?(t=e,e=["*"]):e=e.match(De);for(var n,r=0,i=e.length;r
        a",e=n.getElementsByTagName("a")[0],t.setAttribute("type","checkbox"),n.appendChild(t),e=n.getElementsByTagName("a")[0],e.style.cssText="top:1px",fe.getSetAttribute="t"!==n.className,fe.style=/top/.test(e.getAttribute("style")),fe.hrefNormalized="/a"===e.getAttribute("href"),fe.checkOn=!!t.value,fe.optSelected=i.selected,fe.enctype=!!re.createElement("form").enctype,r.disabled=!0,fe.optDisabled=!i.disabled,t=re.createElement("input"),t.setAttribute("value",""),fe.input=""===t.getAttribute("value"),t.value="t",t.setAttribute("type","radio"),fe.radioValue="t"===t.value}();var Dt=/\r/g,jt=/[\x20\t\r\n\f]+/g;pe.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=pe.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,pe(this).val()):e,null==i?i="":"number"==typeof i?i+="":pe.isArray(i)&&(i=pe.map(i,function(e){return null==e?"":e+""})),t=pe.valHooks[this.type]||pe.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=pe.valHooks[i.type]||pe.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Dt,""):null==n?"":n)}}}),pe.extend({valHooks:{option:{get:function(e){var t=pe.find.attr(e,"value");return null!=t?t:pe.trim(pe.text(e)).replace(jt," ")}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u-1)try{r.selected=n=!0}catch(s){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),pe.each(["radio","checkbox"],function(){pe.valHooks[this]={set:function(e,t){if(pe.isArray(t))return e.checked=pe.inArray(pe(e).val(),t)>-1}},fe.checkOn||(pe.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Lt,Ht,qt=pe.expr.attrHandle,_t=/^(?:checked|selected)$/i,Ft=fe.getSetAttribute,Mt=fe.input;pe.fn.extend({attr:function(e,t){return Pe(this,pe.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){pe.removeAttr(this,e)})}}),pe.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?pe.prop(e,t,n):(1===o&&pe.isXMLDoc(e)||(t=t.toLowerCase(),i=pe.attrHooks[t]||(pe.expr.match.bool.test(t)?Ht:Lt)),void 0!==n?null===n?void pe.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=pe.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!fe.radioValue&&"radio"===t&&pe.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(De);if(o&&1===e.nodeType)for(;n=o[i++];)r=pe.propFix[n]||n,pe.expr.match.bool.test(n)?Mt&&Ft||!_t.test(n)?e[r]=!1:e[pe.camelCase("default-"+n)]=e[r]=!1:pe.attr(e,n,""),e.removeAttribute(Ft?n:r)}}),Ht={set:function(e,t,n){return t===!1?pe.removeAttr(e,n):Mt&&Ft||!_t.test(n)?e.setAttribute(!Ft&&pe.propFix[n]||n,n):e[pe.camelCase("default-"+n)]=e[n]=!0,n}},pe.each(pe.expr.match.bool.source.match(/\w+/g),function(e,t){var n=qt[t]||pe.find.attr;Mt&&Ft||!_t.test(t)?qt[t]=function(e,t,r){var i,o;return r||(o=qt[t],qt[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,qt[t]=o),i}:qt[t]=function(e,t,n){if(!n)return e[pe.camelCase("default-"+t)]?t.toLowerCase():null}}),Mt&&Ft||(pe.attrHooks.value={set:function(e,t,n){return pe.nodeName(e,"input")?void(e.defaultValue=t):Lt&&Lt.set(e,t,n)}}),Ft||(Lt={set:function(e,t,n){var r=e.getAttributeNode(n);if(r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n))return t}},qt.id=qt.name=qt.coords=function(e,t,n){var r;if(!n)return(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},pe.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:Lt.set},pe.attrHooks.contenteditable={set:function(e,t,n){Lt.set(e,""!==t&&t,n)}},pe.each(["width","height"],function(e,t){pe.attrHooks[t]={set:function(e,n){if(""===n)return e.setAttribute(t,"auto"),n}}})),fe.style||(pe.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Ot=/^(?:input|select|textarea|button|object)$/i,Rt=/^(?:a|area)$/i;pe.fn.extend({prop:function(e,t){return Pe(this,pe.prop,e,t,arguments.length>1)},removeProp:function(e){return e=pe.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),pe.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&pe.isXMLDoc(e)||(t=pe.propFix[t]||t,i=pe.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=pe.find.attr(e,"tabindex");return t?parseInt(t,10):Ot.test(e.nodeName)||Rt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),fe.hrefNormalized||pe.each(["href","src"],function(e,t){pe.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),fe.optSelected||(pe.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),pe.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){pe.propFix[this.toLowerCase()]=this}),fe.enctype||(pe.propFix.enctype="encoding");var Pt=/[\t\r\n\f]/g;pe.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).addClass(e.call(this,t,z(this)))});if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).removeClass(e.call(this,t,z(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):pe.isFunction(e)?this.each(function(n){pe(this).toggleClass(e.call(this,n,z(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=pe(this),o=e.match(De)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||(t=z(this),t&&pe._data(this,"__className__",t),pe.attr(this,"class",t||e===!1?"":pe._data(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+z(n)+" ").replace(Pt," ").indexOf(t)>-1)return!0;return!1}}),pe.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){pe.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),pe.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}});var Bt=e.location,Wt=pe.now(),It=/\?/,$t=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;pe.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=pe.trim(t+"");return i&&!pe.trim(i.replace($t,function(e,t,i,o){return n&&t&&(r=0),0===r?e:(n=i||t,r+=!o-!i,"")}))?Function("return "+i)():pe.error("Invalid JSON: "+t)},pe.parseXML=function(t){var n,r;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(r=new e.DOMParser,n=r.parseFromString(t,"text/xml")):(n=new e.ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(i){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||pe.error("Invalid XML: "+t),n};var zt=/#.*$/,Xt=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Vt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Yt=/^(?:GET|HEAD)$/,Jt=/^\/\//,Gt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Kt={},Qt={},Zt="*/".concat("*"),en=Bt.href,tn=Gt.exec(en.toLowerCase())||[];pe.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:en,type:"GET",isLocal:Vt.test(tn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":pe.parseJSON,"text xml":pe.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?V(V(e,pe.ajaxSettings),t):V(pe.ajaxSettings,e)},ajaxPrefilter:X(Kt),ajaxTransport:X(Qt),ajax:function(t,n){function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c=void 0,s=i||"",T.readyState=t>0?4:0,o=t>=200&&t<300||304===t,r&&(x=Y(d,T,r)),x=J(d,x,T,o),o?(d.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(pe.lastModified[a]=w),w=T.getResponseHeader("etag"),w&&(pe.etag[a]=w)),204===t||"HEAD"===d.type?C="nocontent":304===t?C="notmodified":(C=x.state,f=x.data,v=x.error,o=!v)):(v=C,!t&&C||(C="error",t<0&&(t=0))),T.status=t,T.statusText=(n||C)+"",o?g.resolveWith(p,[f,C,T]):g.rejectWith(p,[T,C,v]),T.statusCode(y),y=void 0,l&&h.trigger(o?"ajaxSuccess":"ajaxError",[T,d,o?f:v]),m.fireWith(p,[T,C]),l&&(h.trigger("ajaxComplete",[T,d]),--pe.active||pe.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,d=pe.ajaxSetup({},n),p=d.context||d,h=d.context&&(p.nodeType||p.jquery)?pe(p):pe.event,g=pe.Deferred(),m=pe.Callbacks("once memory"),y=d.statusCode||{},v={},x={},b=0,w="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!f)for(f={};t=Ut.exec(s);)f[t[1].toLowerCase()]=t[2];t=f[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=x[n]=x[n]||e,v[e]=t),this},overrideMimeType:function(e){return b||(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)y[t]=[y[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||w;return c&&c.abort(t),r(0,t),this}};if(g.promise(T).complete=m.add,T.success=T.done,T.error=T.fail,d.url=((t||d.url||en)+"").replace(zt,"").replace(Jt,tn[1]+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=pe.trim(d.dataType||"*").toLowerCase().match(De)||[""],null==d.crossDomain&&(i=Gt.exec(d.url.toLowerCase()),d.crossDomain=!(!i||i[1]===tn[1]&&i[2]===tn[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(tn[3]||("http:"===tn[1]?"80":"443")))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=pe.param(d.data,d.traditional)),U(Kt,d,n,T),2===b)return T;l=pe.event&&d.global,l&&0===pe.active++&&pe.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Yt.test(d.type),a=d.url,d.hasContent||(d.data&&(a=d.url+=(It.test(a)?"&":"?")+d.data,delete d.data),d.cache===!1&&(d.url=Xt.test(a)?a.replace(Xt,"$1_="+Wt++):a+(It.test(a)?"&":"?")+"_="+Wt++)),d.ifModified&&(pe.lastModified[a]&&T.setRequestHeader("If-Modified-Since",pe.lastModified[a]),pe.etag[a]&&T.setRequestHeader("If-None-Match",pe.etag[a])),(d.data&&d.hasContent&&d.contentType!==!1||n.contentType)&&T.setRequestHeader("Content-Type",d.contentType),T.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Zt+"; q=0.01":""):d.accepts["*"]);for(o in d.headers)T.setRequestHeader(o,d.headers[o]);if(d.beforeSend&&(d.beforeSend.call(p,T,d)===!1||2===b))return T.abort();w="abort";for(o in{success:1,error:1,complete:1})T[o](d[o]);if(c=U(Qt,d,n,T)){if(T.readyState=1,l&&h.trigger("ajaxSend",[T,d]),2===b)return T;d.async&&d.timeout>0&&(u=e.setTimeout(function(){T.abort("timeout")},d.timeout));try{b=1,c.send(v,r)}catch(C){if(!(b<2))throw C;r(-1,C)}}else r(-1,"No Transport");return T},getJSON:function(e,t,n){return pe.get(e,t,n,"json")},getScript:function(e,t){return pe.get(e,void 0,t,"script")}}),pe.each(["get","post"],function(e,t){pe[t]=function(e,n,r,i){return pe.isFunction(n)&&(i=i||r,r=n,n=void 0),pe.ajax(pe.extend({url:e,type:t,dataType:i,data:n,success:r},pe.isPlainObject(e)&&e))}}),pe._evalUrl=function(e){return pe.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},pe.fn.extend({wrapAll:function(e){if(pe.isFunction(e))return this.each(function(t){pe(this).wrapAll(e.call(this,t))});if(this[0]){var t=pe(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return pe.isFunction(e)?this.each(function(t){pe(this).wrapInner(e.call(this,t))}):this.each(function(){var t=pe(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=pe.isFunction(e);return this.each(function(n){pe(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){pe.nodeName(this,"body")||pe(this).replaceWith(this.childNodes)}).end()}}),pe.expr.filters.hidden=function(e){return fe.reliableHiddenOffsets()?e.offsetWidth<=0&&e.offsetHeight<=0&&!e.getClientRects().length:K(e)},pe.expr.filters.visible=function(e){return!pe.expr.filters.hidden(e)};var nn=/%20/g,rn=/\[\]$/,on=/\r?\n/g,an=/^(?:submit|button|image|reset|file)$/i,sn=/^(?:input|select|textarea|keygen)/i;pe.param=function(e,t){var n,r=[],i=function(e,t){t=pe.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=pe.ajaxSettings&&pe.ajaxSettings.traditional),pe.isArray(e)||e.jquery&&!pe.isPlainObject(e))pe.each(e,function(){i(this.name,this.value)});else for(n in e)Q(n,e[n],t,i);return r.join("&").replace(nn,"+")},pe.fn.extend({serialize:function(){return pe.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=pe.prop(this,"elements");return e?pe.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!pe(this).is(":disabled")&&sn.test(this.nodeName)&&!an.test(e)&&(this.checked||!Be.test(e))}).map(function(e,t){var n=pe(this).val();return null==n?null:pe.isArray(n)?pe.map(n,function(e){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),pe.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return this.isLocal?ee():re.documentMode>8?Z():/^(get|post|head|put|delete|options)$/i.test(this.type)&&Z()||ee()}:Z;var un=0,ln={},cn=pe.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var e in ln)ln[e](void 0,!0)}),fe.cors=!!cn&&"withCredentials"in cn,cn=fe.ajax=!!cn,cn&&pe.ajaxTransport(function(t){if(!t.crossDomain||fe.cors){var n;return{send:function(r,i){var o,a=t.xhr(),s=++un;if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(o in t.xhrFields)a[o]=t.xhrFields[o];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(o in r)void 0!==r[o]&&a.setRequestHeader(o,r[o]+"");a.send(t.hasContent&&t.data||null),n=function(e,r){var o,u,l;if(n&&(r||4===a.readyState))if(delete ln[s],n=void 0,a.onreadystatechange=pe.noop,r)4!==a.readyState&&a.abort();else{l={},o=a.status,"string"==typeof a.responseText&&(l.text=a.responseText);try{u=a.statusText}catch(c){u=""}o||!t.isLocal||t.crossDomain?1223===o&&(o=204):o=l.text?200:404}l&&i(o,u,l,a.getAllResponseHeaders())},t.async?4===a.readyState?e.setTimeout(n):a.onreadystatechange=ln[s]=n:n()},abort:function(){n&&n(void 0,!0)}}}}),pe.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return pe.globalEval(e),e}}}),pe.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),pe.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=re.head||pe("head")[0]||re.documentElement;return{send:function(r,i){t=re.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var fn=[],dn=/(=)\?(?=&|$)|\?\?/;pe.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=fn.pop()||pe.expando+"_"+Wt++;return this[e]=!0,e}}),pe.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=t.jsonp!==!1&&(dn.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&dn.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=pe.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(dn,"$1"+i):t.jsonp!==!1&&(t.url+=(It.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||pe.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?pe(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,fn.push(i)),a&&pe.isFunction(o)&&o(a[0]),a=o=void 0}),"script"}),pe.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||re;var r=Te.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=y([e],t,i),i&&i.length&&pe(i).remove(),pe.merge([],r.childNodes))};var pn=pe.fn.load;return pe.fn.load=function(e,t,n){if("string"!=typeof e&&pn)return pn.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=pe.trim(e.slice(s,e.length)),e=e.slice(0,s)),pe.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&pe.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?pe("
        ").append(pe.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},pe.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){pe.fn[t]=function(e){return this.on(t,e)}}),pe.expr.filters.animated=function(e){return pe.grep(pe.timers,function(t){return e===t.elem}).length},pe.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=pe.css(e,"position"),f=pe(e),d={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=pe.css(e,"top"),u=pe.css(e,"left"),l=("absolute"===c||"fixed"===c)&&pe.inArray("auto",[o,u])>-1,l?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),pe.isFunction(t)&&(t=t.call(e,n,pe.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):f.css(d)}},pe.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){pe.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(o)return t=o.documentElement,pe.contains(t,i)?("undefined"!=typeof i.getBoundingClientRect&&(r=i.getBoundingClientRect()),n=te(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===pe.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),pe.nodeName(e[0],"html")||(n=e.offset()),n.top+=pe.css(e[0],"borderTopWidth",!0),n.left+=pe.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-pe.css(r,"marginTop",!0),left:t.left-n.left-pe.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){ for(var e=this.offsetParent;e&&!pe.nodeName(e,"html")&&"static"===pe.css(e,"position");)e=e.offsetParent;return e||pt})}}),pe.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);pe.fn[e]=function(r){return Pe(this,function(e,r,i){var o=te(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?pe(o).scrollLeft():i,n?i:pe(o).scrollTop()):e[r]=i)},e,r,arguments.length,null)}}),pe.each(["top","left"],function(e,t){pe.cssHooks[t]=L(fe.pixelPosition,function(e,n){if(n)return n=gt(e,t),ft.test(n)?pe(e).position()[t]+"px":n})}),pe.each({Height:"height",Width:"width"},function(e,t){pe.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){pe.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return Pe(this,function(t,n,r){var i;return pe.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?pe.css(t,n,a):pe.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),pe.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),pe.fn.size=function(){return this.length},pe.fn.andSelf=pe.fn.addBack,layui.define(function(e){e("jquery",pe)}),pe}); ================================================ FILE: public/static/layui/lay/modules/code.js ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ ;layui.define("jquery",function(e){"use strict";var a=layui.jquery,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
        1. '+o.replace(/[\r\t\n]+/g,"
        2. ")+"
        "),c.find(">.layui-code-h3")[0]||c.prepend('

        '+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

        ");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); ================================================ FILE: public/static/layui/lay/modules/element.js ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ ;layui.define("jquery",function(i){"use strict";var t=layui.jquery,a=(layui.hint(),layui.device()),e="element",l="layui-this",n="layui-show",s=function(){this.config={}};s.prototype.set=function(i){var a=this;return t.extend(!0,a.config,i),a},s.prototype.on=function(i,t){return layui.onevent(e,i,t)},s.prototype.tabAdd=function(i,a){var e=t(".layui-tab[lay-filter="+i+"]"),l=e.children(".layui-tab-title"),n=e.children(".layui-tab-content");return l.append("
      • "+(a.title||"unnaming")+"
      • "),n.append('
        '+(a.content||"")+"
        "),y.tabAuto(),this},s.prototype.tabDelete=function(i,a){var e=t(".layui-tab[lay-filter="+i+"]"),l=e.children(".layui-tab-title").find(">li").eq(a);return y.tabDelete(null,l),this},s.prototype.tabChange=function(i,a){var e=t(".layui-tab[lay-filter="+i+"]"),l=e.children(".layui-tab-title").find(">li").eq(a);return y.tabClick(null,a,l),this};var o=".layui-nav",c="layui-nav-item",r="layui-nav-bar",u="layui-nav-tree",d="layui-nav-child",h="layui-nav-more",f="layui-anim layui-anim-upbit",y={tabClick:function(i,a,s){var o=s||t(this),a=a||o.index(),c=o.parents(".layui-tab"),r=c.children(".layui-tab-content").children(".layui-tab-item"),u=c.attr("lay-filter");o.addClass(l).siblings().removeClass(l),r.eq(a).addClass(n).siblings().removeClass(n),layui.event.call(this,e,"tab("+u+")",{elem:c,index:a})},tabDelete:function(i,a){var e=a||t(this).parent(),n=e.index(),s=e.parents(".layui-tab"),o=s.children(".layui-tab-content").children(".layui-tab-item");e.hasClass(l)&&(e.next()[0]?y.tabClick.call(e.next()[0],null,n+1):e.prev()[0]&&y.tabClick.call(e.prev()[0],null,n-1)),e.remove(),o.eq(n).remove()},tabAuto:function(){var i="layui-tab-more",e="layui-tab-bar",l="layui-tab-close",n=this;t(".layui-tab").each(function(){var s=t(this),o=s.children(".layui-tab-title"),c=(s.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),r=t('');if(n===window&&8!=a.ie&&y.hideTabMore(!0),s.attr("lay-allowClose")&&o.find("li").each(function(){var i=t(this);if(!i.find("."+l)[0]){var a=t('');a.on("click",y.tabDelete),i.append(a)}}),o.prop("scrollWidth")>o.outerWidth()+1){if(o.find("."+e)[0])return;o.append(r),r.on("click",function(t){o[this.title?"removeClass":"addClass"](i),this.title=this.title?"":"收缩"})}else o.find("."+e).remove()})},hideTabMore:function(i){var a=t(".layui-tab-title");i!==!0&&"tabmore"===t(i.target).attr("lay-stope")||(a.removeClass("layui-tab-more"),a.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var i=t(this),a=i.parents(o),n=a.attr("lay-filter");i.find("."+d)[0]||(a.find("."+l).removeClass(l),i.addClass(l),layui.event.call(this,e,"nav("+n+")",i))},clickChild:function(){var i=t(this),a=i.parents(o),n=a.attr("lay-filter");a.find("."+l).removeClass(l),i.addClass(l),layui.event.call(this,e,"nav("+n+")",i)},showChild:function(){var i=t(this),a=i.parents(o),e=i.parent(),l=i.siblings("."+d);a.hasClass(u)&&(l.removeClass(f),e["none"===l.css("display")?"addClass":"removeClass"](c+"ed"))}};s.prototype.init=function(i){var e={tab:function(){y.tabAuto.call({})},nav:function(){var i,e,l,s=200,p=function(o,c){var r=t(this),y=r.find("."+d);c.hasClass(u)?o.css({top:r.position().top,height:r.children("a").height(),opacity:1}):(y.addClass(f),o.css({left:r.position().left+parseFloat(r.css("marginLeft")),top:r.position().top+r.height()-5}),i=setTimeout(function(){o.css({width:r.width(),opacity:1})},a.ie&&a.ie<10?0:s),clearTimeout(l),"block"===y.css("display")&&clearTimeout(e),e=setTimeout(function(){y.addClass(n),r.find("."+h).addClass(h+"d")},300))};t(o).each(function(){var a=t(this),o=t(''),f=a.find("."+c);a.find("."+r)[0]||(a.append(o),f.on("mouseenter",function(){p.call(this,o,a)}).on("mouseleave",function(){a.hasClass(u)||(clearTimeout(e),e=setTimeout(function(){a.find("."+d).removeClass(n),a.find("."+h).removeClass(h+"d")},300))}),a.on("mouseleave",function(){clearTimeout(i),l=setTimeout(function(){a.hasClass(u)?o.css({height:0,top:o.position().top+o.height()/2,opacity:0}):o.css({width:0,left:o.position().left+o.width()/2,opacity:0})},s)})),f.each(function(){var i=t(this),a=i.find("."+d);if(a[0]&&!i.find("."+h)[0]){var e=i.children("a");e.append('')}i.off("click",y.clickThis).on("click",y.clickThis),i.children("a").off("click",y.showChild).on("click",y.showChild),a.children("dd").off("click",y.clickChild).on("click",y.clickChild)})})},breadcrumb:function(){var i=".layui-breadcrumb";t(i).each(function(){var i=t(this),a=i.attr("lay-separator")||">",e=i.find("a");e.find(".layui-box")[0]||(e.each(function(i){i!==e.length-1&&t(this).append(''+a+"")}),i.css("visibility","visible"))})}};return layui.each(e,function(i,t){t()})};var p=new s,b=t(document);p.init();var v=".layui-tab-title li";b.on("click",v,y.tabClick),b.on("click",y.hideTabMore),t(window).on("resize",y.tabAuto),i(e,function(i){return p.set(i)})}); ================================================ FILE: public/static/layui/lay/modules/flow.js ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ ;layui.define("jquery",function(e){"use strict";var l=layui.jquery,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var u=l(e.elem);if(u[0]){var f=l(e.scrollElem||document),m=e.mb||50,s=!("isAuto"in e)||e.isAuto,y=e.end||"没有更多了",v=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");u.find(".layui-flow-more")[0]||u.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(y):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(f.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=v?e.height():l(window).height(),n=v?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=m&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var f=e.attr("lay-src");layui.img(f,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",f).removeAttr("lay-src"),l[0]&&u(l),i++})}},u=function(e,o){var u=a?(o||n).height():l(window).height(),f=n.scrollTop(),m=f+u;if(t.lazyimg.elem=l(r),e)c(e,u);else for(var s=0;sm)break}};if(u(),!o){var f;n.on("scroll",function(){var e=l(this);f&&clearTimeout(f),f=setTimeout(function(){u(null,e)},50)}),o=!0}return u},e("flow",new o)}); ================================================ FILE: public/static/layui/lay/modules/form.js ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ ;layui.define("layer",function(e){"use strict";var i=layui.jquery,a=layui.layer,t=layui.hint(),n=layui.device(),l="form",s=".layui-form",c="layui-this",r="layui-disabled",u=function(){this.config={verify:{required:[/[\S]+/,"必填项不能为空"],phone:[/^1\d{10}$/,"请输入正确的手机号"],email:[/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,"邮箱格式不正确"],url:[/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/,"链接格式不正确"],number:[/^\d+$/,"只能填写数字"],date:[/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,"日期格式不正确"],identity:[/(^\d{15}$)|(^\d{17}(x|X|\d)$)/,"请输入正确的身份证号"]}}};u.prototype.set=function(e){var a=this;return i.extend(!0,a.config,e),a},u.prototype.verify=function(e){var a=this;return i.extend(!0,a.config.verify,e),a},u.prototype.on=function(e,i){return layui.onevent(l,e,i)},u.prototype.render=function(e){var a=this,n={select:function(){var e="请选择",a="layui-form-select",t="layui-select-title",n=i(s).find("select"),u=function(e,n){i(e.target).parent().hasClass(t)&&!n||i("."+a).removeClass(a+"ed")},o=function(e,n){var s=i(this),o=e.find("."+t);n||(o.on("click",function(i){e.hasClass(a+"ed")?e.removeClass(a+"ed"):(u(i,!0),e.addClass(a+"ed"))}),e.find("dl>dd").on("click",function(){var e=i(this),a=e.attr("lay-value"),t=s.attr("lay-filter");return!e.hasClass(r)&&(s.val(a).removeClass("layui-form-danger"),o.find("input").val(e.text()),e.addClass(c).siblings().removeClass(c),void layui.event(l,"select("+t+")",{elem:s[0],value:a}))}),e.find("dl>dt").on("click",function(e){return!1}),i(document).off("click",u).on("click",u))};n.each(function(n,l){var s=i(this),u=s.next("."+a),d=this.disabled,f=l.value,y=i(l.options[l.selectedIndex]),v=i(['
        ','
        ','
        ','
        '+function(e){var i=[];return layui.each(e,function(e,a){(0!==e||a.value)&&("optgroup"===a.tagName.toLowerCase()?i.push("
        "+a.label+"
        "):i.push('
        '+a.innerHTML+"
        "))}),i.join("")}(s.find("*"))+"
        ","
        "].join(""));u[0]&&u.remove(),s.after(v),o.call(this,v,d)})},checkbox:function(){var e={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],_switch:["layui-form-switch","layui-form-onswitch","switch"]},a=i(s).find("input[type=checkbox]"),t=function(e,a){var t=i(this);e.on("click",function(){var i=t.attr("lay-filter");t[0].disabled||(t[0].checked?(t[0].checked=!1,e.removeClass(a[1])):(t[0].checked=!0,e.addClass(a[1])),layui.event(l,a[2]+"("+i+")",{elem:t[0],value:t[0].value}))})};a.each(function(a,n){var l=i(this),s=l.attr("lay-skin"),c=this.disabled;"switch"===s&&(s="_"+s);var u=e[s]||e.checkbox,o=l.next("."+u[0]),d=i(['
        ',{_switch:""}[s]||""+(n.title||"勾选")+'',"
        "].join(""));o[0]&&o.remove(),l.after(d),t.call(this,d,u)})},radio:function(){var e="layui-form-radio",a=["",""],t=i(s).find("input[type=radio]"),n=function(t){var n=i(this),c="layui-anim-scaleSpring";t.on("click",function(){var r=n[0].name,u=n.parents(s),o=n.attr("lay-filter"),d=u.find("input[name="+r.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(d,function(){var t=i(this).next("."+e);this.checked=!1,t.removeClass(e+"ed"),t.find(".layui-icon").removeClass(c).html(a[1])}),n[0].checked=!0,t.addClass(e+"ed"),t.find(".layui-icon").addClass(c).html(a[0]),layui.event(l,"radio("+o+")",{elem:n[0],value:n[0].value}))})};t.each(function(t,l){var s=i(this),c=s.next("."+e),u=this.disabled,o=i(['
        ',''+a[l.checked?0:1]+"",""+(l.title||"未命名")+"","
        "].join(""));c[0]&&c.remove(),s.after(o),n.call(this,o)})}};return e?n[e]?n[e]():t.error("不支持的"+e+"表单渲染"):layui.each(n,function(e,i){i()}),a};var o=function(){var e=i(this),t=d.config.verify,c=null,r="layui-form-danger",u={},o=e.parents(s),f=o.find("*[lay-verify]"),y=e.parents("form")[0],v=o.find("input,select,textarea"),h=e.attr("lay-filter");return layui.each(f,function(e,l){var s=i(this),u=s.attr("lay-verify"),o="",d=s.val(),f="function"==typeof t[u];if(s.removeClass(r),t[u]&&(f?o=t[u](d,l):!t[u][0].test(d)))return a.msg(o||t[u][1],{icon:5,shift:6}),n.android||n.ios||l.focus(),s.addClass(r),c=!0}),!c&&(layui.each(v,function(e,i){i.name&&(/^checkbox|radio$/.test(i.type)&&!i.checked||(u[i.name]=i.value))}),layui.event.call(this,l,"submit("+h+")",{elem:this,form:y,field:u}))},d=new u,f=i(document);d.render(),f.on("reset",s,function(){setTimeout(function(){d.render()},50)}),f.on("submit",s,o).on("click","*[lay-submit]",o),e(l,function(e){return d.set(e)})}); ================================================ FILE: public/static/layui/lay/modules/laydate.js ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ ;layui.define(function(e){"use strict";var t=window,a={path:"",skin:"default",format:"YYYY-MM-DD",min:"1900-01-01 00:00:00",max:"2099-12-31 23:59:59",isv:!1,init:!0},n={},s=document,i="createElement",o="getElementById",l="getElementsByTagName",d=["laydate_box","laydate_void","laydate_click","LayDateSkin","skins/","/laydate.css"];t.laydate=function(e){return e=e||{},n.run(e),laydate},laydate.v="1.1",n.trim=function(e){return e=e||"",e.replace(/^\s|\s$/g,"").replace(/\s+/g," ")},n.digit=function(e){return e<10?"0"+(0|e):e},n.stopmp=function(e){return e=e||t.event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,this},n.each=function(e,t){for(var a=0,n=e.length;an.maxs[0]?s=["y",1]:e>=n.mins[0]&&e<=n.maxs[0]&&(e==n.mins[0]&&(tn.maxs[1]?s=["m",1]:t==n.maxs[1]&&a>n.maxs[2]&&(s=["d",1]))),s},n.timeVoid=function(e,t){if(n.ymd[1]+1==n.mins[1]&&n.ymd[2]==n.mins[2]){if(0===t&&en.maxs[3])return 1;if(1===t&&e>n.maxs[4])return 1;if(2===t&&e>n.maxs[5])return 1}if(e>(t?59:23))return 1},n.check=function(){var e=n.options.format.replace(/YYYY|MM|DD|hh|mm|ss/g,"\\d+\\").replace(/\\$/g,""),t=new RegExp(e),a=n.elem[d.elemv],s=a.match(/\d+/g)||[],i=n.checkVoid(s[0],s[1],s[2]);if(""!==a.replace(/\s/g,"")){if(!t.test(a))return n.elem[d.elemv]="",n.msg("日期不符合格式,请重新选择。"),1;if(i[0])return n.elem[d.elemv]="",n.msg("日期不在有效期内,请重新选择。"),1;i.value=n.elem[d.elemv].match(t).join(),s=i.value.match(/\d+/g),s[1]<1?(s[1]=1,i.auto=1):s[1]>12?(s[1]=12,i.auto=1):s[1].length<2&&(i.auto=1),s[2]<1?(s[2]=1,i.auto=1):s[2]>n.months[(0|s[1])-1]?(s[2]=31,i.auto=1):s[2].length<2&&(i.auto=1),s.length>3&&(n.timeVoid(s[3],0)&&(i.auto=1),n.timeVoid(s[4],1)&&(i.auto=1),n.timeVoid(s[5],2)&&(i.auto=1)),i.auto?n.creation([s[0],0|s[1],0|s[2]],1):i.value!==n.elem[d.elemv]&&(n.elem[d.elemv]=i.value)}},n.months=[31,null,31,30,31,30,31,31,30,31,30,31],n.viewDate=function(e,t,a){var s=(n.query,{}),i=new Date;e<(0|n.mins[0])&&(e=0|n.mins[0]),e>(0|n.maxs[0])&&(e=0|n.maxs[0]),i.setFullYear(e,t,a),s.ymd=[i.getFullYear(),i.getMonth(),i.getDate()],n.months[1]=n.isleap(s.ymd[0])?29:28,i.setFullYear(s.ymd[0],s.ymd[1],1),s.FDay=i.getDay(),s.PDay=n.months[0===t?11:t-1]-s.FDay+1,s.NDay=1,n.each(d.tds,function(e,t){var a,i=s.ymd[0],o=s.ymd[1]+1;t.className="",e=s.FDay&&e'+e+"年":'
      • '+(e-7+t)+"年
      • "}),t("#laydate_ys").innerHTML=a,n.each(t("#laydate_ys li"),function(e,t){"y"===n.checkVoid(t.getAttribute("y"))[0]?n.addClass(t,d[1]):n.on(t,"click",function(e){n.stopmp(e).reshow(),n.viewDate(0|this.getAttribute("y"),n.ymd[1],n.ymd[2])})})},n.initDate=function(){var e=(n.query,new Date),t=n.elem[d.elemv].match(/\d+/g)||[];t.length<3&&(t=n.options.start.match(/\d+/g)||[],t.length<3&&(t=[e.getFullYear(),e.getMonth()+1,e.getDate()])),n.inymd=t,n.viewDate(t[0],t[1]-1,t[2])},n.iswrite=function(){var e=n.query,t={time:e("#laydate_hms")};n.shde(t.time,!n.options.istime),n.shde(d.oclear,!("isclear"in n.options?n.options.isclear:1)),n.shde(d.otoday,!("istoday"in n.options?n.options.istoday:1)),n.shde(d.ok,!("issure"in n.options?n.options.issure:1))},n.orien=function(e,t){var a,s=n.elem.getBoundingClientRect();e.style.left=s.left+(t?0:n.scroll(1))+"px",a=s.bottom+e.offsetHeight/1.5<=n.winarea()?s.bottom-1:s.top>e.offsetHeight/1.5?s.top-e.offsetHeight+1:n.winarea()-e.offsetHeight,e.style.top=Math.max(a+(t?0:n.scroll()),1)+"px"},n.follow=function(e){n.options.fixed?(e.style.position="fixed",n.orien(e,1)):(e.style.position="absolute",n.orien(e))},n.viewtb=function(){var e,t=[],a=["日","一","二","三","四","五","六"],o={},d=s[i]("table"),r=s[i]("thead");return r.appendChild(s[i]("tr")),o.creath=function(e){var t=s[i]("th");t.innerHTML=a[e],r[l]("tr")[0].appendChild(t),t=null},n.each(new Array(6),function(a){t.push([]),e=d.insertRow(0),n.each(new Array(7),function(n){t[a][n]=0,0===a&&o.creath(n),e.insertCell(n)})}),d.insertBefore(r,d.children[0]),d.id=d.className="laydate_table",e=t=null,d.outerHTML.toLowerCase()}(),n.view=function(e,t){var o,l=n.query,r={};t=t||e,n.elem=e,n.options=t,n.options.format||(n.options.format=a.format),n.options.start=n.options.start||"",n.mm=r.mm=[n.options.min||a.min,n.options.max||a.max],n.mins=r.mm[0].match(/\d+/g),n.maxs=r.mm[1].match(/\d+/g),n.box?n.shde(n.box):(o=s[i]("div"),o.id=d[0],o.className=d[0],o.style.cssText="position: absolute;",o.setAttribute("name","laydate-v"+laydate.v),o.innerHTML=r.html='
          '+function(){var e="";return n.each(new Array(12),function(t){e+=''+n.digit(t+1)+"月"}),e}()+"
          "+n.viewtb+'",s.body.appendChild(o),n.box=l("#"+d[0]),n.events(),o=null),n.follow(n.box),t.zIndex?n.box.style.zIndex=t.zIndex:n.removeCssAttr(n.box,"z-index"),n.stopMosup("click",n.box),n.initDate(),n.iswrite(),n.check()},n.reshow=function(){return n.each(n.query("#"+d[0]+" .laydate_show"),function(e,t){n.removeClass(t,"laydate_show")}),this},n.close=function(){n.reshow(),n.shde(n.query("#"+d[0]),1),n.elem=null},n.parse=function(e,t,s){return e=e.concat(t),s=s||(n.options?n.options.format:a.format),s.replace(/YYYY|MM|DD|hh|mm|ss/g,function(t,a){return e.index=0|++e.index,n.digit(e[e.index])})},n.creation=function(e,t){var a=(n.query,n.hmsin),s=n.parse(e,[a[0].value,a[1].value,a[2].value]);n.elem[d.elemv]=s,t||(n.close(),"function"==typeof n.options.choose&&n.options.choose(s))},n.events=function(){var e=n.query,a={box:"#"+d[0]};n.addClass(s.body,"laydate_body"),d.tds=e("#laydate_table td"),d.mms=e("#laydate_ms span"),d.year=e("#laydate_y"),d.month=e("#laydate_m"),n.each(e(a.box+" .laydate_ym"),function(e,t){n.on(t,"click",function(t){n.stopmp(t).reshow(),n.addClass(this[l]("div")[0],"laydate_show"),e||(a.YY=parseInt(d.year.value),n.viewYears(a.YY))})}),n.on(e(a.box),"click",function(){n.reshow()}),a.tabYear=function(e){0===e?n.ymd[0]--:1===e?n.ymd[0]++:2===e?a.YY-=14:a.YY+=14,e<2?(n.viewDate(n.ymd[0],n.ymd[1],n.ymd[2]),n.reshow()):n.viewYears(a.YY)},n.each(e("#laydate_YY .laydate_tab"),function(e,t){n.on(t,"click",function(t){n.stopmp(t),a.tabYear(e)})}),a.tabMonth=function(e){e?(n.ymd[1]++,12===n.ymd[1]&&(n.ymd[0]++,n.ymd[1]=0)):(n.ymd[1]--,n.ymd[1]===-1&&(n.ymd[0]--,n.ymd[1]=11)),n.viewDate(n.ymd[0],n.ymd[1],n.ymd[2])},n.each(e("#laydate_MM .laydate_tab"),function(e,t){n.on(t,"click",function(t){n.stopmp(t).reshow(),a.tabMonth(e)})}),n.each(e("#laydate_ms span"),function(e,t){n.on(t,"click",function(e){n.stopmp(e).reshow(),n.hasClass(this,d[1])||n.viewDate(n.ymd[0],0|this.getAttribute("m"),n.ymd[2])})}),n.each(e("#laydate_table td"),function(e,t){n.on(t,"click",function(e){n.hasClass(this,d[1])||(n.stopmp(e),n.creation([0|this.getAttribute("y"),0|this.getAttribute("m"),0|this.getAttribute("d")]))})}),d.oclear=e("#laydate_clear"),n.on(d.oclear,"click",function(){n.elem[d.elemv]="",n.close()}),d.otoday=e("#laydate_today"),n.on(d.otoday,"click",function(){var e=new Date;n.creation([e.getFullYear(),e.getMonth()+1,e.getDate()])}),d.ok=e("#laydate_ok"),n.on(d.ok,"click",function(){n.valid&&n.creation([n.ymd[0],n.ymd[1]+1,n.ymd[2]])}),a.times=e("#laydate_time"),n.hmsin=a.hmsin=e("#laydate_hms input"),a.hmss=["小时","分钟","秒数"],a.hmsarr=[],n.msg=function(t,s){var i='
          '+(s||"提示")+"×
          ";"string"==typeof t?(i+="

          "+t+"

          ",n.shde(e("#"+d[0])),n.removeClass(a.times,"laydate_time1").addClass(a.times,"laydate_msg")):(a.hmsarr[t]?i=a.hmsarr[t]:(i+='
          ',n.each(new Array(0===t?24:60),function(e){i+=""+e+""}),i+="
          ",a.hmsarr[t]=i),n.removeClass(a.times,"laydate_msg"),n[0===t?"removeClass":"addClass"](a.times,"laydate_time1")),n.addClass(a.times,"laydate_show"),a.times.innerHTML=i},a.hmson=function(t,a){var s=e("#laydate_hmsno span"),i=n.valid?null:1;n.each(s,function(e,s){i?n.addClass(s,d[1]):n.timeVoid(e,a)?n.addClass(s,d[1]):n.on(s,"click",function(e){n.hasClass(this,d[1])||(t.value=n.digit(0|this.innerHTML))})}),n.addClass(s[0|t.value],"laydate_click")},n.each(a.hmsin,function(e,t){n.on(t,"click",function(t){n.stopmp(t).reshow(),n.msg(e,a.hmss[e]),a.hmson(this,e)})}),n.on(s,"mouseup",function(){var t=e("#"+d[0]);t&&"none"!==t.style.display&&(n.check()||n.close())}).on(s,"keydown",function(e){e=e||t.event;var a=e.keyCode;13===a&&n.elem&&n.creation([n.ymd[0],n.ymd[1]+1,n.ymd[2]])})},laydate.reset=function(){n.box&&n.elem&&n.follow(n.box)},laydate.now=function(e,t){var a=new Date(0|e?function(e){return e<864e5?+new Date+864e5*e:e}(parseInt(e)):+new Date);return n.parse([a.getFullYear(),a.getMonth()+1,a.getDate()],[a.getHours(),a.getMinutes(),a.getSeconds()],t)},layui.addcss("modules/laydate/laydate.css",function(){},"laydatecss"),e("laydate",laydate)}); ================================================ FILE: public/static/layui/lay/modules/layedit.js ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ ;layui.define(["layer","form"],function(t){"use strict";var e=layui.jquery,i=layui.layer,a=layui.form(),l=(layui.hint(),layui.device()),n="layedit",o="layui-show",r="layui-disabled",s=function(){var t=this;t.index=0,t.config={tool:["strong","italic","underline","del","|","left","center","right","|","link","unlink","face","image"],hideTool:[],height:280}};s.prototype.set=function(t){var i=this;return e.extend(!0,i.config,t),i},s.prototype.on=function(t,e){return layui.onevent(n,t,e)},s.prototype.build=function(t,i){i=i||{};var a=this,n=a.config,r="layui-layedit",s=e("#"+t),u="LAY_layedit_"+ ++a.index,d=s.next("."+r),y=e.extend({},n,i),f=function(){var t=[],e={};return layui.each(y.hideTool,function(t,i){e[i]=!0}),layui.each(y.tool,function(i,a){C[a]&&!e[a]&&t.push(C[a])}),t.join("")}(),m=e(['
          ','
          '+f+"
          ",'
          ','',"
          ","
          "].join(""));return l.ie&&l.ie<8?s.removeClass("layui-hide").addClass(o):(d[0]&&d.remove(),c.call(a,m,s[0],y),s.addClass("layui-hide").after(m),a.index)},s.prototype.getContent=function(t){var e=u(t);if(e[0])return d(e[0].document.body.innerHTML)},s.prototype.getText=function(t){var i=u(t);if(i[0])return e(i[0].document.body).text()},s.prototype.sync=function(t){var i=u(t);if(i[0]){var a=e("#"+i[1].attr("textarea"));a.val(d(i[0].document.body.innerHTML))}},s.prototype.getSelection=function(t){var e=u(t);if(e[0]){var i=m(e[0].document);return document.selection?i.text:i.toString()}};var c=function(t,i,a){var l=this,n=t.find("iframe");n.css({height:a.height}).on("load",function(){var o=n.contents(),r=n.prop("contentWindow"),s=o.find("head"),c=e([""].join("")),u=o.find("body");s.append(c),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,s=e(r.body);s.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("请暂时用shift+enter"),!1}r.execCommand("formatBlock",!1,"

          ")}}),e(n).parents("form").on("submit",function(){var t=s.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),s.on("paste",function(e){r.execCommand("formatBlock",!1,"

          "),setTimeout(function(){f.call(t,s),n.value=s.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),s={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o({url:r.url,method:r.type,elem:e(n).find("input")[0],unwrap:!0,success:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"上传失败")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"帮助",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["http://www.layui.com/about/layedit/help.html","no"]})}},c=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"

          "),setTimeout(function(){o.focus()},10)):s[a]&&s[a].call(this,u),h.call(t,c,i)}},d=/image/;c.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,c),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"超链接",skin:"layui-layer-msg",content:['

            ','
          • ','','
            ','',"
            ","
          • ",'
          • ','','
            ','",'","
            ","
          • ",'
          • ','','',"
          • ","
          "].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[微笑]","[嘻嘻]","[哈哈]","[可爱]","[可怜]","[挖鼻]","[吃惊]","[害羞]","[挤眼]","[闭嘴]","[鄙视]","[爱你]","[泪]","[偷笑]","[亲亲]","[生病]","[太开心]","[白眼]","[右哼哼]","[左哼哼]","[嘘]","[衰]","[委屈]","[吐]","[哈欠]","[抱抱]","[怒]","[疑问]","[馋嘴]","[拜拜]","[思考]","[汗]","[困]","[睡]","[钱]","[失望]","[酷]","[色]","[哼]","[鼓掌]","[晕]","[悲伤]","[抓狂]","[黑线]","[阴险]","[怒骂]","[互粉]","[心]","[伤心]","[猪头]","[熊猫]","[兔子]","[ok]","[耶]","[good]","[NO]","[赞]","[来]","[弱]","[草泥马]","[神马]","[囧]","[浮云]","[给力]","[围观]","[威武]","[奥特曼]","[礼物]","[钟]","[话筒]","[蜡烛]","[蛋糕]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('
        • '+e+'
        • ')}),'
            '+t.join("")+"
          "}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"插入代码",skin:"layui-layer-msg",content:['
            ','
          • ','','
            ','","
            ","
          • ",'
          • ','','
            ','',"
            ","
          • ",'
          • ','','',"
          • ","
          "].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'',strong:'',italic:'',underline:'',del:'',"|":'',left:'',center:'',right:'',link:'',unlink:'',face:'',image:'',code:'',help:''},w=new s;t(n,w)}); ================================================ FILE: public/static/layui/lay/modules/layer.js ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ ;!function(e,t){"use strict";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.scripts,t=e[e.length-1],i=t.src;if(!t.getAttribute("merge"))return i.substring(0,i.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"]},r={v:"3.0.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):r.link("skin/"+e.extend),this):this},link:function(t,n,a){if(r.path){var o=i("head")[0],l=document.createElement("link");"string"==typeof n&&(a=n);var s=(a||t).replace(/\.|\//g,""),f="layuicss-"+s,c=0;l.rel="stylesheet",l.href=r.path+t,l.id=f,i("#"+f)[0]||o.appendChild(l),"function"==typeof n&&!function d(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(i("#"+f).css("width"))?n():setTimeout(d,100))}()}},ready:function(e){var t="skinlayercss",i="1110";return a?layui.addcss("modules/layer/default/layer.css?v="+r.v+i,e,t):r.link("skin/default/layer.css?v="+r.v+i,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var l="function"==typeof t;return l&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},l?{}:t))},msg:function(e,n,a){var l="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",d=s.anim.length-1;return l&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},l&&!o.config.skin?{skin:c+" layui-layer-hui",anim:d}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},l=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},50)};l.pt=l.prototype;var s=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];s.anim=["layer-anim","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],l.pt.config={type:0,shade:.3,fixed:!0,move:s[1],title:"信息",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},l.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,l=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),d=r.title?'
          '+(f?r.title[0]:r.title)+"
          ":"";return r.zIndex=l,t([r.shade?'
          ':"",'
          '+(e&&2!=r.type?"":d)+'
          '+(0==r.type&&r.icon!==-1?'':"")+(1==r.type&&e?"":r.content||"")+'
          '+function(){var e=c?'':"";return r.closeBtn&&(e+=''),e}()+""+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t'+r.btn[t]+"";return'
          '+e+"
          "}():"")+(r.resize?'':"")+"
          "],d,i('
          ')),n},l.pt.creat=function(){var e=this,t=e.config,a=e.index,l=t.content,f="object"==typeof l,c=i("body");if(!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var l=t.content=f?t.content:[t.content||"http://layer.layui.com","auto"];t.content='';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}e.vessel(f,function(n,r,d){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){l.parents("."+s[0])[0]||(l.data("display",l.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+s[0]+a).find("."+s[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=d),e.layero=i("#"+s[0]+a),t.scrollbar||s.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",l[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),s.anim[t.anim]&&e.layero.addClass(s.anim[t.anim]).data("anim",!0)}},l.pt.auto=function(e){function t(e){e=l.find(e),e.height(f[1]-c-d-2*(0|parseFloat(e.css("padding"))))}var a=this,o=a.config,l=i("#"+s[0]+e);""===o.area[0]&&o.maxWidth>0&&(r.ie&&r.ie<8&&o.btn&&l.width(l.innerWidth()),l.outerWidth()>o.maxWidth&&l.width(o.maxWidth));var f=[l.innerWidth(),l.innerHeight()],c=l.find(s[1]).outerHeight()||0,d=l.find("."+s[6]).outerHeight()||0;switch(o.type){case 2:t("iframe");break;default:""===o.area[1]?o.fixed&&f[1]>=n.height()&&(f[1]=n.height(),t("."+s[5])):t("."+s[5])}return a},l.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(s[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},l.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var l={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),l.autoLeft=function(){l.left+o[0]-n.width()>0?(l.tipLeft=l.left+l.width-o[0],f.css({right:12,left:"auto"})):l.tipLeft=l.left},l.where=[function(){l.autoLeft(),l.tipTop=l.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){l.tipLeft=l.left+l.width+10,l.tipTop=l.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){l.autoLeft(),l.tipTop=l.top+l.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){l.tipLeft=l.left-o[0]-10,l.tipTop=l.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],l.where[c-1](),1===c?l.top-(n.scrollTop()+o[1]+16)<0&&l.where[2]():2===c?n.width()-(l.left+l.width+o[0]+16)>0||l.where[3]():3===c?l.top-n.scrollTop()+l.height+o[1]+16-n.height()>0&&l.where[0]():4===c&&o[0]+16-l.left>0&&l.where[1](),a.find("."+s[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:l.tipLeft-(t.fixed?n.scrollLeft():0),top:l.tipTop-(t.fixed?n.scrollTop():0)})},l.pt.move=function(){var e=this,t=e.config,a=i(document),l=e.layero,s=l.find(t.move),f=l.find(".layui-layer-resize"),c={};return t.move&&s.css("cursor","move"),s.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(l.css("left")),e.clientY-parseFloat(l.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[l.outerWidth(),l.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],s="fixed"===l.css("position");if(i.preventDefault(),c.stX=s?0:n.scrollLeft(),c.stY=s?0:n.scrollTop(),!t.moveOut){var f=n.width()-l.outerWidth()+c.stX,d=n.height()-l.outerHeight()+c.stY;af&&(a=f),od&&(o=d)}l.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd()),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},l.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+s[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+s[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+s[0])[0]||1==n.attr("layer")&&i("."+s[0]).length<1&&n.removeAttr("layer").show(),n=null})},l.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+s[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},l.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){s.html.attr("layer-full")==e&&(s.html[0].style.removeProperty?s.html[0].style.removeProperty("overflow"):s.html[0].style.removeAttribute("overflow"),s.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+s[4]).attr("times"),i("#"+s[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+s[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+s[0]+e),a=n.find(s[1]).outerHeight()||0,o=n.find("."+s[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+s[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+s[0]+e),r=a.find(".layui-layer-content"),l=a.attr("type"),f=a.find(s[1]).outerHeight()||0,c=a.find("."+s[6]).outerHeight()||0;a.attr("minLeft");l!==o.type[3]&&l!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+s[6]).outerHeight(),l===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+s[0]+e),l=a.find(s[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:l,left:f,top:n.height()-l,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(s[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+s[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(s[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+s[0]+e);o.record(a),s.html.attr("layer-full")||s.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+s[0]+(t||r.index)).find(s[1]);n.html(e)},r.close=function(e){var t=i("#"+s[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var l="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+s[5]+")").remove();for(var a=t.find("."+l),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(l)}else{if(n===o.type[2])try{var f=i("#"+s[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+s[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("anim")&&t.addClass(a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),setTimeout(function(){f()},r.ie&&r.ie<10||!t.data("anim")?0:200)}},r.closeAll=function(e){i.each(i("."+s[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var l,s=2==e.formType?'":function(){return''}();return r.open(i.extend({type:1,btn:["确定","取消"],content:s,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(e){l=e.find(".layui-layer-input"),l.focus()},resize:!1,yes:function(i){var n=l.val();""===n?l.focus():n.length>(e.maxlength||500)?r.tips("最多输入"+(e.maxlength||500)+"个字数",l,{tips:1}):t&&t(n,i,l)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{};return r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,n="";if(e>0)for(n=''+t[0].title+"";i"+t[i].title+"";return n}(),content:'
            '+function(){var e=t.length,i=1,n="";if(e>0)for(n='
          • '+(t[0].content||"no content")+"
          • ";i'+(t[i].content||"no content")+"";return n}()+"
          ",success:function(t){var n=t.find(".layui-layer-title").children(),a=t.find(".layui-layer-tabmain").children();n.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var n=i(this),o=n.index();n.addClass("layui-layer-tabnow").siblings().removeClass("layui-layer-tabnow"),a.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)})}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var l={};if(t=t||{},t.photos){var s=t.photos.constructor===Object,f=s?t.photos:{},d=f.data||[],u=f.start||0;if(l.imgIndex=(0|u)+1,t.img=t.img||"img",s){if(0===d.length)return r.msg("没有图片")}else{var y=i(t.photos),p=function(){d=[],y.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),d.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(p(),0===d.length)return;if(n||y.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:d,tab:t.tab},full:t.full}),!0),p()}),!n)return}l.imgprev=function(e){l.imgIndex--,l.imgIndex<1&&(l.imgIndex=d.length),l.tabimg(e)},l.imgnext=function(e,t){l.imgIndex++,l.imgIndex>d.length&&(l.imgIndex=1,t)||l.tabimg(e)},l.keyup=function(e){if(!l.end){var t=e.keyCode;e.preventDefault(),37===t?l.imgprev(!0):39===t?l.imgnext(!0):27===t&&r.close(l.index)}},l.tabimg=function(e){d.length<=1||(f.start=l.imgIndex-1,r.close(l.index),r.photos(t,!0,e))},l.event=function(){l.bigimg.hover(function(){l.imgsee.show()},function(){l.imgsee.hide()}),l.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),l.imgprev()}),l.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),l.imgnext()}),i(document).on("keyup",l.keyup)},l.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(d[u].src,function(n){r.close(l.loadi),l.index=r.open(i.extend({type:1,area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]'+(d[u].alt||
          '+(d.length>1?'':"")+'
          '+(d[u].alt||"")+""+l.imgIndex+"/"+d.length+"
          ",success:function(e,i){l.bigimg=e.find(".layui-layer-phimg"),l.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),l.event(e),t.tab&&t.tab(d[u],e)},end:function(){l.end=!0,i(document).off("keyup",l.keyup)}},t))},function(){r.close(l.loadi),r.msg("当前图片地址异常
          是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){d.length>1&&l.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),s.html=i("html"),r.open=function(e){var t=new l(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.jquery),e.layer=r,t("layer",r)})):"function"==typeof define?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window); ================================================ FILE: public/static/layui/lay/modules/laypage.js ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ ;layui.define(function(a){"use strict";function t(a){new p(a)}var e=document,r="getElementById",n="getElementsByTagName",s=0,p=function(a){var t=this,e=t.config=a||{};e.item=s++,t.render(!0)};p.on=function(a,t,e){return a.attachEvent?a.attachEvent("on"+t,function(){e.call(a,window.even)}):a.addEventListener(t,e,!1),p},p.prototype.type=function(){var a=this.config;if("object"==typeof a.cont)return void 0===a.cont.length?2:3},p.prototype.view=function(){var a=this,t=a.config,e=[],r={};if(t.pages=0|t.pages,t.curr=0|t.curr||1,t.groups="groups"in t?0|t.groups:5,t.first="first"in t?t.first:"首页",t.last="last"in t?t.last:"末页",t.prev="prev"in t?t.prev:"上一页",t.next="next"in t?t.next:"下一页",t.pages<=1)return"";for(t.groups>t.pages&&(t.groups=t.pages),r.index=Math.ceil((t.curr+(t.groups>1&&t.groups!==t.pages?1:0))/(0===t.groups?1:t.groups)),t.curr>1&&t.prev&&e.push(''+t.prev+""),r.index>1&&t.first&&0!==t.groups&&e.push(''+t.first+""),r.poor=Math.floor((t.groups-1)/2),r.start=r.index>1?t.curr-r.poor:1,r.end=r.index>1?function(){var a=t.curr+(t.groups-r.poor-1);return a>t.pages?t.pages:a}():t.groups,r.end-r.start"+r.start+""):e.push(''+r.start+"");return t.pages>t.groups&&r.end'+t.last+""),r.flow=!t.prev&&0===t.groups,(t.curr!==t.pages&&t.next||r.flow)&&e.push(function(){return r.flow&&t.curr===t.pages?''+t.next+"":''+t.next+""}()),'
          '+e.join("")+function(){return t.skip?'到第 ':""}()+"
          "},p.prototype.jump=function(a){if(a){for(var t=this,e=t.config,r=a.children,s=a[n]("button")[0],i=a[n]("input")[0],u=0,o=r.length;u/g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var n="Laytpl Error:";return"object"==typeof console&&console.error(n+e+"\n"+(r||"")),n+e}},c=n.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=c("^"+r.open+"#",""),l=c(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(c(r.open+"#"),r.open+"# ").replace(c(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(/(?="|')/g,"\\").replace(n.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(n.query(1),function(e){var n='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(c(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),n='"+_escape_('),n+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,n.escape)}catch(u){return delete o.cache,n.error(u,p)}},t.pt.render=function(e,r){var c,t=this;return e?(c=t.cache?t.cache(e,n.escape):t.parse(t.tpl,e),r?void r(c):c):n.error("no data")};var o=function(e){return"string"!=typeof e?n.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var n in e)r[n]=e[n]},o.v="1.2.0",e("laytpl",o)}); ================================================ FILE: public/static/layui/lay/modules/tree.js ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ ;layui.define("jquery",function(e){"use strict";var o=layui.jquery,a=layui.hint(),r="layui-tree-enter",i=function(e){this.options=e},t={arrow:["",""],checkbox:["",""],radio:["",""],branch:["",""],leaf:""};i.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},i.prototype.tree=function(e,a){var r=this,i=r.options,n=a||i.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o('
            '),s=o(["
          • ",function(){return l?''+(n.spread?t.arrow[1]:t.arrow[0])+"":""}(),function(){return i.check?''+("checkbox"===i.check?t.checkbox[0]:"radio"===i.check?t.radio[0]:"")+"":""}(),function(){return'"+(''+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"")+(""+(n.name||"未命名")+"")}(),"
          • "].join(""));l&&(s.append(c),r.tree(c,n.children)),e.append(s),"function"==typeof i.click&&r.click(s,n),r.spread(s,n),i.drag&&r.drag(s,n)})},i.prototype.click=function(e,o){var a=this,r=a.options;e.children("a").on("click",function(e){layui.stope(e),r.click(o)})},i.prototype.spread=function(e,o){var a=this,r=(a.options,e.children(".layui-tree-spread")),i=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),i.removeClass("layui-show"),r.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),i.addClass("layui-show"),r.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};i[0]&&(r.on("click",l),n.on("dblclick",l))},i.prototype.on=function(e){var a=this,i=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),i.drag&&o(document).on("mousemove",function(e){var r=a.move;if(r.from){var i=(r.to,o('
            '));e.preventDefault(),o("."+t)[0]||o("body").append(i);var n=o("."+t)[0]?o("."+t):i;n.addClass("layui-show").html(r.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(r),e.to&&e.to.elem.children("a").removeClass(r),a.move={},o("."+t).remove())})},i.prototype.move={},i.prototype.drag=function(e,a){var i=this,t=(i.options,e.children("a")),n=function(){var t=o(this),n=i.move;n.from&&(n.to={item:a,elem:e},t.addClass(r))};t.on("mousedown",function(){var o=i.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=i.move;a.from&&(delete a.to,e.removeClass(r))})},e("tree",function(e){var r=new i(e=e||{}),t=o(e.elem);return t[0]?void r.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})}); ================================================ FILE: public/static/layui/lay/modules/upload.js ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ ;layui.define("layer",function(e){"use strict";var a=layui.jquery,t=layui.layer,i=(layui.device(),"layui-upload-enter"),n="layui-upload-iframe",r={icon:2,shift:6},o={file:"文件",video:"视频",audio:"音频"},s=function(e){this.options=e};s.prototype.init=function(){var e=this,t=e.options,r=a("body"),s=a(t.elem||".layui-upload-file"),u=a('');return a("#"+n)[0]||r.append(u),s.each(function(r,s){s=a(s);var u='
            ',l=s.attr("lay-type")||t.type;t.unwrap||(u='
            '+u+''+(s.attr("lay-title")||t.title||"上传"+(o[l]||"图片"))+"
            "),u=a(u),t.unwrap||u.on("dragover",function(e){e.preventDefault(),a(this).addClass(i)}).on("dragleave",function(){a(this).removeClass(i)}).on("drop",function(){a(this).removeClass(i)}),s.parent("form").attr("target")===n&&(t.unwrap?s.unwrap():(s.parent().next().remove(),s.unwrap().unwrap())),s.wrap(u),s.off("change").on("change",function(){e.action(this,l)})})},s.prototype.action=function(e,i){var o=this,s=o.options,u=e.value,l=a(e),p=l.attr("lay-ext")||s.ext||"";if(u){switch(i){case"file":if(p&&!RegExp("\\w\\.("+p+")$","i").test(escape(u)))return t.msg("不支持该文件格式",r),e.value="";break;case"video":if(!RegExp("\\w\\.("+(p||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(u)))return t.msg("不支持该视频格式",r),e.value="";break;case"audio":if(!RegExp("\\w\\.("+(p||"mp3|wav|mid")+")$","i").test(escape(u)))return t.msg("不支持该音频格式",r),e.value="";break;default:if(!RegExp("\\w\\.("+(p||"jpg|png|gif|bmp|jpeg")+")$","i").test(escape(u)))return t.msg("不支持该图片格式",r),e.value=""}s.before&&s.before(e),l.parent().submit();var c=a("#"+n),f=setInterval(function(){var a;try{a=c.contents().find("body").text()}catch(i){t.msg("上传接口存在跨域",r),clearInterval(f)}if(a){clearInterval(f),c.contents().find("body").html("");try{a=JSON.parse(a)}catch(i){return a={},t.msg("请对上传接口返回JSON字符",r)}"function"==typeof s.success&&s.success(a,e)}},30);e.value=""}},e("upload",function(e){var a=new s(e=e||{});a.init()})}); ================================================ FILE: public/static/layui/lay/modules/util.js ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ ;layui.define("jquery",function(l){"use strict";var o=layui.jquery,i={fixbar:function(l){l=l||{},l.bgcolor=l.bgcolor?"background-color:"+l.bgcolor:"";var i,a,c="layui-fixbar-top",t=[l.bar1===!0?"":l.bar1,l.bar2===!0?"":l.bar2,""],r=o(['
              ',l.bar1?'
            • '+t[0]+"
            • ":"",l.bar2?'
            • '+t[1]+"
            • ":"",'
            • '+t[2]+"
            • ","
            "].join("")),e=r.find("."+c),s=function(){var i=o(document).scrollTop();i>=(l.showHeight||200)?a||(e.show(),a=1):a&&(e.hide(),a=0)};o(".layui-fixbar")[0]||("object"==typeof l.css&&r.css(l.css),o("body").append(r),s(),r.find("li").on("click",function(){var i=o(this),a=i.attr("lay-type");"top"===a&&o("html,body").animate({scrollTop:0},200),l.click&&l.click.call(this,a)}),o(document).on("scroll",function(){i&&clearTimeout(i),i=setTimeout(function(){s()},100)}))}};l("util",i)}); ================================================ FILE: public/static/layui/layui.js ================================================ /** layui-v1.0.7 LGPL License By http://www.layui.com */ ;!function(e){"use strict";var t=function(){this.v="1.0.7"};t.fn=t.prototype;var n=document,o=t.fn.cache={},i=function(){var e=n.scripts,t=e[e.length-1].src;return t.substring(0,t.lastIndexOf("/")+1)}(),r=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},u="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),l={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",tree:"modules/tree",slide:"modules/slide",table:"modules/table",element:"modules/element",util:"modules/util",flow:"modules/flow",code:"modules/code",single:"modules/single",mobile:"modules/mobile",jquery:"lib/jquery","layui.mod":"dest/layui.mod"};o.modules={},o.status={},o.timeout=10,o.event={},t.fn.define=function(e,t){var n=this,i="function"==typeof e,r=function(){return"function"==typeof t&&t(function(e,t){layui[e]=t,o.status[e]=!0}),this};return i&&(t=e,e=[]),layui["layui.all"]?r.call(n):(n.use(e,r),n)},t.fn.use=function(e,t,a){function s(e,t){var n="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||n.test((e.currentTarget||e.srcElement).readyState))&&(o.modules[m]=t,y.removeChild(v),function i(){return++p>1e3*o.timeout/4?r(m+" is not a valid module"):void(o.status[m]?c():setTimeout(i,4))}())}function c(){a.push(layui[m]),e.length>1?f.use(e.slice(1),t,a):"function"==typeof t&&t.apply(layui,a)}var f=this,d=o.dir=o.dir?o.dir:i,y=n.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(f.each(e,function(t,n){"jquery"===n&&e.splice(t,1)}),layui.jquery=jQuery);var m=e[0],p=0;if(a=a||[],o.host=o.host||(d.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&l[m])return"function"==typeof t&&t.apply(layui,a),f;var v=n.createElement("script"),h=(l[m]?d+"lay/":o.base||"")+(f.modules[m]||m)+".js";return v.async=!0,v.charset="utf-8",v.src=h+function(){var e=o.version===!0?o.v||(new Date).getTime():o.version||"";return e?"?v="+e:""}(),o.modules[m]?!function g(){return++p>1e3*o.timeout/4?r(m+" is not a valid module"):void("string"==typeof o.modules[m]&&o.status[m]?c():setTimeout(g,4))}():(y.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||u?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)})),o.modules[m]=h,f},t.fn.getStyle=function(t,n){var o=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return o[o.getPropertyValue?"getPropertyValue":"getAttribute"](n)},t.fn.link=function(e,t,i){var u=this,l=n.createElement("link"),a=n.getElementsByTagName("head")[0];"string"==typeof t&&(i=t);var s=(i||e).replace(/\.|\//g,""),c=l.id="layuicss-"+s,f=0;l.rel="stylesheet",l.href=e+(o.debug?"?v="+(new Date).getTime():""),l.media="all",n.getElementById(c)||a.appendChild(l),"function"==typeof t&&!function d(){return++f>1e3*o.timeout/100?r(e+" timeout"):void(1989===parseInt(u.getStyle(n.getElementById(c),"width"))?function(){t()}():setTimeout(d,100))}()},t.fn.addcss=function(e,t,n){layui.link(o.dir+"css/"+e,t,n)},t.fn.img=function(e,t,n){var o=new Image;return o.src=e,o.complete?t(o):(o.onload=function(){o.onload=null,t(o)},void(o.onerror=function(e){o.onerror=null,n(e)}))},t.fn.config=function(e){e=e||{};for(var t in e)o[t]=e[t];return this},t.fn.modules=function(){var e={};for(var t in l)e[t]=l[t];return e}(),t.fn.extend=function(e){var t=this;e=e||{};for(var n in e)t[n]||t.modules[n]?r("模块名 "+n+" 已被占用"):t.modules[n]=e[n];return t},t.fn.router=function(e){for(var t,n=(e||location.hash).replace(/^#/,"").split("/")||[],o={dir:[]},i=0;i