diff --git a/UPDATE.md b/UPDATE.md index c9a3392..98cdeaf 100644 --- a/UPDATE.md +++ b/UPDATE.md @@ -1,9 +1,11 @@ -## PicHome beta1.1 更新说明 +## PicHome beta2.0 更新说明 -### 1.导入逻辑优化,修复库导入文件和实际文件严重不符问题,支持合并库和导入库等文件库的导入,以及导入效率优化 +### 1.增加移动端支持 -### 2.修复库设置中“分类(文件夹)”筛选项丢失的问题 +### 2.导入逻辑优化,优化导入效率,修复文件移动分类后分类丢失问题 -### 3.在站点设置=>界面设置内增加“默认打开文件窗口方式”设置,支持文件在当前窗口打开,详情页显示和功能优化 +### 3.优化删除库逻辑,修复删除库导致的导入状态bug -### 4.其他已知bug修复 \ No newline at end of file +### 4.优化访问效率 + +### 5.其他已知bug修复 \ No newline at end of file diff --git a/admin/oaooafiles.md5 b/admin/oaooafiles.md5 index 07c3286..e7b5326 100644 --- a/admin/oaooafiles.md5 +++ b/admin/oaooafiles.md5 @@ -241,11 +241,11 @@ bc2e189cfaacbdb84ddceb3a0abdcf92 *core/class/table/table_user_verify_info.php ca64f852f9c9442d65fa30ed279c6d6c *core/coreBase.php b335e80b81831d8e322f43e404124d1d *core/core_version.php d90d23b8deb20cef2c43e66725ec2813 *core/cron/cron_cache_cleanup_week.php -d6f619ef3f14590fc5abc6ce76954d25 *core/cron/cron_cache_pichome_searchhot.php +540843e90244b66d31a1deb8c882d238 *core/cron/cron_cache_pichome_searchhot.php 09bf107dfc58f0424b0245834d221a42 *core/cron/cron_clean_notification_month.php 56383d04d4bbd0537c55ff7ed42536f8 *core/cron/cron_database_backup.php d0cc3acfbff044dbb11da3ba9019c58d *core/cron/cron_pichome_check_library.php -8e19dc5a19821962504d18efc6e06bdf *core/cron/cron_pichome_updatelibrary_file.php +4caf8be54c02549767e2adb440a47764 *core/cron/cron_pichome_updatelibrary_file.php e437812ec0dbb1050daa691303544d1c *core/dzzstart.php d4c7872572f6965e3173a12153dd758b *core/function/cache/cache_fields_optional.php 98b3024c7107943c8573cf473d624710 *core/function/cache/cache_fields_register.php @@ -1040,9 +1040,9 @@ badeea57fda90d27e54a9f9488ac4c43 *dzz/pdf/web/viewer.html 6cf3b8dd7fae022af726634be28de37d *dzz/pdf/web/viewer.js 9d8f7b8df2cf3dffa23febb3582928d4 *dzz/pdf/web/viewer.js.map 9702eb58e8b17ea4d968e2f0f6a7d14e *dzz/pichome/admin.php -8d4800ca355e9f6a54e78f5349717829 *dzz/pichome/ajax.php -0ca8de11ebaf13e2a461dc37a5182f65 *dzz/pichome/checkexport.php -fc77d297675059d228b072772c97071b *dzz/pichome/class/class_eagleexport.php +7769201a069c9a56a632185be123dea7 *dzz/pichome/ajax.php +723acce1a4da50a5f61eb85632daee3f *dzz/pichome/checkexport.php +9f87ac4edea0ea57b5563bc4a0b7fb61 *dzz/pichome/class/class_eagleexport.php 6293eb9bd5b473c7f178be5d6534341c *dzz/pichome/config/config.php 29640dfed0df1100d9c8e4d819b4c593 *dzz/pichome/css/admin.css 07f01151181178c663d669622ea927f3 *dzz/pichome/css/common.css @@ -1056,16 +1056,21 @@ f09b1c7476e28ad67f1c2f2f314230a0 *dzz/pichome/css/fonts/remixicon.symbol.svg 881fbc46361e0c0e5f003c159b2f3005 *dzz/pichome/css/fonts/remixicon.woff 9915fef980fa539085da55b84dfde760 *dzz/pichome/css/fonts/remixicon.woff2 beba9d9c0e6f710c90145d9e3cbbab2d *dzz/pichome/css/index.css +a90f33a177ffdcb9d8c64b598c7dfb5f *dzz/pichome/css/mobile/common.css +577f7f31ca1ac0fe27b7c7e8f28f838f *dzz/pichome/css/mobile/details.css +871bda5b39c93380460d42db713c2932 *dzz/pichome/css/mobile/index.css +f1e227b4a2e8a0345daaf6141e1856dd *dzz/pichome/css/mobile/personal.css +cc6d3bf279ed780dd69d0dcc250bd442 *dzz/pichome/css/mobile/share.css 29640dfed0df1100d9c8e4d819b4c593 *dzz/pichome/css/pc/admin.css 8106960af48c6ce411b168662f3a4386 *dzz/pichome/css/pc/common.css e3123a0f6930b3d0a84387d3102c704d *dzz/pichome/css/pc/details.css -73f2dc27a3b58222ac1c0cfebb8bd4cb *dzz/pichome/css/pc/index.css +4523e1f7dffb0ae26490b704faec2429 *dzz/pichome/css/pc/index.css 69c8a20f13ee8eb40d35ddd497d35fd3 *dzz/pichome/css/pc/xuanzhuan/iconfont.ttf b006647cb9c39a657d354fcf0bdf88bf *dzz/pichome/css/pc/xuanzhuan/index.css 48994b9f88c49cdb67a88116380cfb95 *dzz/pichome/css/theme/black/index.css 3d037ab39fd205fc01dcb0644dc73594 *dzz/pichome/css/theme/black/root.css 247be4f622b714c5745e69ebb932e197 *dzz/pichome/css/theme/darkgrey/index.css -e19d97f977fa3d2316168bbe8e4101e5 *dzz/pichome/css/theme/darkgrey/root.css +9a6e6b73f09a721abe91bcadd9d1dbcd *dzz/pichome/css/theme/darkgrey/root.css 732389ded34cb9c52dd88271f1345af9 *dzz/pichome/css/theme/fonts/element-icons.ttf 535877f50039c0cb49a6196a5b7517cd *dzz/pichome/css/theme/fonts/element-icons.woff dce825b1ca6c3b1c18adc856618b8602 *dzz/pichome/css/theme/lightgrey/index.css @@ -1076,11 +1081,12 @@ dce825b1ca6c3b1c18adc856618b8602 *dzz/pichome/css/theme/lightgrey/index.css 2566cbfc860d4bc3c12812d9d35011ef *dzz/pichome/css/theme/purple/root.css 4705cbd2d8a842635d69d2ace637212e *dzz/pichome/css/theme/white/index.css b07e0746971bb7c6dfc1d88ed2bdc4b2 *dzz/pichome/css/theme/white/root.css -a735516da3ba332a53a8bfad48610aea *dzz/pichome/details.php +0bc21a1af1a289191cf5a48523f2cf8c *dzz/pichome/details.php 8cbb24ea1bf37279c62c847f69984107 *dzz/pichome/download.php e245c8b1f860c8252eade7f3dec51879 *dzz/pichome/dzz_app_pichome.xml -15b6fca48208432cea1930bb57e0db5a *dzz/pichome/exportfile.php -06880b4a650311dd50933bf9a5aece2a *dzz/pichome/filelist.php +6ebe1a87ddd4f9d980c7e484b5168937 *dzz/pichome/exportfile.php +32e51cefc13d10a0eee49874203dd564 *dzz/pichome/exportfilecheck.php +0266871ad080f42c5ccd3a8e972a3abf *dzz/pichome/filelist.php ae3317853c4561197a9a649000597886 *dzz/pichome/function/function_common.php d211a97399d52fea48f94a45a06648d1 *dzz/pichome/image/eaglefile.webp 152ec265e38eb67acb6cb31026448e3d *dzz/pichome/image/img/t1.jpeg @@ -1088,23 +1094,33 @@ d211a97399d52fea48f94a45a06648d1 *dzz/pichome/image/eaglefile.webp 309c31fa9200e0c9b4ee8fd3f1399dfc *dzz/pichome/image/img/t3.jpeg 5f5562a16dad1fa33294b5c0a920f1d6 *dzz/pichome/image/img/t4.jpeg 08a26df5cbee8f21dbac8d646d1da218 *dzz/pichome/image/nodata.svg +1f0ee3cd38e82bd18490a34fcec8c690 *dzz/pichome/image/notScreen.png f308fd14dbe2e06349ef366d6f9aa2c7 *dzz/pichome/image/palette.png -efdb2935803c55f32f283c48abed9dbd *dzz/pichome/image/phlogo.png +d51db8efca781201f641a41b57420dfe *dzz/pichome/image/phlogo.png fcb60dfc7f223068eac9d35e8028617c *dzz/pichome/index.php +fbc658afc26c123d3ab585fd2eec4f2e *dzz/pichome/initexport.php c9b191574ccc8ab6c8ff631302f10561 *dzz/pichome/install.php 29b8b6254aaaa263cbb0fe8272f05a59 *dzz/pichome/js/audioPlay.js a088950fc4bf4348d87cda978e5ded97 *dzz/pichome/js/common.js b7a95d9f617863cf515a43e7b83978c5 *dzz/pichome/js/headerMethods.js d752d1878252e486cc0244887cfadbae *dzz/pichome/js/headerWatch.js d5843dbdc71ff8014a5eafd346a262da *dzz/pichome/js/jquery.mousewheel.min.js +d37b5113b01a2ef9fb6cf447a5dcff89 *dzz/pichome/js/mobile/pinchzoom.js +57c1fe0c8799e3ad619c0ef6e719bfbc *dzz/pichome/js/mobile/plug/colorPicker/jquery.minicolors.css +043afc4dc77f0ef3f9923c38170c52cf *dzz/pichome/js/mobile/plug/colorPicker/jquery.minicolors.min.js +d36c75e3d8880ebfece375fd7cd46787 *dzz/pichome/js/mobile/plug/colorPicker/jquery.minicolors.png +b5d4479aca9121ce9ed95af5d77c10d9 *dzz/pichome/js/mobile/plug/vant/index.css +3d5fcccab75bba76cc259351e875d42a *dzz/pichome/js/mobile/plug/vant/vant.min.js 29b8b6254aaaa263cbb0fe8272f05a59 *dzz/pichome/js/pc/audioPlay.js -cda62b1eb2f8a116c0016cd3a603e014 *dzz/pichome/js/pc/headerMethods.js -d752d1878252e486cc0244887cfadbae *dzz/pichome/js/pc/headerWatch.js +2ffc868ac18c18d948c3ae5576afa98b *dzz/pichome/js/pc/headerMethods.js +84f0575bc959e85fc1abab5dc71d3079 *dzz/pichome/js/pc/headerWatch.js d5843dbdc71ff8014a5eafd346a262da *dzz/pichome/js/pc/jquery.mousewheel.min.js 72dbef2b0dd2644f4fb4e72ddbb7013b *dzz/pichome/js/pc/plug/DomResize.js 8a788a8d0bfb2d3c1988bddb4aef4b4b *dzz/pichome/js/pc/plug/element-ui.js 66fe9527aec8d8b68e3bc5036ea8f7f9 *dzz/pichome/js/pc/plug/sortable.min.js 7fe276a3e0d5ed3a6f2c84a9440c4add *dzz/pichome/js/pc/plug/wavesurfer.js +ef4591bffb23a90c8d9e0d02a7b5c15f *dzz/pichome/js/pc/row-grid.js +ec0f395ef389b9e369cf0bf354d2dd01 *dzz/pichome/js/pc/waterfall.js 72dbef2b0dd2644f4fb4e72ddbb7013b *dzz/pichome/js/plug/DomResize.js 8a788a8d0bfb2d3c1988bddb4aef4b4b *dzz/pichome/js/plug/element-ui.js dc3ea9ad3b70dda4a5250f14e9f2a36a *dzz/pichome/js/plug/jquery.row-grid.js @@ -1117,32 +1133,47 @@ b21b8531847604ab5f2f5caaef51ba31 *dzz/pichome/js/vue/vue.js 69764bf35375a54256412f3c748b312d *dzz/pichome/js/waterfall.js c24f19d7061cdf5bae41e5e9b9f5600c *dzz/pichome/language/en-US/lang.php 8a3e6ab24d873202b96c3acd9c1b0d2b *dzz/pichome/language/zh-CN/lang.php -2d494f5deef41265f95908bd33a902dd *dzz/pichome/library.php +50c4c9bf7d32e57f7e7816680f972453 *dzz/pichome/library.php ccef8b340c90fc0061c6dd645fecc8df *dzz/pichome/setting.php -cecf65f580b3a209dcf80cd8560ec6bb *dzz/pichome/share.php +f1753ea283af7618463e0d03b8735e6f *dzz/pichome/share.php +25cb394f79991dcd599e3a48434d8a08 *dzz/pichome/template/mobile/components/index/JsCommon.htm +3c0bae451668c060ae526d3253e9be73 *dzz/pichome/template/mobile/components/index/JsDetailMessage.htm +acea860028318bbeab9263e0028c0876 *dzz/pichome/template/mobile/components/index/JsImages.htm +ab5bf119eb21b0b847dcf178a8dff9d9 *dzz/pichome/template/mobile/components/index/JsIndex.htm +18939ca3c3ccb67156c1d2f3d059a3fa *dzz/pichome/template/mobile/components/index/JsMy.htm +63e7150d7f8268df832d643c34964c82 *dzz/pichome/template/mobile/components/index/JsScreen.htm +76399fc5b4e7a84ee75ed49e34e483c9 *dzz/pichome/template/mobile/components/index/JsSearch.htm +b8d6091bba53d62ce9a4f1465da5412d *dzz/pichome/template/mobile/components/index/JsSort.htm +8f54b82e6d2f9cb4d7ba43d09a39f088 *dzz/pichome/template/mobile/frame/footer_simple.htm +ae502b90b2b31175892efe56867bc2e7 *dzz/pichome/template/mobile/frame/header_simple_end.htm +fdc74d5e180321fc338ae91a1a90e22e *dzz/pichome/template/mobile/frame/header_simple_start.htm +f5cceb704def0ea998936386fe5f5abf *dzz/pichome/template/mobile/page/details.htm +f9f65e35608efe6563e49abbc66c1249 *dzz/pichome/template/mobile/page/index.htm +be7755b8e73e2ffa49557e8c3891027a *dzz/pichome/template/mobile/page/personal.htm +e26ea0557cda6d3b4d550e72ced64611 *dzz/pichome/template/mobile/page/share.htm 1b2b3b2922d7e02373b1b9862c7a5ef7 *dzz/pichome/template/pc/components/headerAdmin/index.htm -75ece58d5e173d62a72275aefc2ea7ec *dzz/pichome/template/pc/components/headerindex/index.htm -5518c2bc4f44f3636e63d6a3ebe6e508 *dzz/pichome/template/pc/components/headerindex/screen.htm +e078614bb6d558d96006ec127f7c392c *dzz/pichome/template/pc/components/headerindex/index.htm +0436c3ba601aa0804b0e51926f557988 *dzz/pichome/template/pc/components/headerindex/screen.htm 105d244408ea6a9780677c28b376ea6c *dzz/pichome/template/pc/components/headerindex/searchScreen.htm -fc0a8c88bf39abe81695ab58de8d6a9f *dzz/pichome/template/pc/components/index/images.htm -0b479ca8b7c107cd66492c3b5e9a7bce *dzz/pichome/template/pc/components/index/indexVuex.htm +e75f2d5563b6d12d345ee4414e2840f9 *dzz/pichome/template/pc/components/index/images.htm +0764f300b91acf6e60925fa91c528941 *dzz/pichome/template/pc/components/index/indexVuex.htm c2953f2cc75684f3a777148ad8c5fce9 *dzz/pichome/template/pc/components/index/screen.htm 8f54b82e6d2f9cb4d7ba43d09a39f088 *dzz/pichome/template/pc/frame/footer_simple.htm ae502b90b2b31175892efe56867bc2e7 *dzz/pichome/template/pc/frame/header_simple_end.htm 08154101159fde8eb21fe522cc937e4c *dzz/pichome/template/pc/frame/header_simple_start.htm -6b71a79c84f6349ee7756391c94dd889 *dzz/pichome/template/pc/page/adminBasic.htm +32def5e1c372b587b41991cc72da998d *dzz/pichome/template/pc/page/adminBasic.htm cc96dd261e08e02dc52f76cd93f2b606 *dzz/pichome/template/pc/page/adminFileterset.htm 109683e420385c288d86639466b6a1d8 *dzz/pichome/template/pc/page/adminLoginpage.htm e066dec8e0303fabf007c8a74eb4625e *dzz/pichome/template/pc/page/adminPagesetting.htm 0920466b526ad2b5b6e20c8b2acead53 *dzz/pichome/template/pc/page/adminPersonal.htm ad552124940206341e350aceaedc0e16 *dzz/pichome/template/pc/page/details.htm -ed7a4b32a51a8fb8dd3f5760d76d493a *dzz/pichome/template/pc/page/index.htm -4cc95ff5505efa436d8cce73dd456cfe *dzz/pichome/template/pc/page/library.htm +8e351bacc90f2855e890cc3cb0ef9fc2 *dzz/pichome/template/pc/page/index.htm +1e718307be2a24429f9d37f225fb8988 *dzz/pichome/template/pc/page/library.htm 953101b30d9f9f7e303a7891ade351f3 *dzz/pichome/template/pc/page/share.htm 3cd79761b99168c3f9faf607183df134 *dzz/pichome/uninstall.php b5221437a0c978e0caf63f2278759934 *dzz/pichome/uninstall_real.php efbd03954c4e8df90891d9d6f338619f *dzz/pichome/upload.php -91a4166d72ff4c926e1f5a73c804466c *dzz/pichome/user.php +e79dc819cafad7450fda2748ee3989dd *dzz/pichome/user.php 3d037ab39fd205fc01dcb0644dc73594 *dzz/textviewer/css/theme/black/root.css e19d97f977fa3d2316168bbe8e4101e5 *dzz/textviewer/css/theme/darkgrey/root.css 732389ded34cb9c52dd88271f1345af9 *dzz/textviewer/css/theme/fonts/element-icons.ttf @@ -1182,7 +1213,7 @@ fc25acefcabc066437d4b27550387954 *install/images/logo.png a987af86766c27c565794ffa189cf664 *install/include/install_mysql.php 249b244097610688130b93721d1c2bd1 *install/include/install_mysqli.php d7d7fef7dc366413340be8ad3da41709 *install/include/install_var.php -5c2f5c9042a9e66bc8f5af0b638cf1de *install/index.php +dd4116d4f1d942f52548e4a27c65a19f *install/index.php 8eca1f167c0b805d9fda97804379a962 *install/language/zh-cn/lang.php 9df77036c7ebea501feaa23661852767 *install/update.php 5aefe69b1ba16fe8a6f79c2156f8f281 *misc/ajax.php diff --git a/core/core_version.php b/core/core_version.php index 7d5ec07..5132a31 100644 --- a/core/core_version.php +++ b/core/core_version.php @@ -11,8 +11,8 @@ if(!defined('IN_OAOOA')) { } if(!defined('CORE_VERSION')) { - define('CORE_VERSION', 'beta1.1'); + define('CORE_VERSION', 'beta2.0'); define('CORE_VERSION_LEVEL', 'Pichome'); - define('CORE_RELEASE', '20210923'); - define('CORE_FIXBUG' , '01100000'); + define('CORE_RELEASE', '20211110'); + define('CORE_FIXBUG' , '20000000'); } \ No newline at end of file diff --git a/core/cron/cron_cache_pichome_searchhot.php b/core/cron/cron_cache_pichome_searchhot.php index 3e94527..0239b9a 100644 --- a/core/cron/cron_cache_pichome_searchhot.php +++ b/core/cron/cron_cache_pichome_searchhot.php @@ -2,7 +2,7 @@ if(!defined('IN_OAOOA')) { exit('Access Denied'); } - gnore_user_abort(true); + ignore_user_abort(true); @set_time_limit(0); $percachename = 'pichome_searchhot'; $alldata = C::t('pichome_searchrecent')->fetch_hotkeyword_by_appid(); diff --git a/core/cron/cron_pichome_updatelibrary_file.php b/core/cron/cron_pichome_updatelibrary_file.php index 75cb59e..3f2f1d6 100644 --- a/core/cron/cron_pichome_updatelibrary_file.php +++ b/core/cron/cron_pichome_updatelibrary_file.php @@ -2,7 +2,7 @@ if(!defined('IN_OAOOA')) { exit('Access Denied'); } - ignore_user_abort(true); + //ignore_user_abort(true); @set_time_limit(0); $appdata = DB::fetch_all("select * from %t where 1 ",array('pichome_vapp')); foreach($appdata as $v){ @@ -11,7 +11,12 @@ //删除库 C::t('#pichome#pichome_vapp')->delete_vapp_by_appid($v['appid']); }else{ - dfsockopen(getglobal('localurl'). 'index.php?mod=pichome&op=exportfile&appid='.$v['appid'],0, '', '', false, '', 1); + if($v['state'] == 1){ + dfsockopen(getglobal('localurl'). 'index.php?mod=pichome&op=exportfile&appid='.$v['appid'],0, '', '', false, '', 1); + }elseif($v['state'] == 2){ + dfsockopen(getglobal('localurl'). 'index.php?mod=pichome&op=exportfilecheck&appid='.$v['appid'],0, '', '', false, '', 1); + } + } } \ No newline at end of file diff --git a/dzz/pichome/ajax.php b/dzz/pichome/ajax.php index bcb52b8..ca1d81f 100644 --- a/dzz/pichome/ajax.php +++ b/dzz/pichome/ajax.php @@ -1,943 +1,1386 @@ add_search($keyword, $appid, $ktype); +} elseif ($operation == 'getsearchtag') {//最近搜索标签和热门标签 + $appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; + //$recenttag = C::t('pichome_searchrecent')->fetch_renctent_search_tag($appid); + $percachename = 'pichome_searchhot'; + //$recenttag = C::t('pichome_searchrecent')->fetch_renctent_search_tag($appid); + $hotdatas = false; + $hotdatas = C::t('cache')->fetch($percachename . $appid); + if (!$hotdatas) { + $tmpkey = $percachename . $appid; + $hotdatas = C::t('pichome_searchrecent')->fetch_hotkeyword_by_appid($appid); + $setarr = ['cachekey' => $tmpkey, 'cachevalue' => serialize($hotdatas), 'dateline' => time()]; + C::t('cache')->insert($setarr); + } else { + + $hotdatas = unserialize($hotdatas['cachevalue']); } - - $operation = isset($_GET['operation']) ? trim($_GET['operation']) : ''; - global $_G; - if ($operation == 'addsearch') {//增加关键词搜索次数 - $keyword = isset($_GET['keyword']) ? trim($_GET['keyword']) : ''; - $appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; - $ktype = isset($_GET['ktype']) ? intval($_GET['ktype']) : 0; - if (!$keyword) exit(); - C::t('pichome_searchrecent')->add_search($keyword, $appid, $ktype); - } elseif ($operation == 'getsearchtag') {//最近搜索标签和热门标签 - $appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; - //$recenttag = C::t('pichome_searchrecent')->fetch_renctent_search_tag($appid); - $percachename = 'pichome_searchhot'; - //$recenttag = C::t('pichome_searchrecent')->fetch_renctent_search_tag($appid); - $hotdatas = false; - $hotdatas = C::t('cache')->fetch($percachename.$appid); - if(!$hotdatas){ - $tmpkey = $percachename.$appid; - $hotdatas = C::t('pichome_searchrecent')->fetch_hotkeyword_by_appid($appid); - $setarr = ['cachekey'=>$tmpkey,'cachevalue'=>serialize($hotdatas),'dateline'=>time()]; - C::t('cache')->insert($setarr); - }else{ - - $hotdatas = unserialize($hotdatas['cachevalue']); - } - //$hottags = C::t('pichome_tag')->fetch_data_by_hot(); - exit(json_encode(array('hottags' => $hotdatas))); - } elseif ($operation == 'getsearchfolder') {//最近搜索目录和目录信息 - $appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; - $hotsearchnum = C::t('pichome_searchrecent')->fetch_renctent_search_foldername($appid); - $folderdatanum = C::t('pichome_folder')->fetch_all_folder_by_appid($appid); - exit(json_encode(array('hotsearchnum' => $hotsearchnum, 'folderdatanum' => $folderdatanum))); - } elseif ($operation == 'searchmenu_num') { + //$hottags = C::t('pichome_tag')->fetch_data_by_hot(); + exit(json_encode(array('hottags' => $hotdatas))); +} elseif ($operation == 'getsearchfolder') {//最近搜索目录和目录信息 + $appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; + $hotsearchnum = C::t('pichome_searchrecent')->fetch_renctent_search_foldername($appid); + $folderdatanum = C::t('pichome_folder')->fetch_all_folder_by_appid($appid); + exit(json_encode(array('hotsearchnum' => $hotsearchnum, 'folderdatanum' => $folderdatanum))); +} elseif ($operation == 'searchmenu_num') { + + $page = isset($_GET['page']) ? intval($_GET['page']) : 1; + $prepage = 20; + $pagelimit = 'limit '.($page - 1) * $prepage . ',' . $prepage; + $cid = isset($_GET['cid']) ? trim($_GET['cid']) : ''; + $tagkeyword = isset($_GET['tagkeyword']) ? htmlspecialchars($_GET['tagkeyword']) : ''; + $skey = isset($_GET['skey']) ? trim($_GET['skey']) : ''; + $wheresql = " 1 "; + if ($skey == 'tag') { + $sql = " select distinct rt.tid from %t rt left join %t r on rt.rid=r.rid "; + $params = [ 'pichome_resourcestag','pichome_resources']; + //$wheresql = " r.isdelete < 1 "; + }else{ $sql = " %t r "; - $skey = isset($_GET['skey']) ? trim($_GET['skey']) : ''; - $wheresql = " r.isdelete < 1 "; $params = ['pichome_resources']; - $appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; - $fids = isset($_GET['fids']) ? trim($_GET['fids']) : ''; - if ($appid) { - $wheresql .= ' and r.appid = %s '; - $para[] = $appid; + } + + $appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; + $fids = isset($_GET['fids']) ? trim($_GET['fids']) : ''; + if ($appid) { + $wheresql .= ' and r.appid = %s '; + $para[] = $appid; + } + if ($fids) { + $sql .= " LEFT JOIN %t fr on fr.rid = r.rid "; + $wheresql .= ' and fr.fid in(%n)'; + $fidarr = explode(',', $fids); + $para[] = $fidarr; + $params[] = 'pichome_folderresources'; + } + //关键词条件 + $keyword = isset($_GET['keyword']) ? htmlspecialchars($_GET['keyword']) : ''; + if ($keyword) { + $sql .= " LEFT JOIN %t c on c.rid = r.rid left join %t rt on r.rid = rt.rid left join %t t on rt.tid= t.tid "; + $params[] = 'pichome_comments'; + $params[] = 'pichome_resourcestag'; + $params[] = 'pichome_tag'; + if (!in_array('pichome_resources_attr', $params)) { + $sql .= "left join %t ra on r.rid = ra.rid"; + $params[] = 'pichome_resources_attr'; } - if ($fids) { - $sql .= " LEFT JOIN %t fr on fr.rid = r.rid "; - $wheresql .= ' and fr.fid in(%n)'; - $fidarr = explode(',', $fids); - $para[] = $fidarr; - $params[] = 'pichome_folderresources'; + $keywords = array(); + $arr1 = explode('+', $keyword); + foreach ($arr1 as $value1) { + $value1 = trim($value1); + $arr2 = explode(' ', $value1); + $arr3 = array(); + foreach ($arr2 as $value2) { + $arr3[] = " r.name LIKE %s "; + $para[] = '%' . $value2 . '%'; + $arr3[] = " ra.link LIKE %s "; + $para[] = '%' . $value2 . '%'; + $arr3[] = " ra.desc LIKE %s "; + $para[] = '%' . $value2 . '%'; + $arr3[] = " c.annotation LIKE %s "; + $para[] = '%' . $value2 . '%'; + $arr3[] = " t.tagname LIKE %s "; + $para[] = '%' . $value2 . '%'; + } + $keywords[] = "(" . implode(" OR ", $arr3) . ")"; } - //关键词条件 - $keyword = isset($_GET['keyword']) ? htmlspecialchars($_GET['keyword']) : ''; - if ($keyword) { - $sql .= " LEFT JOIN %t c on c.rid = r.rid left join %t rt on r.rid = rt.rid left join %t t on rt.tid= t.tid "; - $params[] = 'pichome_comments'; - $params[] = 'pichome_resourcestag'; - $params[] = 'pichome_tag'; - if (!in_array('pichome_resources_attr', $params)) { - $sql .= "left join %t ra on r.rid = ra.rid"; - $params[] = 'pichome_resources_attr'; - } - $keywords = array(); - $arr1 = explode('+', $keyword); - foreach ($arr1 as $value1) { - $value1 = trim($value1); - $arr2 = explode(' ', $value1); - $arr3 = array(); - foreach ($arr2 as $value2) { - $arr3[] = " r.name LIKE %s "; - $para[] = '%' . $value2 . '%'; - $arr3[] = " ra.link LIKE %s "; - $para[] = '%' . $value2 . '%'; - $arr3[] = " ra.desc LIKE %s "; - $para[] = '%' . $value2 . '%'; - $arr3[] = " c.annotation LIKE %s "; - $para[] = '%' . $value2 . '%'; - $arr3[] = " t.tagname LIKE %s "; - $para[] = '%' . $value2 . '%'; - } - $keywords[] = "(" . implode(" OR ", $arr3) . ")"; - } - if ($keywords) { - $wheresql .= " and (" . implode(" AND ", $keywords) . ")"; - } + if ($keywords) { + $wheresql .= " and (" . implode(" AND ", $keywords) . ")"; } - //颜色条件 - if (isset($_GET['color'])) { - $persion = isset($_GET['persion']) ? intval($_GET['persion']) : 0; - $maxColDist = 764.8339663572415; - $similarity = 80 + (20 / 100) * $persion; - $color = trim($_GET['color']); - $rgbcolor = hex2rgb($color); - $sql .= " left join %t p on r.rid = p.rid "; - $params[] = 'pichome_palette'; - $wheresql .= "and round((%d-sqrt((((2+(p.r+%d)/2)/256)*(pow((%d-p.r),2))+(4*pow((%d-p.g),2)) + (((2+(255-(p.r+%d)/2))/256))*(pow((%d-p.b), 2)))))/%d,4)*100 >= %d"; - if (!empty($para)) $para = array_merge($para, array($maxColDist, $rgbcolor['r'], $rgbcolor['r'], $rgbcolor['g'], $rgbcolor['r'], $rgbcolor['b'], $maxColDist, $similarity)); - else $para = array($maxColDist, $rgbcolor['r'], $rgbcolor['r'], $rgbcolor['g'], $rgbcolor['r'], $rgbcolor['b'], $maxColDist, $similarity); + } + //颜色条件 + if (isset($_GET['color'])) { + $persion = isset($_GET['persion']) ? intval($_GET['persion']) : 0; + $maxColDist = 764.8339663572415; + $similarity = 80 + (20 / 100) * $persion; + $color = trim($_GET['color']); + $rgbcolor = hex2rgb($color); + $sql .= " left join %t p on r.rid = p.rid "; + $params[] = 'pichome_palette'; + $wheresql .= "and round((%d-sqrt((((2+(p.r+%d)/2)/256)*(pow((%d-p.r),2))+(4*pow((%d-p.g),2)) + (((2+(255-(p.r+%d)/2))/256))*(pow((%d-p.b), 2)))))/%d,4)*100 >= %d"; + if (!empty($para)) $para = array_merge($para, array($maxColDist, $rgbcolor['r'], $rgbcolor['r'], $rgbcolor['g'], $rgbcolor['r'], $rgbcolor['b'], $maxColDist, $similarity)); + else $para = array($maxColDist, $rgbcolor['r'], $rgbcolor['r'], $rgbcolor['g'], $rgbcolor['r'], $rgbcolor['b'], $maxColDist, $similarity); + } + //标签条件 + if (isset($_GET['tag'])) { + $tagwherearr = []; + $tagrelative = isset($_GET['tagrelative']) ? intval($_GET['tagrelative']) : 1; + if (!in_array('pichome_resources_attr', $params)) { + $sql .= "left join %t ra on r.rid = ra.rid"; + $params[] = 'pichome_resources_attr'; } - //标签条件 - if (isset($_GET['tag'])) { - $tagwherearr = []; - $tagrelative = isset($_GET['tagrelative']) ? intval($_GET['tagrelative']) : 1; - if (!in_array('pichome_resources_attr', $params)) { - $sql .= "left join %t ra on r.rid = ra.rid"; - $params[] = 'pichome_resources_attr'; - } - $tag = trim($_GET['tag']); - if ($tag == -1) { - $wheresql .= " and ra.tag = '' "; - } else { - $tagval = explode(',', trim($_GET['tag'])); - foreach ($tagval as $v) { - $tagwherearr[] = " find_in_set(%d,ra.tag)"; - $para[] = $v; - } - if ($tagrelative) { - $wheresql .= " and (" . implode(" or ", $tagwherearr) . ")"; - } else { - $wheresql .= " and (" . implode(" and ", $tagwherearr) . ")"; - } - } - - } - - //时长条件 - if (isset($_GET['duration'])) { - if (!in_array('pichome_resources_attr', $params)) { - $sql .= "left join %t ra on r.rid = ra.rid"; - $params[] = 'pichome_resources_attr'; - } - $durationarr = explode('_', $_GET['duration']); - $dunit = isset($_GET['dunit']) ? trim($_GET['dunit']) : 's'; - if ($durationarr[0]) { - $wheresql .= " and ra.duration >= %d"; - $para[] = ($dunit == 'm') ? $durationarr[0] * 60 : $durationarr[0]; - } - - if ($durationarr[1]) { - $wheresql .= " and ra.duration <= %d"; - $para[] = ($dunit == 'm') ? $durationarr[1] * 60 : $durationarr[1]; - } - } - //标注条件 - if (isset($_GET['comments'])) { - $sql .= " left join %t c on r.rid = c.rid"; - $params[] = 'pichome_comments'; - $comments = intval($_GET['comments']); - $cval = isset($_GET['cval']) ? trim($_GET['cval']) : ''; - if (!$comments) { - $wheresql .= " and isnull(c.annotation) "; - } else { - if ($cval) { - $cvalarr = explode(',', $cval); - $cvalwhere = []; - foreach ($cvalarr as $cv) { - $cvalwhere[] = " c.annotation like %s"; - $para[] = '%' . $cv . '%'; - } - $wheresql .= " and (" . implode(" or ", $cvalwhere) . ")"; - } else { - $wheresql .= " and !isnull(c.annotation)"; - } - } - } - //注释条件 - if (isset($_GET['desc'])) { - if (!in_array('pichome_resources_attr', $params)) { - $sql .= "left join %t ra on r.rid = ra.rid"; - $params[] = 'pichome_resources_attr'; - } - $desc = intval($_GET['desc']); - $descval = isset($_GET['descval']) ? trim($_GET['descval']) : ''; - if (!$desc) { - $wheresql .= " and (isnull(ra.desc) or ra.desc='') "; - } else { - if ($descval) { - $descvalarr = explode(',', $descval); - $descvalwhere = []; - foreach ($descvalarr as $dv) { - $descvalwhere[] = " ra.desc like %s"; - $para[] = '%' . $dv . '%'; - } - $wheresql .= " and (" . implode(" or ", $descvalwhere) . ")"; - } else { - $wheresql .= " and ra.desc !=''"; - } - } - } - //链接条件 - if (isset($_GET['link'])) { - if (!in_array('pichome_resources_attr', $params)) { - $sql .= "left join %t ra on r.rid = ra.rid"; - $params[] = 'pichome_resources_attr'; - } - $link = intval($_GET['link']); - $linkval = isset($_GET['linkval']) ? trim($_GET['linkval']) : ''; - if (!$link) { - $wheresql .= " and (isnull(ra.link) or ra.link='') "; - } else { - if ($linkval) { - $linkvalarr = explode(',', $linkval); - $linkvalwhere = []; - foreach ($linkvalarr as $lv) { - $linkvalwhere[] = " ra.link like %s"; - $para[] = '%' . $lv . '%'; - } - $wheresql .= " and (" . implode(" or ", $linkvalwhere) . ")"; - } else { - $wheresql .= " and ra.link !='' "; - } - } - } - - - //形状条件 - if (isset($_GET['shape'])) { - $shape = trim($_GET['shape']); - $shapes = explode(',', $shape); - //指定宽高比 - // $swidth = 0; - // $sheight = 0; - // if(isset($_GET['shapesize'])){ - // $shapesize = trim($_GET['shapesize']); - // $shapesizes = explode(':',$shapesize); - // $swidth = intval($shapesizes[0]); - // $sheight = intval($shapesizes[1]); - // } - $shapewherearr = []; - foreach ($shapes as $v) { - switch ($v) { - case 7://方图 - $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; - $para[] = 100; - break; - case 8://横图 - $shapewherearr[] = ' round((r.width / r.height) * 100) > %d and round((r.width / r.height) * 100) < 250'; - $para[] = 100; - break; - case 5://细长横图 - $shapewherearr[] = ' round((r.width / r.height) * 100) >= %d'; - $para[] = 250; - break; - case 6://细长竖图 - $shapewherearr[] = ' round((r.width / r.height) * 100) <= %d'; - $para[] = 40; - break; - case 9://竖图 - $shapewherearr[] = ' round((r.width / r.height) * 100) < %d and round((r.width / r.height) * 100) > %d'; - $para[] = 100; - $para[] = 40; - break; - case 1://4:3 - $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; - $para[] = (4 / 3) * 100; - break; - case 2://3:4 - $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; - $para[] = (3 / 4) * 100; - break; - case 3://16:9 - $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; - $para[] = (16 / 9) * 100; - break; - case 4://9:16 - $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; - $para[] = (9 / 16) * 100; - break; - /*case 10: - $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; - $para[] = ($swidth / $sheight) * 100; - break;*/ - } - } - if (isset($_GET['shapesize'])) { - $shapesize = trim($_GET['shapesize']); - $shapesizes = explode(':', $shapesize); - $swidth = intval($shapesizes[0]); - $sheight = intval($shapesizes[1]); - $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; - $para[] = ($swidth / $sheight) * 100; - } - if ($shapewherearr) { - $wheresql .= " and (" . implode(" or ", $shapewherearr) . ")"; - } - } - //评分条件 - if (isset($_GET['grade'])) { - $grade = trim($_GET['grade']); - $grades = explode(',', $grade); - $wheresql .= " and r.grade in(%n)"; - $para[] = $grades; - } - //类型条件 - if (isset($_GET['ext'])) { - $ext = trim($_GET['ext']); - $exts = explode(',', $ext); - $wheresql .= " and r.ext in(%n)"; - $para[] = $exts; - } - //添加日期 - if (isset($_GET['btime'])) { - $btime = explode('_', $_GET['btime']); - $bstart = strtotime($btime[0]); - $bend = strtotime($btime[1]) + 24 * 60 * 60; - if ($bstart) { - $wheresql .= " and r.btime > %d"; - //将时间补足13位 - $para[] = $bstart * 1000; - } - if ($bend) { - $wheresql .= " and r.btime < %d"; - //将时间补足13位 - $para[] = $bend * 1000; - } - } - //修改日期 - if (isset($_GET['dateline'])) { - $dateline = explode('_', $_GET['dateline']); - $dstart = strtotime($dateline[0]); - $dend = strtotime($dateline[1]) + 24 * 60 * 60; - if ($dstart) { - $wheresql .= " and r.dateline > %d"; - //将时间补足13位 - $para[] = $dstart * 1000; - } - - if ($dend) { - $wheresql .= " and r.dateline < %d"; - //将时间补足13位 - $para[] = $dend * 1000; - } - } - //创建日期 - if (isset($_GET['mtime'])) { - $mtime = explode('_', $_GET['mtime']); - $mstart = strtotime($mtime[0]); - $mend = strtotime($mtime[1]) + 24 * 60 * 60; - if ($mstart) { - $wheresql .= " and r.mtime > %d"; - //将时间补足13位 - $para[] = $mstart * 1000; - } - - if ($mend) { - $wheresql .= " and r.mtime < %d"; - //将时间补足13位 - $para[] = $mend * 1000; - } - } - //尺寸条件 - if (isset($_GET['wsize']) || isset($_GET['hsize'])) { - $wsizearr = explode('_', $_GET['wsize']); - $hsizearr = explode('_', $_GET['hsize']); - if ($wsizearr[0]) { - $wheresql .= " and r.width >= %d"; - $para[] = intval($wsizearr[0]); - } - if ($wsizearr[1]) { - $wheresql .= " and r.width <= %d"; - $para[] = intval($wsizearr[1]); - } - if ($hsizearr[0]) { - $wheresql .= " and r.height >= %d"; - $para[] = intval($hsizearr[0]); - } - if ($hsizearr[1]) { - $wheresql .= " and r.height <= %d"; - $para[] = intval($hsizearr[1]); - } - } - - //大小条件 - if (isset($_GET['size'])) { - $size = explode('_', $_GET['size']); - $unit = isset($_GET['unit']) ? intval($_GET['unit']) : 1; - switch ($unit) { - case 0://b - $size[0] = $size[0]; - $size[1] = $size[1]; - break; - case 1://kb - $size[0] = $size[0] * 1024; - $size[1] = $size[1] * 1024; - break; - case 2://mb - $size[0] = $size[0] * 1024 * 1024; - $size[1] = $size[1] * 1024 * 1024; - break; - case 3://gb - $size[0] = $size[0] * 1024 * 1024 * 1024; - $size[1] = $size[1] * 1024 * 1024 * 1024; - break; - } - if ($size[0]) { - $wheresql .= " and r.szie > %d"; - $para[] = $size[0]; - } - if ($size[1]) { - $wheresql .= " and r.size < %d"; - $para[] = $size[1]; - } - } - $timedataarr = array( - 1 => array( - 'start' => strtotime(date("Y-m-d", time())) * 1000, - 'end' => (strtotime(date("Y-m-d", time())) + 24 * 60 * 60) * 1000, - 'val' => 1, - 'label' => '今日' - ), - -1 => array( - 'start' => strtotime(date("Y-m-d", strtotime("-1 day"))) * 1000, - 'end' => (strtotime(date("Y-m-d", time())) + 24 * 60 * 60) * 1000, - 'val' => -1, - 'label' => '昨日' - ), - -7 => array( - 'start' => strtotime(date("Y-m-d", strtotime("-7 day"))) * 1000, - 'end' => (strtotime(date("Y-m-d", time())) + 24 * 60 * 60) * 1000, - 'val' => -7, - 'label' => '最近7日' - ), - -30 => array( - 'start' => strtotime(date("Y-m-d", strtotime("-30 day"))) * 1000, - 'end' => (strtotime(date("Y-m-d", time())) + 24 * 60 * 60) * 1000, - 'val' => -30, - 'label' => '最近30日' - ), - -90 => array( - 'start' => strtotime(date("Y-m-d", strtotime("-90 day"))) * 1000, - 'end' => (strtotime(date("Y-m-d", time())) + 24 * 60 * 60) * 1000, - 'val' => -90, - 'label' => '最近90日' - ), - -365 => array( - 'start' => strtotime(date("Y-m-d", strtotime("-365 day"))) * 1000, - 'end' => (strtotime(date("Y-m-d", time())) + 24 * 60 * 60) * 1000, - 'val' => -365, - 'label' => '最近365日' - ), - ); - $shapedataarr = array( - 1 => array( - 'start' => 'round((4 / 3) * 100)', - 'end' => '', - 'val' => 1, - 'lablename' => '4:3' - ), - 2 => array( - 'start' => 'round((3 / 4) * 100)', - 'end' => '', - 'val' => 2, - 'lablename' => '3:4' - ), - 3 => array( - 'start' => 'round((16 / 9) * 100)', - 'end' => '', - 'val' => 3, - 'lablename' => '16:9' - ), - 4 => array( - 'start' => 'round((9 / 16) * 100)', - 'end' => '', - 'val' => 4, - 'lablename' => '9:16' - ), - 5 => array( - 'start' => 250, - 'end' => 0, - 'val' => 5, - 'lablename' => '细长横图' - ), - 6 => array( - 'start' => 0, - 'end' => 40, - 'val' => 6, - 'lablename' => '细长竖图' - ), - 7 => array( - 'start' => 100, - 'end' => '', - 'val' => 7, - 'lablename' => '方图' - ), - 8 => array( - 'start' => 100, - 'end' => 250, - 'val' => 8, - 'lablename' => '横图' - ), - 9 => array( - 'start' => 40, - 'end' => 100, - 'val' => 9, - 'lablename' => '竖图' - ) - - ); - //标签统计 - if ($skey == 'tag') { - $sql .= ' left join %t rt on rt.rid=r.rid'; - $params[] = 'pichome_resourcestag'; - if (!empty($para)) $params = array_merge($params, $para); - //每个标签对应文件个数 - $tdata = []; - //所有符合条件标签id - $tids = []; - foreach (DB::fetch_all("select rt.tid,r.rid from $sql where $wheresql", $params) as $v) { - if (!isset($tdata[$v['tid']])) $tdata[$v['tid']]['num'] = 1; - else $tdata[$v['tid']]['num'] += 1; - if ($v['tid']) $tids[] = $v['tid']; - } - //统计所有标签,去掉重复标签 - $tids = array_unique($tids); - //标签id对应标签名称数组 - $tagdata = []; - foreach (DB::fetch_all("select tagname,tid from %t where tid in(%n)", array('pichome_tag', $tids)) as $v) { - $tagdata[$v['tid']] = $v['tagname']; - } - //最后返回数组 - $data = []; - //含分类标签数据数组 - $catdata = []; - //如果有appid则获取标签分类数据 - if ($appid) { - //有分类的标签id - $hascattids = []; - foreach (DB::fetch_all("select tr.cid,tr.tid,g.catname from %t tr - left join %t g on g.cid=tr.cid where tid in(%n)", array('pichome_tagrelation', 'pichome_taggroup', $tids)) as $v) { - $hascattids[] = $v['tid']; - if (!isset($catdata[$v['cid']])) { - $catdata[$v['cid']]['catname'] = $v['catname']; - $catdata[$v['cid']]['tdatas'][$v['tid']] = ['tagname' => $tagdata[$v['tid']], 'num' => $tdata[$v['tid']]['num'], 'tid' => intval($v['tid'])]; - $catdata[$v['cid']]['num'] = $tdata[$v['tid']]['num']; - } else { - $catdata[$v['cid']]['tdatas'][$v['tid']] = ['tagname' => $tagdata[$v['tid']], 'num' => $tdata[$v['tid']]['num'], 'tid' => intval($v['tid'])]; - $catdata[$v['cid']]['num'] += $tdata[$v['tid']]['num']; - } - } - //没有分类的标签id - $nocattids = array_diff($tids, $hascattids); - //未分类数据 - if (!empty($nocattids)) { - $catdata['nottag']['catname'] = '未分类'; - foreach ($nocattids as $v) { - $catdata['nottag']['tdatas'][$v] = ['tagname' => $tagdata[$v], 'num' => $tdata[$v]['num'], 'tid' => intval($v)]; - $catdata['nottag']['num'] += $tdata[$v]['num']; - } - } - } - //分类标签数据 - $data['catdata'] = $catdata; - //标签不含分类数据 - $alltagdata = []; - foreach ($tdata as $tid => $num) { - if (isset($tagdata[$tid])) $alltagdata[$tid] = array('tid' => intval($tid), 'tagname' => $tagdata[$tid], 'num' => $num['num']); - else $alltagdata[-1] = array('tid' => -1, 'tagname' => '未打标签', 'num' => $num['num']); - } - $data['alltagdata'] = $alltagdata; - } elseif ($skey == 'shape') { - //形状统计 - $presql = ' case '; - $prepara = []; - foreach ($shapedataarr as $sv) { - if ($sv['start'] && $sv['end'] === '') { - $presql .= ' when round((r.width/r.height) * 100) = %i then %d '; - $prepara[] = $sv['start']; - } else { - $presql .= ' when round((r.width/r.height) * 100) > %d ' . (($sv['end']) ? ' and round((r.width/r.height)*100) <= %d then %d' : ' then %d'); - $prepara[] = $sv['start']; - } - - if ($sv['end']) $prepara[] = $sv['end']; - $prepara[] = $sv['val']; - } - if ($presql) { - $presql .= ' end as %s'; - $prepara[] = 'shapedata'; - } - - if (!empty($para)) $params = array_merge($params, $para); - if (!empty($prepara)) $shapeparams = array_merge($prepara, $params); - //echo "select $presql FROM $sql where $wheresql"; - // print_r($shapeparams); - //print_r(DB::fetch_all("select r.rid,$presql FROM $sql where $wheresql", $shapeparams)); - // die; - foreach (DB::fetch_all("select $presql FROM $sql where $wheresql", $shapeparams) as $value) { - if (!isset($data[$value['shapedata']]) && $shapedataarr[$value['shapedata']]['val']) { - $data[$value['shapedata']]['num'] = 1; - $data[$value['shapedata']]['lablename'] = $shapedataarr[$value['shapedata']]['lablename']; - $data[$value['shapedata']]['val'] = $shapedataarr[$value['shapedata']]['val']; - } elseif($data[$value['shapedata']]['num']){ - $data[$value['shapedata']]['num']++; - } - } - //将3:4 9:16 细长竖图归类到竖图 - $data[9]['num'] = ($data[9]['num'] ? $data[9]['num']:0) + ($data[2]['num'] ? $data[2]['num'] : 0) + ($data[4]['num'] ? $data[4]['num'] : 0) + ($data[6]['num'] ? $data[6]['num'] : 0); - - if($data[9]['num']) { - $data[9]['lablename'] = $shapedataarr[9]['lablename']; - $data[9]['val'] = $shapedataarr[9]['val']; - }else{ - unset($data[9]); - } - //将4:3 16:9 细长横图图归类到横图 - $data[8]['num'] = ($data[8]['num'] ? $data[8]['num']:0) + ($data[1]['num'] ? $data[1]['num'] : 0) + ($data[3]['num'] ? $data[3]['num'] : 0) + ($data[5]['num'] ? $data[5]['num'] : 0); - if ($data[8]['num']){ - $data[8]['val'] = $shapedataarr[8]['val']; - $data[8]['lablename'] = $shapedataarr[8]['lablename']; - } - else{ - unset($data[8]); - } - } elseif ($skey == 'grade') { - //评分统计 - if (!empty($para)) $params = array_merge($params, $para); - $data = DB::fetch_all("select count(r.rid) as num,r.grade from $sql where $wheresql group by r.grade", $params); - } elseif ($skey == 'ext') { - //类型统计 - if (!empty($para)) $params = array_merge($params, $para); - $data = DB::fetch_all("select count(r.rid) as num,r.ext from $sql where $wheresql group by r.ext", $params); - - } elseif ($skey == 'btime') { - //添加时间 - $presql = ' case '; - $prepara = []; - foreach ($timedataarr as $sv) { - $presql .= ' when r.btime >= %d ' . (($sv['end']) ? ' and r.btime < %d then %d' : ' then %d'); - $prepara[] = $sv['start']; - if ($sv['end']) $prepara[] = $sv['end']; - $prepara[] = $sv['val']; - } - if ($presql) { - $presql .= ' end as %s'; - $prepara[] = 'btimedata'; - } - if (!empty($para)) $params = array_merge($params, $para); - if (!empty($prepara)) $params = array_merge($prepara, $params); - foreach (DB::fetch_all("select $presql FROM $sql where$wheresql", $params) as $value) { - if (!$value['btimedata']) continue; - if (!isset($data[$value['btimedata']])) { - $data[$value['btimedata']]['num'] = 1; - $data[$value['btimedata']]['val'] = $timedataarr[$value['btimedata']]['val']; - $data[$value['btimedata']]['label'] = $timedataarr[$value['btimedata']]['label']; - } else { - $data[$value['btimedata']]['num']++; - } - } - //将今天昨天归类到最近七天,将最近七天归到最近30天,将近30天归到最近90天,将最近90天归到最近365天 - //将今天昨天归类到最近七天,将最近七天归到最近30天,将近30天归到最近90天,将最近90天归到最近365天 - $data[-7]['num'] =(isset($data[-7]['num']) ? intval($data[-7]['num']):0) + (isset($data[1]['num']) ? intval($data[1]['num']):0) + (isset($data[-1]['num']) ? intval($data[-1]['num']):0); - if($data[-7]['num']) $data[-7] = array('num'=>$data[-7]['num'],'val'=>$timedataarr[-7]['val'],'label'=>$timedataarr[-7]['label']); - $data[-30]['num'] =(isset($data[-30]['num']) ? intval($data[-30]['num']):0) + (isset($data[-7]['num']) ? intval($data[-7]['num']):0); - if($data[-30]['num']) $data[-30] = array('num'=>$data[-30]['num'],'val'=>$timedataarr[-30]['val'],'label'=>$timedataarr[-30]['label']); - $data[-90]['num'] =(isset($data[-90]['num']) ? intval($data[-90]['num']):0) + (isset($data[-30]['num']) ? intval($data[-30]['num']):0); - if($data[-90]['num']) $data[-90] = array('num'=>$data[-90]['num'],'val'=>$timedataarr[-90]['val'],'label'=>$timedataarr[-90]['label']); - $data[-365]['num'] =(isset($data[-365]['num']) ? intval($data[-365]['num']):0) + (isset($data[-90]['num']) ? intval($data[-90]['num']):0); - if($data[-365]['num']) $data[-365] = array('num'=>$data[-365]['num'],'val'=>$timedataarr[-365]['val'],'label'=>$timedataarr[-365]['label']); - foreach($data as $k=>$v){ - if($v['num'] == 0) unset($data[$k]); - } - krsort($data); - } elseif ($skey == 'mtime') { - //创建时间 - $presql = ' case '; - $prepara = []; - foreach ($timedataarr as $sv) { - $presql .= ' when r.mtime >= %d ' . (($sv['end']) ? ' and r.mtime < %d then %d' : ' then %d'); - $prepara[] = $sv['start']; - if ($sv['end']) $prepara[] = $sv['end']; - $prepara[] = $sv['val']; - } - if ($presql) { - $presql .= ' end as %s'; - $prepara[] = 'mtimedata'; - } - if (!empty($para)) $params = array_merge($params, $para); - if (!empty($prepara)) $params = array_merge($prepara, $params); - foreach (DB::fetch_all("select $presql FROM $sql where $wheresql", $params) as $value) { - if (!$value['mtimedata']) continue; - if (!isset($data[$value['mtimedata']])) { - $data[$value['mtimedata']]['num'] = 1; - $data[$value['mtimedata']]['val'] = $timedataarr[$value['mtimedata']]['val']; - $data[$value['mtimedata']]['label'] = $timedataarr[$value['mtimedata']]['label']; - } else { - $data[$value['mtimedata']]['num']++; - } - } - //将今天昨天归类到最近七天,将最近七天归到最近30天,将近30天归到最近90天,将最近90天归到最近365天 - $data[-7]['num'] =(isset($data[-7]['num']) ? intval($data[-7]['num']):0) + (isset($data[1]['num']) ? intval($data[1]['num']):0) + (isset($data[-1]['num']) ? intval($data[-1]['num']):0); - if($data[-7]['num']) $data[-7] = array('num'=>$data[-7]['num'],'val'=>$timedataarr[-7]['val'],'label'=>$timedataarr[-7]['label']); - $data[-30]['num'] =(isset($data[-30]['num']) ? intval($data[-30]['num']):0) + (isset($data[-7]['num']) ? intval($data[-7]['num']):0); - if($data[-30]['num']) $data[-30] = array('num'=>$data[-30]['num'],'val'=>$timedataarr[-30]['val'],'label'=>$timedataarr[-30]['label']); - $data[-90]['num'] =(isset($data[-90]['num']) ? intval($data[-90]['num']):0) + (isset($data[-30]['num']) ? intval($data[-30]['num']):0); - if($data[-90]['num']) $data[-90] = array('num'=>$data[-90]['num'],'val'=>$timedataarr[-90]['val'],'label'=>$timedataarr[-90]['label']); - $data[-365]['num'] =(isset($data[-365]['num']) ? intval($data[-365]['num']):0) + (isset($data[-90]['num']) ? intval($data[-90]['num']):0); - if($data[-365]['num']) $data[-365] = array('num'=>$data[-365]['num'],'val'=>$timedataarr[-365]['val'],'label'=>$timedataarr[-365]['label']); - foreach($data as $k=>$v){ - if($v['num'] == 0) unset($data[$k]); - } - krsort($data); - } elseif ($skey == 'dateline') { - //修改时间 - $presql = ' case '; - $prepara = []; - foreach ($timedataarr as $sv) { - $presql .= ' when r.dateline >= %d ' . (($sv['end']) ? ' and r.dateline < %d then %d' : ' then %d'); - $prepara[] = $sv['start']; - if ($sv['end']) $prepara[] = $sv['end']; - $prepara[] = $sv['val']; - } - if ($presql) { - $presql .= ' end as %s'; - $prepara[] = 'datelinedata'; - } - if (!empty($para)) $params = array_merge($params, $para); - if (!empty($prepara)) $params = array_merge($prepara, $params); - foreach (DB::fetch_all("select $presql FROM $sql where$wheresql ", $params) as $value) { - if (!$value['datelinedata']) continue; - if (!isset($data[$value['datelinedata']])) { - $data[$value['datelinedata']]['num'] = 1; - $data[$value['datelinedata']]['val'] = $timedataarr[$value['datelinedata']]['val']; - $data[$value['datelinedata']]['label'] = $timedataarr[$value['datelinedata']]['label']; - } else { - $data[$value['datelinedata']]['num']++; - } - } - //将今天昨天归类到最近七天,将最近七天归到最近30天,将近30天归到最近90天,将最近90天归到最近365天 - //将今天昨天归类到最近七天,将最近七天归到最近30天,将近30天归到最近90天,将最近90天归到最近365天 - $data[-7]['num'] =(isset($data[-7]['num']) ? intval($data[-7]['num']):0) + (isset($data[1]['num']) ? intval($data[1]['num']):0) + (isset($data[-1]['num']) ? intval($data[-1]['num']):0); - if($data[-7]['num']) $data[-7] = array('num'=>$data[-7]['num'],'val'=>$timedataarr[-7]['val'],'label'=>$timedataarr[-7]['label']); - $data[-30]['num'] =(isset($data[-30]['num']) ? intval($data[-30]['num']):0) + (isset($data[-7]['num']) ? intval($data[-7]['num']):0); - if($data[-30]['num']) $data[-30] = array('num'=>$data[-30]['num'],'val'=>$timedataarr[-30]['val'],'label'=>$timedataarr[-30]['label']); - $data[-90]['num'] =(isset($data[-90]['num']) ? intval($data[-90]['num']):0) + (isset($data[-30]['num']) ? intval($data[-30]['num']):0); - if($data[-90]['num']) $data[-90] = array('num'=>$data[-90]['num'],'val'=>$timedataarr[-90]['val'],'label'=>$timedataarr[-90]['label']); - $data[-365]['num'] =(isset($data[-365]['num']) ? intval($data[-365]['num']):0) + (isset($data[-90]['num']) ? intval($data[-90]['num']):0); - if($data[-365]['num']) $data[-365] = array('num'=>$data[-365]['num'],'val'=>$timedataarr[-365]['val'],'label'=>$timedataarr[-365]['label']); - foreach($data as $k=>$v){ - if($v['num'] == 0) unset($data[$k]); - } - krsort($data); - } elseif ($skey == 'grouptag') { - //标签分类id - $cid = isset($_GET['cid']) ? trim($_GET['cid']) : ''; - $sql .= ' left join %t rt on rt.rid=r.rid left join %t tr on tr.tid=rt.tid '; - $params[] = 'pichome_resourcestag'; - $params[] = 'pichome_tagrelation'; - $wheresql .= ' and tr.cid = %s'; - $para[] = $cid; - if (!empty($para)) $params = array_merge($params, $para); - //每个标签对应文件个数 - $tdata = []; - //所有符合条件标签id - $tids = []; - foreach (DB::fetch_all("select rt.tid,r.rid from $sql where $wheresql", $params) as $v) { - if (!isset($tdata[$v['tid']])) $tdata[$v['tid']]['num'] = 1; - else $tdata[$v['tid']]['num'] += 1; - if ($v['tid']) $tids[] = $v['tid']; - } - //统计所有标签,去掉重复标签 - $tids = array_unique($tids); - //标签id对应标签名称数组 - $tagdata = []; - foreach (DB::fetch_all("select tagname,tid from %t where tid in(%n)", array('pichome_tag', $tids)) as $v) { - $tagdata[$v['tid']] = $v['tagname']; - } - //最后返回数组 - $data = []; - foreach ($tdata as $tid => $num) { - if (isset($tagdata[$tid])) $data[$tid] = array('tid' => intval($tid), 'tagname' => $tagdata[$tid], 'num' => $num['num']); - } - } - exit(json_encode($data)); - } elseif ($operation == 'search_menu') { - $skey = isset($_GET['skey']) ? trim($_GET['skey']) : ''; - $data = array(); - exit(json_decode($data)); - } elseif ($operation == 'getsearchmenudata') {//获取筛选项 - - } elseif ($operation == 'setshow') {//设置显示字段 - $showfileds = isset($_GET['showfileds']) ? trim($_GET['showfileds']) : ''; - $other = isset($_GET['other']) ? trim($_GET['other']) : ''; - // $allowsetarr = ['name', 'tagging', 'extension', 'other', 'size', 'filesize', 'grade', 'btime', 'dateline', 'mtime']; - // $showfiledarr = explode(',', $showfileds); - // foreach ($showfiledarr as $k => $v) { - // if (!in_array($v, $allowsetarr)) { - // unsert($showfiledarr[$k]); - // } - // } - // $showfileds = implode(',', $showfileds); - $uid = getglobal('uid'); - if (!$uid) exit(json_encode(array('error' => true))); - C::t('user_setting')->update_by_skey('pichomeshowfileds', serialize(array('filed' => $showfileds, 'other' => $other)), $uid); - exit(json_encode(array('success' => true))); - } elseif ($operation == 'setsort') {//设置排序方式 - $sortfiled = isset($_GET['sortfiled']) ? trim($_GET['sortfiled']) : ''; - $allowsortarr = ['name', 'size', 'whsize', 'ext', 'size', 'grade', 'filesize', 'mtime', 'dateline', 'btime', 'duration']; - if (!in_array($sortfiled, $allowsortarr)) exit(json_encode(array('error' => true))); - $sort = isset($_GET['sort']) ? trim($_GET['sort']) : ''; - $uid = getglobal('uid'); - if (!$uid) exit(json_encode(array('error' => true))); - - C::t('user_setting')->update_by_skey('pichomesortfileds', serialize(array('filed' => $sortfiled, 'sort' => $sort)), $uid); - exit(json_encode(array('success' => true))); - - } elseif ($operation == 'setlayout') {//设置布局方式 - $layout = isset($_GET['layout']) ? trim($_GET['layout']) : ''; - $uid = getglobal('uid'); - if (!$uid) exit(json_encode(array('error' => true))); - C::t('user_setting')->update_by_skey('pichomelayout', serialize(array('layout' => $layout)), $uid); - exit(json_encode(array('success' => true))); - } elseif ($operation == 'likewords') {//联想词 - $keyword = isset($_GET['keyword']) ? htmlspecialchars($_GET['keyword']) : ''; - //取出name,desc,tagname,comments和最近搜索中包含关键词的内容各10条 - $resourceslikeword = C::t('pichome_resources')->fetch_like_words($keyword); - $resourcesattrlikeword = C::t('pichome_resources_attr')->fetch_like_words($keyword); - $taglikeword = C::t('pichome_tag')->fetch_like_words($keyword); - $commentlikeword = C::t('pichome_comments')->fetch_like_words($keyword); - $recentlikekeyword = C::t('pichome_searchrecent')->fetch_like_words($keyword); - //获得所有包含关键词的数组 - $likekeywords = array_merge($resourceslikeword, $taglikeword, $commentlikeword, $resourcesattrlikeword, $recentlikekeyword); - $likekeyworddata = []; - //按关键词出现的位置得到二维数组 - foreach ($likekeywords as $v) { - $index = strpos($keyword, $v); - $likekeyworddata[$index][] = $v; - } - //以出现的位置排序 - ksort($likekeyworddata); - $returnlikekeywords = []; - //得到关键词排序后的数组 - foreach ($likekeyworddata as $v) { - $returnlikekeywords = array_merge($returnlikekeywords, $v); - } - //去除重复的关键词 - $returnlikekeywords = array_unique($returnlikekeywords); - //取出前10个关键词 - $returnlikekeywords = array_slice($returnlikekeywords, 0, 10); - - exit(json_encode(array('likewords' => $returnlikekeywords))); - } elseif ($operation == 'screensetting') {//筛选设置 - $uid = getglobal('uid'); - if (!$uid) exit(json_encode(array('error' => true))); - if (!submitcheck('settingsubmit')) { - $screen = C::t('user_setting')->fetch_by_skey('pichomeuserscreen', $uid); + $tag = trim($_GET['tag']); + if ($tag == -1) { + $wheresql .= " and ra.tag = '' "; } else { - $screen = isset($_GET['screen']) ? trim($_GET['screen']) : ''; - $uid = getglobal('uid'); - C::t('user_setting')->update_by_skey('pichomeuserscreen', $screen, $uid); - exit(json_encode(array('success' => true))); + $tagval = explode(',', trim($_GET['tag'])); + if(!empty($tagval)){ + $seltagdata=[]; + if($appid){ + foreach(DB::fetch_all("select t.tagname,t.tid,tr.cid from %t t left join %t tr on t.tid = tr.tid where t.tid in(%n) and tr.appid=%s",array('pichome_tag','pichome_tagrelation',$tagval,$appid)) as $tv){ + $seltagdata[] = array('tagname'=>$tv['tagname'],'tid'=>intval($tv['tid']),'cid'=>$tv['cid']); + } + }else{ + foreach(DB::fetch_all("select tagname,tid from %t where tid in(%n) ",array('pichome_tag',$tagval)) as $tv){ + $seltagdata[] = array('tagname'=>$tv['tagname'],'tid'=>intval($tv['tid'])); + } + } + + } + foreach ($tagval as $v) { + $tagwherearr[] = " find_in_set(%d,ra.tag)"; + $para[] = $v; + } + if ($tagrelative) { + $wheresql .= " and (" . implode(" or ", $tagwherearr) . ")"; + } else { + $wheresql .= " and (" . implode(" and ", $tagwherearr) . ")"; + } } - } elseif ($operation == 'getscreen') {//获取筛选项 - $appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; + + } + + //时长条件 + if (isset($_GET['duration'])) { + if (!in_array('pichome_resources_attr', $params)) { + $sql .= "left join %t ra on r.rid = ra.rid"; + $params[] = 'pichome_resources_attr'; + } + $durationarr = explode('_', $_GET['duration']); + $dunit = isset($_GET['dunit']) ? trim($_GET['dunit']) : 's'; + if ($durationarr[0]) { + $wheresql .= " and ra.duration >= %d"; + $para[] = ($dunit == 'm') ? $durationarr[0] * 60 : $durationarr[0]; + } + + if ($durationarr[1]) { + $wheresql .= " and ra.duration <= %d"; + $para[] = ($dunit == 'm') ? $durationarr[1] * 60 : $durationarr[1]; + } + } + //标注条件 + if (isset($_GET['comments'])) { + $sql .= " left join %t c on r.rid = c.rid"; + $params[] = 'pichome_comments'; + $comments = intval($_GET['comments']); + $cval = isset($_GET['cval']) ? trim($_GET['cval']) : ''; + if (!$comments) { + $wheresql .= " and isnull(c.annotation) "; + } else { + if ($cval) { + $cvalarr = explode(',', $cval); + $cvalwhere = []; + foreach ($cvalarr as $cv) { + $cvalwhere[] = " c.annotation like %s"; + $para[] = '%' . $cv . '%'; + } + $wheresql .= " and (" . implode(" or ", $cvalwhere) . ")"; + } else { + $wheresql .= " and !isnull(c.annotation)"; + } + } + } + //注释条件 + if (isset($_GET['desc'])) { + if (!in_array('pichome_resources_attr', $params)) { + $sql .= "left join %t ra on r.rid = ra.rid"; + $params[] = 'pichome_resources_attr'; + } + $desc = intval($_GET['desc']); + $descval = isset($_GET['descval']) ? trim($_GET['descval']) : ''; + if (!$desc) { + $wheresql .= " and (isnull(ra.desc) or ra.desc='') "; + } else { + if ($descval) { + $descvalarr = explode(',', $descval); + $descvalwhere = []; + foreach ($descvalarr as $dv) { + $descvalwhere[] = " ra.desc like %s"; + $para[] = '%' . $dv . '%'; + } + $wheresql .= " and (" . implode(" or ", $descvalwhere) . ")"; + } else { + $wheresql .= " and ra.desc !=''"; + } + } + } + //链接条件 + if (isset($_GET['link'])) { + if (!in_array('pichome_resources_attr', $params)) { + $sql .= "left join %t ra on r.rid = ra.rid"; + $params[] = 'pichome_resources_attr'; + } + $link = intval($_GET['link']); + $linkval = isset($_GET['linkval']) ? trim($_GET['linkval']) : ''; + if (!$link) { + $wheresql .= " and (isnull(ra.link) or ra.link='') "; + } else { + if ($linkval) { + $linkvalarr = explode(',', $linkval); + $linkvalwhere = []; + foreach ($linkvalarr as $lv) { + $linkvalwhere[] = " ra.link like %s"; + $para[] = '%' . $lv . '%'; + } + $wheresql .= " and (" . implode(" or ", $linkvalwhere) . ")"; + } else { + $wheresql .= " and ra.link !='' "; + } + } + } + + + //形状条件 + if (isset($_GET['shape'])) { + $shape = trim($_GET['shape']); + $shapes = explode(',', $shape); + $shapewherearr = []; + foreach ($shapes as $v) { + switch ($v) { + case 7://方图 + $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; + $para[] = 100; + break; + case 8://横图 + $shapewherearr[] = ' round((r.width / r.height) * 100) > %d and round((r.width / r.height) * 100) < 250'; + $para[] = 100; + break; + case 5://细长横图 + $shapewherearr[] = ' round((r.width / r.height) * 100) >= %d'; + $para[] = 250; + break; + case 6://细长竖图 + $shapewherearr[] = ' round((r.width / r.height) * 100) <= %d'; + $para[] = 40; + break; + case 9://竖图 + $shapewherearr[] = ' round((r.width / r.height) * 100) < %d and round((r.width / r.height) * 100) > %d'; + $para[] = 100; + $para[] = 40; + break; + case 1://4:3 + $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; + $para[] = (4 / 3) * 100; + break; + case 2://3:4 + $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; + $para[] = (3 / 4) * 100; + break; + case 3://16:9 + $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; + $para[] = (16 / 9) * 100; + break; + case 4://9:16 + $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; + $para[] = (9 / 16) * 100; + break; + /*case 10: + $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; + $para[] = ($swidth / $sheight) * 100; + break;*/ + } + } + if (isset($_GET['shapesize'])) { + $shapesize = trim($_GET['shapesize']); + $shapesizes = explode(':', $shapesize); + $swidth = intval($shapesizes[0]); + $sheight = intval($shapesizes[1]); + $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; + $para[] = ($swidth / $sheight) * 100; + } + if ($shapewherearr) { + $wheresql .= " and (" . implode(" or ", $shapewherearr) . ")"; + } + } + //评分条件 + if (isset($_GET['grade'])) { + $grade = trim($_GET['grade']); + $grades = explode(',', $grade); + $wheresql .= " and r.grade in(%n)"; + $para[] = $grades; + } + //类型条件 + if (isset($_GET['ext'])) { + $ext = trim($_GET['ext']); + $exts = explode(',', $ext); + $wheresql .= " and r.ext in(%n)"; + $para[] = $exts; + } + //添加日期 + if (isset($_GET['btime'])) { + $btime = explode('_', $_GET['btime']); + $bstart = strtotime($btime[0]); + $bend = strtotime($btime[1]) + 24 * 60 * 60; + if ($bstart) { + $wheresql .= " and r.btime > %d"; + //将时间补足13位 + $para[] = $bstart * 1000; + } + if ($bend) { + $wheresql .= " and r.btime < %d"; + //将时间补足13位 + $para[] = $bend * 1000; + } + } + //修改日期 + if (isset($_GET['dateline'])) { + $dateline = explode('_', $_GET['dateline']); + $dstart = strtotime($dateline[0]); + $dend = strtotime($dateline[1]) + 24 * 60 * 60; + if ($dstart) { + $wheresql .= " and r.dateline > %d"; + //将时间补足13位 + $para[] = $dstart * 1000; + } + + if ($dend) { + $wheresql .= " and r.dateline < %d"; + //将时间补足13位 + $para[] = $dend * 1000; + } + } + //创建日期 + if (isset($_GET['mtime'])) { + $mtime = explode('_', $_GET['mtime']); + $mstart = strtotime($mtime[0]); + $mend = strtotime($mtime[1]) + 24 * 60 * 60; + if ($mstart) { + $wheresql .= " and r.mtime > %d"; + //将时间补足13位 + $para[] = $mstart * 1000; + } + + if ($mend) { + $wheresql .= " and r.mtime < %d"; + //将时间补足13位 + $para[] = $mend * 1000; + } + } + //尺寸条件 + if (isset($_GET['wsize']) || isset($_GET['hsize'])) { + $wsizearr = explode('_', $_GET['wsize']); + $hsizearr = explode('_', $_GET['hsize']); + if ($wsizearr[0]) { + $wheresql .= " and r.width >= %d"; + $para[] = intval($wsizearr[0]); + } + if ($wsizearr[1]) { + $wheresql .= " and r.width <= %d"; + $para[] = intval($wsizearr[1]); + } + if ($hsizearr[0]) { + $wheresql .= " and r.height >= %d"; + $para[] = intval($hsizearr[0]); + } + if ($hsizearr[1]) { + $wheresql .= " and r.height <= %d"; + $para[] = intval($hsizearr[1]); + } + } + + //大小条件 + if (isset($_GET['size'])) { + $size = explode('_', $_GET['size']); + $unit = isset($_GET['unit']) ? intval($_GET['unit']) : 1; + switch ($unit) { + case 0://b + $size[0] = $size[0]; + $size[1] = $size[1]; + break; + case 1://kb + $size[0] = $size[0] * 1024; + $size[1] = $size[1] * 1024; + break; + case 2://mb + $size[0] = $size[0] * 1024 * 1024; + $size[1] = $size[1] * 1024 * 1024; + break; + case 3://gb + $size[0] = $size[0] * 1024 * 1024 * 1024; + $size[1] = $size[1] * 1024 * 1024 * 1024; + break; + } + if ($size[0]) { + $wheresql .= " and r.szie > %d"; + $para[] = $size[0]; + } + if ($size[1]) { + $wheresql .= " and r.size < %d"; + $para[] = $size[1]; + } + } + $timedataarr = array( + 1 => array( + 'start' => strtotime(date("Y-m-d", time())) * 1000, + 'end' => (strtotime(date("Y-m-d", time())) + 24 * 60 * 60) * 1000, + 'val' => 1, + 'label' => '今日' + ), + -1 => array( + 'start' => strtotime(date("Y-m-d", strtotime("-1 day"))) * 1000, + 'end' => (strtotime(date("Y-m-d", time())) + 24 * 60 * 60) * 1000, + 'val' => -1, + 'label' => '昨日' + ), + -7 => array( + 'start' => strtotime(date("Y-m-d", strtotime("-7 day"))) * 1000, + 'end' => (strtotime(date("Y-m-d", time())) + 24 * 60 * 60) * 1000, + 'val' => -7, + 'label' => '最近7日' + ), + -30 => array( + 'start' => strtotime(date("Y-m-d", strtotime("-30 day"))) * 1000, + 'end' => (strtotime(date("Y-m-d", time())) + 24 * 60 * 60) * 1000, + 'val' => -30, + 'label' => '最近30日' + ), + -90 => array( + 'start' => strtotime(date("Y-m-d", strtotime("-90 day"))) * 1000, + 'end' => (strtotime(date("Y-m-d", time())) + 24 * 60 * 60) * 1000, + 'val' => -90, + 'label' => '最近90日' + ), + -365 => array( + 'start' => strtotime(date("Y-m-d", strtotime("-365 day"))) * 1000, + 'end' => (strtotime(date("Y-m-d", time())) + 24 * 60 * 60) * 1000, + 'val' => -365, + 'label' => '最近365日' + ), + ); + $shapedataarr = array( + 1 => array( + 'start' => 'round((4 / 3) * 100)', + 'end' => '', + 'val' => 1, + 'lablename' => '4:3' + ), + 2 => array( + 'start' => 'round((3 / 4) * 100)', + 'end' => '', + 'val' => 2, + 'lablename' => '3:4' + ), + 3 => array( + 'start' => 'round((16 / 9) * 100)', + 'end' => '', + 'val' => 3, + 'lablename' => '16:9' + ), + 4 => array( + 'start' => 'round((9 / 16) * 100)', + 'end' => '', + 'val' => 4, + 'lablename' => '9:16' + ), + 5 => array( + 'start' => 250, + 'end' => 0, + 'val' => 5, + 'lablename' => '细长横图' + ), + 6 => array( + 'start' => 0, + 'end' => 40, + 'val' => 6, + 'lablename' => '细长竖图' + ), + 7 => array( + 'start' => 100, + 'end' => '', + 'val' => 7, + 'lablename' => '方图' + ), + 8 => array( + 'start' => 100, + 'end' => 250, + 'val' => 8, + 'lablename' => '横图' + ), + 9 => array( + 'start' => 40, + 'end' => 100, + 'val' => 9, + 'lablename' => '竖图' + ) + + ); + //if (!empty($para)) $params = array_merge($params, $para); + //$count = DB::result_first("$countsql where $wheresql", $params); + //标签统计 + if ($skey == 'tag') { + $cid = isset($_GET['cid']) ? $_GET['cid']:''; + if ($cid) { + if ($cid == -1) { + $sql .= " left join %t tr on isnull(tr.cid)"; + $params[] = 'pichome_tagrelation'; + } else { + $sql .= " left join %t tr on tr.tid = rt.tid"; + $params[] = 'pichome_tagrelation'; + $wheresql .= ' and tr.cid = %s'; + $para[] = $cid; + } + + } + $tagkeyword = isset($_GET['tagkeyword']) ? trim($_GET['tagkeyword']):''; + if ($tagkeyword) { + $sql .= " left join %t t on t.tid=rt.tid"; + $params[] = 'pichome_tag'; + $wheresql .= " and t.tagname LIKE %s "; + $para[] = '%'.$tagkeyword.'%'; + } + if (!empty($para)) $params = array_merge($params, $para); + + $tagdata = []; + //每个标签对应文件个数 + $tdata = []; + //所有符合条件标签id + $tids= []; + foreach (DB::fetch_all("$sql where $wheresql $pagelimit", $params) as $v){ + $tids[] = $v['tid']; + } + + $finish = (count($tids) >= 20) ? false:true; + + foreach (DB::fetch_all("select rt.tid,t.tagname from %t rt left join %t + t on t.tid=rt.tid where rt.tid in(%n)", + array('pichome_resourcestag','pichome_tag',$tids)) as $v) { + if (!isset($tagdata[$v['tid']])) { + $tagdata[$v['tid']]['tagname'] = $v['tagname']; + $tagdata[$v['tid']]['num'] = 1; + } else { + $tagdata[$v['tid']]['num'] += 1; + } + } + + //最后返回数组 + $data = []; + //含分类标签数据数组 + $catdata = []; + //如果有appid则获取标签分类数据 if ($appid) { - if ($data = DB::fetch_first("select * from %t where appid=%s ", array('pichome_vapp', $appid))) { - $data['filter'] = unserialize($data['filter']); - // if($data['filter']){ - foreach ($data['filter'] as $k => $v) { - if ($v['key'] == 'tag' && $v['chacked'] == 1) { - if (isset($v['group'])) { - foreach ($v['group'] as $key => $tg) { - $tgdata = C::t('pichome_taggroup')->fetch($tg['cid']); - if ($tgdata) { - $tgdata['chacked'] = $tg['chacked']; - $data['filter'][$k]['group'][$key] = $tgdata; - }else{ - unset($data['filter'][$k]['group'][$key]); - } - } + $taggroupdata[] = ['cid'=>0,'catname'=>'全部']; + //获取标签分类数据 + $taggroupdata = DB::fetch_all("SELECT cid,catname + FROM %t where appid = %s group by cid;", array( 'pichome_taggroup', $appid)); + $taggroupdata[] = ['cid'=>-1,'catname' => '未分组']; + + } + //分类标签数据 + $data['catdata'] = $taggroupdata; + //标签不含分类数据 + $alltagdata = $tagdata; + $data['finish'] = $finish; + $data['alltagdata'] = $alltagdata; + $data['tgdata'] = $seltagdata; + } elseif ($skey == 'shape') { + //形状统计 + $presql = ' case '; + $prepara = []; + foreach ($shapedataarr as $sv) { + if ($sv['start'] && $sv['end'] === '') { + $presql .= ' when round((r.width/r.height) * 100) = %i then %d '; + $prepara[] = $sv['start']; + } else { + $presql .= ' when round((r.width/r.height) * 100) > %d ' . (($sv['end']) ? ' and round((r.width/r.height)*100) <= %d then %d' : ' then %d'); + $prepara[] = $sv['start']; + } + + if ($sv['end']) $prepara[] = $sv['end']; + $prepara[] = $sv['val']; + } + if ($presql) { + $presql .= ' end as %s'; + $prepara[] = 'shapedata'; + } + + if (!empty($para)) $params = array_merge($params, $para); + if (!empty($prepara)) $shapeparams = array_merge($prepara, $params); + + foreach (DB::fetch_all("select $presql FROM $sql where $wheresql", $shapeparams) as $value) { + if (!isset($data[$value['shapedata']]) && $shapedataarr[$value['shapedata']]['val']) { + $data[$value['shapedata']]['num'] = 1; + $data[$value['shapedata']]['lablename'] = $shapedataarr[$value['shapedata']]['lablename']; + $data[$value['shapedata']]['val'] = $shapedataarr[$value['shapedata']]['val']; + } elseif ($data[$value['shapedata']]['num']) { + $data[$value['shapedata']]['num']++; + } + } + //将3:4 9:16 细长竖图归类到竖图 + $data[9]['num'] = ($data[9]['num'] ? $data[9]['num'] : 0) + ($data[2]['num'] ? $data[2]['num'] : 0) + ($data[4]['num'] ? $data[4]['num'] : 0) + ($data[6]['num'] ? $data[6]['num'] : 0); + + if ($data[9]['num']) { + $data[9]['lablename'] = $shapedataarr[9]['lablename']; + $data[9]['val'] = $shapedataarr[9]['val']; + } else { + unset($data[9]); + } + //将4:3 16:9 细长横图图归类到横图 + $data[8]['num'] = ($data[8]['num'] ? $data[8]['num'] : 0) + ($data[1]['num'] ? $data[1]['num'] : 0) + ($data[3]['num'] ? $data[3]['num'] : 0) + ($data[5]['num'] ? $data[5]['num'] : 0); + if ($data[8]['num']) { + $data[8]['val'] = $shapedataarr[8]['val']; + $data[8]['lablename'] = $shapedataarr[8]['lablename']; + } else { + unset($data[8]); + } + } elseif ($skey == 'grade') { + //评分统计 + if (!empty($para)) $params = array_merge($params, $para); + $data = DB::fetch_all("select count(r.rid) as num,r.grade from $sql where $wheresql group by r.grade", $params); + } elseif ($skey == 'ext') { + //类型统计 + if (!empty($para)) $params = array_merge($params, $para); + $data = DB::fetch_all("select count(r.rid) as num,r.ext from $sql where $wheresql group by r.ext", $params); + + } elseif ($skey == 'btime') { + //添加时间 + $presql = ' case '; + $prepara = []; + foreach ($timedataarr as $sv) { + $presql .= ' when r.btime >= %d ' . (($sv['end']) ? ' and r.btime < %d then %d' : ' then %d'); + $prepara[] = $sv['start']; + if ($sv['end']) $prepara[] = $sv['end']; + $prepara[] = $sv['val']; + } + if ($presql) { + $presql .= ' end as %s'; + $prepara[] = 'btimedata'; + } + if (!empty($para)) $params = array_merge($params, $para); + if (!empty($prepara)) $params = array_merge($prepara, $params); + foreach (DB::fetch_all("select $presql FROM $sql where$wheresql", $params) as $value) { + if (!$value['btimedata']) continue; + if (!isset($data[$value['btimedata']])) { + $data[$value['btimedata']]['num'] = 1; + $data[$value['btimedata']]['val'] = $timedataarr[$value['btimedata']]['val']; + $data[$value['btimedata']]['label'] = $timedataarr[$value['btimedata']]['label']; + } else { + $data[$value['btimedata']]['num']++; + } + } + //将今天昨天归类到最近七天,将最近七天归到最近30天,将近30天归到最近90天,将最近90天归到最近365天 + //将今天昨天归类到最近七天,将最近七天归到最近30天,将近30天归到最近90天,将最近90天归到最近365天 + $data[-7]['num'] = (isset($data[-7]['num']) ? intval($data[-7]['num']) : 0) + (isset($data[1]['num']) ? intval($data[1]['num']) : 0) + (isset($data[-1]['num']) ? intval($data[-1]['num']) : 0); + if ($data[-7]['num']) $data[-7] = array('num' => $data[-7]['num'], 'val' => $timedataarr[-7]['val'], 'label' => $timedataarr[-7]['label']); + $data[-30]['num'] = (isset($data[-30]['num']) ? intval($data[-30]['num']) : 0) + (isset($data[-7]['num']) ? intval($data[-7]['num']) : 0); + if ($data[-30]['num']) $data[-30] = array('num' => $data[-30]['num'], 'val' => $timedataarr[-30]['val'], 'label' => $timedataarr[-30]['label']); + $data[-90]['num'] = (isset($data[-90]['num']) ? intval($data[-90]['num']) : 0) + (isset($data[-30]['num']) ? intval($data[-30]['num']) : 0); + if ($data[-90]['num']) $data[-90] = array('num' => $data[-90]['num'], 'val' => $timedataarr[-90]['val'], 'label' => $timedataarr[-90]['label']); + $data[-365]['num'] = (isset($data[-365]['num']) ? intval($data[-365]['num']) : 0) + (isset($data[-90]['num']) ? intval($data[-90]['num']) : 0); + if ($data[-365]['num']) $data[-365] = array('num' => $data[-365]['num'], 'val' => $timedataarr[-365]['val'], 'label' => $timedataarr[-365]['label']); + foreach ($data as $k => $v) { + if ($v['num'] == 0) unset($data[$k]); + } + krsort($data); + } elseif ($skey == 'mtime') { + //创建时间 + $presql = ' case '; + $prepara = []; + foreach ($timedataarr as $sv) { + $presql .= ' when r.mtime >= %d ' . (($sv['end']) ? ' and r.mtime < %d then %d' : ' then %d'); + $prepara[] = $sv['start']; + if ($sv['end']) $prepara[] = $sv['end']; + $prepara[] = $sv['val']; + } + if ($presql) { + $presql .= ' end as %s'; + $prepara[] = 'mtimedata'; + } + if (!empty($para)) $params = array_merge($params, $para); + if (!empty($prepara)) $params = array_merge($prepara, $params); + foreach (DB::fetch_all("select $presql FROM $sql where $wheresql", $params) as $value) { + if (!$value['mtimedata']) continue; + if (!isset($data[$value['mtimedata']])) { + $data[$value['mtimedata']]['num'] = 1; + $data[$value['mtimedata']]['val'] = $timedataarr[$value['mtimedata']]['val']; + $data[$value['mtimedata']]['label'] = $timedataarr[$value['mtimedata']]['label']; + } else { + $data[$value['mtimedata']]['num']++; + } + } + //将今天昨天归类到最近七天,将最近七天归到最近30天,将近30天归到最近90天,将最近90天归到最近365天 + $data[-7]['num'] = (isset($data[-7]['num']) ? intval($data[-7]['num']) : 0) + (isset($data[1]['num']) ? intval($data[1]['num']) : 0) + (isset($data[-1]['num']) ? intval($data[-1]['num']) : 0); + if ($data[-7]['num']) $data[-7] = array('num' => $data[-7]['num'], 'val' => $timedataarr[-7]['val'], 'label' => $timedataarr[-7]['label']); + $data[-30]['num'] = (isset($data[-30]['num']) ? intval($data[-30]['num']) : 0) + (isset($data[-7]['num']) ? intval($data[-7]['num']) : 0); + if ($data[-30]['num']) $data[-30] = array('num' => $data[-30]['num'], 'val' => $timedataarr[-30]['val'], 'label' => $timedataarr[-30]['label']); + $data[-90]['num'] = (isset($data[-90]['num']) ? intval($data[-90]['num']) : 0) + (isset($data[-30]['num']) ? intval($data[-30]['num']) : 0); + if ($data[-90]['num']) $data[-90] = array('num' => $data[-90]['num'], 'val' => $timedataarr[-90]['val'], 'label' => $timedataarr[-90]['label']); + $data[-365]['num'] = (isset($data[-365]['num']) ? intval($data[-365]['num']) : 0) + (isset($data[-90]['num']) ? intval($data[-90]['num']) : 0); + if ($data[-365]['num']) $data[-365] = array('num' => $data[-365]['num'], 'val' => $timedataarr[-365]['val'], 'label' => $timedataarr[-365]['label']); + foreach ($data as $k => $v) { + if ($v['num'] == 0) unset($data[$k]); + } + krsort($data); + } elseif ($skey == 'dateline') { + //修改时间 + $presql = ' case '; + $prepara = []; + foreach ($timedataarr as $sv) { + $presql .= ' when r.dateline >= %d ' . (($sv['end']) ? ' and r.dateline < %d then %d' : ' then %d'); + $prepara[] = $sv['start']; + if ($sv['end']) $prepara[] = $sv['end']; + $prepara[] = $sv['val']; + } + if ($presql) { + $presql .= ' end as %s'; + $prepara[] = 'datelinedata'; + } + if (!empty($para)) $params = array_merge($params, $para); + if (!empty($prepara)) $params = array_merge($prepara, $params); + foreach (DB::fetch_all("select $presql FROM $sql where$wheresql ", $params) as $value) { + if (!$value['datelinedata']) continue; + if (!isset($data[$value['datelinedata']])) { + $data[$value['datelinedata']]['num'] = 1; + $data[$value['datelinedata']]['val'] = $timedataarr[$value['datelinedata']]['val']; + $data[$value['datelinedata']]['label'] = $timedataarr[$value['datelinedata']]['label']; + } else { + $data[$value['datelinedata']]['num']++; + } + } + //将今天昨天归类到最近七天,将最近七天归到最近30天,将近30天归到最近90天,将最近90天归到最近365天 + //将今天昨天归类到最近七天,将最近七天归到最近30天,将近30天归到最近90天,将最近90天归到最近365天 + $data[-7]['num'] = (isset($data[-7]['num']) ? intval($data[-7]['num']) : 0) + (isset($data[1]['num']) ? intval($data[1]['num']) : 0) + (isset($data[-1]['num']) ? intval($data[-1]['num']) : 0); + if ($data[-7]['num']) $data[-7] = array('num' => $data[-7]['num'], 'val' => $timedataarr[-7]['val'], 'label' => $timedataarr[-7]['label']); + $data[-30]['num'] = (isset($data[-30]['num']) ? intval($data[-30]['num']) : 0) + (isset($data[-7]['num']) ? intval($data[-7]['num']) : 0); + if ($data[-30]['num']) $data[-30] = array('num' => $data[-30]['num'], 'val' => $timedataarr[-30]['val'], 'label' => $timedataarr[-30]['label']); + $data[-90]['num'] = (isset($data[-90]['num']) ? intval($data[-90]['num']) : 0) + (isset($data[-30]['num']) ? intval($data[-30]['num']) : 0); + if ($data[-90]['num']) $data[-90] = array('num' => $data[-90]['num'], 'val' => $timedataarr[-90]['val'], 'label' => $timedataarr[-90]['label']); + $data[-365]['num'] = (isset($data[-365]['num']) ? intval($data[-365]['num']) : 0) + (isset($data[-90]['num']) ? intval($data[-90]['num']) : 0); + if ($data[-365]['num']) $data[-365] = array('num' => $data[-365]['num'], 'val' => $timedataarr[-365]['val'], 'label' => $timedataarr[-365]['label']); + foreach ($data as $k => $v) { + if ($v['num'] == 0) unset($data[$k]); + } + krsort($data); + } elseif ($skey == 'grouptag') { + //标签分类id + $cid = isset($_GET['cid']) ? trim($_GET['cid']) : ''; + $sql .= ' left join %t rt on rt.rid=r.rid left join %t tr on tr.tid=rt.tid '; + $params[] = 'pichome_resourcestag'; + $params[] = 'pichome_tagrelation'; + $wheresql .= ' and tr.cid = %s'; + $para[] = $cid; + if (!empty($para)) $params = array_merge($params, $para); + //每个标签对应文件个数 + $tdata = []; + //所有符合条件标签id + $tids = []; + foreach (DB::fetch_all("select rt.tid,r.rid from $sql where $wheresql", $params) as $v) { + if (!isset($tdata[$v['tid']])) $tdata[$v['tid']]['num'] = 1; + else $tdata[$v['tid']]['num'] += 1; + if ($v['tid']) $tids[] = $v['tid']; + } + //统计所有标签,去掉重复标签 + $tids = array_unique($tids); + //标签id对应标签名称数组 + $tagdata = []; + foreach (DB::fetch_all("select tagname,tid from %t where tid in(%n)", array('pichome_tag', $tids)) as $v) { + $tagdata[$v['tid']] = $v['tagname']; + } + //最后返回数组 + $data = []; + foreach ($tdata as $tid => $num) { + if (isset($tagdata[$tid])) $data[$tid] = array('tid' => intval($tid), 'tagname' => $tagdata[$tid], 'num' => $num['num']); + } + } + exit(json_encode($data)); +} elseif ($operation == 'search_menu') { + + $skey = isset($_GET['skey']) ? trim($_GET['skey']) : ''; + + if($skey == 'tag'){ + $sql = "select distinct rt.tid from %t rt left join %t r on rt.rid=r.rid "; + $params = [ 'pichome_resourcestag','pichome_resources']; + + }else{ + exit(json_encode(array())); + } + $wheresql = " 1 "; + $appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; + $fids = isset($_GET['fids']) ? trim($_GET['fids']) : ''; + if ($appid) { + $wheresql .= ' and r.appid = %s '; + $para[] = $appid; + } + if ($fids) { + $sql .= " LEFT JOIN %t fr on fr.rid = r.rid "; + $wheresql .= ' and fr.fid in(%n)'; + $fidarr = explode(',', $fids); + $para[] = $fidarr; + $params[] = 'pichome_folderresources'; + } + //关键词条件 + $keyword = isset($_GET['keyword']) ? htmlspecialchars($_GET['keyword']) : ''; + if ($keyword) { + $sql .= " LEFT JOIN %t c on c.rid = r.rid left join %t rt on r.rid = rt.rid left join %t t on rt.tid= t.tid "; + $params[] = 'pichome_comments'; + $params[] = 'pichome_resourcestag'; + $params[] = 'pichome_tag'; + if (!in_array('pichome_resources_attr', $params)) { + $sql .= "left join %t ra on r.rid = ra.rid"; + $params[] = 'pichome_resources_attr'; + } + $keywords = array(); + $arr1 = explode('+', $keyword); + foreach ($arr1 as $value1) { + $value1 = trim($value1); + $arr2 = explode(' ', $value1); + $arr3 = array(); + foreach ($arr2 as $value2) { + $arr3[] = " r.name LIKE %s "; + $para[] = '%' . $value2 . '%'; + $arr3[] = " ra.link LIKE %s "; + $para[] = '%' . $value2 . '%'; + $arr3[] = " ra.desc LIKE %s "; + $para[] = '%' . $value2 . '%'; + $arr3[] = " c.annotation LIKE %s "; + $para[] = '%' . $value2 . '%'; + $arr3[] = " t.tagname LIKE %s "; + $para[] = '%' . $value2 . '%'; + } + $keywords[] = "(" . implode(" OR ", $arr3) . ")"; + } + if ($keywords) { + $wheresql .= " and (" . implode(" AND ", $keywords) . ")"; + } + } + //颜色条件 + if (isset($_GET['color'])) { + $persion = isset($_GET['persion']) ? intval($_GET['persion']) : 0; + $maxColDist = 764.8339663572415; + $similarity = 80 + (20 / 100) * $persion; + $color = trim($_GET['color']); + $rgbcolor = hex2rgb($color); + $sql .= " left join %t p on r.rid = p.rid "; + $params[] = 'pichome_palette'; + $wheresql .= "and round((%d-sqrt((((2+(p.r+%d)/2)/256)*(pow((%d-p.r),2))+(4*pow((%d-p.g),2)) + (((2+(255-(p.r+%d)/2))/256))*(pow((%d-p.b), 2)))))/%d,4)*100 >= %d"; + if (!empty($para)) $para = array_merge($para, array($maxColDist, $rgbcolor['r'], $rgbcolor['r'], $rgbcolor['g'], $rgbcolor['r'], $rgbcolor['b'], $maxColDist, $similarity)); + else $para = array($maxColDist, $rgbcolor['r'], $rgbcolor['r'], $rgbcolor['g'], $rgbcolor['r'], $rgbcolor['b'], $maxColDist, $similarity); + } + //标签条件 + if (isset($_GET['tag'])) { + $tagwherearr = []; + $tagrelative = isset($_GET['tagrelative']) ? intval($_GET['tagrelative']) : 1; + if (!in_array('pichome_resources_attr', $params)) { + $sql .= "left join %t ra on r.rid = ra.rid"; + $params[] = 'pichome_resources_attr'; + } + $tag = trim($_GET['tag']); + if ($tag == -1) { + $wheresql .= " and ra.tag = '' "; + } else { + $tagval = explode(',', trim($_GET['tag'])); + foreach ($tagval as $v) { + $tagwherearr[] = " find_in_set(%d,ra.tag)"; + $para[] = $v; + } + if ($tagrelative) { + $wheresql .= " and (" . implode(" or ", $tagwherearr) . ")"; + } else { + $wheresql .= " and (" . implode(" and ", $tagwherearr) . ")"; + } + } + + } + + //时长条件 + if (isset($_GET['duration'])) { + if (!in_array('pichome_resources_attr', $params)) { + $sql .= "left join %t ra on r.rid = ra.rid"; + $params[] = 'pichome_resources_attr'; + } + $durationarr = explode('_', $_GET['duration']); + $dunit = isset($_GET['dunit']) ? trim($_GET['dunit']) : 's'; + if ($durationarr[0]) { + $wheresql .= " and ra.duration >= %d"; + $para[] = ($dunit == 'm') ? $durationarr[0] * 60 : $durationarr[0]; + } + + if ($durationarr[1]) { + $wheresql .= " and ra.duration <= %d"; + $para[] = ($dunit == 'm') ? $durationarr[1] * 60 : $durationarr[1]; + } + } + //标注条件 + if (isset($_GET['comments'])) { + $sql .= " left join %t c on r.rid = c.rid"; + $params[] = 'pichome_comments'; + $comments = intval($_GET['comments']); + $cval = isset($_GET['cval']) ? trim($_GET['cval']) : ''; + if (!$comments) { + $wheresql .= " and isnull(c.annotation) "; + } else { + if ($cval) { + $cvalarr = explode(',', $cval); + $cvalwhere = []; + foreach ($cvalarr as $cv) { + $cvalwhere[] = " c.annotation like %s"; + $para[] = '%' . $cv . '%'; + } + $wheresql .= " and (" . implode(" or ", $cvalwhere) . ")"; + } else { + $wheresql .= " and !isnull(c.annotation)"; + } + } + } + //注释条件 + if (isset($_GET['desc'])) { + if (!in_array('pichome_resources_attr', $params)) { + $sql .= "left join %t ra on r.rid = ra.rid"; + $params[] = 'pichome_resources_attr'; + } + $desc = intval($_GET['desc']); + $descval = isset($_GET['descval']) ? trim($_GET['descval']) : ''; + if (!$desc) { + $wheresql .= " and (isnull(ra.desc) or ra.desc='') "; + } else { + if ($descval) { + $descvalarr = explode(',', $descval); + $descvalwhere = []; + foreach ($descvalarr as $dv) { + $descvalwhere[] = " ra.desc like %s"; + $para[] = '%' . $dv . '%'; + } + $wheresql .= " and (" . implode(" or ", $descvalwhere) . ")"; + } else { + $wheresql .= " and ra.desc !=''"; + } + } + } + //链接条件 + if (isset($_GET['link'])) { + if (!in_array('pichome_resources_attr', $params)) { + $sql .= "left join %t ra on r.rid = ra.rid"; + $params[] = 'pichome_resources_attr'; + } + $link = intval($_GET['link']); + $linkval = isset($_GET['linkval']) ? trim($_GET['linkval']) : ''; + if (!$link) { + $wheresql .= " and (isnull(ra.link) or ra.link='') "; + } else { + if ($linkval) { + $linkvalarr = explode(',', $linkval); + $linkvalwhere = []; + foreach ($linkvalarr as $lv) { + $linkvalwhere[] = " ra.link like %s"; + $para[] = '%' . $lv . '%'; + } + $wheresql .= " and (" . implode(" or ", $linkvalwhere) . ")"; + } else { + $wheresql .= " and ra.link !='' "; + } + } + } + + + //形状条件 + if (isset($_GET['shape'])) { + $shape = trim($_GET['shape']); + $shapes = explode(',', $shape); + + $shapewherearr = []; + foreach ($shapes as $v) { + switch ($v) { + case 7://方图 + $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; + $para[] = 100; + break; + case 8://横图 + $shapewherearr[] = ' round((r.width / r.height) * 100) > %d and round((r.width / r.height) * 100) < 250'; + $para[] = 100; + break; + case 5://细长横图 + $shapewherearr[] = ' round((r.width / r.height) * 100) >= %d'; + $para[] = 250; + break; + case 6://细长竖图 + $shapewherearr[] = ' round((r.width / r.height) * 100) <= %d'; + $para[] = 40; + break; + case 9://竖图 + $shapewherearr[] = ' round((r.width / r.height) * 100) < %d and round((r.width / r.height) * 100) > %d'; + $para[] = 100; + $para[] = 40; + break; + case 1://4:3 + $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; + $para[] = (4 / 3) * 100; + break; + case 2://3:4 + $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; + $para[] = (3 / 4) * 100; + break; + case 3://16:9 + $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; + $para[] = (16 / 9) * 100; + break; + case 4://9:16 + $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; + $para[] = (9 / 16) * 100; + break; + /*case 10: + $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; + $para[] = ($swidth / $sheight) * 100; + break;*/ + } + } + if (isset($_GET['shapesize'])) { + $shapesize = trim($_GET['shapesize']); + $shapesizes = explode(':', $shapesize); + $swidth = intval($shapesizes[0]); + $sheight = intval($shapesizes[1]); + $shapewherearr[] = ' round((r.width / r.height) * 100) = %d'; + $para[] = ($swidth / $sheight) * 100; + } + if ($shapewherearr) { + $wheresql .= " and (" . implode(" or ", $shapewherearr) . ")"; + } + } + //评分条件 + if (isset($_GET['grade'])) { + $grade = trim($_GET['grade']); + $grades = explode(',', $grade); + $wheresql .= " and r.grade in(%n)"; + $para[] = $grades; + } + //类型条件 + if (isset($_GET['ext'])) { + $ext = trim($_GET['ext']); + $exts = explode(',', $ext); + $wheresql .= " and r.ext in(%n)"; + $para[] = $exts; + } + //添加日期 + if (isset($_GET['btime'])) { + $btime = explode('_', $_GET['btime']); + $bstart = strtotime($btime[0]); + $bend = strtotime($btime[1]) + 24 * 60 * 60; + if ($bstart) { + $wheresql .= " and r.btime > %d"; + //将时间补足13位 + $para[] = $bstart * 1000; + } + if ($bend) { + $wheresql .= " and r.btime < %d"; + //将时间补足13位 + $para[] = $bend * 1000; + } + } + //修改日期 + if (isset($_GET['dateline'])) { + $dateline = explode('_', $_GET['dateline']); + $dstart = strtotime($dateline[0]); + $dend = strtotime($dateline[1]) + 24 * 60 * 60; + if ($dstart) { + $wheresql .= " and r.dateline > %d"; + //将时间补足13位 + $para[] = $dstart * 1000; + } + + if ($dend) { + $wheresql .= " and r.dateline < %d"; + //将时间补足13位 + $para[] = $dend * 1000; + } + } + //创建日期 + if (isset($_GET['mtime'])) { + $mtime = explode('_', $_GET['mtime']); + $mstart = strtotime($mtime[0]); + $mend = strtotime($mtime[1]) + 24 * 60 * 60; + if ($mstart) { + $wheresql .= " and r.mtime > %d"; + //将时间补足13位 + $para[] = $mstart * 1000; + } + + if ($mend) { + $wheresql .= " and r.mtime < %d"; + //将时间补足13位 + $para[] = $mend * 1000; + } + } + //尺寸条件 + if (isset($_GET['wsize']) || isset($_GET['hsize'])) { + $wsizearr = explode('_', $_GET['wsize']); + $hsizearr = explode('_', $_GET['hsize']); + if ($wsizearr[0]) { + $wheresql .= " and r.width >= %d"; + $para[] = intval($wsizearr[0]); + } + if ($wsizearr[1]) { + $wheresql .= " and r.width <= %d"; + $para[] = intval($wsizearr[1]); + } + if ($hsizearr[0]) { + $wheresql .= " and r.height >= %d"; + $para[] = intval($hsizearr[0]); + } + if ($hsizearr[1]) { + $wheresql .= " and r.height <= %d"; + $para[] = intval($hsizearr[1]); + } + } + + //大小条件 + if (isset($_GET['size'])) { + $size = explode('_', $_GET['size']); + $unit = isset($_GET['unit']) ? intval($_GET['unit']) : 1; + switch ($unit) { + case 0://b + $size[0] = $size[0]; + $size[1] = $size[1]; + break; + case 1://kb + $size[0] = $size[0] * 1024; + $size[1] = $size[1] * 1024; + break; + case 2://mb + $size[0] = $size[0] * 1024 * 1024; + $size[1] = $size[1] * 1024 * 1024; + break; + case 3://gb + $size[0] = $size[0] * 1024 * 1024 * 1024; + $size[1] = $size[1] * 1024 * 1024 * 1024; + break; + } + if ($size[0]) { + $wheresql .= " and r.szie > %d"; + $para[] = $size[0]; + } + if ($size[1]) { + $wheresql .= " and r.size < %d"; + $para[] = $size[1]; + } + } + + $wheresql .= " and r.isdelete < 1 "; + $data = array(); + if ($skey == 'tag') { + $cid = isset($_GET['cid']) ? $_GET['cid']:''; + if ($cid) { + if ($cid == -1) { + $sql .= " left join %t tr on isnull(tr.cid)"; + $params[] = 'pichome_tagrelation'; + } else { + $sql .= " left join %t tr on tr.tid = rt.tid"; + $params[] = 'pichome_tagrelation'; + $wheresql .= ' and tr.cid = %s'; + $para[] = $cid; + } + + } + $tagkeyword = isset($_GET['tagkeyword']) ? trim($_GET['tagkeyword']):''; + if ($tagkeyword) { + $sql .= " left join %t t on t.tid=rt.tid"; + $params[] = 'pichome_tag'; + $wheresql .= " and t.tagname LIKE %s "; + $para[] = '%'.$tagkeyword.'%'; + } + if (!empty($para)) $params = array_merge($params, $para); + + //所有符合条件标签id + $tids= []; + foreach (DB::fetch_all("$sql where $wheresql", $params) as $v){ + $tids[] = $v['tid']; + } + $catdata = []; + if($appid){ + $cattotal = 0; + $catdata[]=['cid'=>0,'catname'=>'全部','num'=>count($tids)]; + foreach (DB::fetch_all("select count(t.tid) as num,g.cid,g.catname from %t t left join %t + tr on tr.tid=t.tid left join %t g on g.cid = tr.cid where t.tid in(%n) and g.appid = %s group by g.cid", + array('pichome_tag','pichome_tagrelation','pichome_taggroup',$tids,$appid)) as $v) { + if($v['cid']){ + $catdata[]=['cid'=>$v['cid'],'catname'=>$v['catname'],'num'=>$v['num']]; + } + $cattotal += $v['num']; + } + + $catdata[]=['cid'=>-1,'catname'=>'未分类','num'=>count($tids) - $cattotal]; + + + }else{ + $catdata[]=['cid'=>0,'catname'=>'全部','num'=>count($tids)]; + } + + + //最后返回数组 + $data = []; + + $data['catdata'] = $catdata; + } + exit(json_encode($data)); +} elseif ($operation == 'getsearchmenudata') {//获取筛选项 + +} elseif ($operation == 'setshow') {//设置显示字段 + $showfileds = isset($_GET['showfileds']) ? trim($_GET['showfileds']) : ''; + $other = isset($_GET['other']) ? trim($_GET['other']) : ''; + // $allowsetarr = ['name', 'tagging', 'extension', 'other', 'size', 'filesize', 'grade', 'btime', 'dateline', 'mtime']; + // $showfiledarr = explode(',', $showfileds); + // foreach ($showfiledarr as $k => $v) { + // if (!in_array($v, $allowsetarr)) { + // unsert($showfiledarr[$k]); + // } + // } + // $showfileds = implode(',', $showfileds); + $uid = getglobal('uid'); + if (!$uid) exit(json_encode(array('error' => true))); + C::t('user_setting')->update_by_skey('pichomeshowfileds', serialize(array('filed' => $showfileds, 'other' => $other)), $uid); + exit(json_encode(array('success' => true))); +} elseif ($operation == 'setsort') {//设置排序方式 + $sortfiled = isset($_GET['sortfiled']) ? trim($_GET['sortfiled']) : ''; + $allowsortarr = ['name', 'size', 'whsize', 'ext', 'size', 'grade', 'filesize', 'mtime', 'dateline', 'btime', 'duration']; + if (!in_array($sortfiled, $allowsortarr)) exit(json_encode(array('error' => true))); + $sort = isset($_GET['sort']) ? trim($_GET['sort']) : ''; + $uid = getglobal('uid'); + if (!$uid) exit(json_encode(array('error' => true))); + + C::t('user_setting')->update_by_skey('pichomesortfileds', serialize(array('filed' => $sortfiled, 'sort' => $sort)), $uid); + exit(json_encode(array('success' => true))); + +} elseif ($operation == 'setlayout') {//设置布局方式 + $layout = isset($_GET['layout']) ? trim($_GET['layout']) : ''; + $uid = getglobal('uid'); + if (!$uid) exit(json_encode(array('error' => true))); + C::t('user_setting')->update_by_skey('pichomelayout', serialize(array('layout' => $layout)), $uid); + exit(json_encode(array('success' => true))); +} elseif ($operation == 'likewords') {//联想词 + $keyword = isset($_GET['keyword']) ? htmlspecialchars($_GET['keyword']) : ''; + //取出name,desc,tagname,comments和最近搜索中包含关键词的内容各10条 + $resourceslikeword = C::t('pichome_resources')->fetch_like_words($keyword); + $resourcesattrlikeword = C::t('pichome_resources_attr')->fetch_like_words($keyword); + $taglikeword = C::t('pichome_tag')->fetch_like_words($keyword); + $commentlikeword = C::t('pichome_comments')->fetch_like_words($keyword); + $recentlikekeyword = C::t('pichome_searchrecent')->fetch_like_words($keyword); + //获得所有包含关键词的数组 + $likekeywords = array_merge($resourceslikeword, $taglikeword, $commentlikeword, $resourcesattrlikeword, $recentlikekeyword); + $likekeyworddata = []; + //按关键词出现的位置得到二维数组 + foreach ($likekeywords as $v) { + $index = strpos($keyword, $v); + $likekeyworddata[$index][] = $v; + } + //以出现的位置排序 + ksort($likekeyworddata); + $returnlikekeywords = []; + //得到关键词排序后的数组 + foreach ($likekeyworddata as $v) { + $returnlikekeywords = array_merge($returnlikekeywords, $v); + } + //去除重复的关键词 + $returnlikekeywords = array_unique($returnlikekeywords); + //取出前10个关键词 + $returnlikekeywords = array_slice($returnlikekeywords, 0, 10); + + exit(json_encode(array('likewords' => $returnlikekeywords))); +} elseif ($operation == 'screensetting') {//筛选设置 + $uid = getglobal('uid'); + if (!$uid) exit(json_encode(array('error' => true))); + if (!submitcheck('settingsubmit')) { + $screen = C::t('user_setting')->fetch_by_skey('pichomeuserscreen', $uid); + } else { + $screen = isset($_GET['screen']) ? trim($_GET['screen']) : ''; + $uid = getglobal('uid'); + C::t('user_setting')->update_by_skey('pichomeuserscreen', $screen, $uid); + exit(json_encode(array('success' => true))); + } +} elseif ($operation == 'getscreen') {//获取筛选项 + $appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; + if ($appid) { + if ($data = DB::fetch_first("select * from %t where appid=%s ", array('pichome_vapp', $appid))) { + $data['filter'] = unserialize($data['filter']); + // if($data['filter']){ + foreach ($data['filter'] as $k => $v) { + if ($v['key'] == 'tag' && $v['chacked'] == 1) { + if (isset($v['group'])) { + foreach ($v['group'] as $key => $tg) { + $tgdata = C::t('pichome_taggroup')->fetch($tg['cid']); + if ($tgdata) { + $tgdata['chacked'] = $tg['chacked']; + $data['filter'][$k]['group'][$key] = $tgdata; + } else { + unset($data['filter'][$k]['group'][$key]); } } } - $pichomefilterfileds = $data['filter']; - exit(json_encode(array('success' => true, 'data' => $pichomefilterfileds))); - // }else{ - // if (isset($setting['pichomefilterfileds'])) { - // exit(json_encode(array('success' => true, 'data' => $setting['pichomefilterfileds']))); - // } else { - // $setting = C::t('setting')->fetch_all('pichomefilterfileds'); - // exit(json_encode(array('success' => true, 'data' =>$setting['pichomefilterfileds']))); - // } - // } - - } else { - exit(json_encode(array('error' => true))); + } } - } else { - if (isset($_G['setting']['pichomefilterfileds'])) { - exit(json_encode(array('success' => true, 'data' => $_G['setting']['pichomefilterfileds']))); - } else { - $setting = C::t('setting')->fetch_all('pichomefilterfileds'); - exit(json_encode(array('success' => true, 'data' =>$setting['pichomefilterfileds']))); - } - } - - } elseif ($operation == 'createshare') {//分享 - $rid = isset($_GET['rid']) ? trim($_GET['rid']) : ''; - if ($shareurl = C::t('pichome_share')->add_share($rid)) { - exit(json_encode(array('success' => $shareurl))); + $pichomefilterfileds = $data['filter']; + exit(json_encode(array('success' => true, 'data' => $pichomefilterfileds))); + // }else{ + // if (isset($setting['pichomefilterfileds'])) { + // exit(json_encode(array('success' => true, 'data' => $setting['pichomefilterfileds']))); + // } else { + // $setting = C::t('setting')->fetch_all('pichomefilterfileds'); + // exit(json_encode(array('success' => true, 'data' =>$setting['pichomefilterfileds']))); + // } + // } + } else { exit(json_encode(array('error' => true))); } - } elseif ($operation == 'getapp') { - $apps = []; - foreach (DB::fetch_all("select * from %t where 1", array('pichome_vapp')) as $v) { - $apps[] = $v; - } - exit(json_encode(array('vapps' => $apps))); - } elseif ($operation == 'reloadresources') {//更新单个文件资源 - $rid = isset($_GET['rid']) ? trim($_GET['rid']) : ''; - if (!$rid) exit(json_encode(array('error' => 'empty resources'))); - include_once dzz_libfile('eagleexport'); - $eagleexport = new eagleexport(); - if ($eagleexport->exportAloneFile($rid)) { - exit(json_encode(array('success' => true))); + } else { + if (isset($_G['setting']['pichomefilterfileds'])) { + exit(json_encode(array('success' => true, 'data' => $_G['setting']['pichomefilterfileds']))); + } else { + $setting = C::t('setting')->fetch_all('pichomefilterfileds'); + exit(json_encode(array('success' => true, 'data' => $setting['pichomefilterfileds']))); } + } + +} elseif ($operation == 'createshare') {//分享 + $rid = isset($_GET['rid']) ? trim($_GET['rid']) : ''; + if ($shareurl = C::t('pichome_share')->add_share($rid)) { + exit(json_encode(array('success' => $shareurl))); + } else { + exit(json_encode(array('error' => true))); + } +} elseif ($operation == 'getapp') { + $apps = []; + foreach (DB::fetch_all("select * from %t where 1", array('pichome_vapp')) as $v) { + $apps[] = $v; + } + exit(json_encode(array('vapps' => $apps))); +} elseif ($operation == 'reloadresources') {//更新单个文件资源 + $rid = isset($_GET['rid']) ? trim($_GET['rid']) : ''; + if (!$rid) exit(json_encode(array('error' => 'empty resources'))); + include_once dzz_libfile('eagleexport'); + $eagleexport = new eagleexport(); + if ($eagleexport->exportAloneFile($rid)) { exit(json_encode(array('success' => true))); - } elseif ($operation == 'sharedetails') {//分享详情数据 - $id = isset($_GET['id']) ? trim($_GET['id']) : ''; - $shareid = dzzdecode($id, '', 0); - $sharedata = C::t('pichome_share')->fetch($shareid); - if (!$sharedata) exit(json_encode(array('error' => 'share is not exists'))); - $resourcesdata = C::t('pichome_resources')->fetch_by_rid($sharedata['filepath']); - exit(json_encode(array('data' => $resourcesdata))); - } elseif ($operation == 'getapptagcat') { - $appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; - $catdata = C::t('pichome_taggroup')->fetch_by_appid($appid); - exit(json_encode($catdata)); - } elseif ($operation == 'appset') { - Hook::listen('adminlogin');//检查是否登录,未登录跳转到登录界面 - $appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; - if (!$appid) exit(json_encode(array('error' => true))); - $setarr = [ - 'filter' => isset($_GET['filter']) ? serialize($_GET['filter']) : '', - 'share' => isset($_GET['share']) ? intval($_GET['share']) : 0, - 'download' => isset($_GET['download']) ? intval($_GET['download']) : 0, - ]; - C::t('pichome_vapp')->update($appid, $setarr); - exit(json_encode(array('success' => true))); - } \ No newline at end of file + } + exit(json_encode(array('success' => true))); +} elseif ($operation == 'sharedetails') {//分享详情数据 + $id = isset($_GET['id']) ? trim($_GET['id']) : ''; + $shareid = dzzdecode($id, '', 0); + $sharedata = C::t('pichome_share')->fetch($shareid); + if (!$sharedata) exit(json_encode(array('error' => 'share is not exists'))); + $resourcesdata = C::t('pichome_resources')->fetch_by_rid($sharedata['filepath']); + exit(json_encode(array('data' => $resourcesdata))); +} elseif ($operation == 'getapptagcat') { + $appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; + $catdata = C::t('pichome_taggroup')->fetch_by_appid($appid); + exit(json_encode($catdata)); +} elseif ($operation == 'appset') { + Hook::listen('adminlogin');//检查是否登录,未登录跳转到登录界面 + $appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; + if (!$appid) exit(json_encode(array('error' => true))); + $setarr = [ + 'filter' => isset($_GET['filter']) ? serialize($_GET['filter']) : '', + 'share' => isset($_GET['share']) ? intval($_GET['share']) : 0, + 'download' => isset($_GET['download']) ? intval($_GET['download']) : 0, + ]; + C::t('pichome_vapp')->update($appid, $setarr); + exit(json_encode(array('success' => true))); +} \ No newline at end of file diff --git a/dzz/pichome/checkexport.php b/dzz/pichome/checkexport.php index a7469eb..54b8ddc 100644 --- a/dzz/pichome/checkexport.php +++ b/dzz/pichome/checkexport.php @@ -22,7 +22,7 @@ } closedir($dh); } - + //待导入库目录 $apppaths = []; $lastfoldername = '.library'; @@ -42,13 +42,13 @@ } } - foreach(DB::fetch_all("select * from %t where 1",array('pichome_vapp')) as $v){ if(!in_array($eagledir.'/'.$v['path'],$apppaths)){ C::t('pichome_vapp')->delete_vapp_by_appid($v['appid']); } } + //创建库 foreach ($apppaths as $val) { $jsonfile = $val . BS . 'metadata.json'; diff --git a/dzz/pichome/class/class_eagleexport.php b/dzz/pichome/class/class_eagleexport.php index f450d88..197711e 100644 --- a/dzz/pichome/class/class_eagleexport.php +++ b/dzz/pichome/class/class_eagleexport.php @@ -1,604 +1,515 @@ path = $data['path']; - $this->appid = $data['appid']; - $this->uid = $data['uid']; - $this->username = $data['username']; - $this->exportstatus = ($data['status'] == 1) ? 1:0; - // $this->donum = $data['donum']; - $this->eagledir = str_replace(BS,'/',$this->eagledir); - $this->lastid = $data['lastid']; - } - - public function exportAloneFile($rid,$force = 0) - { - $data = C::t('pichome_resources')->fetch($rid); - $this->appid = $data['appid']; - //获得文件对应目录id - $id = str_replace($this->appid, '', $rid); - $appdata = C::t('pichome_vapp')->fetch($this->appid); - $path = $appdata['path']; - $filepath = $this->eagledir .BS . $path . BS . 'images' . BS . $id . '.info'; - //文件信息文件路径 - $metadatajsonfile = $filepath . BS . 'metadata.json'; - if (!file_exists($metadatajsonfile)) { - C::t('pichome_resources')->delete_by_rid($rid); - return true; - } - - $this->uid = $data['uid']; - $this->username = $data['username']; - //文件信息json文件 - $mjsonfile = $this->eagledir . BS . $path . BS . 'mtime.json'; - $allfiledata = file_get_contents($mjsonfile); - //获取文件信息 - $allfiledata = json_decode($allfiledata, true); - - unset($allfiledata['all']); - - if ($force || $data['dateline'] < $allfiledata[$id]) {//当文件最后更新时间小于eagle时间时,需处理标签,颜色,目录等信息 - //获取文件信息数据 - $metadata = file_get_contents($metadatajsonfile); - $filemetadata = json_decode($metadata, true); - $p = new Encode_Core(); - $charset = $p->get_encoding($filepath); - if(CHARSET != $charset)$filemetadataname= diconv($filemetadata['name'],CHARSET,$charset); - //文件名称 - $filename = $filemetadataname . '.' . $filemetadata['ext']; - //缩略图名称 - $thumbname =$filemetadataname . '_thumbnail.png'; - //文件路径 - $file = $filepath . BS . $filename; - if (!file_exists($file)) { - return ; - } - //如果文件不存在删除 - if (!file_exists($file)) { - C::t('pichome_resources')->delete_by_rid($rid); - return true; - } - //缩略图路径 - $thumbfile = $filepath . BS . $thumbname; - - - //检查md5是否发生变化 - $filemd5 = md5_file($file); - //如果md5发生变化则删除原数据,重新导入 - if ($data['md5'] != $filemd5) { - C::t('pichome_resources')->delete_by_rid($rid); - $filemetadata['filename'] = $filemetadata['name']; - $filemetadata['file'] = $file; - $filemetadata['thumbfile'] = $thumbfile; - $filemetadata['md5'] = $filemd5; - $filemetadata['rid'] = $rid; - $filemetadata['dateline'] = $allfiledata[$id]; - $this->exportfile($filemetadata); - } else { - //查询原数据中的属性信息 - $attrdata = C::t('pichome_resources_attr')->fetch($rid); - //信息表数据记录 - $setarr = []; - //检查标签变化 - //标签数据 - $tags = $filemetadata['tags']; - //现有标签 - $tagids = []; - //原有标签 - $oldtids=[]; - if ($attrdata['tag']) $oldtids = explode(',', $attrdata['tag']); - if (!empty($tags)) { - $tagids = $this->addtag($tags); - $setarr['tag'] = implode(',',$tagids); - } - /* $addtags = array_diff($tagids,$oldtids); - $deltags = array_diff($oldtids,$tagids); - - if(!empty($deltags))C::t('pichome_resourcestag')->delete_by_ridtid($rid,$deltags); - foreach($addtags as $tid){ - $rtag = ['appid' => $this->appid, 'rid' => $rid, 'tid' => $tid]; - C::t('pichome_resourcestag')->insert($rtag); - }*/ - //检查标注变化 - if (isset($filemetadata['comments'])) { - $cids = []; - foreach ($filemetadata['comments'] as $commentval) { - $commentval['id'] = $commentval['id'] . $this->appid; - $commentval['appid'] = $this->appid; - $commentval['rid'] = $rid; - $commentval['x'] = number_format($commentval['x'], 2); - $commentval['y'] = number_format($commentval['y'], 2); - C::t('pichome_comments')->insert($commentval); - $cids[] = $commentval['id']; - } - $ocids = C::t('pichome_comments')->fetch_id_by_rid($rid); - $delcids = array_diff($ocids, $cids); - if (!empty($delcids)) C::t('pichome_comments')->delete($delcids); - } else { - C::t('pichome_comments')->delete_by_rid($rid); - } - - $thumb = file_exists($thumbfile) ? 1 : 0; - //检查reources数据变化 - $resourcesarr = [ - 'name' => $filename, - 'dateline' => $allfiledata[$id], - 'isdelete' => $filemetadata['isDeleted'], - 'hasthumb' => $thumb, - 'grade' => $filemetadata['star'] ? intval($filemetadata['star']) : 0 - ]; - - //文件路径 - $file = str_replace(BS,'/',$file); - $attachment = str_replace($this->eagledir.'/', '', $file); - $path = str_replace(BS, '/', $attachment); - $setarr['path'] = $path; - $resourcesarr['hasthumb'] = $thumb; - $resourcesarr['rid'] = $rid; - C::t('pichome_resources')->insert($resourcesarr); - $rfids = []; - //检查目录变化 - foreach ($filemetadata['folders'] as $fv) { - $fid = $fv . $this->appid; - if (!C::t('pichome_folder')->check_password_byfid($fid)) { - $frsetarr = ['appid' => $this->appid, 'rid' => $rid, 'fid' => $fid]; - $rfids[] = C::t('pichome_folderresources')->insert($frsetarr); - } else { - continue; - } - } - $orfids = C::t('pichome_folderresources')->fetch_id_by_rid($rid); - $delrfids = array_diff($orfids, $rfids); - C::t('pichome_folderresources')->delete($delrfids); - //尝试更新属性表数据 - $setarr['link'] = $filemetadata['url'] ? trim($filemetadata['url']) : ''; - //描述数据 - $setarr['desc'] = $filemetadata['annotation'] ? htmlspecialchars($filemetadata['annotation']) : ''; - if ($filemetadata['duration']) $setarr['duration'] = number_format($filemetadata['duration'], 2); - $setarr['rid'] = $rid; - C::t('pichome_resources_attr')->insert($setarr); - - } - } - return true; - } - - - public function execExport($force = false) - { - if($this->exportstatus > 0 && $this->exportstatus<3 ) return ; - C::t('pichome_vapp')->update($this->appid,array('state'=>1,'donum'=>0,'percent'=>0)); - $filedir = $this->eagledir . '/' . $this->path.'/images'; + //获取导入记录表基本数据 + $this->path = $data['path']; + $this->appid = $data['appid']; + $this->uid = $data['uid']; + $this->username = $data['username']; + $this->exportstatus = $data['state']; + $this->donum = $data['donum']; + $this->filenum = $data['filenum']; + $this->eagledir = str_replace(BS, '/', $this->eagledir); + $this->lastid = $data['lastid']; + } + + public function initExport() + { + $filedir = $this->eagledir . '/' . $this->path . '/images'; + $readtxt = $this->readtxt . 'eagleexport' . md5($this->path) . '.txt'; + $filenum = 0; + if (!is_file($readtxt) || filemtime($readtxt) < filemtime($this->eagledir . '/' . $this->path . '/metadata.json')) { if ($dch = opendir($filedir)) { + $thandle = fopen($readtxt, 'w+'); while (($file = readdir($dch)) != false) { if ($file != '.' && $file != '..') { $filePath = $filedir . '/' . $file; - if (is_dir($filePath) && file_exists($filePath.'/metadata.json')) { - $this->filenum++; + if (is_dir($filePath) && is_file($filePath . '/metadata.json')) { + $filenum++; + fwrite($thandle, $file . "\n"); } + unset($filePath); + unset($file); } } + fclose($thandle); closedir($dch); - }else{ - C::t('pichome_vapp')->update($this->appid,array('state'=>0)); + if ($filenum) $this->filenum = $filenum; + } else { + C::t('pichome_vapp')->update($this->appid, array('state' => 0)); return array('error' => 'Read Dir Failer'); } - if ($dh = opendir($filedir)) { - while (($file = readdir($dh)) != false) { - if ($file != '.' && $file != '..') { - $filePath = $filedir . '/' . $file; - if (is_dir($filePath) && file_exists($filePath.'/metadata.json')) { - $id = str_replace('.info','',$file); - //组合文件id - $rid = $id . $this->appid; - //文件路径 - $tmppath =$filePath; - //文件信息文件路径 - $metadatajsonfile = $tmppath . BS . 'metadata.json'; - - $data = C::t('pichome_resources')->fetch($rid); - //获取json文件最后修改时间 - $lastdate = filemtime($metadatajsonfile); - //查询文件表是否有对应记录 - if ($data ) { - //json文件不存在时删除文件,此情形基本不会出现(文件更新时,mtime会对应发生变化) - if (!file_exists($metadatajsonfile)) { - //删除文件 - C::t('pichome_resources')->delete_by_rid($rid); - continue; - } - elseif ($force || ($data['lastdate']< $lastdate)) {//当文件最后更新时间小于eagle时间时,需处理标签,颜色,目录等信息 - //获取文件信息数据 - $metadata = file_get_contents($metadatajsonfile); - $filemetadata = json_decode($metadata, true); - $p = new Encode_Core(); - $charset = $p->get_encoding($tmppath); - if(CHARSET != $charset)$filemetadataname= diconv($filemetadata['name'],CHARSET,$charset); - //文件名称 - $filename = $filemetadataname . '.' . $filemetadata['ext']; - //缩略图名称 - $thumbname = $filemetadataname . '_thumbnail.png'; - //文件路径 - $file = $tmppath . BS . $filename; - //缩略图路径 - $thumbfile = $tmppath . BS . $thumbname; - //检查md5是否发生变化 - $filemd5 = md5_file($file); - //如果md5发生变化则删除原数据,重新导入 - if ($data['md5'] != $filemd5) { - C::t('pichome_resources')->delete_by_rid($rid); - $filemetadata['filename'] = $filemetadata['name']; - $filemetadata['file'] = $file; - $filemetadata['thumbfile'] = $thumbfile; - $filemetadata['md5'] = $filemd5; - $filemetadata['rid'] = $rid; - $filemetadata['dateline'] = $filemetadata['mtime']; - $filemetadata['lastdate'] = $lastdate; - $this->exportfile($filemetadata); - } - else { - //查询原数据中的属性信息 - $attrdata = C::t('pichome_resources_attr')->fetch($rid); - //信息表数据记录 - $setarr = []; - //检查标签变化 - //标签数据 - $tags = $filemetadata['tags']; - //现有标签 - $tagids = []; - //原有标签 - $oldtids=[]; - if ($attrdata['tag']) $oldtids = explode(',', $attrdata['tag']); - - if (!empty($tags)) { - $tagids = $this->addtag($tags); - $setarr['tag'] = implode(',',$tagids); - } - $addtags = array_diff($tagids,$oldtids); - $deltags = array_diff($oldtids,$tagids); - - if(!empty($deltags))C::t('pichome_resourcestag')->delete_by_ridtid($rid,$deltags); - foreach($addtags as $tid){ - $rtag = ['appid' => $this->appid, 'rid' => $rid, 'tid' => $tid]; - C::t('pichome_resourcestag')->insert($rtag); - } - - //检查标注变化 - if (isset($filemetadata['comments'])) { - $cids = []; - foreach ($filemetadata['comments'] as $commentval) { - $tcommentval['id'] = $commentval['id'] . $this->appid; - $tentval['appid'] = $this->appid; - $tcommentval['rid'] = $rid; - $tcommentval['x'] = number_format($commentval['x'], 2); - $tcommentval['y'] = number_format($commentval['y'], 2); - try{ - C::t('pichome_comments')->insert($tcommentval); - }catch (Exception $e){ - - } - $cids[] = $tcommentval['id']; - } - $ocids = C::t('pichome_comments')->fetch_id_by_rid($rid); - $delcids = array_diff($ocids, $cids); - if (!empty($delcids)) C::t('pichome_comments')->delete($delcids); - } else { - C::t('pichome_comments')->delete_by_rid($rid); - } - - $filename = $filemetadata['name'] . '.' . $filemetadata['ext']; - //检查reources数据变化 - $resourcesarr = [ - 'name' => $filename, - 'dateline' => $filemetadata['lastModified'], - 'isdelete' => $filemetadata['isDeleted'], - 'grade' => $filemetadata['star'] ? intval($filemetadata['star']) : 0, - 'lastdate'=>$lastdate - ]; - $file = str_replace(BS,'/',$file); - $attachment = str_replace($this->eagledir .'/', '', $file); - $path = str_replace(BS, '/', $attachment); - if (!file_exists($thumbfile)) { - $thumb = (file_exists($filemetadata['thumbfile'])) ? 1 : 0; - } else { - $thumb = 1; - } - $setarr['path'] = $path; - $resourcesarr['hasthumb'] = $thumb; - $resourcesarr['rid'] = $rid; - C::t('pichome_resources')->insert($resourcesarr); - $rfids = []; - - //检查目录变化 - foreach ($filemetadata['folders'] as $fv) { - $fid = $fv . $this->appid; - if (!C::t('pichome_folder')->check_password_byfid($fid)) { - $frsetarr = ['appid' => $this->appid, 'rid' => $rid, 'fid' => $fid]; - - $rfids[] = C::t('pichome_folderresources')->insert($frsetarr); - } else { - continue; - } - } - $orfids = C::t('pichome_folderresources')->fetch_id_by_rid($rid); - $delrfids = array_diff($orfids, $rfids); - C::t('pichome_folderresources')->delete($delrfids); - //尝试更新属性表数据 - $setarr['link'] = $filemetadata['url'] ? trim($filemetadata['url']) : ''; - //描述数据 - $setarr['desc'] = $filemetadata['annotation'] ? $filemetadata['annotation'] : ''; - if ($filemetadata['duration']) $setarr['duration'] = number_format($filemetadata['duration'], 2); - $setarr['rid'] = $rid; - C::t('pichome_resources_attr')->insert($setarr); - } - } - else{ - $this->donum += 1; - $percent = round(($this->donum/$this->filenum)*100); - //防止因获取文件总个数不准确百分比溢出 - $percent = ($percent > 100) ? 100:$percent; - //记录导入起始位置,以备中断后从此处,更改导入状态为正在导入 - C::t('pichome_vapp')->update($this->appid,array('lastid'=>$id,'percent'=>$percent,'donum'=>$this->donum,'state'=>1)); - continue; - } - } - else {//如果没有记录,则为新导入文件 - if (!file_exists($metadatajsonfile)) { - $this->filenum -= 1; - continue; - } - //获取文件信息数据 - $metadata = file_get_contents($metadatajsonfile); - $filemetadata = json_decode($metadata, true); - //文件目录信息 - $filefolders = $filemetadata['folders']; - //如果目录含有密码则不导入数据直接跳过 - $haspassword = C::t('pichome_folder')->check_haspasswrod($filefolders, $this->appid); - - if ($haspassword) continue; - $p = new Encode_Core(); - $charset = $p->get_encoding($tmppath); - if(CHARSET != $charset)$filemetadataname= diconv($filemetadata['name'],CHARSET,$charset); - $filename =$filemetadataname . '.' . $filemetadata['ext']; - $thumbname = $filemetadataname . '_thumbnail.png'; - - $file = $tmppath . BS . $filename; - $thumbfile = $tmppath . BS . $thumbname; - $filemd5 = md5_file($file); + C::t('pichome_vapp')->update($this->appid, array('filenum' => $this->filenum, 'state' => 1)); + } + C::t('pichome_vapp')->update($this->appid, array('state' => 1)); + return array('success' => true); + } + + + public function execExport($force = false) + { + $filedir = $this->eagledir . '/' . $this->path . '/images'; + $readtxt = $this->readtxt . 'eagleexport' . md5($this->path) . '.txt'; + runlog('aaa', $readtxt); + if ($this->lastid) { + $start = $this->lastid * 19; + } else $start = 0; + + if ($this->lastid < $this->filenum && $this->exportstatus == 1) { + $tfile = fopen($readtxt, 'r'); + $i = 1; + fseek($tfile, $start); + while (!feof($tfile)) { + if ($i > $this->onceexportnum) { + break; + } + $file = trim(fgets($tfile)); + $filePath = $filedir . '/' . $file; + if (is_dir($filePath) && is_file($filePath . '/metadata.json')) { + $id = str_replace('.info', '', $file); + //组合文件id + $rid = $id . $this->appid; + //文件路径 + $tmppath = $filePath; + unset($filePath); + //文件信息文件路径 + $metadatajsonfile = $tmppath . BS . 'metadata.json'; + + $data = C::t('pichome_resources')->fetch($rid); + //获取json文件最后修改时间 + $lastdate = filemtime($metadatajsonfile); + $metadata = file_get_contents($metadatajsonfile); + $filemetadata = json_decode($metadata, true); + //查询文件表是否有对应记录 + if ($data) { + + //json文件不存在时删除文件,此情形基本不会出现(文件更新时,mtime会对应发生变化) + if (!is_file($metadatajsonfile)) { + //删除文件 + C::t('pichome_resources')->delete_by_rid($rid); + continue; + } elseif ($force || ($data['lastdate'] < $lastdate)) {//当文件最后更新时间小于eagle时间时,需处理标签,颜色,目录等信息 + + $p = new Encode_Core(); + $charset = $p->get_encoding($tmppath); + if (CHARSET != $charset) $filemetadataname = diconv($filemetadata['name'], CHARSET, $charset); + //文件名称 + $filename = $filemetadataname . '.' . $filemetadata['ext']; + //缩略图名称 + $thumbname = $filemetadataname . '_thumbnail.png'; + //文件路径 + $file = $tmppath . BS . $filename; + //缩略图路径 + $thumbfile = $tmppath . BS . $thumbname; + + //如果mtime发生变化则删除原数据,重新导入 + if ($data['mtime'] < $filemetadata['mtime']) { + C::t('pichome_resources')->delete_by_rid($rid); $filemetadata['filename'] = $filemetadata['name']; $filemetadata['file'] = $file; $filemetadata['thumbfile'] = $thumbfile; - $filemetadata['md5'] = $filemd5; $filemetadata['rid'] = $rid; - $filemetadata['mtime'] = $filemetadata['mtime'] ? $filemetadata['mtime']:$filemetadata['modificationTime']; - $filemetadata['btime'] = $filemetadata['btime'] ? $filemetadata['btime']:$filemetadata['modificationTime']; + $filemetadata['mtime'] = $filemetadata['mtime'] ? $filemetadata['mtime'] : $filemetadata['modificationTime']; + $filemetadata['btime'] = $filemetadata['btime'] ? $filemetadata['btime'] : $filemetadata['modificationTime']; $filemetadata['dateline'] = $filemetadata['lastModified']; $filemetadata['lastdate'] = $lastdate; $this->exportfile($filemetadata); + unset($filemetadata); + } else { + //查询原数据中的属性信息 + $attrdata = C::t('pichome_resources_attr')->fetch($rid); + //信息表数据记录 + $setarr = []; + //检查标签变化 + //标签数据 + $tags = $filemetadata['tags']; + //现有标签 + $tagids = []; + //原有标签 + $oldtids = []; + if ($attrdata['tag']) $oldtids = explode(',', $attrdata['tag']); + + if (!empty($tags)) { + $tagids = $this->addtag($tags); + $setarr['tag'] = implode(',', $tagids); + } + $addtags = array_diff($tagids, $oldtids); + $deltags = array_diff($oldtids, $tagids); + + if (!empty($deltags)) C::t('pichome_resourcestag')->delete_by_ridtid($rid, $deltags); + foreach ($addtags as $tid) { + $rtag = ['appid' => $this->appid, 'rid' => $rid, 'tid' => $tid]; + C::t('pichome_resourcestag')->insert($rtag); + } + + //检查标注变化 + if (isset($filemetadata['comments'])) { + $cids = []; + foreach ($filemetadata['comments'] as $commentval) { + $tcommentval['id'] = $commentval['id'] . $this->appid; + $tentval['appid'] = $this->appid; + $tcommentval['rid'] = $rid; + $tcommentval['x'] = number_format($commentval['x'], 2); + $tcommentval['y'] = number_format($commentval['y'], 2); + try { + C::t('pichome_comments')->insert($tcommentval); + } catch (Exception $e) { + + } + $cids[] = $tcommentval['id']; + unset($tcommentval); + + } + $ocids = C::t('pichome_comments')->fetch_id_by_rid($rid); + $delcids = array_diff($ocids, $cids); + if (!empty($delcids)) C::t('pichome_comments')->delete($delcids); + } else { + C::t('pichome_comments')->delete_by_rid($rid); + } + + $filename = $filemetadata['name'] . '.' . $filemetadata['ext']; + //检查reources数据变化 + $resourcesarr = [ + 'name' => $filename, + 'dateline' => $filemetadata['lastModified'], + 'isdelete' => $filemetadata['isDeleted'], + 'grade' => $filemetadata['star'] ? intval($filemetadata['star']) : 0, + 'lastdate' => $lastdate + ]; + $file = str_replace(BS, '/', $file); + $attachment = str_replace($this->eagledir . '/', '', $file); + $path = str_replace(BS, '/', $attachment); + $thumb = (is_file($thumbfile)) ? 1 : 0; + $setarr['path'] = $path; + $resourcesarr['hasthumb'] = $thumb; + $resourcesarr['rid'] = $rid; + C::t('pichome_resources')->insert($resourcesarr); + $rfids = []; + $orfids = C::t('pichome_folderresources')->fetch_id_by_rid($rid); + C::t('pichome_folderresources')->delete($orfids); + //检查目录变化 + foreach ($filemetadata['folders'] as $fv) { + $fid = trim($fv) . $this->appid; + if (!C::t('pichome_folder')->check_password_byfid($fid)) { + $frsetarr = ['appid' => $this->appid, 'rid' => $rid, 'fid' => $fid]; + C::t('pichome_folderresources')->insert($frsetarr); + } else { + continue; + } + } + + //尝试更新属性表数据 + $setarr['link'] = $filemetadata['url'] ? trim($filemetadata['url']) : ''; + //描述数据 + $setarr['desc'] = $filemetadata['annotation'] ? $filemetadata['annotation'] : ''; + if ($filemetadata['duration']) $setarr['duration'] = number_format($filemetadata['duration'], 2); + $setarr['rid'] = $rid; + C::t('pichome_resources_attr')->insert($setarr); + unset($filemetadata); + unset($setarr); } + } else { + unset($data); $this->donum += 1; - $percent = round(($this->donum/$this->filenum)*100); - //防止因获取文件总个数不准确百分比溢出 - $percent = ($percent > 100) ? 100:$percent; + $percent = round(($this->donum / $this->filenum) * 100); + $state = ($percent >= 100) ? 2 : 1; + if ($state == 2) { + fclose($tfile); + @unlink($this->readtxt . 'eagleexport' . md5($this->path) . '.txt'); + $lastid = 0; + } else { + $lastid = $this->donum; + } //记录导入起始位置,以备中断后从此处,更改导入状态为正在导入 - C::t('pichome_vapp')->update($this->appid,array('lastid'=>$id,'percent'=>$percent,'donum'=>$this->donum,'state'=>1)); + C::t('pichome_vapp')->update($this->appid, array('lastid' => $lastid, 'percent' => $percent, 'donum' => $this->donum, 'state' => $state)); + continue; } + } else {//如果没有记录,则为新导入文件 + if (!is_file($metadatajsonfile)) { + $this->filenum -= 1; + continue; + } + + //如果目录含有密码则不导入数据直接跳过 + $haspassword = C::t('pichome_folder')->check_haspasswrod($filemetadata['folders'], $this->appid); + //echo '判断目录密码后缓存:'.memory_get_usage()/1024 . '
'; + if ($haspassword) continue; + $p = new Encode_Core(); + $charset = $p->get_encoding($tmppath); + if (CHARSET != $charset) $filemetadataname = diconv($filemetadata['name'], CHARSET, $charset); + + $filename = $filemetadataname . '.' . $filemetadata['ext']; + $thumbname = $filemetadataname . '_thumbnail.png'; + //echo $i.'middle:'.memory_get_usage()/1024 . '
'; + $file = $tmppath . BS . $filename; + $thumbfile = $tmppath . BS . $thumbname; + //$filemd5 = md5_file($file); + $filemetadata['filename'] = $filemetadata['name']; + $filemetadata['file'] = $file; + unset($file); + $filemetadata['thumbfile'] = $thumbfile; + unset($thumbfile); + // $filemetadata['md5'] = $filemd5; + $filemetadata['rid'] = $rid; + $filemetadata['mtime'] = $filemetadata['mtime'] ? $filemetadata['mtime'] : $filemetadata['modificationTime']; + $filemetadata['btime'] = $filemetadata['btime'] ? $filemetadata['btime'] : $filemetadata['modificationTime']; + $filemetadata['dateline'] = $filemetadata['lastModified']; + $filemetadata['lastdate'] = $lastdate; + $this->exportfile($filemetadata); + unset($filemetadata); + } + $this->donum += 1; + $percent = round(($this->donum / $this->filenum) * 100); + //防止因获取文件总个数不准确百分比溢出 + $state = ($percent >= 100) ? 2 : 1; + if ($state == 2) { + fclose($tfile); + @unlink($this->readtxt . 'eagleexport' . md5($this->path) . '.txt'); + $lastid = 0; + } else { + $lastid = $this->donum; + } + //记录导入起始位置,以备中断后从此处,更改导入状态为正在导入 + C::t('pichome_vapp')->update($this->appid, array('lastid' => $lastid, 'percent' => $percent, 'donum' => $this->donum, 'state' => $state)); } - closedir($dh); - }else{ - C::t('pichome_vapp')->update($this->appid,array('state'=>0)); - return array('error' => 'Read Dir Failer'); + $i++; } - //更改状态为校验 - C::t('pichome_vapp')->update($this->appid,array('lastid'=>'','percent'=>100,'filenum'=>$this->filenum,'donum'=>0,'state'=>2)); - $total = DB::result_first("select count(rid) from %t where appid = %s ",array('pichome_resources',$this->appid)); + + } + + return array('success' => true); + + } + + //校验文件 + public function execCheckFile() + { + if ($this->exportstatus == 2) { + $total = DB::result_first("select count(rid) from %t where appid = %s ", array('pichome_resources', $this->appid)); //校验文件 $this->check_file($total); - return array('success' => true); - } - public function check_file($total){ - - $limitsql = ($this->checkpage -1)*$this->checklimit.','.$this->checklimit; - $delrids = []; - $data = DB::fetch_all("select rid from %t where appid = %s order by lastdate asc limit $limitsql ",array('pichome_resources',$this->appid)); - if(empty($data)) { - C::t('pichome_vapp')->update($this->appid,array('percent'=>100,'state'=>3)); - return true; - } - foreach ( $data as $v){ - $id = str_replace($this->appid,'',$v['rid']); - $filejson = $this->eagledir . '/' . $this->path.'/images/'.$id.'.info/metadata.json'; - if(!file_exists($filejson)){ - $delrids[] = $v['rid']; - } - $this->checknum += 1; - $percent = round(( $this->checknum/$total)*100); - //记录导入起始位置,以备中断后从此处,更改导入状态为正在导入 - C::t('pichome_vapp')->update($this->appid,array('percent'=>$percent,'state'=>2)); - } - if(!empty($delrids)){ - //如果有需要删除的,删除后,则重新查询上一页数据 - C::t('pichome_resources')->delete_by_rid($delrids); - $ctotal = DB::result_first("select count(rid) from %t where appid = %s ",array('pichome_resources',$this->appid)); - if($ctotal)$this->check_file($total); - }else{ - $this->checkpage += 1; - $this->check_file($total); - } + return true; + } + + public function check_file($total) + { + if ($this->lastid < 1) $this->lastid = 1; + $limitsql = ($this->lastid - 1) * $this->checklimit . ',' . $this->checklimit; + $delrids = []; + $data = DB::fetch_all("select rid from %t where appid = %s order by lastdate asc limit $limitsql ", array('pichome_resources', $this->appid)); + if (empty($data)) { + C::t('pichome_vapp')->update($this->appid, array('percent' => 0, 'state' => 3, 'lastid' => 0, 'donum' => 0)); + return true; } - public function exportfile($filemetadata) - { - $rid = $filemetadata['rid']; - if (!file_exists($filemetadata['file'])) { - return ; - } - - $filemetadata['file'] = str_replace(BS,'/',$filemetadata['file']); - $attachment = str_replace(BS, '/', $filemetadata['file']); - $path = str_replace($this->eagledir.'/', '', $attachment); - if (!file_exists($filemetadata['thumbfile'])) { - $thumb = (file_exists($filemetadata['thumbfile'])) ? 1 : 0; - } else { - $thumb = 1; - } - $ext = $filemetadata['ext']; - $type = getTypeByExt($ext); - $resourcesarr = [ - 'rid' => $rid, - 'uid' => $this->uid, - 'username' => $this->username, - 'appid' => $this->appid, - 'width' => $filemetadata['width'] ? $filemetadata['width'] : 0, - 'height' => $filemetadata['height'] ? $filemetadata['height'] : 0, - 'name' => $filemetadata['filename'].'.'.$filemetadata['ext'], - 'ext' => $filemetadata['ext'], - 'size' => $filemetadata['size'], - 'dateline' => $filemetadata['dateline'], - 'btime' => $filemetadata['btime'], - 'mtime' => $filemetadata['mtime'], - 'isdelete' => $filemetadata['isDeleted'], - 'md5' => $filemetadata['md5'], - 'hasthumb' => $thumb, - 'grade' => $filemetadata['star'] ? intval($filemetadata['star']) : 0, - 'type' => $type - ]; - //插入文件表数据 - if (C::t('pichome_resources')->insert($resourcesarr)) { - //插入目录关联表数据 - foreach ($filemetadata['folders'] as $fv) { - $fid = $fv . $this->appid; - if (!C::t('pichome_folder')->check_password_byfid($fid)) { - $frsetarr = ['appid' => $this->appid, 'rid' => $rid, 'fid' => $fid]; - C::t('pichome_folderresources')->insert($frsetarr); - } else { - continue; - } - } - //获取属性表数据 - $setarr = []; - //标签数据 - $tags = $filemetadata['tags']; - if (!empty($tags)) { - $tagids = $this->addtag($tags); - //$setarr['tag'] = implode(',', $tagids); - foreach ($tagids as $tid) { - $rtag = ['appid' => $this->appid, 'rid' => $rid, 'tid' => $tid]; - C::t('pichome_resourcestag')->insert($rtag); - } - $setarr['tag'] = implode(',',$tagids); - } - //颜色数据 - if (isset($filemetadata['palettes'])) { - $returndata = $this->getColor($filemetadata['palettes'], $resourcesarr['width'], $resourcesarr['height'], $rid); - $setarr['colors'] = $returndata['colors']; - $setarr['gray'] = $returndata['gray']; - $setarr['shape'] = $returndata['shape']; - } - //标注数据 - if (isset($filemetadata['comments'])) { - foreach ($filemetadata['comments'] as $commentval) { - $tcommentval['id'] = $commentval['id'] . $this->appid; - $tcommentval['appid'] = $this->appid; - $tcommentval['rid'] = $rid; - $tcommentval['x'] = number_format($commentval['x'], 2); - $t['y'] = number_format($commentval['y'], 2); - C::t('pichome_comments')->insert($tcommentval); - } - } - //时长 - if ($filemetadata['duration']) $setarr['duration'] = number_format($filemetadata['duration'], 2); - //链接数据 - $setarr['link'] = $filemetadata['url'] ? trim($filemetadata['url']) : ''; - //描述数据 - $setarr['desc'] = $filemetadata['annotation'] ? $filemetadata['annotation'] : ''; - $setarr['rid'] = $rid; - $setarr['appid'] = $this->appid; - $setarr['path'] = $path; - //插入数据 - C::t('pichome_resources_attr')->insert($setarr); - }else{ - runlog('eagleexport',$rid); + + foreach ($data as $v) { + $id = str_replace($this->appid, '', $v['rid']); + $filejson = $this->eagledir . '/' . $this->path . '/images/' . $id . '.info/metadata.json'; + if (!is_file($filejson)) { + $delrids[] = $v['rid']; } + } - - //判断图片纯色 - public function isgray($colors) - { - $i = 0; - if (count($colors) < 1) return 0; - foreach ($colors as $color) { - $color = new Color($color); - $rgb = $color->toRGB(); - if (abs($rgb[0] - $rgb[1]) < 10 && abs($rgb[2] - $rgb[1]) < 10) { - $i++; - } - } - if ($i == count($colors)) { - return 1; - } else { - return 0; - } + if (!empty($delrids)) { + //如果有需要删除的,删除后,则重新查询上一页数据 + C::t('pichome_resources')->delete_by_rid($delrids); + $percent = round((($this->lastid - 1) * $this->checklimit / $total) * 100); + C::t('pichome_vapp')->update($this->appid, array('lastid' => $this->lastid, 'percent' => $percent, 'state' => 2)); + } else { + $percent = round((($this->lastid - 1) * $this->checklimit / $total) * 100); + C::t('pichome_vapp')->update($this->appid, array('lastid' => $this->lastid + 1, 'percent' => $percent, 'state' => 2)); } - - //获取颜色数据 - public function getColor($colors, $width, $height, $rid) - { - $intcolorsarr = $returndata = $palattedataarr = []; - foreach ($colors as $c) { - $color = new \Color($c['color']); - //获取颜色整型值 - $intcolor = $color->toInt(); - $palattedataarr = ['rid' => $rid, 'color' => $intcolor, 'weight' => $c['ratio'], 'r' => $c['color'][0], 'g' => $c['color'][1], 'b' => $c['color'][2]]; - $intcolorsarr[] = $intcolor; - C::t('pichome_palette')->insert($palattedataarr); - } - //颜色整型值数据 - // $intcolorsarr= array_keys($palattedataarr); - $returndata['colors'] = implode(',', $intcolorsarr); - $returndata['gray'] = $this->isgray($intcolorsarr); - $returndata['shape'] = round(($width / $height) * 100); - return $returndata; + } + + public function exportfile($filemetadata) + { + $rid = $filemetadata['rid']; + if (!is_file($filemetadata['file'])) { + return; } - - //添加标签 - public function addtag($tags) - { - $tagids = []; - foreach ($tags as $v) { - if (preg_match('/^\s*$/', $v)) continue; - if ($tid = C::t('pichome_tag')->insert($v)) { - $tagids[] = $tid; + + $filemetadata['file'] = str_replace(BS, '/', $filemetadata['file']); + $attachment = str_replace(BS, '/', $filemetadata['file']); + $path = str_replace($this->eagledir . '/', '', $attachment); + unset($attachment); + $thumb = (is_file($filemetadata['thumbfile'])) ? 1 : 0; + //echo 'middle1:'.memory_get_usage()/1024 . '
'; + $type = getTypeByExt($filemetadata['ext']); + $resourcesarr = [ + 'rid' => $rid, + 'uid' => $this->uid, + 'username' => $this->username, + 'appid' => $this->appid, + 'width' => $filemetadata['width'] ? $filemetadata['width'] : 0, + 'height' => $filemetadata['height'] ? $filemetadata['height'] : 0, + 'name' => $filemetadata['filename'] . '.' . $filemetadata['ext'], + 'ext' => $filemetadata['ext'], + 'size' => $filemetadata['size'], + 'dateline' => $filemetadata['dateline'], + 'btime' => $filemetadata['btime'], + 'mtime' => $filemetadata['mtime'], + 'isdelete' => $filemetadata['isDeleted'], + 'hasthumb' => $thumb, + 'grade' => $filemetadata['star'] ? intval($filemetadata['star']) : 0, + 'type' => $type, + 'lastdate' => $filemetadata['lastdate'] + ]; + unset($type); + //插入文件表数据 + if (C::t('pichome_resources')->insert($resourcesarr)) { + //插入目录关联表数据 + foreach ($filemetadata['folders'] as $fv) { + $fid = $fv . $this->appid; + if (!C::t('pichome_folder')->check_password_byfid($fid)) { + $frsetarr = ['appid' => $this->appid, 'rid' => $rid, 'fid' => $fid]; + C::t('pichome_folderresources')->insert($frsetarr); + unset($frsetarr); } else { continue; } } - return $tagids; + //获取属性表数据 + $setarr = []; + //标签数据 + $tags = $filemetadata['tags']; + if (!empty($tags)) { + $tagids = $this->addtag($tags); + unset($tags); + foreach ($tagids as $tid) { + $rtag = ['appid' => $this->appid, 'rid' => $rid, 'tid' => $tid]; + C::t('pichome_resourcestag')->insert($rtag); + } + $setarr['tag'] = implode(',', $tagids); + unset($tagids); + } + //颜色数据 + if (isset($filemetadata['palettes'])) { + $returndata = $this->getColor($filemetadata['palettes'], $resourcesarr['width'], $resourcesarr['height'], $rid); + $setarr['colors'] = $returndata['colors']; + $setarr['gray'] = $returndata['gray']; + $setarr['shape'] = $returndata['shape']; + unset($returndata); + } + //标注数据 + if (isset($filemetadata['comments'])) { + foreach ($filemetadata['comments'] as $commentval) { + $tcommentval['id'] = $commentval['id'] . $this->appid; + $tcommentval['appid'] = $this->appid; + $tcommentval['rid'] = $rid; + $tcommentval['x'] = number_format($commentval['x'], 2); + $t['y'] = number_format($commentval['y'], 2); + C::t('pichome_comments')->insert($tcommentval); + unset($tcommentval); + } + } + //时长 + if ($filemetadata['duration']) $setarr['duration'] = number_format($filemetadata['duration'], 2); + //链接数据 + $setarr['link'] = $filemetadata['url'] ? trim($filemetadata['url']) : ''; + //描述数据 + $setarr['desc'] = $filemetadata['annotation'] ? $filemetadata['annotation'] : ''; + $setarr['rid'] = $rid; + $setarr['appid'] = $this->appid; + $setarr['path'] = $path; + //echo '属性插入前缓存:'.memory_get_usage()/1024 . '
'; + //插入数据 + C::t('pichome_resources_attr')->insert($setarr); + //echo '属性插入后缓存:'.memory_get_usage()/1024 . '
'; + } else { + runlog('eagleexport', $rid); } - } \ No newline at end of file + } + + //判断图片纯色 + public function isgray($colors) + { + $i = 0; + if (count($colors) < 1) return 0; + foreach ($colors as $color) { + $color = new Color($color); + $rgb = $color->toRGB(); + unset($color); + if (abs($rgb[0] - $rgb[1]) < 10 && abs($rgb[2] - $rgb[1]) < 10) { + $i++; + } + unset($rgb); + } + if ($i == count($colors)) { + return 1; + } else { + return 0; + } + } + + //获取颜色数据 + public function getColor($colors, $width, $height, $rid) + { + //echo '颜色处理前:'.memory_get_usage()/1024 . '
'; + $intcolorsarr = $returndata = []; + $i = 1; + foreach ($colors as $c) { + $color = new \Color($c['color']); + //获取颜色整型值 + $intcolor = $color->toInt(); + $palattedataarr = ['rid' => $rid, 'color' => $intcolor, 'weight' => $c['ratio'], 'r' => $c['color'][0], 'g' => $c['color'][1], 'b' => $c['color'][2]]; + $intcolorsarr[] = $intcolor; + //echo "颜色处理中前 $i :".memory_get_usage()/1024 . '
'; + C::t('pichome_palette')->insert($palattedataarr); + //echo "颜色处理中后 $i :".memory_get_usage()/1024 . '
'; + $i++; + } + unset($colors); + //颜色整型值数据 + // $intcolorsarr= array_keys($palattedataarr); + $returndata['colors'] = implode(',', $intcolorsarr); + $returndata['gray'] = $this->isgray($intcolorsarr); + $returndata['shape'] = round(($width / $height) * 100); + unset($intcolorsarr); + //echo '颜色处理后缓存:'.memory_get_usage()/1024 . '
'; + return $returndata; + } + + //添加标签 + public function addtag($tags) + { + $tagids = []; + foreach ($tags as $v) { + if (preg_match('/^\s*$/', $v)) continue; + if ($tid = C::t('pichome_tag')->insert($v)) { + $tagids[] = $tid; + } else { + continue; + } + } + unset($tags); + return $tagids; + } +} \ No newline at end of file diff --git a/dzz/pichome/css/mobile/common.css b/dzz/pichome/css/mobile/common.css new file mode 100644 index 0000000..ae0fd03 --- /dev/null +++ b/dzz/pichome/css/mobile/common.css @@ -0,0 +1,269 @@ +:root{ + --font-14:0.875rem; + --font-14:1rem; + --font-32:2rem; +} +*{ + padding: 0; + margin: 0; + box-sizing: border-box; +} +@media screen and (max-width: 768px) { + html{ + font-size: 16px; + } +} +@media screen and (min-width: 768px) { + html{ + font-size: 18px; + } +} +html,body,#dzzoffice{ + width: 100%; + height: 100%; + margin: 0; + padding: 0; + overflow: hidden; +} +input::-webkit-input-placeholder { /* WebKit, Blink, Edge */ + color : var(--tip-color); +} + +input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ + color : var(--tip-color); +} + +input::-moz-placeholder { /* Mozilla Firefox 19+ */ + color : var(--tip-color); +} + +input:-ms-input-placeholder { /* Internet Explorer 10-11 */ + color : var(--tip-color); +} + +input::-ms-input-placeholder { /* Microsoft Edge */ + color : var(--tip-color); +} +.van-nav-bar__content{ + /* 46px */ + height: 46px; +} +.van-popup.van-notify.van-notify--warning{ + background-color: #ff976a; + color: #fff; +} +.van-dialog{ + background: var(--bg-poper); + color: var(--header-active); +} +.van-dialog .van-dialog__message--has-title{ + color: var(--header-text); +} +.van-dialog .van-button{ + background: var(--bg-poper); +} +.van-dialog .van-dialog__cancel{ + color: var(--header-text); +} +.van-dialog .van-dialog__confirm{ + color: var(--header-active); +} +.van-dialog .van-hairline--top::after{ + border-top: 1px solid var(--border-color-base); +} +.van-dialog .van-button.van-hairline--left::after{ + border-left: 1px solid var(--border-color-base); +} +.custom-load{ + height: 51px; + height: 55px; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + margin: auto; + z-index: 20; +} +/* 12px */ +.van-checkbox__icon .van-icon, +.van-radio__icon .van-icon{ + font-size: 0.75rem; +} +/* 14px */ +.van-tree-select, +.van-tab, +.van-sidebar-item, +.van-dropdown-menu__title, +.van-cell, +.van-nav-bar__left, +.van-nav-bar__right{ + font-size: var(--font-14); +} +/* 16px */ +.van-field__left-icon .van-icon, +.van-field__right-icon .van-icon{ + font-size: var(--font-16); +} +.van-checkbox__icon .van-icon, +.van-radio__icon .van-icon{ + border-color: var(--radio-line); +} + +.van-tabs__line, +.van-sidebar-item--select::before, +.van-checkbox__icon--checked .van-icon, +.van-radio__icon--checked .van-icon{ + background-color: var(--color-primary); + border-color:var(--color-primary); + font-size: 0.75rem; +} +.van-button--info{ + background-color: var(--color-primary); + border-color:var(--color-primary); +} +.hide{ + display: none !important; +} +.load-more{ + line-height: 35px; + width: 100%; + font-size: 15px; + text-align: center; + color: var(--content-text); +} +.load-more .icon{ + font-size: 18px; + vertical-align: bottom; +} +ul{ + list-style-type: none; +} +.van-field,input,textarea{ + background-color: var(--bg-input) !important; + color: var(--header-text) !important; + border: 1px solid var(--border-color-base); +} +.van-popup,.van-cell,.van-calendar{ + background-color: var(--bg-poper); + color: var(--header-text); +} +.screen-radio-group .van-radio { + margin-bottom: 16px; +} + +.van-dropdown-item__option--active,.van-dropdown-item__option--active .van-dropdown-item__icon{ + color: var(--header-active); +} +.van-dropdown-menu__bar{ + background-color: transparent; + box-shadow: none; +} +.van-dropdown-menu__title,.van-field__label{ + color: var(--header-text); +} +.van-dropdown-menu__title::after{ + border-color: transparent transparent var(--header-text) var(--header-text); +} +.van-cell::after{ + border-color: var(--border-color-base); +} + +.van-search{ + background-color: transparent; +} +.van-search__content{ + background-color: var(--bg-input); + border: 1px solid var(--border-color-base); + padding-right: 12px; +} +.van-field__control, +.van-radio__label{ + color: var(--header-text); +} +.van-tree-select__nav{ + border-right: 1px solid var(--border-color-base); +} +.van-tree-select__nav,.van-sidebar-item,.van-sidebar-item:active{ + background-color: transparent; + color: var(--header-text); +} +.van-sidebar-item--select{ + color: var(--header-active); +} +.van-sidebar-item--select:active, +.van-tree-select__content .van-tree-select__item{ + background-color: var(--bg-poperHover); + +} + + +.van-popover__content{ + max-height: 500px; + overflow: auto; +} + +.van-popover--light .van-popover__arrow { + color: var(--bg-poper); +} +.van-popover--light .van-popover__content{ + background-color: var(--bg-poper); + color: var(--header-text); +} +.van-nav-bar { + background-color: transparent; +} +[class*=van-hairline]::after { + border:0; +} +.xuanzhun { + display: inline-block; + -webkit-transition-property: -webkit-transform; + -webkit-transition-duration: 1s; + -moz-transition-property: -moz-transform; + -moz-transition-duration: 1s; + -webkit-animation: xuanzhun 3s linear infinite; + -moz-animation: xuanzhun 3s linear infinite; + -o-animation: xuanzhun 3s linear infinite; + animation: xuanzhun 3s linear infinite; +} + +@-webkit-keyframes xuanzhun { + from { + -webkit-transform: rotate(0deg) + } + + to { + -webkit-transform: rotate(360deg) + } +} + +@-moz-keyframes xuanzhun { + from { + -moz-transform: rotate(0deg) + } + + to { + -moz-transform: rotate(359deg) + } +} + +@-o-keyframes xuanzhun { + from { + -o-transform: rotate(0deg) + } + + to { + -o-transform: rotate(359deg) + } +} + +@keyframes xuanzhun { + from { + transform: rotate(0deg) + } + + to { + transform: rotate(359deg) + } +} \ No newline at end of file diff --git a/dzz/pichome/css/mobile/details.css b/dzz/pichome/css/mobile/details.css new file mode 100644 index 0000000..395b0aa --- /dev/null +++ b/dzz/pichome/css/mobile/details.css @@ -0,0 +1,288 @@ +[v-cloak] { + display: none; +} +#dzzoffice { + position: relative; + background: var(--bg-content); +} +.detail-popup { + position: relative; + height: 100%; + padding-top: 46px; + padding-bottom: 60px; + overflow: hidden; + width: 100%; + background: var(--bg-content); + color: var(--content-textHover); +} +.detail-popup.full{ + padding: 0; + background: #000000; +} +.detail-popup.NotFooter{ + padding-bottom: 0; +} +.header-top { + position: fixed; + top: 0; + left: 0; + width: 100%; + transition: all .3s; + transition: all .3s; + -moz-transition: all .3s; + -webkit-transition: all .3s; + -o-transition: all .3s; + background: var(--bg-content); +} +.detail-popup.full .header-top{ + display: none; +} +.van-nav-bar .van-nav-bar__title, +.van-nav-bar .van-icon { + color: var(--content-textHover); +} + +.detail-popup .detail-popup-translate{ + position: relative; + height: 100%; +} +.detail-popup .detail-popup-content { + position: absolute; + width: 100%; + height: 100%; + color: var(--content-textHover); +} +.detail-popup .detail-popup-content.opacity { + opacity: 0; +} +.detail-popup .detail-popup-content.prev { + right: 100%; + margin-right: 10px; +} +.detail-popup .detail-popup-content.next { + left: 100%; + margin-left: 10px; +} +.detail-popup .detail-popup-content .detail-popup-img { + height: 100%; + position: relative; +} +.detail-popup .detail-popup-content .video-box{ + width: 100%; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + margin: auto; + +} +.detail-popup .detail-popup-content .img-box { + height: 100%; + width: 100%; + overflow: hidden; + position: relative; +} +.detail-popup .detail-popup-content .image-viewer__img { + position: absolute; + z-index: 10; + transform-origin: 0 0; + margin: auto; + left: 0; + right: 0; + bottom: 0; + top: 0; + max-width: 100%; + max-height: 100%; +} + +.detail-popup .detail-popup-content .image-viewer__img { + -webkit-user-drag: none; + -moz-user-drag: none; + -ms-user-drag: none; + user-drag: none; +} +.pinch-zoom-container{ + width: 100% !important; + height: 100% !important; +} +.detail-popup .detail-popup-content .image-viewer__img.opacity{ + opacity: 0; +} +.detail-popup .detail-popup-content .image-viewer__img.thumbnail{ + z-index: 5; +} +.detail-popup .footer-tabbar{ + position: fixed; + bottom: 0; + left: 0; + width: 100%; + height: 60px; + line-height: 60px; + text-align: center; + font-size: 1.75rem; + /* border-top: 1px solid var(--border-color-base); */ + display: -webkit-box; + display: -webkit-flex; + display: flex; + z-index: 10000; + background: var(--bg-content); +} +.detail-popup.full .footer-tabbar{ + display: none; +} +.detail-popup .footer-tabbar .footer-tabbar-item { + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; +} + + + + + +.detail-popup-message{ + width: 100%; + height: 100%; + position: absolute; + background: transparent; + color: var(--content-textHover); + padding-bottom: 60px; +} +.detail-popup-message.noPadding{ + padding-bottom: 0; +} + +.detail-popup-message .DetailPopup-content{ + padding: 0 1rem; + height: 100%; + overflow: auto; +} +.detail-popup-message .name{ + font-weight: 700; + padding: 16px 0; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.detail-popup-message .block{ + margin-bottom: 1rem; +} +.detail-popup-message .block .title{ + font-weight: 700; + margin-bottom: 0.625rem; +} +.detail-popup-message .block .block-item.colors{ + display: -webkit-box; + display: -webkit-flex; + display: flex; + margin-left: -0.1875rem; +} +.detail-popup-message .block .block-item.colors .colors{ + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + padding-left: 0.1875rem; +} +.detail-popup-message .block .block-item.colors .colors>div{ + position: relative; + border-radius: 0.5rem; + border: 1px solid var(--border-color-base); +} +@media screen and (max-width: 768px) { + .detail-popup-message .name{ + font-size: 1.125rem; + } + .detail-popup-message .block .title{ + font-size: 1rem; + } + .detail-popup-message .block .block-item.colors .colors>div{ + height: 1.5625rem; + } + .detail-popup-message .block .block-item.tag .tag{ + font-size: 0.875rem; + padding:0 0.5rem; + height: 1.875rem; + line-height: 1.875rem; + } + .detail-popup-message .block .block-item.link{ + font-size: 0.875rem; + height: 1.25rem; + line-height: 1.25rem; + } + .detail-popup-message .block .block-item.link i{ + font-size: 1.125rem; + } + .detail-popup-message .block .block-item .basic{ + font-size: 0.875rem; + } + +} +@media screen and (min-width: 768px) { + .detail-popup-message .name{ + font-size:1.25rem; + } + .detail-popup-message .block .title{ + font-size: 1.125rem; + } + .detail-popup-message .block .block-item.colors .colors>div{ + height: 1.875rem; + } + .detail-popup-message .block .block-item.tag .tag{ + font-size: 1rem; + padding:0 0.625rem; + height: 2.5rem; + line-height:2.5rem; + } + .detail-popup-message .block .block-item.link{ + font-size: 1rem; + height: 1.875rem; + line-height:1.875rem; + } + .detail-popup-message .block .block-item.link i{ + font-size: 1.75rem; + } + .detail-popup-message .block .block-item .basic{ + font-size: 1rem; + } +} +.detail-popup-message .block .block-item.tag{ + overflow: hidden; + margin-left: -0.625rem; +} +.detail-popup-message .block .block-item.tag .tag{ + float: left; + min-width: 2.8125rem; + text-align: center; + border: 1px solid var(--border-color-base); + border-radius: 0.5rem; + margin-left: 0.625rem; + color: var(--content-text); + margin-bottom: 0.3125rem; +} +.detail-popup-message .block .block-item.link{ + color: var(--content-text); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + position: relative; + padding-right: 1.5625rem; +} +.detail-popup-message .block .block-item.link i{ + position: absolute; + right: 0; + top: 0; +} +.detail-popup-message .block .block-item .basic{ + color: var(--content-text); + margin-bottom: 0.625rem; +} +.detail-popup-message .block .block-item .basic .record{ + text-align: right; +} +.detail-popup-message .block .block-item .basic .record .star{ + color: var(--stars); +} +.detail-popup-message .block .block-item .basic .record .star.active{ + color: var(--starsActive); +} \ No newline at end of file diff --git a/dzz/pichome/css/mobile/index.css b/dzz/pichome/css/mobile/index.css new file mode 100644 index 0000000..f6a8648 --- /dev/null +++ b/dzz/pichome/css/mobile/index.css @@ -0,0 +1,938 @@ +[v-cloak] { + display: none; +} +#dzzoffice{ + position: relative; + background: var(--bg-content); +} +.van-tree-select__content{ + background-color: transparent; +} +.custom-image.van-empty{ + position: absolute; + left: 0; + right: 0; + bottom: 0; + top: 0; + margin: auto; +} +.van-popup{ + overflow: unset; +} +.van-popup .vam-popup-title{ + height: 40px; + font-weight: 700; + position: absolute; + top: -40px; + left: 0; + width: 100%; + padding: 0 12px; + font-size: 18px; + color: #FFFFFF; +} +.conter-toast{ + z-index: 5001 !important; +} +.notScreen{ + width: 100%; + height: 100%; + position: relative; +} +.notScreen>div{ + height: 80px; + text-align: center; + margin: auto; + position: absolute; + top: 0; + bottom: 0; + right: 0; + left: 0; + font-size: var(--font-14); + color: var(--header-text); +} +.notScreen>div img{ + width: 3.125rem; + height: 3.125rem; +} +.screen-textarea{ + border-radius: 8px; +} +#dzz_avatar_img{ + width: 2.1875rem; + height: 2.1875rem; + display: inline-block; +} +#dzz_avatar_img .Topcarousel{ + width: 2.1875rem; + height: 2.1875rem; + display: inline-block; + line-height: 2.1875rem; + border-radius: 50%; + color: #FFFFFF; +} +.library-box{ + color: var(--header-text); +} +.van-nav-bar .library-box .van-icon{ + color: var(--header-text); +} +.header-top{ + position: fixed; + top: 0; + left: 0; + width: 100%; + transition: all .3s; + transition: all .3s; + -moz-transition: all .3s; + -webkit-transition: all .3s; + -o-transition: all .3s; + background: var(--bg-content); +} +.header-top.headerhide{ + top: -46px; + opacity: 0; +} +.header-top .van-dropdown-menu__bar{ + height: 46px; +} +.footer-popup{ + padding-bottom: 70px; +} +.footer-popup .btn-bottom{ + padding: 10px; + height: 70px; + position: absolute; + width: 100%; + bottom: 0; + left: 0; +} +.footer-popup .btn-bottom .van-button{ + width: auto; + padding: 15px 20px; +} +.footer-popup .popup-search-input .van-field__right-icon{ + padding-right: 0; +} +.footer-popup .popup-search-input .van-field__right-icon .van-icon{ + font-size: 1.25rem; + color: var(--header-active); +} +.seasrch-popup{ + padding-top: 56px; +} +.footer-popup .van-search-box{ + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.footer-popup .van-search-box .van-field{ + border: 0; + font-size: 0.875rem; +} + +.seasrch-popup .search-val-box{ + padding: 0 12px; + height: 100%; + overflow: auto; + position: relative; +} +.seasrch-popup .search-val-box .search-host{ + overflow: hidden; + position: relative; + margin-left: -12px; +} +.seasrch-popup .search-val-box .search-host-list{ + height: 5rem; + border-radius: 8px; + text-align: center; + background-position: 50%; + background-repeat: no-repeat; + background-size: cover; + margin-bottom: 0.625rem; + position: relative; + margin-left: 12px; + float: left; +} +@media screen and (max-width: 1024px) { + .seasrch-popup .search-val-box .search-host-list{ + width: 46.6%; + } +} +@media screen and (min-width: 1024px) { + .seasrch-popup .search-val-box .search-host-list{ + width: 13.75rem; + } +} +.seasrch-popup .search-val-box .search-host-list .bg{ + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgb(0, 0, 0, .3); + border-radius: 8px; +} +.seasrch-popup .search-val-box .search-host-list .text{ + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + padding: 8px; + font-size: 16px; + color: #FFFFFF; + font-weight: 700; + display: -webkit-box; + display: -webkit-flex; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + text-align: center; + z-index: 1; +} +.seasrch-popup .search-val-box .highlight{ + color: var(--header-active); +} +.sort-popup .van-popup__close-icon--top-right, +.screen-popup .van-popup__close-icon--top-right { + top: 10px; + right: 10px; +} +/* .sort-popup .van-tree-select{ + height: calc(100% - 41px) !important; + height: -moz-calc(100% - 41px) !important; + height: -webkit-calc(100% - 41px) !important; +} */ +.screen-popup .van-tree-select{ +} +.screen-popup .van-tree-select .van-sidebar{ + width: 6rem; + -webkit-box-flex: initial; + -webkit-flex: initial; + flex: initial; +} +.screen-popup .van-tree-select__content{ + height: 100%; + overflow: hidden; + position: relative; + background-color: transparent; +} +.van-popup .van-tree-select__content .screen-item-box{ + height: 100%; + width: 100%; + position: relative; + overflow: hidden; + padding-top: 56px; +} +.van-popup .van-tree-select__content .screen-item .screen-item-option-box{ + padding: 0px 8px; +} +.van-popup .van-tree-select__content .screen-item .screen-item-option-box .screen-item-option{ + padding: 10px 16px; + margin-bottom: 8px; + border-radius: 8px; +} +.van-popup .van-tree-select__content .screen-item .screen-item-option-box .screen-item-option.active{ + background: var(--bg-poperHover); +} +.screen-popup .van-tree-select__content .screen-item{ + height: 100%; + overflow: auto; + padding: 0px 10px; +} +.screen-popup .van-tree-select__content .screen-item .swip-row{ + border: 1px solid var(--border-color-base); + border-radius: 18px; + overflow: hidden; +} +.screen-popup .van-tree-select__content .screen-item .swip-row .swip{ + height: 30px; + line-height: 30px; + text-align: center; + background-color: var(--bg-input); + color: var(--header-text); +} +.screen-popup .van-tree-select__content .screen-item .swip-row .swip.active{ + background: var(--color-primary); + color: #FFFFFF; +} +.van-popup .van-tree-select__content .screen-item .van-cell-group .van-cell.van-cell-tag{ + margin-bottom: 6px; + border-radius: 999px; +} +.van-popup .van-tree-select__content .screen-item .van-cell-group .van-cell.van-cell-tag.active{ + background-color: var(--bg-poperHover); +} +.sort-popup .van-tree-select__content .screen-item .van-cell-group, +.screen-popup .van-tree-select__content .screen-item .van-cell-group{ + background-color: transparent; +} +.sort-popup .van-tree-select__content .screen-item .van-cell-group .van-cell, +.screen-popup .van-tree-select__content .screen-item .van-cell-group .van-cell{ + background-color: transparent; +} + +.van-calendar__day--end, .van-calendar__day--multiple-middle, .van-calendar__day--multiple-selected, .van-calendar__day--start, .van-calendar__day--start-end{ + background-color: var(--color-primary); +} +.screen-popup .van-hairline--top-bottom::after, .screen-popup .van-hairline-unset--top-bottom::after { + border-width: 0; +} +.sort-popup .van-hairline--top-bottom::after, .sort-popup .van-hairline-unset--top-bottom::after { + border-width: 0; +} +.screen-popup .van-tree-select__content .screen-item .color-box .quick{ + overflow: hidden; + /* margin-left: -10px; */ +} +.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list-box{ + width: 20%; + margin-bottom: 0.1875rem; + padding: 0 0.1875rem; + display: inline-block; + +} +.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list{ +/* float: left; + height: calc(20% / 2); + width: 20%; + height: 2.5rem; + width: 2.5rem; + z-index: 1; + border-radius: 50%; + margin-bottom: 0.625rem; + margin-left: 0.625rem; + border: 1px solid transparent; + position: relative; */ + height: 0; + padding: 25% 0; + position: relative; + border-radius: 8px; +} +.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list .van-icon{ + position: absolute; + color: #FFFFFF; + margin: auto; + top: 0; + left: 0; + bottom: 0; + right: 0; +} +@media screen and (max-width: 768px) { + .screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list .van-icon{ + font-size: 18px; + width: 18px; + height: 18px; + } +} +@media screen and (min-width: 768px) { + .screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list .van-icon{ + font-size: 30px; + width: 30px; + height: 30px; + } +} +.screen-popup .van-tree-select__content .screen-item .color-box .color-input{ + position: relative; + margin-bottom: 0.9375rem; +} +.screen-popup .van-tree-select__content .screen-item .color-box .color-input .van-field{ + /* padding: 0; */ + /* height: 35px; */ + padding-left: 35px; + /* height: 35px; */ + border-radius: 8px; +} +.screen-popup .van-tree-select__content .screen-item .color-box .color-input .color-show{ + position: absolute; + width: 18px; + height: 18px; + z-index: 1; + border-radius: 6px; + margin-top: auto; + margin-bottom: auto; + top: 0; + bottom: 0; + left: 8px; + border: 1px solid transparent; +} +.screen-popup .van-tree-select__content .screen-item .color-box .color-input .color-show.border{ + border: 1px solid var(--border-color-base); +} +.screen-popup .van-tree-select__content .screen-item .color-box .color-input .van-field .van-field__button{ + padding-left: 8px; + line-height: 35px; + padding-right: 8px; + border-left: 1px solid var(--border-color-base); +} +.screen-popup .van-tree-select__content .screen-item .color-box .color-input .van-field .van-field__button img{ + vertical-align: sub; + width: 16px; + height: 16px; +} +.screen-popup .van-tree-select__content .screen-item .color-box .color-slider{ + display: -webkit-box; + display: -webkit-flex; + display: flex; + align-items: center; + padding: 15px 0; +} +.screen-popup .van-calendar__popup .van-button--danger{ + background-color: var(--color-primary); + border-color: var(--color-primary); +} +.screen-popup .van-calendar__popup .van-calendar__month-mark{ + opacity: 0.5; +} + +.screen-popup .van-tree-select__content .van-tabs{ + height: 100%; +} +.screen-popup .van-tree-select__content .van-tabs--line .van-tabs__wrap{ + /* border-bottom: 1px solid var(--slider-line); */ + padding-right: 8px; + padding-left: 8px; +} +.screen-popup .van-tree-select__content .van-tabs .van-tabs__content{ + height: calc(100% - 44px); + height: -moz-calc(100% - 44px); + height: -webkit-calc(100% - 44px); +} +.screen-popup .van-tree-select__content .van-tabs .van-tabs__content .van-tab__pane{ + height: 100%; + padding-top: 10px; + overflow: hidden; +} + +.screen-popup .van-tree-select__content .van-tabs__nav{ + background-color: transparent; +} +.screen-popup .van-tree-select__content .van-tabs__nav .van-tab{ + color: var(--header-text); +} +.screen-popup .van-tree-select__content .van-tabs__nav .van-tab.van-tab--active{ + color: var(--header-active); +} +.screen-popup .van-tree-select__content .van-cell .num{ + margin-right: 6px; +} +.sort-popup .van-tree-select__content .van-cell::after, +.screen-popup .van-tree-select__content .van-cell::after{ + display: none; +} + +.screen-popup .screen-classify-collapse .van-cell{ + background-color: transparent; + margin-bottom: 6px; +} +.screen-popup .screen-classify-collapse .van-collapse-item.active>.van-cell{ + background-color: var(--bg-poperHover); + border-radius: 999px; +} +.screen-popup .screen-classify-collapse .van-hairline--top-bottom::after, +.screen-popup .screen-classify-collapse .van-collapse-item--border::after{ + display: none; +} +.screen-popup .screen-classify-collapse .van-collapse-item__content{ + background-color: transparent; + padding: 0; + padding-left: 1rem; +} +.screen-popup .screen-classify-collapse .van-cell__value{ + flex: none; +} +.van-calendar__day--middle{ + color: var(--header-active); +} +.van-calendar__day--start{ + border-radius: 16px 0 0 16px; +} +.van-calendar__day--end{ + border-radius: 0 16px 16px 0; +} +.screen-cell-input{ + margin-bottom: 16px; + border-radius: 8px; +} +.screen-cell-input::after{ + display: none; +} +.screen-cell-input .van-field{ + border-radius: 8px; +} +.screen-cell-input .van-field{ + border-radius: 8px; +} +.library-actionsheet .mint-actionsheet-list{ + max-height: 400px; + overflow: auto; +} +.pic-logo{ + height: 40px; + padding: 5px 0; +} +.pic-logo .h-left{ + height: 30px; + display: -webkit-box; + display: -webkit-flex; + display: flex; + align-items: center; + color: var(--header-text); + text-decoration: none; +} +.pic-logo .h-left img{ + max-width: 100%; + max-height: 100%; + margin-right: 10px; +} +.pic-container{ + height: 100%; + width: 100%; + overflow: hidden; + +} +.pic-container .pic-container-scroll{ + height: 100%; + width: 100%; + overflow: auto; + position: relative; + padding-top: 46px; +} +.pic-container .img-container{ + min-height: 100% ; + position: relative; + padding: 0 4px; +} +.pic-toolbar{ + position: fixed; + width: 100%; + left: 0; + padding: 0 8%; + transition: all .3s; + transition:all .3s; + -moz-transition:all .3s; /* Firefox 4 */ + -webkit-transition:all .3s; /* Safari and Chrome */ + -o-transition:all .3s; /* Opera */ +} +.pic-toolbar.footershow{ + bottom: 3%; + opacity: 1; +} +.pic-toolbar.footerhide{ + bottom: -2.9375rem; + opacity: 0; +} +.pic-toolbar .tabbar{ + display: -webkit-box; + display: -webkit-flex; + display: flex; + border-radius: 39px; + background: var(--bg-poper); + padding: 0.375rem 0; + color: var(--header-text); + /* box-shadow: 0px 0px 5px 1px var(--bg-poperHover); */ +} +.pic-toolbar .tab-item{ + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + text-align: center; + font-size: 14px; +} +.pic-toolbar .tab-item .icon{ + font-size: var(--font-32); +} +.pic-toolbar .tab-item img{ + border-radius: 50%; + width: 2.1875rem; + height: 2.1875rem; + vertical-align: bottom; +} + + +#imgContainer .imgitem .imgbox .bottom-img-message{ + text-align: center; + color: var(--content-text); + overflow: hidden; + max-height: 65px; +} +#imgContainer .imgitem .imgbox .bottom-img-message .name { + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + font-size: 0.875rem; + margin-top: 10px; + width: 100%; + max-height: 35px; +} +#imgContainer .imgitem .imgbox .bottom-img-message .other { + font-size: 0.75rem; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + height: 21px; + padding-top: 5px; + color: var(--content-textMessage); +} +#imgContainer .imgitem .imgbox .bottom-img-message .other .score{ + color: var(--stars); +} +#imgContainer .imgitem .imgbox .bottom-img-message .other .score.active{ + color: var(--starsActive); +} +#imgContainer .imgitem .imgbox .annotation{ + position: absolute; + right: 5px; + top: 5px; + font-size: 14px; + width: 22px; + height: 22px; + border: 2px solid #FFFFFF; + border-radius: 50%; + color: #FFFFFF; + text-align: center; + line-height: 20px; + background: var(--color-primary); +} +#imgContainer{ + position: relative; + margin: 0 auto; +} +#imgContainer .imgitem{ + position: absolute; + /* transition:all .2s; */ +} +#imgContainer .imgitem .imgbox { + padding-left: 4px; + padding-right: 4px; +} +#imgContainer .imgitem .imgbox .imgbox-border { + position: relative; + overflow: hidden; + cursor: zoom-in; + min-height: 120px; + height: 100%; +} +#imgContainer .imgitem .imgbox .imgbox-border.radius{ + border-radius: 18px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black { + width: 100%; + height: 100%; + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + justify-content: center; + align-items: center; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black .bck{ + width: 100%; + height: 100%; + display: none; + background: var(--bg-poper); + top: 0; + left: 0; + position: absolute; + opacity: 0.7; +} +#imgContainer .imgitem .imgbox .imgbox-border .img { + max-width: 100%; + max-height: 100%; + width: auto; + height: auto; + border-radius: 18px; +} +#imgContainer .imgitem .imgbox .imgbox-border .img.opacity{ + opacity: 0; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box{ + display: none; + position: absolute; + z-index: 2; + width: 45px; + height: 45px; + border-radius: 50%; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box .circular-item{ + width: 45px; + height: 45px; + border-radius: 50%; + color: #333; + z-index: 100; + font-size: 21px; + text-align: center; + line-height: 45px; + background: #ffffff; + position: absolute; + transition: top .3s ease-in-out,left .3s ease-in-out; + /* transition: all .3s ease-in-out; */ + top: -22.5px; + left: -22.5px; + transform-origin: 0px; + /* transition-delay: 0.02s; */ +} + + +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed{ + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 100; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .bck{ + display: block; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .img{ + position: absolute; + z-index: 2; + max-width: inherit; + max-height: inherit; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box{ + display: block; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box .round{ + position: absolute; + width: 45px; + height: 45px; + border-radius: 50%; + background: transparent; + left: 0px; + top: 0px; + border: 3px solid var(--bg-poper); +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box .circular-item-box{ + position: absolute; + left: -67.5px; + top: -67.5px; + border: 90px solid transparent; +} + + +#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top .circular-item.first{ + top: -22.5px; + left: -22.5px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top .circular-item.two{ + top: 0px; + left: -80px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top .circular-item.three{ + top: -22.5px; + left: -138.5px; +} + + +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box .circular-item-box .icon{ + display: block; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.first{ + transform: rotate(0deg); + top: -80px; + left: -80px; + transform-origin: 80px 80px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.two{ + transform: rotate(45deg); + top: -80px; + left: -80px; + transform-origin: 80px 80px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.two .icon{ + transform: rotate(-45deg); +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.three{ + transform: rotate(90deg); + top: -80px; + left: -80px; + transform-origin: 80px 80px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.three .icon{ + transform: rotate(-90deg); +} + + +#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.right .circular-item.first{ + top: -80.5px; + left: 1px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.right .circular-item.two{ + top: -22.5px; + left: -22.5px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.right .circular-item.three{ + top: 0px; + left: -80px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.first{ + transform: rotate(-45deg); + top: -80px; + left: -80px; + transform-origin: 80px 80px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.first .icon{ + transform: rotate(45deg); +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.two{ + transform: rotate(0deg); + top: -80px; + left: -80px; + transform-origin: 80px 80px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.two .icon{ + transform: rotate(0deg); +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.three{ + transform: rotate(45deg); + top: -80px; + left: -80px; + transform-origin: 80px 80px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.three .icon{ + transform: rotate(-45deg); +} + + + + +#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.left .circular-item.first{ + top: 0px; + left: -80px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.left .circular-item.two{ + top: -22.5px; + left: -136.5px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.left .circular-item.three{ + left: -160px; + top: -80px; +} + +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.first{ + transform: rotate(45deg); + top: -80px; + left: -80px; + transform-origin: 80px 80px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.first .icon{ + transform: rotate(-45deg); +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.two{ + transform: rotate(90deg); + top: -80px; + left: -80px; + transform-origin: 80px 80px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.two .icon{ + transform: rotate(-90deg); +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.three{ + transform: rotate(135deg); + top: -80px; + left: -80px; + transform-origin: 80px 80px; +} +#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.three .icon{ + transform: rotate(-135deg); +} + +@media screen and (min-width: 768px) { + .#imgContainer .imgitem { + width: 33.3333%; + } +} + +@media screen and (min-width: 992px) { + .#imgContainer .imgitem { + width: 25%; + } +} + +@media screen and (min-width: 1024px) { + .#imgContainer .imgitem { + width: 20%; + } +} +.van-nav-bar .van-icon{ + color: var(--content-textHover); +} +.van-nav-bar .van-nav-bar__title{ + color: var(--content-textHover); +} + + + + + + + + +.about-popup, +.my-popup{ + height: 100%; + width: 100%; + background: var(--bg-content); + color: var(--content-textHover); + overflow: hidden; + padding-top: 46px; +} +.about-popup .van-nav-bar, +.my-popup .van-nav-bar{ + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.about-popup .scroll-box, +.my-popup .scroll-box{ + width: 100%; + height: 100%; + overflow: auto; + padding-top: 0.9375rem; +} +.my-popup .scroll-box .van-cell-group{ + background: transparent; +} +.my-popup .scroll-box .van-cell { + background: transparent; +} +.my-popup .scroll-box .van-cell::after{ + display: none; +} +.my-popup .scroll-box .van-cell .van-cell__right-icon{ + color: var(--header-text); +} + +.about-popup .aboutlogo{ + text-align: center; + padding-top: 3.125rem; + padding-bottom: 1.875rem; +} +.about-popup .aboutmessage{ + padding: 0 2.1875rem; +} +.about-popup .aboutmessage .aboutlist{ + margin-bottom: 1.25rem; + overflow: hidden; + font-size: 1rem; +} +.about-popup .aboutmessage .aboutlist .title{ + float: left; +} +.about-popup .aboutmessage .aboutlist .address{ + color: var(--color-primary); + font-size: 1rem; + vertical-align: sub; +} +@media screen and (min-width: 768px) { + .about-popup .aboutmessage{ + padding: 0 6.25rem; + } +} \ No newline at end of file diff --git a/dzz/pichome/css/mobile/personal.css b/dzz/pichome/css/mobile/personal.css new file mode 100644 index 0000000..66f20c9 --- /dev/null +++ b/dzz/pichome/css/mobile/personal.css @@ -0,0 +1,133 @@ +body{ + background: var(--bg-content); +} +#dzzoffice{ + padding-top: 46px; + padding-bottom: 75px; +} +.van-nav-bar{ + position: fixed; + top: 0; + left: 0; + width: 100%; +} +.van-nav-bar .van-nav-bar__title, +.van-nav-bar .van-icon{ + color: var(--content-textHover); +} +.scroll-box{ + height: 100%; + overflow: auto; + padding: 0.625rem 1.875rem; +} +.van-form .van-uploader{ + padding-top: 0.625rem; + overflow: hidden; +} +.van-form .van-image{ + border-radius: 0.5rem; + border: 1px solid var(--border-color-base); + overflow: hidden; +} +.van-form .van-image .not-img{ + font-size: 1.6875rem; + width: 1.6875rem; + height: 1.6875rem; + display: inline-block; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + margin: auto; + color: var(--header-text); +} +.van-form .van-image .van-image__error{ + display: none; +} +.van-form .van-field{ + background-color: transparent !important; + border: 0; + display: block; + margin-bottom: 0.625rem; +} +.van-form .van-field.van-cell::after{ + display: none; +} +.van-form .van-field .van-field__label{ + width: 100%; +} +.van-form .van-field .van-field__label .tip{ + font-size: 0.75rem; + margin-left: 0.625rem; + color: var(--tip-color); +} +.van-form .van-field .van-field__value{ + margin-top: 0.625rem; +} +.van-form .van-field .van-field__value .van-field__control{ + padding: 0.625rem; + border: 1px solid var(--border-color-base); + border-radius: 0.5rem; +} +.van-form .van-field .van-field__value .van-field__error-message{ + position: absolute; + bottom: -24px; + left: 0; + width: 100%; +} +.van-form .thems{ + margin-top: 0.625rem; + overflow: hidden; +} +.van-form .thems .thems-item{ + width: 14.285%; + float: left; + padding: 0.1875rem; +} +.van-form .thems .thems-item .bg{ + height: 0; + padding: 50% 0; + position: relative; + border-radius: 0.5rem; + border: 1px solid var(--border-color-base); +} +.van-form .thems .thems-item .bg.active{ + border-color: var(--color-primary); +} +.van-form .thems .thems-item .bg .van-icon{ + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0px; + font-size: 1rem; + margin: auto; + width: 1rem; + height: 1rem; + display: none; +} +.van-form .thems .thems-item .bg.active .van-icon{ + display: block; +} +@media screen and (min-width: 768px) { + .van-form .thems .thems-item .bg .van-icon{ + font-size: 2rem; + width: 2rem; + height: 2rem; + } +} +.footer{ + position: fixed; + bottom: 0; + left: 0; + width: 100%; + padding: 10px 0; + background: var(--bg-content); + color: #FFFFFF; + text-align: center; +} +.footer .van-button{ + padding: 15px 20px; + width: auto; +} \ No newline at end of file diff --git a/dzz/pichome/css/mobile/share.css b/dzz/pichome/css/mobile/share.css new file mode 100644 index 0000000..bbfdae1 --- /dev/null +++ b/dzz/pichome/css/mobile/share.css @@ -0,0 +1,261 @@ +.detail-popup-box{ + position: relative; + height: 100%; + padding-top: 46px; + padding-bottom: 60px; + overflow: hidden; + width: 100%; + background: var(--bg-content); + color: var(--content-textHover); +} +.detail-popup-box.NotFooter{ + padding-bottom: 0; +} +.detail-popup-box .van-nav-bar{ + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.detail-popup-box .van-nav-bar .van-icon{ + color: var(--content-textHover); +} +.pic-logo{ + height: 40px; + padding: 5px 0; +} +.pic-logo .h-left{ + height: 30px; + display: -webkit-box; + display: -webkit-flex; + display: flex; + align-items: center; + color: var(--header-text); + text-decoration: none; +} +.pic-logo .h-left img{ + max-width: 100%; + max-height: 100%; + margin-right: 10px; +} +.detail-popup-box .footer-tabbar{ + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height:60px; + line-height: 60px; + text-align: center; + font-size: 1.75rem; + border-top: 1px solid var(--border-color-base); + display: -webkit-box; + display: -webkit-flex; + display: flex; + z-index: 10000; + background: var(--bg-content); +} +.detail-popup-box .footer-tabbar .footer-tabbar-item{ + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; +} +.detail-popup-box .detail-popup-translate{ + position: relative; + height: 100%; +} + +.detail-popup-box .detail-popup-content{ + position: absolute; + width: 100%; + height: 100%; + color: var(--content-textHover); +} +.detail-popup-box .van-nav-bar .van-nav-bar__title{ + color: var(--content-textHover); +} +.detail-popup-box .detail-popup-content .detail-popup-img{ + height: 100%; + position: relative; +} +.detail-popup-box .detail-popup-content .detail-between{ + height: 100%; + position: relative; +} +.detail-popup-box .detail-popup-content .detail-between .img-box{ + height: 100%; + width: 100%; + overflow: auto; + position: relative; +} +.detail-popup-box .detail-popup-content .detail-between .video-box{ + position: absolute; + top: 0; + bottom: 0; + width: 100%; + margin-top: auto; + margin-bottom: auto; +} +.detail-popup-box .detail-popup-content .detail-between .image-viewer__img{ + max-width: 100%; + max-height: 100%; + position: absolute; + left: 0; + right: 0; + bottom: 0; + top: 0; + margin: auto; + z-index: 10; + transform-origin: 0 0; +} +.detail-popup-box .detail-popup-content .detail-between .image-viewer__img.opacity{ + opacity: 0; +} +.detail-popup-box .detail-popup-content .detail-between .image-viewer__img.thumbnail{ + z-index: 5; +} + + +.detail-popup-message{ + width: 100%; + height: 100%; + position: absolute; + background: transparent; + color: var(--content-textHover); + padding-bottom: 60px; +} +.detail-popup-message.NotFooter{ + padding-bottom: 0; +} +.detail-popup-message .DetailPopup-content{ + padding: 0 1rem; + height: 100%; + overflow: auto; +} +.detail-popup-message .name{ + font-weight: 700; + padding: 16px 0; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.detail-popup-message .block{ + margin-bottom: 1rem; +} +.detail-popup-message .block .title{ + font-weight: 700; + margin-bottom: 0.625rem; +} +.detail-popup-message .block .block-item.colors{ + display: -webkit-box; + display: -webkit-flex; + display: flex; + margin-left: -0.1875rem; +} +.detail-popup-message .block .block-item.colors .colors{ + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + padding-left: 0.1875rem; +} +.detail-popup-message .block .block-item.colors .colors>div{ + position: relative; + border-radius: 0.5rem; + border: 1px solid var(--border-color-base); +} +@media screen and (max-width: 768px) { + .detail-popup-message .name{ + font-size: 1.125rem; + } + .detail-popup-message .block .title{ + font-size: 1rem; + } + .detail-popup-message .block .block-item.colors .colors>div{ + height: 1.5625rem; + } + .detail-popup-message .block .block-item.tag .tag{ + font-size: 0.875rem; + padding:0 0.5rem; + height: 1.875rem; + line-height: 1.875rem; + } + .detail-popup-message .block .block-item.link{ + font-size: 0.875rem; + height: 1.25rem; + line-height: 1.25rem; + } + .detail-popup-message .block .block-item.link i{ + font-size: 1.125rem; + } + .detail-popup-message .block .block-item .basic{ + font-size: 0.875rem; + } + +} +@media screen and (min-width: 768px) { + .detail-popup-message .name{ + font-size:1.25rem; + } + .detail-popup-message .block .title{ + font-size: 1.125rem; + } + .detail-popup-message .block .block-item.colors .colors>div{ + height: 1.875rem; + } + .detail-popup-message .block .block-item.tag .tag{ + font-size: 1rem; + padding:0 0.625rem; + height: 2.5rem; + line-height:2.5rem; + } + .detail-popup-message .block .block-item.link{ + font-size: 1rem; + height: 1.875rem; + line-height:1.875rem; + } + .detail-popup-message .block .block-item.link i{ + font-size: 1.75rem; + } + .detail-popup-message .block .block-item .basic{ + font-size: 1rem; + } +} +.detail-popup-message .block .block-item.tag{ + overflow: hidden; + margin-left: -0.625rem; +} +.detail-popup-message .block .block-item.tag .tag{ + float: left; + min-width: 2.8125rem; + text-align: center; + border: 1px solid var(--border-color-base); + border-radius: 0.5rem; + margin-left: 0.625rem; + color: var(--content-text); + margin-bottom: 0.3125rem; +} +.detail-popup-message .block .block-item.link{ + color: var(--content-text); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + position: relative; + padding-right: 1.5625rem; +} +.detail-popup-message .block .block-item.link i{ + position: absolute; + right: 0; + top: 0; +} +.detail-popup-message .block .block-item .basic{ + color: var(--content-text); + margin-bottom: 0.625rem; +} +.detail-popup-message .block .block-item .basic .record{ + text-align: right; +} +.detail-popup-message .block .block-item .basic .record .star{ + color: var(--stars); +} +.detail-popup-message .block .block-item .basic .record .star.active{ + color: var(--starsActive); +} \ No newline at end of file diff --git a/dzz/pichome/css/pc/index.css b/dzz/pichome/css/pc/index.css index 6a230ee..af15728 100644 --- a/dzz/pichome/css/pc/index.css +++ b/dzz/pichome/css/pc/index.css @@ -384,6 +384,14 @@ background: var(--header-textHover); color: var(--header-active); } +.screen-box .field-single .screen-show-val{ + display: inline-block; + max-width: 160px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + vertical-align: bottom; +} .screen-box .field-single .icon { vertical-align: bottom; font-size: 17px; @@ -928,7 +936,6 @@ height: 100%; cursor: zoom-in; } - .each-piece .backg.border { border: 1px solid var(--border-color-base); background-color: var(--content-imgbg); @@ -1378,6 +1385,11 @@ margin-right: auto; z-index: 10; } +.img-loading.center{ + top: 0; + bottom: 0; + margin: auto; +} .img-loading span{ margin-right: 8px; } diff --git a/dzz/pichome/css/theme/darkgrey/root.css b/dzz/pichome/css/theme/darkgrey/root.css index 260b74a..baad171 100644 --- a/dzz/pichome/css/theme/darkgrey/root.css +++ b/dzz/pichome/css/theme/darkgrey/root.css @@ -36,7 +36,7 @@ --radio-line:#797979;/* radio边框颜色 */ --tagbg:#454545;/* 标签左侧颜色 */ - --stars:#E1AF22;/* 评分颜色 */ - --starsActive:#515151;/* 选中评分颜色 */ + --stars:#515151;/* 选中评分颜色 */ + --starsActive:#E1AF22;/* 评分颜色 */ } diff --git a/dzz/pichome/details.php b/dzz/pichome/details.php index 32c0d95..1813d89 100644 --- a/dzz/pichome/details.php +++ b/dzz/pichome/details.php @@ -27,6 +27,12 @@ if($operation == 'fetch'){ }else{ $theme = GetThemeColor(); - include template('pc/page/details'); + $ismobile = helper_browser::ismobile(); + if ($ismobile) { + include template('mobile/page/details'); + } else { + include template('pc/page/details'); + } + } diff --git a/dzz/pichome/exportfile.php b/dzz/pichome/exportfile.php index 592b61f..a47eba4 100644 --- a/dzz/pichome/exportfile.php +++ b/dzz/pichome/exportfile.php @@ -1,21 +1,31 @@ '进程已被锁定请稍后再试'))); + } + // var_dump($locked);die; $force = isset($_GET['force']) ? intval($_GET['force']):0; $data = C::t('pichome_vapp')->fetch($appid); if(!$data) exit(json_encode(array('error'=>'no data'))); - if($data['type'] == 0){ + if($data['type'] == 0 && $data['state'] == 1){ include_once dzz_libfile('eagleexport'); $eagleexport = new eagleexport($data); $return = $eagleexport->execExport($force); - print_r($return); }else{ include_once dzz_libfile('oaooaexport'); $oaooaexport = new oaooaexport($data); @@ -23,6 +33,7 @@ $oaooaexport->exportTaggroup(); //执行导入文件 $return = $oaooaexport->initExport(); - } + dzz_process::unlock($processname); + exit('success'); \ No newline at end of file diff --git a/dzz/pichome/exportfilecheck.php b/dzz/pichome/exportfilecheck.php new file mode 100644 index 0000000..460cb65 --- /dev/null +++ b/dzz/pichome/exportfilecheck.php @@ -0,0 +1,30 @@ +'进程已被锁定请稍后再试'))); + } + $force = isset($_GET['force']) ? intval($_GET['force']):0; + $data = C::t('pichome_vapp')->fetch($appid); + if(!$data) exit(json_encode(array('error'=>'no data'))); + if($data['type'] == 0 && $data['state'] == '2'){ + include_once dzz_libfile('eagleexport'); + $eagleexport = new eagleexport($data); + $return = $eagleexport->execCheckFile(); + } + dzz_process::unlock($processname); + \ No newline at end of file diff --git a/dzz/pichome/filelist.php b/dzz/pichome/filelist.php index 2b674a2..1aefe51 100644 --- a/dzz/pichome/filelist.php +++ b/dzz/pichome/filelist.php @@ -120,7 +120,8 @@ if($operation == 'filelist'){ if(!empty($tagval)){ $tagdata=[]; if($appid){ - foreach(DB::fetch_all("select t.tagname,t.tid,tr.cid from %t t left join %t tr on t.tid = tr.tid where t.tid in(%n) and tr.appid=%s",array('pichome_tag','pichome_tagrelation',$tagval,$appid)) as $tv){ + + foreach(DB::fetch_all("select t.tagname,t.tid,tr.cid from %t t left join %t tr on t.tid = tr.tid and tr.appid=%s where t.tid in(%n) ",array('pichome_tag','pichome_tagrelation',$appid,$tagval)) as $tv){ $tagdata[] = array('tagname'=>$tv['tagname'],'tid'=>intval($tv['tid']),'cid'=>$tv['cid']); } }else{ @@ -128,11 +129,7 @@ if($operation == 'filelist'){ $tagdata[] = array('tagname'=>$tv['tagname'],'tid'=>intval($tv['tid'])); } } - - //print_r($tagdata);die; - /* foreach(C::t('pichome_tag')->fetch_all($tagval) as $tv){ - $tagdata[] = array('tagname'=>$tv['tagname'],'tid'=>intval($tv['tid'])); - }*/ + } foreach($tagval as $v){ $tagwherearr[] = " find_in_set(%d,ra.tag)"; @@ -239,15 +236,7 @@ if($operation == 'filelist'){ if (isset($_GET['shape'])) { $shape = trim($_GET['shape']); $shapes = explode(',', $shape); - //指定宽高比 - // $swidth = 0; - // $sheight = 0; - // if(isset($_GET['shapesize'])){ - // $shapesize = trim($_GET['shapesize']); - // $shapesizes = explode(':',$shapesize); - // $swidth = intval($shapesizes[0]); - // $sheight = intval($shapesizes[1]); - // } + $shapewherearr = []; foreach ($shapes as $v) { switch ($v) { @@ -456,6 +445,7 @@ if($operation == 'filelist'){ $orderarr[] = ' r.width*r.height '.$asc; break; default: + $orderarr[] = ' r.dateline '.$asc; } $ordersql = implode(',',$orderarr); diff --git a/dzz/pichome/image/notScreen.png b/dzz/pichome/image/notScreen.png new file mode 100644 index 0000000..3bbeaf4 Binary files /dev/null and b/dzz/pichome/image/notScreen.png differ diff --git a/dzz/pichome/image/phlogo.png b/dzz/pichome/image/phlogo.png index 6b6c481..034849b 100644 Binary files a/dzz/pichome/image/phlogo.png and b/dzz/pichome/image/phlogo.png differ diff --git a/dzz/pichome/initexport.php b/dzz/pichome/initexport.php new file mode 100644 index 0000000..d4a4452 --- /dev/null +++ b/dzz/pichome/initexport.php @@ -0,0 +1,19 @@ +fetch($appid); + if(!$data) exit(json_encode(array('error'=>'no data'))); + if($data['type'] == 0){ + include_once dzz_libfile('eagleexport'); + $eagleexport = new eagleexport($data); + $return = $eagleexport->initExport(); + } + exit(json_encode(array('success'=>true))); + \ No newline at end of file diff --git a/dzz/pichome/js/mobile/pinchzoom.js b/dzz/pichome/js/mobile/pinchzoom.js new file mode 100644 index 0000000..3f202d2 --- /dev/null +++ b/dzz/pichome/js/mobile/pinchzoom.js @@ -0,0 +1,789 @@ +/* + Copyright (c) Manuel Stofer 2013 - today, PinchZoom.js + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ + +// polyfills +if (typeof Object.assign != 'function') { + // Must be writable: true, enumerable: false, configurable: true + Object.defineProperty(Object, "assign", { + value: function assign(target, varArgs) { // .length of function is 2 + if (target == null) { // TypeError if undefined or null + throw new TypeError('Cannot convert undefined or null to object'); + } + + var to = Object(target); + + for (var index = 1; index < arguments.length; index++) { + var nextSource = arguments[index]; + + if (nextSource != null) { // Skip over if undefined or null + for (var nextKey in nextSource) { + // Avoid bugs when hasOwnProperty is shadowed + if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + return to; + }, + writable: true, + configurable: true + }); +} + +if (typeof Array.from != 'function') { + Array.from = function (object) { + return [].slice.call(object); + }; +} + +// utils +var buildElement = function(str) { + // empty string as title argument required by IE and Edge + var tmp = document.implementation.createHTMLDocument(''); + tmp.body.innerHTML = str; + return Array.from(tmp.body.children)[0]; +}; + +var triggerEvent = function(el, name) { + var event = document.createEvent('HTMLEvents'); + event.initEvent(name, true, false); + el.dispatchEvent(event); +}; + +var definePinchZoom = function () { + + /** + * Pinch zoom + * @version 2.0.0 + * @author Manuel Stofer + * @param el + * @param options + * @constructor + */ + var PinchZoom = function (el, options) { + this.el = el; + this.zoomFactor = 1; + this.lastScale = 1; + this.offset = { + x: 0, + y: 0 + }; + this.options = Object.assign({}, this.defaults, options); + this.setupMarkup(); + this.bindEvents(); + this.update(); + // default enable. + this.enable(); + + }, + sum = function (a, b) { + return a + b; + }, + isCloseTo = function (value, expected) { + return value > expected - 0.01 && value < expected + 0.01; + }; + + PinchZoom.prototype = { + + defaults: { + tapZoomFactor: 2, + zoomOutFactor: 1.3, + animationDuration: 300, + maxZoom: 4, + minZoom: 0.5, + lockDragAxis: false, + use2d: true, + zoomStartEventName: 'pz_zoomstart', + zoomEndEventName: 'pz_zoomend', + dragStartEventName: 'pz_dragstart', + dragEndEventName: 'pz_dragend', + doubleTapEventName: 'pz_doubletap' + }, + + /** + * Event handler for 'dragstart' + * @param event + */ + handleDragStart: function (event) { + triggerEvent(this.el, this.options.dragStartEventName); + this.stopAnimation(); + this.lastDragPosition = false; + this.hasInteraction = true; + this.handleDrag(event); + }, + + /** + * Event handler for 'drag' + * @param event + */ + handleDrag: function (event) { + if (this.zoomFactor > 1.0) { + var touch = this.getTouches(event)[0]; + this.drag(touch, this.lastDragPosition); + this.offset = this.sanitizeOffset(this.offset); + this.lastDragPosition = touch; + } + }, + + handleDragEnd: function () { + triggerEvent(this.el, this.options.dragEndEventName); + this.end(); + }, + + /** + * Event handler for 'zoomstart' + * @param event + */ + handleZoomStart: function (event) { + triggerEvent(this.el, this.options.zoomStartEventName); + this.stopAnimation(); + this.lastScale = 1; + this.nthZoom = 0; + this.lastZoomCenter = false; + this.hasInteraction = true; + }, + + /** + * Event handler for 'zoom' + * @param event + */ + handleZoom: function (event, newScale) { + // a relative scale factor is used + var touchCenter = this.getTouchCenter(this.getTouches(event)), + scale = newScale / this.lastScale; + this.lastScale = newScale; + + // the first touch events are thrown away since they are not precise + this.nthZoom += 1; + if (this.nthZoom > 3) { + + this.scale(scale, touchCenter); + this.drag(touchCenter, this.lastZoomCenter); + } + this.lastZoomCenter = touchCenter; + }, + + handleZoomEnd: function () { + triggerEvent(this.el, this.options.zoomEndEventName); + this.end(); + }, + + /** + * Event handler for 'doubletap' + * @param event + */ + handleDoubleTap: function (event) { + var center = this.getTouches(event)[0], + zoomFactor = this.zoomFactor > 1 ? 1 : this.options.tapZoomFactor, + startZoomFactor = this.zoomFactor, + updateProgress = (function (progress) { + this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor), center); + }).bind(this); + + if (this.hasInteraction) { + return; + } + if (startZoomFactor > zoomFactor) { + center = this.getCurrentZoomCenter(); + } + + this.animate(this.options.animationDuration, updateProgress, this.swing); + triggerEvent(this.el, this.options.doubleTapEventName); + }, + + /** + * Max / min values for the offset + * @param offset + * @return {Object} the sanitized offset + */ + sanitizeOffset: function (offset) { + var maxX = (this.zoomFactor - 1) * this.getContainerX(), + maxY = (this.zoomFactor - 1) * this.getContainerY(), + maxOffsetX = Math.max(maxX, 0), + maxOffsetY = Math.max(maxY, 0), + minOffsetX = Math.min(maxX, 0), + minOffsetY = Math.min(maxY, 0); + + return { + x: Math.min(Math.max(offset.x, minOffsetX), maxOffsetX), + y: Math.min(Math.max(offset.y, minOffsetY), maxOffsetY) + }; + }, + + /** + * Scale to a specific zoom factor (not relative) + * @param zoomFactor + * @param center + */ + scaleTo: function (zoomFactor, center) { + this.scale(zoomFactor / this.zoomFactor, center); + }, + + /** + * Scales the element from specified center + * @param scale + * @param center + */ + scale: function (scale, center) { + scale = this.scaleZoomFactor(scale); + this.addOffset({ + x: (scale - 1) * (center.x + this.offset.x), + y: (scale - 1) * (center.y + this.offset.y) + }); + }, + + /** + * Scales the zoom factor relative to current state + * @param scale + * @return the actual scale (can differ because of max min zoom factor) + */ + scaleZoomFactor: function (scale) { + var originalZoomFactor = this.zoomFactor; + this.zoomFactor *= scale; + this.zoomFactor = Math.min(this.options.maxZoom, Math.max(this.zoomFactor, this.options.minZoom)); + return this.zoomFactor / originalZoomFactor; + }, + + /** + * Drags the element + * @param center + * @param lastCenter + */ + drag: function (center, lastCenter) { + if (lastCenter) { + if(this.options.lockDragAxis) { + // lock scroll to position that was changed the most + if(Math.abs(center.x - lastCenter.x) > Math.abs(center.y - lastCenter.y)) { + this.addOffset({ + x: -(center.x - lastCenter.x), + y: 0 + }); + } + else { + this.addOffset({ + y: -(center.y - lastCenter.y), + x: 0 + }); + } + } + else { + this.addOffset({ + y: -(center.y - lastCenter.y), + x: -(center.x - lastCenter.x) + }); + } + } + }, + + /** + * Calculates the touch center of multiple touches + * @param touches + * @return {Object} + */ + getTouchCenter: function (touches) { + return this.getVectorAvg(touches); + }, + + /** + * Calculates the average of multiple vectors (x, y values) + */ + getVectorAvg: function (vectors) { + return { + x: vectors.map(function (v) { return v.x; }).reduce(sum) / vectors.length, + y: vectors.map(function (v) { return v.y; }).reduce(sum) / vectors.length + }; + }, + + /** + * Adds an offset + * @param offset the offset to add + * @return return true when the offset change was accepted + */ + addOffset: function (offset) { + this.offset = { + x: this.offset.x + offset.x, + y: this.offset.y + offset.y + }; + }, + + sanitize: function () { + if (this.zoomFactor < this.options.zoomOutFactor) { + this.zoomOutAnimation(); + } else if (this.isInsaneOffset(this.offset)) { + this.sanitizeOffsetAnimation(); + } + }, + + /** + * Checks if the offset is ok with the current zoom factor + * @param offset + * @return {Boolean} + */ + isInsaneOffset: function (offset) { + var sanitizedOffset = this.sanitizeOffset(offset); + return sanitizedOffset.x !== offset.x || + sanitizedOffset.y !== offset.y; + }, + + /** + * Creates an animation moving to a sane offset + */ + sanitizeOffsetAnimation: function () { + var targetOffset = this.sanitizeOffset(this.offset), + startOffset = { + x: this.offset.x, + y: this.offset.y + }, + updateProgress = (function (progress) { + this.offset.x = startOffset.x + progress * (targetOffset.x - startOffset.x); + this.offset.y = startOffset.y + progress * (targetOffset.y - startOffset.y); + this.update(); + }).bind(this); + + this.animate( + this.options.animationDuration, + updateProgress, + this.swing + ); + }, + + /** + * Zooms back to the original position, + * (no offset and zoom factor 1) + */ + zoomOutAnimation: function () { + var startZoomFactor = this.zoomFactor, + zoomFactor = 1, + center = this.getCurrentZoomCenter(), + updateProgress = (function (progress) { + this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor), center); + }).bind(this); + + this.animate( + this.options.animationDuration, + updateProgress, + this.swing + ); + }, + + /** + * Updates the aspect ratio + */ + updateAspectRatio: function () { + this.setContainerY(this.getContainerX() / this.getAspectRatio()); + }, + + /** + * Calculates the initial zoom factor (for the element to fit into the container) + * @return the initial zoom factor + */ + getInitialZoomFactor: function () { + return this.container.offsetWidth / this.el.offsetWidth; + }, + + /** + * Calculates the aspect ratio of the element + * @return the aspect ratio + */ + getAspectRatio: function () { + return this.el.offsetWidth / this.el.offsetHeight; + }, + + /** + * Calculates the virtual zoom center for the current offset and zoom factor + * (used for reverse zoom) + * @return {Object} the current zoom center + */ + getCurrentZoomCenter: function () { + + // uses following formula to calculate the zoom center x value + // offset_left / offset_right = zoomcenter_x / (container_x - zoomcenter_x) + var length = this.container.offsetWidth * this.zoomFactor, + offsetLeft = this.offset.x, + offsetRight = length - offsetLeft - this.container.offsetWidth, + widthOffsetRatio = offsetLeft / offsetRight, + centerX = widthOffsetRatio * this.container.offsetWidth / (widthOffsetRatio + 1), + + // the same for the zoomcenter y + height = this.container.offsetHeight * this.zoomFactor, + offsetTop = this.offset.y, + offsetBottom = height - offsetTop - this.container.offsetHeight, + heightOffsetRatio = offsetTop / offsetBottom, + centerY = heightOffsetRatio * this.container.offsetHeight / (heightOffsetRatio + 1); + + // prevents division by zero + if (offsetRight === 0) { centerX = this.container.offsetWidth; } + if (offsetBottom === 0) { centerY = this.container.offsetHeight; } + + return { + x: centerX, + y: centerY + }; + }, + + canDrag: function () { + return !isCloseTo(this.zoomFactor, 1); + }, + + /** + * Returns the touches of an event relative to the container offset + * @param event + * @return array touches + */ + getTouches: function (event) { + var rect = this.container.getBoundingClientRect(); + var posTop = rect.top + document.body.scrollTop; + var posLeft = rect.left + document.body.scrollLeft; + + return Array.prototype.slice.call(event.touches).map(function (touch) { + return { + x: touch.pageX - posLeft, + y: touch.pageY - posTop, + }; + }); + }, + + /** + * Animation loop + * does not support simultaneous animations + * @param duration + * @param framefn + * @param timefn + * @param callback + */ + animate: function (duration, framefn, timefn, callback) { + var startTime = new Date().getTime(), + renderFrame = (function () { + if (!this.inAnimation) { return; } + var frameTime = new Date().getTime() - startTime, + progress = frameTime / duration; + if (frameTime >= duration) { + framefn(1); + if (callback) { + callback(); + } + this.update(); + this.stopAnimation(); + this.update(); + } else { + if (timefn) { + progress = timefn(progress); + } + framefn(progress); + this.update(); + requestAnimationFrame(renderFrame); + } + }).bind(this); + this.inAnimation = true; + requestAnimationFrame(renderFrame); + }, + + /** + * Stops the animation + */ + stopAnimation: function () { + this.inAnimation = false; + }, + + /** + * Swing timing function for animations + * @param p + * @return {Number} + */ + swing: function (p) { + return -Math.cos(p * Math.PI) / 2 + 0.5; + }, + + getContainerX: function () { + return this.container.offsetWidth; + }, + + getContainerY: function () { + return this.container.offsetHeight; + }, + + setContainerY: function (y) { + return this.container.style.height = y + 'px'; + }, + + /** + * Creates the expected html structure + */ + setupMarkup: function () { + this.container = buildElement('
'); + this.el.parentNode.insertBefore(this.container, this.el); + this.container.appendChild(this.el); + + this.container.style.overflow = 'hidden'; + this.container.style.position = 'relative'; + + this.el.style.webkitTransformOrigin = '0% 0%'; + this.el.style.mozTransformOrigin = '0% 0%'; + this.el.style.msTransformOrigin = '0% 0%'; + this.el.style.oTransformOrigin = '0% 0%'; + this.el.style.transformOrigin = '0% 0%'; + + this.el.style.position = 'absolute'; + }, + + end: function () { + this.hasInteraction = false; + this.sanitize(); + this.update(); + }, + + /** + * Binds all required event listeners + */ + bindEvents: function () { + var self = this; + detectGestures(this.container, this); + + window.addEventListener('resize', this.update.bind(this)); + Array.from(this.el.querySelectorAll('img')).forEach(function(imgEl) { + imgEl.addEventListener('load', self.update.bind(self)); + }); + + if (this.el.nodeName === 'IMG') { + this.el.addEventListener('load', this.update.bind(this)); + } + }, + + /** + * Updates the css values according to the current zoom factor and offset + */ + update: function () { + if (this.updatePlaned) { + return; + } + this.updatePlaned = true; + + window.setTimeout((function () { + this.updatePlaned = false; + this.updateAspectRatio(); + + var zoomFactor = this.getInitialZoomFactor() * this.zoomFactor, + offsetX = -this.offset.x / zoomFactor, + offsetY = -this.offset.y / zoomFactor, + transform3d = 'scale3d(' + zoomFactor + ', ' + zoomFactor + ',1) ' + + 'translate3d(' + offsetX + 'px,' + offsetY + 'px,0px)', + transform2d = 'scale(' + zoomFactor + ', ' + zoomFactor + ') ' + + 'translate(' + offsetX + 'px,' + offsetY + 'px)', + removeClone = (function () { + if (this.clone) { + this.clone.parentNode.removeChild(this.clone); + delete this.clone; + } + }).bind(this); + + // Scale 3d and translate3d are faster (at least on ios) + // but they also reduce the quality. + // PinchZoom uses the 3d transformations during interactions + // after interactions it falls back to 2d transformations + if (!this.options.use2d || this.hasInteraction || this.inAnimation) { + this.is3d = true; + removeClone(); + + this.el.style.webkitTransform = transform3d; + this.el.style.mozTransform = transform2d; + this.el.style.msTransform = transform2d; + this.el.style.oTransform = transform2d; + this.el.style.transform = transform3d; + } else { + // When changing from 3d to 2d transform webkit has some glitches. + // To avoid this, a copy of the 3d transformed element is displayed in the + // foreground while the element is converted from 3d to 2d transform + if (this.is3d) { + this.clone = this.el.cloneNode(true); + this.clone.style.pointerEvents = 'none'; + this.container.appendChild(this.clone); + window.setTimeout(removeClone, 200); + } + + this.el.style.webkitTransform = transform2d; + this.el.style.mozTransform = transform2d; + this.el.style.msTransform = transform2d; + this.el.style.oTransform = transform2d; + this.el.style.transform = transform2d; + + this.is3d = false; + } + }).bind(this), 0); + }, + + /** + * Enables event handling for gestures + */ + enable: function() { + this.enabled = true; + }, + + /** + * Disables event handling for gestures + */ + disable: function() { + this.enabled = false; + } + }; + + var detectGestures = function (el, target) { + var interaction = null, + fingers = 0, + lastTouchStart = null, + startTouches = null, + + setInteraction = function (newInteraction, event) { + if (interaction !== newInteraction) { + + if (interaction && !newInteraction) { + switch (interaction) { + case "zoom": + target.handleZoomEnd(event); + break; + case 'drag': + target.handleDragEnd(event); + break; + } + } + + switch (newInteraction) { + case 'zoom': + target.handleZoomStart(event); + break; + case 'drag': + target.handleDragStart(event); + break; + } + } + interaction = newInteraction; + }, + + updateInteraction = function (event) { + if (fingers === 2) { + setInteraction('zoom'); + } else if (fingers === 1 && target.canDrag()) { + setInteraction('drag', event); + } else { + setInteraction(null, event); + } + }, + + targetTouches = function (touches) { + return Array.from(touches).map(function (touch) { + return { + x: touch.pageX, + y: touch.pageY + }; + }); + }, + + getDistance = function (a, b) { + var x, y; + x = a.x - b.x; + y = a.y - b.y; + return Math.sqrt(x * x + y * y); + }, + + calculateScale = function (startTouches, endTouches) { + var startDistance = getDistance(startTouches[0], startTouches[1]), + endDistance = getDistance(endTouches[0], endTouches[1]); + return endDistance / startDistance; + }, + + cancelEvent = function (event) { + event.stopPropagation(); + event.preventDefault(); + }, + + detectDoubleTap = function (event) { + var time = (new Date()).getTime(); + + if (fingers > 1) { + lastTouchStart = null; + } + + if (time - lastTouchStart < 300) { + cancelEvent(event); + + target.handleDoubleTap(event); + switch (interaction) { + case "zoom": + target.handleZoomEnd(event); + break; + case 'drag': + target.handleDragEnd(event); + break; + } + } + + if (fingers === 1) { + lastTouchStart = time; + } + }, + firstMove = true; + + el.addEventListener('touchstart', function (event) { + if(target.enabled) { + firstMove = true; + fingers = event.touches.length; + detectDoubleTap(event); + } + }); + + el.addEventListener('touchmove', function (event) { + if(target.enabled) { + if (firstMove) { + updateInteraction(event); + if (interaction) { + cancelEvent(event); + } + startTouches = targetTouches(event.touches); + } else { + switch (interaction) { + case 'zoom': + target.handleZoom(event, calculateScale(startTouches, targetTouches(event.touches))); + break; + case 'drag': + target.handleDrag(event); + break; + } + if (interaction) { + cancelEvent(event); + target.update(); + } + } + + firstMove = false; + } + }); + + el.addEventListener('touchend', function (event) { + if(target.enabled) { + fingers = event.touches.length; + updateInteraction(event); + } + }); + }; + + return PinchZoom; +}; + +var PinchZoom = definePinchZoom(); + diff --git a/dzz/pichome/js/mobile/plug/colorPicker/jquery.minicolors.css b/dzz/pichome/js/mobile/plug/colorPicker/jquery.minicolors.css new file mode 100644 index 0000000..a5917e6 --- /dev/null +++ b/dzz/pichome/js/mobile/plug/colorPicker/jquery.minicolors.css @@ -0,0 +1,245 @@ +.minicolors { + position: relative; +} + +.minicolors-swatch { + position: absolute; + vertical-align: middle; + background: url(jquery.minicolors.png) -80px 0; + border: solid 1px #ccc; + cursor: text; + padding: 0; + margin: 0; + display: inline-block; +} + +.minicolors-swatch-color { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.minicolors input[type=hidden] + .minicolors-swatch { + width: 28px; + position: static; + cursor: pointer; +} + +/* Panel */ +.minicolors-panel { + position: absolute; + width: 173px; + height: 152px; + background: white; + border: solid 1px #CCC; + box-shadow: 0 0 20px rgba(0, 0, 0, .2); + z-index: 99999; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; + display: none; +} + +.minicolors-panel.minicolors-visible { + display: block; +} + +/* Panel positioning */ +.minicolors-position-top .minicolors-panel { + top: -154px; +} + +.minicolors-position-right .minicolors-panel { + right: 0; +} + +.minicolors-position-bottom .minicolors-panel { + top: auto; +} + +.minicolors-position-left .minicolors-panel { + left: 0; +} + +.minicolors-with-opacity .minicolors-panel { + width: 194px; +} + +.minicolors .minicolors-grid { + position: absolute; + top: 1px; + left: 1px; + width: 150px; + height: 150px; + background: url(jquery.minicolors.png) -120px 0; + cursor: crosshair; +} + +.minicolors .minicolors-grid-inner { + position: absolute; + top: 0; + left: 0; + width: 150px; + height: 150px; + background: none; +} + +.minicolors-slider-saturation .minicolors-grid { + background-position: -420px 0; +} + +.minicolors-slider-saturation .minicolors-grid-inner { + background: url(jquery.minicolors.png) -270px 0; +} + +.minicolors-slider-brightness .minicolors-grid { + background-position: -570px 0; +} + +.minicolors-slider-brightness .minicolors-grid-inner { + background: black; +} + +.minicolors-slider-wheel .minicolors-grid { + background-position: -720px 0; +} + +.minicolors-slider, +.minicolors-opacity-slider { + position: absolute; + top: 1px; + left: 152px; + width: 20px; + height: 150px; + background: white url(jquery.minicolors.png) 0 0; + cursor: row-resize; +} + +.minicolors-slider-saturation .minicolors-slider { + background-position: -60px 0; +} + +.minicolors-slider-brightness .minicolors-slider { + background-position: -20px 0; +} + +.minicolors-slider-wheel .minicolors-slider { + background-position: -20px 0; +} + +.minicolors-opacity-slider { + left: 173px; + background-position: -40px 0; + display: none; +} + +.minicolors-with-opacity .minicolors-opacity-slider { + display: block; +} + +/* Pickers */ +.minicolors-grid .minicolors-picker { + position: absolute; + top: 70px; + left: 70px; + width: 12px; + height: 12px; + border: solid 1px black; + border-radius: 10px; + margin-top: -6px; + margin-left: -6px; + background: none; +} + +.minicolors-grid .minicolors-picker > div { + position: absolute; + top: 0; + left: 0; + width: 8px; + height: 8px; + border-radius: 8px; + border: solid 2px white; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} + +.minicolors-picker { + position: absolute; + top: 0; + left: 0; + width: 18px; + height: 2px; + background: white; + border: solid 1px black; + margin-top: -2px; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} + +/* Inline controls */ +.minicolors-inline { + display: inline-block; +} + +.minicolors-inline .minicolors-input { + display: none !important; +} + +.minicolors-inline .minicolors-panel { + position: relative; + top: auto; + left: auto; + box-shadow: none; + z-index: auto; + display: inline-block; +} + +/* Default theme */ +.minicolors-theme-default .minicolors-swatch { + top: 5px; + left: 5px; + width: 18px; + height: 18px; +} +.minicolors-theme-default.minicolors-position-right .minicolors-swatch { + left: auto; + right: 5px; +} +.minicolors-theme-default.minicolors { + width: auto; + display: inline-block; +} +.minicolors-theme-default .minicolors-input { + height: 20px; + width: auto; + display: inline-block; + padding-left: 26px; +} +.minicolors-theme-default.minicolors-position-right .minicolors-input { + padding-right: 26px; + padding-left: inherit; +} + +/* Bootstrap theme */ +.minicolors-theme-bootstrap .minicolors-swatch { + top: 3px; + left: 3px; + width: 28px; + height: 28px; + border-radius: 3px; +} +.minicolors-theme-bootstrap.minicolors-position-right .minicolors-swatch { + left: auto; + right: 3px; +} +.minicolors-theme-bootstrap .minicolors-input { + padding-left: 44px; +} +.minicolors-theme-bootstrap.minicolors-position-right .minicolors-input { + padding-right: 44px; + padding-left: 12px; +} \ No newline at end of file diff --git a/dzz/pichome/js/mobile/plug/colorPicker/jquery.minicolors.min.js b/dzz/pichome/js/mobile/plug/colorPicker/jquery.minicolors.min.js new file mode 100644 index 0000000..1b9c5ec --- /dev/null +++ b/dzz/pichome/js/mobile/plug/colorPicker/jquery.minicolors.min.js @@ -0,0 +1,8 @@ +/* + * jQuery MiniColors: A tiny color picker built on jQuery + * + * Copyright Cory LaViska for A Beautiful Site, LLC. (http://www.abeautifulsite.net/) + * + * Licensed under the MIT license: http://opensource.org/licenses/MIT + * + */jQuery&&function(e){function t(t,n){var r=e('
'),i=e.minicolors.defaults;if(t.data("minicolors-initialized"))return;n=e.extend(!0,{},i,n);r.addClass("minicolors-theme-"+n.theme).toggleClass("minicolors-with-opacity",n.opacity);n.position!==undefined&&e.each(n.position.split(" "),function(){r.addClass("minicolors-position-"+this)});t.addClass("minicolors-input").data("minicolors-initialized",!1).data("minicolors-settings",n).prop("size",7).wrap(r).after('
'+'
'+'
'+"
"+'
'+'
'+"
"+'
'+'
'+'
'+"
"+"
");if(!n.inline){t.after('');t.next(".minicolors-swatch").on("click",function(e){e.preventDefault();t.focus()})}t.parent().find(".minicolors-panel").on("selectstart",function(){return!1}).end();n.inline&&t.parent().addClass("minicolors-inline");u(t,!1);t.data("minicolors-initialized",!0)}function n(e){var t=e.parent();e.removeData("minicolors-initialized").removeData("minicolors-settings").removeProp("size").removeClass("minicolors-input");t.before(e).remove()}function r(e){var t=e.parent(),n=t.find(".minicolors-panel"),r=e.data("minicolors-settings");if(!e.data("minicolors-initialized")||e.prop("disabled")||t.hasClass("minicolors-inline")||t.hasClass("minicolors-focus"))return;i();t.addClass("minicolors-focus");n.stop(!0,!0).fadeIn(r.showSpeed,function(){r.show&&r.show.call(e.get(0))})}function i(){e(".minicolors-input").each(function(){var t=e(this),n=t.data("minicolors-settings"),r=t.parent();if(n.inline)return;r.find(".minicolors-panel").fadeOut(n.hideSpeed,function(){r.hasClass("minicolors-focus")&&n.hide&&n.hide.call(t.get(0));r.removeClass("minicolors-focus")})})}function s(e,t,n){var r=e.parents(".minicolors").find(".minicolors-input"),i=r.data("minicolors-settings"),s=e.find("[class$=-picker]"),u=e.offset().left,a=e.offset().top,f=Math.round(t.pageX-u),l=Math.round(t.pageY-a),c=n?i.animationSpeed:0,h,p,d,v;if(t.originalEvent.changedTouches){f=t.originalEvent.changedTouches[0].pageX-u;l=t.originalEvent.changedTouches[0].pageY-a}f<0&&(f=0);l<0&&(l=0);f>e.width()&&(f=e.width());l>e.height()&&(l=e.height());if(e.parent().is(".minicolors-slider-wheel")&&s.parent().is(".minicolors-grid")){h=75-f;p=75-l;d=Math.sqrt(h*h+p*p);v=Math.atan2(p,h);v<0&&(v+=Math.PI*2);if(d>75){d=75;f=75-75*Math.cos(v);l=75-75*Math.sin(v)}f=Math.round(f);l=Math.round(l)}e.is(".minicolors-grid")?s.stop(!0).animate({top:l+"px",left:f+"px"},c,i.animationEasing,function(){o(r,e)}):s.stop(!0).animate({top:l+"px"},c,i.animationEasing,function(){o(r,e)})}function o(e,t){function n(e,t){var n,r;if(!e.length||!t)return null;n=e.offset().left;r=e.offset().top;return{x:n-t.offset().left+e.outerWidth()/2,y:r-t.offset().top+e.outerHeight()/2}}var r,i,s,o,u,f,l,h=e.val(),d=e.attr("data-opacity"),v=e.parent(),g=e.data("minicolors-settings"),y=v.find(".minicolors-swatch"),b=v.find(".minicolors-grid"),w=v.find(".minicolors-slider"),E=v.find(".minicolors-opacity-slider"),S=b.find("[class$=-picker]"),x=w.find("[class$=-picker]"),T=E.find("[class$=-picker]"),N=n(S,b),C=n(x,w),k=n(T,E);if(t.is(".minicolors-grid, .minicolors-slider")){switch(g.control){case"wheel":o=b.width()/2-N.x;u=b.height()/2-N.y;f=Math.sqrt(o*o+u*u);l=Math.atan2(u,o);l<0&&(l+=Math.PI*2);if(f>75){f=75;N.x=69-75*Math.cos(l);N.y=69-75*Math.sin(l)}i=p(f/.75,0,100);r=p(l*180/Math.PI,0,360);s=p(100-Math.floor(C.y*(100/w.height())),0,100);h=m({h:r,s:i,b:s});w.css("backgroundColor",m({h:r,s:i,b:100}));break;case"saturation":r=p(parseInt(N.x*(360/b.width()),10),0,360);i=p(100-Math.floor(C.y*(100/w.height())),0,100);s=p(100-Math.floor(N.y*(100/b.height())),0,100);h=m({h:r,s:i,b:s});w.css("backgroundColor",m({h:r,s:100,b:s}));v.find(".minicolors-grid-inner").css("opacity",i/100);break;case"brightness":r=p(parseInt(N.x*(360/b.width()),10),0,360);i=p(100-Math.floor(N.y*(100/b.height())),0,100);s=p(100-Math.floor(C.y*(100/w.height())),0,100);h=m({h:r,s:i,b:s});w.css("backgroundColor",m({h:r,s:i,b:100}));v.find(".minicolors-grid-inner").css("opacity",1-s/100);break;default:r=p(360-parseInt(C.y*(360/w.height()),10),0,360);i=p(Math.floor(N.x*(100/b.width())),0,100);s=p(100-Math.floor(N.y*(100/b.height())),0,100);h=m({h:r,s:i,b:s});b.css("backgroundColor",m({h:r,s:100,b:100}))}e.val(c(h,g.letterCase))}if(t.is(".minicolors-opacity-slider")){g.opacity?d=parseFloat(1-k.y/E.height()).toFixed(2):d=1;g.opacity&&e.attr("data-opacity",d)}y.find("SPAN").css({backgroundColor:h,opacity:d});a(e,h,d)}function u(e,t){var n,r,i,s,o,u,f,l=e.parent(),d=e.data("minicolors-settings"),v=l.find(".minicolors-swatch"),y=l.find(".minicolors-grid"),b=l.find(".minicolors-slider"),w=l.find(".minicolors-opacity-slider"),E=y.find("[class$=-picker]"),S=b.find("[class$=-picker]"),x=w.find("[class$=-picker]");n=c(h(e.val(),!0),d.letterCase);n||(n=c(h(d.defaultValue,!0),d.letterCase));r=g(n);t||e.val(n);if(d.opacity){i=e.attr("data-opacity")===""?1:p(parseFloat(e.attr("data-opacity")).toFixed(2),0,1);isNaN(i)&&(i=1);e.attr("data-opacity",i);v.find("SPAN").css("opacity",i);o=p(w.height()-w.height()*i,0,w.height());x.css("top",o+"px")}v.find("SPAN").css("backgroundColor",n);switch(d.control){case"wheel":u=p(Math.ceil(r.s*.75),0,y.height()/2);f=r.h*Math.PI/180;s=p(75-Math.cos(f)*u,0,y.width());o=p(75-Math.sin(f)*u,0,y.height());E.css({top:o+"px",left:s+"px"});o=150-r.b/(100/y.height());n===""&&(o=0);S.css("top",o+"px");b.css("backgroundColor",m({h:r.h,s:r.s,b:100}));break;case"saturation":s=p(5*r.h/12,0,150);o=p(y.height()-Math.ceil(r.b/(100/y.height())),0,y.height());E.css({top:o+"px",left:s+"px"});o=p(b.height()-r.s*(b.height()/100),0,b.height());S.css("top",o+"px");b.css("backgroundColor",m({h:r.h,s:100,b:r.b}));l.find(".minicolors-grid-inner").css("opacity",r.s/100);break;case"brightness":s=p(5*r.h/12,0,150);o=p(y.height()-Math.ceil(r.s/(100/y.height())),0,y.height());E.css({top:o+"px",left:s+"px"});o=p(b.height()-r.b*(b.height()/100),0,b.height());S.css("top",o+"px");b.css("backgroundColor",m({h:r.h,s:r.s,b:100}));l.find(".minicolors-grid-inner").css("opacity",1-r.b/100);break;default:s=p(Math.ceil(r.s/(100/y.width())),0,y.width());o=p(y.height()-Math.ceil(r.b/(100/y.height())),0,y.height());E.css({top:o+"px",left:s+"px"});o=p(b.height()-r.h/(360/b.height()),0,b.height());S.css("top",o+"px");y.css("backgroundColor",m({h:r.h,s:100,b:100}))}e.data("minicolors-initialized")&&a(e,n,i)}function a(e,t,n){var r=e.data("minicolors-settings"),i=e.data("minicolors-lastChange");if(!i||i.hex!==t||i.opacity!==n){e.data("minicolors-lastChange",{hex:t,opacity:n});if(r.change)if(r.changeDelay){clearTimeout(e.data("minicolors-changeTimeout"));e.data("minicolors-changeTimeout",setTimeout(function(){r.change.call(e.get(0),t,n)},r.changeDelay))}else r.change.call(e.get(0),t,n);e.trigger("change").trigger("input")}}function f(t){var n=h(e(t).val(),!0),r=b(n),i=e(t).attr("data-opacity");if(!r)return null;i!==undefined&&e.extend(r,{a:parseFloat(i)});return r}function l(t,n){var r=h(e(t).val(),!0),i=b(r),s=e(t).attr("data-opacity");if(!i)return null;s===undefined&&(s=1);return n?"rgba("+i.r+", "+i.g+", "+i.b+", "+parseFloat(s)+")":"rgb("+i.r+", "+i.g+", "+i.b+")"}function c(e,t){return t==="uppercase"?e.toUpperCase():e.toLowerCase()}function h(e,t){e=e.replace(/[^A-F0-9]/ig,"");if(e.length!==3&&e.length!==6)return"";e.length===3&&t&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]);return"#"+e}function p(e,t,n){en&&(e=n);return e}function d(e){var t={},n=Math.round(e.h),r=Math.round(e.s*255/100),i=Math.round(e.b*255/100);if(r===0)t.r=t.g=t.b=i;else{var s=i,o=(255-r)*i/255,u=(s-o)*(n%60)/60;n===360&&(n=0);if(n<60){t.r=s;t.b=o;t.g=o+u}else if(n<120){t.g=s;t.b=o;t.r=s-u}else if(n<180){t.g=s;t.r=o;t.b=o+u}else if(n<240){t.b=s;t.r=o;t.g=s-u}else if(n<300){t.b=s;t.g=o;t.r=o+u}else if(n<360){t.r=s;t.g=o;t.b=s-u}else{t.r=0;t.g=0;t.b=0}}return{r:Math.round(t.r),g:Math.round(t.g),b:Math.round(t.b)}}function v(t){var n=[t.r.toString(16),t.g.toString(16),t.b.toString(16)];e.each(n,function(e,t){t.length===1&&(n[e]="0"+t)});return"#"+n.join("")}function m(e){return v(d(e))}function g(e){var t=y(b(e));t.s===0&&(t.h=360);return t}function y(e){var t={h:0,s:0,b:0},n=Math.min(e.r,e.g,e.b),r=Math.max(e.r,e.g,e.b),i=r-n;t.b=r;t.s=r!==0?255*i/r:0;t.s!==0?e.r===r?t.h=(e.g-e.b)/i:e.g===r?t.h=2+(e.b-e.r)/i:t.h=4+(e.r-e.g)/i:t.h=-1;t.h*=60;t.h<0&&(t.h+=360);t.s*=100/255;t.b*=100/255;return t}function b(e){e=parseInt(e.indexOf("#")>-1?e.substring(1):e,16);return{r:e>>16,g:(e&65280)>>8,b:e&255}}e.minicolors={defaults:{animationSpeed:50,animationEasing:"swing",change:null,changeDelay:0,control:"hue",defaultValue:"",hide:null,hideSpeed:100,inline:!1,letterCase:"lowercase",opacity:!1,position:"bottom left",show:null,showSpeed:100,theme:"default"}};e.extend(e.fn,{minicolors:function(s,o){switch(s){case"destroy":e(this).each(function(){n(e(this))});return e(this);case"hide":i();return e(this);case"opacity":if(o===undefined)return e(this).attr("data-opacity");e(this).each(function(){u(e(this).attr("data-opacity",o))});return e(this);case"rgbObject":return f(e(this),s==="rgbaObject");case"rgbString":case"rgbaString":return l(e(this),s==="rgbaString");case"settings":if(o===undefined)return e(this).data("minicolors-settings");e(this).each(function(){var t=e(this).data("minicolors-settings")||{};n(e(this));e(this).minicolors(e.extend(!0,t,o))});return e(this);case"show":r(e(this).eq(0));return e(this);case"value":if(o===undefined)return e(this).val();e(this).each(function(){u(e(this).val(o))});return e(this);default:s!=="create"&&(o=s);e(this).each(function(){t(e(this),o)});return e(this)}}});e(document).on("mousedown.minicolors touchstart.minicolors",function(t){e(t.target).parents().add(t.target).hasClass("minicolors")||i()}).on("mousedown.minicolors touchstart.minicolors",".minicolors-grid, .minicolors-slider, .minicolors-opacity-slider",function(t){var n=e(this);t.preventDefault();e(document).data("minicolors-target",n);s(n,t,!0)}).on("mousemove.minicolors touchmove.minicolors",function(t){var n=e(document).data("minicolors-target");n&&s(n,t)}).on("mouseup.minicolors touchend.minicolors",function(){e(this).removeData("minicolors-target")}).on("mousedown.minicolors touchstart.minicolors",".minicolors-swatch",function(t){var n=e(this).parent().find(".minicolors-input");t.preventDefault();r(n)}).on("focus.minicolors",".minicolors-input",function(){var t=e(this);if(!t.data("minicolors-initialized"))return;r(t)}).on("blur.minicolors",".minicolors-input",function(){var t=e(this),n=t.data("minicolors-settings");if(!t.data("minicolors-initialized"))return;t.val(h(t.val(),!0));t.val()===""&&t.val(h(n.defaultValue,!0));t.val(c(t.val(),n.letterCase))}).on("keydown.minicolors",".minicolors-input",function(t){var n=e(this);if(!n.data("minicolors-initialized"))return;switch(t.keyCode){case 9:i();break;case 13:case 27:i();n.blur()}}).on("keyup.minicolors",".minicolors-input",function(){var t=e(this);if(!t.data("minicolors-initialized"))return;u(t,!0)}).on("paste.minicolors",".minicolors-input",function(){var t=e(this);if(!t.data("minicolors-initialized"))return;setTimeout(function(){u(t,!0)},1)})}(jQuery); \ No newline at end of file diff --git a/dzz/pichome/js/mobile/plug/colorPicker/jquery.minicolors.png b/dzz/pichome/js/mobile/plug/colorPicker/jquery.minicolors.png new file mode 100644 index 0000000..8fa1e9d Binary files /dev/null and b/dzz/pichome/js/mobile/plug/colorPicker/jquery.minicolors.png differ diff --git a/dzz/pichome/js/mobile/plug/vant/index.css b/dzz/pichome/js/mobile/plug/vant/index.css new file mode 100644 index 0000000..6bb94d1 --- /dev/null +++ b/dzz/pichome/js/mobile/plug/vant/index.css @@ -0,0 +1,7814 @@ +html { + -webkit-tap-highlight-color: transparent +} + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica, Segoe UI, Arial, Roboto, 'PingFang SC', miui, 'Hiragino Sans GB', 'Microsoft Yahei', sans-serif +} + +a { + text-decoration: none +} + +button, +input, +textarea { + color: inherit; + font: inherit +} + +[class*=van-]:focus, +a:focus, +button:focus, +input:focus, +textarea:focus { + outline: 0 +} + +ol, +ul { + margin: 0; + padding: 0; + list-style: none +} + +.van-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis +} + +.van-multi-ellipsis--l2 { + display: -webkit-box; + overflow: hidden; + text-overflow: ellipsis; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical +} + +.van-multi-ellipsis--l3 { + display: -webkit-box; + overflow: hidden; + text-overflow: ellipsis; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical +} + +.van-clearfix::after { + display: table; + clear: both; + content: '' +} + +[class*=van-hairline]::after { + position: absolute; + box-sizing: border-box; + content: ' '; + pointer-events: none; + top: -50%; + right: -50%; + bottom: -50%; + left: -50%; + border: 0 solid #ebedf0; + -webkit-transform: scale(.5); + transform: scale(.5) +} + +.van-hairline, +.van-hairline--bottom, +.van-hairline--left, +.van-hairline--right, +.van-hairline--surround, +.van-hairline--top, +.van-hairline--top-bottom { + position: relative +} + +.van-hairline--top::after { + border-top-width: 1px +} + +.van-hairline--left::after { + border-left-width: 1px +} + +.van-hairline--right::after { + border-right-width: 1px +} + +.van-hairline--bottom::after { + border-bottom-width: 1px +} + +.van-hairline--top-bottom::after, +.van-hairline-unset--top-bottom::after { + border-width: 1px 0 +} + +.van-hairline--surround::after { + border-width: 1px +} + +@-webkit-keyframes van-slide-up-enter { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0) + } +} + +@keyframes van-slide-up-enter { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0) + } +} + +@-webkit-keyframes van-slide-up-leave { + to { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0) + } +} + +@keyframes van-slide-up-leave { + to { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0) + } +} + +@-webkit-keyframes van-slide-down-enter { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0) + } +} + +@keyframes van-slide-down-enter { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0) + } +} + +@-webkit-keyframes van-slide-down-leave { + to { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0) + } +} + +@keyframes van-slide-down-leave { + to { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0) + } +} + +@-webkit-keyframes van-slide-left-enter { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0) + } +} + +@keyframes van-slide-left-enter { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0) + } +} + +@-webkit-keyframes van-slide-left-leave { + to { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0) + } +} + +@keyframes van-slide-left-leave { + to { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0) + } +} + +@-webkit-keyframes van-slide-right-enter { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0) + } +} + +@keyframes van-slide-right-enter { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0) + } +} + +@-webkit-keyframes van-slide-right-leave { + to { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0) + } +} + +@keyframes van-slide-right-leave { + to { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0) + } +} + +@-webkit-keyframes van-fade-in { + from { + opacity: 0 + } + + to { + opacity: 1 + } +} + +@keyframes van-fade-in { + from { + opacity: 0 + } + + to { + opacity: 1 + } +} + +@-webkit-keyframes van-fade-out { + from { + opacity: 1 + } + + to { + opacity: 0 + } +} + +@keyframes van-fade-out { + from { + opacity: 1 + } + + to { + opacity: 0 + } +} + +@-webkit-keyframes van-rotate { + from { + -webkit-transform: rotate(0); + transform: rotate(0) + } + + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +@keyframes van-rotate { + from { + -webkit-transform: rotate(0); + transform: rotate(0) + } + + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +.van-fade-enter-active { + -webkit-animation: .3s van-fade-in both ease-out; + animation: .3s van-fade-in both ease-out +} + +.van-fade-leave-active { + -webkit-animation: .3s van-fade-out both ease-in; + animation: .3s van-fade-out both ease-in +} + +.van-slide-up-enter-active { + -webkit-animation: van-slide-up-enter .3s both ease-out; + animation: van-slide-up-enter .3s both ease-out +} + +.van-slide-up-leave-active { + -webkit-animation: van-slide-up-leave .3s both ease-in; + animation: van-slide-up-leave .3s both ease-in +} + +.van-slide-down-enter-active { + -webkit-animation: van-slide-down-enter .3s both ease-out; + animation: van-slide-down-enter .3s both ease-out +} + +.van-slide-down-leave-active { + -webkit-animation: van-slide-down-leave .3s both ease-in; + animation: van-slide-down-leave .3s both ease-in +} + +.van-slide-left-enter-active { + -webkit-animation: van-slide-left-enter .3s both ease-out; + animation: van-slide-left-enter .3s both ease-out +} + +.van-slide-left-leave-active { + -webkit-animation: van-slide-left-leave .3s both ease-in; + animation: van-slide-left-leave .3s both ease-in +} + +.van-slide-right-enter-active { + -webkit-animation: van-slide-right-enter .3s both ease-out; + animation: van-slide-right-enter .3s both ease-out +} + +.van-slide-right-leave-active { + -webkit-animation: van-slide-right-leave .3s both ease-in; + animation: van-slide-right-leave .3s both ease-in +} + +.van-overlay { + position: fixed; + top: 0; + left: 0; + z-index: 1; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, .7) +} + +.van-info { + position: absolute; + top: 0; + right: 0; + box-sizing: border-box; + min-width: 16px; + padding: 0 3px; + color: #fff; + font-weight: 500; + font-size: 12px; + font-family: -apple-system-font, Helvetica Neue, Arial, sans-serif; + line-height: 1.2; + text-align: center; + background-color: #ee0a24; + border: 1px solid #fff; + border-radius: 16px; + -webkit-transform: translate(50%, -50%); + transform: translate(50%, -50%); + -webkit-transform-origin: 100%; + transform-origin: 100% +} + +.van-info--dot { + width: 8px; + min-width: 0; + height: 8px; + background-color: #ee0a24; + border-radius: 100% +} + +.van-sidebar-item { + position: relative; + display: block; + box-sizing: border-box; + padding: 20px 12px; + overflow: hidden; + color: #323233; + font-size: 14px; + line-height: 20px; + background-color: #f7f8fa; + cursor: pointer; + -webkit-user-select: none; + user-select: none +} + +.van-sidebar-item:active { + background-color: #f2f3f5 +} + +.van-sidebar-item__text { + position: relative; + display: inline-block; + word-break: break-all +} + +.van-sidebar-item:not(:last-child)::after { + border-bottom-width: 1px +} + +.van-sidebar-item--select { + color: #323233; + font-weight: 500 +} + +.van-sidebar-item--select, +.van-sidebar-item--select:active { + background-color: #fff +} + +.van-sidebar-item--select::before { + position: absolute; + top: 50%; + left: 0; + width: 4px; + height: 16px; + background-color: #ee0a24; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + content: '' +} + +.van-sidebar-item--disabled { + color: #c8c9cc; + cursor: not-allowed +} + +.van-sidebar-item--disabled:active { + background-color: #f7f8fa +} + +.van-icon { + position: relative; + display: inline-block; + font: normal normal normal 14px/1 vant-icon; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased +} + +.van-icon:before { + display: inline-block +} + +.van-icon-exchange:before { + content: '\e6af' +} + +.van-icon-eye:before { + content: '\e6b0' +} + +.van-icon-enlarge:before { + content: '\e6b1' +} + +.van-icon-expand-o:before { + content: '\e6b2' +} + +.van-icon-eye-o:before { + content: '\e6b3' +} + +.van-icon-expand:before { + content: '\e6b4' +} + +.van-icon-filter-o:before { + content: '\e6b5' +} + +.van-icon-fire:before { + content: '\e6b6' +} + +.van-icon-fail:before { + content: '\e6b7' +} + +.van-icon-failure:before { + content: '\e6b8' +} + +.van-icon-fire-o:before { + content: '\e6b9' +} + +.van-icon-flag-o:before { + content: '\e6ba' +} + +.van-icon-font:before { + content: '\e6bb' +} + +.van-icon-font-o:before { + content: '\e6bc' +} + +.van-icon-gem-o:before { + content: '\e6bd' +} + +.van-icon-flower-o:before { + content: '\e6be' +} + +.van-icon-gem:before { + content: '\e6bf' +} + +.van-icon-gift-card:before { + content: '\e6c0' +} + +.van-icon-friends:before { + content: '\e6c1' +} + +.van-icon-friends-o:before { + content: '\e6c2' +} + +.van-icon-gold-coin:before { + content: '\e6c3' +} + +.van-icon-gold-coin-o:before { + content: '\e6c4' +} + +.van-icon-good-job-o:before { + content: '\e6c5' +} + +.van-icon-gift:before { + content: '\e6c6' +} + +.van-icon-gift-o:before { + content: '\e6c7' +} + +.van-icon-gift-card-o:before { + content: '\e6c8' +} + +.van-icon-good-job:before { + content: '\e6c9' +} + +.van-icon-home-o:before { + content: '\e6ca' +} + +.van-icon-goods-collect:before { + content: '\e6cb' +} + +.van-icon-graphic:before { + content: '\e6cc' +} + +.van-icon-goods-collect-o:before { + content: '\e6cd' +} + +.van-icon-hot-o:before { + content: '\e6ce' +} + +.van-icon-info:before { + content: '\e6cf' +} + +.van-icon-hotel-o:before { + content: '\e6d0' +} + +.van-icon-info-o:before { + content: '\e6d1' +} + +.van-icon-hot-sale-o:before { + content: '\e6d2' +} + +.van-icon-hot:before { + content: '\e6d3' +} + +.van-icon-like:before { + content: '\e6d4' +} + +.van-icon-idcard:before { + content: '\e6d5' +} + +.van-icon-invitation:before { + content: '\e6d6' +} + +.van-icon-like-o:before { + content: '\e6d7' +} + +.van-icon-hot-sale:before { + content: '\e6d8' +} + +.van-icon-location-o:before { + content: '\e6d9' +} + +.van-icon-location:before { + content: '\e6da' +} + +.van-icon-label:before { + content: '\e6db' +} + +.van-icon-lock:before { + content: '\e6dc' +} + +.van-icon-label-o:before { + content: '\e6dd' +} + +.van-icon-map-marked:before { + content: '\e6de' +} + +.van-icon-logistics:before { + content: '\e6df' +} + +.van-icon-manager:before { + content: '\e6e0' +} + +.van-icon-more:before { + content: '\e6e1' +} + +.van-icon-live:before { + content: '\e6e2' +} + +.van-icon-manager-o:before { + content: '\e6e3' +} + +.van-icon-medal:before { + content: '\e6e4' +} + +.van-icon-more-o:before { + content: '\e6e5' +} + +.van-icon-music-o:before { + content: '\e6e6' +} + +.van-icon-music:before { + content: '\e6e7' +} + +.van-icon-new-arrival-o:before { + content: '\e6e8' +} + +.van-icon-medal-o:before { + content: '\e6e9' +} + +.van-icon-new-o:before { + content: '\e6ea' +} + +.van-icon-free-postage:before { + content: '\e6eb' +} + +.van-icon-newspaper-o:before { + content: '\e6ec' +} + +.van-icon-new-arrival:before { + content: '\e6ed' +} + +.van-icon-minus:before { + content: '\e6ee' +} + +.van-icon-orders-o:before { + content: '\e6ef' +} + +.van-icon-new:before { + content: '\e6f0' +} + +.van-icon-paid:before { + content: '\e6f1' +} + +.van-icon-notes-o:before { + content: '\e6f2' +} + +.van-icon-other-pay:before { + content: '\e6f3' +} + +.van-icon-pause-circle:before { + content: '\e6f4' +} + +.van-icon-pause:before { + content: '\e6f5' +} + +.van-icon-pause-circle-o:before { + content: '\e6f6' +} + +.van-icon-peer-pay:before { + content: '\e6f7' +} + +.van-icon-pending-payment:before { + content: '\e6f8' +} + +.van-icon-passed:before { + content: '\e6f9' +} + +.van-icon-plus:before { + content: '\e6fa' +} + +.van-icon-phone-circle-o:before { + content: '\e6fb' +} + +.van-icon-phone-o:before { + content: '\e6fc' +} + +.van-icon-printer:before { + content: '\e6fd' +} + +.van-icon-photo-fail:before { + content: '\e6fe' +} + +.van-icon-phone:before { + content: '\e6ff' +} + +.van-icon-photo-o:before { + content: '\e700' +} + +.van-icon-play-circle:before { + content: '\e701' +} + +.van-icon-play:before { + content: '\e702' +} + +.van-icon-phone-circle:before { + content: '\e703' +} + +.van-icon-point-gift-o:before { + content: '\e704' +} + +.van-icon-point-gift:before { + content: '\e705' +} + +.van-icon-play-circle-o:before { + content: '\e706' +} + +.van-icon-shrink:before { + content: '\e707' +} + +.van-icon-photo:before { + content: '\e708' +} + +.van-icon-qr:before { + content: '\e709' +} + +.van-icon-qr-invalid:before { + content: '\e70a' +} + +.van-icon-question-o:before { + content: '\e70b' +} + +.van-icon-revoke:before { + content: '\e70c' +} + +.van-icon-replay:before { + content: '\e70d' +} + +.van-icon-service:before { + content: '\e70e' +} + +.van-icon-question:before { + content: '\e70f' +} + +.van-icon-search:before { + content: '\e710' +} + +.van-icon-refund-o:before { + content: '\e711' +} + +.van-icon-service-o:before { + content: '\e712' +} + +.van-icon-scan:before { + content: '\e713' +} + +.van-icon-share:before { + content: '\e714' +} + +.van-icon-send-gift-o:before { + content: '\e715' +} + +.van-icon-share-o:before { + content: '\e716' +} + +.van-icon-setting:before { + content: '\e717' +} + +.van-icon-points:before { + content: '\e718' +} + +.van-icon-photograph:before { + content: '\e719' +} + +.van-icon-shop:before { + content: '\e71a' +} + +.van-icon-shop-o:before { + content: '\e71b' +} + +.van-icon-shop-collect-o:before { + content: '\e71c' +} + +.van-icon-shop-collect:before { + content: '\e71d' +} + +.van-icon-smile:before { + content: '\e71e' +} + +.van-icon-shopping-cart-o:before { + content: '\e71f' +} + +.van-icon-sign:before { + content: '\e720' +} + +.van-icon-sort:before { + content: '\e721' +} + +.van-icon-star-o:before { + content: '\e722' +} + +.van-icon-smile-comment-o:before { + content: '\e723' +} + +.van-icon-stop:before { + content: '\e724' +} + +.van-icon-stop-circle-o:before { + content: '\e725' +} + +.van-icon-smile-o:before { + content: '\e726' +} + +.van-icon-star:before { + content: '\e727' +} + +.van-icon-success:before { + content: '\e728' +} + +.van-icon-stop-circle:before { + content: '\e729' +} + +.van-icon-records:before { + content: '\e72a' +} + +.van-icon-shopping-cart:before { + content: '\e72b' +} + +.van-icon-tosend:before { + content: '\e72c' +} + +.van-icon-todo-list:before { + content: '\e72d' +} + +.van-icon-thumb-circle-o:before { + content: '\e72e' +} + +.van-icon-thumb-circle:before { + content: '\e72f' +} + +.van-icon-umbrella-circle:before { + content: '\e730' +} + +.van-icon-underway:before { + content: '\e731' +} + +.van-icon-upgrade:before { + content: '\e732' +} + +.van-icon-todo-list-o:before { + content: '\e733' +} + +.van-icon-tv-o:before { + content: '\e734' +} + +.van-icon-underway-o:before { + content: '\e735' +} + +.van-icon-user-o:before { + content: '\e736' +} + +.van-icon-vip-card-o:before { + content: '\e737' +} + +.van-icon-vip-card:before { + content: '\e738' +} + +.van-icon-send-gift:before { + content: '\e739' +} + +.van-icon-wap-home:before { + content: '\e73a' +} + +.van-icon-wap-nav:before { + content: '\e73b' +} + +.van-icon-volume-o:before { + content: '\e73c' +} + +.van-icon-video:before { + content: '\e73d' +} + +.van-icon-wap-home-o:before { + content: '\e73e' +} + +.van-icon-volume:before { + content: '\e73f' +} + +.van-icon-warning:before { + content: '\e740' +} + +.van-icon-weapp-nav:before { + content: '\e741' +} + +.van-icon-wechat-pay:before { + content: '\e742' +} + +.van-icon-warning-o:before { + content: '\e743' +} + +.van-icon-wechat:before { + content: '\e744' +} + +.van-icon-setting-o:before { + content: '\e745' +} + +.van-icon-youzan-shield:before { + content: '\e746' +} + +.van-icon-warn-o:before { + content: '\e747' +} + +.van-icon-smile-comment:before { + content: '\e748' +} + +.van-icon-user-circle-o:before { + content: '\e749' +} + +.van-icon-video-o:before { + content: '\e74a' +} + +.van-icon-add-square:before { + content: '\e65c' +} + +.van-icon-add:before { + content: '\e65d' +} + +.van-icon-arrow-down:before { + content: '\e65e' +} + +.van-icon-arrow-up:before { + content: '\e65f' +} + +.van-icon-arrow:before { + content: '\e660' +} + +.van-icon-after-sale:before { + content: '\e661' +} + +.van-icon-add-o:before { + content: '\e662' +} + +.van-icon-alipay:before { + content: '\e663' +} + +.van-icon-ascending:before { + content: '\e664' +} + +.van-icon-apps-o:before { + content: '\e665' +} + +.van-icon-aim:before { + content: '\e666' +} + +.van-icon-award:before { + content: '\e667' +} + +.van-icon-arrow-left:before { + content: '\e668' +} + +.van-icon-award-o:before { + content: '\e669' +} + +.van-icon-audio:before { + content: '\e66a' +} + +.van-icon-bag-o:before { + content: '\e66b' +} + +.van-icon-balance-list:before { + content: '\e66c' +} + +.van-icon-back-top:before { + content: '\e66d' +} + +.van-icon-bag:before { + content: '\e66e' +} + +.van-icon-balance-pay:before { + content: '\e66f' +} + +.van-icon-balance-o:before { + content: '\e670' +} + +.van-icon-bar-chart-o:before { + content: '\e671' +} + +.van-icon-bars:before { + content: '\e672' +} + +.van-icon-balance-list-o:before { + content: '\e673' +} + +.van-icon-birthday-cake-o:before { + content: '\e674' +} + +.van-icon-bookmark:before { + content: '\e675' +} + +.van-icon-bill:before { + content: '\e676' +} + +.van-icon-bell:before { + content: '\e677' +} + +.van-icon-browsing-history-o:before { + content: '\e678' +} + +.van-icon-browsing-history:before { + content: '\e679' +} + +.van-icon-bookmark-o:before { + content: '\e67a' +} + +.van-icon-bulb-o:before { + content: '\e67b' +} + +.van-icon-bullhorn-o:before { + content: '\e67c' +} + +.van-icon-bill-o:before { + content: '\e67d' +} + +.van-icon-calendar-o:before { + content: '\e67e' +} + +.van-icon-brush-o:before { + content: '\e67f' +} + +.van-icon-card:before { + content: '\e680' +} + +.van-icon-cart-o:before { + content: '\e681' +} + +.van-icon-cart-circle:before { + content: '\e682' +} + +.van-icon-cart-circle-o:before { + content: '\e683' +} + +.van-icon-cart:before { + content: '\e684' +} + +.van-icon-cash-on-deliver:before { + content: '\e685' +} + +.van-icon-cash-back-record:before { + content: '\e686' +} + +.van-icon-cashier-o:before { + content: '\e687' +} + +.van-icon-chart-trending-o:before { + content: '\e688' +} + +.van-icon-certificate:before { + content: '\e689' +} + +.van-icon-chat:before { + content: '\e68a' +} + +.van-icon-clear:before { + content: '\e68b' +} + +.van-icon-chat-o:before { + content: '\e68c' +} + +.van-icon-checked:before { + content: '\e68d' +} + +.van-icon-clock:before { + content: '\e68e' +} + +.van-icon-clock-o:before { + content: '\e68f' +} + +.van-icon-close:before { + content: '\e690' +} + +.van-icon-closed-eye:before { + content: '\e691' +} + +.van-icon-circle:before { + content: '\e692' +} + +.van-icon-cluster-o:before { + content: '\e693' +} + +.van-icon-column:before { + content: '\e694' +} + +.van-icon-comment-circle-o:before { + content: '\e695' +} + +.van-icon-cluster:before { + content: '\e696' +} + +.van-icon-comment:before { + content: '\e697' +} + +.van-icon-comment-o:before { + content: '\e698' +} + +.van-icon-comment-circle:before { + content: '\e699' +} + +.van-icon-completed:before { + content: '\e69a' +} + +.van-icon-credit-pay:before { + content: '\e69b' +} + +.van-icon-coupon:before { + content: '\e69c' +} + +.van-icon-debit-pay:before { + content: '\e69d' +} + +.van-icon-coupon-o:before { + content: '\e69e' +} + +.van-icon-contact:before { + content: '\e69f' +} + +.van-icon-descending:before { + content: '\e6a0' +} + +.van-icon-desktop-o:before { + content: '\e6a1' +} + +.van-icon-diamond-o:before { + content: '\e6a2' +} + +.van-icon-description:before { + content: '\e6a3' +} + +.van-icon-delete:before { + content: '\e6a4' +} + +.van-icon-diamond:before { + content: '\e6a5' +} + +.van-icon-delete-o:before { + content: '\e6a6' +} + +.van-icon-cross:before { + content: '\e6a7' +} + +.van-icon-edit:before { + content: '\e6a8' +} + +.van-icon-ellipsis:before { + content: '\e6a9' +} + +.van-icon-down:before { + content: '\e6aa' +} + +.van-icon-discount:before { + content: '\e6ab' +} + +.van-icon-ecard-pay:before { + content: '\e6ac' +} + +.van-icon-envelop-o:before { + content: '\e6ae' +} + +.van-icon-shield-o:before { + content: '\e74b' +} + +.van-icon-guide-o:before { + content: '\e74c' +} + +@font-face { + font-weight: 400; + font-family: vant-icon; + font-style: normal; + font-display: auto; + src: url('data:font/woff2;charset=utf-8;base64,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') format('woff2'), url(//at.alicdn.com/t/font_2553510_61agzg96wm8.woff?t=1631948257467) format('woff'), url(//at.alicdn.com/t/font_2553510_61agzg96wm8.ttf?t=1631948257467) format('truetype') +} + +.van-icon__image { + width: 1em; + height: 1em; + object-fit: contain +} + +.van-tabbar-item { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + color: #646566; + font-size: 12px; + line-height: 1; + cursor: pointer +} + +.van-tabbar-item__icon { + position: relative; + margin-bottom: 4px; + font-size: 22px +} + +.van-tabbar-item__icon .van-icon { + display: block +} + +.van-tabbar-item__icon img { + display: block; + height: 20px +} + +.van-tabbar-item--active { + color: #1989fa; + background-color: #fff +} + +.van-tabbar-item .van-info { + margin-top: 4px +} + +.van-step { + position: relative; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + color: #969799; + font-size: 14px +} + +.van-step__circle { + display: block; + width: 5px; + height: 5px; + background-color: #969799; + border-radius: 50% +} + +.van-step__line { + position: absolute; + background-color: #ebedf0; + -webkit-transition: background-color .3s; + transition: background-color .3s +} + +.van-step--horizontal { + float: left +} + +.van-step--horizontal:first-child .van-step__title { + margin-left: 0; + -webkit-transform: none; + transform: none +} + +.van-step--horizontal:last-child { + position: absolute; + right: 1px; + width: auto +} + +.van-step--horizontal:last-child .van-step__title { + margin-left: 0; + -webkit-transform: none; + transform: none +} + +.van-step--horizontal:last-child .van-step__circle-container { + right: -9px; + left: auto +} + +.van-step--horizontal .van-step__circle-container { + position: absolute; + top: 30px; + left: -8px; + z-index: 1; + padding: 0 8px; + background-color: #fff; + -webkit-transform: translateY(-50%); + transform: translateY(-50%) +} + +.van-step--horizontal .van-step__title { + display: inline-block; + margin-left: 3px; + font-size: 12px; + -webkit-transform: translateX(-50%); + transform: translateX(-50%) +} + +@media (max-width:321px) { + .van-step--horizontal .van-step__title { + font-size: 11px + } +} + +.van-step--horizontal .van-step__line { + top: 30px; + left: 0; + width: 100%; + height: 1px +} + +.van-step--horizontal .van-step__icon { + display: block; + font-size: 12px +} + +.van-step--horizontal .van-step--process { + color: #323233 +} + +.van-step--vertical { + display: block; + float: none; + padding: 10px 10px 10px 0; + line-height: 18px +} + +.van-step--vertical:not(:last-child)::after { + border-bottom-width: 1px +} + +.van-step--vertical .van-step__circle-container { + position: absolute; + top: 19px; + left: -15px; + z-index: 1; + font-size: 12px; + line-height: 1; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%) +} + +.van-step--vertical .van-step__line { + top: 16px; + left: -15px; + width: 1px; + height: 100% +} + +.van-step:last-child .van-step__line { + width: 0 +} + +.van-step--finish { + color: #323233 +} + +.van-step--finish .van-step__circle, +.van-step--finish .van-step__line { + background-color: #07c160 +} + +.van-step__icon, +.van-step__title { + -webkit-transition: color .3s; + transition: color .3s +} + +.van-step__icon--active, +.van-step__icon--finish, +.van-step__title--active, +.van-step__title--finish { + color: #07c160 +} + +.van-rate { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: inline-flex; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; + cursor: pointer; + -webkit-user-select: none; + user-select: none +} + +.van-rate__item { + position: relative +} + +.van-rate__item:not(:last-child) { + padding-right: 4px +} + +.van-rate__icon { + display: block; + width: 1em; + color: #c8c9cc; + font-size: 20px +} + +.van-rate__icon--half { + position: absolute; + top: 0; + left: 0; + width: .5em; + overflow: hidden +} + +.van-rate__icon--full { + color: #ee0a24 +} + +.van-rate__icon--disabled { + color: #c8c9cc +} + +.van-rate--disabled { + cursor: not-allowed +} + +.van-rate--readonly { + cursor: default +} + +.van-notice-bar { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + height: 40px; + padding: 0 16px; + color: #ed6a0c; + font-size: 14px; + line-height: 24px; + background-color: #fffbe8 +} + +.van-notice-bar__left-icon, +.van-notice-bar__right-icon { + min-width: 24px; + font-size: 16px +} + +.van-notice-bar__right-icon { + text-align: right; + cursor: pointer +} + +.van-notice-bar__wrap { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + height: 100%; + overflow: hidden +} + +.van-notice-bar__content { + position: absolute; + white-space: nowrap; + -webkit-transition-timing-function: linear; + transition-timing-function: linear +} + +.van-notice-bar__content.van-ellipsis { + max-width: 100% +} + +.van-notice-bar--wrapable { + height: auto; + padding: 8px 16px +} + +.van-notice-bar--wrapable .van-notice-bar__wrap { + height: auto +} + +.van-notice-bar--wrapable .van-notice-bar__content { + position: relative; + white-space: normal; + word-wrap: break-word +} + +.van-nav-bar { + position: relative; + z-index: 1; + line-height: 22px; + text-align: center; + background-color: #fff; + -webkit-user-select: none; + user-select: none +} + +.van-nav-bar--fixed { + position: fixed; + top: 0; + left: 0; + width: 100% +} + +.van-nav-bar--safe-area-inset-top { + padding-top: constant(safe-area-inset-top); + padding-top: env(safe-area-inset-top) +} + +.van-nav-bar .van-icon { + color: #1989fa +} + +.van-nav-bar__content { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + height: 46px +} + +.van-nav-bar__arrow { + margin-right: 4px; + font-size: 16px +} + +.van-nav-bar__title { + max-width: 60%; + margin: 0 auto; + color: #323233; + font-weight: 500; + font-size: 16px +} + +.van-nav-bar__left, +.van-nav-bar__right { + position: absolute; + top: 0; + bottom: 0; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + padding: 0 16px; + font-size: 14px; + cursor: pointer +} + +.van-nav-bar__left:active, +.van-nav-bar__right:active { + opacity: .7 +} + +.van-nav-bar__left { + left: 0 +} + +.van-nav-bar__right { + right: 0 +} + +.van-nav-bar__text { + color: #1989fa +} + +.van-grid-item { + position: relative; + box-sizing: border-box +} + +.van-grid-item--square { + height: 0 +} + +.van-grid-item__icon { + font-size: 28px +} + +.van-grid-item__icon-wrapper { + position: relative +} + +.van-grid-item__text { + color: #646566; + font-size: 12px; + line-height: 1.5; + word-break: break-all +} + +.van-grid-item__icon+.van-grid-item__text { + margin-top: 8px +} + +.van-grid-item__content { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + box-sizing: border-box; + height: 100%; + padding: 16px 8px; + background-color: #fff +} + +.van-grid-item__content::after { + z-index: 1; + border-width: 0 1px 1px 0 +} + +.van-grid-item__content--square { + position: absolute; + top: 0; + right: 0; + left: 0 +} + +.van-grid-item__content--center { + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center +} + +.van-grid-item__content--horizontal { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + flex-direction: row +} + +.van-grid-item__content--horizontal .van-grid-item__icon+.van-grid-item__text { + margin-top: 0; + margin-left: 8px +} + +.van-grid-item__content--surround::after { + border-width: 1px +} + +.van-grid-item__content--clickable { + cursor: pointer +} + +.van-grid-item__content--clickable:active { + background-color: #f2f3f5 +} + +.van-goods-action-icon { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + min-width: 48px; + height: 100%; + color: #646566; + font-size: 10px; + line-height: 1; + text-align: center; + background-color: #fff; + cursor: pointer +} + +.van-goods-action-icon:active { + background-color: #f2f3f5 +} + +.van-goods-action-icon__icon { + position: relative; + width: 1em; + margin: 0 auto 5px; + color: #323233; + font-size: 18px +} + +.van-checkbox { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + overflow: hidden; + cursor: pointer; + -webkit-user-select: none; + user-select: none +} + +.van-checkbox--disabled { + cursor: not-allowed +} + +.van-checkbox--label-disabled { + cursor: default +} + +.van-checkbox--horizontal { + margin-right: 12px +} + +.van-checkbox__icon { + -webkit-box-flex: 0; + -webkit-flex: none; + flex: none; + height: 1em; + font-size: 20px; + line-height: 1em; + cursor: pointer +} + +.van-checkbox__icon .van-icon { + display: block; + box-sizing: border-box; + width: 1.25em; + height: 1.25em; + color: transparent; + font-size: .8em; + line-height: 1.25; + text-align: center; + border: 1px solid #c8c9cc; + -webkit-transition-duration: .2s; + transition-duration: .2s; + -webkit-transition-property: color, border-color, background-color; + transition-property: color, border-color, background-color +} + +.van-checkbox__icon--round .van-icon { + border-radius: 100% +} + +.van-checkbox__icon--checked .van-icon { + color: #fff; + background-color: #1989fa; + border-color: #1989fa +} + +.van-checkbox__icon--disabled { + cursor: not-allowed +} + +.van-checkbox__icon--disabled .van-icon { + background-color: #ebedf0; + border-color: #c8c9cc +} + +.van-checkbox__icon--disabled.van-checkbox__icon--checked .van-icon { + color: #c8c9cc +} + +.van-checkbox__label { + margin-left: 8px; + color: #323233; + line-height: 20px +} + +.van-checkbox__label--left { + margin: 0 8px 0 0 +} + +.van-checkbox__label--disabled { + color: #c8c9cc +} + +.van-coupon { + margin: 0 12px 12px; + overflow: hidden; + background-color: #fff; + border-radius: 8px; + box-shadow: 0 0 4px rgba(0, 0, 0, .1) +} + +.van-coupon:active { + background-color: #f2f3f5 +} + +.van-coupon__content { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + box-sizing: border-box; + min-height: 84px; + padding: 14px 0; + color: #323233 +} + +.van-coupon__head { + position: relative; + min-width: 96px; + padding: 0 8px; + color: #ee0a24; + text-align: center +} + +.van-coupon__amount, +.van-coupon__condition, +.van-coupon__name, +.van-coupon__valid { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis +} + +.van-coupon__amount { + margin-bottom: 6px; + font-weight: 500; + font-size: 30px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis +} + +.van-coupon__amount span { + font-weight: 400; + font-size: 40% +} + +.van-coupon__amount span:not(:empty) { + margin-left: 2px +} + +.van-coupon__condition { + font-size: 12px; + line-height: 16px; + white-space: pre-wrap +} + +.van-coupon__body { + position: relative; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + border-radius: 0 8px 8px 0 +} + +.van-coupon__name { + margin-bottom: 10px; + font-weight: 700; + font-size: 14px; + line-height: 20px +} + +.van-coupon__valid { + font-size: 12px +} + +.van-coupon__corner { + position: absolute; + top: 0; + right: 16px; + bottom: 0 +} + +.van-coupon__description { + padding: 8px 16px; + font-size: 12px; + border-top: 1px dashed #ebedf0 +} + +.van-coupon--disabled:active { + background-color: #fff +} + +.van-coupon--disabled .van-coupon-item__content { + height: 74px +} + +.van-coupon--disabled .van-coupon__head { + color: inherit +} + +.van-image { + position: relative; + display: inline-block +} + +.van-image--round { + overflow: hidden; + border-radius: 50% +} + +.van-image--round img { + border-radius: inherit +} + +.van-image__error, +.van-image__img, +.van-image__loading { + display: block; + width: 100%; + height: 100% +} + +.van-image__error, +.van-image__loading { + position: absolute; + top: 0; + left: 0; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + color: #969799; + font-size: 14px; + background-color: #f7f8fa +} + +.van-image__loading-icon { + color: #dcdee0; + font-size: 32px +} + +.van-image__error-icon { + color: #dcdee0; + font-size: 32px +} + +.van-radio { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + overflow: hidden; + cursor: pointer; + -webkit-user-select: none; + user-select: none +} + +.van-radio--disabled { + cursor: not-allowed +} + +.van-radio--label-disabled { + cursor: default +} + +.van-radio--horizontal { + margin-right: 12px +} + +.van-radio__icon { + -webkit-box-flex: 0; + -webkit-flex: none; + flex: none; + height: 1em; + font-size: 20px; + line-height: 1em; + cursor: pointer +} + +.van-radio__icon .van-icon { + display: block; + box-sizing: border-box; + width: 1.25em; + height: 1.25em; + color: transparent; + font-size: .8em; + line-height: 1.25; + text-align: center; + border: 1px solid #c8c9cc; + -webkit-transition-duration: .2s; + transition-duration: .2s; + -webkit-transition-property: color, border-color, background-color; + transition-property: color, border-color, background-color +} + +.van-radio__icon--round .van-icon { + border-radius: 100% +} + +.van-radio__icon--checked .van-icon { + color: #fff; + background-color: #1989fa; + border-color: #1989fa +} + +.van-radio__icon--disabled { + cursor: not-allowed +} + +.van-radio__icon--disabled .van-icon { + background-color: #ebedf0; + border-color: #c8c9cc +} + +.van-radio__icon--disabled.van-radio__icon--checked .van-icon { + color: #c8c9cc +} + +.van-radio__label { + margin-left: 8px; + color: #323233; + line-height: 20px +} + +.van-radio__label--left { + margin: 0 8px 0 0 +} + +.van-radio__label--disabled { + color: #c8c9cc +} + +.van-tag { + position: relative; + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: inline-flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + padding: 0 4px; + color: #fff; + font-size: 12px; + line-height: 16px; + border-radius: 2px +} + +.van-tag--default { + background-color: #969799 +} + +.van-tag--default.van-tag--plain { + color: #969799 +} + +.van-tag--danger { + background-color: #ee0a24 +} + +.van-tag--danger.van-tag--plain { + color: #ee0a24 +} + +.van-tag--primary { + background-color: #1989fa +} + +.van-tag--primary.van-tag--plain { + color: #1989fa +} + +.van-tag--success { + background-color: #07c160 +} + +.van-tag--success.van-tag--plain { + color: #07c160 +} + +.van-tag--warning { + background-color: #ff976a +} + +.van-tag--warning.van-tag--plain { + color: #ff976a +} + +.van-tag--plain { + background-color: #fff; + border-color: currentColor +} + +.van-tag--plain::before { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border: 1px solid; + border-color: inherit; + border-radius: inherit; + content: ''; + pointer-events: none +} + +.van-tag--medium { + padding: 2px 6px +} + +.van-tag--large { + padding: 4px 8px; + font-size: 14px; + border-radius: 4px +} + +.van-tag--mark { + border-radius: 0 999px 999px 0 +} + +.van-tag--mark::after { + display: block; + width: 2px; + content: '' +} + +.van-tag--round { + border-radius: 999px +} + +.van-tag__close { + margin-left: 2px; + cursor: pointer +} + +.van-card { + position: relative; + box-sizing: border-box; + padding: 8px 16px; + color: #323233; + font-size: 12px; + background-color: #fafafa +} + +.van-card:not(:first-child) { + margin-top: 8px +} + +.van-card__header { + display: -webkit-box; + display: -webkit-flex; + display: flex +} + +.van-card__thumb { + position: relative; + -webkit-box-flex: 0; + -webkit-flex: none; + flex: none; + width: 88px; + height: 88px; + margin-right: 8px +} + +.van-card__thumb img { + border-radius: 8px +} + +.van-card__content { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + justify-content: space-between; + min-width: 0; + min-height: 88px +} + +.van-card__content--centered { + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center +} + +.van-card__desc, +.van-card__title { + word-wrap: break-word +} + +.van-card__title { + max-height: 32px; + font-weight: 500; + line-height: 16px +} + +.van-card__desc { + max-height: 20px; + color: #646566; + line-height: 20px +} + +.van-card__bottom { + line-height: 20px +} + +.van-card__price { + display: inline-block; + color: #323233; + font-weight: 500; + font-size: 12px +} + +.van-card__price-integer { + font-size: 16px; + font-family: Avenir-Heavy, PingFang SC, Helvetica Neue, Arial, sans-serif +} + +.van-card__price-decimal { + font-family: Avenir-Heavy, PingFang SC, Helvetica Neue, Arial, sans-serif +} + +.van-card__origin-price { + display: inline-block; + margin-left: 5px; + color: #969799; + font-size: 10px; + text-decoration: line-through +} + +.van-card__num { + float: right; + color: #969799 +} + +.van-card__tag { + position: absolute; + top: 2px; + left: 0 +} + +.van-card__footer { + -webkit-box-flex: 0; + -webkit-flex: none; + flex: none; + text-align: right +} + +.van-card__footer .van-button { + margin-left: 5px +} + +.van-cell { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + box-sizing: border-box; + width: 100%; + padding: 10px 16px; + overflow: hidden; + color: #323233; + font-size: 14px; + line-height: 24px; + background-color: #fff +} + +.van-cell::after { + position: absolute; + box-sizing: border-box; + content: ' '; + pointer-events: none; + right: 16px; + bottom: 0; + left: 16px; + border-bottom: 1px solid #ebedf0; + -webkit-transform: scaleY(.5); + transform: scaleY(.5) +} + +.van-cell--borderless::after, +.van-cell:last-child::after { + display: none +} + +.van-cell__label { + margin-top: 4px; + color: #969799; + font-size: 12px; + line-height: 18px +} + +.van-cell__title, +.van-cell__value { + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1 +} + +.van-cell__value { + position: relative; + overflow: hidden; + color: #969799; + text-align: right; + vertical-align: middle; + word-wrap: break-word +} + +.van-cell__value--alone { + color: #323233; + text-align: left +} + +.van-cell__left-icon, +.van-cell__right-icon { + height: 24px; + font-size: 16px; + line-height: 24px +} + +.van-cell__left-icon { + margin-right: 4px +} + +.van-cell__right-icon { + margin-left: 4px; + color: #969799 +} + +.van-cell--clickable { + cursor: pointer +} + +.van-cell--clickable:active { + background-color: #f2f3f5 +} + +.van-cell--required { + overflow: visible +} + +.van-cell--required::before { + position: absolute; + left: 8px; + color: #ee0a24; + font-size: 14px; + content: '*' +} + +.van-cell--center { + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center +} + +.van-cell--large { + padding-top: 12px; + padding-bottom: 12px +} + +.van-cell--large .van-cell__title { + font-size: 16px +} + +.van-cell--large .van-cell__label { + font-size: 14px +} + +.van-coupon-cell__value--selected { + color: #323233 +} + +.van-contact-card { + padding: 16px +} + +.van-contact-card__value { + margin-left: 5px; + line-height: 20px +} + +.van-contact-card--add .van-contact-card__value { + line-height: 40px +} + +.van-contact-card--add .van-cell__left-icon { + color: #1989fa; + font-size: 40px +} + +.van-contact-card::before { + position: absolute; + right: 0; + bottom: 0; + left: 0; + height: 2px; + background: -webkit-repeating-linear-gradient(135deg, #ff6c6c 0, #ff6c6c 20%, transparent 0, transparent 25%, #1989fa 0, #1989fa 45%, transparent 0, transparent 50%); + background: repeating-linear-gradient(-45deg, #ff6c6c 0, #ff6c6c 20%, transparent 0, transparent 25%, #1989fa 0, #1989fa 45%, transparent 0, transparent 50%); + background-size: 80px; + content: '' +} + +.van-collapse-item { + position: relative +} + +.van-collapse-item--border::after { + position: absolute; + box-sizing: border-box; + content: ' '; + pointer-events: none; + top: 0; + right: 16px; + left: 16px; + border-top: 1px solid #ebedf0; + -webkit-transform: scaleY(.5); + transform: scaleY(.5) +} + +.van-collapse-item__title .van-cell__right-icon::before { + -webkit-transform: rotate(90deg) translateZ(0); + transform: rotate(90deg) translateZ(0); + -webkit-transition: -webkit-transform .3s; + transition: -webkit-transform .3s; + transition: transform .3s; + transition: transform .3s, -webkit-transform .3s +} + +.van-collapse-item__title::after { + right: 16px; + display: none +} + +.van-collapse-item__title--expanded .van-cell__right-icon::before { + -webkit-transform: rotate(-90deg); + transform: rotate(-90deg) +} + +.van-collapse-item__title--expanded::after { + display: block +} + +.van-collapse-item__title--borderless::after { + display: none +} + +.van-collapse-item__title--disabled { + cursor: not-allowed +} + +.van-collapse-item__title--disabled, +.van-collapse-item__title--disabled .van-cell__right-icon { + color: #c8c9cc +} + +.van-collapse-item__title--disabled:active { + background-color: #fff +} + +.van-collapse-item__wrapper { + overflow: hidden; + -webkit-transition: height .3s ease-in-out; + transition: height .3s ease-in-out; + will-change: height +} + +.van-collapse-item__content { + padding: 12px 16px; + color: #969799; + font-size: 14px; + line-height: 1.5; + background-color: #fff +} + +.van-field__label { + -webkit-box-flex: 0; + -webkit-flex: none; + flex: none; + box-sizing: border-box; + width: 6.2em; + margin-right: 12px; + color: #646566; + text-align: left; + word-wrap: break-word +} + +.van-field__label--center { + text-align: center +} + +.van-field__label--right { + text-align: right +} + +.van-field--disabled .van-field__label { + color: #c8c9cc +} + +.van-field__value { + overflow: visible +} + +.van-field__body { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center +} + +.van-field__control { + display: block; + box-sizing: border-box; + width: 100%; + min-width: 0; + margin: 0; + padding: 0; + color: #323233; + line-height: inherit; + text-align: left; + background-color: transparent; + border: 0; + resize: none +} + +.van-field__control::-webkit-input-placeholder { + color: #c8c9cc +} + +.van-field__control::placeholder { + color: #c8c9cc +} + +.van-field__control:disabled { + color: #c8c9cc; + cursor: not-allowed; + opacity: 1; + -webkit-text-fill-color: #c8c9cc +} + +.van-field__control:read-only { + cursor: default +} + +.van-field__control--center { + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + text-align: center +} + +.van-field__control--right { + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + justify-content: flex-end; + text-align: right +} + +.van-field__control--custom { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + min-height: 24px +} + +.van-field__control[type=date], +.van-field__control[type=datetime-local], +.van-field__control[type=time] { + min-height: 24px +} + +.van-field__control[type=search] { + -webkit-appearance: none +} + +.van-field__button, +.van-field__clear, +.van-field__icon, +.van-field__right-icon { + -webkit-flex-shrink: 0; + flex-shrink: 0 +} + +.van-field__clear, +.van-field__right-icon { + margin-right: -8px; + padding: 0 8px; + line-height: inherit +} + +.van-field__clear { + color: #c8c9cc; + font-size: 16px; + cursor: pointer +} + +.van-field__left-icon .van-icon, +.van-field__right-icon .van-icon { + display: block; + font-size: 16px; + line-height: inherit +} + +.van-field__left-icon { + margin-right: 4px +} + +.van-field__right-icon { + color: #969799 +} + +.van-field__button { + padding-left: 8px +} + +.van-field__error-message { + color: #ee0a24; + font-size: 12px; + text-align: left +} + +.van-field__error-message--center { + text-align: center +} + +.van-field__error-message--right { + text-align: right +} + +.van-field__word-limit { + margin-top: 4px; + color: #646566; + font-size: 12px; + line-height: 16px; + text-align: right +} + +.van-field--error .van-field__control::-webkit-input-placeholder { + color: #ee0a24; + -webkit-text-fill-color: currentColor +} + +.van-field--error .van-field__control, +.van-field--error .van-field__control::placeholder { + color: #ee0a24; + -webkit-text-fill-color: currentColor +} + +.van-field--min-height .van-field__control { + min-height: 60px +} + +.van-search { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + box-sizing: border-box; + padding: 10px 12px; + background-color: #fff +} + +.van-search__content { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + padding-left: 12px; + background-color: #f7f8fa; + border-radius: 2px +} + +.van-search__content--round { + border-radius: 999px +} + +.van-search__label { + padding: 0 5px; + color: #323233; + font-size: 14px; + line-height: 34px +} + +.van-search .van-cell { + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + padding: 5px 8px 5px 0; + background-color: transparent +} + +.van-search .van-cell__left-icon { + color: #969799 +} + +.van-search--show-action { + padding-right: 0 +} + +.van-search input::-webkit-search-cancel-button, +.van-search input::-webkit-search-decoration, +.van-search input::-webkit-search-results-button, +.van-search input::-webkit-search-results-decoration { + display: none +} + +.van-search__action { + padding: 0 8px; + color: #323233; + font-size: 14px; + line-height: 34px; + cursor: pointer; + -webkit-user-select: none; + user-select: none +} + +.van-search__action:active { + background-color: #f2f3f5 +} + +.van-overflow-hidden { + overflow: hidden !important +} + +.van-popup { + position: fixed; + max-height: 100%; + overflow-y: auto; + background-color: #fff; + -webkit-transition: -webkit-transform .3s; + transition: -webkit-transform .3s; + transition: transform .3s; + transition: transform .3s, -webkit-transform .3s; + -webkit-overflow-scrolling: touch +} + +.van-popup--center { + top: 50%; + left: 50%; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0) +} + +.van-popup--center.van-popup--round { + border-radius: 16px +} + +.van-popup--top { + top: 0; + left: 0; + width: 100% +} + +.van-popup--top.van-popup--round { + border-radius: 0 0 16px 16px +} + +.van-popup--right { + top: 50%; + right: 0; + -webkit-transform: translate3d(0, -50%, 0); + transform: translate3d(0, -50%, 0) +} + +.van-popup--right.van-popup--round { + border-radius: 16px 0 0 16px +} + +.van-popup--bottom { + bottom: 0; + left: 0; + width: 100% +} + +.van-popup--bottom.van-popup--round { + border-radius: 16px 16px 0 0 +} + +.van-popup--left { + top: 50%; + left: 0; + -webkit-transform: translate3d(0, -50%, 0); + transform: translate3d(0, -50%, 0) +} + +.van-popup--left.van-popup--round { + border-radius: 0 16px 16px 0 +} + +.van-popup--safe-area-inset-bottom { + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom) +} + +.van-popup-slide-bottom-enter-active, +.van-popup-slide-left-enter-active, +.van-popup-slide-right-enter-active, +.van-popup-slide-top-enter-active { + -webkit-transition-timing-function: ease-out; + transition-timing-function: ease-out +} + +.van-popup-slide-bottom-leave-active, +.van-popup-slide-left-leave-active, +.van-popup-slide-right-leave-active, +.van-popup-slide-top-leave-active { + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in +} + +.van-popup-slide-top-enter, +.van-popup-slide-top-leave-active { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0) +} + +.van-popup-slide-right-enter, +.van-popup-slide-right-leave-active { + -webkit-transform: translate3d(100%, -50%, 0); + transform: translate3d(100%, -50%, 0) +} + +.van-popup-slide-bottom-enter, +.van-popup-slide-bottom-leave-active { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0) +} + +.van-popup-slide-left-enter, +.van-popup-slide-left-leave-active { + -webkit-transform: translate3d(-100%, -50%, 0); + transform: translate3d(-100%, -50%, 0) +} + +.van-popup__close-icon { + position: absolute; + z-index: 1; + color: #c8c9cc; + font-size: 22px; + cursor: pointer +} + +.van-popup__close-icon:active { + color: #969799 +} + +.van-popup__close-icon--top-left { + top: 16px; + left: 16px +} + +.van-popup__close-icon--top-right { + top: 16px; + right: 16px +} + +.van-popup__close-icon--bottom-left { + bottom: 16px; + left: 16px +} + +.van-popup__close-icon--bottom-right { + right: 16px; + bottom: 16px +} + +.van-share-sheet__header { + padding: 12px 16px 4px; + text-align: center +} + +.van-share-sheet__title { + margin-top: 8px; + color: #323233; + font-weight: 400; + font-size: 14px; + line-height: 20px +} + +.van-share-sheet__description { + display: block; + margin-top: 8px; + color: #969799; + font-size: 12px; + line-height: 16px +} + +.van-share-sheet__options { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + padding: 16px 0 16px 8px; + overflow-x: auto; + overflow-y: visible; + -webkit-overflow-scrolling: touch +} + +.van-share-sheet__options--border::before { + position: absolute; + box-sizing: border-box; + content: ' '; + pointer-events: none; + top: 0; + right: 0; + left: 16px; + border-top: 1px solid #ebedf0; + -webkit-transform: scaleY(.5); + transform: scaleY(.5) +} + +.van-share-sheet__options::-webkit-scrollbar { + height: 0 +} + +.van-share-sheet__option { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + cursor: pointer; + -webkit-user-select: none; + user-select: none +} + +.van-share-sheet__option:active { + opacity: .7 +} + +.van-share-sheet__icon { + width: 48px; + height: 48px; + margin: 0 16px +} + +.van-share-sheet__name { + margin-top: 8px; + padding: 0 4px; + color: #646566; + font-size: 12px +} + +.van-share-sheet__option-description { + padding: 0 4px; + color: #c8c9cc; + font-size: 12px +} + +.van-share-sheet__cancel { + display: block; + width: 100%; + padding: 0; + font-size: 16px; + line-height: 48px; + text-align: center; + background: #fff; + border: none; + cursor: pointer +} + +.van-share-sheet__cancel::before { + display: block; + height: 8px; + background-color: #f7f8fa; + content: ' ' +} + +.van-share-sheet__cancel:active { + background-color: #f2f3f5 +} + +.van-popover { + position: absolute; + overflow: visible; + background-color: transparent; + -webkit-transition: opacity .15s, -webkit-transform .15s; + transition: opacity .15s, -webkit-transform .15s; + transition: opacity .15s, transform .15s; + transition: opacity .15s, transform .15s, -webkit-transform .15s +} + +.van-popover__wrapper { + display: inline-block +} + +.van-popover__arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-width: 6px +} + +.van-popover__content { + overflow: hidden; + border-radius: 8px +} + +.van-popover__action { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + box-sizing: border-box; + width: 128px; + height: 44px; + padding: 0 16px; + font-size: 14px; + line-height: 20px; + cursor: pointer +} + +.van-popover__action:last-child .van-popover__action-text::after { + display: none +} + +.van-popover__action-text { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + height: 100% +} + +.van-popover__action-icon { + margin-right: 8px; + font-size: 20px +} + +.van-popover__action--with-icon .van-popover__action-text { + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + justify-content: flex-start +} + +.van-popover[data-popper-placement^=top] .van-popover__arrow { + bottom: 0; + border-top-color: currentColor; + border-bottom-width: 0; + -webkit-transform: translate(-50%, 100%); + transform: translate(-50%, 100%) +} + +.van-popover[data-popper-placement=top] { + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100% +} + +.van-popover[data-popper-placement=top] .van-popover__arrow { + left: 50% +} + +.van-popover[data-popper-placement=top-start] { + -webkit-transform-origin: 0 100%; + transform-origin: 0 100% +} + +.van-popover[data-popper-placement=top-start] .van-popover__arrow { + left: 16px +} + +.van-popover[data-popper-placement=top-end] { + -webkit-transform-origin: 100% 100%; + transform-origin: 100% 100% +} + +.van-popover[data-popper-placement=top-end] .van-popover__arrow { + right: 16px +} + +.van-popover[data-popper-placement^=left] .van-popover__arrow { + right: 0; + border-right-width: 0; + border-left-color: currentColor; + -webkit-transform: translate(100%, -50%); + transform: translate(100%, -50%) +} + +.van-popover[data-popper-placement=left] { + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50% +} + +.van-popover[data-popper-placement=left] .van-popover__arrow { + top: 50% +} + +.van-popover[data-popper-placement=left-start] { + -webkit-transform-origin: 100% 0; + transform-origin: 100% 0 +} + +.van-popover[data-popper-placement=left-start] .van-popover__arrow { + top: 16px +} + +.van-popover[data-popper-placement=left-end] { + -webkit-transform-origin: 100% 100%; + transform-origin: 100% 100% +} + +.van-popover[data-popper-placement=left-end] .van-popover__arrow { + bottom: 16px +} + +.van-popover[data-popper-placement^=right] .van-popover__arrow { + left: 0; + border-right-color: currentColor; + border-left-width: 0; + -webkit-transform: translate(-100%, -50%); + transform: translate(-100%, -50%) +} + +.van-popover[data-popper-placement=right] { + -webkit-transform-origin: 0 50%; + transform-origin: 0 50% +} + +.van-popover[data-popper-placement=right] .van-popover__arrow { + top: 50% +} + +.van-popover[data-popper-placement=right-start] { + -webkit-transform-origin: 0 0; + transform-origin: 0 0 +} + +.van-popover[data-popper-placement=right-start] .van-popover__arrow { + top: 16px +} + +.van-popover[data-popper-placement=right-end] { + -webkit-transform-origin: 0 100%; + transform-origin: 0 100% +} + +.van-popover[data-popper-placement=right-end] .van-popover__arrow { + bottom: 16px +} + +.van-popover[data-popper-placement^=bottom] .van-popover__arrow { + top: 0; + border-top-width: 0; + border-bottom-color: currentColor; + -webkit-transform: translate(-50%, -100%); + transform: translate(-50%, -100%) +} + +.van-popover[data-popper-placement=bottom] { + -webkit-transform-origin: 50% 0; + transform-origin: 50% 0 +} + +.van-popover[data-popper-placement=bottom] .van-popover__arrow { + left: 50% +} + +.van-popover[data-popper-placement=bottom-start] { + -webkit-transform-origin: 0 0; + transform-origin: 0 0 +} + +.van-popover[data-popper-placement=bottom-start] .van-popover__arrow { + left: 16px +} + +.van-popover[data-popper-placement=bottom-end] { + -webkit-transform-origin: 100% 0; + transform-origin: 100% 0 +} + +.van-popover[data-popper-placement=bottom-end] .van-popover__arrow { + right: 16px +} + +.van-popover--light { + color: #323233 +} + +.van-popover--light .van-popover__content { + background-color: #fff; + box-shadow: 0 2px 12px rgba(50, 50, 51, .12) +} + +.van-popover--light .van-popover__arrow { + color: #fff +} + +.van-popover--light .van-popover__action:active { + background-color: #f2f3f5 +} + +.van-popover--light .van-popover__action--disabled { + color: #c8c9cc; + cursor: not-allowed +} + +.van-popover--light .van-popover__action--disabled:active { + background-color: transparent +} + +.van-popover--dark { + color: #fff +} + +.van-popover--dark .van-popover__content { + background-color: #4a4a4a +} + +.van-popover--dark .van-popover__arrow { + color: #4a4a4a +} + +.van-popover--dark .van-popover__action:active { + background-color: rgba(0, 0, 0, .2) +} + +.van-popover--dark .van-popover__action--disabled { + color: #969799 +} + +.van-popover--dark .van-popover__action--disabled:active { + background-color: transparent +} + +.van-popover--dark .van-popover__action-text::after { + border-color: #646566 +} + +.van-popover-zoom-enter, +.van-popover-zoom-leave-active { + -webkit-transform: scale(.8); + transform: scale(.8); + opacity: 0 +} + +.van-popover-zoom-enter-active { + -webkit-transition-timing-function: ease-out; + transition-timing-function: ease-out +} + +.van-popover-zoom-leave-active { + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in +} + +.van-notify { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + box-sizing: border-box; + padding: 8px 16px; + color: #fff; + font-size: 14px; + line-height: 20px; + white-space: pre-wrap; + text-align: center; + word-wrap: break-word +} + +.van-notify--primary { + background-color: #1989fa +} + +.van-notify--success { + background-color: #07c160 +} + +.van-notify--danger { + background-color: #ee0a24 +} + +.van-notify--warning { + background-color: #ff976a +} + +.van-dropdown-item { + position: fixed; + right: 0; + left: 0; + z-index: 10; + overflow: hidden +} + +.van-dropdown-item__icon { + display: block; + line-height: inherit +} + +.van-dropdown-item__option { + text-align: left +} + +.van-dropdown-item__option--active { + color: #ee0a24 +} + +.van-dropdown-item__option--active .van-dropdown-item__icon { + color: #ee0a24 +} + +.van-dropdown-item--up { + top: 0 +} + +.van-dropdown-item--down { + bottom: 0 +} + +.van-dropdown-item__content { + position: absolute; + max-height: 80% +} + +.van-loading { + position: relative; + color: #c8c9cc; + font-size: 0; + vertical-align: middle +} + +.van-loading__spinner { + position: relative; + display: inline-block; + width: 30px; + max-width: 100%; + height: 30px; + max-height: 100%; + vertical-align: middle; + -webkit-animation: van-rotate .8s linear infinite; + animation: van-rotate .8s linear infinite +} + +.van-loading__spinner--spinner { + -webkit-animation-timing-function: steps(12); + animation-timing-function: steps(12) +} + +.van-loading__spinner--spinner i { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% +} + +.van-loading__spinner--spinner i::before { + display: block; + width: 2px; + height: 25%; + margin: 0 auto; + background-color: currentColor; + border-radius: 40%; + content: ' ' +} + +.van-loading__spinner--circular { + -webkit-animation-duration: 2s; + animation-duration: 2s +} + +.van-loading__circular { + display: block; + width: 100%; + height: 100% +} + +.van-loading__circular circle { + -webkit-animation: van-circular 1.5s ease-in-out infinite; + animation: van-circular 1.5s ease-in-out infinite; + stroke: currentColor; + stroke-width: 3; + stroke-linecap: round +} + +.van-loading__text { + display: inline-block; + margin-left: 8px; + color: #969799; + font-size: 14px; + vertical-align: middle +} + +.van-loading--vertical { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center +} + +.van-loading--vertical .van-loading__text { + margin: 8px 0 0 +} + +@-webkit-keyframes van-circular { + 0% { + stroke-dasharray: 1, 200; + stroke-dashoffset: 0 + } + + 50% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -40 + } + + 100% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -120 + } +} + +@keyframes van-circular { + 0% { + stroke-dasharray: 1, 200; + stroke-dashoffset: 0 + } + + 50% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -40 + } + + 100% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -120 + } +} + +.van-loading__spinner--spinner i:nth-of-type(1) { + -webkit-transform: rotate(30deg); + transform: rotate(30deg); + opacity: 1 +} + +.van-loading__spinner--spinner i:nth-of-type(2) { + -webkit-transform: rotate(60deg); + transform: rotate(60deg); + opacity: .9375 +} + +.van-loading__spinner--spinner i:nth-of-type(3) { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + opacity: .875 +} + +.van-loading__spinner--spinner i:nth-of-type(4) { + -webkit-transform: rotate(120deg); + transform: rotate(120deg); + opacity: .8125 +} + +.van-loading__spinner--spinner i:nth-of-type(5) { + -webkit-transform: rotate(150deg); + transform: rotate(150deg); + opacity: .75 +} + +.van-loading__spinner--spinner i:nth-of-type(6) { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); + opacity: .6875 +} + +.van-loading__spinner--spinner i:nth-of-type(7) { + -webkit-transform: rotate(210deg); + transform: rotate(210deg); + opacity: .625 +} + +.van-loading__spinner--spinner i:nth-of-type(8) { + -webkit-transform: rotate(240deg); + transform: rotate(240deg); + opacity: .5625 +} + +.van-loading__spinner--spinner i:nth-of-type(9) { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); + opacity: .5 +} + +.van-loading__spinner--spinner i:nth-of-type(10) { + -webkit-transform: rotate(300deg); + transform: rotate(300deg); + opacity: .4375 +} + +.van-loading__spinner--spinner i:nth-of-type(11) { + -webkit-transform: rotate(330deg); + transform: rotate(330deg); + opacity: .375 +} + +.van-loading__spinner--spinner i:nth-of-type(12) { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + opacity: .3125 +} + +.van-pull-refresh { + overflow: hidden; + -webkit-user-select: none; + user-select: none +} + +.van-pull-refresh__track { + position: relative; + height: 100%; + -webkit-transition-property: -webkit-transform; + transition-property: -webkit-transform; + transition-property: transform; + transition-property: transform, -webkit-transform +} + +.van-pull-refresh__head { + position: absolute; + left: 0; + width: 100%; + height: 50px; + overflow: hidden; + color: #969799; + font-size: 14px; + line-height: 50px; + text-align: center; + -webkit-transform: translateY(-100%); + transform: translateY(-100%) +} + +.van-number-keyboard { + position: fixed; + bottom: 0; + left: 0; + z-index: 100; + width: 100%; + padding-bottom: 22px; + background-color: #f2f3f5; + -webkit-user-select: none; + user-select: none +} + +.van-number-keyboard--with-title { + border-radius: 20px 20px 0 0 +} + +.van-number-keyboard__header { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + box-sizing: content-box; + height: 34px; + padding-top: 6px; + color: #646566; + font-size: 16px +} + +.van-number-keyboard__title { + display: inline-block; + font-weight: 400 +} + +.van-number-keyboard__title-left { + position: absolute; + left: 0 +} + +.van-number-keyboard__body { + display: -webkit-box; + display: -webkit-flex; + display: flex; + padding: 6px 0 0 6px +} + +.van-number-keyboard__keys { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-flex: 3; + -webkit-flex: 3; + flex: 3; + -webkit-flex-wrap: wrap; + flex-wrap: wrap +} + +.van-number-keyboard__close { + position: absolute; + right: 0; + height: 100%; + padding: 0 16px; + color: #576b95; + font-size: 14px; + background-color: transparent; + border: none; + cursor: pointer +} + +.van-number-keyboard__close:active { + opacity: .7 +} + +.van-number-keyboard__sidebar { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column +} + +.van-number-keyboard--unfit { + padding-bottom: 0 +} + +.van-key { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + height: 48px; + font-size: 28px; + line-height: 1.5; + background-color: #fff; + border-radius: 8px; + cursor: pointer +} + +.van-key--large { + position: absolute; + top: 0; + right: 6px; + bottom: 6px; + left: 0; + height: auto +} + +.van-key--blue, +.van-key--delete { + font-size: 16px +} + +.van-key--active { + background-color: #ebedf0 +} + +.van-key--blue { + color: #fff; + background-color: #1989fa +} + +.van-key--blue.van-key--active { + background-color: #0570db +} + +.van-key__wrapper { + position: relative; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + -webkit-flex-basis: 33%; + flex-basis: 33%; + box-sizing: border-box; + padding: 0 6px 6px 0 +} + +.van-key__wrapper--wider { + -webkit-flex-basis: 66%; + flex-basis: 66% +} + +.van-key__delete-icon { + width: 32px; + height: 22px +} + +.van-key__collapse-icon { + width: 30px; + height: 24px +} + +.van-key__loading-icon { + color: #fff +} + +.van-list__error-text, +.van-list__finished-text, +.van-list__loading { + color: #969799; + font-size: 14px; + line-height: 50px; + text-align: center +} + +.van-list__placeholder { + height: 0; + pointer-events: none +} + +.van-switch { + position: relative; + display: inline-block; + box-sizing: content-box; + width: 2em; + height: 1em; + font-size: 30px; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, .1); + border-radius: 1em; + cursor: pointer; + -webkit-transition: background-color .3s; + transition: background-color .3s +} + +.van-switch__node { + position: absolute; + top: 0; + left: 0; + width: 1em; + height: 1em; + background-color: #fff; + border-radius: 100%; + box-shadow: 0 3px 1px 0 rgba(0, 0, 0, .05), 0 2px 2px 0 rgba(0, 0, 0, .1), 0 3px 3px 0 rgba(0, 0, 0, .05); + -webkit-transition: -webkit-transform .3s cubic-bezier(.3, 1.05, .4, 1.05); + transition: -webkit-transform .3s cubic-bezier(.3, 1.05, .4, 1.05); + transition: transform .3s cubic-bezier(.3, 1.05, .4, 1.05); + transition: transform .3s cubic-bezier(.3, 1.05, .4, 1.05), -webkit-transform .3s cubic-bezier(.3, 1.05, .4, 1.05) +} + +.van-switch__loading { + top: 25%; + left: 25%; + width: 50%; + height: 50%; + line-height: 1 +} + +.van-switch--on { + background-color: #1989fa +} + +.van-switch--on .van-switch__node { + -webkit-transform: translateX(1em); + transform: translateX(1em) +} + +.van-switch--on .van-switch__loading { + color: #1989fa +} + +.van-switch--disabled { + cursor: not-allowed; + opacity: .5 +} + +.van-switch--loading { + cursor: default +} + +.van-switch-cell { + padding-top: 9px; + padding-bottom: 9px +} + +.van-switch-cell--large { + padding-top: 11px; + padding-bottom: 11px +} + +.van-switch-cell .van-switch { + float: right +} + +.van-button { + position: relative; + display: inline-block; + box-sizing: border-box; + height: 44px; + margin: 0; + padding: 0; + font-size: 16px; + line-height: 1.2; + text-align: center; + border-radius: 2px; + cursor: pointer; + -webkit-transition: opacity .2s; + transition: opacity .2s; + -webkit-appearance: none +} + +.van-button::before { + position: absolute; + top: 50%; + left: 50%; + width: 100%; + height: 100%; + background-color: #000; + border: inherit; + border-color: #000; + border-radius: inherit; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + opacity: 0; + content: ' ' +} + +.van-button:active::before { + opacity: .1 +} + +.van-button--disabled::before, +.van-button--loading::before { + display: none +} + +.van-button--default { + color: #323233; + background-color: #fff; + border: 1px solid #ebedf0 +} + +.van-button--primary { + color: #fff; + background-color: #07c160; + border: 1px solid #07c160 +} + +.van-button--info { + color: #fff; + background-color: #1989fa; + border: 1px solid #1989fa +} + +.van-button--danger { + color: #fff; + background-color: #ee0a24; + border: 1px solid #ee0a24 +} + +.van-button--warning { + color: #fff; + background-color: #ff976a; + border: 1px solid #ff976a +} + +.van-button--plain { + background-color: #fff +} + +.van-button--plain.van-button--primary { + color: #07c160 +} + +.van-button--plain.van-button--info { + color: #1989fa +} + +.van-button--plain.van-button--danger { + color: #ee0a24 +} + +.van-button--plain.van-button--warning { + color: #ff976a +} + +.van-button--large { + width: 100%; + height: 50px +} + +.van-button--normal { + padding: 0 15px; + font-size: 14px +} + +.van-button--small { + height: 32px; + padding: 0 8px; + font-size: 12px +} + +.van-button__loading { + color: inherit; + font-size: inherit +} + +.van-button--mini { + height: 24px; + padding: 0 4px; + font-size: 10px +} + +.van-button--mini+.van-button--mini { + margin-left: 4px +} + +.van-button--block { + display: block; + width: 100% +} + +.van-button--disabled { + cursor: not-allowed; + opacity: .5 +} + +.van-button--loading { + cursor: default +} + +.van-button--round { + border-radius: 999px +} + +.van-button--square { + border-radius: 0 +} + +.van-button__content { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + height: 100% +} + +.van-button__content::before { + content: ' ' +} + +.van-button__icon { + font-size: 1.2em; + line-height: inherit +} + +.van-button__icon+.van-button__text, +.van-button__loading+.van-button__text, +.van-button__text+.van-button__icon, +.van-button__text+.van-button__loading { + margin-left: 4px +} + +.van-button--hairline { + border-width: 0 +} + +.van-button--hairline::after { + border-color: inherit; + border-radius: 4px +} + +.van-button--hairline.van-button--round::after { + border-radius: 999px +} + +.van-button--hairline.van-button--square::after { + border-radius: 0 +} + +.van-submit-bar { + position: fixed; + bottom: 0; + left: 0; + z-index: 100; + width: 100%; + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom); + background-color: #fff; + -webkit-user-select: none; + user-select: none +} + +.van-submit-bar__tip { + padding: 8px 12px; + color: #f56723; + font-size: 12px; + line-height: 1.5; + background-color: #fff7cc +} + +.van-submit-bar__tip-icon { + min-width: 18px; + font-size: 12px; + vertical-align: middle +} + +.van-submit-bar__tip-text { + vertical-align: middle +} + +.van-submit-bar__bar { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + justify-content: flex-end; + height: 50px; + padding: 0 16px; + font-size: 14px +} + +.van-submit-bar__text { + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + padding-right: 12px; + color: #323233; + text-align: right +} + +.van-submit-bar__text span { + display: inline-block +} + +.van-submit-bar__suffix-label { + margin-left: 5px; + font-weight: 500 +} + +.van-submit-bar__price { + color: #ee0a24; + font-weight: 500; + font-size: 12px +} + +.van-submit-bar__price--integer { + font-size: 20px; + font-family: Avenir-Heavy, PingFang SC, Helvetica Neue, Arial, sans-serif +} + +.van-submit-bar__button { + width: 110px; + height: 40px; + font-weight: 500; + border: none +} + +.van-submit-bar__button--danger { + background: -webkit-linear-gradient(left, #ff6034, #ee0a24); + background: linear-gradient(to right, #ff6034, #ee0a24) +} + +.van-submit-bar--unfit { + padding-bottom: 0 +} + +.van-goods-action-button { + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + height: 40px; + font-weight: 500; + font-size: 14px; + border: none; + border-radius: 0 +} + +.van-goods-action-button--first { + margin-left: 5px; + border-top-left-radius: 999px; + border-bottom-left-radius: 999px +} + +.van-goods-action-button--last { + margin-right: 5px; + border-top-right-radius: 999px; + border-bottom-right-radius: 999px +} + +.van-goods-action-button--warning { + background: -webkit-linear-gradient(left, #ffd01e, #ff8917); + background: linear-gradient(to right, #ffd01e, #ff8917) +} + +.van-goods-action-button--danger { + background: -webkit-linear-gradient(left, #ff6034, #ee0a24); + background: linear-gradient(to right, #ff6034, #ee0a24) +} + +@media (max-width:321px) { + .van-goods-action-button { + font-size: 13px + } +} + +.van-toast { + position: fixed; + top: 50%; + left: 50%; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + box-sizing: content-box; + width: 88px; + max-width: 70%; + min-height: 88px; + padding: 16px; + color: #fff; + font-size: 14px; + line-height: 20px; + white-space: pre-wrap; + text-align: center; + word-break: break-all; + background-color: rgba(0, 0, 0, .7); + border-radius: 8px; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0) +} + +.van-toast--unclickable { + overflow: hidden +} + +.van-toast--unclickable * { + pointer-events: none +} + +.van-toast--html, +.van-toast--text { + width: -webkit-fit-content; + width: fit-content; + min-width: 96px; + min-height: 0; + padding: 8px 12px +} + +.van-toast--html .van-toast__text, +.van-toast--text .van-toast__text { + margin-top: 0 +} + +.van-toast--top { + top: 20% +} + +.van-toast--bottom { + top: auto; + bottom: 20% +} + +.van-toast__icon { + font-size: 36px +} + +.van-toast__loading { + padding: 4px; + color: #fff +} + +.van-toast__text { + margin-top: 8px +} + +.van-calendar { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + height: 100%; + background-color: #fff +} + +.van-calendar__popup.van-popup--bottom, +.van-calendar__popup.van-popup--top { + height: 80% +} + +.van-calendar__popup.van-popup--left, +.van-calendar__popup.van-popup--right { + height: 100% +} + +.van-calendar__popup .van-popup__close-icon { + top: 11px +} + +.van-calendar__header { + -webkit-flex-shrink: 0; + flex-shrink: 0; + box-shadow: 0 2px 10px rgba(125, 126, 128, .16) +} + +.van-calendar__header-subtitle, +.van-calendar__header-title, +.van-calendar__month-title { + height: 44px; + font-weight: 500; + line-height: 44px; + text-align: center +} + +.van-calendar__header-title { + font-size: 16px +} + +.van-calendar__header-subtitle { + font-size: 14px +} + +.van-calendar__month-title { + font-size: 14px +} + +.van-calendar__weekdays { + display: -webkit-box; + display: -webkit-flex; + display: flex +} + +.van-calendar__weekday { + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + font-size: 12px; + line-height: 30px; + text-align: center +} + +.van-calendar__body { + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + overflow: auto; + -webkit-overflow-scrolling: touch +} + +.van-calendar__days { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-user-select: none; + user-select: none +} + +.van-calendar__month-mark { + position: absolute; + top: 50%; + left: 50%; + z-index: 0; + color: rgba(242, 243, 245, .8); + font-size: 160px; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + pointer-events: none +} + +.van-calendar__day, +.van-calendar__selected-day { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + text-align: center +} + +.van-calendar__day { + position: relative; + width: 14.285%; + height: 64px; + font-size: 16px; + cursor: pointer +} + +.van-calendar__day--end, +.van-calendar__day--multiple-middle, +.van-calendar__day--multiple-selected, +.van-calendar__day--start, +.van-calendar__day--start-end { + color: #fff; + background-color: #ee0a24 +} + +.van-calendar__day--start { + border-radius: 4px 0 0 4px +} + +.van-calendar__day--end { + border-radius: 0 4px 4px 0 +} + +.van-calendar__day--multiple-selected, +.van-calendar__day--start-end { + border-radius: 4px +} + +.van-calendar__day--middle { + color: #ee0a24 +} + +.van-calendar__day--middle::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: currentColor; + opacity: .1; + content: '' +} + +.van-calendar__day--disabled { + color: #c8c9cc; + cursor: default +} + +.van-calendar__bottom-info, +.van-calendar__top-info { + position: absolute; + right: 0; + left: 0; + font-size: 10px; + line-height: 14px +} + +@media (max-width:350px) { + + .van-calendar__bottom-info, + .van-calendar__top-info { + font-size: 9px + } +} + +.van-calendar__top-info { + top: 6px +} + +.van-calendar__bottom-info { + bottom: 6px +} + +.van-calendar__selected-day { + width: 54px; + height: 54px; + color: #fff; + background-color: #ee0a24; + border-radius: 4px +} + +.van-calendar__footer { + -webkit-flex-shrink: 0; + flex-shrink: 0; + padding: 0 16px; + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom) +} + +.van-calendar__footer--unfit { + padding-bottom: 0 +} + +.van-calendar__confirm { + height: 36px; + margin: 7px 0 +} + +.van-picker { + position: relative; + background-color: #fff; + -webkit-user-select: none; + user-select: none +} + +.van-picker__toolbar { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + justify-content: space-between; + height: 44px +} + +.van-picker__cancel, +.van-picker__confirm { + height: 100%; + padding: 0 16px; + font-size: 14px; + background-color: transparent; + border: none; + cursor: pointer +} + +.van-picker__cancel:active, +.van-picker__confirm:active { + opacity: .7 +} + +.van-picker__confirm { + color: #576b95 +} + +.van-picker__cancel { + color: #969799 +} + +.van-picker__title { + max-width: 50%; + font-weight: 500; + font-size: 16px; + line-height: 20px; + text-align: center +} + +.van-picker__columns { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + cursor: grab +} + +.van-picker__loading { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 3; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + color: #1989fa; + background-color: rgba(255, 255, 255, .9) +} + +.van-picker__frame { + position: absolute; + top: 50%; + right: 16px; + left: 16px; + z-index: 2; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + pointer-events: none +} + +.van-picker__mask { + position: absolute; + top: 0; + left: 0; + z-index: 1; + width: 100%; + height: 100%; + background-image: -webkit-linear-gradient(top, hsla(0, 0%, 100%, .9), hsla(0, 0%, 100%, .4)), -webkit-linear-gradient(bottom, hsla(0, 0%, 100%, .9), hsla(0, 0%, 100%, .4)); + background-image: linear-gradient(180deg, hsla(0, 0%, 100%, .9), hsla(0, 0%, 100%, .4)), linear-gradient(0deg, hsla(0, 0%, 100%, .9), hsla(0, 0%, 100%, .4)); + background-repeat: no-repeat; + background-position: top, bottom; + -webkit-transform: translateZ(0); + transform: translateZ(0); + pointer-events: none +} + +.van-picker-column { + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + overflow: hidden; + font-size: 16px +} + +.van-picker-column__wrapper { + -webkit-transition-timing-function: cubic-bezier(.23, 1, .68, 1); + transition-timing-function: cubic-bezier(.23, 1, .68, 1) +} + +.van-picker-column__item { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + padding: 0 4px; + color: #000 +} + +.van-picker-column__item--disabled { + cursor: not-allowed; + opacity: .3 +} + +.van-action-sheet { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + max-height: 80%; + overflow: hidden; + color: #323233 +} + +.van-action-sheet__content { + -webkit-box-flex: 1; + -webkit-flex: 1 auto; + flex: 1 auto; + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.van-action-sheet__cancel, +.van-action-sheet__item { + display: block; + width: 100%; + padding: 14px 16px; + font-size: 16px; + background-color: #fff; + border: none; + cursor: pointer +} + +.van-action-sheet__cancel:active, +.van-action-sheet__item:active { + background-color: #f2f3f5 +} + +.van-action-sheet__item { + line-height: 22px +} + +.van-action-sheet__item--disabled, +.van-action-sheet__item--loading { + color: #c8c9cc +} + +.van-action-sheet__item--disabled:active, +.van-action-sheet__item--loading:active { + background-color: #fff +} + +.van-action-sheet__item--disabled { + cursor: not-allowed +} + +.van-action-sheet__item--loading { + cursor: default +} + +.van-action-sheet__cancel { + -webkit-flex-shrink: 0; + flex-shrink: 0; + box-sizing: border-box; + color: #646566 +} + +.van-action-sheet__subname { + margin-top: 8px; + color: #969799; + font-size: 12px; + line-height: 18px +} + +.van-action-sheet__gap { + display: block; + height: 8px; + background-color: #f7f8fa +} + +.van-action-sheet__header { + -webkit-flex-shrink: 0; + flex-shrink: 0; + font-weight: 500; + font-size: 16px; + line-height: 48px; + text-align: center +} + +.van-action-sheet__description { + position: relative; + -webkit-flex-shrink: 0; + flex-shrink: 0; + padding: 20px 16px; + color: #969799; + font-size: 14px; + line-height: 20px; + text-align: center +} + +.van-action-sheet__description::after { + position: absolute; + box-sizing: border-box; + content: ' '; + pointer-events: none; + right: 16px; + bottom: 0; + left: 16px; + border-bottom: 1px solid #ebedf0; + -webkit-transform: scaleY(.5); + transform: scaleY(.5) +} + +.van-action-sheet__loading-icon .van-loading__spinner { + width: 22px; + height: 22px +} + +.van-action-sheet__close { + position: absolute; + top: 0; + right: 0; + padding: 0 16px; + color: #c8c9cc; + font-size: 22px; + line-height: inherit +} + +.van-action-sheet__close:active { + color: #969799 +} + +.van-goods-action { + position: fixed; + right: 0; + bottom: 0; + left: 0; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + box-sizing: content-box; + height: 50px; + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom); + background-color: #fff +} + +.van-goods-action--unfit { + padding-bottom: 0 +} + +.van-dialog { + position: fixed; + top: 45%; + left: 50%; + width: 320px; + overflow: hidden; + font-size: 16px; + background-color: #fff; + border-radius: 16px; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transition: .3s; + transition: .3s; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform +} + +@media (max-width:321px) { + .van-dialog { + width: 90% + } +} + +.van-dialog__header { + padding-top: 26px; + font-weight: 500; + line-height: 24px; + text-align: center +} + +.van-dialog__header--isolated { + padding: 24px 0 +} + +.van-dialog__content--isolated { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + min-height: 104px +} + +.van-dialog__message { + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + max-height: 60vh; + padding: 26px 24px; + overflow-y: auto; + font-size: 14px; + line-height: 20px; + white-space: pre-wrap; + text-align: center; + word-wrap: break-word; + -webkit-overflow-scrolling: touch +} + +.van-dialog__message--has-title { + padding-top: 8px; + color: #646566 +} + +.van-dialog__message--left { + text-align: left +} + +.van-dialog__message--right { + text-align: right +} + +.van-dialog__footer { + display: -webkit-box; + display: -webkit-flex; + display: flex; + overflow: hidden; + -webkit-user-select: none; + user-select: none +} + +.van-dialog__cancel, +.van-dialog__confirm { + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + height: 48px; + margin: 0; + border: 0 +} + +.van-dialog__confirm, +.van-dialog__confirm:active { + color: #ee0a24 +} + +.van-dialog--round-button .van-dialog__footer { + position: relative; + height: auto; + padding: 8px 24px 16px +} + +.van-dialog--round-button .van-dialog__message { + padding-bottom: 16px; + color: #323233 +} + +.van-dialog--round-button .van-dialog__cancel, +.van-dialog--round-button .van-dialog__confirm { + height: 36px +} + +.van-dialog--round-button .van-dialog__confirm { + color: #fff +} + +.van-dialog-bounce-enter { + -webkit-transform: translate3d(-50%, -50%, 0) scale(.7); + transform: translate3d(-50%, -50%, 0) scale(.7); + opacity: 0 +} + +.van-dialog-bounce-leave-active { + -webkit-transform: translate3d(-50%, -50%, 0) scale(.9); + transform: translate3d(-50%, -50%, 0) scale(.9); + opacity: 0 +} + +.van-contact-edit { + padding: 16px +} + +.van-contact-edit__fields { + overflow: hidden; + border-radius: 4px +} + +.van-contact-edit__fields .van-field__label { + width: 4.1em +} + +.van-contact-edit__switch-cell { + margin-top: 10px; + padding-top: 9px; + padding-bottom: 9px; + border-radius: 4px +} + +.van-contact-edit__buttons { + padding: 32px 0 +} + +.van-contact-edit .van-button { + margin-bottom: 12px; + font-size: 16px +} + +.van-address-edit { + padding: 12px +} + +.van-address-edit__fields { + overflow: hidden; + border-radius: 8px +} + +.van-address-edit__fields .van-field__label { + width: 4.1em +} + +.van-address-edit__default { + margin-top: 12px; + overflow: hidden; + border-radius: 8px +} + +.van-address-edit__buttons { + padding: 32px 4px +} + +.van-address-edit__buttons .van-button { + margin-bottom: 12px +} + +.van-address-edit-detail { + padding: 0 +} + +.van-address-edit-detail__search-item { + background-color: #f2f3f5 +} + +.van-address-edit-detail__keyword { + color: #ee0a24 +} + +.van-address-edit-detail__finish { + color: #1989fa; + font-size: 12px +} + +.van-radio-group--horizontal { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-flex-wrap: wrap; + flex-wrap: wrap +} + +.van-contact-list { + box-sizing: border-box; + height: 100%; + padding-bottom: 80px +} + +.van-contact-list__item { + padding: 16px +} + +.van-contact-list__item-value { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + padding-right: 32px; + padding-left: 8px +} + +.van-contact-list__item-tag { + -webkit-box-flex: 0; + -webkit-flex: none; + flex: none; + margin-left: 8px; + padding-top: 0; + padding-bottom: 0; + line-height: 1.4em +} + +.van-contact-list__group { + box-sizing: border-box; + height: 100%; + overflow-y: scroll; + -webkit-overflow-scrolling: touch +} + +.van-contact-list__edit { + font-size: 16px +} + +.van-contact-list__bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 999; + padding: 0 16px; + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom); + background-color: #fff +} + +.van-contact-list__add { + height: 40px; + margin: 5px 0 +} + +.van-address-list { + box-sizing: border-box; + height: 100%; + padding: 12px 12px 80px +} + +.van-address-list__bottom { + position: fixed; + bottom: 0; + left: 0; + z-index: 999; + box-sizing: border-box; + width: 100%; + padding: 0 16px; + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom); + background-color: #fff +} + +.van-address-list__add { + height: 40px; + margin: 5px 0 +} + +.van-address-list__disabled-text { + padding: 20px 0 16px; + color: #969799; + font-size: 14px; + line-height: 20px +} + +.van-address-item { + padding: 12px; + background-color: #fff; + border-radius: 8px +} + +.van-address-item:not(:last-child) { + margin-bottom: 12px +} + +.van-address-item__value { + padding-right: 44px +} + +.van-address-item__name { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + margin-bottom: 8px; + font-size: 16px; + line-height: 22px +} + +.van-address-item__tag { + -webkit-box-flex: 0; + -webkit-flex: none; + flex: none; + margin-left: 8px; + padding-top: 0; + padding-bottom: 0; + line-height: 1.4em +} + +.van-address-item__address { + color: #323233; + font-size: 13px; + line-height: 18px +} + +.van-address-item--disabled .van-address-item__address, +.van-address-item--disabled .van-address-item__name { + color: #c8c9cc +} + +.van-address-item__edit { + position: absolute; + top: 50%; + right: 16px; + color: #969799; + font-size: 20px; + -webkit-transform: translate(0, -50%); + transform: translate(0, -50%) +} + +.van-address-item .van-cell { + padding: 0 +} + +.van-address-item .van-radio__label { + margin-left: 12px +} + +.van-address-item .van-radio__icon--checked .van-icon { + background-color: #ee0a24; + border-color: #ee0a24 +} + +.van-badge { + display: inline-block; + box-sizing: border-box; + min-width: 16px; + padding: 0 3px; + color: #fff; + font-weight: 500; + font-size: 12px; + font-family: -apple-system-font, Helvetica Neue, Arial, sans-serif; + line-height: 1.2; + text-align: center; + background-color: #ee0a24; + border: 1px solid #fff; + border-radius: 999px +} + +.van-badge--fixed { + position: absolute; + top: 0; + right: 0; + -webkit-transform: translate(50%, -50%); + transform: translate(50%, -50%); + -webkit-transform-origin: 100%; + transform-origin: 100% +} + +.van-badge--dot { + width: 8px; + min-width: 0; + height: 8px; + background-color: #ee0a24; + border-radius: 100% +} + +.van-badge__wrapper { + position: relative; + display: inline-block +} + +.van-tab__pane, +.van-tab__pane-wrapper { + -webkit-flex-shrink: 0; + flex-shrink: 0; + box-sizing: border-box; + width: 100% +} + +.van-tab__pane-wrapper--inactive { + height: 0; + overflow: visible +} + +.van-sticky--fixed { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 99 +} + +.van-tab { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + box-sizing: border-box; + padding: 0 4px; + color: #646566; + font-size: 14px; + line-height: 20px; + cursor: pointer +} + +.van-tab--active { + color: #323233; + font-weight: 500 +} + +.van-tab--disabled { + color: #c8c9cc; + cursor: not-allowed +} + +.van-tab__text--ellipsis { + display: -webkit-box; + overflow: hidden; + -webkit-line-clamp: 1; + -webkit-box-orient: vertical +} + +.van-tab__text-wrapper { + position: relative +} + +.van-tabs { + position: relative +} + +.van-tabs__wrap { + overflow: hidden +} + +.van-tabs__wrap--page-top { + position: fixed +} + +.van-tabs__wrap--content-bottom { + top: auto; + bottom: 0 +} + +.van-tabs__wrap--scrollable .van-tab { + -webkit-box-flex: 1; + -webkit-flex: 1 0 auto; + flex: 1 0 auto; + padding: 0 12px +} + +.van-tabs__wrap--scrollable .van-tabs__nav { + overflow-x: auto; + overflow-y: hidden; + -webkit-overflow-scrolling: touch +} + +.van-tabs__wrap--scrollable .van-tabs__nav::-webkit-scrollbar { + display: none +} + +.van-tabs__nav { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + background-color: #fff; + -webkit-user-select: none; + user-select: none +} + +.van-tabs__nav--line { + box-sizing: content-box; + height: 100%; + padding-bottom: 15px +} + +.van-tabs__nav--line.van-tabs__nav--complete { + padding-right: 8px; + padding-left: 8px +} + +.van-tabs__nav--card { + box-sizing: border-box; + height: 30px; + margin: 0 16px; + border: 1px solid #ee0a24; + border-radius: 2px +} + +.van-tabs__nav--card .van-tab { + color: #ee0a24; + border-right: 1px solid #ee0a24 +} + +.van-tabs__nav--card .van-tab:last-child { + border-right: none +} + +.van-tabs__nav--card .van-tab.van-tab--active { + color: #fff; + background-color: #ee0a24 +} + +.van-tabs__nav--card .van-tab--disabled { + color: #c8c9cc +} + +.van-tabs__line { + position: absolute; + bottom: 15px; + left: 0; + z-index: 1; + width: 40px; + height: 3px; + background-color: #ee0a24; + border-radius: 3px +} + +.van-tabs__track { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + width: 100%; + height: 100%; + will-change: left +} + +.van-tabs__content--animated { + overflow: hidden +} + +.van-tabs--line .van-tabs__wrap { + height: 44px +} + +.van-tabs--card>.van-tabs__wrap { + height: 30px +} + +.van-coupon-list { + position: relative; + height: 100%; + background-color: #f7f8fa +} + +.van-coupon-list__field { + padding: 5px 0 5px 16px +} + +.van-coupon-list__field .van-field__body { + height: 34px; + padding-left: 12px; + line-height: 34px; + background: #f7f8fa; + border-radius: 17px +} + +.van-coupon-list__field .van-field__body::-webkit-input-placeholder { + color: #c8c9cc +} + +.van-coupon-list__field .van-field__body::placeholder { + color: #c8c9cc +} + +.van-coupon-list__field .van-field__clear { + margin-right: 0 +} + +.van-coupon-list__exchange-bar { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + background-color: #fff +} + +.van-coupon-list__exchange { + -webkit-box-flex: 0; + -webkit-flex: none; + flex: none; + height: 32px; + font-size: 16px; + line-height: 30px; + border: 0 +} + +.van-coupon-list .van-tabs__wrap { + box-shadow: 0 6px 12px -12px #969799 +} + +.van-coupon-list__list { + box-sizing: border-box; + padding: 16px 0 24px; + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.van-coupon-list__list--with-bottom { + padding-bottom: 66px +} + +.van-coupon-list__bottom { + position: absolute; + bottom: 0; + left: 0; + z-index: 999; + box-sizing: border-box; + width: 100%; + padding: 5px 16px; + font-weight: 500; + background-color: #fff +} + +.van-coupon-list__close { + height: 40px +} + +.van-coupon-list__empty { + padding-top: 60px; + text-align: center +} + +.van-coupon-list__empty p { + margin: 16px 0; + color: #969799; + font-size: 14px; + line-height: 20px +} + +.van-coupon-list__empty img { + width: 200px; + height: 200px +} + +.van-cascader__header { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + justify-content: space-between; + height: 48px; + padding: 0 16px +} + +.van-cascader__title { + font-weight: 500; + font-size: 16px; + line-height: 20px +} + +.van-cascader__close-icon { + color: #c8c9cc; + font-size: 22px +} + +.van-cascader__close-icon:active { + color: #969799 +} + +.van-cascader__tabs .van-tab { + -webkit-box-flex: 0; + -webkit-flex: none; + flex: none; + padding: 0 10px +} + +.van-cascader__tabs.van-tabs--line .van-tabs__wrap { + height: 48px +} + +.van-cascader__tabs .van-tabs__nav--complete { + padding-right: 6px; + padding-left: 6px +} + +.van-cascader__tab { + color: #323233; + font-weight: 500 +} + +.van-cascader__tab--unselected { + color: #969799; + font-weight: 400 +} + +.van-cascader__option { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + justify-content: space-between; + padding: 10px 16px; + font-size: 14px; + line-height: 20px +} + +.van-cascader__option:active { + background-color: #f2f3f5 +} + +.van-cascader__option--selected { + color: #ee0a24; + font-weight: 500 +} + +.van-cascader__selected-icon { + font-size: 18px +} + +.van-cascader__options { + box-sizing: border-box; + height: 384px; + padding-top: 6px; + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.van-cell-group { + background-color: #fff +} + +.van-cell-group--inset { + margin: 0 16px; + overflow: hidden; + border-radius: 8px +} + +.van-cell-group__title { + padding: 16px 16px 8px; + color: #969799; + font-size: 14px; + line-height: 16px +} + +.van-cell-group__title--inset { + padding: 16px 16px 8px 32px +} + +.van-panel { + background: #fff +} + +.van-panel__header-value { + color: #ee0a24 +} + +.van-panel__footer { + padding: 8px 16px +} + +.van-checkbox-group--horizontal { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-flex-wrap: wrap; + flex-wrap: wrap +} + +.van-circle { + position: relative; + display: inline-block; + width: 100px; + height: 100px; + text-align: center +} + +.van-circle svg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% +} + +.van-circle__layer { + stroke: #fff +} + +.van-circle__hover { + fill: none; + stroke: #1989fa; + stroke-linecap: round +} + +.van-circle__text { + position: absolute; + top: 50%; + left: 0; + box-sizing: border-box; + width: 100%; + padding: 0 4px; + color: #323233; + font-weight: 500; + font-size: 14px; + line-height: 20px; + -webkit-transform: translateY(-50%); + transform: translateY(-50%) +} + +.van-col { + float: left; + box-sizing: border-box; + min-height: 1px +} + +.van-col--1 { + width: 4.16666667% +} + +.van-col--offset-1 { + margin-left: 4.16666667% +} + +.van-col--2 { + width: 8.33333333% +} + +.van-col--offset-2 { + margin-left: 8.33333333% +} + +.van-col--3 { + width: 12.5% +} + +.van-col--offset-3 { + margin-left: 12.5% +} + +.van-col--4 { + width: 16.66666667% +} + +.van-col--offset-4 { + margin-left: 16.66666667% +} + +.van-col--5 { + width: 20.83333333% +} + +.van-col--offset-5 { + margin-left: 20.83333333% +} + +.van-col--6 { + width: 25% +} + +.van-col--offset-6 { + margin-left: 25% +} + +.van-col--7 { + width: 29.16666667% +} + +.van-col--offset-7 { + margin-left: 29.16666667% +} + +.van-col--8 { + width: 33.33333333% +} + +.van-col--offset-8 { + margin-left: 33.33333333% +} + +.van-col--9 { + width: 37.5% +} + +.van-col--offset-9 { + margin-left: 37.5% +} + +.van-col--10 { + width: 41.66666667% +} + +.van-col--offset-10 { + margin-left: 41.66666667% +} + +.van-col--11 { + width: 45.83333333% +} + +.van-col--offset-11 { + margin-left: 45.83333333% +} + +.van-col--12 { + width: 50% +} + +.van-col--offset-12 { + margin-left: 50% +} + +.van-col--13 { + width: 54.16666667% +} + +.van-col--offset-13 { + margin-left: 54.16666667% +} + +.van-col--14 { + width: 58.33333333% +} + +.van-col--offset-14 { + margin-left: 58.33333333% +} + +.van-col--15 { + width: 62.5% +} + +.van-col--offset-15 { + margin-left: 62.5% +} + +.van-col--16 { + width: 66.66666667% +} + +.van-col--offset-16 { + margin-left: 66.66666667% +} + +.van-col--17 { + width: 70.83333333% +} + +.van-col--offset-17 { + margin-left: 70.83333333% +} + +.van-col--18 { + width: 75% +} + +.van-col--offset-18 { + margin-left: 75% +} + +.van-col--19 { + width: 79.16666667% +} + +.van-col--offset-19 { + margin-left: 79.16666667% +} + +.van-col--20 { + width: 83.33333333% +} + +.van-col--offset-20 { + margin-left: 83.33333333% +} + +.van-col--21 { + width: 87.5% +} + +.van-col--offset-21 { + margin-left: 87.5% +} + +.van-col--22 { + width: 91.66666667% +} + +.van-col--offset-22 { + margin-left: 91.66666667% +} + +.van-col--23 { + width: 95.83333333% +} + +.van-col--offset-23 { + margin-left: 95.83333333% +} + +.van-col--24 { + width: 100% +} + +.van-col--offset-24 { + margin-left: 100% +} + +.van-count-down { + color: #323233; + font-size: 14px; + line-height: 20px +} + +.van-divider { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + margin: 16px 0; + color: #969799; + font-size: 14px; + line-height: 24px; + border-color: #ebedf0; + border-style: solid; + border-width: 0 +} + +.van-divider::after, +.van-divider::before { + display: block; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + box-sizing: border-box; + height: 1px; + border-color: inherit; + border-style: inherit; + border-width: 1px 0 0 +} + +.van-divider::before { + content: '' +} + +.van-divider--hairline::after, +.van-divider--hairline::before { + -webkit-transform: scaleY(.5); + transform: scaleY(.5) +} + +.van-divider--dashed { + border-style: dashed +} + +.van-divider--content-center::before, +.van-divider--content-left::before, +.van-divider--content-right::before { + margin-right: 16px +} + +.van-divider--content-center::after, +.van-divider--content-left::after, +.van-divider--content-right::after { + margin-left: 16px; + content: '' +} + +.van-divider--content-left::before { + max-width: 10% +} + +.van-divider--content-right::after { + max-width: 10% +} + +.van-dropdown-menu { + -webkit-user-select: none; + user-select: none +} + +.van-dropdown-menu__bar { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + height: 48px; + background-color: #fff; + box-shadow: 0 2px 12px rgba(100, 101, 102, .12) +} + +.van-dropdown-menu__bar--opened { + z-index: 11 +} + +.van-dropdown-menu__item { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + min-width: 0; + cursor: pointer +} + +.van-dropdown-menu__item:active { + opacity: .7 +} + +.van-dropdown-menu__item--disabled:active { + opacity: 1 +} + +.van-dropdown-menu__item--disabled .van-dropdown-menu__title { + color: #969799 +} + +.van-dropdown-menu__title { + position: relative; + box-sizing: border-box; + max-width: 100%; + padding: 0 8px; + color: #323233; + font-size: 15px; + line-height: 22px +} + +.van-dropdown-menu__title::after { + position: absolute; + top: 50%; + right: -4px; + margin-top: -5px; + border: 3px solid; + border-color: transparent transparent #dcdee0 #dcdee0; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + opacity: .8; + content: '' +} + +.van-dropdown-menu__title--active { + color: #ee0a24 +} + +.van-dropdown-menu__title--active::after { + border-color: transparent transparent currentColor currentColor +} + +.van-dropdown-menu__title--down::after { + margin-top: -1px; + -webkit-transform: rotate(135deg); + transform: rotate(135deg) +} + +.van-empty { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + box-sizing: border-box; + padding: 32px 0 +} + +.van-empty__image { + width: 160px; + height: 160px +} + +.van-empty__image img { + width: 100%; + height: 100% +} + +.van-empty__description { + margin-top: 16px; + padding: 0 60px; + color: #969799; + font-size: 14px; + line-height: 20px +} + +.van-empty__bottom { + margin-top: 24px +} + +.van-grid { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-flex-wrap: wrap; + flex-wrap: wrap +} + +.van-swipe { + position: relative; + overflow: hidden; + cursor: grab; + -webkit-user-select: none; + user-select: none +} + +.van-swipe__track { + display: -webkit-box; + display: -webkit-flex; + display: flex; + height: 100% +} + +.van-swipe__track--vertical { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column +} + +.van-swipe__indicators { + position: absolute; + bottom: 12px; + left: 50%; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-transform: translateX(-50%); + transform: translateX(-50%) +} + +.van-swipe__indicators--vertical { + top: 50%; + bottom: auto; + left: 12px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-transform: translateY(-50%); + transform: translateY(-50%) +} + +.van-swipe__indicators--vertical .van-swipe__indicator:not(:last-child) { + margin-bottom: 6px +} + +.van-swipe__indicator { + width: 6px; + height: 6px; + background-color: #ebedf0; + border-radius: 100%; + opacity: .3; + -webkit-transition: opacity .2s, background-color .2s; + transition: opacity .2s, background-color .2s +} + +.van-swipe__indicator:not(:last-child) { + margin-right: 6px +} + +.van-swipe__indicator--active { + background-color: #1989fa; + opacity: 1 +} + +.van-swipe-item { + position: relative; + -webkit-flex-shrink: 0; + flex-shrink: 0; + width: 100%; + height: 100% +} + +.van-image-preview { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100% +} + +.van-image-preview__swipe { + height: 100% +} + +.van-image-preview__swipe-item { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + overflow: hidden +} + +.van-image-preview__cover { + position: absolute; + top: 0; + left: 0 +} + +.van-image-preview__image { + width: 100%; + -webkit-transition-property: -webkit-transform; + transition-property: -webkit-transform; + transition-property: transform; + transition-property: transform, -webkit-transform +} + +.van-image-preview__image--vertical { + width: auto; + height: 100% +} + +.van-image-preview__image img { + -webkit-user-drag: none +} + +.van-image-preview__image .van-image__error { + top: 30%; + height: 40% +} + +.van-image-preview__image .van-image__error-icon { + font-size: 36px +} + +.van-image-preview__image .van-image__loading { + background-color: transparent +} + +.van-image-preview__index { + position: absolute; + top: 16px; + left: 50%; + color: #fff; + font-size: 14px; + line-height: 20px; + text-shadow: 0 1px 1px #323233; + -webkit-transform: translate(-50%, 0); + transform: translate(-50%, 0) +} + +.van-image-preview__overlay { + background-color: rgba(0, 0, 0, .9) +} + +.van-image-preview__close-icon { + position: absolute; + z-index: 1; + color: #c8c9cc; + font-size: 22px; + cursor: pointer +} + +.van-image-preview__close-icon:active { + color: #969799 +} + +.van-image-preview__close-icon--top-left { + top: 16px; + left: 16px +} + +.van-image-preview__close-icon--top-right { + top: 16px; + right: 16px +} + +.van-image-preview__close-icon--bottom-left { + bottom: 16px; + left: 16px +} + +.van-image-preview__close-icon--bottom-right { + right: 16px; + bottom: 16px +} + +.van-uploader { + position: relative; + display: inline-block +} + +.van-uploader__wrapper { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-flex-wrap: wrap; + flex-wrap: wrap +} + +.van-uploader__wrapper--disabled { + opacity: .5 +} + +.van-uploader__input { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; + cursor: pointer; + opacity: 0 +} + +.van-uploader__input-wrapper { + position: relative +} + +.van-uploader__input:disabled { + cursor: not-allowed +} + +.van-uploader__upload { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + box-sizing: border-box; + width: 80px; + height: 80px; + margin: 0 8px 8px 0; + background-color: #f7f8fa +} + +.van-uploader__upload:active { + background-color: #f2f3f5 +} + +.van-uploader__upload--readonly:active { + background-color: #f7f8fa +} + +.van-uploader__upload-icon { + color: #dcdee0; + font-size: 24px +} + +.van-uploader__upload-text { + margin-top: 8px; + color: #969799; + font-size: 12px +} + +.van-uploader__preview { + position: relative; + margin: 0 8px 8px 0; + cursor: pointer +} + +.van-uploader__preview-image { + display: block; + width: 80px; + height: 80px; + overflow: hidden +} + +.van-uploader__preview-delete { + position: absolute; + top: 0; + right: 0; + width: 14px; + height: 14px; + background-color: rgba(0, 0, 0, .7); + border-radius: 0 0 0 12px +} + +.van-uploader__preview-delete-icon { + position: absolute; + top: -2px; + right: -2px; + color: #fff; + font-size: 16px; + -webkit-transform: scale(.5); + transform: scale(.5) +} + +.van-uploader__preview-cover { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0 +} + +.van-uploader__mask { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + color: #fff; + background-color: rgba(50, 50, 51, .88) +} + +.van-uploader__mask-icon { + font-size: 22px +} + +.van-uploader__mask-message { + margin-top: 6px; + padding: 0 4px; + font-size: 12px; + line-height: 14px +} + +.van-uploader__loading { + width: 22px; + height: 22px; + color: #fff +} + +.van-uploader__file { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + width: 80px; + height: 80px; + background-color: #f7f8fa +} + +.van-uploader__file-icon { + color: #646566; + font-size: 20px +} + +.van-uploader__file-name { + box-sizing: border-box; + width: 100%; + margin-top: 8px; + padding: 0 4px; + color: #646566; + font-size: 12px; + text-align: center +} + +.van-index-anchor { + z-index: 1; + box-sizing: border-box; + padding: 0 16px; + color: #323233; + font-weight: 500; + font-size: 14px; + line-height: 32px; + background-color: transparent +} + +.van-index-anchor--sticky { + position: fixed; + top: 0; + right: 0; + left: 0; + color: #ee0a24; + background-color: #fff +} + +.van-index-bar__sidebar { + position: fixed; + top: 50%; + right: 0; + z-index: 2; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + text-align: center; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + cursor: pointer; + -webkit-user-select: none; + user-select: none +} + +.van-index-bar__index { + padding: 0 8px 0 16px; + font-weight: 500; + font-size: 10px; + line-height: 14px +} + +.van-index-bar__index--active { + color: #ee0a24 +} + +.van-pagination { + display: -webkit-box; + display: -webkit-flex; + display: flex; + font-size: 14px +} + +.van-pagination__item, +.van-pagination__page-desc { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center +} + +.van-pagination__item { + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + box-sizing: border-box; + min-width: 36px; + height: 40px; + color: #1989fa; + background-color: #fff; + cursor: pointer; + -webkit-user-select: none; + user-select: none +} + +.van-pagination__item:active { + color: #fff; + background-color: #1989fa +} + +.van-pagination__item::after { + border-width: 1px 0 1px 1px +} + +.van-pagination__item:last-child::after { + border-right-width: 1px +} + +.van-pagination__item--active { + color: #fff; + background-color: #1989fa +} + +.van-pagination__next, +.van-pagination__prev { + padding: 0 4px; + cursor: pointer +} + +.van-pagination__item--disabled, +.van-pagination__item--disabled:active { + color: #646566; + background-color: #f7f8fa; + cursor: not-allowed; + opacity: .5 +} + +.van-pagination__page { + -webkit-box-flex: 0; + -webkit-flex-grow: 0; + flex-grow: 0 +} + +.van-pagination__page-desc { + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + height: 40px; + color: #646566 +} + +.van-pagination--simple .van-pagination__next::after, +.van-pagination--simple .van-pagination__prev::after { + border-width: 1px +} + +.van-password-input { + position: relative; + margin: 0 16px; + -webkit-user-select: none; + user-select: none +} + +.van-password-input__error-info, +.van-password-input__info { + margin-top: 16px; + font-size: 14px; + text-align: center +} + +.van-password-input__info { + color: #969799 +} + +.van-password-input__error-info { + color: #ee0a24 +} + +.van-password-input__security { + display: -webkit-box; + display: -webkit-flex; + display: flex; + width: 100%; + height: 50px; + cursor: pointer +} + +.van-password-input__security::after { + border-radius: 6px +} + +.van-password-input__security li { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + height: 100%; + font-size: 20px; + line-height: 1.2; + background-color: #fff +} + +.van-password-input__security i { + position: absolute; + top: 50%; + left: 50%; + width: 10px; + height: 10px; + background-color: #000; + border-radius: 100%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + visibility: hidden +} + +.van-password-input__cursor { + position: absolute; + top: 50%; + left: 50%; + width: 1px; + height: 40%; + background-color: #323233; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + -webkit-animation: 1s van-cursor-flicker infinite; + animation: 1s van-cursor-flicker infinite +} + +@-webkit-keyframes van-cursor-flicker { + from { + opacity: 0 + } + + 50% { + opacity: 1 + } + + 100% { + opacity: 0 + } +} + +@keyframes van-cursor-flicker { + from { + opacity: 0 + } + + 50% { + opacity: 1 + } + + 100% { + opacity: 0 + } +} + +.van-progress { + position: relative; + height: 4px; + background: #ebedf0; + border-radius: 4px +} + +.van-progress__portion { + position: absolute; + left: 0; + height: 100%; + background: #1989fa; + border-radius: inherit +} + +.van-progress__pivot { + position: absolute; + top: 50%; + box-sizing: border-box; + min-width: 3.6em; + padding: 0 5px; + color: #fff; + font-size: 10px; + line-height: 1.6; + text-align: center; + word-break: keep-all; + background-color: #1989fa; + border-radius: 1em; + -webkit-transform: translate(0, -50%); + transform: translate(0, -50%) +} + +.van-row::after { + display: table; + clear: both; + content: '' +} + +.van-row--flex { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-flex-wrap: wrap; + flex-wrap: wrap +} + +.van-row--flex::after { + display: none +} + +.van-row--justify-center { + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center +} + +.van-row--justify-end { + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + justify-content: flex-end +} + +.van-row--justify-space-between { + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + justify-content: space-between +} + +.van-row--justify-space-around { + -webkit-justify-content: space-around; + justify-content: space-around +} + +.van-row--align-center { + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center +} + +.van-row--align-bottom { + -webkit-box-align: end; + -webkit-align-items: flex-end; + align-items: flex-end +} + +.van-sidebar { + width: 80px; + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.van-tree-select { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + font-size: 14px; + -webkit-user-select: none; + user-select: none +} + +.van-tree-select__nav { + -webkit-box-flex: 1; + -webkit-flex: 1; + flex: 1; + overflow-y: auto; + background-color: #f7f8fa; + -webkit-overflow-scrolling: touch +} + +.van-tree-select__nav-item { + padding: 14px 12px +} + +.van-tree-select__content { + -webkit-box-flex: 2; + -webkit-flex: 2; + flex: 2; + overflow-y: auto; + background-color: #fff; + -webkit-overflow-scrolling: touch +} + +.van-tree-select__item { + position: relative; + padding: 0 32px 0 16px; + font-weight: 500; + line-height: 48px; + cursor: pointer +} + +.van-tree-select__item--active { + color: #ee0a24 +} + +.van-tree-select__item--disabled { + color: #c8c9cc; + cursor: not-allowed +} + +.van-tree-select__selected { + position: absolute; + top: 50%; + right: 16px; + margin-top: -8px; + font-size: 16px +} + +.van-skeleton { + display: -webkit-box; + display: -webkit-flex; + display: flex; + padding: 0 16px +} + +.van-skeleton__avatar { + -webkit-flex-shrink: 0; + flex-shrink: 0; + width: 32px; + height: 32px; + margin-right: 16px; + background-color: #f2f3f5 +} + +.van-skeleton__avatar--round { + border-radius: 999px +} + +.van-skeleton__content { + width: 100% +} + +.van-skeleton__avatar+.van-skeleton__content { + padding-top: 8px +} + +.van-skeleton__row, +.van-skeleton__title { + height: 16px; + background-color: #f2f3f5 +} + +.van-skeleton__title { + width: 40%; + margin: 0 +} + +.van-skeleton__row:not(:first-child) { + margin-top: 12px +} + +.van-skeleton__title+.van-skeleton__row { + margin-top: 20px +} + +.van-skeleton--animate { + -webkit-animation: van-skeleton-blink 1.2s ease-in-out infinite; + animation: van-skeleton-blink 1.2s ease-in-out infinite +} + +.van-skeleton--round .van-skeleton__row, +.van-skeleton--round .van-skeleton__title { + border-radius: 999px +} + +@-webkit-keyframes van-skeleton-blink { + 50% { + opacity: .6 + } +} + +@keyframes van-skeleton-blink { + 50% { + opacity: .6 + } +} + +.van-stepper { + font-size: 0; + -webkit-user-select: none; + user-select: none +} + +.van-stepper__minus, +.van-stepper__plus { + position: relative; + box-sizing: border-box; + width: 28px; + height: 28px; + margin: 0; + padding: 0; + color: #323233; + vertical-align: middle; + background-color: #f2f3f5; + border: 0; + cursor: pointer +} + +.van-stepper__minus::before, +.van-stepper__plus::before { + width: 50%; + height: 1px +} + +.van-stepper__minus::after, +.van-stepper__plus::after { + width: 1px; + height: 50% +} + +.van-stepper__minus::after, +.van-stepper__minus::before, +.van-stepper__plus::after, +.van-stepper__plus::before { + position: absolute; + top: 50%; + left: 50%; + background-color: currentColor; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + content: '' +} + +.van-stepper__minus:active, +.van-stepper__plus:active { + background-color: #e8e8e8 +} + +.van-stepper__minus--disabled, +.van-stepper__plus--disabled { + color: #c8c9cc; + background-color: #f7f8fa; + cursor: not-allowed +} + +.van-stepper__minus--disabled:active, +.van-stepper__plus--disabled:active { + background-color: #f7f8fa +} + +.van-stepper__minus { + border-radius: 4px 0 0 4px +} + +.van-stepper__minus::after { + display: none +} + +.van-stepper__plus { + border-radius: 0 4px 4px 0 +} + +.van-stepper__input { + box-sizing: border-box; + width: 32px; + height: 28px; + margin: 0 2px; + padding: 0; + color: #323233; + font-size: 14px; + line-height: normal; + text-align: center; + vertical-align: middle; + background-color: #f2f3f5; + border: 0; + border-width: 1px 0; + border-radius: 0; + -webkit-appearance: none +} + +.van-stepper__input:disabled { + color: #c8c9cc; + background-color: #f2f3f5; + -webkit-text-fill-color: #c8c9cc; + opacity: 1 +} + +.van-stepper__input:read-only { + cursor: default +} + +.van-stepper--round .van-stepper__input { + background-color: transparent +} + +.van-stepper--round .van-stepper__minus, +.van-stepper--round .van-stepper__plus { + border-radius: 100% +} + +.van-stepper--round .van-stepper__minus:active, +.van-stepper--round .van-stepper__plus:active { + opacity: .7 +} + +.van-stepper--round .van-stepper__minus--disabled, +.van-stepper--round .van-stepper__minus--disabled:active, +.van-stepper--round .van-stepper__plus--disabled, +.van-stepper--round .van-stepper__plus--disabled:active { + opacity: .3 +} + +.van-stepper--round .van-stepper__plus { + color: #fff; + background-color: #ee0a24 +} + +.van-stepper--round .van-stepper__minus { + color: #ee0a24; + background-color: #fff; + border: 1px solid #ee0a24 +} + +.van-sku-container { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + align-items: stretch; + min-height: 50%; + max-height: 80%; + overflow-y: visible; + font-size: 14px; + background: #fff +} + +.van-sku-body { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + flex: 1 1 auto; + min-height: 44px; + overflow-y: scroll; + -webkit-overflow-scrolling: touch +} + +.van-sku-body::-webkit-scrollbar { + display: none +} + +.van-sku-header { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-flex-shrink: 0; + flex-shrink: 0; + margin: 0 16px +} + +.van-sku-header__img-wrap { + -webkit-flex-shrink: 0; + flex-shrink: 0; + width: 96px; + height: 96px; + margin: 12px 12px 12px 0; + overflow: hidden; + border-radius: 4px +} + +.van-sku-header__goods-info { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + justify-content: flex-end; + padding: 12px 20px 12px 0 +} + +.van-sku-header-item { + margin-top: 8px; + color: #969799; + font-size: 12px; + line-height: 16px +} + +.van-sku__price-symbol { + font-size: 16px; + vertical-align: bottom +} + +.van-sku__price-num { + font-weight: 500; + font-size: 22px; + vertical-align: bottom; + word-wrap: break-word +} + +.van-sku__goods-price { + margin-left: -2px; + color: #ee0a24 +} + +.van-sku__price-tag { + position: relative; + display: inline-block; + margin-left: 8px; + padding: 0 5px; + overflow: hidden; + color: #ee0a24; + font-size: 12px; + line-height: 16px; + border-radius: 8px +} + +.van-sku__price-tag::before { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: currentColor; + opacity: .1; + content: '' +} + +.van-sku-group-container { + padding-top: 12px +} + +.van-sku-group-container--hide-soldout .van-sku-row__item--disabled { + display: none +} + +.van-sku-row { + margin: 0 16px 12px +} + +.van-sku-row:last-child { + margin-bottom: 0 +} + +.van-sku-row__image-item, +.van-sku-row__item { + position: relative; + overflow: hidden; + color: #323233; + border-radius: 4px; + cursor: pointer +} + +.van-sku-row__image-item::before, +.van-sku-row__item::before { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #f7f8fa; + content: '' +} + +.van-sku-row__image-item--active, +.van-sku-row__item--active { + color: #ee0a24 +} + +.van-sku-row__image-item--active::before, +.van-sku-row__item--active::before { + background: currentColor; + opacity: .1 +} + +.van-sku-row__item { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: inline-flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + min-width: 40px; + margin: 0 12px 12px 0; + font-size: 13px; + line-height: 16px; + vertical-align: middle +} + +.van-sku-row__item-img { + z-index: 1; + width: 24px; + height: 24px; + margin: 4px 0 4px 4px; + object-fit: cover; + border-radius: 2px +} + +.van-sku-row__item-name { + z-index: 1; + padding: 8px +} + +.van-sku-row__item--disabled { + color: #c8c9cc; + background: #f2f3f5; + cursor: not-allowed +} + +.van-sku-row__item--disabled .van-sku-row__item-img { + opacity: .3 +} + +.van-sku-row__image { + margin-right: 0 +} + +.van-sku-row__image-item { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + flex-direction: column; + width: 110px; + margin: 0 4px 4px 0; + border: 1px solid transparent +} + +.van-sku-row__image-item:last-child { + margin-right: 0 +} + +.van-sku-row__image-item-img { + width: 100%; + height: 110px +} + +.van-sku-row__image-item-img-icon { + position: absolute; + top: 0; + right: 0; + z-index: 3; + width: 18px; + height: 18px; + color: #fff; + line-height: 18px; + text-align: center; + background-color: rgba(0, 0, 0, .4); + border-bottom-left-radius: 4px +} + +.van-sku-row__image-item-name { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + box-sizing: border-box; + height: 40px; + padding: 4px; + font-size: 12px; + line-height: 16px +} + +.van-sku-row__image-item-name span { + word-wrap: break-word +} + +.van-sku-row__image-item--active { + border-color: currentColor +} + +.van-sku-row__image-item--disabled { + color: #c8c9cc; + cursor: not-allowed +} + +.van-sku-row__image-item--disabled::before { + z-index: 2; + background: #f2f3f5; + opacity: .4 +} + +.van-sku-row__title { + padding-bottom: 12px +} + +.van-sku-row__title-multiple { + color: #969799 +} + +.van-sku-row__scroller { + margin: 0 -16px; + overflow-x: scroll; + overflow-y: hidden; + -webkit-overflow-scrolling: touch +} + +.van-sku-row__scroller::-webkit-scrollbar { + display: none +} + +.van-sku-row__row { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: inline-flex; + margin-bottom: 4px; + padding: 0 16px +} + +.van-sku-row__indicator { + width: 40px; + height: 4px; + background: #ebedf0; + border-radius: 2px +} + +.van-sku-row__indicator-wrapper { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + padding-bottom: 16px +} + +.van-sku-row__indicator-slider { + width: 50%; + height: 100%; + background-color: #ee0a24; + border-radius: 2px +} + +.van-sku-stepper-stock { + padding: 12px 16px; + overflow: hidden; + line-height: 30px +} + +.van-sku__stepper { + float: right; + padding-left: 4px +} + +.van-sku__stepper-title { + float: left +} + +.van-sku__stepper-quota { + float: right; + color: #ee0a24; + font-size: 12px +} + +.van-sku__stock { + display: inline-block; + margin-right: 8px; + color: #969799; + font-size: 12px +} + +.van-sku__stock-num--highlight { + color: #ee0a24 +} + +.van-sku-messages { + padding-bottom: 32px +} + +.van-sku-messages__image-cell .van-cell__title { + max-width: 6.2em; + margin-right: 12px; + color: #646566; + text-align: left; + word-wrap: break-word +} + +.van-sku-messages__image-cell .van-cell__value { + overflow: visible; + text-align: left +} + +.van-sku-messages__image-cell-label { + color: #969799; + font-size: 12px; + line-height: 18px +} + +.van-sku-actions { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-flex-shrink: 0; + flex-shrink: 0; + padding: 8px 16px +} + +.van-sku-actions .van-button { + height: 40px; + font-weight: 500; + font-size: 14px; + border: none; + border-radius: 0 +} + +.van-sku-actions .van-button:first-of-type { + border-top-left-radius: 20px; + border-bottom-left-radius: 20px +} + +.van-sku-actions .van-button:last-of-type { + border-top-right-radius: 20px; + border-bottom-right-radius: 20px +} + +.van-sku-actions .van-button--warning { + background: -webkit-linear-gradient(left, #ffd01e, #ff8917); + background: linear-gradient(to right, #ffd01e, #ff8917) +} + +.van-sku-actions .van-button--danger { + background: -webkit-linear-gradient(left, #ff6034, #ee0a24); + background: linear-gradient(to right, #ff6034, #ee0a24) +} + +.van-slider { + position: relative; + width: 100%; + height: 2px; + background-color: #ebedf0; + border-radius: 999px; + cursor: pointer +} + +.van-slider::before { + position: absolute; + top: -8px; + right: 0; + bottom: -8px; + left: 0; + content: '' +} + +.van-slider__bar { + position: relative; + width: 100%; + height: 100%; + background-color: #1989fa; + border-radius: inherit; + -webkit-transition: all .2s; + transition: all .2s +} + +.van-slider__button { + width: 24px; + height: 24px; + background-color: #fff; + border-radius: 50%; + box-shadow: 0 1px 2px rgba(0, 0, 0, .5) +} + +.van-slider__button-wrapper, +.van-slider__button-wrapper-right { + position: absolute; + top: 50%; + right: 0; + -webkit-transform: translate3d(50%, -50%, 0); + transform: translate3d(50%, -50%, 0); + cursor: grab +} + +.van-slider__button-wrapper-left { + position: absolute; + top: 50%; + left: 0; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); + cursor: grab +} + +.van-slider--disabled { + cursor: not-allowed; + opacity: .5 +} + +.van-slider--disabled .van-slider__button-wrapper, +.van-slider--disabled .van-slider__button-wrapper-left, +.van-slider--disabled .van-slider__button-wrapper-right { + cursor: not-allowed +} + +.van-slider--vertical { + display: inline-block; + width: 2px; + height: 100% +} + +.van-slider--vertical .van-slider__button-wrapper, +.van-slider--vertical .van-slider__button-wrapper-right { + top: auto; + right: 50%; + bottom: 0; + -webkit-transform: translate3d(50%, 50%, 0); + transform: translate3d(50%, 50%, 0) +} + +.van-slider--vertical .van-slider__button-wrapper-left { + top: 0; + right: 50%; + left: auto; + -webkit-transform: translate3d(50%, -50%, 0); + transform: translate3d(50%, -50%, 0) +} + +.van-slider--vertical::before { + top: 0; + right: -8px; + bottom: 0; + left: -8px +} + +.van-steps { + overflow: hidden; + background-color: #fff +} + +.van-steps--horizontal { + padding: 10px 10px 0 +} + +.van-steps--horizontal .van-steps__items { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: flex; + margin: 0 0 10px; + padding-bottom: 22px +} + +.van-steps--vertical { + padding: 0 0 0 32px +} + +.van-swipe-cell { + position: relative; + overflow: hidden; + cursor: grab +} + +.van-swipe-cell__wrapper { + -webkit-transition-timing-function: cubic-bezier(.18, .89, .32, 1); + transition-timing-function: cubic-bezier(.18, .89, .32, 1); + -webkit-transition-property: -webkit-transform; + transition-property: -webkit-transform; + transition-property: transform; + transition-property: transform, -webkit-transform +} + +.van-swipe-cell__left, +.van-swipe-cell__right { + position: absolute; + top: 0; + height: 100% +} + +.van-swipe-cell__left { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0) +} + +.van-swipe-cell__right { + right: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0) +} + +.van-tabbar { + z-index: 1; + display: -webkit-box; + display: -webkit-flex; + display: flex; + box-sizing: content-box; + width: 100%; + height: 50px; + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom); + background-color: #fff +} + +.van-tabbar--fixed { + position: fixed; + bottom: 0; + left: 0 +} + +.van-tabbar--unfit { + padding-bottom: 0 +} diff --git a/dzz/pichome/js/mobile/plug/vant/vant.min.js b/dzz/pichome/js/mobile/plug/vant/vant.min.js new file mode 100644 index 0000000..69933d0 --- /dev/null +++ b/dzz/pichome/js/mobile/plug/vant/vant.min.js @@ -0,0 +1,7 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("vue")):"function"==typeof define&&define.amd?define("vant",["vue"],e):"object"==typeof exports?exports.vant=e(require("vue")):t.vant=e(t.Vue)}("undefined"!=typeof self?self:this,(function(t){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var s=e[n]={i:n,l:!1,exports:{}};return t[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)i.d(n,s,function(e){return t[e]}.bind(null,s));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=11)}([function(t,e,i){"use strict";i.d(e,"b",(function(){return s})),i.d(e,"h",(function(){return r})),i.d(e,"i",(function(){return o})),i.d(e,"c",(function(){return a})),i.d(e,"e",(function(){return l})),i.d(e,"f",(function(){return c})),i.d(e,"g",(function(){return u})),i.d(e,"a",(function(){return h})),i.d(e,"d",(function(){return d}));var n=i(3),s="undefined"!=typeof window,r=i.n(n).a.prototype.$isServer;function o(){}function a(t){return null!=t}function l(t){return"function"==typeof t}function c(t){return null!==t&&"object"==typeof t}function u(t){return c(t)&&l(t.then)&&l(t.catch)}function h(t,e){var i=e.split("."),n=t;return i.forEach((function(t){var e;n=null!=(e=n[t])?e:""})),n}function d(t){return null==t||("object"!=typeof t||0===Object.keys(t).length)}},function(t,e,i){"use strict";function n(){return(n=Object.assign||function(t){for(var e,i=1;i1?r-1:0),a=1;a + * Released under the MIT License. + */ +t.exports=function(){"use strict";function t(t){t=t||{};var n=arguments.length,s=0;if(1===n)return t;for(;++s-1?t.splice(i,1):void 0}}function r(t,e){if("IMG"===t.tagName&&t.getAttribute("data-srcset")){var i=t.getAttribute("data-srcset"),n=[],s=t.parentNode.offsetWidth*e,r=void 0,o=void 0,a=void 0;(i=i.trim().split(",")).map((function(t){t=t.trim(),-1===(r=t.lastIndexOf(" "))?(o=t,a=999998):(o=t.substr(0,r),a=parseInt(t.substr(r+1,t.length-r-2),10)),n.push([a,o])})),n.sort((function(t,e){if(t[0]e[0])return 1;if(t[0]===e[0]){if(-1!==e[1].indexOf(".webp",e[1].length-5))return 1;if(-1!==t[1].indexOf(".webp",t[1].length-5))return-1}return 0}));for(var l="",c=void 0,u=n.length,h=0;h=s){l=c[1];break}return l}}function o(t,e){for(var i=void 0,n=0,s=t.length;n0&&void 0!==arguments[0]?arguments[0]:1;return g&&window.devicePixelRatio||t},w=function(){if(g){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("test",null,e)}catch(t){}return t}}(),C={on:function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];w?t.addEventListener(e,i,{capture:n,passive:!0}):t.addEventListener(e,i,n)},off:function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];t.removeEventListener(e,i,n)}},O=function(t,e,i){var n=new Image;n.src=t.src,n.onload=function(){e({naturalHeight:n.naturalHeight,naturalWidth:n.naturalWidth,src:n.src})},n.onerror=function(t){i(t)}},T=function(t,e){return"undefined"!=typeof getComputedStyle?getComputedStyle(t,null).getPropertyValue(e):t.style[e]},$=function(t){return T(t,"overflow")+T(t,"overflow-y")+T(t,"overflow-x")},B={},I=function(){function t(e){var i=e.el,n=e.src,s=e.error,r=e.loading,o=e.bindType,a=e.$parent,l=e.options,c=e.elRenderer;u(this,t),this.el=i,this.src=n,this.error=s,this.loading=r,this.bindType=o,this.attempt=0,this.naturalHeight=0,this.naturalWidth=0,this.options=l,this.rect=null,this.$parent=a,this.elRenderer=c,this.performanceData={init:Date.now(),loadStart:0,loadEnd:0},this.filter(),this.initState(),this.render("loading",!1)}return h(t,[{key:"initState",value:function(){this.el.dataset.src=this.src,this.state={error:!1,loaded:!1,rendered:!1}}},{key:"record",value:function(t){this.performanceData[t]=Date.now()}},{key:"update",value:function(t){var e=t.src,i=t.loading,n=t.error,s=this.src;this.src=e,this.loading=i,this.error=n,this.filter(),s!==this.src&&(this.attempt=0,this.initState())}},{key:"getRect",value:function(){this.rect=this.el.getBoundingClientRect()}},{key:"checkInView",value:function(){return this.getRect(),this.rect.topthis.options.preLoadTop&&this.rect.left0}},{key:"filter",value:function(){var t=this;(function(t){if(!(t instanceof Object))return[];if(Object.keys)return Object.keys(t);var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(i);return e})(this.options.filter).map((function(e){t.options.filter[e](t,t.options)}))}},{key:"renderLoading",value:function(t){var e=this;O({src:this.loading},(function(i){e.render("loading",!1),t()}),(function(){t(),e.options.silent||console.warn("VueLazyload log: load failed with loading image("+e.loading+")")}))}},{key:"load",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l;return this.attempt>this.options.attempt-1&&this.state.error?(this.options.silent||console.log("VueLazyload log: "+this.src+" tried too more than "+this.options.attempt+" times"),void e()):this.state.loaded||B[this.src]?(this.state.loaded=!0,e(),this.render("loaded",!0)):void this.renderLoading((function(){t.attempt++,t.record("loadStart"),O({src:t.src},(function(i){t.naturalHeight=i.naturalHeight,t.naturalWidth=i.naturalWidth,t.state.loaded=!0,t.state.error=!1,t.record("loadEnd"),t.render("loaded",!1),B[t.src]=1,e()}),(function(e){!t.options.silent&&console.error(e),t.state.error=!0,t.state.loaded=!1,t.render("error",!1)}))}))}},{key:"render",value:function(t,e){this.elRenderer(this,t,e)}},{key:"performance",value:function(){var t="loading",e=0;return this.state.loaded&&(t="loaded",e=(this.performanceData.loadEnd-this.performanceData.loadStart)/1e3),this.state.error&&(t="error"),{src:this.src,state:t,time:e}}},{key:"destroy",value:function(){this.el=null,this.src=null,this.error=null,this.loading=null,this.bindType=null,this.attempt=0}}]),t}(),D="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",j=["scroll","wheel","mousewheel","resize","animationend","transitionend","touchmove"],E={rootMargin:"0px",threshold:0},P=function(t){return function(){function e(t){var i=t.preLoad,n=t.error,s=t.throttleWait,r=t.preLoadTop,o=t.dispatchEvent,l=t.loading,c=t.attempt,h=t.silent,d=void 0===h||h,f=t.scale,p=t.listenEvents,m=(t.hasbind,t.filter),v=t.adapter,g=t.observer,b=t.observerOptions;u(this,e),this.version="1.2.3",this.mode=y,this.ListenerQueue=[],this.TargetIndex=0,this.TargetQueue=[],this.options={silent:d,dispatchEvent:!!o,throttleWait:s||200,preLoad:i||1.3,preLoadTop:r||0,error:n||D,loading:l||D,attempt:c||3,scale:f||x(f),ListenEvents:p||j,hasbind:!1,supportWebp:a(),filter:m||{},adapter:v||{},observer:!!g,observerOptions:b||E},this._initEvent(),this.lazyLoadHandler=function(t,e){var i=null,n=0;return function(){if(!i){var s=Date.now()-n,r=this,o=arguments,a=function(){n=Date.now(),i=!1,t.apply(r,o)};s>=e?a():i=setTimeout(a,e)}}}(this._lazyLoadHandler.bind(this),this.options.throttleWait),this.setMode(this.options.observer?S:y)}return h(e,[{key:"config",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};v(this.options,t)}},{key:"performance",value:function(){var t=[];return this.ListenerQueue.map((function(e){t.push(e.performance())})),t}},{key:"addLazyBox",value:function(t){this.ListenerQueue.push(t),g&&(this._addListenerTarget(window),this._observer&&this._observer.observe(t.el),t.$el&&t.$el.parentNode&&this._addListenerTarget(t.$el.parentNode))}},{key:"add",value:function(e,i,n){var s=this;if(function(t,e){for(var i=!1,n=0,s=t.length;n0&&this.rect.left0},load:function(){this.show=!0,this.state.loaded=!0,this.$emit("show",this)}}}},N=function(){function t(e){var i=e.lazy;u(this,t),this.lazy=i,i.lazyContainerMananger=this,this._queue=[]}return h(t,[{key:"bind",value:function(t,e,i){var n=new M({el:t,binding:e,vnode:i,lazy:this.lazy});this._queue.push(n)}},{key:"update",value:function(t,e,i){var n=o(this._queue,(function(e){return e.el===t}));n&&n.update({el:t,binding:e,vnode:i})}},{key:"unbind",value:function(t,e,i){var n=o(this._queue,(function(e){return e.el===t}));n&&(n.clear(),s(this._queue,n))}}]),t}(),A={selector:"img"},M=function(){function t(e){var i=e.el,n=e.binding,s=e.vnode,r=e.lazy;u(this,t),this.el=null,this.vnode=s,this.binding=n,this.options={},this.lazy=r,this._queue=[],this.update({el:i,binding:n})}return h(t,[{key:"update",value:function(t){var e=this,i=t.el,n=t.binding;this.el=i,this.options=v({},A,n.value),this.getImgs().forEach((function(t){e.lazy.add(t,v({},e.binding,{value:{src:t.dataset.src,error:t.dataset.error,loading:t.dataset.loading}}),e.vnode)}))}},{key:"getImgs",value:function(){return function(t){for(var e=t.length,i=[],n=0;n1&&void 0!==arguments[1]?arguments[1]:{},i=P(t),n=new i(e),s=new N({lazy:n}),r="2"===t.version.split(".")[0];t.prototype.$Lazyload=n,e.lazyComponent&&t.component("lazy-component",L(n)),r?(t.directive("lazy",{bind:n.add.bind(n),update:n.update.bind(n),componentUpdated:n.lazyLoadHandler.bind(n),unbind:n.remove.bind(n)}),t.directive("lazy-container",{bind:s.bind.bind(s),update:s.update.bind(s),unbind:s.unbind.bind(s)})):(t.directive("lazy",{bind:n.lazyLoadHandler.bind(n),update:function(t,e){v(this.vm.$refs,this.vm.$els),n.add(this.el,{modifiers:this.modifiers||{},arg:this.arg,value:t,oldValue:e},{context:this.vm})},unbind:function(){n.remove(this.el)}}),t.directive("lazy-container",{update:function(t,e){s.update(this.el,{modifiers:this.modifiers||{},arg:this.arg,value:t,oldValue:e},{context:this.vm})},unbind:function(){s.unbind(this.el)}}))}}}()},function(t,e){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,i){"use strict";function n(){return(n=Object.assign||function(t){for(var e=1;e2?i-2:0),s=2;si&&e>10?"horizontal":i>e&&i>10?"vertical":"")},resetTouchStatus:function(){this.direction="",this.deltaX=0,this.deltaY=0,this.offsetX=0,this.offsetY=0},bindTouchEvent:function(t){var e=this.onTouchStart,i=this.onTouchMove,n=this.onTouchEnd;b(t,"touchstart",e),b(t,"touchmove",i),n&&(b(t,"touchend",n),b(t,"touchcancel",n))}}};function H(t){var e=void 0===t?{}:t,i=e.ref,n=e.afterPortal;return{props:{getContainer:[String,Function]},watch:{getContainer:"portal"},mounted:function(){this.getContainer&&this.portal()},methods:{portal:function(){var t,e,s=this.getContainer,r=i?this.$refs[i]:this.$el;s?t="string"==typeof(e=s)?document.querySelector(e):e():this.$parent&&(t=this.$parent.$el),t&&t!==r.parentNode&&t.appendChild(r),n&&n.call(this)}}}}var _=0;function W(t){var e="binded_"+_++;function i(){this[e]||(t.call(this,b,!0),this[e]=!0)}function n(){this[e]&&(t.call(this,y,!1),this[e]=!1)}return{mounted:i,activated:i,deactivated:n,beforeDestroy:n}}var q={mixins:[W((function(t,e){this.handlePopstate(e&&this.closeOnPopstate)}))],props:{closeOnPopstate:Boolean},data:function(){return{bindStatus:!1}},watch:{closeOnPopstate:function(t){this.handlePopstate(t)}},methods:{onPopstate:function(){this.close(),this.shouldReopen=!1},handlePopstate:function(t){this.$isServer||this.bindStatus!==t&&(this.bindStatus=t,(t?b:y)(window,"popstate",this.onPopstate))}}},U={transitionAppear:Boolean,value:Boolean,overlay:Boolean,overlayStyle:Object,overlayClass:String,closeOnClickOverlay:Boolean,zIndex:[Number,String],lockScroll:{type:Boolean,default:!0},lazyRender:{type:Boolean,default:!0}};function K(t){return void 0===t&&(t={}),{mixins:[R,q,H({afterPortal:function(){this.overlay&&D()}})],provide:function(){return{vanPopup:this}},props:U,data:function(){return this.onReopenCallback=[],{inited:this.value}},computed:{shouldRender:function(){return this.inited||!this.lazyRender}},watch:{value:function(e){var i=e?"open":"close";this.inited=this.inited||this.value,this[i](),t.skipToggleEvent||this.$emit(i)},overlay:"renderOverlay"},mounted:function(){this.value&&this.open()},activated:function(){this.shouldReopen&&(this.$emit("input",!0),this.shouldReopen=!1)},beforeDestroy:function(){var t,e;t=this,(e=p.find(t))&&(B(e.overlay.$el),p.remove(t)),this.opened&&this.removeLock(),this.getContainer&&B(this.$el)},deactivated:function(){this.value&&(this.close(),this.shouldReopen=!0)},methods:{open:function(){this.$isServer||this.opened||(void 0!==this.zIndex&&(p.zIndex=this.zIndex),this.opened=!0,this.renderOverlay(),this.addLock(),this.onReopenCallback.forEach((function(t){t()})))},addLock:function(){this.lockScroll&&(b(document,"touchstart",this.touchStart),b(document,"touchmove",this.onTouchMove),p.lockCount||document.body.classList.add("van-overflow-hidden"),p.lockCount++)},removeLock:function(){this.lockScroll&&p.lockCount&&(p.lockCount--,y(document,"touchstart",this.touchStart),y(document,"touchmove",this.onTouchMove),p.lockCount||document.body.classList.remove("van-overflow-hidden"))},close:function(){this.opened&&(E(this),this.opened=!1,this.removeLock(),this.$emit("input",!1))},onTouchMove:function(t){this.touchMove(t);var e=this.deltaY>0?"10":"01",i=N(t.target,this.$el),n=i.scrollHeight,s=i.offsetHeight,r=i.scrollTop,o="11";0===r?o=s>=n?"00":"01":r+s>=n&&(o="10"),"11"===o||"vertical"!==this.direction||parseInt(o,2)&parseInt(e,2)||k(t,!0)},renderOverlay:function(){var t=this;!this.$isServer&&this.value&&this.$nextTick((function(){t.updateZIndex(t.overlay?1:0),t.overlay?j(t,{zIndex:p.zIndex++,duration:t.duration,className:t.overlayClass,customStyle:t.overlayStyle}):E(t)}))},updateZIndex:function(t){void 0===t&&(t=0),this.$el.style.zIndex=++p.zIndex+t},onReopen:function(t){this.onReopenCallback.push(t)}}}}var Y=i(6),X=Object(l.a)("info"),Q=X[0],G=X[1];function Z(t,e,i,n){var s=e.dot,o=e.info,a=Object(m.c)(o)&&""!==o;if(s||a)return t("div",r()([{class:G({dot:s})},h(n,!0)]),[s?"":e.info])}Z.props={dot:Boolean,info:[Number,String]};var J=Q(Z),tt=Object(l.a)("icon"),et=tt[0],it=tt[1];var nt={medel:"medal","medel-o":"medal-o","calender-o":"calendar-o"};function st(t,e,i,n){var s,o=function(t){return t&&nt[t]||t}(e.name),a=function(t){return!!t&&-1!==t.indexOf("/")}(o);return t(e.tag,r()([{class:[e.classPrefix,a?"":e.classPrefix+"-"+o],style:{color:e.color,fontSize:Object(Y.a)(e.size)}},h(n,!0)]),[i.default&&i.default(),a&&t("img",{class:it("image"),attrs:{src:o}}),t(J,{attrs:{dot:e.dot,info:null!=(s=e.badge)?s:e.info}})])}st.props={dot:Boolean,name:String,size:[Number,String],info:[Number,String],badge:[Number,String],color:String,tag:{type:String,default:"i"},classPrefix:{type:String,default:it()}};var rt=et(st),ot=Object(l.a)("popup"),at=ot[0],lt=ot[1],ct=at({mixins:[K()],props:{round:Boolean,duration:[Number,String],closeable:Boolean,transition:String,safeAreaInsetBottom:Boolean,closeIcon:{type:String,default:"cross"},closeIconPosition:{type:String,default:"top-right"},position:{type:String,default:"center"},overlay:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}},beforeCreate:function(){var t=this,e=function(e){return function(i){return t.$emit(e,i)}};this.onClick=e("click"),this.onOpened=e("opened"),this.onClosed=e("closed")},methods:{onClickCloseIcon:function(t){this.$emit("click-close-icon",t),this.close()}},render:function(){var t,e=arguments[0];if(this.shouldRender){var i=this.round,n=this.position,s=this.duration,r="center"===n,o=this.transition||(r?"van-fade":"van-popup-slide-"+n),a={};if(Object(m.c)(s)){var l=r?"animationDuration":"transitionDuration";a[l]=s+"s"}return e("transition",{attrs:{appear:this.transitionAppear,name:o},on:{afterEnter:this.onOpened,afterLeave:this.onClosed}},[e("div",{directives:[{name:"show",value:this.value}],style:a,class:lt((t={round:i},t[n]=n,t["safe-area-inset-bottom"]=this.safeAreaInsetBottom,t)),on:{click:this.onClick}},[this.slots(),this.closeable&&e(rt,{attrs:{role:"button",tabindex:"0",name:this.closeIcon},class:lt("close-icon",this.closeIconPosition),on:{click:this.onClickCloseIcon}})])])}}}),ut=Object(l.a)("loading"),ht=ut[0],dt=ut[1];function ft(t,e){if("spinner"===e.type){for(var i=[],n=0;n<12;n++)i.push(t("i"));return i}return t("svg",{class:dt("circular"),attrs:{viewBox:"25 25 50 50"}},[t("circle",{attrs:{cx:"50",cy:"50",r:"20",fill:"none"}})])}function pt(t,e,i){if(i.default){var n,s={fontSize:Object(Y.a)(e.textSize),color:null!=(n=e.textColor)?n:e.color};return t("span",{class:dt("text"),style:s},[i.default()])}}function mt(t,e,i,n){var s=e.color,o=e.size,a=e.type,l={color:s};if(o){var c=Object(Y.a)(o);l.width=c,l.height=c}return t("div",r()([{class:dt([a,{vertical:e.vertical}])},h(n,!0)]),[t("span",{class:dt("spinner",a),style:l},[ft(t,e)]),pt(t,e,i)])}mt.props={color:String,size:[Number,String],vertical:Boolean,textSize:[Number,String],textColor:String,type:{type:String,default:"circular"}};var vt=ht(mt),gt=Object(l.a)("action-sheet"),bt=gt[0],yt=gt[1];function St(t,e,i,n){var s=e.title,o=e.cancelText,l=e.closeable;function c(){d(n,"input",!1),d(n,"cancel")}return t(ct,r()([{class:yt(),attrs:{position:"bottom",round:e.round,value:e.value,overlay:e.overlay,duration:e.duration,lazyRender:e.lazyRender,lockScroll:e.lockScroll,getContainer:e.getContainer,closeOnPopstate:e.closeOnPopstate,closeOnClickOverlay:e.closeOnClickOverlay,safeAreaInsetBottom:e.safeAreaInsetBottom}},h(n,!0)]),[function(){if(s)return t("div",{class:yt("header")},[s,l&&t(rt,{attrs:{name:e.closeIcon},class:yt("close"),on:{click:c}})])}(),function(){var n=(null==i.description?void 0:i.description())||e.description;if(n)return t("div",{class:yt("description")},[n])}(),t("div",{class:yt("content")},[e.actions&&e.actions.map((function(i,s){var r=i.disabled,o=i.loading,l=i.callback;return t("button",{attrs:{type:"button"},class:[yt("item",{disabled:r,loading:o}),i.className],style:{color:i.color},on:{click:function(t){t.stopPropagation(),r||o||(l&&l(i),e.closeOnClickAction&&d(n,"input",!1),a.a.nextTick((function(){d(n,"select",i,s)})))}}},[o?t(vt,{class:yt("loading-icon")}):[t("span",{class:yt("name")},[i.name]),i.subname&&t("div",{class:yt("subname")},[i.subname])]])})),null==i.default?void 0:i.default()]),function(){if(o)return[t("div",{class:yt("gap")}),t("button",{attrs:{type:"button"},class:yt("cancel"),on:{click:c}},[o])]}()])}St.props=n({},U,{title:String,actions:Array,duration:[Number,String],cancelText:String,description:String,getContainer:[String,Function],closeOnPopstate:Boolean,closeOnClickAction:Boolean,round:{type:Boolean,default:!0},closeable:{type:Boolean,default:!0},closeIcon:{type:String,default:"cross"},safeAreaInsetBottom:{type:Boolean,default:!0},overlay:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}});var kt=bt(St);function xt(t){return t=t.replace(/[^-|\d]/g,""),/^((\+86)|(86))?(1)\d{10}$/.test(t)||/^0[0-9-]{10,13}$/.test(t)}var wt={title:String,loading:Boolean,readonly:Boolean,itemHeight:[Number,String],showToolbar:Boolean,cancelButtonText:String,confirmButtonText:String,allowHtml:{type:Boolean,default:!0},visibleItemCount:{type:[Number,String],default:6},swipeDuration:{type:[Number,String],default:1e3}},Ct="#ee0a24",Ot="van-hairline",Tt=Ot+"--top",$t=Ot+"--bottom",Bt=Ot+"--top-bottom";function It(t){if(!Object(m.c)(t))return t;if(Array.isArray(t))return t.map((function(t){return It(t)}));if("object"==typeof t){var e={};return Object.keys(t).forEach((function(i){e[i]=It(t[i])})),e}return t}function Dt(t,e,i){return Math.min(Math.max(t,e),i)}function jt(t,e,i){var n=t.indexOf(e),s="";return-1===n?t:"-"===e&&0!==n?t.slice(0,n):("."===e&&t.match(/^(\.|-\.)/)&&(s=n?"-0":"0"),s+t.slice(0,n+1)+t.slice(n).replace(i,""))}function Et(t,e,i){void 0===e&&(e=!0),void 0===i&&(i=!0),t=e?jt(t,".",/\./g):t.split(".")[0];var n=e?/[^-0-9.]/g:/[^-0-9]/g;return(t=i?jt(t,"-",/-/g):t.replace(/-/,"")).replace(n,"")}function Pt(t,e){var i=Math.pow(10,10);return Math.round((t+e)*i)/i}var Lt=Object(l.a)("picker-column"),Nt=Lt[0],At=Lt[1];function Mt(t){return Object(m.f)(t)&&t.disabled}var zt=Nt({mixins:[R],props:{valueKey:String,readonly:Boolean,allowHtml:Boolean,className:String,itemHeight:Number,defaultIndex:Number,swipeDuration:[Number,String],visibleItemCount:[Number,String],initialOptions:{type:Array,default:function(){return[]}}},data:function(){return{offset:0,duration:0,options:It(this.initialOptions),currentIndex:this.defaultIndex}},created:function(){this.$parent.children&&this.$parent.children.push(this),this.setIndex(this.currentIndex)},mounted:function(){this.bindTouchEvent(this.$el)},destroyed:function(){var t=this.$parent.children;t&&t.splice(t.indexOf(this),1)},watch:{initialOptions:"setOptions",defaultIndex:function(t){this.setIndex(t)}},computed:{count:function(){return this.options.length},baseOffset:function(){return this.itemHeight*(this.visibleItemCount-1)/2}},methods:{setOptions:function(t){JSON.stringify(t)!==JSON.stringify(this.options)&&(this.options=It(t),this.setIndex(this.defaultIndex))},onTouchStart:function(t){if(!this.readonly){if(this.touchStart(t),this.moving){var e=function(t){var e=window.getComputedStyle(t),i=e.transform||e.webkitTransform,n=i.slice(7,i.length-1).split(", ")[5];return Number(n)}(this.$refs.wrapper);this.offset=Math.min(0,e-this.baseOffset),this.startOffset=this.offset}else this.startOffset=this.offset;this.duration=0,this.transitionEndTrigger=null,this.touchStartTime=Date.now(),this.momentumOffset=this.startOffset}},onTouchMove:function(t){if(!this.readonly){this.touchMove(t),"vertical"===this.direction&&(this.moving=!0,k(t,!0)),this.offset=Dt(this.startOffset+this.deltaY,-this.count*this.itemHeight,this.itemHeight);var e=Date.now();e-this.touchStartTime>300&&(this.touchStartTime=e,this.momentumOffset=this.offset)}},onTouchEnd:function(){var t=this;if(!this.readonly){var e=this.offset-this.momentumOffset,i=Date.now()-this.touchStartTime;if(i<300&&Math.abs(e)>15)this.momentum(e,i);else{var n=this.getIndexByOffset(this.offset);this.duration=200,this.setIndex(n,!0),setTimeout((function(){t.moving=!1}),0)}}},onTransitionEnd:function(){this.stopMomentum()},onClickItem:function(t){this.moving||this.readonly||(this.transitionEndTrigger=null,this.duration=200,this.setIndex(t,!0))},adjustIndex:function(t){for(var e=t=Dt(t,0,this.count);e=0;i--)if(!Mt(this.options[i]))return i},getOptionText:function(t){return Object(m.f)(t)&&this.valueKey in t?t[this.valueKey]:t},setIndex:function(t,e){var i=this,n=-(t=this.adjustIndex(t)||0)*this.itemHeight,s=function(){t!==i.currentIndex&&(i.currentIndex=t,e&&i.$emit("change",t))};this.moving&&n!==this.offset?this.transitionEndTrigger=s:s(),this.offset=n},setValue:function(t){for(var e=this.options,i=0;ii&&(t=this.value&&this.value.length===+i?this.value:t.slice(0,i)),"number"===this.type||"digit"===this.type){var n="number"===this.type;t=Et(t,n,n)}this.formatter&&e===this.formatTrigger&&(t=this.formatter(t));var s=this.$refs.input;s&&t!==s.value&&(s.value=t),t!==this.value&&this.$emit("input",t)},onInput:function(t){t.target.composing||this.updateValue(t.target.value)},onFocus:function(t){this.focused=!0,this.$emit("focus",t),this.getProp("readonly")&&this.blur()},onBlur:function(t){this.focused=!1,this.updateValue(this.value,"onBlur"),this.$emit("blur",t),this.validateWithTrigger("onBlur"),re()},onClick:function(t){this.$emit("click",t)},onClickInput:function(t){this.$emit("click-input",t)},onClickLeftIcon:function(t){this.$emit("click-left-icon",t)},onClickRightIcon:function(t){this.$emit("click-right-icon",t)},onClear:function(t){k(t),this.$emit("input",""),this.$emit("clear",t)},onKeypress:function(t){13===t.keyCode&&(this.getProp("submitOnEnter")||"textarea"===this.type||k(t),"search"===this.type&&this.blur());this.$emit("keypress",t)},adjustSize:function(){var t=this.$refs.input;if("textarea"===this.type&&this.autosize&&t){var e=z();t.style.height="auto";var i=t.scrollHeight;if(Object(m.f)(this.autosize)){var n=this.autosize,s=n.maxHeight,r=n.minHeight;s&&(i=Math.min(i,s)),r&&(i=Math.max(i,r))}i&&(t.style.height=i+"px",F(e))}},genInput:function(){var t=this.$createElement,e=this.type,i=this.getProp("disabled"),s=this.getProp("readonly"),o=this.slots("input"),a=this.getProp("inputAlign");if(o)return t("div",{class:le("control",[a,"custom"]),on:{click:this.onClickInput}},[o]);var l={ref:"input",class:le("control",a),domProps:{value:this.value},attrs:n({},this.$attrs,{name:this.name,disabled:i,readonly:s,placeholder:this.placeholder}),on:this.listeners,directives:[{name:"model",value:this.value}]};if("textarea"===e)return t("textarea",r()([{},l]));var c,u=e;return"number"===e&&(u="text",c="decimal"),"digit"===e&&(u="tel",c="numeric"),t("input",r()([{attrs:{type:u,inputmode:c}},l]))},genLeftIcon:function(){var t=this.$createElement;if(this.slots("left-icon")||this.leftIcon)return t("div",{class:le("left-icon"),on:{click:this.onClickLeftIcon}},[this.slots("left-icon")||t(rt,{attrs:{name:this.leftIcon,classPrefix:this.iconPrefix}})])},genRightIcon:function(){var t=this.$createElement,e=this.slots;if(e("right-icon")||this.rightIcon)return t("div",{class:le("right-icon"),on:{click:this.onClickRightIcon}},[e("right-icon")||t(rt,{attrs:{name:this.rightIcon,classPrefix:this.iconPrefix}})])},genWordLimit:function(){var t=this.$createElement;if(this.showWordLimit&&this.maxlength){var e=(this.value||"").length;return t("div",{class:le("word-limit")},[t("span",{class:le("word-num")},[e]),"/",this.maxlength])}},genMessage:function(){var t=this.$createElement;if(!this.vanForm||!1!==this.vanForm.showErrorMessage){var e=this.errorMessage||this.validateMessage;if(e){var i=this.getProp("errorMessageAlign");return t("div",{class:le("error-message",i)},[e])}}},getProp:function(t){return Object(m.c)(this[t])?this[t]:this.vanForm&&Object(m.c)(this.vanForm[t])?this.vanForm[t]:void 0},genLabel:function(){var t=this.$createElement,e=this.getProp("colon")?":":"";return this.slots("label")?[this.slots("label"),e]:this.label?t("span",[this.label+e]):void 0}},render:function(){var t,e=arguments[0],i=this.slots,n=this.getProp("disabled"),s=this.getProp("labelAlign"),r={icon:this.genLeftIcon},o=this.genLabel();o&&(r.title=function(){return o});var a=this.slots("extra");return a&&(r.extra=function(){return a}),e(ne,{attrs:{icon:this.leftIcon,size:this.size,center:this.center,border:this.border,isLink:this.isLink,required:this.required,clickable:this.clickable,titleStyle:this.labelStyle,valueClass:le("value"),titleClass:[le("label",s),this.labelClass],arrowDirection:this.arrowDirection},scopedSlots:r,class:le((t={error:this.showError,disabled:n},t["label-"+s]=s,t["min-height"]="textarea"===this.type&&!this.autosize,t)),on:{click:this.onClick}},[e("div",{class:le("body")},[this.genInput(),this.showClear&&e(rt,{attrs:{name:"clear"},class:le("clear"),on:{touchstart:this.onClear}}),this.genRightIcon(),i("button")&&e("div",{class:le("button")},[i("button")])]),this.genWordLimit(),this.genMessage()])}}),ue=0;var he=Object(l.a)("toast"),de=he[0],fe=he[1],pe=de({mixins:[K()],props:{icon:String,className:null,iconPrefix:String,loadingType:String,forbidClick:Boolean,closeOnClick:Boolean,message:[Number,String],type:{type:String,default:"text"},position:{type:String,default:"middle"},transition:{type:String,default:"van-fade"},lockScroll:{type:Boolean,default:!1}},data:function(){return{clickable:!1}},mounted:function(){this.toggleClickable()},destroyed:function(){this.toggleClickable()},watch:{value:"toggleClickable",forbidClick:"toggleClickable"},methods:{onClick:function(){this.closeOnClick&&this.close()},toggleClickable:function(){var t=this.value&&this.forbidClick;this.clickable!==t&&(this.clickable=t,t?(ue||document.body.classList.add("van-toast--unclickable"),ue++):--ue||document.body.classList.remove("van-toast--unclickable"))},onAfterEnter:function(){this.$emit("opened"),this.onOpened&&this.onOpened()},onAfterLeave:function(){this.$emit("closed")},genIcon:function(){var t=this.$createElement,e=this.icon,i=this.type,n=this.iconPrefix,s=this.loadingType;return e||"success"===i||"fail"===i?t(rt,{class:fe("icon"),attrs:{classPrefix:n,name:e||i}}):"loading"===i?t(vt,{class:fe("loading"),attrs:{type:s}}):void 0},genMessage:function(){var t=this.$createElement,e=this.type,i=this.message;if(Object(m.c)(i)&&""!==i)return"html"===e?t("div",{class:fe("text"),domProps:{innerHTML:i}}):t("div",{class:fe("text")},[i])}},render:function(){var t,e=arguments[0];return e("transition",{attrs:{name:this.transition},on:{afterEnter:this.onAfterEnter,afterLeave:this.onAfterLeave}},[e("div",{directives:[{name:"show",value:this.value}],class:[fe([this.position,(t={},t[this.type]=!this.icon,t)]),this.className],on:{click:this.onClick}},[this.genIcon(),this.genMessage()])])}}),me={icon:"",type:"text",mask:!1,value:!0,message:"",className:"",overlay:!1,onClose:null,onOpened:null,duration:2e3,iconPrefix:void 0,position:"middle",transition:"van-fade",forbidClick:!1,loadingType:void 0,getContainer:"body",overlayStyle:null,closeOnClick:!1,closeOnClickOverlay:!1},ve={},ge=[],be=!1,ye=n({},me);function Se(t){return Object(m.f)(t)?t:{message:t}}function ke(){if(m.h)return{};if(!(ge=ge.filter((function(t){return!t.$el.parentNode||(e=t.$el,document.body.contains(e));var e}))).length||be){var t=new(a.a.extend(pe))({el:document.createElement("div")});t.$on("input",(function(e){t.value=e})),ge.push(t)}return ge[ge.length-1]}function xe(t){void 0===t&&(t={});var e=ke();return e.value&&e.updateZIndex(),t=Se(t),(t=n({},ye,ve[t.type||ye.type],t)).clear=function(){e.value=!1,t.onClose&&(t.onClose(),t.onClose=null),be&&!m.h&&e.$on("closed",(function(){clearTimeout(e.timer),ge=ge.filter((function(t){return t!==e})),B(e.$el),e.$destroy()}))},n(e,function(t){return n({},t,{overlay:t.mask||t.overlay,mask:void 0,duration:void 0})}(t)),clearTimeout(e.timer),t.duration>0&&(e.timer=setTimeout((function(){e.clear()}),t.duration)),e}["loading","success","fail"].forEach((function(t){var e;xe[t]=(e=t,function(t){return xe(n({type:e},Se(t)))})})),xe.clear=function(t){ge.length&&(t?(ge.forEach((function(t){t.clear()})),ge=[]):be?ge.shift().clear():ge[0].clear())},xe.setDefaultOptions=function(t,e){"string"==typeof t?ve[t]=e:n(ye,t)},xe.resetDefaultOptions=function(t){"string"==typeof t?ve[t]=null:(ye=n({},me),ve={})},xe.allowMultiple=function(t){void 0===t&&(t=!0),be=t},xe.install=function(){a.a.use(pe)},a.a.prototype.$toast=xe;var we=xe,Ce=Object(l.a)("button"),Oe=Ce[0],Te=Ce[1];function $e(t,e,i,n){var s,o=e.tag,a=e.icon,l=e.type,c=e.color,u=e.plain,f=e.disabled,p=e.loading,m=e.hairline,v=e.loadingText,g=e.iconPosition,b={};c&&(b.color=u?c:"white",u||(b.background=c),-1!==c.indexOf("gradient")?b.border=0:b.borderColor=c);var y,S,k=[Te([l,e.size,{plain:u,loading:p,disabled:f,hairline:m,block:e.block,round:e.round,square:e.square}]),(s={},s["van-hairline--surround"]=m,s)];function x(){return p?i.loading?i.loading():t(vt,{class:Te("loading"),attrs:{size:e.loadingSize,type:e.loadingType,color:"currentColor"}}):i.icon?t("div",{class:Te("icon")},[i.icon()]):a?t(rt,{attrs:{name:a,classPrefix:e.iconPrefix},class:Te("icon")}):void 0}return t(o,r()([{style:b,class:k,attrs:{type:e.nativeType,disabled:f},on:{click:function(t){e.loading&&t.preventDefault(),p||f||(d(n,"click",t),Qt(n))},touchstart:function(t){d(n,"touchstart",t)}}},h(n)]),[t("div",{class:Te("content")},[(S=[],"left"===g&&S.push(x()),(y=p?v:i.default?i.default():e.text)&&S.push(t("span",{class:Te("text")},[y])),"right"===g&&S.push(x()),S)])])}$e.props=n({},Gt,{text:String,icon:String,color:String,block:Boolean,plain:Boolean,round:Boolean,square:Boolean,loading:Boolean,hairline:Boolean,disabled:Boolean,iconPrefix:String,nativeType:String,loadingText:String,loadingType:String,tag:{type:String,default:"button"},type:{type:String,default:"default"},size:{type:String,default:"normal"},loadingSize:{type:String,default:"20px"},iconPosition:{type:String,default:"left"}});var Be=Oe($e);function Ie(t,e){var i=e.$vnode.componentOptions;if(i&&i.children){var n=function(t){var e=[];return function t(i){i.forEach((function(i){e.push(i),i.componentInstance&&t(i.componentInstance.$children.map((function(t){return t.$vnode}))),i.children&&t(i.children)}))}(t),e}(i.children);t.sort((function(t,e){return n.indexOf(t.$vnode)-n.indexOf(e.$vnode)}))}}function De(t,e){var i,n;void 0===e&&(e={});var s=e.indexKey||"index";return{inject:(i={},i[t]={default:null},i),computed:(n={parent:function(){return this.disableBindRelation?null:this[t]}},n[s]=function(){return this.bindRelation(),this.parent?this.parent.children.indexOf(this):null},n),watch:{disableBindRelation:function(t){t||this.bindRelation()}},mounted:function(){this.bindRelation()},beforeDestroy:function(){var t=this;this.parent&&(this.parent.children=this.parent.children.filter((function(e){return e!==t})))},methods:{bindRelation:function(){if(this.parent&&-1===this.parent.children.indexOf(this)){var t=[].concat(this.parent.children,[this]);Ie(t,this.parent),this.parent.children=t}}}}}function je(t){return{provide:function(){var e;return(e={})[t]=this,e},data:function(){return{children:[]}}}}var Ee,Pe=Object(l.a)("goods-action"),Le=Pe[0],Ne=Pe[1],Ae=Le({mixins:[je("vanGoodsAction")],props:{safeAreaInsetBottom:{type:Boolean,default:!0}},render:function(){var t=arguments[0];return t("div",{class:Ne({unfit:!this.safeAreaInsetBottom})},[this.slots()])}}),Me=Object(l.a)("goods-action-button"),ze=Me[0],Fe=Me[1],Ve=ze({mixins:[De("vanGoodsAction")],props:n({},Gt,{type:String,text:String,icon:String,color:String,loading:Boolean,disabled:Boolean}),computed:{isFirst:function(){var t=this.parent&&this.parent.children[this.index-1];return!t||t.$options.name!==this.$options.name},isLast:function(){var t=this.parent&&this.parent.children[this.index+1];return!t||t.$options.name!==this.$options.name}},methods:{onClick:function(t){this.$emit("click",t),Xt(this.$router,this)}},render:function(){var t=arguments[0];return t(Be,{class:Fe([{first:this.isFirst,last:this.isLast},this.type]),attrs:{size:"large",type:this.type,icon:this.icon,color:this.color,loading:this.loading,disabled:this.disabled},on:{click:this.onClick}},[this.slots()||this.text])}}),Re=Object(l.a)("dialog"),He=Re[0],_e=Re[1],We=Re[2],qe=He({mixins:[K()],props:{title:String,theme:String,width:[Number,String],message:String,className:null,callback:Function,beforeClose:Function,messageAlign:String,cancelButtonText:String,cancelButtonColor:String,confirmButtonText:String,confirmButtonColor:String,showCancelButton:Boolean,overlay:{type:Boolean,default:!0},allowHtml:{type:Boolean,default:!0},transition:{type:String,default:"van-dialog-bounce"},showConfirmButton:{type:Boolean,default:!0},closeOnPopstate:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!1}},data:function(){return{loading:{confirm:!1,cancel:!1}}},methods:{onClickOverlay:function(){this.handleAction("overlay")},handleAction:function(t){var e=this;this.$emit(t),this.value&&(this.beforeClose?(this.loading[t]=!0,this.beforeClose(t,(function(i){!1!==i&&e.loading[t]&&e.onClose(t),e.loading.confirm=!1,e.loading.cancel=!1}))):this.onClose(t))},onClose:function(t){this.close(),this.callback&&this.callback(t)},onOpened:function(){this.$emit("opened")},onClosed:function(){this.$emit("closed")},genRoundButtons:function(){var t=this,e=this.$createElement;return e(Ae,{class:_e("footer")},[this.showCancelButton&&e(Ve,{attrs:{size:"large",type:"warning",text:this.cancelButtonText||We("cancel"),color:this.cancelButtonColor,loading:this.loading.cancel},class:_e("cancel"),on:{click:function(){t.handleAction("cancel")}}}),this.showConfirmButton&&e(Ve,{attrs:{size:"large",type:"danger",text:this.confirmButtonText||We("confirm"),color:this.confirmButtonColor,loading:this.loading.confirm},class:_e("confirm"),on:{click:function(){t.handleAction("confirm")}}})])},genButtons:function(){var t,e=this,i=this.$createElement,n=this.showCancelButton&&this.showConfirmButton;return i("div",{class:[Tt,_e("footer")]},[this.showCancelButton&&i(Be,{attrs:{size:"large",loading:this.loading.cancel,text:this.cancelButtonText||We("cancel")},class:_e("cancel"),style:{color:this.cancelButtonColor},on:{click:function(){e.handleAction("cancel")}}}),this.showConfirmButton&&i(Be,{attrs:{size:"large",loading:this.loading.confirm,text:this.confirmButtonText||We("confirm")},class:[_e("confirm"),(t={},t["van-hairline--left"]=n,t)],style:{color:this.confirmButtonColor},on:{click:function(){e.handleAction("confirm")}}})])},genContent:function(t,e){var i=this.$createElement;if(e)return i("div",{class:_e("content")},[e]);var n=this.message,s=this.messageAlign;if(n){var o,a,l={class:_e("message",(o={"has-title":t},o[s]=s,o)),domProps:(a={},a[this.allowHtml?"innerHTML":"textContent"]=n,a)};return i("div",{class:_e("content",{isolated:!t})},[i("div",r()([{},l]))])}}},render:function(){var t=arguments[0];if(this.shouldRender){var e=this.message,i=this.slots(),n=this.slots("title")||this.title,s=n&&t("div",{class:_e("header",{isolated:!e&&!i})},[n]);return t("transition",{attrs:{name:this.transition},on:{afterEnter:this.onOpened,afterLeave:this.onClosed}},[t("div",{directives:[{name:"show",value:this.value}],attrs:{role:"dialog","aria-labelledby":this.title||e},class:[_e([this.theme]),this.className],style:{width:Object(Y.a)(this.width)}},[s,this.genContent(n,i),"round-button"===this.theme?this.genRoundButtons():this.genButtons()])])}}});function Ue(t){return m.h?Promise.resolve():new Promise((function(e,i){var s;Ee&&(s=Ee.$el,document.body.contains(s))||(Ee&&Ee.$destroy(),(Ee=new(a.a.extend(qe))({el:document.createElement("div"),propsData:{lazyRender:!1}})).$on("input",(function(t){Ee.value=t}))),n(Ee,Ue.currentOptions,t,{resolve:e,reject:i})}))}Ue.defaultOptions={value:!0,title:"",width:"",theme:null,message:"",overlay:!0,className:"",allowHtml:!0,lockScroll:!0,transition:"van-dialog-bounce",beforeClose:null,overlayClass:"",overlayStyle:null,messageAlign:"",getContainer:"body",cancelButtonText:"",cancelButtonColor:null,confirmButtonText:"",confirmButtonColor:null,showConfirmButton:!0,showCancelButton:!1,closeOnPopstate:!0,closeOnClickOverlay:!1,callback:function(t){Ee["confirm"===t?"resolve":"reject"](t)}},Ue.alert=Ue,Ue.confirm=function(t){return Ue(n({showCancelButton:!0},t))},Ue.close=function(){Ee&&(Ee.value=!1)},Ue.setDefaultOptions=function(t){n(Ue.currentOptions,t)},Ue.resetDefaultOptions=function(){Ue.currentOptions=n({},Ue.defaultOptions)},Ue.resetDefaultOptions(),Ue.install=function(){a.a.use(qe)},Ue.Component=qe,a.a.prototype.$dialog=Ue;var Ke=Ue,Ye=Object(l.a)("address-edit-detail"),Xe=Ye[0],Qe=Ye[1],Ge=Ye[2],Ze=!m.h&&/android/.test(navigator.userAgent.toLowerCase()),Je=Xe({props:{value:String,errorMessage:String,focused:Boolean,detailRows:[Number,String],searchResult:Array,detailMaxlength:[Number,String],showSearchResult:Boolean},computed:{shouldShowSearchResult:function(){return this.focused&&this.searchResult&&this.showSearchResult}},methods:{onSelect:function(t){this.$emit("select-search",t),this.$emit("input",((t.address||"")+" "+(t.name||"")).trim())},onFinish:function(){this.$refs.field.blur()},genFinish:function(){var t=this.$createElement;if(this.value&&this.focused&&Ze)return t("div",{class:Qe("finish"),on:{click:this.onFinish}},[Ge("complete")])},genSearchResult:function(){var t=this,e=this.$createElement,i=this.value,n=this.shouldShowSearchResult,s=this.searchResult;if(n)return s.map((function(n){return e(ne,{key:n.name+n.address,attrs:{clickable:!0,border:!1,icon:"location-o",label:n.address},class:Qe("search-item"),on:{click:function(){t.onSelect(n)}},scopedSlots:{title:function(){if(n.name){var t=n.name.replace(i,""+i+"");return e("div",{domProps:{innerHTML:t}})}}}})}))}},render:function(){var t=arguments[0];return t(ne,{class:Qe()},[t(ce,{attrs:{autosize:!0,rows:this.detailRows,clearable:!Ze,type:"textarea",value:this.value,errorMessage:this.errorMessage,border:!this.shouldShowSearchResult,label:Ge("label"),maxlength:this.detailMaxlength,placeholder:Ge("placeholder")},ref:"field",scopedSlots:{icon:this.genFinish},on:n({},this.$listeners)}),this.genSearchResult()])}}),ti={size:[Number,String],value:null,loading:Boolean,disabled:Boolean,activeColor:String,inactiveColor:String,activeValue:{type:null,default:!0},inactiveValue:{type:null,default:!1}},ei={inject:{vanField:{default:null}},watch:{value:function(){var t=this.vanField;t&&(t.resetValidation(),t.validateWithTrigger("onChange"))}},created:function(){var t=this.vanField;t&&!t.children&&(t.children=this)}},ii=Object(l.a)("switch"),ni=ii[0],si=ii[1],ri=ni({mixins:[ei],props:ti,computed:{checked:function(){return this.value===this.activeValue},style:function(){return{fontSize:Object(Y.a)(this.size),backgroundColor:this.checked?this.activeColor:this.inactiveColor}}},methods:{onClick:function(t){if(this.$emit("click",t),!this.disabled&&!this.loading){var e=this.checked?this.inactiveValue:this.activeValue;this.$emit("input",e),this.$emit("change",e)}},genLoading:function(){var t=this.$createElement;if(this.loading){var e=this.checked?this.activeColor:this.inactiveColor;return t(vt,{class:si("loading"),attrs:{color:e}})}}},render:function(){var t=arguments[0],e=this.checked,i=this.loading,n=this.disabled;return t("div",{class:si({on:e,loading:i,disabled:n}),attrs:{role:"switch","aria-checked":String(e)},style:this.style,on:{click:this.onClick}},[t("div",{class:si("node")},[this.genLoading()])])}}),oi=Object(l.a)("address-edit"),ai=oi[0],li=oi[1],ci=oi[2],ui={name:"",tel:"",country:"",province:"",city:"",county:"",areaCode:"",postalCode:"",addressDetail:"",isDefault:!1};var hi=ai({props:{areaList:Object,isSaving:Boolean,isDeleting:Boolean,validator:Function,showDelete:Boolean,showPostal:Boolean,searchResult:Array,telMaxlength:[Number,String],showSetDefault:Boolean,saveButtonText:String,areaPlaceholder:String,deleteButtonText:String,showSearchResult:Boolean,showArea:{type:Boolean,default:!0},showDetail:{type:Boolean,default:!0},disableArea:Boolean,detailRows:{type:[Number,String],default:1},detailMaxlength:{type:[Number,String],default:200},addressInfo:{type:Object,default:function(){return n({},ui)}},telValidator:{type:Function,default:xt},postalValidator:{type:Function,default:function(t){return/^\d{6}$/.test(t)}},areaColumnsPlaceholder:{type:Array,default:function(){return[]}}},data:function(){return{data:{},showAreaPopup:!1,detailFocused:!1,errorInfo:{tel:"",name:"",areaCode:"",postalCode:"",addressDetail:""}}},computed:{areaListLoaded:function(){return Object(m.f)(this.areaList)&&Object.keys(this.areaList).length},areaText:function(){var t=this.data,e=t.country,i=t.province,n=t.city,s=t.county;if(t.areaCode){var r=[e,i,n,s];return i&&i===n&&r.splice(1,1),r.filter((function(t){return t})).join("/")}return""},hideBottomFields:function(){var t=this.searchResult;return t&&t.length&&this.detailFocused}},watch:{addressInfo:{handler:function(t){this.data=n({},ui,t),this.setAreaCode(t.areaCode)},deep:!0,immediate:!0},areaList:function(){this.setAreaCode(this.data.areaCode)}},methods:{onFocus:function(t){this.errorInfo[t]="",this.detailFocused="addressDetail"===t,this.$emit("focus",t)},onChangeDetail:function(t){this.data.addressDetail=t,this.$emit("change-detail",t)},onAreaConfirm:function(t){(t=t.filter((function(t){return!!t}))).some((function(t){return!t.code}))?we(ci("areaEmpty")):(this.showAreaPopup=!1,this.assignAreaValues(),this.$emit("change-area",t))},assignAreaValues:function(){var t=this.$refs.area;if(t){var e=t.getArea();e.areaCode=e.code,delete e.code,n(this.data,e)}},onSave:function(){var t=this,e=["name","tel"];this.showArea&&e.push("areaCode"),this.showDetail&&e.push("addressDetail"),this.showPostal&&e.push("postalCode"),e.every((function(e){var i=t.getErrorMessage(e);return i&&(t.errorInfo[e]=i),!i}))&&!this.isSaving&&this.$emit("save",this.data)},getErrorMessage:function(t){var e=String(this.data[t]||"").trim();if(this.validator){var i=this.validator(t,e);if(i)return i}switch(t){case"name":return e?"":ci("nameEmpty");case"tel":return this.telValidator(e)?"":ci("telInvalid");case"areaCode":return e?"":ci("areaEmpty");case"addressDetail":return e?"":ci("addressEmpty");case"postalCode":return e&&!this.postalValidator(e)?ci("postalEmpty"):""}},onDelete:function(){var t=this;Ke.confirm({title:ci("confirmDelete")}).then((function(){t.$emit("delete",t.data)})).catch((function(){t.$emit("cancel-delete",t.data)}))},getArea:function(){return this.$refs.area?this.$refs.area.getValues():[]},setAreaCode:function(t){this.data.areaCode=t||"",t&&this.$nextTick(this.assignAreaValues)},setAddressDetail:function(t){this.data.addressDetail=t},onDetailBlur:function(){var t=this;setTimeout((function(){t.detailFocused=!1}))},genSetDefaultCell:function(t){var e=this;if(this.showSetDefault){var i={"right-icon":function(){return t(ri,{attrs:{size:"24"},on:{change:function(t){e.$emit("change-default",t)}},model:{value:e.data.isDefault,callback:function(t){e.$set(e.data,"isDefault",t)}}})}};return t(ne,{directives:[{name:"show",value:!this.hideBottomFields}],attrs:{center:!0,title:ci("defaultAddress")},class:li("default"),scopedSlots:i})}return t()}},render:function(t){var e=this,i=this.data,n=this.errorInfo,s=this.disableArea,r=this.hideBottomFields,o=function(t){return function(){return e.onFocus(t)}};return t("div",{class:li()},[t("div",{class:li("fields")},[t(ce,{attrs:{clearable:!0,label:ci("name"),placeholder:ci("namePlaceholder"),errorMessage:n.name},on:{focus:o("name")},model:{value:i.name,callback:function(t){e.$set(i,"name",t)}}}),t(ce,{attrs:{clearable:!0,type:"tel",label:ci("tel"),maxlength:this.telMaxlength,placeholder:ci("telPlaceholder"),errorMessage:n.tel},on:{focus:o("tel")},model:{value:i.tel,callback:function(t){e.$set(i,"tel",t)}}}),t(ce,{directives:[{name:"show",value:this.showArea}],attrs:{readonly:!0,clickable:!s,label:ci("area"),placeholder:this.areaPlaceholder||ci("areaPlaceholder"),errorMessage:n.areaCode,rightIcon:s?null:"arrow",value:this.areaText},on:{focus:o("areaCode"),click:function(){e.$emit("click-area"),e.showAreaPopup=!s}}}),t(Je,{directives:[{name:"show",value:this.showDetail}],attrs:{focused:this.detailFocused,value:i.addressDetail,errorMessage:n.addressDetail,detailRows:this.detailRows,detailMaxlength:this.detailMaxlength,searchResult:this.searchResult,showSearchResult:this.showSearchResult},on:{focus:o("addressDetail"),blur:this.onDetailBlur,input:this.onChangeDetail,"select-search":function(t){e.$emit("select-search",t)}}}),this.showPostal&&t(ce,{directives:[{name:"show",value:!r}],attrs:{type:"tel",maxlength:"6",label:ci("postal"),placeholder:ci("postal"),errorMessage:n.postalCode},on:{focus:o("postalCode")},model:{value:i.postalCode,callback:function(t){e.$set(i,"postalCode",t)}}}),this.slots()]),this.genSetDefaultCell(t),t("div",{directives:[{name:"show",value:!r}],class:li("buttons")},[t(Be,{attrs:{block:!0,round:!0,loading:this.isSaving,type:"danger",text:this.saveButtonText||ci("save")},on:{click:this.onSave}}),this.showDelete&&t(Be,{attrs:{block:!0,round:!0,loading:this.isDeleting,text:this.deleteButtonText||ci("delete")},on:{click:this.onDelete}})]),t(ct,{attrs:{round:!0,position:"bottom",lazyRender:!1,getContainer:"body"},model:{value:e.showAreaPopup,callback:function(t){e.showAreaPopup=t}}},[t(Yt,{ref:"area",attrs:{value:i.areaCode,loading:!this.areaListLoaded,areaList:this.areaList,columnsPlaceholder:this.areaColumnsPlaceholder},on:{confirm:this.onAreaConfirm,cancel:function(){e.showAreaPopup=!1}}})])])}}),di=Object(l.a)("radio-group"),fi=di[0],pi=di[1],mi=fi({mixins:[je("vanRadio"),ei],props:{value:null,disabled:Boolean,direction:String,checkedColor:String,iconSize:[Number,String]},watch:{value:function(t){this.$emit("change",t)}},render:function(){var t=arguments[0];return t("div",{class:pi([this.direction]),attrs:{role:"radiogroup"}},[this.slots()])}}),vi=Object(l.a)("tag"),gi=vi[0],bi=vi[1];function yi(t,e,i,n){var s,o=e.type,a=e.mark,l=e.plain,c=e.color,u=e.round,f=e.size,p=e.textColor,m=((s={})[l?"color":"backgroundColor"]=c,s);l?(m.color=p||c,m.borderColor=c):(m.color=p,m.background=c);var v={mark:a,plain:l,round:u};f&&(v[f]=f);var g=e.closeable&&t(rt,{attrs:{name:"cross"},class:bi("close"),on:{click:function(t){t.stopPropagation(),d(n,"close")}}});return t("transition",{attrs:{name:e.closeable?"van-fade":null}},[t("span",r()([{key:"content",style:m,class:bi([v,o])},h(n,!0)]),[null==i.default?void 0:i.default(),g])])}yi.props={size:String,mark:Boolean,color:String,plain:Boolean,round:Boolean,textColor:String,closeable:Boolean,type:{type:String,default:"default"}};var Si=gi(yi),ki=function(t){var e=t.parent,i=t.bem,n=t.role;return{mixins:[De(e),ei],props:{name:null,value:null,disabled:Boolean,iconSize:[Number,String],checkedColor:String,labelPosition:String,labelDisabled:Boolean,shape:{type:String,default:"round"},bindGroup:{type:Boolean,default:!0}},computed:{disableBindRelation:function(){return!this.bindGroup},isDisabled:function(){return this.parent&&this.parent.disabled||this.disabled},direction:function(){return this.parent&&this.parent.direction||null},iconStyle:function(){var t=this.checkedColor||this.parent&&this.parent.checkedColor;if(t&&this.checked&&!this.isDisabled)return{borderColor:t,backgroundColor:t}},tabindex:function(){return this.isDisabled||"radio"===n&&!this.checked?-1:0}},methods:{onClick:function(t){var e=this,i=t.target,n=this.$refs.icon,s=n===i||(null==n?void 0:n.contains(i));this.isDisabled||!s&&this.labelDisabled?this.$emit("click",t):(this.toggle(),setTimeout((function(){e.$emit("click",t)})))},genIcon:function(){var t=this.$createElement,e=this.checked,n=this.iconSize||this.parent&&this.parent.iconSize;return t("div",{ref:"icon",class:i("icon",[this.shape,{disabled:this.isDisabled,checked:e}]),style:{fontSize:Object(Y.a)(n)}},[this.slots("icon",{checked:e})||t(rt,{attrs:{name:"success"},style:this.iconStyle})])},genLabel:function(){var t=this.$createElement,e=this.slots();if(e)return t("span",{class:i("label",[this.labelPosition,{disabled:this.isDisabled}])},[e])}},render:function(){var t=arguments[0],e=[this.genIcon()];return"left"===this.labelPosition?e.unshift(this.genLabel()):e.push(this.genLabel()),t("div",{attrs:{role:n,tabindex:this.tabindex,"aria-checked":String(this.checked)},class:i([{disabled:this.isDisabled,"label-disabled":this.labelDisabled},this.direction]),on:{click:this.onClick}},[e])}}},xi=Object(l.a)("radio"),wi=(0,xi[0])({mixins:[ki({bem:xi[1],role:"radio",parent:"vanRadio"})],computed:{currentValue:{get:function(){return this.parent?this.parent.value:this.value},set:function(t){(this.parent||this).$emit("input",t)}},checked:function(){return this.currentValue===this.name}},methods:{toggle:function(){this.currentValue=this.name}}}),Ci=Object(l.a)("address-item"),Oi=Ci[0],Ti=Ci[1];function $i(t,e,i,s){var o=e.disabled,a=e.switchable;return t("div",{class:Ti({disabled:o}),on:{click:function(){a&&d(s,"select"),d(s,"click")}}},[t(ne,r()([{attrs:{border:!1,valueClass:Ti("value")},scopedSlots:{default:function(){var s=e.data,r=[t("div",{class:Ti("name")},[s.name+" "+s.tel,i.tag?i.tag(n({},e.data)):e.data.isDefault&&e.defaultTagText?t(Si,{attrs:{type:"danger",round:!0},class:Ti("tag")},[e.defaultTagText]):void 0]),t("div",{class:Ti("address")},[s.address])];return a&&!o?t(wi,{attrs:{name:s.id,iconSize:18}},[r]):r},"right-icon":function(){return t(rt,{attrs:{name:"edit"},class:Ti("edit"),on:{click:function(t){t.stopPropagation(),d(s,"edit"),d(s,"click")}}})}}},h(s)])),null==i.bottom?void 0:i.bottom(n({},e.data,{disabled:o}))])}$i.props={data:Object,disabled:Boolean,switchable:Boolean,defaultTagText:String};var Bi=Oi($i),Ii=Object(l.a)("address-list"),Di=Ii[0],ji=Ii[1],Ei=Ii[2];function Pi(t,e,i,n){function s(s,r){if(s)return s.map((function(s,o){return t(Bi,{attrs:{data:s,disabled:r,switchable:e.switchable,defaultTagText:e.defaultTagText},key:s.id,scopedSlots:{bottom:i["item-bottom"],tag:i.tag},on:{select:function(){d(n,r?"select-disabled":"select",s,o),r||d(n,"input",s.id)},edit:function(){d(n,r?"edit-disabled":"edit",s,o)},click:function(){d(n,"click-item",s,o)}}})}))}var o=s(e.list),a=s(e.disabledList,!0);return t("div",r()([{class:ji()},h(n)]),[null==i.top?void 0:i.top(),t(mi,{attrs:{value:e.value}},[o]),e.disabledText&&t("div",{class:ji("disabled-text")},[e.disabledText]),a,null==i.default?void 0:i.default(),t("div",{class:ji("bottom")},[t(Be,{attrs:{round:!0,block:!0,type:"danger",text:e.addButtonText||Ei("add")},class:ji("add"),on:{click:function(){d(n,"add")}}})])])}Pi.props={list:Array,value:[Number,String],disabledList:Array,disabledText:String,addButtonText:String,defaultTagText:String,switchable:{type:Boolean,default:!0}};var Li=Di(Pi),Ni=i(5),Ai=Object(l.a)("badge"),Mi=Ai[0],zi=Ai[1],Fi=Mi({props:{dot:Boolean,max:[Number,String],color:String,content:[Number,String],tag:{type:String,default:"div"}},methods:{hasContent:function(){return!!(this.$scopedSlots.content||Object(m.c)(this.content)&&""!==this.content)},renderContent:function(){var t=this.dot,e=this.max,i=this.content;if(!t&&this.hasContent())return this.$scopedSlots.content?this.$scopedSlots.content():Object(m.c)(e)&&Object(Ni.b)(i)&&+i>e?e+"+":i},renderBadge:function(){var t=this.$createElement;if(this.hasContent()||this.dot)return t("div",{class:zi({dot:this.dot,fixed:!!this.$scopedSlots.default}),style:{background:this.color}},[this.renderContent()])}},render:function(){var t=arguments[0];if(this.$scopedSlots.default){var e=this.tag;return t(e,{class:zi("wrapper")},[this.$scopedSlots.default(),this.renderBadge()])}return this.renderBadge()}}),Vi=i(4);function Ri(t){return"[object Date]"===Object.prototype.toString.call(t)&&!Object(Ni.a)(t.getTime())}var Hi=Object(l.a)("calendar"),_i=Hi[0],Wi=Hi[1],qi=Hi[2];function Ui(t,e){var i=t.getFullYear(),n=e.getFullYear(),s=t.getMonth(),r=e.getMonth();return i===n?s===r?0:s>r?1:-1:i>n?1:-1}function Ki(t,e){var i=Ui(t,e);if(0===i){var n=t.getDate(),s=e.getDate();return n===s?0:n>s?1:-1}return i}function Yi(t,e){return(t=new Date(t)).setDate(t.getDate()+e),t}function Xi(t){return Yi(t,1)}function Qi(t){return new Date(t)}function Gi(t){return Array.isArray(t)?t.map((function(t){return null===t?t:Qi(t)})):Qi(t)}function Zi(t){if(!t)return 0;for(;Object(Ni.a)(parseInt(t,10));){if(!(t.length>1))return 0;t=t.slice(1)}return parseInt(t,10)}function Ji(t,e){return 32-new Date(t,e-1,32).getDate()}var tn=(0,Object(l.a)("calendar-month")[0])({props:{date:Date,type:String,color:String,minDate:Date,maxDate:Date,showMark:Boolean,rowHeight:[Number,String],formatter:Function,lazyRender:Boolean,currentDate:[Date,Array],allowSameDay:Boolean,showSubtitle:Boolean,showMonthTitle:Boolean,firstDayOfWeek:Number},data:function(){return{visible:!1}},computed:{title:function(){return t=this.date,qi("monthTitle",t.getFullYear(),t.getMonth()+1);var t},rowHeightWithUnit:function(){return Object(Y.a)(this.rowHeight)},offset:function(){var t=this.firstDayOfWeek,e=this.date.getDay();return t?(e+7-this.firstDayOfWeek)%7:e},totalDay:function(){return Ji(this.date.getFullYear(),this.date.getMonth()+1)},shouldRender:function(){return this.visible||!this.lazyRender},placeholders:function(){for(var t=[],e=Math.ceil((this.totalDay+this.offset)/7),i=1;i<=e;i++)t.push({type:"placeholder"});return t},days:function(){for(var t=[],e=this.date.getFullYear(),i=this.date.getMonth(),n=1;n<=this.totalDay;n++){var s=new Date(e,i,n),r=this.getDayType(s),o={date:s,type:r,text:n,bottomInfo:this.getBottomInfo(r)};this.formatter&&(o=this.formatter(o)),t.push(o)}return t}},methods:{getHeight:function(){return this.height||(this.height=this.$el.getBoundingClientRect().height),this.height},scrollIntoView:function(t){var e=this.$refs,i=e.days,n=e.month,s=(this.showSubtitle?i:n).getBoundingClientRect().top-t.getBoundingClientRect().top+t.scrollTop;M(t,s)},getMultipleDayType:function(t){var e=this,i=function(t){return e.currentDate.some((function(e){return 0===Ki(e,t)}))};if(i(t)){var n=Yi(t,-1),s=Xi(t),r=i(n),o=i(s);return r&&o?"multiple-middle":r?"end":o?"start":"multiple-selected"}return""},getRangeDayType:function(t){var e=this.currentDate,i=e[0],n=e[1];if(!i)return"";var s=Ki(t,i);if(!n)return 0===s?"start":"";var r=Ki(t,n);return 0===s&&0===r&&this.allowSameDay?"start-end":0===s?"start":0===r?"end":s>0&&r<0?"middle":void 0},getDayType:function(t){var e=this.type,i=this.minDate,n=this.maxDate,s=this.currentDate;return Ki(t,i)<0||Ki(t,n)>0?"disabled":null!==s?"single"===e?0===Ki(t,s)?"selected":"":"multiple"===e?this.getMultipleDayType(t):"range"===e?this.getRangeDayType(t):void 0:void 0},getBottomInfo:function(t){if("range"===this.type){if("start"===t||"end"===t)return qi(t);if("start-end"===t)return qi("startEnd")}},getDayStyle:function(t,e){var i={height:this.rowHeightWithUnit};return"placeholder"===t?(i.width="100%",i):(0===e&&(i.marginLeft=100*this.offset/7+"%"),this.color&&("start"===t||"end"===t||"start-end"===t||"multiple-selected"===t||"multiple-middle"===t?i.background=this.color:"middle"===t&&(i.color=this.color)),i)},genTitle:function(){var t=this.$createElement;if(this.showMonthTitle)return t("div",{class:Wi("month-title")},[this.title])},genMark:function(){var t=this.$createElement;if(this.showMark&&this.shouldRender)return t("div",{class:Wi("month-mark")},[this.date.getMonth()+1])},genDays:function(){var t=this.$createElement,e=this.shouldRender?this.days:this.placeholders;return t("div",{ref:"days",attrs:{role:"grid"},class:Wi("days")},[this.genMark(),e.map(this.genDay)])},genTopInfo:function(t){var e=this.$createElement,i=this.$scopedSlots["top-info"];if(t.topInfo||i)return e("div",{class:Wi("top-info")},[i?i(t):t.topInfo])},genBottomInfo:function(t){var e=this.$createElement,i=this.$scopedSlots["bottom-info"];if(t.bottomInfo||i)return e("div",{class:Wi("bottom-info")},[i?i(t):t.bottomInfo])},genDay:function(t,e){var i=this,n=this.$createElement,s=t.type,r=this.getDayStyle(s,e),o="disabled"===s,a=function(){o||i.$emit("click",t)};return"selected"===s?n("div",{attrs:{role:"gridcell",tabindex:-1},style:r,class:[Wi("day"),t.className],on:{click:a}},[n("div",{class:Wi("selected-day"),style:{width:this.rowHeightWithUnit,height:this.rowHeightWithUnit,background:this.color}},[this.genTopInfo(t),t.text,this.genBottomInfo(t)])]):n("div",{attrs:{role:"gridcell",tabindex:o?null:-1},style:r,class:[Wi("day",s),t.className],on:{click:a}},[this.genTopInfo(t),t.text,this.genBottomInfo(t)])}},render:function(){var t=arguments[0];return t("div",{class:Wi("month"),ref:"month"},[this.genTitle(),this.genDays()])}}),en=(0,Object(l.a)("calendar-header")[0])({props:{title:String,subtitle:String,showTitle:Boolean,showSubtitle:Boolean,firstDayOfWeek:Number},methods:{genTitle:function(){var t=this.$createElement;if(this.showTitle){var e=this.slots("title")||this.title||qi("title");return t("div",{class:Wi("header-title")},[e])}},genSubtitle:function(){var t=this.$createElement;if(this.showSubtitle)return t("div",{class:Wi("header-subtitle")},[this.subtitle])},genWeekDays:function(){var t=this.$createElement,e=qi("weekdays"),i=this.firstDayOfWeek,n=[].concat(e.slice(i,7),e.slice(0,i));return t("div",{class:Wi("weekdays")},[n.map((function(e){return t("span",{class:Wi("weekday")},[e])}))])}},render:function(){var t=arguments[0];return t("div",{class:Wi("header")},[this.genTitle(),this.genSubtitle(),this.genWeekDays()])}}),nn=_i({props:{title:String,color:String,value:Boolean,readonly:Boolean,formatter:Function,rowHeight:[Number,String],confirmText:String,rangePrompt:String,defaultDate:[Date,Array],getContainer:[String,Function],allowSameDay:Boolean,confirmDisabledText:String,type:{type:String,default:"single"},round:{type:Boolean,default:!0},position:{type:String,default:"bottom"},poppable:{type:Boolean,default:!0},maxRange:{type:[Number,String],default:null},lazyRender:{type:Boolean,default:!0},showMark:{type:Boolean,default:!0},showTitle:{type:Boolean,default:!0},showConfirm:{type:Boolean,default:!0},showSubtitle:{type:Boolean,default:!0},closeOnPopstate:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0},safeAreaInsetBottom:{type:Boolean,default:!0},minDate:{type:Date,validator:Ri,default:function(){return new Date}},maxDate:{type:Date,validator:Ri,default:function(){var t=new Date;return new Date(t.getFullYear(),t.getMonth()+6,t.getDate())}},firstDayOfWeek:{type:[Number,String],default:0,validator:function(t){return t>=0&&t<=6}}},data:function(){return{subtitle:"",currentDate:this.getInitialDate()}},computed:{months:function(){var t=[],e=new Date(this.minDate);e.setDate(1);do{t.push(new Date(e)),e.setMonth(e.getMonth()+1)}while(1!==Ui(e,this.maxDate));return t},buttonDisabled:function(){var t=this.type,e=this.currentDate;if(e){if("range"===t)return!e[0]||!e[1];if("multiple"===t)return!e.length}return!e},dayOffset:function(){return this.firstDayOfWeek?this.firstDayOfWeek%7:0}},watch:{value:"init",type:function(){this.reset()},defaultDate:function(t){this.currentDate=t,this.scrollIntoView()}},mounted:function(){this.init()},activated:function(){this.init()},methods:{reset:function(t){void 0===t&&(t=this.getInitialDate()),this.currentDate=t,this.scrollIntoView()},init:function(){var t=this;this.poppable&&!this.value||this.$nextTick((function(){t.bodyHeight=Math.floor(t.$refs.body.getBoundingClientRect().height),t.onScroll(),t.scrollIntoView()}))},scrollToDate:function(t){var e=this;Object(Vi.c)((function(){var i=e.value||!e.poppable;t&&i&&(e.months.some((function(i,n){if(0===Ui(i,t)){var s=e.$refs,r=s.body;return s.months[n].scrollIntoView(r),!0}return!1})),e.onScroll())}))},scrollIntoView:function(){var t=this.currentDate;if(t){var e="single"===this.type?t:t[0];this.scrollToDate(e)}},getInitialDate:function(){var t=this.type,e=this.minDate,i=this.maxDate,n=this.defaultDate;if(null===n)return n;var s=new Date;if(-1===Ki(s,e)?s=e:1===Ki(s,i)&&(s=i),"range"===t){var r=n||[];return[r[0]||s,r[1]||Xi(s)]}return"multiple"===t?n||[s]:n||s},onScroll:function(){var t=this.$refs,e=t.body,i=t.months,n=A(e),s=n+this.bodyHeight,r=i.map((function(t){return t.getHeight()}));if(!(s>r.reduce((function(t,e){return t+e}),0)&&n>0)){for(var o,a=0,l=[-1,-1],c=0;c=n&&(l[1]=c,o||(o=i[c],l[0]=c),i[c].showed||(i[c].showed=!0,this.$emit("month-show",{date:i[c].date,title:i[c].title}))),a+=r[c]}i.forEach((function(t,e){t.visible=e>=l[0]-1&&e<=l[1]+1})),o&&(this.subtitle=o.title)}},onClickDay:function(t){if(!this.readonly){var e=t.date,i=this.type,n=this.currentDate;if("range"===i){if(!n)return void this.select([e,null]);var s=n[0],r=n[1];if(s&&!r){var o=Ki(e,s);1===o?this.select([s,e],!0):-1===o?this.select([e,null]):this.allowSameDay&&this.select([e,e],!0)}else this.select([e,null])}else if("multiple"===i){if(!n)return void this.select([e]);var a;if(this.currentDate.some((function(t,i){var n=0===Ki(t,e);return n&&(a=i),n}))){var l=n.splice(a,1)[0];this.$emit("unselect",Qi(l))}else this.maxRange&&n.length>=this.maxRange?we(this.rangePrompt||qi("rangePrompt",this.maxRange)):this.select([].concat(n,[e]))}else this.select(e,!0)}},togglePopup:function(t){this.$emit("input",t)},select:function(t,e){var i=this,n=function(t){i.currentDate=t,i.$emit("select",Gi(i.currentDate))};if(e&&"range"===this.type&&!this.checkRange(t))return void(this.showConfirm?n([t[0],Yi(t[0],this.maxRange-1)]):n(t));n(t),e&&!this.showConfirm&&this.onConfirm()},checkRange:function(t){var e=this.maxRange,i=this.rangePrompt;return!(e&&function(t){var e=t[0].getTime();return(t[1].getTime()-e)/864e5+1}(t)>e)||(we(i||qi("rangePrompt",e)),!1)},onConfirm:function(){this.$emit("confirm",Gi(this.currentDate))},genMonth:function(t,e){var i=this.$createElement,n=0!==e||!this.showSubtitle;return i(tn,{ref:"months",refInFor:!0,attrs:{date:t,type:this.type,color:this.color,minDate:this.minDate,maxDate:this.maxDate,showMark:this.showMark,formatter:this.formatter,rowHeight:this.rowHeight,lazyRender:this.lazyRender,currentDate:this.currentDate,showSubtitle:this.showSubtitle,allowSameDay:this.allowSameDay,showMonthTitle:n,firstDayOfWeek:this.dayOffset},scopedSlots:{"top-info":this.$scopedSlots["top-info"],"bottom-info":this.$scopedSlots["bottom-info"]},on:{click:this.onClickDay}})},genFooterContent:function(){var t=this.$createElement,e=this.slots("footer");if(e)return e;if(this.showConfirm){var i=this.buttonDisabled?this.confirmDisabledText:this.confirmText;return t(Be,{attrs:{round:!0,block:!0,type:"danger",color:this.color,disabled:this.buttonDisabled,nativeType:"button"},class:Wi("confirm"),on:{click:this.onConfirm}},[i||qi("confirm")])}},genFooter:function(){return(0,this.$createElement)("div",{class:Wi("footer",{unfit:!this.safeAreaInsetBottom})},[this.genFooterContent()])},genCalendar:function(){var t=this,e=this.$createElement;return e("div",{class:Wi()},[e(en,{attrs:{title:this.title,showTitle:this.showTitle,subtitle:this.subtitle,showSubtitle:this.showSubtitle,firstDayOfWeek:this.dayOffset},scopedSlots:{title:function(){return t.slots("title")}}}),e("div",{ref:"body",class:Wi("body"),on:{scroll:this.onScroll}},[this.months.map(this.genMonth)]),this.genFooter()])}},render:function(){var t=this,e=arguments[0];if(this.poppable){var i,n=function(e){return function(){return t.$emit(e)}};return e(ct,{attrs:(i={round:!0,value:this.value},i.round=this.round,i.position=this.position,i.closeable=this.showTitle||this.showSubtitle,i.getContainer=this.getContainer,i.closeOnPopstate=this.closeOnPopstate,i.closeOnClickOverlay=this.closeOnClickOverlay,i),class:Wi("popup"),on:{input:this.togglePopup,open:n("open"),opened:n("opened"),close:n("close"),closed:n("closed")}},[this.genCalendar()])}return this.genCalendar()}}),sn=Object(l.a)("image"),rn=sn[0],on=sn[1],an=rn({props:{src:String,fit:String,alt:String,round:Boolean,width:[Number,String],height:[Number,String],radius:[Number,String],lazyLoad:Boolean,iconPrefix:String,showError:{type:Boolean,default:!0},showLoading:{type:Boolean,default:!0},errorIcon:{type:String,default:"photo-fail"},loadingIcon:{type:String,default:"photo"}},data:function(){return{loading:!0,error:!1}},watch:{src:function(){this.loading=!0,this.error=!1}},computed:{style:function(){var t={};return Object(m.c)(this.width)&&(t.width=Object(Y.a)(this.width)),Object(m.c)(this.height)&&(t.height=Object(Y.a)(this.height)),Object(m.c)(this.radius)&&(t.overflow="hidden",t.borderRadius=Object(Y.a)(this.radius)),t}},created:function(){var t=this.$Lazyload;t&&m.b&&(t.$on("loaded",this.onLazyLoaded),t.$on("error",this.onLazyLoadError))},beforeDestroy:function(){var t=this.$Lazyload;t&&(t.$off("loaded",this.onLazyLoaded),t.$off("error",this.onLazyLoadError))},methods:{onLoad:function(t){this.loading=!1,this.$emit("load",t)},onLazyLoaded:function(t){t.el===this.$refs.image&&this.loading&&this.onLoad()},onLazyLoadError:function(t){t.el!==this.$refs.image||this.error||this.onError()},onError:function(t){this.error=!0,this.loading=!1,this.$emit("error",t)},onClick:function(t){this.$emit("click",t)},genPlaceholder:function(){var t=this.$createElement;return this.loading&&this.showLoading?t("div",{class:on("loading")},[this.slots("loading")||t(rt,{attrs:{name:this.loadingIcon,classPrefix:this.iconPrefix},class:on("loading-icon")})]):this.error&&this.showError?t("div",{class:on("error")},[this.slots("error")||t(rt,{attrs:{name:this.errorIcon,classPrefix:this.iconPrefix},class:on("error-icon")})]):void 0},genImage:function(){var t=this.$createElement,e={class:on("img"),attrs:{alt:this.alt},style:{objectFit:this.fit}};if(!this.error)return this.lazyLoad?t("img",r()([{ref:"image",directives:[{name:"lazy",value:this.src}]},e])):t("img",r()([{attrs:{src:this.src},on:{load:this.onLoad,error:this.onError}},e]))}},render:function(){var t=arguments[0];return t("div",{class:on({round:this.round}),style:this.style,on:{click:this.onClick}},[this.genImage(),this.genPlaceholder(),this.slots()])}}),ln=Object(l.a)("card"),cn=ln[0],un=ln[1];function hn(t,e,i,n){var s,o=e.thumb,a=i.num||Object(m.c)(e.num),l=i.price||Object(m.c)(e.price),c=i["origin-price"]||Object(m.c)(e.originPrice),u=a||l||c||i.bottom;function f(t){d(n,"click-thumb",t)}function p(){if(i.tag||e.tag)return t("div",{class:un("tag")},[i.tag?i.tag():t(Si,{attrs:{mark:!0,type:"danger"}},[e.tag])])}return t("div",r()([{class:un()},h(n,!0)]),[t("div",{class:un("header")},[function(){if(i.thumb||o)return t("a",{attrs:{href:e.thumbLink},class:un("thumb"),on:{click:f}},[i.thumb?i.thumb():t(an,{attrs:{src:o,width:"100%",height:"100%",fit:"cover","lazy-load":e.lazyLoad}}),p()])}(),t("div",{class:un("content",{centered:e.centered})},[t("div",[i.title?i.title():e.title?t("div",{class:[un("title"),"van-multi-ellipsis--l2"]},[e.title]):void 0,i.desc?i.desc():e.desc?t("div",{class:[un("desc"),"van-ellipsis"]},[e.desc]):void 0,null==i.tags?void 0:i.tags()]),u&&t("div",{class:"van-card__bottom"},[null==(s=i["price-top"])?void 0:s.call(i),function(){if(l)return t("div",{class:un("price")},[i.price?i.price():(n=e.price.toString().split("."),t("div",[t("span",{class:un("price-currency")},[e.currency]),t("span",{class:un("price-integer")},[n[0]]),".",t("span",{class:un("price-decimal")},[n[1]])]))]);var n}(),function(){if(c){var n=i["origin-price"];return t("div",{class:un("origin-price")},[n?n():e.currency+" "+e.originPrice])}}(),function(){if(a)return t("div",{class:un("num")},[i.num?i.num():"x"+e.num])}(),null==i.bottom?void 0:i.bottom()])])]),function(){if(i.footer)return t("div",{class:un("footer")},[i.footer()])}()])}hn.props={tag:String,desc:String,thumb:String,title:String,centered:Boolean,lazyLoad:Boolean,thumbLink:String,num:[Number,String],price:[Number,String],originPrice:[Number,String],currency:{type:String,default:"¥"}};var dn=cn(hn),fn=Object(l.a)("tab"),pn=fn[0],mn=fn[1],vn=pn({mixins:[De("vanTabs")],props:n({},Gt,{dot:Boolean,name:[Number,String],info:[Number,String],badge:[Number,String],title:String,titleStyle:null,titleClass:null,disabled:Boolean}),data:function(){return{inited:!1}},computed:{computedName:function(){var t;return null!=(t=this.name)?t:this.index},isActive:function(){var t=this.computedName===this.parent.currentName;return t&&(this.inited=!0),t}},watch:{title:function(){this.parent.setLine(),this.parent.scrollIntoView()},inited:function(t){var e=this;this.parent.lazyRender&&t&&this.$nextTick((function(){e.parent.$emit("rendered",e.computedName,e.title)}))}},render:function(t){var e=this.slots,i=this.parent,n=this.isActive,s=e();if(s||i.animated){var r=i.scrollspy||n,o=this.inited||i.scrollspy||!i.lazyRender?s:t();return i.animated?t("div",{attrs:{role:"tabpanel","aria-hidden":!n},class:mn("pane-wrapper",{inactive:!n})},[t("div",{class:mn("pane")},[o])]):t("div",{directives:[{name:"show",value:r}],attrs:{role:"tabpanel"},class:mn("pane")},[o])}}});function gn(t){var e=window.getComputedStyle(t),i="none"===e.display,n=null===t.offsetParent&&"fixed"!==e.position;return i||n}function bn(t){var e=t.interceptor,i=t.args,n=t.done;if(e){var s=e.apply(void 0,i);Object(m.g)(s)?s.then((function(t){t&&n()})).catch(m.i):s&&n()}else n()}var yn=Object(l.a)("tab"),Sn=yn[0],kn=yn[1],xn=Sn({props:{dot:Boolean,type:String,info:[Number,String],color:String,title:String,isActive:Boolean,disabled:Boolean,scrollable:Boolean,activeColor:String,inactiveColor:String},computed:{style:function(){var t={},e=this.color,i=this.isActive,n="card"===this.type;e&&n&&(t.borderColor=e,this.disabled||(i?t.backgroundColor=e:t.color=e));var s=i?this.activeColor:this.inactiveColor;return s&&(t.color=s),t}},methods:{onClick:function(){this.$emit("click")},genText:function(){var t=this.$createElement,e=t("span",{class:kn("text",{ellipsis:!this.scrollable})},[this.slots()||this.title]);return this.dot||Object(m.c)(this.info)&&""!==this.info?t("span",{class:kn("text-wrapper")},[e,t(J,{attrs:{dot:this.dot,info:this.info}})]):e}},render:function(){var t=arguments[0];return t("div",{attrs:{role:"tab","aria-selected":this.isActive},class:[kn({active:this.isActive,disabled:this.disabled})],style:this.style,on:{click:this.onClick}},[this.genText()])}}),wn=Object(l.a)("sticky"),Cn=wn[0],On=wn[1],Tn=Cn({mixins:[W((function(t,e){if(this.scroller||(this.scroller=N(this.$el)),this.observer){var i=e?"observe":"unobserve";this.observer[i](this.$el)}t(this.scroller,"scroll",this.onScroll,!0),this.onScroll()}))],props:{zIndex:[Number,String],container:null,offsetTop:{type:[Number,String],default:0}},data:function(){return{fixed:!1,height:0,transform:0}},computed:{offsetTopPx:function(){return Object(Y.b)(this.offsetTop)},style:function(){if(this.fixed){var t={};return Object(m.c)(this.zIndex)&&(t.zIndex=this.zIndex),this.offsetTopPx&&this.fixed&&(t.top=this.offsetTopPx+"px"),this.transform&&(t.transform="translate3d(0, "+this.transform+"px, 0)"),t}}},watch:{fixed:function(t){this.$emit("change",t)}},created:function(){var t=this;!m.h&&window.IntersectionObserver&&(this.observer=new IntersectionObserver((function(e){e[0].intersectionRatio>0&&t.onScroll()}),{root:document.body}))},methods:{onScroll:function(){var t=this;if(!gn(this.$el)){this.height=this.$el.offsetHeight;var e=this.container,i=this.offsetTopPx,n=A(window),s=V(this.$el),r=function(){t.$emit("scroll",{scrollTop:n,isFixed:t.fixed})};if(e){var o=s+e.offsetHeight;if(n+i+this.height>o){var a=this.height+n-o;return as?(this.fixed=!0,this.transform=0):this.fixed=!1,r()}}},render:function(){var t=arguments[0],e=this.fixed,i={height:e?this.height+"px":null};return t("div",{style:i},[t("div",{class:On({fixed:e}),style:this.style},[this.slots()])])}}),$n=Object(l.a)("tabs"),Bn=$n[0],In=$n[1],Dn=Bn({mixins:[R],props:{count:Number,duration:[Number,String],animated:Boolean,swipeable:Boolean,currentIndex:Number},computed:{style:function(){if(this.animated)return{transform:"translate3d("+-1*this.currentIndex*100+"%, 0, 0)",transitionDuration:this.duration+"s"}},listeners:function(){if(this.swipeable)return{touchstart:this.touchStart,touchmove:this.touchMove,touchend:this.onTouchEnd,touchcancel:this.onTouchEnd}}},methods:{onTouchEnd:function(){var t=this.direction,e=this.deltaX,i=this.currentIndex;"horizontal"===t&&this.offsetX>=50&&(e>0&&0!==i?this.$emit("change",i-1):e<0&&i!==this.count-1&&this.$emit("change",i+1))},genChildren:function(){var t=this.$createElement;return this.animated?t("div",{class:In("track"),style:this.style},[this.slots()]):this.slots()}},render:function(){var t=arguments[0];return t("div",{class:In("content",{animated:this.animated}),on:n({},this.listeners)},[this.genChildren()])}}),jn=Object(l.a)("tabs"),En=jn[0],Pn=jn[1],Ln=En({mixins:[je("vanTabs"),W((function(t){this.scroller||(this.scroller=N(this.$el)),t(window,"resize",this.resize,!0),this.scrollspy&&t(this.scroller,"scroll",this.onScroll,!0)}))],inject:{vanPopup:{default:null}},model:{prop:"active"},props:{color:String,border:Boolean,sticky:Boolean,animated:Boolean,swipeable:Boolean,scrollspy:Boolean,background:String,lineWidth:[Number,String],lineHeight:[Number,String],beforeChange:Function,titleActiveColor:String,titleInactiveColor:String,type:{type:String,default:"line"},active:{type:[Number,String],default:0},ellipsis:{type:Boolean,default:!0},duration:{type:[Number,String],default:.3},offsetTop:{type:[Number,String],default:0},lazyRender:{type:Boolean,default:!0},swipeThreshold:{type:[Number,String],default:5}},data:function(){return{position:"",currentIndex:null,lineStyle:{backgroundColor:this.color}}},computed:{scrollable:function(){return this.children.length>this.swipeThreshold||!this.ellipsis},navStyle:function(){return{borderColor:this.color,background:this.background}},currentName:function(){var t=this.children[this.currentIndex];if(t)return t.computedName},offsetTopPx:function(){return Object(Y.b)(this.offsetTop)},scrollOffset:function(){return this.sticky?this.offsetTopPx+this.tabHeight:0}},watch:{color:"setLine",active:function(t){t!==this.currentName&&this.setCurrentIndexByName(t)},children:function(){var t=this;this.setCurrentIndexByName(this.active),this.setLine(),this.$nextTick((function(){t.scrollIntoView(!0)}))},currentIndex:function(){this.scrollIntoView(),this.setLine(),this.stickyFixed&&!this.scrollspy&&F(Math.ceil(V(this.$el)-this.offsetTopPx))},scrollspy:function(t){t?b(this.scroller,"scroll",this.onScroll,!0):y(this.scroller,"scroll",this.onScroll)}},mounted:function(){var t=this;this.init(),this.vanPopup&&this.vanPopup.onReopen((function(){t.setLine()}))},activated:function(){this.init(),this.setLine()},methods:{resize:function(){this.setLine()},init:function(){var t=this;this.$nextTick((function(){var e;t.inited=!0,t.tabHeight=P(e=t.$refs.wrap)?e.innerHeight:e.getBoundingClientRect().height,t.scrollIntoView(!0)}))},setLine:function(){var t=this,e=this.inited;this.$nextTick((function(){var i=t.$refs.titles;if(i&&i[t.currentIndex]&&"line"===t.type&&!gn(t.$el)){var n=i[t.currentIndex].$el,s=t.lineWidth,r=t.lineHeight,o=n.offsetLeft+n.offsetWidth/2,a={width:Object(Y.a)(s),backgroundColor:t.color,transform:"translateX("+o+"px) translateX(-50%)"};if(e&&(a.transitionDuration=t.duration+"s"),Object(m.c)(r)){var l=Object(Y.a)(r);a.height=l,a.borderRadius=l}t.lineStyle=a}}))},setCurrentIndexByName:function(t){var e=this.children.filter((function(e){return e.computedName===t})),i=(this.children[0]||{}).index||0;this.setCurrentIndex(e.length?e[0].index:i)},setCurrentIndex:function(t){var e=this.findAvailableTab(t);if(Object(m.c)(e)){var i=this.children[e],n=i.computedName,s=null!==this.currentIndex;this.currentIndex=e,n!==this.active&&(this.$emit("input",n),s&&this.$emit("change",n,i.title))}},findAvailableTab:function(t){for(var e=t=0&&te||!r&&se?Object(Vi.c)(i):n&&Object(Vi.c)(n)}()}(this.scroller,s,t?0:+this.duration,(function(){e.lockScroll=!1}))}}},onScroll:function(){if(this.scrollspy&&!this.lockScroll){var t=this.getCurrentIndexOnScroll();this.setCurrentIndex(t)}},getCurrentIndexOnScroll:function(){for(var t,e=this.children,i=0;ithis.scrollOffset)return 0===i?0:i-1}return e.length-1}},render:function(){var t,e=this,i=arguments[0],n=this.type,s=this.animated,r=this.scrollable,o=this.children.map((function(t,s){var o;return i(xn,{ref:"titles",refInFor:!0,attrs:{type:n,dot:t.dot,info:null!=(o=t.badge)?o:t.info,title:t.title,color:e.color,isActive:s===e.currentIndex,disabled:t.disabled,scrollable:r,activeColor:e.titleActiveColor,inactiveColor:e.titleInactiveColor},style:t.titleStyle,class:t.titleClass,scopedSlots:{default:function(){return t.slots("title")}},on:{click:function(){e.onClick(t,s)}}})})),a=i("div",{ref:"wrap",class:[Pn("wrap",{scrollable:r}),(t={},t[Bt]="line"===n&&this.border,t)]},[i("div",{ref:"nav",attrs:{role:"tablist"},class:Pn("nav",[n,{complete:this.scrollable}]),style:this.navStyle},[this.slots("nav-left"),o,"line"===n&&i("div",{class:Pn("line"),style:this.lineStyle}),this.slots("nav-right")])]);return i("div",{class:Pn([n])},[this.sticky?i(Tn,{attrs:{container:this.$el,offsetTop:this.offsetTop},on:{scroll:this.onSticktScroll}},[a]):a,i(Dn,{attrs:{count:this.children.length,animated:s,duration:this.duration,swipeable:this.swipeable,currentIndex:this.currentIndex},on:{change:this.setCurrentIndex}},[this.slots()])])}}),Nn=Object(l.a)("cascader"),An=Nn[0],Mn=Nn[1],zn=Nn[2],Fn=An({props:{title:String,value:[Number,String],fieldNames:Object,placeholder:String,activeColor:String,options:{type:Array,default:function(){return[]}},closeable:{type:Boolean,default:!0}},data:function(){return{tabs:[],activeTab:0}},computed:{textKey:function(){var t;return(null==(t=this.fieldNames)?void 0:t.text)||"text"},valueKey:function(){var t;return(null==(t=this.fieldNames)?void 0:t.value)||"value"},childrenKey:function(){var t;return(null==(t=this.fieldNames)?void 0:t.children)||"children"}},watch:{options:{deep:!0,handler:"updateTabs"},value:function(t){var e=this;if((t||0===t)&&-1!==this.tabs.map((function(t){var i;return null==(i=t.selectedOption)?void 0:i[e.valueKey]})).indexOf(t))return;this.updateTabs()}},created:function(){this.updateTabs()},methods:{getSelectedOptionsByValue:function(t,e){for(var i=0;ie+1&&(this.tabs=this.tabs.slice(0,e+1)),t[this.childrenKey]){var n={options:t[this.childrenKey],selectedOption:null};this.tabs[e+1]?this.$set(this.tabs,e+1,n):this.tabs.push(n),this.$nextTick((function(){i.activeTab++}))}var s=this.tabs.map((function(t){return t.selectedOption})).filter((function(t){return!!t})),r={value:t[this.valueKey],tabIndex:e,selectedOptions:s};this.$emit("input",t[this.valueKey]),this.$emit("change",r),t[this.childrenKey]||this.$emit("finish",r)},onClose:function(){this.$emit("close")},renderHeader:function(){var t=this.$createElement;return t("div",{class:Mn("header")},[t("h2",{class:Mn("title")},[this.slots("title")||this.title]),this.closeable?t(rt,{attrs:{name:"cross"},class:Mn("close-icon"),on:{click:this.onClose}}):null])},renderOptions:function(t,e,i){var n=this,s=this.$createElement;return s("ul",{class:Mn("options")},[t.map((function(t){var r=e&&t[n.valueKey]===e[n.valueKey],o=n.slots("option",{option:t,selected:r})||s("span",[t[n.textKey]]);return s("li",{class:Mn("option",{selected:r}),style:{color:r?n.activeColor:null},on:{click:function(){n.onSelect(t,i)}}},[o,r?s(rt,{attrs:{name:"success"},class:Mn("selected-icon")}):null])}))])},renderTab:function(t,e){var i=this.$createElement,n=t.options,s=t.selectedOption,r=s?s[this.textKey]:this.placeholder||zn("select");return i(vn,{attrs:{title:r,titleClass:Mn("tab",{unselected:!s})}},[this.renderOptions(n,s,e)])},renderTabs:function(){var t=this;return(0,this.$createElement)(Ln,{attrs:{animated:!0,swipeable:!0,swipeThreshold:0,color:this.activeColor},class:Mn("tabs"),model:{value:t.activeTab,callback:function(e){t.activeTab=e}}},[this.tabs.map(this.renderTab)])}},render:function(){var t=arguments[0];return t("div",{class:Mn()},[this.renderHeader(),this.renderTabs()])}}),Vn=Object(l.a)("cell-group"),Rn=Vn[0],Hn=Vn[1];function _n(t,e,i,n){var s,o=t("div",r()([{class:[Hn({inset:e.inset}),(s={},s[Bt]=e.border,s)]},h(n,!0)]),[null==i.default?void 0:i.default()]);return e.title||i.title?t("div",{key:n.data.key},[t("div",{class:Hn("title",{inset:e.inset})},[i.title?i.title():e.title]),o]):o}_n.props={title:String,inset:Boolean,border:{type:Boolean,default:!0}};var Wn=Rn(_n),qn=Object(l.a)("checkbox"),Un=(0,qn[0])({mixins:[ki({bem:qn[1],role:"checkbox",parent:"vanCheckbox"})],computed:{checked:{get:function(){return this.parent?-1!==this.parent.value.indexOf(this.name):this.value},set:function(t){this.parent?this.setParentValue(t):this.$emit("input",t)}}},watch:{value:function(t){this.$emit("change",t)}},methods:{toggle:function(t){var e=this;void 0===t&&(t=!this.checked),clearTimeout(this.toggleTask),this.toggleTask=setTimeout((function(){e.checked=t}))},setParentValue:function(t){var e=this.parent,i=e.value.slice();if(t){if(e.max&&i.length>=e.max)return;-1===i.indexOf(this.name)&&(i.push(this.name),e.$emit("input",i))}else{var n=i.indexOf(this.name);-1!==n&&(i.splice(n,1),e.$emit("input",i))}}}}),Kn=Object(l.a)("checkbox-group"),Yn=Kn[0],Xn=Kn[1],Qn=Yn({mixins:[je("vanCheckbox"),ei],props:{max:[Number,String],disabled:Boolean,direction:String,iconSize:[Number,String],checkedColor:String,value:{type:Array,default:function(){return[]}}},watch:{value:function(t){this.$emit("change",t)}},methods:{toggleAll:function(t){void 0===t&&(t={}),"boolean"==typeof t&&(t={checked:t});var e=t,i=e.checked,n=e.skipDisabled,s=this.children.filter((function(t){return t.disabled&&n?t.checked:null!=i?i:!t.checked})).map((function(t){return t.name}));this.$emit("input",s)}},render:function(){var t=arguments[0];return t("div",{class:Xn([this.direction])},[this.slots()])}}),Gn=Object(l.a)("circle"),Zn=Gn[0],Jn=Gn[1],ts=0;function es(t){return Math.min(Math.max(t,0),100)}var is=Zn({props:{text:String,size:[Number,String],color:[String,Object],layerColor:String,strokeLinecap:String,value:{type:Number,default:0},speed:{type:[Number,String],default:0},fill:{type:String,default:"none"},rate:{type:[Number,String],default:100},strokeWidth:{type:[Number,String],default:40},clockwise:{type:Boolean,default:!0}},beforeCreate:function(){this.uid="van-circle-gradient-"+ts++},computed:{style:function(){var t=Object(Y.a)(this.size);return{width:t,height:t}},path:function(){return t=this.clockwise,"M "+(e=this.viewBoxSize)/2+" "+e/2+" m 0, -500 a 500, 500 0 1, "+(i=t?1:0)+" 0, 1000 a 500, 500 0 1, "+i+" 0, -1000";var t,e,i},viewBoxSize:function(){return+this.strokeWidth+1e3},layerStyle:function(){return{fill:""+this.fill,stroke:""+this.layerColor,strokeWidth:this.strokeWidth+"px"}},hoverStyle:function(){var t=3140*this.value/100;return{stroke:""+(this.gradient?"url(#"+this.uid+")":this.color),strokeWidth:+this.strokeWidth+1+"px",strokeLinecap:this.strokeLinecap,strokeDasharray:t+"px 3140px"}},gradient:function(){return Object(m.f)(this.color)},LinearGradient:function(){var t=this,e=this.$createElement;if(this.gradient){var i=Object.keys(this.color).sort((function(t,e){return parseFloat(t)-parseFloat(e)})).map((function(i,n){return e("stop",{key:n,attrs:{offset:i,"stop-color":t.color[i]}})}));return e("defs",[e("linearGradient",{attrs:{id:this.uid,x1:"100%",y1:"0%",x2:"0%",y2:"0%"}},[i])])}}},watch:{rate:{handler:function(t){this.startTime=Date.now(),this.startRate=this.value,this.endRate=es(t),this.increase=this.endRate>this.startRate,this.duration=Math.abs(1e3*(this.startRate-this.endRate)/this.speed),this.speed?(Object(Vi.a)(this.rafId),this.rafId=Object(Vi.c)(this.animate)):this.$emit("input",this.endRate)},immediate:!0}},methods:{animate:function(){var t=Date.now(),e=Math.min((t-this.startTime)/this.duration,1)*(this.endRate-this.startRate)+this.startRate;this.$emit("input",es(parseFloat(e.toFixed(1)))),(this.increase?ethis.endRate)&&(this.rafId=Object(Vi.c)(this.animate))}},render:function(){var t=arguments[0];return t("div",{class:Jn(),style:this.style},[t("svg",{attrs:{viewBox:"0 0 "+this.viewBoxSize+" "+this.viewBoxSize}},[this.LinearGradient,t("path",{class:Jn("layer"),style:this.layerStyle,attrs:{d:this.path}}),t("path",{attrs:{d:this.path},class:Jn("hover"),style:this.hoverStyle})]),this.slots()||this.text&&t("div",{class:Jn("text")},[this.text])])}}),ns=Object(l.a)("col"),ss=ns[0],rs=ns[1],os=ss({mixins:[De("vanRow")],props:{span:[Number,String],offset:[Number,String],tag:{type:String,default:"div"}},computed:{style:function(){var t=this.index,e=(this.parent||{}).spaces;if(e&&e[t]){var i=e[t],n=i.left,s=i.right;return{paddingLeft:n?n+"px":null,paddingRight:s?s+"px":null}}}},methods:{onClick:function(t){this.$emit("click",t)}},render:function(){var t,e=arguments[0],i=this.span,n=this.offset;return e(this.tag,{style:this.style,class:rs((t={},t[i]=i,t["offset-"+n]=n,t)),on:{click:this.onClick}},[this.slots()])}}),as=Object(l.a)("collapse"),ls=as[0],cs=as[1],us=ls({mixins:[je("vanCollapse")],props:{accordion:Boolean,value:[String,Number,Array],border:{type:Boolean,default:!0}},methods:{switch:function(t,e){this.accordion||(t=e?this.value.concat(t):this.value.filter((function(e){return e!==t}))),this.$emit("change",t),this.$emit("input",t)}},render:function(){var t,e=arguments[0];return e("div",{class:[cs(),(t={},t[Bt]=this.border,t)]},[this.slots()])}}),hs=Object(l.a)("collapse-item"),ds=hs[0],fs=hs[1],ps=["title","icon","right-icon"],ms=ds({mixins:[De("vanCollapse")],props:n({},Zt,{name:[Number,String],disabled:Boolean,isLink:{type:Boolean,default:!0}}),data:function(){return{show:null,inited:null}},computed:{currentName:function(){var t;return null!=(t=this.name)?t:this.index},expanded:function(){var t=this;if(!this.parent)return null;var e=this.parent,i=e.value;return e.accordion?i===this.currentName:i.some((function(e){return e===t.currentName}))}},created:function(){this.show=this.expanded,this.inited=this.expanded},watch:{expanded:function(t,e){var i=this;null!==e&&(t&&(this.show=!0,this.inited=!0),(t?this.$nextTick:Vi.c)((function(){var e=i.$refs,n=e.content,s=e.wrapper;if(n&&s){var r=n.offsetHeight;if(r){var o=r+"px";s.style.height=t?0:o,Object(Vi.b)((function(){s.style.height=t?o:0}))}else i.onTransitionEnd()}})))}},methods:{onClick:function(){this.disabled||this.toggle()},toggle:function(t){void 0===t&&(t=!this.expanded);var e=this.parent,i=this.currentName,n=e.accordion&&i===e.value?"":i;this.parent.switch(n,t)},onTransitionEnd:function(){this.expanded?this.$refs.wrapper.style.height="":this.show=!1},genTitle:function(){var t=this,e=this.$createElement,i=this.border,s=this.disabled,r=this.expanded,o=ps.reduce((function(e,i){return t.slots(i)&&(e[i]=function(){return t.slots(i)}),e}),{});return this.slots("value")&&(o.default=function(){return t.slots("value")}),e(ne,{attrs:{role:"button",tabindex:s?-1:0,"aria-expanded":String(r)},class:fs("title",{disabled:s,expanded:r,borderless:!i}),on:{click:this.onClick},scopedSlots:o,props:n({},this.$props)})},genContent:function(){var t=this.$createElement;if(this.inited)return t("div",{directives:[{name:"show",value:this.show}],ref:"wrapper",class:fs("wrapper"),on:{transitionend:this.onTransitionEnd}},[t("div",{ref:"content",class:fs("content")},[this.slots()])])}},render:function(){var t=arguments[0];return t("div",{class:[fs({border:this.index&&this.border})]},[this.genTitle(),this.genContent()])}}),vs=Object(l.a)("contact-card"),gs=vs[0],bs=vs[1],ys=vs[2];function Ss(t,e,i,n){var s=e.type,o=e.editable;return t(ne,r()([{attrs:{center:!0,border:!1,isLink:o,valueClass:bs("value"),icon:"edit"===s?"contact":"add-square"},class:bs([s]),on:{click:function(t){o&&d(n,"click",t)}}},h(n)]),["add"===s?e.addText||ys("addText"):[t("div",[ys("name")+":"+e.name]),t("div",[ys("tel")+":"+e.tel])]])}Ss.props={tel:String,name:String,addText:String,editable:{type:Boolean,default:!0},type:{type:String,default:"add"}};var ks=gs(Ss),xs=Object(l.a)("contact-edit"),ws=xs[0],Cs=xs[1],Os=xs[2],Ts={tel:"",name:""},$s=ws({props:{isEdit:Boolean,isSaving:Boolean,isDeleting:Boolean,showSetDefault:Boolean,setDefaultLabel:String,contactInfo:{type:Object,default:function(){return n({},Ts)}},telValidator:{type:Function,default:xt}},data:function(){return{data:n({},Ts,this.contactInfo),errorInfo:{name:"",tel:""}}},watch:{contactInfo:function(t){this.data=n({},Ts,t)}},methods:{onFocus:function(t){this.errorInfo[t]=""},getErrorMessageByKey:function(t){var e=this.data[t].trim();switch(t){case"name":return e?"":Os("nameInvalid");case"tel":return this.telValidator(e)?"":Os("telInvalid")}},onSave:function(){var t=this;["name","tel"].every((function(e){var i=t.getErrorMessageByKey(e);return i&&(t.errorInfo[e]=i),!i}))&&!this.isSaving&&this.$emit("save",this.data)},onDelete:function(){var t=this;Ke.confirm({title:Os("confirmDelete")}).then((function(){t.$emit("delete",t.data)}))}},render:function(){var t=this,e=arguments[0],i=this.data,n=this.errorInfo,s=function(e){return function(){return t.onFocus(e)}};return e("div",{class:Cs()},[e("div",{class:Cs("fields")},[e(ce,{attrs:{clearable:!0,maxlength:"30",label:Os("name"),placeholder:Os("nameEmpty"),errorMessage:n.name},on:{focus:s("name")},model:{value:i.name,callback:function(e){t.$set(i,"name",e)}}}),e(ce,{attrs:{clearable:!0,type:"tel",label:Os("tel"),placeholder:Os("telEmpty"),errorMessage:n.tel},on:{focus:s("tel")},model:{value:i.tel,callback:function(e){t.$set(i,"tel",e)}}})]),this.showSetDefault&&e(ne,{attrs:{title:this.setDefaultLabel,border:!1},class:Cs("switch-cell")},[e(ri,{attrs:{size:24},slot:"right-icon",on:{change:function(e){t.$emit("change-default",e)}},model:{value:i.isDefault,callback:function(e){t.$set(i,"isDefault",e)}}})]),e("div",{class:Cs("buttons")},[e(Be,{attrs:{block:!0,round:!0,type:"danger",text:Os("save"),loading:this.isSaving},on:{click:this.onSave}}),this.isEdit&&e(Be,{attrs:{block:!0,round:!0,text:Os("delete"),loading:this.isDeleting},on:{click:this.onDelete}})])])}}),Bs=Object(l.a)("contact-list"),Is=Bs[0],Ds=Bs[1],js=Bs[2];function Es(t,e,i,n){var s=e.list&&e.list.map((function(i,s){function r(){d(n,"input",i.id),d(n,"select",i,s)}return t(ne,{key:i.id,attrs:{isLink:!0,center:!0,valueClass:Ds("item-value")},class:Ds("item"),scopedSlots:{icon:function(){return t(rt,{attrs:{name:"edit"},class:Ds("edit"),on:{click:function(t){t.stopPropagation(),d(n,"edit",i,s)}}})},default:function(){var n=[i.name+","+i.tel];return i.isDefault&&e.defaultTagText&&n.push(t(Si,{attrs:{type:"danger",round:!0},class:Ds("item-tag")},[e.defaultTagText])),n},"right-icon":function(){return t(wi,{attrs:{name:i.id,iconSize:16,checkedColor:Ct},on:{click:r}})}},on:{click:r}})}));return t("div",r()([{class:Ds()},h(n)]),[t(mi,{attrs:{value:e.value},class:Ds("group")},[s]),t("div",{class:Ds("bottom")},[t(Be,{attrs:{round:!0,block:!0,type:"danger",text:e.addText||js("addText")},class:Ds("add"),on:{click:function(){d(n,"add")}}})])])}Es.props={value:null,list:Array,addText:String,defaultTagText:String};var Ps=Is(Es),Ls=i(2);var Ns=Object(l.a)("count-down"),As=Ns[0],Ms=Ns[1],zs=As({props:{millisecond:Boolean,time:{type:[Number,String],default:0},format:{type:String,default:"HH:mm:ss"},autoStart:{type:Boolean,default:!0}},data:function(){return{remain:0}},computed:{timeData:function(){return t=this.remain,{days:Math.floor(t/864e5),hours:Math.floor(t%864e5/36e5),minutes:Math.floor(t%36e5/6e4),seconds:Math.floor(t%6e4/1e3),milliseconds:Math.floor(t%1e3)};var t},formattedTime:function(){return function(t,e){var i=e.days,n=e.hours,s=e.minutes,r=e.seconds,o=e.milliseconds;if(-1===t.indexOf("DD")?n+=24*i:t=t.replace("DD",Object(Ls.b)(i)),-1===t.indexOf("HH")?s+=60*n:t=t.replace("HH",Object(Ls.b)(n)),-1===t.indexOf("mm")?r+=60*s:t=t.replace("mm",Object(Ls.b)(s)),-1===t.indexOf("ss")?o+=1e3*r:t=t.replace("ss",Object(Ls.b)(r)),-1!==t.indexOf("S")){var a=Object(Ls.b)(o,3);t=-1!==t.indexOf("SSS")?t.replace("SSS",a):-1!==t.indexOf("SS")?t.replace("SS",a.slice(0,2)):t.replace("S",a.charAt(0))}return t}(this.format,this.timeData)}},watch:{time:{immediate:!0,handler:"reset"}},activated:function(){this.keepAlivePaused&&(this.counting=!0,this.keepAlivePaused=!1,this.tick())},deactivated:function(){this.counting&&(this.pause(),this.keepAlivePaused=!0)},beforeDestroy:function(){this.pause()},methods:{start:function(){this.counting||(this.counting=!0,this.endTime=Date.now()+this.remain,this.tick())},pause:function(){this.counting=!1,Object(Vi.a)(this.rafId)},reset:function(){this.pause(),this.remain=+this.time,this.autoStart&&this.start()},tick:function(){m.b&&(this.millisecond?this.microTick():this.macroTick())},microTick:function(){var t=this;this.rafId=Object(Vi.c)((function(){t.counting&&(t.setRemain(t.getRemain()),t.remain>0&&t.microTick())}))},macroTick:function(){var t=this;this.rafId=Object(Vi.c)((function(){if(t.counting){var e,i,n=t.getRemain();e=n,i=t.remain,(Math.floor(e/1e3)!==Math.floor(i/1e3)||0===n)&&t.setRemain(n),t.remain>0&&t.macroTick()}}))},getRemain:function(){return Math.max(this.endTime-Date.now(),0)},setRemain:function(t){this.remain=t,this.$emit("change",this.timeData),0===t&&(this.pause(),this.$emit("finish"))}},render:function(){var t=arguments[0];return t("div",{class:Ms()},[this.slots("default",this.timeData)||this.formattedTime])}}),Fs=Object(l.a)("coupon"),Vs=Fs[0],Rs=Fs[1],Hs=Fs[2];function _s(t){var e=new Date(function(t){return t"+(e.unitDesc||"")+"";if(e.denominations){var i=Ws(e.denominations);return""+this.currency+" "+i}return e.discount?Hs("discount",((t=e.discount)/10).toFixed(t%10==0?0:1)):""},conditionMessage:function(){var t=Ws(this.coupon.originCondition);return"0"===t?Hs("unlimited"):Hs("condition",t)}},render:function(){var t=arguments[0],e=this.coupon,i=this.disabled,n=i&&e.reason||e.description;return t("div",{class:Rs({disabled:i})},[t("div",{class:Rs("content")},[t("div",{class:Rs("head")},[t("h2",{class:Rs("amount"),domProps:{innerHTML:this.faceAmount}}),t("p",{class:Rs("condition")},[this.coupon.condition||this.conditionMessage])]),t("div",{class:Rs("body")},[t("p",{class:Rs("name")},[e.name]),t("p",{class:Rs("valid")},[this.validPeriod]),!this.disabled&&t(Un,{attrs:{size:18,value:this.chosen,checkedColor:Ct},class:Rs("corner")})])]),n&&t("p",{class:Rs("description")},[n])])}}),Us=Object(l.a)("coupon-cell"),Ks=Us[0],Ys=Us[1],Xs=Us[2];function Qs(t,e,i,n){var s=e.coupons[+e.chosenCoupon],o=function(t){var e=t.coupons,i=t.chosenCoupon,n=t.currency,s=e[+i];if(s){var r=0;return Object(m.c)(s.value)?r=s.value:Object(m.c)(s.denominations)&&(r=s.denominations),"-"+n+" "+(r/100).toFixed(2)}return 0===e.length?Xs("tips"):Xs("count",e.length)}(e);return t(ne,r()([{class:Ys(),attrs:{value:o,title:e.title||Xs("title"),border:e.border,isLink:e.editable,valueClass:Ys("value",{selected:s})}},h(n,!0)]))}Qs.model={prop:"chosenCoupon"},Qs.props={title:String,coupons:{type:Array,default:function(){return[]}},currency:{type:String,default:"¥"},border:{type:Boolean,default:!0},editable:{type:Boolean,default:!0},chosenCoupon:{type:[Number,String],default:-1}};var Gs=Ks(Qs),Zs=Object(l.a)("coupon-list"),Js=Zs[0],tr=Zs[1],er=Zs[2],ir=Js({model:{prop:"code"},props:{code:String,closeButtonText:String,inputPlaceholder:String,enabledTitle:String,disabledTitle:String,exchangeButtonText:String,exchangeButtonLoading:Boolean,exchangeButtonDisabled:Boolean,exchangeMinLength:{type:Number,default:1},chosenCoupon:{type:Number,default:-1},coupons:{type:Array,default:function(){return[]}},disabledCoupons:{type:Array,default:function(){return[]}},displayedCouponIndex:{type:Number,default:-1},showExchangeBar:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showCount:{type:Boolean,default:!0},currency:{type:String,default:"¥"},emptyImage:{type:String,default:"https://img01.yzcdn.cn/vant/coupon-empty.png"}},data:function(){return{tab:0,winHeight:window.innerHeight,currentCode:this.code||""}},computed:{buttonDisabled:function(){return!this.exchangeButtonLoading&&(this.exchangeButtonDisabled||!this.currentCode||this.currentCode.length=t?(this.innerValue=this.formatValue(t+":"+n),this.updateColumnValue()):this.updateInnerValue()},minMinute:"updateInnerValue",maxMinute:function(t){var e=this.innerValue.split(":"),i=e[0];e[1]>=t?(this.innerValue=this.formatValue(i+":"+t),this.updateColumnValue()):this.updateInnerValue()},value:function(t){(t=this.formatValue(t))!==this.innerValue&&(this.innerValue=t,this.updateColumnValue())}},methods:{formatValue:function(t){t||(t=Object(Ls.b)(this.minHour)+":"+Object(Ls.b)(this.minMinute));var e=t.split(":"),i=e[0],n=e[1];return(i=Object(Ls.b)(Dt(i,this.minHour,this.maxHour)))+":"+(n=Object(Ls.b)(Dt(n,this.minMinute,this.maxMinute)))},updateInnerValue:function(){var t=this.getPicker().getIndexes(),e=t[0],i=t[1],n=this.originColumns,s=n[0],r=n[1],o=s.values[e]||s.values[0],a=r.values[i]||r.values[0];this.innerValue=this.formatValue(o+":"+a),this.updateColumnValue()},onChange:function(t){var e=this;this.updateInnerValue(),this.$nextTick((function(){e.$nextTick((function(){e.$emit("change",t)}))}))},updateColumnValue:function(){var t=this,e=this.formatter,i=this.innerValue.split(":"),n=[e("hour",i[0]),e("minute",i[1])];this.$nextTick((function(){t.getPicker().setValues(n)}))}}});function or(t,e){return(or=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function ar(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}function lr(t,e,i){return(lr=ar()?Reflect.construct:function(t,e,i){var n=[null];n.push.apply(n,e);var s=new(Function.bind.apply(t,n));return i&&or(s,i.prototype),s}).apply(null,arguments)}var cr=(new Date).getFullYear(),ur=(0,Object(l.a)("date-picker")[0])({mixins:[sr],props:n({},nr,{type:{type:String,default:"datetime"},minDate:{type:Date,default:function(){return new Date(cr-10,0,1)},validator:Ri},maxDate:{type:Date,default:function(){return new Date(cr+10,11,31)},validator:Ri}}),watch:{filter:"updateInnerValue",minDate:function(){var t=this;this.$nextTick((function(){t.updateInnerValue()}))},maxDate:function(t){this.innerValue.valueOf()>=t.valueOf()?this.innerValue=t:this.updateInnerValue()},value:function(t){(t=this.formatValue(t))&&t.valueOf()!==this.innerValue.valueOf()&&(this.innerValue=t)}},computed:{ranges:function(){var t=this.getBoundary("max",this.innerValue?this.innerValue:this.minDate),e=t.maxYear,i=t.maxDate,n=t.maxMonth,s=t.maxHour,r=t.maxMinute,o=this.getBoundary("min",this.innerValue?this.innerValue:this.minDate),a=o.minYear,l=o.minDate,c=[{type:"year",range:[a,e]},{type:"month",range:[o.minMonth,n]},{type:"day",range:[l,i]},{type:"hour",range:[o.minHour,s]},{type:"minute",range:[o.minMinute,r]}];switch(this.type){case"date":c=c.slice(0,3);break;case"year-month":c=c.slice(0,2);break;case"month-day":c=c.slice(1,3);break;case"datehour":c=c.slice(0,4)}if(this.columnsOrder){var u=this.columnsOrder.concat(c.map((function(t){return t.type})));c.sort((function(t,e){return u.indexOf(t.type)-u.indexOf(e.type)}))}return c}},methods:{formatValue:function(t){var e=this;if(!Ri(t))return null;var i=new Date(this.minDate),n=new Date(this.maxDate),s={year:"getFullYear",month:"getMonth",day:"getDate",hour:"getHours",minute:"getMinutes"};if(this.originColumns){var r=this.originColumns.map((function(t,r){var o=t.type,a=t.values,l=e.ranges[r].range,c=i[s[o]](),u=n[s[o]](),h="month"===o?+a[0]-1:+a[0],d="month"===o?+a[a.length-1]-1:+a[a.length-1];return{type:o,values:[cl[1]?Math.min(u,d):d||u]}}));if("month-day"===this.type){var o=(this.innerValue||this.minDate).getFullYear();r.unshift({type:"year",values:[o,o]})}var a=Object.keys(s).map((function(t){var e;return null==(e=r.filter((function(e){return e.type===t}))[0])?void 0:e.values})).filter((function(t){return t}));i=lr(Date,a.map((function(t){return Zi(t[0])}))),n=lr(Date,a.map((function(t){return Zi(t[1])})))}return t=Math.max(t,i.getTime()),t=Math.min(t,n.getTime()),new Date(t)},getBoundary:function(t,e){var i,n=this[t+"Date"],s=n.getFullYear(),r=1,o=1,a=0,l=0;return"max"===t&&(r=12,o=Ji(e.getFullYear(),e.getMonth()+1),a=23,l=59),e.getFullYear()===s&&(r=n.getMonth()+1,e.getMonth()+1===r&&(o=n.getDate(),e.getDate()===o&&(a=n.getHours(),e.getHours()===a&&(l=n.getMinutes())))),(i={})[t+"Year"]=s,i[t+"Month"]=r,i[t+"Date"]=o,i[t+"Hour"]=a,i[t+"Minute"]=l,i},updateInnerValue:function(){var t,e,i,n=this,s=this.type,r=this.getPicker().getIndexes(),o=function(t){var e=0;return n.originColumns.forEach((function(i,n){t===i.type&&(e=n)})),Zi(n.originColumns[e].values[r[e]])};"month-day"===s?(t=(this.innerValue||this.minDate).getFullYear(),e=o("month"),i=o("day")):(t=o("year"),e=o("month"),i="year-month"===s?1:o("day"));var a=Ji(t,e);i=i>a?a:i;var l=0,c=0;"datehour"===s&&(l=o("hour")),"datetime"===s&&(l=o("hour"),c=o("minute"));var u=new Date(t,e-1,i,l,c);this.innerValue=this.formatValue(u)},onChange:function(t){var e=this;this.updateInnerValue(),this.$nextTick((function(){e.$nextTick((function(){e.$emit("change",t)}))}))},updateColumnValue:function(){var t=this,e=this.innerValue?this.innerValue:this.minDate,i=this.formatter,n=this.originColumns.map((function(t){switch(t.type){case"year":return i("year",""+e.getFullYear());case"month":return i("month",Object(Ls.b)(e.getMonth()+1));case"day":return i("day",Object(Ls.b)(e.getDate()));case"hour":return i("hour",Object(Ls.b)(e.getHours()));case"minute":return i("minute",Object(Ls.b)(e.getMinutes()));default:return null}}));this.$nextTick((function(){t.getPicker().setValues(n)}))}}}),hr=Object(l.a)("datetime-picker"),dr=hr[0],fr=hr[1],pr=dr({props:n({},rr.props,ur.props),methods:{getPicker:function(){return this.$refs.root.getPicker()}},render:function(){var t=arguments[0],e="time"===this.type?rr:ur;return t(e,{ref:"root",class:fr(),scopedSlots:this.$scopedSlots,props:n({},this.$props),on:n({},this.$listeners)})}}),mr=Object(l.a)("divider"),vr=mr[0],gr=mr[1];function br(t,e,i,n){var s;return t("div",r()([{attrs:{role:"separator"},style:{borderColor:e.borderColor},class:gr((s={dashed:e.dashed,hairline:e.hairline},s["content-"+e.contentPosition]=i.default,s))},h(n,!0)]),[i.default&&i.default()])}br.props={dashed:Boolean,hairline:{type:Boolean,default:!0},contentPosition:{type:String,default:"center"}};var yr=vr(br),Sr=Object(l.a)("dropdown-item"),kr=Sr[0],xr=Sr[1],wr=kr({mixins:[H({ref:"wrapper"}),De("vanDropdownMenu")],props:{value:null,title:String,disabled:Boolean,titleClass:String,options:{type:Array,default:function(){return[]}},lazyRender:{type:Boolean,default:!0}},data:function(){return{transition:!0,showPopup:!1,showWrapper:!1}},computed:{displayTitle:function(){var t=this;if(this.title)return this.title;var e=this.options.filter((function(e){return e.value===t.value}));return e.length?e[0].text:""}},watch:{showPopup:function(t){this.bindScroll(t)}},beforeCreate:function(){var t=this,e=function(e){return function(){return t.$emit(e)}};this.onOpen=e("open"),this.onClose=e("close"),this.onOpened=e("opened")},methods:{toggle:function(t,e){void 0===t&&(t=!this.showPopup),void 0===e&&(e={}),t!==this.showPopup&&(this.transition=!e.immediate,this.showPopup=t,t&&(this.parent.updateOffset(),this.showWrapper=!0))},bindScroll:function(t){(t?b:y)(this.parent.scroller,"scroll",this.onScroll,!0)},onScroll:function(){this.parent.updateOffset()},onClickWrapper:function(t){this.getContainer&&t.stopPropagation()}},render:function(){var t=this,e=arguments[0],i=this.parent,n=i.zIndex,s=i.offset,r=i.overlay,o=i.duration,a=i.direction,l=i.activeColor,c=i.closeOnClickOverlay,u=this.options.map((function(i){var n=i.value===t.value;return e(ne,{attrs:{clickable:!0,icon:i.icon,title:i.text},key:i.value,class:xr("option",{active:n}),style:{color:n?l:""},on:{click:function(){t.showPopup=!1,i.value!==t.value&&(t.$emit("input",i.value),t.$emit("change",i.value))}}},[n&&e(rt,{class:xr("icon"),attrs:{color:l,name:"success"}})])})),h={zIndex:n};return"down"===a?h.top=s+"px":h.bottom=s+"px",e("div",[e("div",{directives:[{name:"show",value:this.showWrapper}],ref:"wrapper",style:h,class:xr([a]),on:{click:this.onClickWrapper}},[e(ct,{attrs:{overlay:r,position:"down"===a?"top":"bottom",duration:this.transition?o:0,lazyRender:this.lazyRender,overlayStyle:{position:"absolute"},closeOnClickOverlay:c},class:xr("content"),on:{open:this.onOpen,close:this.onClose,opened:this.onOpened,closed:function(){t.showWrapper=!1,t.$emit("closed")}},model:{value:t.showPopup,callback:function(e){t.showPopup=e}}},[u,this.slots("default")])])])}}),Cr=function(t){return{props:{closeOnClickOutside:{type:Boolean,default:!0}},data:function(){var e=this;return{clickOutsideHandler:function(i){e.closeOnClickOutside&&!e.$el.contains(i.target)&&e[t.method]()}}},mounted:function(){b(document,t.event,this.clickOutsideHandler)},beforeDestroy:function(){y(document,t.event,this.clickOutsideHandler)}}},Or=Object(l.a)("dropdown-menu"),Tr=Or[0],$r=Or[1],Br=Tr({mixins:[je("vanDropdownMenu"),Cr({event:"click",method:"onClickOutside"})],props:{zIndex:[Number,String],activeColor:String,overlay:{type:Boolean,default:!0},duration:{type:[Number,String],default:.2},direction:{type:String,default:"down"},closeOnClickOverlay:{type:Boolean,default:!0}},data:function(){return{offset:0}},computed:{scroller:function(){return N(this.$el)},opened:function(){return this.children.some((function(t){return t.showWrapper}))},barStyle:function(){if(this.opened&&Object(m.c)(this.zIndex))return{zIndex:1+this.zIndex}}},methods:{updateOffset:function(){if(this.$refs.bar){var t=this.$refs.bar.getBoundingClientRect();"down"===this.direction?this.offset=t.bottom:this.offset=window.innerHeight-t.top}},toggleItem:function(t){this.children.forEach((function(e,i){i===t?e.toggle():e.showPopup&&e.toggle(!1,{immediate:!0})}))},onClickOutside:function(){this.children.forEach((function(t){t.toggle(!1)}))}},render:function(){var t=this,e=arguments[0],i=this.children.map((function(i,n){return e("div",{attrs:{role:"button",tabindex:i.disabled?-1:0},class:$r("item",{disabled:i.disabled}),on:{click:function(){i.disabled||t.toggleItem(n)}}},[e("span",{class:[$r("title",{active:i.showPopup,down:i.showPopup===("down"===t.direction)}),i.titleClass],style:{color:i.showPopup?t.activeColor:""}},[e("div",{class:"van-ellipsis"},[i.slots("title")||i.displayTitle])])])}));return e("div",{class:$r()},[e("div",{ref:"bar",style:this.barStyle,class:$r("bar",{opened:this.opened})},[i]),this.slots("default")])}}),Ir="van-empty-network-",Dr={render:function(){var t=arguments[0],e=function(e,i,n){return t("stop",{attrs:{"stop-color":e,offset:i+"%","stop-opacity":n}})};return t("svg",{attrs:{viewBox:"0 0 160 160",xmlns:"http://www.w3.org/2000/svg"}},[t("defs",[t("linearGradient",{attrs:{id:Ir+"1",x1:"64.022%",y1:"100%",x2:"64.022%",y2:"0%"}},[e("#FFF",0,.5),e("#F2F3F5",100)]),t("linearGradient",{attrs:{id:Ir+"2",x1:"50%",y1:"0%",x2:"50%",y2:"84.459%"}},[e("#EBEDF0",0),e("#DCDEE0",100,0)]),t("linearGradient",{attrs:{id:Ir+"3",x1:"100%",y1:"0%",x2:"100%",y2:"100%"}},[e("#EAEDF0",0),e("#DCDEE0",100)]),t("linearGradient",{attrs:{id:Ir+"4",x1:"100%",y1:"100%",x2:"100%",y2:"0%"}},[e("#EAEDF0",0),e("#DCDEE0",100)]),t("linearGradient",{attrs:{id:Ir+"5",x1:"0%",y1:"43.982%",x2:"100%",y2:"54.703%"}},[e("#EAEDF0",0),e("#DCDEE0",100)]),t("linearGradient",{attrs:{id:Ir+"6",x1:"94.535%",y1:"43.837%",x2:"5.465%",y2:"54.948%"}},[e("#EAEDF0",0),e("#DCDEE0",100)]),t("radialGradient",{attrs:{id:Ir+"7",cx:"50%",cy:"0%",fx:"50%",fy:"0%",r:"100%",gradientTransform:"matrix(0 1 -.54835 0 .5 -.5)"}},[e("#EBEDF0",0),e("#FFF",100,0)])]),t("g",{attrs:{fill:"none","fill-rule":"evenodd"}},[t("g",{attrs:{opacity:".8"}},[t("path",{attrs:{d:"M0 124V46h20v20h14v58H0z",fill:"url(#"+Ir+"1)",transform:"matrix(-1 0 0 1 36 7)"}}),t("path",{attrs:{d:"M121 8h22.231v14H152v77.37h-31V8z",fill:"url(#"+Ir+"1)",transform:"translate(2 7)"}})]),t("path",{attrs:{fill:"url(#"+Ir+"7)",d:"M0 139h160v21H0z"}}),t("path",{attrs:{d:"M37 18a7 7 0 013 13.326v26.742c0 1.23-.997 2.227-2.227 2.227h-1.546A2.227 2.227 0 0134 58.068V31.326A7 7 0 0137 18z",fill:"url(#"+Ir+"2)","fill-rule":"nonzero",transform:"translate(43 36)"}}),t("g",{attrs:{opacity:".6","stroke-linecap":"round","stroke-width":"7"}},[t("path",{attrs:{d:"M20.875 11.136a18.868 18.868 0 00-5.284 13.121c0 5.094 2.012 9.718 5.284 13.12",stroke:"url(#"+Ir+"3)",transform:"translate(43 36)"}}),t("path",{attrs:{d:"M9.849 0C3.756 6.225 0 14.747 0 24.146c0 9.398 3.756 17.92 9.849 24.145",stroke:"url(#"+Ir+"3)",transform:"translate(43 36)"}}),t("path",{attrs:{d:"M57.625 11.136a18.868 18.868 0 00-5.284 13.121c0 5.094 2.012 9.718 5.284 13.12",stroke:"url(#"+Ir+"4)",transform:"rotate(-180 76.483 42.257)"}}),t("path",{attrs:{d:"M73.216 0c-6.093 6.225-9.849 14.747-9.849 24.146 0 9.398 3.756 17.92 9.849 24.145",stroke:"url(#"+Ir+"4)",transform:"rotate(-180 89.791 42.146)"}})]),t("g",{attrs:{transform:"translate(31 105)","fill-rule":"nonzero"}},[t("rect",{attrs:{fill:"url(#"+Ir+"5)",width:"98",height:"34",rx:"2"}}),t("rect",{attrs:{fill:"#FFF",x:"9",y:"8",width:"80",height:"18",rx:"1.114"}}),t("rect",{attrs:{fill:"url(#"+Ir+"6)",x:"15",y:"12",width:"18",height:"6",rx:"1.114"}})])])])}},jr=Object(l.a)("empty"),Er=jr[0],Pr=jr[1],Lr=["error","search","default"],Nr=Er({props:{imageSize:[Number,String],description:String,image:{type:String,default:"default"}},methods:{genImageContent:function(){var t=this.$createElement,e=this.slots("image");if(e)return e;if("network"===this.image)return t(Dr);var i=this.image;return-1!==Lr.indexOf(i)&&(i="https://img01.yzcdn.cn/vant/empty-image-"+i+".png"),t("img",{attrs:{src:i}})},genImage:function(){var t=this.$createElement,e={width:Object(Y.a)(this.imageSize),height:Object(Y.a)(this.imageSize)};return t("div",{class:Pr("image"),style:e},[this.genImageContent()])},genDescription:function(){var t=this.$createElement,e=this.slots("description")||this.description;if(e)return t("p",{class:Pr("description")},[e])},genBottom:function(){var t=this.$createElement,e=this.slots();if(e)return t("div",{class:Pr("bottom")},[e])}},render:function(){var t=arguments[0];return t("div",{class:Pr()},[this.genImage(),this.genDescription(),this.genBottom()])}}),Ar=Object(l.a)("form"),Mr=Ar[0],zr=Ar[1],Fr=Mr({props:{colon:Boolean,disabled:Boolean,readonly:Boolean,labelWidth:[Number,String],labelAlign:String,inputAlign:String,scrollToError:Boolean,validateFirst:Boolean,errorMessageAlign:String,submitOnEnter:{type:Boolean,default:!0},validateTrigger:{type:String,default:"onBlur"},showError:{type:Boolean,default:!0},showErrorMessage:{type:Boolean,default:!0}},provide:function(){return{vanForm:this}},data:function(){return{fields:[]}},methods:{getFieldsByNames:function(t){return t?this.fields.filter((function(e){return-1!==t.indexOf(e.name)})):this.fields},validateSeq:function(t){var e=this;return new Promise((function(i,n){var s=[];e.getFieldsByNames(t).reduce((function(t,e){return t.then((function(){if(!s.length)return e.validate().then((function(t){t&&s.push(t)}))}))}),Promise.resolve()).then((function(){s.length?n(s):i()}))}))},validateFields:function(t){var e=this;return new Promise((function(i,n){var s=e.getFieldsByNames(t);Promise.all(s.map((function(t){return t.validate()}))).then((function(t){(t=t.filter((function(t){return t}))).length?n(t):i()}))}))},validate:function(t){return t&&!Array.isArray(t)?this.validateField(t):this.validateFirst?this.validateSeq(t):this.validateFields(t)},validateField:function(t){var e=this.fields.filter((function(e){return e.name===t}));return e.length?new Promise((function(t,i){e[0].validate().then((function(e){e?i(e):t()}))})):Promise.reject()},resetValidation:function(t){t&&!Array.isArray(t)&&(t=[t]),this.getFieldsByNames(t).forEach((function(t){t.resetValidation()}))},scrollToField:function(t,e){this.fields.some((function(i){return i.name===t&&(i.$el.scrollIntoView(e),!0)}))},addField:function(t){this.fields.push(t),Ie(this.fields,this)},removeField:function(t){this.fields=this.fields.filter((function(e){return e!==t}))},getValues:function(){return this.fields.reduce((function(t,e){return t[e.name]=e.formValue,t}),{})},onSubmit:function(t){t.preventDefault(),this.submit()},submit:function(){var t=this,e=this.getValues();this.validate().then((function(){t.$emit("submit",e)})).catch((function(i){t.$emit("failed",{values:e,errors:i}),t.scrollToError&&t.scrollToField(i[0].name)}))}},render:function(){var t=arguments[0];return t("form",{class:zr(),on:{submit:this.onSubmit}},[this.slots()])}}),Vr=Object(l.a)("goods-action-icon"),Rr=Vr[0],Hr=Vr[1],_r=Rr({mixins:[De("vanGoodsAction")],props:n({},Gt,{dot:Boolean,text:String,icon:String,color:String,info:[Number,String],badge:[Number,String],iconClass:null}),methods:{onClick:function(t){this.$emit("click",t),Xt(this.$router,this)},genIcon:function(){var t,e=this.$createElement,i=this.slots("icon"),n=null!=(t=this.badge)?t:this.info;return i?e("div",{class:Hr("icon")},[i,e(J,{attrs:{dot:this.dot,info:n}})]):e(rt,{class:[Hr("icon"),this.iconClass],attrs:{tag:"div",dot:this.dot,name:this.icon,badge:n,color:this.color}})}},render:function(){var t=arguments[0];return t("div",{attrs:{role:"button",tabindex:"0"},class:Hr(),on:{click:this.onClick}},[this.genIcon(),this.slots()||this.text])}}),Wr=Object(l.a)("grid"),qr=Wr[0],Ur=Wr[1],Kr=qr({mixins:[je("vanGrid")],props:{square:Boolean,gutter:[Number,String],iconSize:[Number,String],direction:String,clickable:Boolean,columnNum:{type:[Number,String],default:4},center:{type:Boolean,default:!0},border:{type:Boolean,default:!0}},computed:{style:function(){var t=this.gutter;if(t)return{paddingLeft:Object(Y.a)(t)}}},render:function(){var t,e=arguments[0];return e("div",{style:this.style,class:[Ur(),(t={},t[Tt]=this.border&&!this.gutter,t)]},[this.slots()])}}),Yr=Object(l.a)("grid-item"),Xr=Yr[0],Qr=Yr[1],Gr=Xr({mixins:[De("vanGrid")],props:n({},Gt,{dot:Boolean,text:String,icon:String,iconPrefix:String,info:[Number,String],badge:[Number,String]}),computed:{style:function(){var t=this.parent,e=t.square,i=t.gutter,n=t.columnNum,s=100/n+"%",r={flexBasis:s};if(e)r.paddingTop=s;else if(i){var o=Object(Y.a)(i);r.paddingRight=o,this.index>=n&&(r.marginTop=o)}return r},contentStyle:function(){var t=this.parent,e=t.square,i=t.gutter;if(e&&i){var n=Object(Y.a)(i);return{right:n,bottom:n,height:"auto"}}}},methods:{onClick:function(t){this.$emit("click",t),Xt(this.$router,this)},genIcon:function(){var t,e=this.$createElement,i=this.slots("icon"),n=null!=(t=this.badge)?t:this.info;return i?e("div",{class:Qr("icon-wrapper")},[i,e(J,{attrs:{dot:this.dot,info:n}})]):this.icon?e(rt,{attrs:{name:this.icon,dot:this.dot,badge:n,size:this.parent.iconSize,classPrefix:this.iconPrefix},class:Qr("icon")}):void 0},getText:function(){var t=this.$createElement,e=this.slots("text");return e||(this.text?t("span",{class:Qr("text")},[this.text]):void 0)},genContent:function(){var t=this.slots();return t||[this.genIcon(),this.getText()]}},render:function(){var t,e=arguments[0],i=this.parent,n=i.center,s=i.border,r=i.square,o=i.gutter,a=i.direction,l=i.clickable;return e("div",{class:[Qr({square:r})],style:this.style},[e("div",{style:this.contentStyle,attrs:{role:l?"button":null,tabindex:l?0:null},class:[Qr("content",[a,{center:n,square:r,clickable:l,surround:s&&o}]),(t={},t[Ot]=s,t)],on:{click:this.onClick}},[this.genContent()])])}}),Zr=Object(l.a)("image-preview"),Jr=Zr[0],to=Zr[1],eo=Object(l.a)("swipe"),io=eo[0],no=eo[1],so=io({mixins:[R,je("vanSwipe"),W((function(t,e){t(window,"resize",this.resize,!0),t(window,"orientationchange",this.resize,!0),t(window,"visibilitychange",this.onVisibilityChange),e?this.initialize():this.clear()}))],props:{width:[Number,String],height:[Number,String],autoplay:[Number,String],vertical:Boolean,lazyRender:Boolean,indicatorColor:String,loop:{type:Boolean,default:!0},duration:{type:[Number,String],default:500},touchable:{type:Boolean,default:!0},initialSwipe:{type:[Number,String],default:0},showIndicators:{type:Boolean,default:!0},stopPropagation:{type:Boolean,default:!0}},data:function(){return{rect:null,offset:0,active:0,deltaX:0,deltaY:0,swiping:!1,computedWidth:0,computedHeight:0}},watch:{children:function(){this.initialize()},initialSwipe:function(){this.initialize()},autoplay:function(t){t>0?this.autoPlay():this.clear()}},computed:{count:function(){return this.children.length},maxCount:function(){return Math.ceil(Math.abs(this.minOffset)/this.size)},delta:function(){return this.vertical?this.deltaY:this.deltaX},size:function(){return this[this.vertical?"computedHeight":"computedWidth"]},trackSize:function(){return this.count*this.size},activeIndicator:function(){return(this.active+this.count)%this.count},isCorrectDirection:function(){var t=this.vertical?"vertical":"horizontal";return this.direction===t},trackStyle:function(){var t={transitionDuration:(this.swiping?0:this.duration)+"ms",transform:"translate"+(this.vertical?"Y":"X")+"("+this.offset+"px)"};if(this.size){var e=this.vertical?"height":"width",i=this.vertical?"width":"height";t[e]=this.trackSize+"px",t[i]=this[i]?this[i]+"px":""}return t},indicatorStyle:function(){return{backgroundColor:this.indicatorColor}},minOffset:function(){return(this.vertical?this.rect.height:this.rect.width)-this.size*this.count}},mounted:function(){this.bindTouchEvent(this.$refs.track)},methods:{initialize:function(t){if(void 0===t&&(t=+this.initialSwipe),this.$el&&!gn(this.$el)){clearTimeout(this.timer);var e={width:this.$el.offsetWidth,height:this.$el.offsetHeight};this.rect=e,this.swiping=!0,this.active=t,this.computedWidth=+this.width||e.width,this.computedHeight=+this.height||e.height,this.offset=this.getTargetOffset(t),this.children.forEach((function(t){t.offset=0})),this.autoPlay()}},resize:function(){this.initialize(this.activeIndicator)},onVisibilityChange:function(){document.hidden?this.clear():this.autoPlay()},onTouchStart:function(t){this.touchable&&(this.clear(),this.touchStartTime=Date.now(),this.touchStart(t),this.correctPosition())},onTouchMove:function(t){this.touchable&&this.swiping&&(this.touchMove(t),this.isCorrectDirection&&(k(t,this.stopPropagation),this.move({offset:this.delta})))},onTouchEnd:function(){if(this.touchable&&this.swiping){var t=this.size,e=this.delta,i=e/(Date.now()-this.touchStartTime);if((Math.abs(i)>.25||Math.abs(e)>t/2)&&this.isCorrectDirection){var n=this.vertical?this.offsetY:this.offsetX,s=0;s=this.loop?n>0?e>0?-1:1:0:-Math[e>0?"ceil":"floor"](e/t),this.move({pace:s,emitChange:!0})}else e&&this.move({pace:0});this.swiping=!1,this.autoPlay()}},getTargetActive:function(t){var e=this.active,i=this.count,n=this.maxCount;return t?this.loop?Dt(e+t,-1,i):Dt(e+t,0,n):e},getTargetOffset:function(t,e){void 0===e&&(e=0);var i=t*this.size;this.loop||(i=Math.min(i,-this.minOffset));var n=e-i;return this.loop||(n=Dt(n,this.minOffset,0)),n},move:function(t){var e=t.pace,i=void 0===e?0:e,n=t.offset,s=void 0===n?0:n,r=t.emitChange,o=this.loop,a=this.count,l=this.active,c=this.children,u=this.trackSize,h=this.minOffset;if(!(a<=1)){var d=this.getTargetActive(i),f=this.getTargetOffset(d,s);if(o){if(c[0]&&f!==h){var p=f0;c[a-1].offset=m?-u:0}}this.active=d,this.offset=f,r&&d!==l&&this.$emit("change",this.activeIndicator)}},prev:function(){var t=this;this.correctPosition(),this.resetTouchStatus(),Object(Vi.b)((function(){t.swiping=!1,t.move({pace:-1,emitChange:!0})}))},next:function(){var t=this;this.correctPosition(),this.resetTouchStatus(),Object(Vi.b)((function(){t.swiping=!1,t.move({pace:1,emitChange:!0})}))},swipeTo:function(t,e){var i=this;void 0===e&&(e={}),this.correctPosition(),this.resetTouchStatus(),Object(Vi.b)((function(){var n;n=i.loop&&t===i.count?0===i.active?0:t:t%i.count,e.immediate?Object(Vi.b)((function(){i.swiping=!1})):i.swiping=!1,i.move({pace:n-i.active,emitChange:!0})}))},correctPosition:function(){this.swiping=!0,this.active<=-1&&this.move({pace:this.count}),this.active>=this.count&&this.move({pace:-this.count})},clear:function(){clearTimeout(this.timer)},autoPlay:function(){var t=this,e=this.autoplay;e>0&&this.count>1&&(this.clear(),this.timer=setTimeout((function(){t.next(),t.autoPlay()}),e))},genIndicator:function(){var t=this,e=this.$createElement,i=this.count,n=this.activeIndicator,s=this.slots("indicator");return s||(this.showIndicators&&i>1?e("div",{class:no("indicators",{vertical:this.vertical})},[Array.apply(void 0,Array(i)).map((function(i,s){return e("i",{class:no("indicator",{active:s===n}),style:s===n?t.indicatorStyle:null})}))]):void 0)}},render:function(){var t=arguments[0];return t("div",{class:no()},[t("div",{ref:"track",style:this.trackStyle,class:no("track",{vertical:this.vertical})},[this.slots()]),this.genIndicator()])}}),ro=Object(l.a)("swipe-item"),oo=ro[0],ao=ro[1],lo=oo({mixins:[De("vanSwipe")],data:function(){return{offset:0,inited:!1,mounted:!1}},mounted:function(){var t=this;this.$nextTick((function(){t.mounted=!0}))},computed:{style:function(){var t={},e=this.parent,i=e.size,n=e.vertical;return i&&(t[n?"height":"width"]=i+"px"),this.offset&&(t.transform="translate"+(n?"Y":"X")+"("+this.offset+"px)"),t},shouldRender:function(){var t=this.index,e=this.inited,i=this.parent,n=this.mounted;if(!i.lazyRender||e)return!0;if(!n)return!1;var s=i.activeIndicator,r=i.count-1,o=0===s&&i.loop?r:s-1,a=s===r&&i.loop?0:s+1,l=t===s||t===o||t===a;return l&&(this.inited=!0),l}},render:function(){var t=arguments[0];return t("div",{class:ao(),style:this.style,on:n({},this.$listeners)},[this.shouldRender&&this.slots()])}});function co(t){return Math.sqrt(Math.pow(t[0].clientX-t[1].clientX,2)+Math.pow(t[0].clientY-t[1].clientY,2))}var uo,ho={mixins:[R],props:{src:String,show:Boolean,active:Number,minZoom:[Number,String],maxZoom:[Number,String],rootWidth:Number,rootHeight:Number},data:function(){return{scale:1,moveX:0,moveY:0,moving:!1,zooming:!1,imageRatio:0,displayWidth:0,displayHeight:0}},computed:{vertical:function(){var t=this.rootWidth,e=this.rootHeight/t;return this.imageRatio>e},imageStyle:function(){var t=this.scale,e={transitionDuration:this.zooming||this.moving?"0s":".3s"};if(1!==t){var i=this.moveX/t,n=this.moveY/t;e.transform="scale("+t+", "+t+") translate("+i+"px, "+n+"px)"}return e},maxMoveX:function(){if(this.imageRatio){var t=this.vertical?this.rootHeight/this.imageRatio:this.rootWidth;return Math.max(0,(this.scale*t-this.rootWidth)/2)}return 0},maxMoveY:function(){if(this.imageRatio){var t=this.vertical?this.rootHeight:this.rootWidth*this.imageRatio;return Math.max(0,(this.scale*t-this.rootHeight)/2)}return 0}},watch:{active:"resetScale",show:function(t){t||this.resetScale()}},mounted:function(){this.bindTouchEvent(this.$el)},methods:{resetScale:function(){this.setScale(1),this.moveX=0,this.moveY=0},setScale:function(t){(t=Dt(t,+this.minZoom,+this.maxZoom))!==this.scale&&(this.scale=t,this.$emit("scale",{scale:this.scale,index:this.active}))},toggleScale:function(){var t=this.scale>1?1:2;this.setScale(t),this.moveX=0,this.moveY=0},onTouchStart:function(t){var e=t.touches,i=this.offsetX,n=void 0===i?0:i;this.touchStart(t),this.touchStartTime=new Date,this.startMoveX=this.moveX,this.startMoveY=this.moveY,this.moving=1===e.length&&1!==this.scale,this.zooming=2===e.length&&!n,this.zooming&&(this.startScale=this.scale,this.startDistance=co(t.touches))},onTouchMove:function(t){var e=t.touches;if(this.touchMove(t),(this.moving||this.zooming)&&k(t,!0),this.moving){var i=this.deltaX+this.startMoveX,n=this.deltaY+this.startMoveY;this.moveX=Dt(i,-this.maxMoveX,this.maxMoveX),this.moveY=Dt(n,-this.maxMoveY,this.maxMoveY)}if(this.zooming&&2===e.length){var s=co(e),r=this.startScale*s/this.startDistance;this.setScale(r)}},onTouchEnd:function(t){var e=!1;(this.moving||this.zooming)&&(e=!0,this.moving&&this.startMoveX===this.moveX&&this.startMoveY===this.moveY&&(e=!1),t.touches.length||(this.zooming&&(this.moveX=Dt(this.moveX,-this.maxMoveX,this.maxMoveX),this.moveY=Dt(this.moveY,-this.maxMoveY,this.maxMoveY),this.zooming=!1),this.moving=!1,this.startMoveX=0,this.startMoveY=0,this.startScale=1,this.scale<1&&this.resetScale())),k(t,e),this.checkTap(),this.resetTouchStatus()},checkTap:function(){var t=this,e=this.offsetX,i=void 0===e?0:e,n=this.offsetY,s=void 0===n?0:n,r=new Date-this.touchStartTime;i<10&&s<10&&r<250&&(this.doubleTapTimer?(clearTimeout(this.doubleTapTimer),this.doubleTapTimer=null,this.toggleScale()):this.doubleTapTimer=setTimeout((function(){t.$emit("close"),t.doubleTapTimer=null}),250))},onLoad:function(t){var e=t.target,i=e.naturalWidth,n=e.naturalHeight;this.imageRatio=n/i}},render:function(){var t=arguments[0],e={loading:function(){return t(vt,{attrs:{type:"spinner"}})}};return t(lo,{class:to("swipe-item")},[t(an,{attrs:{src:this.src,fit:"contain"},class:to("image",{vertical:this.vertical}),style:this.imageStyle,scopedSlots:e,on:{load:this.onLoad}})])}},fo=Jr({mixins:[R,K({skipToggleEvent:!0}),W((function(t){t(window,"resize",this.resize,!0),t(window,"orientationchange",this.resize,!0)}))],props:{className:null,closeable:Boolean,asyncClose:Boolean,showIndicators:Boolean,images:{type:Array,default:function(){return[]}},loop:{type:Boolean,default:!0},overlay:{type:Boolean,default:!0},minZoom:{type:[Number,String],default:1/3},maxZoom:{type:[Number,String],default:3},transition:{type:String,default:"van-fade"},showIndex:{type:Boolean,default:!0},swipeDuration:{type:[Number,String],default:300},startPosition:{type:[Number,String],default:0},overlayClass:{type:String,default:to("overlay")},closeIcon:{type:String,default:"clear"},closeOnPopstate:{type:Boolean,default:!0},closeIconPosition:{type:String,default:"top-right"}},data:function(){return{active:0,rootWidth:0,rootHeight:0,doubleClickTimer:null}},mounted:function(){this.resize()},watch:{startPosition:"setActive",value:function(t){var e=this;t?(this.setActive(+this.startPosition),this.$nextTick((function(){e.resize(),e.$refs.swipe.swipeTo(+e.startPosition,{immediate:!0})}))):this.$emit("close",{index:this.active,url:this.images[this.active]})}},methods:{resize:function(){if(this.$el&&this.$el.getBoundingClientRect){var t=this.$el.getBoundingClientRect();this.rootWidth=t.width,this.rootHeight=t.height}},emitClose:function(){this.asyncClose||this.$emit("input",!1)},emitScale:function(t){this.$emit("scale",t)},setActive:function(t){t!==this.active&&(this.active=t,this.$emit("change",t))},genIndex:function(){var t=this.$createElement;if(this.showIndex)return t("div",{class:to("index")},[this.slots("index",{index:this.active})||this.active+1+" / "+this.images.length])},genCover:function(){var t=this.$createElement,e=this.slots("cover");if(e)return t("div",{class:to("cover")},[e])},genImages:function(){var t=this,e=this.$createElement;return e(so,{ref:"swipe",attrs:{lazyRender:!0,loop:this.loop,duration:this.swipeDuration,initialSwipe:this.startPosition,showIndicators:this.showIndicators,indicatorColor:"white"},class:to("swipe"),on:{change:this.setActive}},[this.images.map((function(i){return e(ho,{attrs:{src:i,show:t.value,active:t.active,maxZoom:t.maxZoom,minZoom:t.minZoom,rootWidth:t.rootWidth,rootHeight:t.rootHeight},on:{scale:t.emitScale,close:t.emitClose}})}))])},genClose:function(){var t=this.$createElement;if(this.closeable)return t(rt,{attrs:{role:"button",name:this.closeIcon},class:to("close-icon",this.closeIconPosition),on:{click:this.emitClose}})},onClosed:function(){this.$emit("closed")},swipeTo:function(t,e){this.$refs.swipe&&this.$refs.swipe.swipeTo(t,e)}},render:function(){var t=arguments[0];return t("transition",{attrs:{name:this.transition},on:{afterLeave:this.onClosed}},[this.shouldRender?t("div",{directives:[{name:"show",value:this.value}],class:[to(),this.className]},[this.genClose(),this.genImages(),this.genIndex(),this.genCover()]):null])}}),po={loop:!0,value:!0,images:[],maxZoom:3,minZoom:1/3,onClose:null,onChange:null,className:"",showIndex:!0,closeable:!1,closeIcon:"clear",asyncClose:!1,transition:"van-fade",getContainer:"body",startPosition:0,swipeDuration:300,showIndicators:!1,closeOnPopstate:!0,closeIconPosition:"top-right"},mo=function(t,e){if(void 0===e&&(e=0),!m.h){uo||(uo=new(a.a.extend(fo))({el:document.createElement("div")}),document.body.appendChild(uo.$el),uo.$on("change",(function(t){uo.onChange&&uo.onChange(t)})),uo.$on("scale",(function(t){uo.onScale&&uo.onScale(t)})));var i=Array.isArray(t)?{images:t,startPosition:e}:t;return n(uo,po,i),uo.$once("input",(function(t){uo.value=t})),uo.$once("closed",(function(){uo.images=[]})),i.onClose&&(uo.$off("close"),uo.$once("close",i.onClose)),uo}};mo.Component=fo,mo.install=function(){a.a.use(fo)};var vo=mo,go=Object(l.a)("index-anchor"),bo=go[0],yo=go[1],So=bo({mixins:[De("vanIndexBar",{indexKey:"childrenIndex"})],props:{index:[Number,String]},data:function(){return{top:0,left:null,rect:{top:0,height:0},width:null,active:!1}},computed:{sticky:function(){return this.active&&this.parent.sticky},anchorStyle:function(){if(this.sticky)return{zIndex:""+this.parent.zIndex,left:this.left?this.left+"px":null,width:this.width?this.width+"px":null,transform:"translate3d(0, "+this.top+"px, 0)",color:this.parent.highlightColor}}},mounted:function(){var t=this.$el.getBoundingClientRect();this.rect.height=t.height},methods:{scrollIntoView:function(){this.$el.scrollIntoView()},getRect:function(t,e){var i=this.$el.getBoundingClientRect();return this.rect.height=i.height,t===window||t===document.body?this.rect.top=i.top+z():this.rect.top=i.top+A(t)-e.top,this.rect}},render:function(){var t,e=arguments[0],i=this.sticky;return e("div",{style:{height:i?this.rect.height+"px":null}},[e("div",{style:this.anchorStyle,class:[yo({sticky:i}),(t={},t[$t]=i,t)]},[this.slots("default")||this.index])])}});var ko=Object(l.a)("index-bar"),xo=ko[0],wo=ko[1],Co=xo({mixins:[R,je("vanIndexBar"),W((function(t){this.scroller||(this.scroller=N(this.$el)),t(this.scroller,"scroll",this.onScroll)}))],props:{zIndex:[Number,String],highlightColor:String,sticky:{type:Boolean,default:!0},stickyOffsetTop:{type:Number,default:0},indexList:{type:Array,default:function(){for(var t=[],e="A".charCodeAt(0),i=0;i<26;i++)t.push(String.fromCharCode(e+i));return t}}},data:function(){return{activeAnchorIndex:null}},computed:{sidebarStyle:function(){if(Object(m.c)(this.zIndex))return{zIndex:this.zIndex+1}},highlightStyle:function(){var t=this.highlightColor;if(t)return{color:t}}},watch:{indexList:function(){this.$nextTick(this.onScroll)},activeAnchorIndex:function(t){t&&this.$emit("change",t)}},methods:{onScroll:function(){var t=this;if(!gn(this.$el)){var e=A(this.scroller),i=this.getScrollerRect(),n=this.children.map((function(e){return e.getRect(t.scroller,i)})),s=this.getActiveAnchorIndex(e,n);this.activeAnchorIndex=this.indexList[s],this.sticky&&this.children.forEach((function(r,o){if(o===s||o===s-1){var a=r.$el.getBoundingClientRect();r.left=a.left,r.width=a.width}else r.left=null,r.width=null;if(o===s)r.active=!0,r.top=Math.max(t.stickyOffsetTop,n[o].top-e)+i.top;else if(o===s-1){var l=n[s].top-e;r.active=l>0,r.top=l+i.top-n[o].height}else r.active=!1}))}},getScrollerRect:function(){return this.scroller.getBoundingClientRect?this.scroller.getBoundingClientRect():{top:0,left:0}},getActiveAnchorIndex:function(t,e){for(var i=this.children.length-1;i>=0;i--){var n=i>0?e[i-1].height:0;if(t+(this.sticky?n+this.stickyOffsetTop:0)>=e[i].top)return i}return-1},onClick:function(t){this.scrollToElement(t.target)},onTouchMove:function(t){if(this.touchMove(t),"vertical"===this.direction){k(t);var e=t.touches[0],i=e.clientX,n=e.clientY,s=document.elementFromPoint(i,n);if(s){var r=s.dataset.index;this.touchActiveIndex!==r&&(this.touchActiveIndex=r,this.scrollToElement(s))}}},scrollTo:function(t){var e=this.children.filter((function(e){return String(e.index)===t}));e[0]&&(e[0].scrollIntoView(),this.sticky&&this.stickyOffsetTop&&F(z()-this.stickyOffsetTop),this.$emit("select",e[0].index))},scrollToElement:function(t){var e=t.dataset.index;this.scrollTo(e)},onTouchEnd:function(){this.active=null}},render:function(){var t=this,e=arguments[0],i=this.indexList.map((function(i){var n=i===t.activeAnchorIndex;return e("span",{class:wo("index",{active:n}),style:n?t.highlightStyle:null,attrs:{"data-index":i}},[i])}));return e("div",{class:wo()},[e("div",{class:wo("sidebar"),style:this.sidebarStyle,on:{click:this.onClick,touchstart:this.touchStart,touchmove:this.onTouchMove,touchend:this.onTouchEnd,touchcancel:this.onTouchEnd}},[i]),this.slots("default")])}}),Oo=i(9),To=i.n(Oo).a,$o=Object(l.a)("list"),Bo=$o[0],Io=$o[1],Do=$o[2],jo=Bo({mixins:[W((function(t){this.scroller||(this.scroller=N(this.$el)),t(this.scroller,"scroll",this.check)}))],model:{prop:"loading"},props:{error:Boolean,loading:Boolean,finished:Boolean,errorText:String,loadingText:String,finishedText:String,immediateCheck:{type:Boolean,default:!0},offset:{type:[Number,String],default:300},direction:{type:String,default:"down"}},data:function(){return{innerLoading:this.loading}},updated:function(){this.innerLoading=this.loading},mounted:function(){this.immediateCheck&&this.check()},watch:{loading:"check",finished:"check"},methods:{check:function(){var t=this;this.$nextTick((function(){if(!(t.innerLoading||t.finished||t.error)){var e,i=t.$el,n=t.scroller,s=t.offset,r=t.direction;if(!((e=n.getBoundingClientRect?n.getBoundingClientRect():{top:0,bottom:n.innerHeight}).bottom-e.top)||gn(i))return!1;var o=t.$refs.placeholder.getBoundingClientRect();("up"===r?e.top-o.top<=s:o.bottom-e.bottom<=s)&&(t.innerLoading=!0,t.$emit("input",!0),t.$emit("load"))}}))},clickErrorText:function(){this.$emit("update:error",!1),this.check()},genLoading:function(){var t=this.$createElement;if(this.innerLoading&&!this.finished)return t("div",{key:"loading",class:Io("loading")},[this.slots("loading")||t(vt,{attrs:{size:"16"}},[this.loadingText||Do("loading")])])},genFinishedText:function(){var t=this.$createElement;if(this.finished){var e=this.slots("finished")||this.finishedText;if(e)return t("div",{class:Io("finished-text")},[e])}},genErrorText:function(){var t=this.$createElement;if(this.error){var e=this.slots("error")||this.errorText;if(e)return t("div",{on:{click:this.clickErrorText},class:Io("error-text")},[e])}}},render:function(){var t=arguments[0],e=t("div",{ref:"placeholder",key:"placeholder",class:Io("placeholder")});return t("div",{class:Io(),attrs:{role:"feed","aria-busy":this.innerLoading}},["down"===this.direction?this.slots():e,this.genLoading(),this.genFinishedText(),this.genErrorText(),"up"===this.direction?this.slots():e])}}),Eo=i(7),Po=Object(l.a)("nav-bar"),Lo=Po[0],No=Po[1],Ao=Lo({props:{title:String,fixed:Boolean,zIndex:[Number,String],leftText:String,rightText:String,leftArrow:Boolean,placeholder:Boolean,safeAreaInsetTop:Boolean,border:{type:Boolean,default:!0}},data:function(){return{height:null}},mounted:function(){this.placeholder&&this.fixed&&(this.height=this.$refs.navBar.getBoundingClientRect().height)},methods:{genLeft:function(){var t=this.$createElement,e=this.slots("left");return e||[this.leftArrow&&t(rt,{class:No("arrow"),attrs:{name:"arrow-left"}}),this.leftText&&t("span",{class:No("text")},[this.leftText])]},genRight:function(){var t=this.$createElement,e=this.slots("right");return e||(this.rightText?t("span",{class:No("text")},[this.rightText]):void 0)},genNavBar:function(){var t,e=this.$createElement;return e("div",{ref:"navBar",style:{zIndex:this.zIndex},class:[No({fixed:this.fixed,"safe-area-inset-top":this.safeAreaInsetTop}),(t={},t[$t]=this.border,t)]},[e("div",{class:No("content")},[this.hasLeft()&&e("div",{class:No("left"),on:{click:this.onClickLeft}},[this.genLeft()]),e("div",{class:[No("title"),"van-ellipsis"]},[this.slots("title")||this.title]),this.hasRight()&&e("div",{class:No("right"),on:{click:this.onClickRight}},[this.genRight()])])])},hasLeft:function(){return this.leftArrow||this.leftText||this.slots("left")},hasRight:function(){return this.rightText||this.slots("right")},onClickLeft:function(t){this.$emit("click-left",t)},onClickRight:function(t){this.$emit("click-right",t)}},render:function(){var t=arguments[0];return this.placeholder&&this.fixed?t("div",{class:No("placeholder"),style:{height:this.height+"px"}},[this.genNavBar()]):this.genNavBar()}}),Mo=Object(l.a)("notice-bar"),zo=Mo[0],Fo=Mo[1],Vo=zo({mixins:[W((function(t){t(window,"pageshow",this.start)}))],inject:{vanPopup:{default:null}},props:{text:String,mode:String,color:String,leftIcon:String,wrapable:Boolean,background:String,scrollable:{type:Boolean,default:null},delay:{type:[Number,String],default:1},speed:{type:[Number,String],default:60}},data:function(){return{show:!0,offset:0,duration:0,wrapWidth:0,contentWidth:0}},watch:{scrollable:"start",text:{handler:"start",immediate:!0}},created:function(){var t=this;this.vanPopup&&this.vanPopup.onReopen((function(){t.start()}))},activated:function(){this.start()},methods:{onClickIcon:function(t){"closeable"===this.mode&&(this.show=!1,this.$emit("close",t))},onTransitionEnd:function(){var t=this;this.offset=this.wrapWidth,this.duration=0,Object(Vi.c)((function(){Object(Vi.b)((function(){t.offset=-t.contentWidth,t.duration=(t.contentWidth+t.wrapWidth)/t.speed,t.$emit("replay")}))}))},reset:function(){this.offset=0,this.duration=0,this.wrapWidth=0,this.contentWidth=0},start:function(){var t=this,e=Object(m.c)(this.delay)?1e3*this.delay:0;this.reset(),clearTimeout(this.startTimer),this.startTimer=setTimeout((function(){var e=t.$refs,i=e.wrap,n=e.content;if(i&&n&&!1!==t.scrollable){var s=i.getBoundingClientRect().width,r=n.getBoundingClientRect().width;(t.scrollable||r>s)&&Object(Vi.b)((function(){t.offset=-r,t.duration=r/t.speed,t.wrapWidth=s,t.contentWidth=r}))}}),e)}},render:function(){var t=this,e=arguments[0],i=this.slots,n=this.mode,s=this.leftIcon,r=this.onClickIcon,o={color:this.color,background:this.background},a={transform:this.offset?"translateX("+this.offset+"px)":"",transitionDuration:this.duration+"s"};function l(){var t=i("left-icon");return t||(s?e(rt,{class:Fo("left-icon"),attrs:{name:s}}):void 0)}function c(){var t,s=i("right-icon");return s||("closeable"===n?t="cross":"link"===n&&(t="arrow"),t?e(rt,{class:Fo("right-icon"),attrs:{name:t},on:{click:r}}):void 0)}return e("div",{attrs:{role:"alert"},directives:[{name:"show",value:this.show}],class:Fo({wrapable:this.wrapable}),style:o,on:{click:function(e){t.$emit("click",e)}}},[l(),e("div",{ref:"wrap",class:Fo("wrap"),attrs:{role:"marquee"}},[e("div",{ref:"content",class:[Fo("content"),{"van-ellipsis":!1===this.scrollable&&!this.wrapable}],style:a,on:{transitionend:this.onTransitionEnd}},[this.slots()||this.text])]),c()])}}),Ro=Object(l.a)("notify"),Ho=Ro[0],_o=Ro[1];function Wo(t,e,i,n){var s={color:e.color,background:e.background};return t(ct,r()([{attrs:{value:e.value,position:"top",overlay:!1,duration:.2,lockScroll:!1},style:s,class:[_o([e.type]),e.className]},h(n,!0)]),[(null==i.default?void 0:i.default())||e.message])}Wo.props=n({},U,{color:String,message:[Number,String],duration:[Number,String],className:null,background:String,getContainer:[String,Function],type:{type:String,default:"danger"}});var qo,Uo,Ko=Ho(Wo);function Yo(t){var e;if(!m.h)return Uo||(Uo=f(Ko,{on:{click:function(t){Uo.onClick&&Uo.onClick(t)},close:function(){Uo.onClose&&Uo.onClose()},opened:function(){Uo.onOpened&&Uo.onOpened()}}})),t=n({},Yo.currentOptions,(e=t,Object(m.f)(e)?e:{message:e})),n(Uo,t),clearTimeout(qo),t.duration&&t.duration>0&&(qo=setTimeout(Yo.clear,t.duration)),Uo}Yo.clear=function(){Uo&&(Uo.value=!1)},Yo.currentOptions={type:"danger",value:!0,message:"",color:void 0,background:void 0,duration:3e3,className:"",onClose:null,onClick:null,onOpened:null},Yo.setDefaultOptions=function(t){n(Yo.currentOptions,t)},Yo.resetDefaultOptions=function(){Yo.currentOptions={type:"danger",value:!0,message:"",color:void 0,background:void 0,duration:3e3,className:"",onClose:null,onClick:null,onOpened:null}},Yo.install=function(){a.a.use(Ko)},Yo.Component=Ko,a.a.prototype.$notify=Yo;var Xo=Yo,Qo={render:function(){var t=arguments[0];return t("svg",{attrs:{viewBox:"0 0 32 22",xmlns:"http://www.w3.org/2000/svg"}},[t("path",{attrs:{d:"M28.016 0A3.991 3.991 0 0132 3.987v14.026c0 2.2-1.787 3.987-3.98 3.987H10.382c-.509 0-.996-.206-1.374-.585L.89 13.09C.33 12.62 0 11.84 0 11.006c0-.86.325-1.62.887-2.08L9.01.585A1.936 1.936 0 0110.383 0zm0 1.947H10.368L2.24 10.28c-.224.226-.312.432-.312.73 0 .287.094.51.312.729l8.128 8.333h17.648a2.041 2.041 0 002.037-2.04V3.987c0-1.127-.915-2.04-2.037-2.04zM23.028 6a.96.96 0 01.678.292.95.95 0 01-.003 1.377l-3.342 3.348 3.326 3.333c.189.188.292.43.292.679 0 .248-.103.49-.292.679a.96.96 0 01-.678.292.959.959 0 01-.677-.292L18.99 12.36l-3.343 3.345a.96.96 0 01-.677.292.96.96 0 01-.678-.292.962.962 0 01-.292-.68c0-.248.104-.49.292-.679l3.342-3.348-3.342-3.348A.963.963 0 0114 6.971c0-.248.104-.49.292-.679A.96.96 0 0114.97 6a.96.96 0 01.677.292l3.358 3.348 3.345-3.348A.96.96 0 0123.028 6z",fill:"currentColor"}})])}},Go={render:function(){var t=arguments[0];return t("svg",{attrs:{viewBox:"0 0 30 24",xmlns:"http://www.w3.org/2000/svg"}},[t("path",{attrs:{d:"M25.877 12.843h-1.502c-.188 0-.188 0-.188.19v1.512c0 .188 0 .188.188.188h1.5c.187 0 .187 0 .187-.188v-1.511c0-.19 0-.191-.185-.191zM17.999 10.2c0 .188 0 .188.188.188h1.687c.188 0 .188 0 .188-.188V8.688c0-.187.004-.187-.186-.19h-1.69c-.187 0-.187 0-.187.19V10.2zm2.25-3.967h1.5c.188 0 .188 0 .188-.188v-1.7c0-.19 0-.19-.188-.19h-1.5c-.189 0-.189 0-.189.19v1.7c0 .188 0 .188.19.188zm2.063 4.157h3.563c.187 0 .187 0 .187-.189V4.346c0-.19.004-.19-.185-.19h-1.69c-.187 0-.187 0-.187.188v4.155h-1.688c-.187 0-.187 0-.187.189v1.514c0 .19 0 .19.187.19zM14.812 24l2.812-3.4H12l2.813 3.4zm-9-11.157H4.31c-.188 0-.188 0-.188.19v1.512c0 .188 0 .188.188.188h1.502c.187 0 .187 0 .187-.188v-1.511c0-.19.01-.191-.189-.191zm15.937 0H8.25c-.188 0-.188 0-.188.19v1.512c0 .188 0 .188.188.188h13.5c.188 0 .188 0 .188-.188v-1.511c0-.19 0-.191-.188-.191zm-11.438-2.454h1.5c.188 0 .188 0 .188-.188V8.688c0-.187 0-.187-.188-.189h-1.5c-.187 0-.187 0-.187.189V10.2c0 .188 0 .188.187.188zM27.94 0c.563 0 .917.21 1.313.567.518.466.748.757.748 1.51v14.92c0 .567-.188 1.134-.562 1.512-.376.378-.938.566-1.313.566H2.063c-.563 0-.938-.188-1.313-.566-.562-.378-.75-.945-.75-1.511V2.078C0 1.51.188.944.562.567.938.189 1.5 0 1.875 0zm-.062 2H2v14.92h25.877V2zM5.81 4.157c.19 0 .19 0 .19.189v1.762c-.003.126-.024.126-.188.126H4.249c-.126-.003-.126-.023-.126-.188v-1.7c-.187-.19 0-.19.188-.19zm10.5 2.077h1.503c.187 0 .187 0 .187-.188v-1.7c0-.19 0-.19-.187-.19h-1.502c-.188 0-.188.001-.188.19v1.7c0 .188 0 .188.188.188zM7.875 8.5c.187 0 .187.002.187.189V10.2c0 .188 0 .188-.187.188H4.249c-.126-.002-.126-.023-.126-.188V8.625c.003-.126.024-.126.188-.126zm7.875 0c.19.002.19.002.19.189v1.575c-.003.126-.024.126-.19.126h-1.563c-.126-.002-.126-.023-.126-.188V8.625c.002-.126.023-.126.189-.126zm-6-4.342c.187 0 .187 0 .187.189v1.7c0 .188 0 .188-.187.188H8.187c-.126-.003-.126-.023-.126-.188V4.283c.003-.126.024-.126.188-.126zm3.94 0c.185 0 .372 0 .372.189v1.762c-.002.126-.023.126-.187.126h-1.75C12 6.231 12 6.211 12 6.046v-1.7c0-.19.187-.19.187-.19z",fill:"currentColor"}})])}},Zo=Object(l.a)("key"),Jo=Zo[0],ta=Zo[1],ea=Jo({mixins:[R],props:{type:String,text:[Number,String],color:String,wider:Boolean,large:Boolean,loading:Boolean},data:function(){return{active:!1}},mounted:function(){this.bindTouchEvent(this.$el)},methods:{onTouchStart:function(t){t.stopPropagation(),this.touchStart(t),this.active=!0},onTouchMove:function(t){this.touchMove(t),this.direction&&(this.active=!1)},onTouchEnd:function(t){this.active&&(this.slots("default")||t.preventDefault(),this.active=!1,this.$emit("press",this.text,this.type))},genContent:function(){var t=this.$createElement,e="extra"===this.type,i="delete"===this.type,n=this.slots("default")||this.text;return this.loading?t(vt,{class:ta("loading-icon")}):i?n||t(Qo,{class:ta("delete-icon")}):e?n||t(Go,{class:ta("collapse-icon")}):n}},render:function(){var t=arguments[0];return t("div",{class:ta("wrapper",{wider:this.wider})},[t("div",{attrs:{role:"button",tabindex:"0"},class:ta([this.color,{large:this.large,active:this.active,delete:"delete"===this.type}])},[this.genContent()])])}}),ia=Object(l.a)("number-keyboard"),na=ia[0],sa=ia[1],ra=na({mixins:[H(),W((function(t){this.hideOnClickOutside&&t(document.body,"touchstart",this.onBlur)}))],model:{event:"update:value"},props:{show:Boolean,title:String,zIndex:[Number,String],randomKeyOrder:Boolean,closeButtonText:String,deleteButtonText:String,closeButtonLoading:Boolean,theme:{type:String,default:"default"},value:{type:String,default:""},extraKey:{type:[String,Array],default:""},maxlength:{type:[Number,String],default:Number.MAX_VALUE},transition:{type:Boolean,default:!0},showDeleteKey:{type:Boolean,default:!0},hideOnClickOutside:{type:Boolean,default:!0},safeAreaInsetBottom:{type:Boolean,default:!0}},watch:{show:function(t){this.transition||this.$emit(t?"show":"hide")}},computed:{keys:function(){return"custom"===this.theme?this.genCustomKeys():this.genDefaultKeys()}},methods:{genBasicKeys:function(){for(var t=[],e=1;e<=9;e++)t.push({text:e});return this.randomKeyOrder&&t.sort((function(){return Math.random()>.5?1:-1})),t},genDefaultKeys:function(){return[].concat(this.genBasicKeys(),[{text:this.extraKey,type:"extra"},{text:0},{text:this.showDeleteKey?this.deleteButtonText:"",type:this.showDeleteKey?"delete":""}])},genCustomKeys:function(){var t=this.genBasicKeys(),e=this.extraKey,i=Array.isArray(e)?e:[e];return 1===i.length?t.push({text:0,wider:!0},{text:i[0],type:"extra"}):2===i.length&&t.push({text:i[0],type:"extra"},{text:0},{text:i[1],type:"extra"}),t},onBlur:function(){this.show&&this.$emit("blur")},onClose:function(){this.$emit("close"),this.onBlur()},onAnimationEnd:function(){this.$emit(this.show?"show":"hide")},onPress:function(t,e){if(""!==t){var i=this.value;"delete"===e?(this.$emit("delete"),this.$emit("update:value",i.slice(0,i.length-1))):"close"===e?this.onClose():i.lengthe&&(n=(s=e)-i+1);for(var o=n;o<=s;o++){var a=ua(o,o,o===this.value);t.push(a)}if(r&&i>0&&this.forceEllipses){if(n>1){var l=ua(n-1,"...",!1);t.unshift(l)}if(s=0?e.ownerDocument.body:Ta(e)&&Da(e)?e:t(Ea(e))}(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),r=wa(n),o=s?[r].concat(r.visualViewport||[],Da(n)?n:[]):n,a=e.concat(o);return s?a:a.concat(Pa(Ea(o)))}function La(t){return["table","td","th"].indexOf($a(t))>=0}function Na(t){return Ta(t)&&"fixed"!==Ia(t).position?t.offsetParent:null}function Aa(t){for(var e=wa(t),i=Na(t);i&&La(i)&&"static"===Ia(i).position;)i=Na(i);return i&&("html"===$a(i)||"body"===$a(i)&&"static"===Ia(i).position)?e:i||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Ta(t)&&"fixed"===Ia(t).position)return null;for(var i=Ea(t);Ta(i)&&["html","body"].indexOf($a(i))<0;){var n=Ia(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}var Ma="top",za="right",Fa="left",Va=[].concat([Ma,"bottom",za,Fa],["auto"]).reduce((function(t,e){return t.concat([e,e+"-start",e+"-end"])}),[]),Ra=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Ha(t){var e=new Map,i=new Set,n=[];return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||function t(s){i.add(s.name),[].concat(s.requires||[],s.requiresIfExists||[]).forEach((function(n){if(!i.has(n)){var s=e.get(n);s&&t(s)}})),n.push(s)}(t)})),n}function _a(t){return t.split("-")[0]}var Wa=Math.round;var qa={placement:"bottom",modifiers:[],strategy:"absolute"};function Ua(){for(var t=arguments.length,e=new Array(t),i=0;i=0?"x":"y"}(r):null;if(null!=c){var u="y"===c?"height":"width";switch(o){case"start":e[c]=e[c]-(i[u]/2-n[u]/2);break;case"end":e[c]=e[c]+(i[u]/2-n[u]/2)}}return e}({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,r=i.adaptive,o=void 0===r||r,a=i.roundOffsets,l=void 0===a||a,c={placement:_a(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,Qa(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:o,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,Qa(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];Ta(s)&&$a(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},r=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});Ta(n)&&$a(n)&&(Object.assign(n.style,r),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]}]});var Za={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,r=void 0===s?[0,0]:s,o=Va.reduce((function(t,i){return t[i]=function(t,e,i){var n=_a(t),s=[Fa,Ma].indexOf(n)>=0?-1:1,r="function"==typeof i?i(Object.assign({},e,{placement:t})):i,o=r[0],a=r[1];return o=o||0,a=(a||0)*s,[Fa,za].indexOf(n)>=0?{x:a,y:o}:{x:o,y:a}}(i,e.rects,r),t}),{}),a=o[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=o}},Ja=Object(l.a)("popover"),tl=Ja[0],el=Ja[1],il=tl({mixins:[Cr({event:"touchstart",method:"onClickOutside"})],props:{value:Boolean,trigger:String,overlay:Boolean,offset:{type:Array,default:function(){return[0,8]}},theme:{type:String,default:"light"},actions:{type:Array,default:function(){return[]}},placement:{type:String,default:"bottom"},getContainer:{type:[String,Function],default:"body"},closeOnClickAction:{type:Boolean,default:!0}},watch:{value:"updateLocation",placement:"updateLocation"},mounted:function(){this.updateLocation()},beforeDestroy:function(){this.popper&&(this.popper.destroy(),this.popper=null)},methods:{createPopper:function(){return Ga(this.$refs.wrapper,this.$refs.popover.$el,{placement:this.placement,modifiers:[{name:"computeStyles",options:{adaptive:!1,gpuAcceleration:!1}},n({},Za,{options:{offset:this.offset}})]})},updateLocation:function(){var t=this;this.$nextTick((function(){t.value&&(t.popper?t.popper.setOptions({placement:t.placement}):t.popper=t.createPopper())}))},renderAction:function(t,e){var i=this,n=this.$createElement,s=t.icon,r=t.text,o=t.disabled,a=t.className;return n("div",{attrs:{role:"menuitem"},class:[el("action",{disabled:o,"with-icon":s}),a],on:{click:function(){return i.onClickAction(t,e)}}},[s&&n(rt,{attrs:{name:s},class:el("action-icon")}),n("div",{class:[el("action-text"),$t]},[r])])},onToggle:function(t){this.$emit("input",t)},onClickWrapper:function(){"click"===this.trigger&&this.onToggle(!this.value)},onTouchstart:function(t){t.stopPropagation(),this.$emit("touchstart",t)},onClickAction:function(t,e){t.disabled||(this.$emit("select",t,e),this.closeOnClickAction&&this.$emit("input",!1))},onClickOutside:function(){this.$emit("input",!1)},onOpen:function(){this.$emit("open")},onOpened:function(){this.$emit("opened")},onClose:function(){this.$emit("close")},onClosed:function(){this.$emit("closed")}},render:function(){var t=arguments[0];return t("span",{ref:"wrapper",class:el("wrapper"),on:{click:this.onClickWrapper}},[t(ct,{ref:"popover",attrs:{value:this.value,overlay:this.overlay,position:null,transition:"van-popover-zoom",lockScroll:!1,getContainer:this.getContainer},class:el([this.theme]),on:{open:this.onOpen,close:this.onClose,input:this.onToggle,opened:this.onOpened,closed:this.onClosed},nativeOn:{touchstart:this.onTouchstart}},[t("div",{class:el("arrow")}),t("div",{class:el("content"),attrs:{role:"menu"}},[this.slots("default")||this.actions.map(this.renderAction)])]),this.slots("reference")])}}),nl=Object(l.a)("progress"),sl=nl[0],rl=nl[1],ol=sl({props:{color:String,inactive:Boolean,pivotText:String,textColor:String,pivotColor:String,trackColor:String,strokeWidth:[Number,String],percentage:{type:[Number,String],required:!0,validator:function(t){return t>=0&&t<=100}},showPivot:{type:Boolean,default:!0}},data:function(){return{pivotWidth:0,progressWidth:0}},mounted:function(){this.resize()},watch:{showPivot:"resize",pivotText:"resize"},methods:{resize:function(){var t=this;this.$nextTick((function(){t.progressWidth=t.$el.offsetWidth,t.pivotWidth=t.$refs.pivot?t.$refs.pivot.offsetWidth:0}))}},render:function(){var t=arguments[0],e=this.pivotText,i=this.percentage,n=null!=e?e:i+"%",s=this.showPivot&&n,r=this.inactive?"#cacaca":this.color,o={color:this.textColor,left:(this.progressWidth-this.pivotWidth)*i/100+"px",background:this.pivotColor||r},a={background:r,width:this.progressWidth*i/100+"px"},l={background:this.trackColor,height:Object(Y.a)(this.strokeWidth)};return t("div",{class:rl(),style:l},[t("span",{class:rl("portion"),style:a},[s&&t("span",{ref:"pivot",style:o,class:rl("pivot")},[n])])])}}),al=Object(l.a)("pull-refresh"),ll=al[0],cl=al[1],ul=al[2],hl=["pulling","loosing","success"],dl=ll({mixins:[R],props:{disabled:Boolean,successText:String,pullingText:String,loosingText:String,loadingText:String,pullDistance:[Number,String],value:{type:Boolean,required:!0},successDuration:{type:[Number,String],default:500},animationDuration:{type:[Number,String],default:300},headHeight:{type:[Number,String],default:50}},data:function(){return{status:"normal",distance:0,duration:0}},computed:{touchable:function(){return"loading"!==this.status&&"success"!==this.status&&!this.disabled},headStyle:function(){if(50!==this.headHeight)return{height:this.headHeight+"px"}}},watch:{value:function(t){this.duration=this.animationDuration,t?this.setStatus(+this.headHeight,!0):this.slots("success")||this.successText?this.showSuccessTip():this.setStatus(0,!1)}},mounted:function(){this.bindTouchEvent(this.$refs.track),this.scrollEl=N(this.$el)},methods:{checkPullStart:function(t){this.ceiling=0===A(this.scrollEl),this.ceiling&&(this.duration=0,this.touchStart(t))},onTouchStart:function(t){this.touchable&&this.checkPullStart(t)},onTouchMove:function(t){this.touchable&&(this.ceiling||this.checkPullStart(t),this.touchMove(t),this.ceiling&&this.deltaY>=0&&"vertical"===this.direction&&(k(t),this.setStatus(this.ease(this.deltaY))))},onTouchEnd:function(){var t=this;this.touchable&&this.ceiling&&this.deltaY&&(this.duration=this.animationDuration,"loosing"===this.status?(this.setStatus(+this.headHeight,!0),this.$emit("input",!0),this.$nextTick((function(){t.$emit("refresh")}))):this.setStatus(0))},ease:function(t){var e=+(this.pullDistance||this.headHeight);return t>e&&(t=t<2*e?e+(t-e)/2:1.5*e+(t-2*e)/4),Math.round(t)},setStatus:function(t,e){var i;i=e?"loading":0===t?"normal":t<(this.pullDistance||this.headHeight)?"pulling":"loosing",this.distance=t,i!==this.status&&(this.status=i)},genStatus:function(){var t=this.$createElement,e=this.status,i=this.distance,n=this.slots(e,{distance:i});if(n)return n;var s=[],r=this[e+"Text"]||ul(e);return-1!==hl.indexOf(e)&&s.push(t("div",{class:cl("text")},[r])),"loading"===e&&s.push(t(vt,{attrs:{size:"16"}},[r])),s},showSuccessTip:function(){var t=this;this.status="success",setTimeout((function(){t.setStatus(0)}),this.successDuration)}},render:function(){var t=arguments[0],e={transitionDuration:this.duration+"ms",transform:this.distance?"translate3d(0,"+this.distance+"px, 0)":""};return t("div",{class:cl()},[t("div",{ref:"track",class:cl("track"),style:e},[t("div",{class:cl("head"),style:this.headStyle},[this.genStatus()]),this.slots()])])}}),fl=Object(l.a)("rate"),pl=fl[0],ml=fl[1];var vl=pl({mixins:[R,ei],props:{size:[Number,String],color:String,gutter:[Number,String],readonly:Boolean,disabled:Boolean,allowHalf:Boolean,voidColor:String,iconPrefix:String,disabledColor:String,value:{type:Number,default:0},icon:{type:String,default:"star"},voidIcon:{type:String,default:"star-o"},count:{type:[Number,String],default:5},touchable:{type:Boolean,default:!0}},computed:{list:function(){for(var t,e,i,n=[],s=1;s<=this.count;s++)n.push((t=this.value,e=s,i=this.allowHalf,t>=e?"full":t+.5>=e&&i?"half":"void"));return n},sizeWithUnit:function(){return Object(Y.a)(this.size)},gutterWithUnit:function(){return Object(Y.a)(this.gutter)}},mounted:function(){this.bindTouchEvent(this.$el)},methods:{select:function(t){this.disabled||this.readonly||t===this.value||(this.$emit("input",t),this.$emit("change",t))},onTouchStart:function(t){var e=this;if(!this.readonly&&!this.disabled&&this.touchable){this.touchStart(t);var i=this.$refs.items.map((function(t){return t.getBoundingClientRect()})),n=[];i.forEach((function(t,i){e.allowHalf?n.push({score:i+.5,left:t.left},{score:i+1,left:t.left+t.width/2}):n.push({score:i+1,left:t.left})})),this.ranges=n}},onTouchMove:function(t){if(!this.readonly&&!this.disabled&&this.touchable&&(this.touchMove(t),"horizontal"===this.direction)){k(t);var e=t.touches[0].clientX;this.select(this.getScoreByPosition(e))}},getScoreByPosition:function(t){for(var e=this.ranges.length-1;e>0;e--)if(t>this.ranges[e].left)return this.ranges[e].score;return this.allowHalf?.5:1},genStar:function(t,e){var i,n=this,s=this.$createElement,r=this.icon,o=this.color,a=this.count,l=this.voidIcon,c=this.disabled,u=this.voidColor,h=this.disabledColor,d=e+1,f="full"===t,p="void"===t;return this.gutterWithUnit&&d!==+a&&(i={paddingRight:this.gutterWithUnit}),s("div",{ref:"items",refInFor:!0,key:e,attrs:{role:"radio",tabindex:"0","aria-setsize":a,"aria-posinset":d,"aria-checked":String(!p)},style:i,class:ml("item")},[s(rt,{attrs:{size:this.sizeWithUnit,name:f?r:l,color:c?h:f?o:u,classPrefix:this.iconPrefix,"data-score":d},class:ml("icon",{disabled:c,full:f}),on:{click:function(){n.select(d)}}}),this.allowHalf&&s(rt,{attrs:{size:this.sizeWithUnit,name:p?l:r,color:c?h:p?u:o,classPrefix:this.iconPrefix,"data-score":d-.5},class:ml("icon",["half",{disabled:c,full:!p}]),on:{click:function(){n.select(d-.5)}}})])}},render:function(){var t=this,e=arguments[0];return e("div",{class:ml({readonly:this.readonly,disabled:this.disabled}),attrs:{tabindex:"0",role:"radiogroup"}},[this.list.map((function(e,i){return t.genStar(e,i)}))])}}),gl=Object(l.a)("row"),bl=gl[0],yl=gl[1],Sl=bl({mixins:[je("vanRow")],props:{type:String,align:String,justify:String,tag:{type:String,default:"div"},gutter:{type:[Number,String],default:0}},computed:{spaces:function(){var t=Number(this.gutter);if(t){var e=[],i=[[]],n=0;return this.children.forEach((function(t,e){(n+=Number(t.span))>24?(i.push([e]),n-=24):i[i.length-1].push(e)})),i.forEach((function(i){var n=t*(i.length-1)/i.length;i.forEach((function(i,s){if(0===s)e.push({right:n});else{var r=t-e[i-1].right,o=n-r;e.push({left:r,right:o})}}))})),e}}},methods:{onClick:function(t){this.$emit("click",t)}},render:function(){var t,e=arguments[0],i=this.align,n=this.justify,s="flex"===this.type;return e(this.tag,{class:yl((t={flex:s},t["align-"+i]=s&&i,t["justify-"+n]=s&&n,t)),on:{click:this.onClick}},[this.slots()])}}),kl=Object(l.a)("search"),xl=kl[0],wl=kl[1],Cl=kl[2];function Ol(t,e,i,s){var o={attrs:s.data.attrs,on:n({},s.listeners,{keypress:function(t){13===t.keyCode&&(k(t),d(s,"search",e.value)),d(s,"keypress",t)}})},a=h(s);return a.attrs=void 0,t("div",r()([{class:wl({"show-action":e.showAction}),style:{background:e.background}},a]),[null==i.left?void 0:i.left(),t("div",{class:wl("content",e.shape)},[function(){if(i.label||e.label)return t("div",{class:wl("label")},[i.label?i.label():e.label])}(),t(ce,r()([{attrs:{type:"search",border:!1,value:e.value,leftIcon:e.leftIcon,rightIcon:e.rightIcon,clearable:e.clearable,clearTrigger:e.clearTrigger},scopedSlots:{"left-icon":i["left-icon"],"right-icon":i["right-icon"]}},o]))]),function(){if(e.showAction)return t("div",{class:wl("action"),attrs:{role:"button",tabindex:"0"},on:{click:function(){i.action||(d(s,"input",""),d(s,"cancel"))}}},[i.action?i.action():e.actionText||Cl("cancel")])}()])}Ol.props={value:String,label:String,rightIcon:String,actionText:String,background:String,showAction:Boolean,clearTrigger:String,shape:{type:String,default:"square"},clearable:{type:Boolean,default:!0},leftIcon:{type:String,default:"search"}};var Tl=xl(Ol),$l=["qq","link","weibo","wechat","poster","qrcode","weapp-qrcode","wechat-moments"],Bl=Object(l.a)("share-sheet"),Il=Bl[0],Dl=Bl[1],jl=Bl[2],El=Il({props:n({},U,{title:String,duration:String,cancelText:String,description:String,getContainer:[String,Function],options:{type:Array,default:function(){return[]}},overlay:{type:Boolean,default:!0},closeOnPopstate:{type:Boolean,default:!0},safeAreaInsetBottom:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}}),methods:{onCancel:function(){this.toggle(!1),this.$emit("cancel")},onSelect:function(t,e){this.$emit("select",t,e)},toggle:function(t){this.$emit("input",t)},getIconURL:function(t){return-1!==$l.indexOf(t)?"https://img01.yzcdn.cn/vant/share-sheet-"+t+".png":t},genHeader:function(){var t=this.$createElement,e=this.slots("title")||this.title,i=this.slots("description")||this.description;if(e||i)return t("div",{class:Dl("header")},[e&&t("h2",{class:Dl("title")},[e]),i&&t("span",{class:Dl("description")},[i])])},genOptions:function(t,e){var i=this,n=this.$createElement;return n("div",{class:Dl("options",{border:e})},[t.map((function(t,e){return n("div",{attrs:{role:"button",tabindex:"0"},class:[Dl("option"),t.className],on:{click:function(){i.onSelect(t,e)}}},[n("img",{attrs:{src:i.getIconURL(t.icon)},class:Dl("icon")}),t.name&&n("span",{class:Dl("name")},[t.name]),t.description&&n("span",{class:Dl("option-description")},[t.description])])}))])},genRows:function(){var t=this,e=this.options;return Array.isArray(e[0])?e.map((function(e,i){return t.genOptions(e,0!==i)})):this.genOptions(e)},genCancelText:function(){var t,e=this.$createElement,i=null!=(t=this.cancelText)?t:jl("cancel");if(i)return e("button",{attrs:{type:"button"},class:Dl("cancel"),on:{click:this.onCancel}},[i])},onClickOverlay:function(){this.$emit("click-overlay")}},render:function(){var t=arguments[0];return t(ct,{attrs:{round:!0,value:this.value,position:"bottom",overlay:this.overlay,duration:this.duration,lazyRender:this.lazyRender,lockScroll:this.lockScroll,getContainer:this.getContainer,closeOnPopstate:this.closeOnPopstate,closeOnClickOverlay:this.closeOnClickOverlay,safeAreaInsetBottom:this.safeAreaInsetBottom},class:Dl(),on:{input:this.toggle,"click-overlay":this.onClickOverlay}},[this.genHeader(),this.genRows(),this.genCancelText()])}}),Pl=Object(l.a)("sidebar"),Ll=Pl[0],Nl=Pl[1],Al=Ll({mixins:[je("vanSidebar")],model:{prop:"activeKey"},props:{activeKey:{type:[Number,String],default:0}},data:function(){return{index:+this.activeKey}},watch:{activeKey:function(){this.setIndex(+this.activeKey)}},methods:{setIndex:function(t){t!==this.index&&(this.index=t,this.$emit("change",t))}},render:function(){var t=arguments[0];return t("div",{class:Nl()},[this.slots()])}}),Ml=Object(l.a)("sidebar-item"),zl=Ml[0],Fl=Ml[1],Vl=zl({mixins:[De("vanSidebar")],props:n({},Gt,{dot:Boolean,info:[Number,String],badge:[Number,String],title:String,disabled:Boolean}),computed:{select:function(){return this.index===+this.parent.activeKey}},methods:{onClick:function(){this.disabled||(this.$emit("click",this.index),this.parent.$emit("input",this.index),this.parent.setIndex(this.index),Xt(this.$router,this))}},render:function(){var t,e,i=arguments[0];return i("a",{class:Fl({select:this.select,disabled:this.disabled}),on:{click:this.onClick}},[i("div",{class:Fl("text")},[null!=(t=this.slots("title"))?t:this.title,i(J,{attrs:{dot:this.dot,info:null!=(e=this.badge)?e:this.info},class:Fl("info")})])])}}),Rl=Object(l.a)("skeleton"),Hl=Rl[0],_l=Rl[1];function Wl(t,e,i,n){if(!e.loading)return i.default&&i.default();return t("div",r()([{class:_l({animate:e.animate,round:e.round})},h(n)]),[function(){if(e.avatar){var i=Object(Y.a)(e.avatarSize);return t("div",{class:_l("avatar",e.avatarShape),style:{width:i,height:i}})}}(),t("div",{class:_l("content")},[function(){if(e.title)return t("h3",{class:_l("title"),style:{width:Object(Y.a)(e.titleWidth)}})}(),function(){for(var i,n=[],s=e.rowWidth,r=0;r0},Jl=function(t,e){var i=function(t){var e={};return t.forEach((function(t){var i={};t.v.forEach((function(t){i[t.id]=t})),e[t.k_id]=i})),e}(t);return Object.keys(e).reduce((function(t,s){return e[s].forEach((function(e){t.push(n({},i[s][e]))})),t}),[])},tc=function(t,e){var i=[];return(t||[]).forEach((function(t){if(e[t.k_id]&&e[t.k_id].length>0){var s=[];t.v.forEach((function(i){e[t.k_id].indexOf(i.id)>-1&&s.push(n({},i))})),i.push(n({},t,{v:s}))}})),i},ec={normalizeSkuTree:Yl,getSkuComb:Ql,getSelectedSkuValues:Gl,isAllSelected:Xl,isSkuChoosable:Zl,getSelectedPropValues:Jl,getSelectedProperties:tc},ic=Object(l.a)("sku-header"),nc=ic[0],sc=ic[1];function rc(t,e,i,s){var o,a=e.sku,l=e.goods,c=e.skuEventBus,u=e.selectedSku,d=e.showHeaderImage,f=void 0===d||d,p=function(t,e){var i;return t.tree.some((function(t){var s=e[t.k_s];if(s&&t.v){var r=t.v.filter((function(t){return t.id===s}))[0]||{},o=r.previewImgUrl||r.imgUrl||r.img_url;if(o)return i=n({},r,{ks:t.k_s,imgUrl:o}),!0}return!1})),i}(a,u),m=p?p.imgUrl:l.picture;return t("div",r()([{class:[sc(),$t]},h(s)]),[f&&t(an,{attrs:{fit:"cover",src:m},class:sc("img-wrap"),on:{click:function(){c.$emit("sku:previewImage",p)}}},[null==(o=i["sku-header-image-extra"])?void 0:o.call(i)]),t("div",{class:sc("goods-info")},[null==i.default?void 0:i.default()])])}rc.props={sku:Object,goods:Object,skuEventBus:Object,selectedSku:Object,showHeaderImage:Boolean};var oc=nc(rc),ac=Object(l.a)("sku-header-item"),lc=ac[0],cc=ac[1];var uc=lc((function(t,e,i,n){return t("div",r()([{class:cc()},h(n)]),[i.default&&i.default()])})),hc=Object(l.a)("sku-row"),dc=hc[0],fc=hc[1],pc=hc[2],mc=dc({mixins:[je("vanSkuRows"),W((function(t){this.scrollable&&this.$refs.scroller&&t(this.$refs.scroller,"scroll",this.onScroll)}))],props:{skuRow:Object},data:function(){return{progress:0}},computed:{scrollable:function(){return this.skuRow.largeImageMode&&this.skuRow.v.length>6}},methods:{onScroll:function(){var t=this.$refs,e=t.scroller,i=t.row.offsetWidth-e.offsetWidth;this.progress=e.scrollLeft/i},genTitle:function(){var t=this.$createElement;return t("div",{class:fc("title")},[this.skuRow.k,this.skuRow.is_multiple&&t("span",{class:fc("title-multiple")},["(",pc("multiple"),")"])])},genIndicator:function(){var t=this.$createElement;if(this.scrollable){var e={transform:"translate3d("+20*this.progress+"px, 0, 0)"};return t("div",{class:fc("indicator-wrapper")},[t("div",{class:fc("indicator")},[t("div",{class:fc("indicator-slider"),style:e})])])}},genContent:function(){var t=this.$createElement,e=this.slots();if(this.skuRow.largeImageMode){var i=[],n=[];return e.forEach((function(t,e){(Math.floor(e/3)%2==0?i:n).push(t)})),t("div",{class:fc("scroller"),ref:"scroller"},[t("div",{class:fc("row"),ref:"row"},[i]),n.length?t("div",{class:fc("row")},[n]):null])}return e},centerItem:function(t){if(this.skuRow.largeImageMode&&t){var e=this.children,i=void 0===e?[]:e,n=this.$refs,s=n.scroller,r=n.row,o=i.find((function(e){return+e.skuValue.id==+t}));if(s&&r&&o&&o.$el){var a=o.$el,l=a.offsetLeft-(s.offsetWidth-a.offsetWidth)/2;s.scrollLeft=l}}}},render:function(){var t=arguments[0];return t("div",{class:[fc(),$t]},[this.genTitle(),this.genContent(),this.genIndicator()])}}),vc=(0,Object(l.a)("sku-row-item")[0])({mixins:[De("vanSkuRows")],props:{lazyLoad:Boolean,skuValue:Object,skuKeyStr:String,skuEventBus:Object,selectedSku:Object,largeImageMode:Boolean,disableSoldoutSku:Boolean,skuList:{type:Array,default:function(){return[]}}},computed:{imgUrl:function(){var t=this.skuValue.imgUrl||this.skuValue.img_url;return this.largeImageMode?t||"https://img01.yzcdn.cn/upload_files/2020/06/24/FmKWDg0bN9rMcTp9ne8MXiQWGtLn.png":t},choosable:function(){return!this.disableSoldoutSku||Zl(this.skuList,this.selectedSku,{key:this.skuKeyStr,valueId:this.skuValue.id})}},methods:{onSelect:function(){this.choosable&&this.skuEventBus.$emit("sku:select",n({},this.skuValue,{skuKeyStr:this.skuKeyStr}))},onPreviewImg:function(t){t.stopPropagation();var e=this.skuValue,i=this.skuKeyStr;this.skuEventBus.$emit("sku:previewImage",n({},e,{ks:i,imgUrl:e.imgUrl||e.img_url}))},genImage:function(t){var e=this.$createElement;if(this.imgUrl)return e(an,{attrs:{fit:"cover",src:this.imgUrl,lazyLoad:this.lazyLoad},class:t+"-img"})}},render:function(){var t=arguments[0],e=this.skuValue.id===this.selectedSku[this.skuKeyStr],i=this.largeImageMode?fc("image-item"):fc("item");return t("span",{class:[i,e?i+"--active":"",this.choosable?"":i+"--disabled"],on:{click:this.onSelect}},[this.genImage(i),t("div",{class:i+"-name"},[this.largeImageMode?t("span",{class:{"van-multi-ellipsis--l2":this.largeImageMode}},[this.skuValue.name]):this.skuValue.name]),this.largeImageMode&&t(rt,{attrs:{name:"enlarge"},class:i+"-img-icon",on:{click:this.onPreviewImg}})])}}),gc=(0,Object(l.a)("sku-row-prop-item")[0])({props:{skuValue:Object,skuKeyStr:String,skuEventBus:Object,selectedProp:Object,multiple:Boolean},computed:{choosed:function(){var t=this.selectedProp,e=this.skuKeyStr,i=this.skuValue;return!(!t||!t[e])&&t[e].indexOf(i.id)>-1}},methods:{onSelect:function(){this.skuEventBus.$emit("sku:propSelect",n({},this.skuValue,{skuKeyStr:this.skuKeyStr,multiple:this.multiple}))}},render:function(){var t=arguments[0];return t("span",{class:["van-sku-row__item",{"van-sku-row__item--active":this.choosed}],on:{click:this.onSelect}},[t("span",{class:"van-sku-row__item-name"},[this.skuValue.name])])}}),bc=Object(l.a)("stepper"),yc=bc[0],Sc=bc[1];function kc(t,e){return String(t)===String(e)}var xc=yc({mixins:[ei],props:{value:null,theme:String,integer:Boolean,disabled:Boolean,allowEmpty:Boolean,inputWidth:[Number,String],buttonSize:[Number,String],asyncChange:Boolean,placeholder:String,disablePlus:Boolean,disableMinus:Boolean,disableInput:Boolean,decimalLength:[Number,String],name:{type:[Number,String],default:""},min:{type:[Number,String],default:1},max:{type:[Number,String],default:1/0},step:{type:[Number,String],default:1},defaultValue:{type:[Number,String],default:1},showPlus:{type:Boolean,default:!0},showMinus:{type:Boolean,default:!0},showInput:{type:Boolean,default:!0},longPress:{type:Boolean,default:!0}},data:function(){var t,e=null!=(t=this.value)?t:this.defaultValue,i=this.format(e);return kc(i,this.value)||this.$emit("input",i),{currentValue:i}},computed:{minusDisabled:function(){return this.disabled||this.disableMinus||this.currentValue<=+this.min},plusDisabled:function(){return this.disabled||this.disablePlus||this.currentValue>=+this.max},inputStyle:function(){var t={};return this.inputWidth&&(t.width=Object(Y.a)(this.inputWidth)),this.buttonSize&&(t.height=Object(Y.a)(this.buttonSize)),t},buttonStyle:function(){if(this.buttonSize){var t=Object(Y.a)(this.buttonSize);return{width:t,height:t}}}},watch:{max:"check",min:"check",integer:"check",decimalLength:"check",value:function(t){kc(t,this.currentValue)||(this.currentValue=this.format(t))},currentValue:function(t){this.$emit("input",t),this.$emit("change",t,{name:this.name})}},methods:{check:function(){var t=this.format(this.currentValue);kc(t,this.currentValue)||(this.currentValue=t)},formatNumber:function(t){return Et(String(t),!this.integer)},format:function(t){return this.allowEmpty&&""===t||(t=""===(t=this.formatNumber(t))?0:+t,t=Object(Ni.a)(t)?this.min:t,t=Math.max(Math.min(this.max,t),this.min),Object(m.c)(this.decimalLength)&&(t=t.toFixed(this.decimalLength))),t},onInput:function(t){var e=t.target.value,i=this.formatNumber(e);if(Object(m.c)(this.decimalLength)&&-1!==i.indexOf(".")){var n=i.split(".");i=n[0]+"."+n[1].slice(0,this.decimalLength)}kc(e,i)||(t.target.value=i),i===String(+i)&&(i=+i),this.emitChange(i)},emitChange:function(t){this.asyncChange?(this.$emit("input",t),this.$emit("change",t,{name:this.name})):this.currentValue=t},onChange:function(){var t=this.type;if(this[t+"Disabled"])this.$emit("overlimit",t);else{var e="minus"===t?-this.step:+this.step,i=this.format(Pt(+this.currentValue,e));this.emitChange(i),this.$emit(t)}},onFocus:function(t){this.disableInput&&this.$refs.input?this.$refs.input.blur():this.$emit("focus",t)},onBlur:function(t){var e=this.format(t.target.value);t.target.value=e,this.emitChange(e),this.$emit("blur",t),re()},longPressStep:function(){var t=this;this.longPressTimer=setTimeout((function(){t.onChange(),t.longPressStep(t.type)}),200)},onTouchStart:function(){var t=this;this.longPress&&(clearTimeout(this.longPressTimer),this.isLongPress=!1,this.longPressTimer=setTimeout((function(){t.isLongPress=!0,t.onChange(),t.longPressStep()}),600))},onTouchEnd:function(t){this.longPress&&(clearTimeout(this.longPressTimer),this.isLongPress&&k(t))},onMousedown:function(t){this.disableInput&&t.preventDefault()}},render:function(){var t=this,e=arguments[0],i=function(e){return{on:{click:function(i){i.preventDefault(),t.type=e,t.onChange()},touchstart:function(){t.type=e,t.onTouchStart()},touchend:t.onTouchEnd,touchcancel:t.onTouchEnd}}};return e("div",{class:Sc([this.theme])},[e("button",r()([{directives:[{name:"show",value:this.showMinus}],attrs:{type:"button"},style:this.buttonStyle,class:Sc("minus",{disabled:this.minusDisabled})},i("minus")])),e("input",{directives:[{name:"show",value:this.showInput}],ref:"input",attrs:{type:this.integer?"tel":"text",role:"spinbutton",disabled:this.disabled,readonly:this.disableInput,inputmode:this.integer?"numeric":"decimal",placeholder:this.placeholder,"aria-valuemax":this.max,"aria-valuemin":this.min,"aria-valuenow":this.currentValue},class:Sc("input"),domProps:{value:this.currentValue},style:this.inputStyle,on:{input:this.onInput,focus:this.onFocus,blur:this.onBlur,mousedown:this.onMousedown}}),e("button",r()([{directives:[{name:"show",value:this.showPlus}],attrs:{type:"button"},style:this.buttonStyle,class:Sc("plus",{disabled:this.plusDisabled})},i("plus")]))])}}),wc=Object(l.a)("sku-stepper"),Cc=wc[0],Oc=wc[2],Tc=Ul.QUOTA_LIMIT,$c=Ul.STOCK_LIMIT,Bc=Cc({props:{stock:Number,skuEventBus:Object,skuStockNum:Number,selectedNum:Number,stepperTitle:String,disableStepperInput:Boolean,customStepperConfig:Object,hideQuotaText:Boolean,quota:{type:Number,default:0},quotaUsed:{type:Number,default:0},startSaleNum:{type:Number,default:1}},data:function(){return{currentNum:this.selectedNum,limitType:$c}},watch:{currentNum:function(t){var e=parseInt(t,10);e>=this.stepperMinLimit&&e<=this.stepperLimit&&this.skuEventBus.$emit("sku:numChange",e)},stepperLimit:function(t){tthis.currentNum||t>this.stepperLimit)&&(this.currentNum=t),this.checkState(t,this.stepperLimit)}},computed:{stepperLimit:function(){var t,e=this.quota-this.quotaUsed;return this.quota>0&&e<=this.stock?(t=e<0?0:e,this.limitType=Tc):(t=this.stock,this.limitType=$c),t},stepperMinLimit:function(){return this.startSaleNum<1?1:this.startSaleNum},quotaText:function(){var t=this.customStepperConfig,e=t.quotaText;if(t.hideQuotaText)return"";var i="";if(e)i=e;else{var n=[];this.startSaleNum>1&&n.push(Oc("quotaStart",this.startSaleNum)),this.quota>0&&n.push(Oc("quotaLimit",this.quota)),i=n.join(Oc("comma"))}return i}},created:function(){this.checkState(this.stepperMinLimit,this.stepperLimit)},methods:{setCurrentNum:function(t){this.currentNum=t,this.checkState(this.stepperMinLimit,this.stepperLimit)},onOverLimit:function(t){this.skuEventBus.$emit("sku:overLimit",{action:t,limitType:this.limitType,quota:this.quota,quotaUsed:this.quotaUsed,startSaleNum:this.startSaleNum})},onChange:function(t){var e=parseInt(t,10),i=this.customStepperConfig.handleStepperChange;i&&i(e),this.$emit("change",e)},checkState:function(t,e){this.currentNume?this.currentNum=t:this.currentNum>e&&(this.currentNum=e),this.skuEventBus.$emit("sku:stepperState",{valid:t<=e,min:t,max:e,limitType:this.limitType,quota:this.quota,quotaUsed:this.quotaUsed,startSaleNum:this.startSaleNum})}},render:function(){var t=this,e=arguments[0];return e("div",{class:"van-sku-stepper-stock"},[e("div",{class:"van-sku__stepper-title"},[this.stepperTitle||Oc("num")]),e(xc,{attrs:{integer:!0,min:this.stepperMinLimit,max:this.stepperLimit,disableInput:this.disableStepperInput},class:"van-sku__stepper",on:{overlimit:this.onOverLimit,change:this.onChange},model:{value:t.currentNum,callback:function(e){t.currentNum=e}}}),!this.hideQuotaText&&this.quotaText&&e("span",{class:"van-sku__stepper-quota"},["(",this.quotaText,")"])])}});function Ic(t){return/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(t)}function Dc(t){return Array.isArray(t)?t:[t]}function jc(t,e){return new Promise((function(i){if("file"!==e){var n=new FileReader;n.onload=function(t){i(t.target.result)},"dataUrl"===e?n.readAsDataURL(t):"text"===e&&n.readAsText(t)}else i(null)}))}function Ec(t,e){return Dc(t).some((function(t){return!!t&&(Object(m.e)(e)?e(t):t.size>e)}))}var Pc=/\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i;function Lc(t){return!!t.isImage||(t.file&&t.file.type?0===t.file.type.indexOf("image"):t.url?(e=t.url,Pc.test(e)):!!t.content&&0===t.content.indexOf("data:image"));var e}var Nc=Object(l.a)("uploader"),Ac=Nc[0],Mc=Nc[1],zc=Ac({inheritAttrs:!1,mixins:[ei],model:{prop:"fileList"},props:{disabled:Boolean,readonly:Boolean,lazyLoad:Boolean,uploadText:String,afterRead:Function,beforeRead:Function,beforeDelete:Function,previewSize:[Number,String],previewOptions:Object,name:{type:[Number,String],default:""},accept:{type:String,default:"image/*"},fileList:{type:Array,default:function(){return[]}},maxSize:{type:[Number,String,Function],default:Number.MAX_VALUE},maxCount:{type:[Number,String],default:Number.MAX_VALUE},deletable:{type:Boolean,default:!0},showUpload:{type:Boolean,default:!0},previewImage:{type:Boolean,default:!0},previewFullImage:{type:Boolean,default:!0},imageFit:{type:String,default:"cover"},resultType:{type:String,default:"dataUrl"},uploadIcon:{type:String,default:"photograph"}},computed:{previewSizeWithUnit:function(){return Object(Y.a)(this.previewSize)},value:function(){return this.fileList}},methods:{getDetail:function(t){return void 0===t&&(t=this.fileList.length),{name:this.name,index:t}},onChange:function(t){var e=this,i=t.target.files;if(!this.disabled&&i.length){if(i=1===i.length?i[0]:[].slice.call(i),this.beforeRead){var n=this.beforeRead(i,this.getDetail());if(!n)return void this.resetInput();if(Object(m.g)(n))return void n.then((function(t){t?e.readFile(t):e.readFile(i)})).catch(this.resetInput)}this.readFile(i)}},readFile:function(t){var e=this,i=Ec(t,this.maxSize);if(Array.isArray(t)){var n=this.maxCount-this.fileList.length;t.length>n&&(t=t.slice(0,n)),Promise.all(t.map((function(t){return jc(t,e.resultType)}))).then((function(n){var s=t.map((function(t,e){var i={file:t,status:"",message:""};return n[e]&&(i.content=n[e]),i}));e.onAfterRead(s,i)}))}else jc(t,this.resultType).then((function(n){var s={file:t,status:"",message:""};n&&(s.content=n),e.onAfterRead(s,i)}))},onAfterRead:function(t,e){var i=this;this.resetInput();var n=t;if(e){var s=t;Array.isArray(t)?(s=[],n=[],t.forEach((function(t){t.file&&(Ec(t.file,i.maxSize)?s.push(t):n.push(t))}))):n=null,this.$emit("oversize",s,this.getDetail())}(Array.isArray(n)?Boolean(n.length):Boolean(n))&&(this.$emit("input",[].concat(this.fileList,Dc(n))),this.afterRead&&this.afterRead(n,this.getDetail()))},onDelete:function(t,e){var i,n=this,s=null!=(i=t.beforeDelete)?i:this.beforeDelete;if(s){var r=s(t,this.getDetail(e));if(!r)return;if(Object(m.g)(r))return void r.then((function(){n.deleteFile(t,e)})).catch(m.i)}this.deleteFile(t,e)},deleteFile:function(t,e){var i=this.fileList.slice(0);i.splice(e,1),this.$emit("input",i),this.$emit("delete",t,this.getDetail(e))},resetInput:function(){this.$refs.input&&(this.$refs.input.value="")},onClickUpload:function(t){this.$emit("click-upload",t)},onPreviewImage:function(t){var e=this;if(this.previewFullImage){var i=this.fileList.filter((function(t){return Lc(t)})),s=i.map((function(t){return t.content||t.url}));this.imagePreview=vo(n({images:s,startPosition:i.indexOf(t),onClose:function(){e.$emit("close-preview")}},this.previewOptions))}},closeImagePreview:function(){this.imagePreview&&this.imagePreview.close()},chooseFile:function(){this.disabled||this.$refs.input&&this.$refs.input.click()},genPreviewMask:function(t){var e=this.$createElement,i=t.status,n=t.message;if("uploading"===i||"failed"===i){var s="failed"===i?e(rt,{attrs:{name:"close"},class:Mc("mask-icon")}):e(vt,{class:Mc("loading")}),r=Object(m.c)(n)&&""!==n;return e("div",{class:Mc("mask")},[s,r&&e("div",{class:Mc("mask-message")},[n])])}},genPreviewItem:function(t,e){var i,s,r,o=this,a=this.$createElement,l=null!=(i=t.deletable)?i:this.deletable,c="uploading"!==t.status&&l&&a("div",{class:Mc("preview-delete"),on:{click:function(i){i.stopPropagation(),o.onDelete(t,e)}}},[a(rt,{attrs:{name:"cross"},class:Mc("preview-delete-icon")})]),u=this.slots("preview-cover",n({index:e},t)),h=u&&a("div",{class:Mc("preview-cover")},[u]),d=null!=(s=t.previewSize)?s:this.previewSize,f=null!=(r=t.imageFit)?r:this.imageFit,p=Lc(t)?a(an,{attrs:{fit:f,src:t.content||t.url,width:d,height:d,lazyLoad:this.lazyLoad},class:Mc("preview-image"),on:{click:function(){o.onPreviewImage(t)}}},[h]):a("div",{class:Mc("file"),style:{width:this.previewSizeWithUnit,height:this.previewSizeWithUnit}},[a(rt,{class:Mc("file-icon"),attrs:{name:"description"}}),a("div",{class:[Mc("file-name"),"van-ellipsis"]},[t.file?t.file.name:t.url]),h]);return a("div",{class:Mc("preview"),on:{click:function(){o.$emit("click-preview",t,o.getDetail(e))}}},[p,this.genPreviewMask(t),c])},genPreviewList:function(){if(this.previewImage)return this.fileList.map(this.genPreviewItem)},genUpload:function(){var t=this.$createElement;if(!(this.fileList.length>=this.maxCount)&&this.showUpload){var e,i=this.slots(),s=this.readonly?null:t("input",{attrs:n({},this.$attrs,{type:"file",accept:this.accept,disabled:this.disabled}),ref:"input",class:Mc("input"),on:{change:this.onChange}});if(i)return t("div",{class:Mc("input-wrapper"),key:"input-wrapper",on:{click:this.onClickUpload}},[i,s]);if(this.previewSize){var r=this.previewSizeWithUnit;e={width:r,height:r}}return t("div",{class:Mc("upload",{readonly:this.readonly}),style:e,on:{click:this.onClickUpload}},[t(rt,{attrs:{name:this.uploadIcon},class:Mc("upload-icon")}),this.uploadText&&t("span",{class:Mc("upload-text")},[this.uploadText]),s])}}},render:function(){var t=arguments[0];return t("div",{class:Mc()},[t("div",{class:Mc("wrapper",{disabled:this.disabled})},[this.genPreviewList(),this.genUpload()])])}}),Fc=Object(l.a)("sku-img-uploader"),Vc=Fc[0],Rc=Fc[2],Hc=Vc({props:{value:String,uploadImg:Function,customUpload:Function,maxSize:{type:Number,default:6}},data:function(){return{fileList:[]}},watch:{value:function(t){this.fileList=t?[{url:t,isImage:!0}]:[]}},methods:{afterReadFile:function(t){var e=this;t.status="uploading",t.message=Rc("uploading"),this.uploadImg(t.file,t.content).then((function(i){t.status="done",e.$emit("input",i)})).catch((function(){t.status="failed",t.message=Rc("fail")}))},onOversize:function(){this.$toast(Rc("oversize",this.maxSize))},onDelete:function(){this.$emit("input","")},onClickUpload:function(){var t=this;this.customUpload&&this.customUpload().then((function(e){t.fileList.push({url:e}),t.$emit("input",e)}))}},render:function(){var t=this,e=arguments[0];return e(zc,{attrs:{maxCount:1,readonly:!!this.customUpload,maxSize:1024*this.maxSize*1024,afterRead:this.afterReadFile},on:{oversize:this.onOversize,delete:this.onDelete,"click-upload":this.onClickUpload},model:{value:t.fileList,callback:function(e){t.fileList=e}}})}});var _c=Object(l.a)("sku-datetime-field"),Wc=_c[0],qc=_c[2],Uc=Wc({props:{value:String,label:String,required:Boolean,placeholder:String,type:{type:String,default:"date"}},data:function(){return{showDatePicker:!1,currentDate:"time"===this.type?"":new Date,minDate:new Date((new Date).getFullYear()-60,0,1)}},watch:{value:function(t){switch(this.type){case"time":this.currentDate=t;break;case"date":case"datetime":this.currentDate=((e=t)?new Date(e.replace(/-/g,"/")):null)||new Date}var e}},computed:{title:function(){return qc("title."+this.type)}},methods:{onClick:function(){this.showDatePicker=!0},onConfirm:function(t){var e=t;"time"!==this.type&&(e=function(t,e){if(void 0===e&&(e="date"),!t)return"";var i=t.getFullYear(),n=t.getMonth()+1,s=t.getDate(),r=i+"-"+Object(Ls.b)(n)+"-"+Object(Ls.b)(s);if("datetime"===e){var o=t.getHours(),a=t.getMinutes();r+=" "+Object(Ls.b)(o)+":"+Object(Ls.b)(a)}return r}(t,this.type)),this.$emit("input",e),this.showDatePicker=!1},onCancel:function(){this.showDatePicker=!1},formatter:function(t,e){return""+e+qc("format."+t)}},render:function(){var t=this,e=arguments[0];return e(ce,{attrs:{readonly:!0,"is-link":!0,center:!0,value:this.value,label:this.label,required:this.required,placeholder:this.placeholder},on:{click:this.onClick}},[e(ct,{attrs:{round:!0,position:"bottom",getContainer:"body"},slot:"extra",model:{value:t.showDatePicker,callback:function(e){t.showDatePicker=e}}},[e(pr,{attrs:{type:this.type,title:this.title,value:this.currentDate,minDate:this.minDate,formatter:this.formatter},on:{cancel:this.onCancel,confirm:this.onConfirm}})])])}}),Kc=Object(l.a)("sku-messages"),Yc=Kc[0],Xc=Kc[1],Qc=Kc[2],Gc=Yc({props:{messageConfig:Object,goodsId:[Number,String],messages:{type:Array,default:function(){return[]}}},data:function(){return{messageValues:this.resetMessageValues(this.messages)}},watch:{messages:function(t){this.messageValues=this.resetMessageValues(t)}},methods:{resetMessageValues:function(t){var e=this.messageConfig.initialMessages,i=void 0===e?{}:e;return(t||[]).map((function(t){return{value:i[t.name]||""}}))},getType:function(t){return 1==+t.multiple?"textarea":"id_no"===t.type?"text":t.datetime>0?"datetime":t.type},getMessages:function(){var t={};return this.messageValues.forEach((function(e,i){t["message_"+i]=e.value})),t},getCartMessages:function(){var t=this,e={};return this.messageValues.forEach((function(i,n){var s=t.messages[n];e[s.name]=i.value})),e},getPlaceholder:function(t){var e=1==+t.multiple?"textarea":t.type,i=this.messageConfig.placeholderMap||{};return t.placeholder||i[e]||Qc("placeholder."+e)},validateMessages:function(){for(var t=this.messageValues,e=0;e18))return Qc("invalid.id_no")}}},getFormatter:function(t){return function(e){return"mobile"===t.type||"tel"===t.type?e.replace(/[^\d.]/g,""):e}},genMessage:function(t,e){var i=this,n=this.$createElement;return"image"===t.type?n(ne,{key:this.goodsId+"-"+e,attrs:{title:t.name,required:"1"===String(t.required),valueClass:Xc("image-cell-value")},class:Xc("image-cell")},[n(Hc,{attrs:{maxSize:this.messageConfig.uploadMaxSize,uploadImg:this.messageConfig.uploadImg,customUpload:this.messageConfig.customUpload},model:{value:i.messageValues[e].value,callback:function(t){i.$set(i.messageValues[e],"value",t)}}}),n("div",{class:Xc("image-cell-label")},[Qc("imageLabel")])]):["date","time"].indexOf(t.type)>-1?n(Uc,{attrs:{label:t.name,required:"1"===String(t.required),placeholder:this.getPlaceholder(t),type:this.getType(t)},key:this.goodsId+"-"+e,model:{value:i.messageValues[e].value,callback:function(t){i.$set(i.messageValues[e],"value",t)}}}):n(ce,{attrs:{maxlength:"200",center:!t.multiple,label:t.name,required:"1"===String(t.required),placeholder:this.getPlaceholder(t),type:this.getType(t),formatter:this.getFormatter(t)},key:this.goodsId+"-"+e,model:{value:i.messageValues[e].value,callback:function(t){i.$set(i.messageValues[e],"value",t)}}})}},render:function(){var t=arguments[0];return t("div",{class:Xc()},[this.messages.map(this.genMessage)])}}),Zc=Object(l.a)("sku-actions"),Jc=Zc[0],tu=Zc[1],eu=Zc[2];function iu(t,e,i,n){var s=function(t){return function(){e.skuEventBus.$emit(t)}};return t("div",r()([{class:tu()},h(n)]),[e.showAddCartBtn&&t(Be,{attrs:{size:"large",type:"warning",text:e.addCartText||eu("addCart")},on:{click:s("sku:addCart")}}),t(Be,{attrs:{size:"large",type:"danger",text:e.buyText||eu("buy")},on:{click:s("sku:buy")}})])}iu.props={buyText:String,addCartText:String,skuEventBus:Object,showAddCartBtn:Boolean};var nu=Jc(iu),su=Object(l.a)("sku"),ru=su[0],ou=su[1],au=su[2],lu=Ul.QUOTA_LIMIT,cu=ru({props:{sku:Object,goods:Object,value:Boolean,buyText:String,goodsId:[Number,String],priceTag:String,lazyLoad:Boolean,hideStock:Boolean,properties:Array,addCartText:String,stepperTitle:String,getContainer:[String,Function],hideQuotaText:Boolean,hideSelectedText:Boolean,resetStepperOnHide:Boolean,customSkuValidator:Function,disableStepperInput:Boolean,resetSelectedSkuOnHide:Boolean,quota:{type:Number,default:0},quotaUsed:{type:Number,default:0},startSaleNum:{type:Number,default:1},initialSku:{type:Object,default:function(){return{}}},stockThreshold:{type:Number,default:50},showSoldoutSku:{type:Boolean,default:!0},showAddCartBtn:{type:Boolean,default:!0},disableSoldoutSku:{type:Boolean,default:!0},customStepperConfig:{type:Object,default:function(){return{}}},showHeaderImage:{type:Boolean,default:!0},previewOnClickImage:{type:Boolean,default:!0},safeAreaInsetBottom:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0},bodyOffsetTop:{type:Number,default:200},messageConfig:{type:Object,default:function(){return{initialMessages:{},placeholderMap:{},uploadImg:function(){return Promise.resolve()},uploadMaxSize:5}}}},data:function(){return{selectedSku:{},selectedProp:{},selectedNum:1,show:this.value}},watch:{show:function(t){this.$emit("input",t),t||(this.$emit("sku-close",{selectedSkuValues:this.selectedSkuValues,selectedNum:this.selectedNum,selectedSkuComb:this.selectedSkuComb}),this.resetStepperOnHide&&this.resetStepper(),this.resetSelectedSkuOnHide&&this.resetSelectedSku())},value:function(t){this.show=t},skuTree:"resetSelectedSku",initialSku:function(){this.resetStepper(),this.resetSelectedSku()}},computed:{skuGroupClass:function(){return["van-sku-group-container",{"van-sku-group-container--hide-soldout":!this.showSoldoutSku}]},bodyStyle:function(){if(!this.$isServer)return{maxHeight:window.innerHeight-this.bodyOffsetTop+"px"}},isSkuCombSelected:function(){var t=this;return!(this.hasSku&&!Xl(this.skuTree,this.selectedSku))&&!this.propList.filter((function(t){return!1!==t.is_necessary})).some((function(e){return 0===(t.selectedProp[e.k_id]||[]).length}))},isSkuEmpty:function(){return 0===Object.keys(this.sku).length},hasSku:function(){return!this.sku.none_sku},hasSkuOrAttr:function(){return this.hasSku||this.propList.length>0},selectedSkuComb:function(){var t=null;return this.isSkuCombSelected&&(t=this.hasSku?Ql(this.skuList,this.selectedSku):{id:this.sku.collection_id,price:Math.round(100*this.sku.price),stock_num:this.sku.stock_num})&&(t.properties=tc(this.propList,this.selectedProp),t.property_price=this.selectedPropValues.reduce((function(t,e){return t+(e.price||0)}),0)),t},selectedSkuValues:function(){return Gl(this.skuTree,this.selectedSku)},selectedPropValues:function(){return Jl(this.propList,this.selectedProp)},price:function(){return this.selectedSkuComb?((this.selectedSkuComb.price+this.selectedSkuComb.property_price)/100).toFixed(2):this.sku.price},originPrice:function(){return this.selectedSkuComb&&this.selectedSkuComb.origin_price?((this.selectedSkuComb.origin_price+this.selectedSkuComb.property_price)/100).toFixed(2):this.sku.origin_price},skuTree:function(){return this.sku.tree||[]},skuList:function(){return this.sku.list||[]},propList:function(){return this.properties||[]},imageList:function(){var t=[this.goods.picture];return this.skuTree.length>0&&this.skuTree.forEach((function(e){e.v&&e.v.forEach((function(e){var i=e.previewImgUrl||e.imgUrl||e.img_url;i&&-1===t.indexOf(i)&&t.push(i)}))})),t},stock:function(){var t=this.customStepperConfig.stockNum;return void 0!==t?t:this.selectedSkuComb?this.selectedSkuComb.stock_num:this.sku.stock_num},stockText:function(){var t=this.$createElement,e=this.customStepperConfig.stockFormatter;return e?e(this.stock):[au("stock")+" ",t("span",{class:ou("stock-num",{highlight:this.stock0&&this.$nextTick((function(){t.$emit("sku-selected",{skuValue:e[e.length-1],selectedSku:t.selectedSku,selectedSkuComb:t.selectedSkuComb})})),this.selectedProp={};var i=this.initialSku.selectedProp,n=void 0===i?{}:i;this.propList.forEach((function(e){n[e.k_id]&&(t.selectedProp[e.k_id]=n[e.k_id])})),Object(m.d)(this.selectedProp)&&this.propList.forEach((function(e){var i;if((null==e||null==(i=e.v)?void 0:i.length)>0){var n=e.v,s=e.k_id;n.some((function(t){return 0!=+t.price}))||(t.selectedProp[s]=[n[0].id])}}));var s=this.selectedPropValues;s.length>0&&this.$emit("sku-prop-selected",{propValue:s[s.length-1],selectedProp:this.selectedProp,selectedSkuComb:this.selectedSkuComb}),this.$emit("sku-reset",{selectedSku:this.selectedSku,selectedProp:this.selectedProp,selectedSkuComb:this.selectedSkuComb}),this.centerInitialSku()},getSkuMessages:function(){return this.$refs.skuMessages?this.$refs.skuMessages.getMessages():{}},getSkuCartMessages:function(){return this.$refs.skuMessages?this.$refs.skuMessages.getCartMessages():{}},validateSkuMessages:function(){return this.$refs.skuMessages?this.$refs.skuMessages.validateMessages():""},validateSku:function(){if(0===this.selectedNum)return au("unavailable");if(this.isSkuCombSelected)return this.validateSkuMessages();if(this.customSkuValidator){var t=this.customSkuValidator(this);if(t)return t}return au("selectSku")},onSelect:function(t){var e,i;this.selectedSku=this.selectedSku[t.skuKeyStr]===t.id?n({},this.selectedSku,((e={})[t.skuKeyStr]="",e)):n({},this.selectedSku,((i={})[t.skuKeyStr]=t.id,i)),this.$emit("sku-selected",{skuValue:t,selectedSku:this.selectedSku,selectedSkuComb:this.selectedSkuComb})},onPropSelect:function(t){var e,i=this.selectedProp[t.skuKeyStr]||[],s=i.indexOf(t.id);s>-1?i.splice(s,1):t.multiple?i.push(t.id):i.splice(0,1,t.id),this.selectedProp=n({},this.selectedProp,((e={})[t.skuKeyStr]=i,e)),this.$emit("sku-prop-selected",{propValue:t,selectedProp:this.selectedProp,selectedSkuComb:this.selectedSkuComb})},onNumChange:function(t){this.selectedNum=t},onPreviewImage:function(t){var e=this,i=this.imageList,s=0,r=i[0];t&&t.imgUrl&&(this.imageList.some((function(e,i){return e===t.imgUrl&&(s=i,!0)})),r=t.imgUrl);var o=n({},t,{index:s,imageList:this.imageList,indexImage:r});this.$emit("open-preview",o),this.previewOnClickImage&&vo({images:this.imageList,startPosition:s,onClose:function(){e.$emit("close-preview",o)}})},onOverLimit:function(t){var e=t.action,i=t.limitType,n=t.quota,s=t.quotaUsed,r=this.customStepperConfig.handleOverLimit;r?r(t):"minus"===e?this.startSaleNum>1?we(au("minusStartTip",this.startSaleNum)):we(au("minusTip")):"plus"===e&&we(i===lu?s>0?au("quotaUsedTip",n,s):au("quotaTip",n):au("soldout"))},onStepperState:function(t){this.stepperError=t.valid?null:n({},t,{action:"plus"})},onAddCart:function(){this.onBuyOrAddCart("add-cart")},onBuy:function(){this.onBuyOrAddCart("buy-clicked")},onBuyOrAddCart:function(t){if(this.stepperError)return this.onOverLimit(this.stepperError);var e=this.validateSku();e?we(e):this.$emit(t,this.getSkuData())},getSkuData:function(){return{goodsId:this.goodsId,messages:this.getSkuMessages(),selectedNum:this.selectedNum,cartMessages:this.getSkuCartMessages(),selectedSkuComb:this.selectedSkuComb}},onOpened:function(){this.centerInitialSku()},centerInitialSku:function(){var t=this;(this.$refs.skuRows||[]).forEach((function(e){var i=(e.skuRow||{}).k_s;e.centerItem(t.initialSku[i])}))}},render:function(){var t=this,e=arguments[0];if(!this.isSkuEmpty){var i=this.sku,n=this.skuList,s=this.goods,r=this.price,o=this.lazyLoad,a=this.originPrice,l=this.skuEventBus,c=this.selectedSku,u=this.selectedProp,h=this.selectedNum,d=this.stepperTitle,f=this.selectedSkuComb,p=this.showHeaderImage,m=this.disableSoldoutSku,v={price:r,originPrice:a,selectedNum:h,skuEventBus:l,selectedSku:c,selectedSkuComb:f},g=function(e){return t.slots(e,v)},b=g("sku-header")||e(oc,{attrs:{sku:i,goods:s,skuEventBus:l,selectedSku:c,showHeaderImage:p}},[e("template",{slot:"sku-header-image-extra"},[g("sku-header-image-extra")]),g("sku-header-price")||e("div",{class:"van-sku__goods-price"},[e("span",{class:"van-sku__price-symbol"},["¥"]),e("span",{class:"van-sku__price-num"},[r]),this.priceTag&&e("span",{class:"van-sku__price-tag"},[this.priceTag])]),g("sku-header-origin-price")||a&&e(uc,[au("originPrice")," ¥",a]),!this.hideStock&&e(uc,[e("span",{class:"van-sku__stock"},[this.stockText])]),this.hasSkuOrAttr&&!this.hideSelectedText&&e(uc,[this.selectedText]),g("sku-header-extra")]),y=g("sku-group")||this.hasSkuOrAttr&&e("div",{class:this.skuGroupClass},[this.skuTree.map((function(t){return e(mc,{attrs:{skuRow:t},ref:"skuRows",refInFor:!0},[t.v.map((function(i){return e(vc,{attrs:{skuList:n,lazyLoad:o,skuValue:i,skuKeyStr:t.k_s,selectedSku:c,skuEventBus:l,disableSoldoutSku:m,largeImageMode:t.largeImageMode}})}))])})),this.propList.map((function(t){return e(mc,{attrs:{skuRow:t}},[t.v.map((function(i){return e(gc,{attrs:{skuValue:i,skuKeyStr:t.k_id+"",selectedProp:u,skuEventBus:l,multiple:t.is_multiple}})}))])}))]),S=g("sku-stepper")||e(Bc,{ref:"skuStepper",attrs:{stock:this.stock,quota:this.quota,quotaUsed:this.quotaUsed,startSaleNum:this.startSaleNum,skuEventBus:l,selectedNum:h,stepperTitle:d,skuStockNum:i.stock_num,disableStepperInput:this.disableStepperInput,customStepperConfig:this.customStepperConfig,hideQuotaText:this.hideQuotaText},on:{change:function(e){t.$emit("stepper-change",e)}}}),k=g("sku-messages")||e(Gc,{ref:"skuMessages",attrs:{goodsId:this.goodsId,messageConfig:this.messageConfig,messages:i.messages}}),x=g("sku-actions")||e(nu,{attrs:{buyText:this.buyText,skuEventBus:l,addCartText:this.addCartText,showAddCartBtn:this.showAddCartBtn}});return e(ct,{attrs:{round:!0,closeable:!0,position:"bottom",getContainer:this.getContainer,closeOnClickOverlay:this.closeOnClickOverlay,safeAreaInsetBottom:this.safeAreaInsetBottom},class:"van-sku-container",on:{opened:this.onOpened},model:{value:t.show,callback:function(e){t.show=e}}},[b,e("div",{class:"van-sku-body",style:this.bodyStyle},[g("sku-body-top"),y,g("extra-sku-group"),S,k]),g("sku-actions-top"),x])}}});Eo.a.add({"zh-CN":{vanSku:{select:"请选择",selected:"已选",selectSku:"请先选择商品规格",soldout:"库存不足",originPrice:"原价",minusTip:"至少选择一件",minusStartTip:function(t){return t+"件起售"},unavailable:"商品已经无法购买啦",stock:"剩余",stockUnit:"件",quotaTip:function(t){return"每人限购"+t+"件"},quotaUsedTip:function(t,e){return"每人限购"+t+"件,你已购买"+e+"件"}},vanSkuActions:{buy:"立即购买",addCart:"加入购物车"},vanSkuImgUploader:{oversize:function(t){return"最大可上传图片为"+t+"MB,请尝试压缩图片尺寸"},fail:"上传失败",uploading:"上传中..."},vanSkuStepper:{quotaLimit:function(t){return"限购"+t+"件"},quotaStart:function(t){return t+"件起售"},comma:",",num:"购买数量"},vanSkuMessages:{fill:"请填写",upload:"请上传",imageLabel:"仅限一张",invalid:{tel:"请填写正确的数字格式留言",mobile:"手机号长度为6-20位数字",email:"请填写正确的邮箱",id_no:"请填写正确的身份证号码"},placeholder:{id_no:"请填写身份证号",text:"请填写留言",tel:"请填写数字",email:"请填写邮箱",date:"请选择日期",time:"请选择时间",textarea:"请填写留言",mobile:"请填写手机号"}},vanSkuRow:{multiple:"可多选"},vanSkuDatetimeField:{title:{date:"选择年月日",time:"选择时间",datetime:"选择日期时间"},format:{year:"年",month:"月",day:"日",hour:"时",minute:"分"}}}}),cu.SkuActions=nu,cu.SkuHeader=oc,cu.SkuHeaderItem=uc,cu.SkuMessages=Gc,cu.SkuStepper=Bc,cu.SkuRow=mc,cu.SkuRowItem=vc,cu.SkuRowPropItem=gc,cu.skuHelper=ec,cu.skuConstants=Kl;var uu=cu,hu=Object(l.a)("slider"),du=hu[0],fu=hu[1],pu=function(t,e){return JSON.stringify(t)===JSON.stringify(e)},mu=du({mixins:[R,ei],props:{disabled:Boolean,vertical:Boolean,range:Boolean,barHeight:[Number,String],buttonSize:[Number,String],activeColor:String,inactiveColor:String,min:{type:[Number,String],default:0},max:{type:[Number,String],default:100},step:{type:[Number,String],default:1},value:{type:[Number,Array],default:0}},data:function(){return{dragStatus:""}},computed:{scope:function(){return this.max-this.min},buttonStyle:function(){if(this.buttonSize){var t=Object(Y.a)(this.buttonSize);return{width:t,height:t}}}},created:function(){this.updateValue(this.value)},mounted:function(){this.range?(this.bindTouchEvent(this.$refs.wrapper0),this.bindTouchEvent(this.$refs.wrapper1)):this.bindTouchEvent(this.$refs.wrapper)},methods:{onTouchStart:function(t){this.disabled||(this.touchStart(t),this.currentValue=this.value,this.range?this.startValue=this.value.map(this.format):this.startValue=this.format(this.value),this.dragStatus="start")},onTouchMove:function(t){if(!this.disabled){"start"===this.dragStatus&&this.$emit("drag-start"),k(t,!0),this.touchMove(t),this.dragStatus="draging";var e=this.$el.getBoundingClientRect(),i=(this.vertical?this.deltaY:this.deltaX)/(this.vertical?e.height:e.width)*this.scope;this.range?this.currentValue[this.index]=this.startValue[this.index]+i:this.currentValue=this.startValue+i,this.updateValue(this.currentValue)}},onTouchEnd:function(){this.disabled||("draging"===this.dragStatus&&(this.updateValue(this.currentValue,!0),this.$emit("drag-end")),this.dragStatus="")},onClick:function(t){if(t.stopPropagation(),!this.disabled){var e=this.$el.getBoundingClientRect(),i=this.vertical?t.clientY-e.top:t.clientX-e.left,n=this.vertical?e.height:e.width,s=+this.min+i/n*this.scope;if(this.range){var r=this.value,o=r[0],a=r[1];s<=(o+a)/2?o=s:a=s,s=[o,a]}this.startValue=this.value,this.updateValue(s,!0)}},handleOverlap:function(t){return t[0]>t[1]?(t=It(t)).reverse():t},updateValue:function(t,e){t=this.range?this.handleOverlap(t).map(this.format):this.format(t),pu(t,this.value)||this.$emit("input",t),e&&!pu(t,this.startValue)&&this.$emit("change",t)},format:function(t){var e=+this.min,i=+this.max,n=+this.step;return t=Dt(t,e,i),Pt(e,Math.round((t-e)/n)*n)}},render:function(){var t,e,i=this,n=arguments[0],s=this.vertical,r=s?"height":"width",o=s?"width":"height",a=((t={background:this.inactiveColor})[o]=Object(Y.a)(this.barHeight),t),l=function(){var t=i.value,e=i.min,n=i.range,s=i.scope;return n?100*(t[1]-t[0])/s+"%":100*(t-e)/s+"%"},c=function(){var t=i.value,e=i.min,n=i.range,s=i.scope;return n?100*(t[0]-e)/s+"%":null},u=((e={})[r]=l(),e.left=this.vertical?null:c(),e.top=this.vertical?c():null,e.background=this.activeColor,e);this.dragStatus&&(u.transition="none");var h=function(t){var e=["left","right"],s="number"==typeof t;return n("div",{ref:s?"wrapper"+t:"wrapper",attrs:{role:"slider",tabindex:i.disabled?-1:0,"aria-valuemin":i.min,"aria-valuenow":i.value,"aria-valuemax":i.max,"aria-orientation":i.vertical?"vertical":"horizontal"},class:fu(s?"button-wrapper-"+e[t]:"button-wrapper"),on:{touchstart:function(){s&&(i.index=t)},click:function(t){return t.stopPropagation()}}},[i.slots("button")||n("div",{class:fu("button"),style:i.buttonStyle})])};return n("div",{style:a,class:fu({disabled:this.disabled,vertical:s}),on:{click:this.onClick}},[n("div",{class:fu("bar"),style:u},[this.range?[h(0),h(1)]:h()])])}}),vu=Object(l.a)("step"),gu=vu[0],bu=vu[1],yu=gu({mixins:[De("vanSteps")],computed:{status:function(){return this.index0?"left":"right"),this.dragging=!1,setTimeout((function(){t.lockClick=!1}),0))},toggle:function(t){var e=Math.abs(this.offset),i=this.opened?.85:.15,n=this.computedLeftWidth,s=this.computedRightWidth;s&&"right"===t&&e>s*i?this.open("right"):n&&"left"===t&&e>n*i?this.open("left"):this.close()},onClick:function(t){void 0===t&&(t="outside"),this.$emit("click",t),this.opened&&!this.lockClick&&(this.beforeClose?this.beforeClose({position:t,name:this.name,instance:this}):this.onClose?this.onClose(t,this,{name:this.name}):this.close(t))},getClickHandler:function(t,e){var i=this;return function(n){e&&n.stopPropagation(),i.onClick(t)}},genLeftPart:function(){var t=this.$createElement,e=this.slots("left");if(e)return t("div",{ref:"left",class:Eu("left"),on:{click:this.getClickHandler("left",!0)}},[e])},genRightPart:function(){var t=this.$createElement,e=this.slots("right");if(e)return t("div",{ref:"right",class:Eu("right"),on:{click:this.getClickHandler("right",!0)}},[e])}},render:function(){var t=arguments[0],e={transform:"translate3d("+this.offset+"px, 0, 0)",transitionDuration:this.dragging?"0s":".6s"};return t("div",{class:Eu(),on:{click:this.getClickHandler("cell")}},[t("div",{class:Eu("wrapper"),style:e},[this.genLeftPart(),this.slots(),this.genRightPart()])])}}),Lu=Object(l.a)("switch-cell"),Nu=Lu[0],Au=Lu[1];function Mu(t,e,i,s){return t(ne,r()([{attrs:{center:!0,size:e.cellSize,title:e.title,border:e.border},class:Au([e.cellSize])},h(s)]),[t(ri,{props:n({},e),on:n({},s.listeners)})])}Mu.props=n({},ti,{title:String,cellSize:String,border:{type:Boolean,default:!0},size:{type:String,default:"24px"}});var zu=Nu(Mu),Fu=Object(l.a)("tabbar"),Vu=Fu[0],Ru=Fu[1],Hu=Vu({mixins:[je("vanTabbar")],props:{route:Boolean,zIndex:[Number,String],placeholder:Boolean,activeColor:String,beforeChange:Function,inactiveColor:String,value:{type:[Number,String],default:0},border:{type:Boolean,default:!0},fixed:{type:Boolean,default:!0},safeAreaInsetBottom:{type:Boolean,default:null}},data:function(){return{height:null}},computed:{fit:function(){return null!==this.safeAreaInsetBottom?this.safeAreaInsetBottom:this.fixed}},watch:{value:"setActiveItem",children:"setActiveItem"},mounted:function(){this.placeholder&&this.fixed&&(this.height=this.$refs.tabbar.getBoundingClientRect().height)},methods:{setActiveItem:function(){var t=this;this.children.forEach((function(e,i){e.active=(e.name||i)===t.value}))},onChange:function(t){var e=this;t!==this.value&&bn({interceptor:this.beforeChange,args:[t],done:function(){e.$emit("input",t),e.$emit("change",t)}})},genTabbar:function(){var t;return(0,this.$createElement)("div",{ref:"tabbar",style:{zIndex:this.zIndex},class:[(t={},t[Bt]=this.border,t),Ru({unfit:!this.fit,fixed:this.fixed})]},[this.slots()])}},render:function(){var t=arguments[0];return this.placeholder&&this.fixed?t("div",{class:Ru("placeholder"),style:{height:this.height+"px"}},[this.genTabbar()]):this.genTabbar()}}),_u=Object(l.a)("tabbar-item"),Wu=_u[0],qu=_u[1],Uu=Wu({mixins:[De("vanTabbar")],props:n({},Gt,{dot:Boolean,icon:String,name:[Number,String],info:[Number,String],badge:[Number,String],iconPrefix:String}),data:function(){return{active:!1}},computed:{routeActive:function(){var t=this.to,e=this.$route;if(t&&e){var i=Object(m.f)(t)?t:{path:t},n=i.path===e.path,s=Object(m.c)(i.name)&&i.name===e.name;return n||s}}},methods:{onClick:function(t){this.parent.onChange(this.name||this.index),this.$emit("click",t),Xt(this.$router,this)},genIcon:function(t){var e=this.$createElement,i=this.slots("icon",{active:t});return i||(this.icon?e(rt,{attrs:{name:this.icon,classPrefix:this.iconPrefix}}):void 0)}},render:function(){var t,e=arguments[0],i=this.parent.route?this.routeActive:this.active,n=this.parent[i?"activeColor":"inactiveColor"];return e("div",{class:qu({active:i}),style:{color:n},on:{click:this.onClick}},[e("div",{class:qu("icon")},[this.genIcon(i),e(J,{attrs:{dot:this.dot,info:null!=(t=this.badge)?t:this.info}})]),e("div",{class:qu("text")},[this.slots("default",{active:i})])])}}),Ku=Object(l.a)("tree-select"),Yu=Ku[0],Xu=Ku[1];function Qu(t,e,i,n){var s=e.items,o=e.height,a=e.activeId,l=e.selectedIcon,c=e.mainActiveIndex;var u=(s[+c]||{}).children||[],f=Array.isArray(a);function p(t){return f?-1!==a.indexOf(t):a===t}var m=s.map((function(e){var i;return t(Vl,{attrs:{dot:e.dot,info:null!=(i=e.badge)?i:e.info,title:e.text,disabled:e.disabled},class:[Xu("nav-item"),e.className]})}));return t("div",r()([{class:Xu(),style:{height:Object(Y.a)(o)}},h(n)]),[t(Al,{class:Xu("nav"),attrs:{activeKey:c},on:{change:function(t){d(n,"update:main-active-index",t),d(n,"click-nav",t),d(n,"navclick",t)}}},[m]),t("div",{class:Xu("content")},[i.content?i.content():u.map((function(i){return t("div",{key:i.id,class:["van-ellipsis",Xu("item",{active:p(i.id),disabled:i.disabled})],on:{click:function(){if(!i.disabled){var t=i.id;if(f){var s=(t=a.slice()).indexOf(i.id);-1!==s?t.splice(s,1):t.length-1){ + status = true; + }else{ + status = false; + } + if(Node.children){ + this.classify.childFids = []; + this.handleClassifyForEach(Node.children); + for(var f in this.classify.childFids){ + self.$refs.tree[0].setChecked(this.classify.childFids[f],status); + } + } + var itemNode = self.$refs.tree[0].getCheckedNodes(); + var checkedFids = []; + var checkedTexts = []; + if(itemNode.length){ + for(var i in itemNode){ + checkedFids.push(itemNode[i].fid); + checkedTexts.push(itemNode[i].fname); + } var str = { key:'classify', - val:data.checkedKeys.join(',') + val:checkedFids.join(',') }; - var texts = []; - for(var i in data.checkedNodes){ - texts.push(data.checkedNodes[i].fname); - } - this.classify.text = texts.join(','); + this.classify.text = checkedTexts.join(','); VuexStore.commit('SetParams', str); VuexStore.dispatch('handleHash'); }else{ this.handleClickDelete('classify'); } - - // if(data.checkedKeys.length && data.checkedKeys.indexOf(Node.fid)>-1){ - // this.Addkeyword(this.GetAppid,Node.fname,2); - // } + if(data.checkedKeys.length && data.checkedKeys.indexOf(Node.fid)>-1){ + this.Addkeyword(this.GetAppid,Node.fname,2); + } }, - handleShowclassify(){//分类打开时设置默认选中项 - var self = this; - if(this.GetParams.classify){ - self.$refs.tree[0].setCheckedKeys(this.GetParams.classify.split(',')); + handleClassifyForEach(item){//分类寻找子节点 + for(var i in item){ + this.classify.childFids.push(item[i].fid); + if(item[i].children){ + this.handleClassifyForEach(item[i].children); + } } + }, + handleShowafteclassify(){//分类打开时设置默认选中项 + var self = this; + self.classify.loading=true + self.classify.DefaultFids = this.GetParams.classify.split(','); var params = {}; if(this.GetAppid){ params['appid'] = this.GetAppid; } jQuery.post(MOD_URL+'&op=ajax&operation=getsearchfolder',params,function(data){ self.classify.folderdatanum = data.folderdatanum; + self.classify.loading=false; },'json') }, handlehotsearchnum(item){//分类点击历史搜索文字 @@ -242,50 +268,6 @@ var headerMethods = { }); }, - // GetHashParams(){ - // var arr = (location.hash || "").replace(/^\?/,'').split("&"); - // var params = {}; - // var appid = ''; - // for(var i=0; i-1){ + if(val.indexOf(item.tid)>-1){ newVal.push(item.tagname); } if(val==data[i].tid){ keyword = item.tagname; } } - VuexStore.commit('SetParams',{key:'tag',val:this.tagData.checkedsId.join(',')}); + VuexStore.commit('SetParams',{key:'tag',val:val.join(',')}); VuexStore.commit('SetParams',{key:'tagrelative',val:this.tagData.tagrelative}); VuexStore.dispatch('handleHash'); this.tagData.checkedstxt = newVal.join(','); var self = this; - if(this.tagData.checkedsId.indexOf(val)>-1 && keyword){ + if(val.indexOf(val)>-1 && keyword){ $.post(MOD_URL+'&op=ajax&operation=addsearch',{ appid:self.GetAppid, keyword:keyword, @@ -435,64 +424,81 @@ var headerMethods = { } }, handleClickRightGroupTag(cid,tid){//标签右侧点击 - if(this.modelParamsTag[cid].data.length){ + var findex = this.tagData.checkedsId.indexOf(tid); + if(findex>-1){ + this.tagData.checkedsId.splice(findex,1); + }else{ + this.tagData.checkedsId.push(tid); + } + if(this.modelParamsTag[cid].value.length){ var arr = []; var texts = []; - for(var i in this.modelParamsTag){ - arr.push.apply(arr,this.modelParamsTag[i].data); - } - for(var x in this.paramsTag[cid].oldVal){ - var val = this.paramsTag[cid].oldVal[x]; - if(this.modelParamsTag[cid].data.indexOf(val.tid)>-1){ + for(var x in this.modelParamsTag[cid].data){ + var val = this.modelParamsTag[cid].data[x]; + if(this.modelParamsTag[cid].value.indexOf(val.tid)>-1){ texts.push(val.tagname); } } this.modelParamsTag[cid].text = texts.join(','); - VuexStore.commit('SetParams',{key:'tag',val:arr.join(',')}); + VuexStore.commit('SetParams',{key:'tag',val:this.tagData.checkedsId.join(',')}); VuexStore.dispatch('handleHash'); }else{ this.handleClickDelete('grouptag',cid); } }, handleRightTagSearch(val){//标签右侧搜索 - var tagfid = window.sessionStorage.getItem("tagfid"); - if(tagfid == 'all'){ - var data = JSON.parse(JSON.stringify(this.tagData.alltagdata.alltagdata)); - }else{ - if(this.tagData.alltagdata.catdata && this.tagData.alltagdata.catdata[tagfid]){ - var data = JSON.parse(JSON.stringify(this.tagData.alltagdata.catdata[tagfid].tdatas)); - }else{ - var data = []; - } - } - if(val){ - var newObj = []; - for(var i in data){ - var item = data[i]; - if(item.tagname.indexOf(val)>-1){ - newObj.push(item); - } - } - this.tagData.Rightdata = newObj; - }else{ - this.tagData.Rightdata = data; + $('.scrollbarTag .el-scrollbar__wrap')[0].scrollTop = 0; + var tagfid = this.tagData.checkedsFid; + this.tagData.alltagdata.catdata[tagfid].finish = false; + this.tagData.alltagdata.catdata[tagfid].page = 1; + this.tagData.alltagdata.catdata[tagfid].loading = true; + var data = this.GetScreenData('tag'); + + var alltagdata = data.alltagdata; + var tagval = []; + for(var g in alltagdata){ + tagval.push({ + num:alltagdata[g].num, + tagname:alltagdata[g].tagname, + tid:parseInt(g), + }) } + this.tagData.alltagdata.catdata[tagfid].finish = data.finish; + this.tagData.alltagdata.catdata[tagfid].tdatas = tagval; + this.tagData.alltagdata.catdata[tagfid].loading = false; }, - handleRightGroupTagSearch(cid){//标签右侧搜索 + handleRightGroupTagSearch(cid,index){//标签组右侧搜索 var keyword = this.modelParamsTag[cid].search; - var data = JSON.parse(JSON.stringify(this.paramsTag[cid].oldVal)); - if(keyword){ - var newObj = []; - for(var i in data){ - var item = data[i]; - if(item.tagname.indexOf(keyword)>-1){ - newObj.push(item); - } + this.$refs['scrollbarTag'+cid][0].wrap.scrollTop = 0; + this.modelParamsTag[cid].finish = false; + this.modelParamsTag[cid].page = 1; + this.modelParamsTag[cid].loading = true; + var data = this.GetScreenData('grouptag',cid); + var str = { + index:index, + val:true + }; + VuexStore.commit('SetParamsTagDataLoading',str); + this.modelParamsTag[cid].data = []; + var arr = [];index + var alltagdata = JSON.parse(JSON.stringify(data.alltagdata)); + for(var g in alltagdata){ + var tstr = { + num:alltagdata[g].num, + tagname:alltagdata[g].tagname, + tid:parseInt(g), } - this.paramsTag[cid].newVal = newObj; - }else{ - this.paramsTag[cid].newVal = data; + arr.push(tstr); } + this.modelParamsTag[cid].data = arr; + this.modelParamsTag[cid].finish = data.finish; + this.modelParamsTag[cid].loading = false; + var str = { + index:index, + val:false + }; + VuexStore.commit('SetParamsTagDataLoading',str); + }, handleLink(type){//链接改变 if(type != this.link.link){ @@ -596,49 +602,108 @@ var headerMethods = { VuexStore.commit('SetParams',{key:'dunit',val:value}); VuexStore.dispatch('handleHash'); }, - handleShowPopover(type,cid){//弹窗显示 + handleShowPopover(type,index){ if(type == 'grouptag'){ - var data = this.GetScreenData(type,cid); + var str = { + index:index, + val:true + }; + VuexStore.commit('SetParamsTagDataLoading',str); + }else if(type == 'tag'){ + this.tagData.loading = true; }else{ - var data = this.GetScreenData(type); + this[type].loading = true; + } + + }, + handleHideafterPopover(type){ + if(type == 'tag'){ + this.tagData.alltagdata.catdata = {}; + } + }, + + handleShowafterPopover(type,cid,index,newdata){//弹窗显示 + var self = this; + if(type == 'tag' && !$.isEmptyObject(this.tagData.alltagdata.catdata) && self.tagData.alltagdata.catdata[self.tagData.checkedsFid]){ + self.tagData.alltagdata.catdata[self.tagData.checkedsFid].page = 1; + } + if(!newdata){ + if(type == 'grouptag'){ + self.modelParamsTag[cid].page = 1; + var data = this.GetScreenData(type,cid); + }else{ + var data = this.GetScreenData(type); + } + }else{ + var data = newdata; + } + if(!data){ + if(this.$refs.ScreenPopoverRef && this.$refs.ScreenPopoverRef.length){ + for(var s in this.$refs.ScreenPopoverRef){ + if(this.$refs.ScreenPopoverRef[s].showPopper){ + this.$refs.ScreenPopoverRef[s].showPopper = false; + } + } + } + this.$message.error('获取数据失败'); + return false; } switch(type){ case 'grouptag'://标签弹窗显示 - if(this.paramsTag[cid]){ - this.paramsTag[cid] = []; + if(this.modelParamsTag[cid]){ + this.modelParamsTag[cid].data = []; var arr = []; - var arr1 = []; - for(var i in data){ - arr.push(data[i]); - arr1.push(data[i]); + var alltagdata = JSON.parse(JSON.stringify(data.alltagdata)); + for(var g in alltagdata){ + var tstr = { + num:alltagdata[g].num, + tagname:alltagdata[g].tagname, + tid:parseInt(g), + } + arr.push(tstr); } - this.paramsTag[cid].newVal = arr; - this.paramsTag[cid].oldVal = arr1; + this.modelParamsTag[cid].data = arr; + this.modelParamsTag[cid].finish = data.finish; } break; case 'tag'://标签弹窗显示 var alltagdata = JSON.parse(JSON.stringify(data.alltagdata)); var catdata = JSON.parse(JSON.stringify(data.catdata)); - this.tagData.alltagdata = { - alltagdata:alltagdata, - catdata:catdata + var fcatdata = {}; + var tagval = []; + for(var g in alltagdata){ + tagval.push({ + num:alltagdata[g].num, + tagname:alltagdata[g].tagname, + tid:parseInt(g), + }) + } + fcatdata['all'] = { + catname:'全部', + num :'', + page:1, + loading:true, + valloading:false, + finish:self.tagData.checkedsFid == 'all'?data.finish:false, + tdatas:self.tagData.checkedsFid == 'all'?tagval:[], }; - if(this.GetAppid){ - var tagfid = window.sessionStorage.getItem("tagfid"); - if(tagfid){ - if(tagfid == 'all'){ - this.tagData.Rightdata = alltagdata; - }else{ - if(catdata && catdata[tagfid]){ - this.tagData.Rightdata = catdata[tagfid].tdatas; - }else{ - this.tagData.Rightdata = []; - } + if(catdata){ + for(var t in catdata){ + fcatdata[catdata[t].cid]= { + catname:catdata[t].catname, + num :catdata[t].num, + page:1, + loading:true, + valloading:false, + finish:self.tagData.checkedsFid == catdata[t].cid?data.finish:false, + tdatas: self.tagData.checkedsFid == catdata[t].cid?tagval:[], } } - }else{ - this.tagData.Rightdata = alltagdata; + this.GetScreenDatanum(); } + this.tagData.alltagdata.catdata = fcatdata; + self.tagData.alltagdata.catdata[self.tagData.checkedsFid].loading = false; + this.handleScrollbarTag(); break; case 'ext'://类型弹窗显示 if(data){ @@ -696,6 +761,73 @@ var headerMethods = { } break; } + if(!newdata){ + if(type == 'grouptag'){ + var str = { + index:index, + val:false + }; + VuexStore.commit('SetParamsTagDataLoading',str); + this.handleScrollbarTag(cid); + }else if(type == 'tag'){ + this.tagData.loading = false; + }else{ + this[type].loading = false; + } + } + + }, + handleScrollbarTag(cid){ + var self = this; + if(cid){ + $(this.$refs['scrollbarTag'+cid][0].wrap).unbind('scroll'); + $(this.$refs['scrollbarTag'+cid][0].wrap).bind('scroll',function(){ + var loading = self.modelParamsTag[cid].loading; + var finish = self.modelParamsTag[cid].finish; + if(!finish && !loading && this.scrollHeight-100 < $(this).scrollTop()+this.clientHeight){ + self.modelParamsTag[cid].loading = true; + self.modelParamsTag[cid].page += 1; + var json = self.GetScreenData('grouptag',cid); + var alltagdata = JSON.parse(JSON.stringify(json.alltagdata)); + for(var g in alltagdata){ + self.modelParamsTag[cid].data.push({ + num:alltagdata[g].num, + tagname:alltagdata[g].tagname, + tid:parseInt(g), + }) + } + self.modelParamsTag[cid].loading = false; + self.modelParamsTag[cid].finish = json.finish; + + } + }); + }else{ + if(this.$refs.scrollbarTag && this.$refs.scrollbarTag.length){ + $('.scrollbarTag .el-scrollbar__wrap')[0].scrollTop = 0; + $('.scrollbarTag .el-scrollbar__wrap').unbind('scroll'); + $('.scrollbarTag .el-scrollbar__wrap').bind('scroll',function(){ + var valloading = self.tagData.alltagdata.catdata[self.tagData.checkedsFid].valloading; + var finish = self.tagData.alltagdata.catdata[self.tagData.checkedsFid].finish; + if(!finish && !valloading && this.scrollHeight-100 < $(this).scrollTop()+this.clientHeight){ + self.tagData.alltagdata.catdata[self.tagData.checkedsFid].valloading = true; + self.tagData.alltagdata.catdata[self.tagData.checkedsFid].page += 1; + var json = self.GetScreenData('tag'); + var alltagdata = JSON.parse(JSON.stringify(json.alltagdata)); + for(var g in alltagdata){ + self.tagData.alltagdata.catdata[self.tagData.checkedsFid].tdatas.push({ + num:alltagdata[g].num, + tagname:alltagdata[g].tagname, + tid:parseInt(g), + }) + } + self.tagData.alltagdata.catdata[self.tagData.checkedsFid].valloading = false; + self.tagData.alltagdata.catdata[self.tagData.checkedsFid].finish = json.finish; + + } + }); + } + } + }, handleClickDelete(type,cid){//清除标签选项 var self = this; @@ -715,7 +847,9 @@ var headerMethods = { } if(this.classify.text){ this.classify.text = ''; - this.$refs.tree[0].setCheckedKeys([]) + if(this.$refs.tree && this.$refs.tree.length){ + this.$refs.tree[0].setCheckedKeys([]); + } VuexStore.commit('SetParams',{key:'classify',val:''}); } if(this.colors.color){ @@ -774,6 +908,7 @@ var headerMethods = { val:[], height:this.ext.height, data:this.ext.data, + loading:true }; VuexStore.commit('SetParams',{key:'ext',val:''}); } @@ -784,7 +919,8 @@ var headerMethods = { width:this.shape.width, height:this.shape.height, txt:'', - data:this.shape.data + data:this.shape.data, + loading:true }; VuexStore.commit('SetParams',{key:'shape',val:''}); VuexStore.commit('SetParams',{key:'shapesize',val:''}); @@ -794,6 +930,7 @@ var headerMethods = { this.grade = { grade:[], data:this.grade.data, + loading:true }; VuexStore.commit('SetParams',{key:'grade',val:''}); } @@ -802,7 +939,8 @@ var headerMethods = { this.btime = { btime:'', datelinepicker:[], - data:this.btime.data + data:this.btime.data, + loading:true }; VuexStore.commit('SetParams',{key:'btime',val:''}); } @@ -811,7 +949,8 @@ var headerMethods = { this.dateline = { dateline:'', datelinepicker:[], - data:this.dateline.data + data:this.dateline.data, + loading:true }; VuexStore.commit('SetParams',{key:'dateline',val:''}); } @@ -820,7 +959,8 @@ var headerMethods = { this.mtime = { mtime:'', datelinepicker:[], - data:this.mtime.data + data:this.mtime.data, + loading:true }; VuexStore.commit('SetParams',{key:'mtime',val:''}); } @@ -832,26 +972,22 @@ var headerMethods = { this.tagData.tagrelative = '1'; VuexStore.commit('SetParams',{key:'tag',val:''}); VuexStore.commit('SetParams',{key:'tagrelative',val:''}); - if(this.tagData.checkedsFid == 'all'){ - var data = JSON.parse(JSON.stringify(this.tagData.alltagdata.alltagdata)); - this.tagData.Rightdata = data; - }else{ - var data = JSON.parse(JSON.stringify(this.tagData.alltagdata.catdata[this.tagData.checkedsFid].tdatas)); + // if(this.tagData.checkedsFid == 'all'){ + // var data = JSON.parse(JSON.stringify(this.tagData.alltagdata.alltagdata)); + // this.tagData.Rightdata = data; + // }else{ + // var data = JSON.parse(JSON.stringify(this.tagData.alltagdata.catdata[this.tagData.checkedsFid].tdatas)); - this.tagData.Rightdata = data; - } + // this.tagData.Rightdata = data; + // } } - if(!$.isEmptyObject(this.modelParamsTag)){ for(var t in this.modelParamsTag){ - this.modelParamsTag[t] = { - search:'', - text:'', - data:[] - }; + this.modelParamsTag[t].search = ''; + this.modelParamsTag[t].text = ''; + this.modelParamsTag[t].value = []; } - var fata = JSON.parse(JSON.stringify(this.paramsTag[t].oldVal)); - this.paramsTag[t].newVal = fata; + this.tagData.checkedsId = []; VuexStore.commit('SetParams',{key:'tag',val:''}); } @@ -871,13 +1007,13 @@ var headerMethods = { VuexStore.commit('SetParams',{key:'tag',val:''}); VuexStore.commit('SetParams',{key:'tagrelative',val:''}); - if(this.tagData.checkedsFid == 'all'){ - var data = JSON.parse(JSON.stringify(this.tagData.alltagdata.alltagdata)); - this.tagData.Rightdata = data; - }else{ - var data = JSON.parse(JSON.stringify(this.tagData.alltagdata.catdata[this.tagData.checkedsFid].tdatas)); - this.tagData.Rightdata = data; - } + // if(this.tagData.checkedsFid == 'all'){ + // var data = JSON.parse(JSON.stringify(this.tagData.alltagdata.alltagdata)); + // this.tagData.Rightdata = data; + // }else{ + // var data = JSON.parse(JSON.stringify(this.tagData.alltagdata.catdata[this.tagData.checkedsFid].tdatas)); + // this.tagData.Rightdata = data; + // } break; case 'color': var colors = { @@ -890,7 +1026,10 @@ var headerMethods = { break; case 'classify': this.classify.text = ''; - this.$refs.tree[0].setCheckedKeys([]) + if(this.$refs.tree && this.$refs.tree.length){ + this.$refs.tree[0].setCheckedKeys([]); + } + VuexStore.commit('SetParams',{key:'classify',val:''}); break; @@ -935,7 +1074,8 @@ var headerMethods = { this.ext = { val:[], height:this.ext.height, - data:this.ext.data + data:this.ext.data, + loading:false }; VuexStore.commit('SetParams',{key:'ext',val:''}); break; @@ -945,7 +1085,8 @@ var headerMethods = { width:this.shape.width, height:this.shape.height, txt:'', - data:this.shape.data + data:this.shape.data, + loading:false }; VuexStore.commit('SetParams',{key:'shape',val:''}); VuexStore.commit('SetParams',{key:'shapesize',val:''}); @@ -953,7 +1094,8 @@ var headerMethods = { case 'grade': this.grade = { grade:[], - data:this.grade.data + data:this.grade.data, + loading:false }; VuexStore.commit('SetParams',{key:'grade',val:''}); break; @@ -961,7 +1103,8 @@ var headerMethods = { this.btime = { btime:'', datelinepicker:[], - data:this.btime.data + data:this.btime.data, + loading:false }; VuexStore.commit('SetParams',{key:'btime',val:''}); break; @@ -969,7 +1112,8 @@ var headerMethods = { this.mtime = { mtime:'', datelinepicker:[], - data:this.mtime.data + data:this.mtime.data, + loading:false }; VuexStore.commit('SetParams',{key:'mtime',val:''}); break; @@ -977,7 +1121,8 @@ var headerMethods = { this.dateline = { dateline:'', datelinepicker:[], - data:this.dateline.data + data:this.dateline.data, + loading:false }; VuexStore.commit('SetParams',{key:'dateline',val:''}); break; @@ -985,17 +1130,13 @@ var headerMethods = { var tags = []; for(var t in this.modelParamsTag){ if(t!=cid){ - tags.push.apply(tags,this.modelParamsTag[t].data); + tags.push.apply(tags,this.modelParamsTag[t].value); } } VuexStore.commit('SetParams',{key:'tag',val:tags.join(',')}); - this.modelParamsTag[cid] = { - search:'', - text:'', - data:[] - }; - var fata = JSON.parse(JSON.stringify(this.paramsTag[cid].oldVal)); - this.paramsTag[cid].newVal = fata; + this.modelParamsTag[cid].search = ''; + this.modelParamsTag[cid].text = ''; + this.modelParamsTag[cid].value = []; break; } @@ -1016,8 +1157,29 @@ var headerMethods = { var str = { skey:type }; + if(type == 'grouptag'){ + str['skey']='tag'; str['cid']=cid; + str['page'] = self.modelParamsTag[cid].page; + + if(self.modelParamsTag[cid].search){ + str['tagkeyword'] = self.modelParamsTag[cid].search; + } + + } + if(type == 'tag'){ + if(self.tagData.checkedsFid == 'all'){ + str['cid'] =0; + }else{ + str['cid'] = self.tagData.checkedsFid; + } + if(self.tagData.alltagdata.catdata[self.tagData.checkedsFid]){ + str['page'] = self.tagData.alltagdata.catdata[self.tagData.checkedsFid].page; + } + if(self.tagData.search){ + str['tagkeyword'] = self.tagData.search; + } } if(this.GetAppid){ str['appid'] = this.GetAppid; @@ -1076,24 +1238,116 @@ var headerMethods = { var vtag = []; for(var t in this.modelParamsTag){ if(t!=cid){ - vtag.push.apply(vtag,this.modelParamsTag[t].data); + vtag.push.apply(vtag,this.modelParamsTag[t].value); } } if(vtag.length){ str['tag'] = vtag.join(','); } $.ajax({ - url : MOD_URL+'&op=ajax&operation=searchmenu_num', - type : "post", - data : str, - async : false, - dataType: "json", - success : function(data) { + 'url' : MOD_URL+'&op=ajax&operation=searchmenu_num', + 'type' : "post", + 'data' : str, + 'async' : false, + 'dataType': "json", + 'success' : function(data) { param = data; } }); return param; }, + GetScreenDatanum(){ + var self = this; + var type = 'tag'; + var str = { + skey:'tag' + }; + + if(this.GetAppid){ + str['appid'] = this.GetAppid; + } + if(this.GetimgParameter && this.GetimgParameter.keyword){ + str['keyword'] = this.GetimgParameter.keyword; + } + var Params = this.GetParams; + for(var p in Params){ + if(p==type){ + continue; + } + if(type == 'shape' && p =='shapesize'){ + continue; + } + if(Params[p]){ + if(p=='classify'){ + str['fids'] = Params[p]; + }else if(p=='grade'){ + if(Params[p].indexOf('未评分')>-1){ + var farr = Params[p].split(','); + if(farr.length){ + farr.splice(farr.indexOf('未评分'),1); + } + farr.push(0); + str[p] = farr.join(','); + }else{ + str[p] = Params[p]; + } + + }else if(p=='shape'){ + var shape = []; + var fshape = Params[p].split(','); + var shapeData = this.shapeData; + for(var s in fshape){ + for(var b in shapeData){ + if(fshape[s] == shapeData[b].name){ + shape.push(shapeData[b].val); + } + } + } + str[p] = shape.join(','); + }else if(p=='btime' || p=='mtime' || p=='dateline'){ + var len = Params[p].split('_'); + if(len.length>1){ + str[p] = Params[p]; + }else{ + str[p] = GetDateVal(Params[p]); + } + }else{ + str[p] = Params[p]; + } + } + + } + var vtag = []; + for(var t in this.modelParamsTag){ + if(t!=cid){ + vtag.push.apply(vtag,this.modelParamsTag[t].value); + } + } + if(vtag.length){ + str['tag'] = vtag.join(','); + } + $.ajax({ + 'url' : MOD_URL+'&op=ajax&operation=search_menu', + 'type' : "post", + 'data' : str, + 'dataType': "json", + 'success' : function(data) { + if(data.catdata){ + var catdata = data.catdata; + for(var g in catdata){ + var item = catdata[g]; + if(parseInt(item.cid) == 0){ + self.tagData.alltagdata.catdata['all']['num'] = item.num; + }else if(parseInt(item.cid) == -1){ + self.tagData.alltagdata.catdata[-1]['num'] = item.num; + }else{ + self.tagData.alltagdata.catdata[item.cid]['num'] = item.num; + } + } + } + } + }); + }, GetHashParams(){ var arr = (location.hash || "").replace(/^\?/,'').split("&"); var params = {}; diff --git a/dzz/pichome/js/pc/headerWatch.js b/dzz/pichome/js/pc/headerWatch.js index 295660b..6765e92 100644 --- a/dzz/pichome/js/pc/headerWatch.js +++ b/dzz/pichome/js/pc/headerWatch.js @@ -4,7 +4,6 @@ var headerWatch = { self.$refs.tree[0].filter(val); }, ParamsTagData(val){ - var str = {}; var fstr = {}; var str1 = {}; if(this.GetParamsInit.tag.length){ @@ -12,12 +11,16 @@ var headerWatch = { var p = this.GetParamsInit.tag[x]; if(fstr[p.cid]){ fstr[p.cid].text.push(p.tagname); - fstr[p.cid].data.push(p.tid); + fstr[p.cid].value.push(p.tid); }else{ fstr[p.cid] = { search:'', text:[p.tagname], - data:[p.tid] + data:[], + value:[p.tid], + page:1, + finish:false, + loading:false } } @@ -25,10 +28,6 @@ var headerWatch = { } } for(var i in val){ - str[val[i].cid] = { - newVal:[], - oldVal:[] - }; if(fstr[val[i].cid]){ fstr[val[i].cid].text = fstr[val[i].cid].text.join(','); str1[val[i].cid] = fstr[val[i].cid]; @@ -37,13 +36,16 @@ var headerWatch = { search:'', text:'', data:[], + page:1, + finish:false, + loading:false, + value:[], }; } } this.modelParamsTag = str1; - this.paramsTag = str; }, GetParamsInit:{ handler(item){ diff --git a/dzz/pichome/js/pc/row-grid.js b/dzz/pichome/js/pc/row-grid.js new file mode 100644 index 0000000..a017114 --- /dev/null +++ b/dzz/pichome/js/pc/row-grid.js @@ -0,0 +1,197 @@ +var ImgRowGrid = { + ImgRowGridInit(type){ + var self = this; + if(type == 'append') { + self.ImgRowGridCompute(type); + }else if(type == 'refresh'){ + + self.ImgRowGridCompute(); + }else{ + self.ImgRowGridCompute(); + } + }, + ImgRowGridCompute(type){ + var self = this; + var Margin = self.RowgridParam.Margin + if(type == 'append'){ + // self.RowgridParam.perpage += self.GetimgParameter.perpage; + }else{ + self.RowgridParam.maxNewtop = 0; + self.RowgridParam.maxNewLeft = 0; + self.RowgridParam.rowElems = []; + self.RowgridParam.rowWidth = 0; + self.RowgridParam.perpage = 0; + self.SurplusImgdatas = []; + var OtherHeight = 0 + if(self.InformationShow.indexOf('name')>-1 || self.InformationShow.indexOf('extension')>-1){ + OtherHeight += 45; + } + if(self.InformationShow.indexOf('other')>-1){ + OtherHeight += 20; + } + self.RowgridParam.OtherHeight = OtherHeight; + } + + var arr = {}; + if(Object.keys(self.SurplusImgdatas).length){ + for(var s in self.SurplusImgdatas){ + arr[s] = JSON.parse(JSON.stringify(self.SurplusImgdatas[s])); + } + self.RowgridParam.rowWidth = 0; + self.RowgridParam.rowElems = []; + self.RowgridParam.maxNewLeft = 0; + } + + for (var i = self.RowgridParam.perpage; i < self.imgdatas.length; ++i) { + var str = JSON.parse(JSON.stringify(self.imgdatas[i])); + var rid = str.rid; + arr[rid] = str; + var w = parseInt(arr[rid]['width']); + var h = parseInt(arr[rid]['height']); + var r = w / h; + var r1 = h / w; + if (h > 360) { + h = 360; + w = r * h; + } else if (w < 360) { + w = 360; + h = 360; + } + arr[rid]['pwidth'] = w; + arr[rid]['pheight'] = h; + } + + + var containerWidth = $('.rowGrids-box').width(); + + + var count = Object.keys(arr).length-Object.keys(self.SurplusImgdatas).length; + + self.RowgridParam.perpage += count; + for(var index in arr){ + var item = arr[index]; + self.RowgridParam.rowWidth += item['pwidth']; + self.RowgridParam.rowElems.push(index); + var fdiiff = self.RowgridParam.rowWidth + Margin * (self.RowgridParam.rowElems.length - 1); + var diff = fdiiff - containerWidth;//多出来的宽度 + var nrOfElems = self.RowgridParam.rowElems.length;//一行的个数 + if (fdiiff > containerWidth){ + var widthDiff = 0,maxNewHeight = 0; + for(var rowElemIndex in self.RowgridParam.rowElems){ + var rid = self.RowgridParam.rowElems[rowElemIndex]; + // if(arr[rid]){ + var rowElemWidth = arr[rid]['pwidth'];//获取一行每个都宽度 + var rowElemHeight = arr[rid]['pheight'];//获取一行每个都宽度 + // }else{ + + // var rowElemWidth = self.SurplusImgdatas[rid]['pwidth'];//获取一行每个都宽度 + // var rowElemHeight = self.SurplusImgdatas[rid]['pheight'];//获取一行每个都宽度 + // } + var newWidth = rowElemWidth - (rowElemWidth / self.RowgridParam.rowWidth) * diff;//新宽度 + var newHeight = Math.round(rowElemHeight * (newWidth / rowElemWidth));//新高度 + if (widthDiff + 1 - newWidth % 1 >= 0.5) { + widthDiff -= newWidth % 1; + newWidth = Math.floor(newWidth); + } else { + widthDiff += 1 - newWidth % 1; + newWidth = Math.ceil(newWidth); + } + if (newHeight > maxNewHeight){ + maxNewHeight = newHeight; + } + arr[rid]['pwidth'] = newWidth; + arr[rid]['pheight'] = maxNewHeight; + arr[rid]['ptop'] = self.RowgridParam.maxNewtop; + arr[rid]['pbottom'] = self.RowgridParam.maxNewtop+maxNewHeight+self.RowgridParam.OtherHeight; + if(rowElemIndex > 0){ + arr[rid]['pleft'] = self.RowgridParam.maxNewLeft; + }else{ + arr[rid]['pleft'] = 0; + } + self.RowgridParam.maxNewLeft += newWidth + Margin; + + } + for(var frowElemIndex in self.RowgridParam.rowElems){ + var rowElem = self.RowgridParam.rowElems[frowElemIndex]; + var height = arr[rowElem]['pheight'];//获取一行每个都宽度 + if(height maxNewHeight){ + maxNewHeight = rowElemHeight; + } + if(f > 0){ + arr[rowElem]['pleft'] = self.RowgridParam.maxNewLeft; + }else{ + arr[rowElem]['pleft'] = 0; + } + + self.RowgridParam.maxNewLeft += rowElemWidth + Margin; + } + for(var ff in self.RowgridParam.rowElems){ + var rowElem = self.RowgridParam.rowElems[ff]; + var height = arr[rowElem]['pheight'];//获取一行每个都宽度 + if(height.el-scrollbar__wrap')[0].clientHeight;//获取可视区域高度 + var S = jQuery('.body_scroll>.el-scrollbar__wrap')[0].scrollTop; + self.NewImgdatas = {}; + for(var o in self.StoreImgdatas){ + var item = JSON.parse(JSON.stringify(self.StoreImgdatas[o])); + if ((H+S) >= item.ptop && S-1 || self.InformationShow.indexOf('extension')>-1){ + OtherHeight += 45; + } + if(self.InformationShow.indexOf('other')>-1){ + OtherHeight += 20; + } + self.WaterfallParam.OtherHeight = OtherHeight; + } + var arr = {}; + for (var o = self.WaterfallParam.perpage; o < self.imgdatas.length; o++){ + var rid = self.imgdatas[o]['rid']; + arr[rid] = JSON.parse(JSON.stringify(self.imgdatas[o])); + + var h = 236/parseInt(arr[rid].width)*parseInt(arr[rid].height)>120?236/parseInt(arr[rid].width)*parseInt(arr[rid].height):120; + arr[rid]['pheight'] = h; + arr[rid]['pwidth'] = 252; + + if (o < self.WaterfallParam.columns) { + arr[rid]['ptop'] = 0; + arr[rid]['pleft'] = self.WaterfallParam.imgWidth*o; + arr[rid]['pbottom'] = arr[rid]['ptop']+arr[rid]['pheight']+self.WaterfallParam.Margin+self.WaterfallParam.OtherHeight; + var imgArr = JSON.parse(JSON.stringify(arr[rid])); + self.WaterfallParam.imgArr.push(imgArr); + + }else{ + var minHeight = self.WaterfallParam.imgArr[0]['pbottom']; + var index = 0; + for (var j = 0; j < self.WaterfallParam.imgArr.length; j++) { + if (minHeight > self.WaterfallParam.imgArr[j]['pbottom']) { + minHeight = self.WaterfallParam.imgArr[j]['pbottom']; + index = j; + } + } + arr[rid]['ptop'] = JSON.parse(JSON.stringify(self.WaterfallParam.imgArr[index]['pbottom'])); + arr[rid]['pleft'] = JSON.parse(JSON.stringify(self.WaterfallParam.imgArr[index]['pleft'])); + arr[rid]['pbottom'] = arr[rid]['ptop']+arr[rid]['pheight']+self.WaterfallParam.Margin+self.WaterfallParam.OtherHeight; + + var imgArr = JSON.parse(JSON.stringify(arr[rid])); + self.WaterfallParam.imgArr[index] = imgArr; + + } + } + + var count = Object.keys(arr).length + self.WaterfallParam.perpage += count; + if(self.GetScrollAppend){ + var StoreImgdatas = JSON.parse(JSON.stringify(self.StoreImgdatas)); + var result = $.extend(StoreImgdatas, arr); + self.StoreImgdatas = result; + }else{ + self.StoreImgdatas = arr; + } + + self.WaterfallhandleScroll(); + var fminHeight = self.WaterfallParam.imgArr[0]['pbottom']; + for (var j = 0; j < self.WaterfallParam.imgArr.length; j++) { + if (fminHeight < self.WaterfallParam.imgArr[j]['pbottom']) { + fminHeight = self.WaterfallParam.imgArr[j]['pbottom']; + } + } + self.WaterfallParam.boxHeight = fminHeight+40; + $('#waterfallCenter').css({ + height:self.WaterfallParam.boxHeight+'px' + }); + $('.imgmargin').css({ + height:self.WaterfallParam.boxHeight+'px' + }); + }, + WaterfallhandleScroll(){ + var self = this; + var H = jQuery('.body_scroll>.el-scrollbar__wrap')[0].clientHeight;//获取可视区域高度 + var S = jQuery('.body_scroll>.el-scrollbar__wrap')[0].scrollTop; + // var data = JSON.parse(JSON.stringify(self.NewImgdatas)); + var arr = []; + + self.NewImgdatas = {}; + for(var o in self.StoreImgdatas){ + var item = JSON.parse(JSON.stringify(self.StoreImgdatas[o])); + if ((H+S) >= item.ptop && Sfetch_by_appid($appid); + if(($data['state'] ==1)) { + dfsockopen(getglobal('localurl'). 'index.php?mod=pichome&op=exportfile&appid='.$appid,0, '', '', false, '', 1); + }elseif($data['state'] == 2){ + dfsockopen(getglobal('localurl'). 'index.php?mod=pichome&op=exportfilecheck&appid='.$appid,0, '', '', false, '', 1); + } exit(json_encode(array('success' => true, 'data' => $data,'catdata'=>$catdata))); }else{ exit(json_encode(array('error' => true))); diff --git a/dzz/pichome/share.php b/dzz/pichome/share.php index ea452dd..420d7b9 100644 --- a/dzz/pichome/share.php +++ b/dzz/pichome/share.php @@ -26,6 +26,11 @@ foreach($resourcesdata['foldernames'] as $fval){ $foldernames[] = $fval; } $resourcesdata['foldernames'] = json_encode($foldernames); - $theme = GetThemeColor(); -include template('pc/page/share'); \ No newline at end of file +$ismobile = helper_browser::ismobile(); + +if (($ismobile)) { + include template('mobile/page/share'); +} else { + include template('pc/page/share'); +} diff --git a/dzz/pichome/template/mobile/components/index/JsCommon.htm b/dzz/pichome/template/mobile/components/index/JsCommon.htm new file mode 100644 index 0000000..edc5b92 --- /dev/null +++ b/dzz/pichome/template/mobile/components/index/JsCommon.htm @@ -0,0 +1,605 @@ + \ No newline at end of file diff --git a/dzz/pichome/template/mobile/components/index/JsDetailMessage.htm b/dzz/pichome/template/mobile/components/index/JsDetailMessage.htm new file mode 100644 index 0000000..2eb9bed --- /dev/null +++ b/dzz/pichome/template/mobile/components/index/JsDetailMessage.htm @@ -0,0 +1,117 @@ + + +
+ +
+ +
{{showdata[rid].data.name}}.{{showdata[rid].data.ext}}
+
+
颜色
+
+
+
+
+
+
+
+
标签
+
+
{{item.val}}
+
+
+
+
链接
+ +
+
+
分类
+
+
{{item.val}}
+
+
+
+
基本信息
+
+ + +
评分
+
+ +
+ +
+
+
+ + +
尺寸
+
+ +
{{showdata[rid].data.width}}×{{showdata[rid].data.height}}
+
+
+ + +
文件大小
+
+ +
{{showdata[rid].data.fsize}}
+
+
+ + +
类型
+
+ +
{{showdata[rid].data.ext}}
+
+
+ + +
创建时间
+
+ +
{{showdata[rid].data.mtime}}
+
+
+ + +
添加时间
+
+ +
{{showdata[rid].data.btime}}
+
+
+ + +
修改时间
+
+ +
{{showdata[rid].data.dateline}}
+
+
+
+
+ +
+ +
+
+ \ No newline at end of file diff --git a/dzz/pichome/template/mobile/components/index/JsImages.htm b/dzz/pichome/template/mobile/components/index/JsImages.htm new file mode 100644 index 0000000..221a752 --- /dev/null +++ b/dzz/pichome/template/mobile/components/index/JsImages.htm @@ -0,0 +1,757 @@ +
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ +
{{item.annonationnum}}
+
+
+
+ {{item.name}} + .{{item.ext}} +
+ +
+
+
+ + + + +
+ + +
+ +
+ + \ No newline at end of file diff --git a/dzz/pichome/template/mobile/components/index/JsIndex.htm b/dzz/pichome/template/mobile/components/index/JsIndex.htm new file mode 100644 index 0000000..0d4abab --- /dev/null +++ b/dzz/pichome/template/mobile/components/index/JsIndex.htm @@ -0,0 +1,272 @@ + + + + +
+ +
+ +
+
+ +
+
+ + + + + + diff --git a/dzz/pichome/template/mobile/components/index/JsMy.htm b/dzz/pichome/template/mobile/components/index/JsMy.htm new file mode 100644 index 0000000..c86384b --- /dev/null +++ b/dzz/pichome/template/mobile/components/index/JsMy.htm @@ -0,0 +1,100 @@ + + +
+ + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+
+ 软件名称:欧奥PicHome +
+
+ 版本信息:$_G[setting][version] +
+
+ 版权信息:Powered By oaooa PicHome © 2020-2021 欧奥图文 +
+
+ 网站地址:oaooa.com +
+
+
+
+ \ No newline at end of file diff --git a/dzz/pichome/template/mobile/components/index/JsScreen.htm b/dzz/pichome/template/mobile/components/index/JsScreen.htm new file mode 100644 index 0000000..f19a797 --- /dev/null +++ b/dzz/pichome/template/mobile/components/index/JsScreen.htm @@ -0,0 +1,1603 @@ + +
{{ParamScreen.data[ParamScreen.LeftActive].text}}
+ + + +
+ + + 重置 + + + 确定 + + + +
+
+ + diff --git a/dzz/pichome/template/mobile/components/index/JsSearch.htm b/dzz/pichome/template/mobile/components/index/JsSearch.htm new file mode 100644 index 0000000..3fd41e4 --- /dev/null +++ b/dzz/pichome/template/mobile/components/index/JsSearch.htm @@ -0,0 +1,161 @@ + +
搜索
+ +
+ + +
+
+ + + 重置 + + + 确定 + + + +
+
+ diff --git a/dzz/pichome/template/mobile/components/index/JsSort.htm b/dzz/pichome/template/mobile/components/index/JsSort.htm new file mode 100644 index 0000000..5bf25a2 --- /dev/null +++ b/dzz/pichome/template/mobile/components/index/JsSort.htm @@ -0,0 +1,270 @@ + +
{{ParamSort.data[ParamSort.labelActive].text}}
+ + + +
+ + + 关闭 + + + +
+
+ \ No newline at end of file diff --git a/dzz/pichome/template/mobile/frame/footer_simple.htm b/dzz/pichome/template/mobile/frame/footer_simple.htm new file mode 100644 index 0000000..85700e5 --- /dev/null +++ b/dzz/pichome/template/mobile/frame/footer_simple.htm @@ -0,0 +1,21 @@ + + + + + + + + + +
+ + + + $_G['setting']['statcode'] + + + \ No newline at end of file diff --git a/dzz/pichome/template/mobile/frame/header_simple_end.htm b/dzz/pichome/template/mobile/frame/header_simple_end.htm new file mode 100644 index 0000000..514ad7d --- /dev/null +++ b/dzz/pichome/template/mobile/frame/header_simple_end.htm @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/dzz/pichome/template/mobile/frame/header_simple_start.htm b/dzz/pichome/template/mobile/frame/header_simple_start.htm new file mode 100644 index 0000000..e790ab5 --- /dev/null +++ b/dzz/pichome/template/mobile/frame/header_simple_start.htm @@ -0,0 +1,28 @@ + + + + + + + <!--{if !empty($navtitle)}-->$navtitle - <!--{/if}-->$_G[setting][sitename] + + + + + + + + + + + + + + + + + + + + + diff --git a/dzz/pichome/template/mobile/page/details.htm b/dzz/pichome/template/mobile/page/details.htm new file mode 100644 index 0000000..5c8d55c --- /dev/null +++ b/dzz/pichome/template/mobile/page/details.htm @@ -0,0 +1,593 @@ + + + + +
+
+ + + + + +
+
+ + + +
+ +
+ + + +
+ + diff --git a/dzz/pichome/template/mobile/page/index.htm b/dzz/pichome/template/mobile/page/index.htm new file mode 100644 index 0000000..4ae9fd8 --- /dev/null +++ b/dzz/pichome/template/mobile/page/index.htm @@ -0,0 +1,7 @@ + + + +
+ +
+ diff --git a/dzz/pichome/template/mobile/page/personal.htm b/dzz/pichome/template/mobile/page/personal.htm new file mode 100644 index 0000000..ea6eb73 --- /dev/null +++ b/dzz/pichome/template/mobile/page/personal.htm @@ -0,0 +1,163 @@ + + + +
+ +
+ +
+
+ + + +
+ + 修改头像 + +
+ + + + + + + + + + + + + +
+
主题色
+
    +
  • +
    + +
    +
  • +
+
+ +
+
+
+ + diff --git a/dzz/pichome/template/mobile/page/share.htm b/dzz/pichome/template/mobile/page/share.htm new file mode 100644 index 0000000..b4a5d9d --- /dev/null +++ b/dzz/pichome/template/mobile/page/share.htm @@ -0,0 +1,315 @@ + + + +
+
+ + + + +
+
+
+
+ + + + + +
+
+
+
+ + + + +
+ +
+
{{imagesData.name}}.{{imagesData.ext}}
+
+
颜色
+
+
+
+
+
+
+
+
标签
+
+
{{item}}
+
+
+
+
链接
+ +
+
+
分类
+
+
{{item}}
+
+
+
+
基本信息
+
+ + +
评分
+
+ +
+ +
+
+
+ + +
尺寸
+
+ +
{{imagesData.width}}×{{imagesData.height}}
+
+
+ + +
文件大小
+
+ +
{{imagesData.fsize}}
+
+
+ + +
类型
+
+ +
{{imagesData.ext}}
+
+
+ + +
创建时间
+
+ +
{{imagesData.mtime}}
+
+
+ + +
添加时间
+
+ +
{{imagesData.btime}}
+
+
+ + +
修改时间
+
+ +
{{imagesData.dateline}}
+
+
+
+
+
+ +
+
+
+
+ + diff --git a/dzz/pichome/template/pc/components/headerindex/index.htm b/dzz/pichome/template/pc/components/headerindex/index.htm index 41c645f..538d7e0 100644 --- a/dzz/pichome/template/pc/components/headerindex/index.htm +++ b/dzz/pichome/template/pc/components/headerindex/index.htm @@ -27,7 +27,7 @@